diff --git a/.gitignore b/.gitignore index b300f579e..8376ea87e 100644 --- a/.gitignore +++ b/.gitignore @@ -42,3 +42,9 @@ nbproject #ignore local folder /local/ + +#ignore config files from Visual Studio +/.vs/ +/php_friendica.phpproj +/php_friendica.sln +/php_friendica.phpproj.user diff --git a/.htaccess b/.htaccess index 1b63f9ad6..2348cdc38 100644 --- a/.htaccess +++ b/.htaccess @@ -4,7 +4,14 @@ AddType audio/ogg .oga #AddHandler php53-cgi .php -Deny from all + + #Apache 2.4 + Require all denied + + + #Apache 2.2 + Deny from all + diff --git a/CHANGELOG b/CHANGELOG index b393899df..1e6b0129d 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,63 @@ +Version 3.5 + Friendica Core: + NEW Optional local directory with possible federated contacts [heluecht] + NEW Autocompletion for @-mentions and BBCode tags [rabuzarus] + NEW Added a composer derived autoloader which allows composer autoloaders in addons/libraries [fabrixxm] + NEW theme: frio [rabuzarus, heluecht, fabrixxm] + Enhance .htaccess file (nerdoc, dissolve) + Updates to the translations (DE, ES, IS, IT, RU) [translation teams] + Updates to the documentation [tobiasd, heluecht, mexcon, silke, rabuzarus, fabrixxm, Olivier Mehani, gerhard6380, ben utzer] + Extended the BBCode by [abstract] tag used for bridged postings to networks with limited character length [heluecht] + Code cleanup [heluecht, QuixOr] + Improvements to the API and Friendica specific extensions [heluecht, fabrixxm, gerhard6380] + Improvements to the RSS/Atom feed import [mexcon] + Improvements to the communication with federated networks (Diaspora, Hubzilla, OStatus) [heluecht] + Improvements on the themes (quattro, vier, frost) [rabuzarus, fabrixxm, stieben, heluecht, Quix0r, tobiasd] + Improvements to the ACL dialog [fabrixxm, rabuzarus] + Improvements to the database structure and optimization of queries [heluecht] + Improvements to the UI (contacts, hotkeys, remember me, ARIA, code hightlighting) [rabuzarus, heluecht, tobiasd] + Improvements to the background process (poller, worker) [heluecht] + Improvements to the admin panel [tobiasd, heluecht, fabrixxm] + Improvements to the performance [heluecht] + Improvements to the installation wizzard (language selection, RINO version, check required PHP modules, default theme is now vier) [tobiasd] + Improvements to the relocation of nodes and accounts [heluecht] + Improvements to the DDoS detection [heluecht] + Improvements to the calendar/events module [heluecht, rabuzarus] + Improvements to OpenID login [strk] + Improvements to the ShaShape font [andi] + Reworked the implementation of the DFRN, Diaspora protocols [heluecht] + Reworked the notifications code [fabrixxm, rabuzarus, heluecht] + Reworked the p/config code [fabrixxm, rabuzarus] + Reworked XML generation [heluecht] + Removed now unused simplepie from library [heluecht] + + Friendica Addons + Updated to the translations (DE, ES, IS, NL, PT BR), [translation teams] + Piwik [tobiasd] + Twitter Connector [heluecht] + Pumpio Connector [heluecht] + Rendertime [heluecht] + wppost [heluecht] + showmore [rabuzarus] + fromgplus [heluecht] + app.net Connector [heluecht] + GNU Social Connector [heluecht] + LDAP [Olivier Mehani] + smileybutton [rabuzarus] + retriver [mexon] + mailstream [mexon] + forumdirectory [tobiasd] + NEW notifyall (port from Hubzilla) [rabuzarus, tobiasd] + DEPRECATED cal (now in core), FB Connector, FB Post Connector, FB Sync + + Closed Issues + 683, 786, 796, 922, 1261, 1576, 1701, 1769, 1970, 1145, 1494, + 1728, 1877, 2063, 2059, 2078, 2079, 2133, 2165, 2194, 2229, 2230, + 2241, 2254, 2242, 2270, 2277, 2339, 2320, 2345, 2352, 2358, 2367, + 2373, 2376, 2378, 2385, 2395, 2402, 2406, 2433, 2472, 2485, 2492, + 2506, 2512, 2516, 2539, 2540, 2893, 2597, 2611, 2617, 2629, 2645, + 2687, 2716, 2757, 2764 + Version 3.4.3 What's new for the users: Updates to the documentation (silke, tobiasd, annando, rebeka-catalina) diff --git a/INSTALL.txt b/INSTALL.txt index 08bd41c8d..a9d42495b 100644 --- a/INSTALL.txt +++ b/INSTALL.txt @@ -32,8 +32,7 @@ link if your cert is self-signed). - Apache with mod-rewrite enabled and "Options All" so you can use a local .htaccess file - - PHP 5.2+. The later the better. PHP 5.3 is required for communications -with the Diaspora network and improved security. + - PHP 5.4+. - PHP *command line* access with register_argc_argv set to true in the php.ini file [or see 'poormancron' in section 8] @@ -42,7 +41,7 @@ php.ini file [or see 'poormancron' in section 8] - some form of email server or email gateway such that PHP mail() works - - Mysql 5.x + - Mysql 5.5.3+ or an equivalant alternative for MySQL (MariaDB, Percona Server etc.) - ability to schedule jobs with cron (Linux/Mac) or Scheduled Tasks (Windows) [Note: other options are presented in Section 8 of this document] diff --git a/LICENSE b/LICENSE index 42897de4a..c155965f8 100644 --- a/LICENSE +++ b/LICENSE @@ -1,5 +1,5 @@ Friendica Communications Server -Copyright (c) 2010-2013 the Friendica Project +Copyright (c) 2010-2016 the Friendica Project This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by diff --git a/README.translate.md b/README.translate.md index 728a56ab3..861e98440 100644 --- a/README.translate.md +++ b/README.translate.md @@ -24,12 +24,12 @@ If you want to get your work into the source tree yourself, feel free to do so a The process is simple and friendica ships with all the tools necessary. The location of the translated files in the source tree is - /view/LNG-CODE/ + /view/lang/LNG-CODE/ where LNG-CODE is the language code used, e.g. de for German or fr for French. The translated strings come as a "message.po" file from transifex which needs to be translated into the PHP file friendica uses. To do so, place the file in the directory mentioned above and use the "po2php" utility from the util directory of your friendica installation. -Assuming you want to convert the German localization which is placed in view/de/message.po you would do the following. +Assuming you want to convert the German localization which is placed in view/lang/de/message.po you would do the following. 1. Navigate at the command prompt to the base directory of your friendica installation @@ -37,9 +37,9 @@ Assuming you want to convert the German localization which is placed in view/de/ 2. Execute the po2php script, which will place the translation in the strings.php file that is used by friendica. - $> php util/po2php.php view/de/messages.po + $> php util/po2php.php view/lang/de/messages.po - The output of the script will be placed at view/de/strings.php where + The output of the script will be placed at view/lang/de/strings.php where friendica is expecting it, so you can test your translation immediately. 3. Visit your friendica page to check if it still works in the language you @@ -50,7 +50,7 @@ Assuming you want to convert the German localization which is placed in view/de/ not give any output if the file is ok but might give a hint for searching the bug in the file. - $> php view/de/strings.php + $> php view/lang/de/strings.php 4. commit the two files with a meaningful commit message to your git repository, push it to your fork of the friendica repository at github and diff --git a/boot.php b/boot.php index 318a87346..eb91b26ba 100644 --- a/boot.php +++ b/boot.php @@ -36,9 +36,9 @@ require_once('include/dbstructure.php'); define ( 'FRIENDICA_PLATFORM', 'Friendica'); define ( 'FRIENDICA_CODENAME', 'Asparagus'); -define ( 'FRIENDICA_VERSION', '3.5-dev' ); +define ( 'FRIENDICA_VERSION', '3.5.1-dev' ); define ( 'DFRN_PROTOCOL_VERSION', '2.23' ); -define ( 'DB_UPDATE_VERSION', 1196 ); +define ( 'DB_UPDATE_VERSION', 1208 ); /** * @brief Constant with a HTML line break. @@ -53,7 +53,7 @@ define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' ); /** * @brief Image storage quality. - * + * * Lower numbers save space at cost of image detail. * For ease of upgrade, please do not change here. Change jpeg quality with * $a->config['system']['jpeg_quality'] = n; @@ -95,7 +95,7 @@ define ( 'DEFAULT_DB_ENGINE', 'MyISAM' ); /** * @name SSL Policy - * + * * SSL redirection policies * @{ */ @@ -106,7 +106,7 @@ define ( 'SSL_POLICY_SELFSIGN', 2 ); /** * @name Logger - * + * * log levels * @{ */ @@ -119,7 +119,7 @@ define ( 'LOGGER_ALL', 4 ); /** * @name Cache - * + * * Cache levels * @{ */ @@ -127,11 +127,15 @@ define ( 'CACHE_MONTH', 0 ); define ( 'CACHE_WEEK', 1 ); define ( 'CACHE_DAY', 2 ); define ( 'CACHE_HOUR', 3 ); +define ( 'CACHE_HALF_HOUR', 4 ); +define ( 'CACHE_QUARTER_HOUR', 5 ); +define ( 'CACHE_FIVE_MINUTES', 6 ); +define ( 'CACHE_MINUTE', 7 ); /* @}*/ /** * @name Register - * + * * Registration policies * @{ */ @@ -142,7 +146,7 @@ define ( 'REGISTER_OPEN', 2 ); /** * @name Contact_is - * + * * Relationship types * @{ */ @@ -153,7 +157,7 @@ define ( 'CONTACT_IS_FRIEND', 3); /** * @name Update - * + * * DB update return values * @{ */ @@ -181,9 +185,31 @@ define ( 'PAGE_BLOG', 4 ); define ( 'PAGE_PRVGROUP', 5 ); /** @}*/ +/** + * @name account types + * + * ACCOUNT_TYPE_PERSON - the account belongs to a person + * Associated page types: PAGE_NORMAL, PAGE_SOAPBOX, PAGE_FREELOVE + * + * ACCOUNT_TYPE_ORGANISATION - the account belongs to an organisation + * Associated page type: PAGE_SOAPBOX + * + * ACCOUNT_TYPE_NEWS - the account is a news reflector + * Associated page type: PAGE_SOAPBOX + * + * ACCOUNT_TYPE_COMMUNITY - the account is community forum + * Associated page types: PAGE_COMMUNITY, PAGE_PRVGROUP + * @{ + */ +define ( 'ACCOUNT_TYPE_PERSON', 0 ); +define ( 'ACCOUNT_TYPE_ORGANISATION',1 ); +define ( 'ACCOUNT_TYPE_NEWS', 2 ); +define ( 'ACCOUNT_TYPE_COMMUNITY', 3 ); +/** @}*/ + /** * @name CP - * + * * Type of the community page * @{ */ @@ -194,7 +220,7 @@ define ( 'CP_GLOBAL_COMMUNITY', 1 ); /** * @name Network - * + * * Network and protocol family types * @{ */ @@ -266,7 +292,7 @@ define ( 'ZCURL_TIMEOUT' , (-1)); /** * @name Notify - * + * * Email notification options * @{ */ @@ -288,7 +314,7 @@ define ( 'NOTIFY_SYSTEM', 0x8000 ); /** * @name Term - * + * * Tag/term types * @{ */ @@ -308,7 +334,7 @@ define ( 'TERM_OBJ_PHOTO', 2 ); /** * @name Namespaces - * + * * Various namespaces we may need to parse * @{ */ @@ -331,7 +357,7 @@ define ( 'NAMESPACE_ATOM1', 'http://www.w3.org/2005/Atom' ); /** * @name Activity - * + * * Activity stream defines * @{ */ @@ -377,7 +403,7 @@ define ( 'ACTIVITY_OBJ_QUESTION', 'http://activityschema.org/object/question' ); /** * @name Gravity - * + * * Item weight for query ordering * @{ */ @@ -386,6 +412,20 @@ define ( 'GRAVITY_LIKE', 3); define ( 'GRAVITY_COMMENT', 6); /* @}*/ +/** + * @name Priority + * + * Process priority for the worker + * @{ + */ +define('PRIORITY_UNDEFINED', 0); +define('PRIORITY_CRITICAL', 10); +define('PRIORITY_HIGH', 20); +define('PRIORITY_MEDIUM', 30); +define('PRIORITY_LOW', 40); +define('PRIORITY_NEGLIGIBLE',50); +/* @}*/ + // Normally this constant is defined - but not if "pcntl" isn't installed if (!defined("SIGTERM")) @@ -430,9 +470,9 @@ function startup() { /** * * class: App - * + * * @brief Our main application structure for the life of this page. - * + * * Primarily deals with the URL that got us here * and tries to make some sense of it, and * stores our page contents and config storage @@ -475,6 +515,7 @@ class App { public $performance = array(); public $callstack = array(); public $theme_info = array(); + public $backend = true; public $nav_sel; @@ -516,6 +557,8 @@ class App { */ public $template_engine_instance = array(); + public $process_id; + private $ldelim = array( 'internal' => '', 'smarty3' => '{{' @@ -557,6 +600,7 @@ class App { $this->performance["start"] = microtime(true); $this->performance["database"] = 0; + $this->performance["database_write"] = 0; $this->performance["network"] = 0; $this->performance["file"] = 0; $this->performance["rendering"] = 0; @@ -576,6 +620,8 @@ class App { $this->query_string = ''; + $this->process_id = uniqid("log", true); + startup(); set_include_path( @@ -739,60 +785,100 @@ class App { return($this->scheme); } + /** + * @brief Retrieves the Friendica instance base URL + * + * This function assembles the base URL from multiple parts: + * - Protocol is determined either by the request or a combination of + * system.ssl_policy and the $ssl parameter. + * - Host name is determined either by system.hostname or inferred from request + * - Path is inferred from SCRIPT_NAME + * + * Caches the result (depending on $ssl value) for performance. + * + * Note: $ssl parameter value doesn't directly correlate with the resulting protocol + * + * @param bool $ssl Whether to append http or https under SSL_POLICY_SELFSIGN + * @return string Friendica server base URL + */ function get_baseurl($ssl = false) { // Is the function called statically? - if (!is_object($this)) - return(self::$a->get_baseurl($ssl)); + if (!is_object($this)) { + return self::$a->get_baseurl($ssl); + } + + // Arbitrary values, the resulting url protocol can be different + $cache_index = $ssl ? 'https' : 'http'; + + // Cached value found, nothing to process + if (isset($this->baseurl[$cache_index])) { + return $this->baseurl[$cache_index]; + } $scheme = $this->scheme; - if((x($this->config,'system')) && (x($this->config['system'],'ssl_policy'))) { - if(intval($this->config['system']['ssl_policy']) === intval(SSL_POLICY_FULL)) + if ((x($this->config, 'system')) && (x($this->config['system'], 'ssl_policy'))) { + if (intval($this->config['system']['ssl_policy']) === SSL_POLICY_FULL) { $scheme = 'https'; + } // Basically, we have $ssl = true on any links which can only be seen by a logged in user // (and also the login link). Anything seen by an outsider will have it turned off. - if($this->config['system']['ssl_policy'] == SSL_POLICY_SELFSIGN) { - if($ssl) + if ($this->config['system']['ssl_policy'] == SSL_POLICY_SELFSIGN) { + if ($ssl) { $scheme = 'https'; - else + } else { $scheme = 'http'; + } } } - if (get_config('config','hostname') != "") - $this->hostname = get_config('config','hostname'); + if (get_config('config', 'hostname') != '') { + $this->hostname = get_config('config', 'hostname'); + } - $this->baseurl = $scheme . "://" . $this->hostname . ((isset($this->path) && strlen($this->path)) ? '/' . $this->path : '' ); - return $this->baseurl; + $this->baseurl[$cache_index] = $scheme . "://" . $this->hostname . ((isset($this->path) && strlen($this->path)) ? '/' . $this->path : '' ); + + return $this->baseurl[$cache_index]; } + /** + * @brief Initializes the baseurl components + * + * Clears the baseurl cache to prevent inconstistencies + * + * @param string $url + */ function set_baseurl($url) { $parsed = @parse_url($url); - $this->baseurl = $url; + $this->baseurl = []; if($parsed) { $this->scheme = $parsed['scheme']; $hostname = $parsed['host']; - if(x($parsed,'port')) + if (x($parsed, 'port')) { $hostname .= ':' . $parsed['port']; - if(x($parsed,'path')) - $this->path = trim($parsed['path'],'\\/'); + } + if (x($parsed, 'path')) { + $this->path = trim($parsed['path'], '\\/'); + } - if (file_exists(".htpreconfig.php")) + if (file_exists(".htpreconfig.php")) { @include(".htpreconfig.php"); + } - if (get_config('config','hostname') != "") - $this->hostname = get_config('config','hostname'); + if (get_config('config', 'hostname') != '') { + $this->hostname = get_config('config', 'hostname'); + } - if (!isset($this->hostname) OR ($this->hostname == "")) + if (!isset($this->hostname) OR ($this->hostname == '')) { $this->hostname = $hostname; + } } - } function get_hostname() { @@ -940,7 +1026,7 @@ class App { } else { $r = q("SELECT `contact`.`avatar-date` AS picdate FROM `contact` WHERE `contact`.`thumb` like '%%/%s'", $common_filename); - if(! count($r)){ + if(! dbm::is_result($r)){ $this->cached_profile_image[$avatar_image] = $avatar_image; } else { $this->cached_profile_picdate[$common_filename] = "?rev=".urlencode($r[0]['picdate']); @@ -973,9 +1059,9 @@ class App { /** * @brief Register template engine class - * + * * If $name is "", is used class static property $class::$name - * + * * @param string $class * @param string $name */ @@ -993,7 +1079,7 @@ class App { /** * @brief Return template engine instance. - * + * * If $name is not defined, return engine defined by theme, * or default * @@ -1058,6 +1144,9 @@ class App { } function save_timestamp($stamp, $value) { + if (!isset($this->config['system']['profiler']) || !$this->config['system']['profiler']) + return; + $duration = (float)(microtime(true)-$stamp); if (!isset($this->performance[$value])) { @@ -1079,6 +1168,52 @@ class App { } + /** + * @brief Log active processes into the "process" table + */ + function start_process() { + $trace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 1); + + $command = basename($trace[0]["file"]); + + $this->remove_inactive_processes(); + + q("START TRANSACTION"); + + $r = q("SELECT `pid` FROM `process` WHERE `pid` = %d", intval(getmypid())); + if(!dbm::is_result($r)) { + q("INSERT INTO `process` (`pid`,`command`,`created`) VALUES (%d, '%s', '%s')", + intval(getmypid()), + dbesc($command), + dbesc(datetime_convert())); + } + q("COMMIT"); + } + + /** + * @brief Remove inactive processes + */ + function remove_inactive_processes() { + q("START TRANSACTION"); + + $r = q("SELECT `pid` FROM `process`"); + if(dbm::is_result($r)) { + foreach ($r AS $process) { + if (!posix_kill($process["pid"], 0)) { + q("DELETE FROM `process` WHERE `pid` = %d", intval($process["pid"])); + } + } + } + q("COMMIT"); + } + + /** + * @brief Remove the active process from the "process" table + */ + function end_process() { + q("DELETE FROM `process` WHERE `pid` = %d", intval(getmypid())); + } + /** * @brief Returns a string with a callstack. Can be used for logging. * @@ -1098,11 +1233,6 @@ class App { return implode(", ", $callstack); } - function mark_timestamp($mark) { - //$this->performance["markstart"] -= microtime(true) - $this->performance["marktime"]; - $this->performance["markstart"] = microtime(true) - $this->performance["markstart"] - $this->performance["marktime"]; - } - function get_useragent() { return(FRIENDICA_PLATFORM." '".FRIENDICA_CODENAME."' ".FRIENDICA_VERSION."-".DB_UPDATE_VERSION."; ".$this->get_baseurl()); } @@ -1111,6 +1241,77 @@ class App { return($this->is_friendica_app); } + /** + * @brief Checks if the site is called via a backend process + * + * This isn't a perfect solution. But we need this check very early. + * So we cannot wait until the modules are loaded. + * + * @return bool Is it a known backend? + */ + function is_backend() { + $backend = array(); + $backend[] = "_well_known"; + $backend[] = "api"; + $backend[] = "dfrn_notify"; + $backend[] = "fetch"; + $backend[] = "hcard"; + $backend[] = "hostxrd"; + $backend[] = "nodeinfo"; + $backend[] = "noscrape"; + $backend[] = "p"; + $backend[] = "poco"; + $backend[] = "post"; + $backend[] = "proxy"; + $backend[] = "pubsub"; + $backend[] = "pubsubhubbub"; + $backend[] = "receive"; + $backend[] = "rsd_xml"; + $backend[] = "salmon"; + $backend[] = "statistics_json"; + $backend[] = "xrd"; + + if (in_array($this->module, $backend)) + return(true); + else + return($this->backend); + } + + /** + * @brief Checks if the maximum number of database processes is reached + * + * @return bool Is the limit reached? + */ + function max_processes_reached() { + + // Is the function called statically? + if (!is_object($this)) + return(self::$a->max_processes_reached()); + + if ($this->is_backend()) { + $process = "backend"; + $max_processes = get_config('system', 'max_processes_backend'); + if (intval($max_processes) == 0) + $max_processes = 5; + } else { + $process = "frontend"; + $max_processes = get_config('system', 'max_processes_frontend'); + if (intval($max_processes) == 0) + $max_processes = 20; + } + + $processlist = dbm::processlist(); + if ($processlist["list"] != "") { + logger("Processcheck: Processes: ".$processlist["amount"]." - Processlist: ".$processlist["list"], LOGGER_DEBUG); + + if ($processlist["amount"] > $max_processes) { + logger("Processcheck: Maximum number of processes for ".$process." tasks (".$max_processes.") reached.", LOGGER_DEBUG); + return true; + } + } + return false; + } + /** * @brief Checks if the maximum load is reached * @@ -1118,14 +1319,26 @@ class App { */ function maxload_reached() { - $maxsysload = intval(get_config('system', 'maxloadavg')); - if ($maxsysload < 1) - $maxsysload = 50; + // Is the function called statically? + if (!is_object($this)) + return(self::$a->maxload_reached()); + + if ($this->is_backend()) { + $process = "backend"; + $maxsysload = intval(get_config('system', 'maxloadavg')); + if ($maxsysload < 1) + $maxsysload = 50; + } else { + $process = "frontend"; + $maxsysload = intval(get_config('system','maxloadavg_frontend')); + if ($maxsysload < 1) + $maxsysload = 50; + } $load = current_load(); if ($load) { if (intval($load) > $maxsysload) { - logger('system: load '.$load.' too high.'); + logger('system: load '.$load.' for '.$process.' tasks ('.$maxsysload.') too high.'); return true; } } @@ -1153,18 +1366,51 @@ class App { logger("killed stale process"); // Calling a new instance if ($task != "") - proc_run('php', $task); + proc_run(PRIORITY_MEDIUM, $task); } return true; } } return false; } + + function proc_run($args) { + + // Add the php path if it is a php call + if (count($args) && ($args[0] === 'php' OR is_int($args[0]))) { + + // If the last worker fork was less than 10 seconds before then don't fork another one. + // This should prevent the forking of masses of workers. + if (get_config("system", "worker")) { + if ((time() - get_config("system", "proc_run_started")) < 10) + return; + + // Set the timestamp of the last proc_run + set_config("system", "proc_run_started", time()); + } + + $args[0] = ((x($this->config,'php_path')) && (strlen($this->config['php_path'])) ? $this->config['php_path'] : 'php'); + } + + // add baseurl to args. cli scripts can't construct it + $args[] = $this->get_baseurl(); + + for($x = 0; $x < count($args); $x ++) + $args[$x] = escapeshellarg($args[$x]); + + $cmdline = implode($args," "); + + if(get_config('system','proc_windows')) + proc_close(proc_open('cmd /c start /b ' . $cmdline,array(),$foo,dirname(__FILE__))); + else + proc_close(proc_open($cmdline." &",array(),$foo,dirname(__FILE__))); + + } } /** * @brief Retrieve the App structure - * + * * Useful in functions which require it but don't get it passed to them */ function get_app() { @@ -1275,7 +1521,7 @@ function check_db() { $build = DB_UPDATE_VERSION; } if($build != DB_UPDATE_VERSION) - proc_run('php', 'include/dbupdate.php'); + proc_run(PRIORITY_CRITICAL, 'include/dbupdate.php'); } @@ -1418,14 +1664,14 @@ function run_update_function($x) { * and mark it uninstalled in the database (for now we'll remove it). * Then go through the config list and if we have a plugin that isn't installed, * call the install procedure and add it to the database. - * + * * @param App $a * */ function check_plugins(&$a) { $r = q("SELECT * FROM `addon` WHERE `installed` = 1"); - if(count($r)) + if(dbm::is_result($r)) $installed = $r; else $installed = array(); @@ -1484,17 +1730,17 @@ function get_guid($size=16, $prefix = "") { } } -/** +/** * @brief Wrapper for adding a login box. - * + * * @param bool $register * If $register == true provide a registration link. * This will most always depend on the value of $a->config['register_policy']. * @param bool $hiddens - * + * * @return string * Returns the complete html for inserting into the page - * + * * @hooks 'login_hook' * string $o */ @@ -1563,7 +1809,10 @@ function login($register = false, $hiddens=false) { * @brief Used to end the current process, after saving session state. */ function killme() { - session_write_close(); + + if (!get_app()->is_backend()) + session_write_close(); + exit; } @@ -1581,7 +1830,7 @@ function goaway($s) { /** * @brief Returns the user id of locally logged in user or false. - * + * * @return int|bool user id or false */ function local_user() { @@ -1592,7 +1841,7 @@ function local_user() { /** * @brief Returns contact id of authenticated site visitor or false - * + * * @return int|bool visitor_id or false */ function remote_user() { @@ -1648,13 +1897,14 @@ function get_max_import_size() { * @brief Wrap calls to proc_close(proc_open()) and call hook * so plugins can take part in process :) * - * @param string $cmd program to run - * + * @param (string|integer) $cmd program to run or priority + * * next args are passed as $cmd command line * e.g.: proc_run("ls","-la","/tmp"); + * or: proc_run(PRIORITY_HIGH, "include/notifier.php", "drop", $drop_id); * * @note $cmd and string args are surrounded with "" - * + * * @hooks 'proc_run' * array $arr */ @@ -1665,7 +1915,7 @@ function proc_run($cmd){ $args = func_get_args(); $newargs = array(); - if(! count($args)) + if (!count($args)) return; // expand any arrays @@ -1675,8 +1925,7 @@ function proc_run($cmd){ foreach($arg as $n) { $newargs[] = $n; } - } - else + } else $newargs[] = $arg; } @@ -1685,62 +1934,55 @@ function proc_run($cmd){ $arr = array('args' => $args, 'run_cmd' => true); call_hooks("proc_run", $arr); - if(! $arr['run_cmd']) + if (!$arr['run_cmd'] OR !count($args)) return; - if(count($args) && $args[0] === 'php') { - - if (get_config("system", "worker")) { - $argv = $args; - array_shift($argv); - - $parameters = json_encode($argv); - $found = q("SELECT `id` FROM `workerqueue` WHERE `parameter` = '%s'", - dbesc($parameters)); - - if (!$found) - q("INSERT INTO `workerqueue` (`parameter`, `created`, `priority`) - VALUES ('%s', '%s', %d)", - dbesc($parameters), - dbesc(datetime_convert()), - intval(0)); - - // Should we quit and wait for the poller to be called as a cronjob? - if (get_config("system", "worker_dont_fork")) - return; - - // Checking number of workers - $workers = q("SELECT COUNT(*) AS `workers` FROM `workerqueue` WHERE `executed` != '0000-00-00 00:00:00'"); - - // Get number of allowed number of worker threads - $queues = intval(get_config("system", "worker_queues")); - - if ($queues == 0) - $queues = 4; - - // If there are already enough workers running, don't fork another one - if ($workers[0]["workers"] >= $queues) - return; - - // Now call the poller to execute the jobs that we just added to the queue - $args = array("php", "include/poller.php", "no_cron"); - } - - $args[0] = ((x($a->config,'php_path')) && (strlen($a->config['php_path'])) ? $a->config['php_path'] : 'php'); + if (!get_config("system", "worker") OR + (($args[0] != 'php') AND !is_int($args[0]))) { + $a->proc_run($args); + return; } - // add baseurl to args. cli scripts can't construct it - $args[] = $a->get_baseurl(); - - for($x = 0; $x < count($args); $x ++) - $args[$x] = escapeshellarg($args[$x]); - - $cmdline = implode($args," "); - - if(get_config('system','proc_windows')) - proc_close(proc_open('cmd /c start /b ' . $cmdline,array(),$foo,dirname(__FILE__))); + if (is_int($args[0])) + $priority = $args[0]; else - proc_close(proc_open($cmdline." &",array(),$foo,dirname(__FILE__))); + $priority = PRIORITY_MEDIUM; + + $argv = $args; + array_shift($argv); + + $parameters = json_encode($argv); + $found = q("SELECT `id` FROM `workerqueue` WHERE `parameter` = '%s'", + dbesc($parameters)); + + if (!$found) + q("INSERT INTO `workerqueue` (`parameter`, `created`, `priority`) + VALUES ('%s', '%s', %d)", + dbesc($parameters), + dbesc(datetime_convert()), + intval($priority)); + + // Should we quit and wait for the poller to be called as a cronjob? + if (get_config("system", "worker_dont_fork")) + return; + + // Checking number of workers + $workers = q("SELECT COUNT(*) AS `workers` FROM `workerqueue` WHERE `executed` != '0000-00-00 00:00:00'"); + + // Get number of allowed number of worker threads + $queues = intval(get_config("system", "worker_queues")); + + if ($queues == 0) + $queues = 4; + + // If there are already enough workers running, don't fork another one + if ($workers[0]["workers"] >= $queues) + return; + + // Now call the poller to execute the jobs that we just added to the queue + $args = array("php", "include/poller.php", "no_cron"); + + $a->proc_run($args); } function current_theme(){ @@ -1756,7 +1998,7 @@ function current_theme(){ $r = q("select theme from user where uid = %d limit 1", intval($a->profile_uid) ); - if($r) + if(dbm::is_result($r)) $page_theme = $r[0]['theme']; } @@ -1821,9 +2063,9 @@ function current_theme(){ /** * @brief Return full URL to theme which is currently in effect. - * + * * Provide a sane default if nothing is chosen or the specified theme does not exist. - * + * * @return string */ function current_theme_url() { @@ -1869,7 +2111,7 @@ function feed_birthday($uid,$tz) { intval($uid) ); - if($p && count($p)) { + if(dbm::is_result($p)) { $tmp_dob = substr($p[0]['dob'],5); if(intval($tmp_dob)) { $y = datetime_convert($tz,$tz,'now','Y'); @@ -2165,12 +2407,12 @@ function current_load() { if (!is_array($load_arr)) return false; - return max($load_arr); + return max($load_arr[0], $load_arr[1]); } /** * @brief get c-style args - * + * * @return int */ function argc() { @@ -2179,7 +2421,7 @@ function argc() { /** * @brief Returns the value of a argv key - * + * * @param int $x argv key * @return string Value of the argv key */ @@ -2192,12 +2434,12 @@ function argv($x) { /** * @brief Get the data which is needed for infinite scroll - * + * * For invinite scroll we need the page number of the actual page * and the the URI where the content of the next page comes from. * This data is needed for the js part in main.js. * Note: infinite scroll does only work for the network page (module) - * + * * @param string $module The name of the module (e.g. "network") * @return array Of infinite scroll data * 'pageno' => $pageno The number of the actual page diff --git a/database.sql b/database.sql index 8269a8bba..c5fd49ba0 100644 --- a/database.sql +++ b/database.sql @@ -1,6 +1,6 @@ -- ------------------------------------------ --- Friendica 3.5-dev (Asparagus) --- DB_UPDATE_VERSION 1196 +-- Friendica 3.5.1-dev (Asparagus) +-- DB_UPDATE_VERSION 1205 -- ------------------------------------------ @@ -16,7 +16,7 @@ CREATE TABLE IF NOT EXISTS `addon` ( `timestamp` bigint(20) NOT NULL DEFAULT 0, `plugin_admin` tinyint(1) NOT NULL DEFAULT 0, PRIMARY KEY(`id`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE attach @@ -31,12 +31,12 @@ CREATE TABLE IF NOT EXISTS `attach` ( `data` longblob NOT NULL, `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `edited` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `allow_cid` mediumtext NOT NULL, - `allow_gid` mediumtext NOT NULL, - `deny_cid` mediumtext NOT NULL, - `deny_gid` mediumtext NOT NULL, + `allow_cid` mediumtext, + `allow_gid` mediumtext, + `deny_cid` mediumtext, + `deny_gid` mediumtext, PRIMARY KEY(`id`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE auth_codes @@ -48,19 +48,19 @@ CREATE TABLE IF NOT EXISTS `auth_codes` ( `expires` int(11) NOT NULL DEFAULT 0, `scope` varchar(250) NOT NULL DEFAULT '', PRIMARY KEY(`id`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE cache -- CREATE TABLE IF NOT EXISTS `cache` ( `k` varchar(255) NOT NULL, - `v` text NOT NULL, + `v` text, `expire_mode` int(11) NOT NULL DEFAULT 0, `updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - PRIMARY KEY(`k`), + PRIMARY KEY(`k`(191)), INDEX `updated` (`updated`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE challenge @@ -73,7 +73,7 @@ CREATE TABLE IF NOT EXISTS `challenge` ( `type` varchar(255) NOT NULL DEFAULT '', `last_update` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY(`id`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE clients @@ -86,7 +86,7 @@ CREATE TABLE IF NOT EXISTS `clients` ( `icon` text, `uid` int(11) NOT NULL DEFAULT 0, PRIMARY KEY(`client_id`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE config @@ -95,10 +95,10 @@ CREATE TABLE IF NOT EXISTS `config` ( `id` int(10) unsigned NOT NULL auto_increment, `cat` varchar(255) NOT NULL DEFAULT '', `k` varchar(255) NOT NULL DEFAULT '', - `v` text NOT NULL, + `v` text, PRIMARY KEY(`id`), - INDEX `cat_k` (`cat`(30),`k`(30)) -) DEFAULT CHARSET=utf8; + UNIQUE INDEX `cat_k` (`cat`(30),`k`(30)) +) DEFAULT CHARSET=utf8mb4; -- -- TABLE contact @@ -115,29 +115,30 @@ CREATE TABLE IF NOT EXISTS `contact` ( `name` varchar(255) NOT NULL DEFAULT '', `nick` varchar(255) NOT NULL DEFAULT '', `location` varchar(255) NOT NULL DEFAULT '', - `about` text NOT NULL, - `keywords` text NOT NULL, + `about` text, + `keywords` text, `gender` varchar(32) NOT NULL DEFAULT '', + `xmpp` varchar(255) NOT NULL DEFAULT '', `attag` varchar(255) NOT NULL DEFAULT '', `avatar` varchar(255) NOT NULL DEFAULT '', - `photo` text NOT NULL, - `thumb` text NOT NULL, - `micro` text NOT NULL, - `site-pubkey` text NOT NULL, + `photo` text, + `thumb` text, + `micro` text, + `site-pubkey` text, `issued-id` varchar(255) NOT NULL DEFAULT '', `dfrn-id` varchar(255) NOT NULL DEFAULT '', `url` varchar(255) NOT NULL DEFAULT '', `nurl` varchar(255) NOT NULL DEFAULT '', `addr` varchar(255) NOT NULL DEFAULT '', `alias` varchar(255) NOT NULL DEFAULT '', - `pubkey` text NOT NULL, - `prvkey` text NOT NULL, + `pubkey` text, + `prvkey` text, `batch` varchar(255) NOT NULL DEFAULT '', - `request` text NOT NULL, - `notify` text NOT NULL, - `poll` text NOT NULL, - `confirm` text NOT NULL, - `poco` text NOT NULL, + `request` text, + `notify` text, + `poll` text, + `confirm` text, + `poco` text, `aes_allow` tinyint(1) NOT NULL DEFAULT 0, `ret-aes` tinyint(1) NOT NULL DEFAULT 0, `usehub` tinyint(1) NOT NULL DEFAULT 0, @@ -157,23 +158,24 @@ CREATE TABLE IF NOT EXISTS `contact` ( `writable` tinyint(1) NOT NULL DEFAULT 0, `forum` tinyint(1) NOT NULL DEFAULT 0, `prv` tinyint(1) NOT NULL DEFAULT 0, + `contact-type` int(11) unsigned NOT NULL DEFAULT 0, `hidden` tinyint(1) NOT NULL DEFAULT 0, `archive` tinyint(1) NOT NULL DEFAULT 0, `pending` tinyint(1) NOT NULL DEFAULT 1, `rating` tinyint(1) NOT NULL DEFAULT 0, - `reason` text NOT NULL, + `reason` text, `closeness` tinyint(2) NOT NULL DEFAULT 99, - `info` mediumtext NOT NULL, + `info` mediumtext, `profile-id` int(11) NOT NULL DEFAULT 0, `bdyear` varchar(4) NOT NULL DEFAULT '', `bd` date NOT NULL DEFAULT '0000-00-00', `notify_new_posts` tinyint(1) NOT NULL DEFAULT 0, `fetch_further_information` tinyint(1) NOT NULL DEFAULT 0, - `ffi_keyword_blacklist` mediumtext NOT NULL, + `ffi_keyword_blacklist` mediumtext, PRIMARY KEY(`id`), INDEX `uid` (`uid`), INDEX `nurl` (`nurl`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE conv @@ -181,15 +183,15 @@ CREATE TABLE IF NOT EXISTS `contact` ( CREATE TABLE IF NOT EXISTS `conv` ( `id` int(10) unsigned NOT NULL auto_increment, `guid` varchar(64) NOT NULL DEFAULT '', - `recips` mediumtext NOT NULL, + `recips` mediumtext, `uid` int(11) NOT NULL DEFAULT 0, `creator` varchar(255) NOT NULL DEFAULT '', `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `subject` mediumtext NOT NULL, + `subject` mediumtext, PRIMARY KEY(`id`), INDEX `uid` (`uid`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE deliverq @@ -200,7 +202,7 @@ CREATE TABLE IF NOT EXISTS `deliverq` ( `item` int(11) NOT NULL DEFAULT 0, `contact` int(11) NOT NULL DEFAULT 0, PRIMARY KEY(`id`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE event @@ -214,26 +216,27 @@ CREATE TABLE IF NOT EXISTS `event` ( `edited` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `start` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `finish` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `summary` text NOT NULL, - `desc` text NOT NULL, - `location` text NOT NULL, + `summary` text, + `desc` text, + `location` text, `type` varchar(255) NOT NULL DEFAULT '', `nofinish` tinyint(1) NOT NULL DEFAULT 0, `adjust` tinyint(1) NOT NULL DEFAULT 1, `ignore` tinyint(1) unsigned NOT NULL DEFAULT 0, - `allow_cid` mediumtext NOT NULL, - `allow_gid` mediumtext NOT NULL, - `deny_cid` mediumtext NOT NULL, - `deny_gid` mediumtext NOT NULL, + `allow_cid` mediumtext, + `allow_gid` mediumtext, + `deny_cid` mediumtext, + `deny_gid` mediumtext, PRIMARY KEY(`id`), INDEX `uid` (`uid`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE fcontact -- CREATE TABLE IF NOT EXISTS `fcontact` ( `id` int(10) unsigned NOT NULL auto_increment, + `guid` varchar(255) NOT NULL DEFAULT '', `url` varchar(255) NOT NULL DEFAULT '', `name` varchar(255) NOT NULL DEFAULT '', `photo` varchar(255) NOT NULL DEFAULT '', @@ -247,11 +250,11 @@ CREATE TABLE IF NOT EXISTS `fcontact` ( `priority` tinyint(1) NOT NULL DEFAULT 0, `network` varchar(32) NOT NULL DEFAULT '', `alias` varchar(255) NOT NULL DEFAULT '', - `pubkey` text NOT NULL, + `pubkey` text, `updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY(`id`), INDEX `addr` (`addr`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE ffinder @@ -262,7 +265,7 @@ CREATE TABLE IF NOT EXISTS `ffinder` ( `cid` int(10) unsigned NOT NULL DEFAULT 0, `fid` int(10) unsigned NOT NULL DEFAULT 0, PRIMARY KEY(`id`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE fserver @@ -271,10 +274,10 @@ CREATE TABLE IF NOT EXISTS `fserver` ( `id` int(11) NOT NULL auto_increment, `server` varchar(255) NOT NULL DEFAULT '', `posturl` varchar(255) NOT NULL DEFAULT '', - `key` text NOT NULL, + `key` text, PRIMARY KEY(`id`), INDEX `server` (`server`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE fsuggest @@ -287,10 +290,10 @@ CREATE TABLE IF NOT EXISTS `fsuggest` ( `url` varchar(255) NOT NULL DEFAULT '', `request` varchar(255) NOT NULL DEFAULT '', `photo` varchar(255) NOT NULL DEFAULT '', - `note` text NOT NULL, + `note` text, `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY(`id`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE gcign @@ -302,7 +305,7 @@ CREATE TABLE IF NOT EXISTS `gcign` ( PRIMARY KEY(`id`), INDEX `uid` (`uid`), INDEX `gcid` (`gcid`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE gcontact @@ -320,16 +323,17 @@ CREATE TABLE IF NOT EXISTS `gcontact` ( `last_contact` datetime DEFAULT '0000-00-00 00:00:00', `last_failure` datetime DEFAULT '0000-00-00 00:00:00', `location` varchar(255) NOT NULL DEFAULT '', - `about` text NOT NULL, - `keywords` text NOT NULL, + `about` text, + `keywords` text, `gender` varchar(32) NOT NULL DEFAULT '', `birthday` varchar(32) NOT NULL DEFAULT '0000-00-00', `community` tinyint(1) NOT NULL DEFAULT 0, + `contact-type` tinyint(1) NOT NULL DEFAULT -1, `hide` tinyint(1) NOT NULL DEFAULT 0, `nsfw` tinyint(1) NOT NULL DEFAULT 0, `network` varchar(255) NOT NULL DEFAULT '', `addr` varchar(255) NOT NULL DEFAULT '', - `notify` text NOT NULL, + `notify` text, `alias` varchar(255) NOT NULL DEFAULT '', `generation` tinyint(3) NOT NULL DEFAULT 0, `server_url` varchar(255) NOT NULL DEFAULT '', @@ -339,7 +343,7 @@ CREATE TABLE IF NOT EXISTS `gcontact` ( INDEX `nick` (`nick`), INDEX `addr` (`addr`), INDEX `updated` (`updated`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE glink @@ -355,7 +359,7 @@ CREATE TABLE IF NOT EXISTS `glink` ( INDEX `cid_uid_gcid_zcid` (`cid`,`uid`,`gcid`,`zcid`), INDEX `gcid` (`gcid`), INDEX `zcid` (`zcid`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE group @@ -368,7 +372,7 @@ CREATE TABLE IF NOT EXISTS `group` ( `name` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY(`id`), INDEX `uid` (`uid`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE group_member @@ -380,7 +384,7 @@ CREATE TABLE IF NOT EXISTS `group_member` ( `contact-id` int(10) unsigned NOT NULL DEFAULT 0, PRIMARY KEY(`id`), INDEX `uid_gid_contactid` (`uid`,`gid`,`contact-id`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE gserver @@ -391,7 +395,7 @@ CREATE TABLE IF NOT EXISTS `gserver` ( `nurl` varchar(255) NOT NULL DEFAULT '', `version` varchar(255) NOT NULL DEFAULT '', `site_name` varchar(255) NOT NULL DEFAULT '', - `info` text NOT NULL, + `info` text, `register_policy` tinyint(1) NOT NULL DEFAULT 0, `poco` varchar(255) NOT NULL DEFAULT '', `noscrape` varchar(255) NOT NULL DEFAULT '', @@ -403,7 +407,7 @@ CREATE TABLE IF NOT EXISTS `gserver` ( `last_failure` datetime DEFAULT '0000-00-00 00:00:00', PRIMARY KEY(`id`), INDEX `nurl` (`nurl`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE hook @@ -416,7 +420,7 @@ CREATE TABLE IF NOT EXISTS `hook` ( `priority` int(11) unsigned NOT NULL DEFAULT 0, PRIMARY KEY(`id`), INDEX `hook_file_function` (`hook`(30),`file`(60),`function`(30)) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE intro @@ -428,13 +432,13 @@ CREATE TABLE IF NOT EXISTS `intro` ( `contact-id` int(11) NOT NULL DEFAULT 0, `knowyou` tinyint(1) NOT NULL DEFAULT 0, `duplex` tinyint(1) NOT NULL DEFAULT 0, - `note` text NOT NULL, + `note` text, `hash` varchar(255) NOT NULL DEFAULT '', `datetime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `blocked` tinyint(1) NOT NULL DEFAULT 1, `ignore` tinyint(1) NOT NULL DEFAULT 0, PRIMARY KEY(`id`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE item @@ -458,34 +462,36 @@ CREATE TABLE IF NOT EXISTS `item` ( `commented` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `received` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `changed` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `owner-id` int(11) NOT NULL DEFAULT 0, `owner-name` varchar(255) NOT NULL DEFAULT '', `owner-link` varchar(255) NOT NULL DEFAULT '', `owner-avatar` varchar(255) NOT NULL DEFAULT '', + `author-id` int(11) NOT NULL DEFAULT 0, `author-name` varchar(255) NOT NULL DEFAULT '', `author-link` varchar(255) NOT NULL DEFAULT '', `author-avatar` varchar(255) NOT NULL DEFAULT '', `title` varchar(255) NOT NULL DEFAULT '', - `body` mediumtext NOT NULL, + `body` mediumtext, `app` varchar(255) NOT NULL DEFAULT '', `verb` varchar(255) NOT NULL DEFAULT '', `object-type` varchar(255) NOT NULL DEFAULT '', - `object` text NOT NULL, + `object` text, `target-type` varchar(255) NOT NULL DEFAULT '', - `target` text NOT NULL, - `postopts` text NOT NULL, + `target` text, + `postopts` text, `plink` varchar(255) NOT NULL DEFAULT '', `resource-id` varchar(255) NOT NULL DEFAULT '', `event-id` int(11) NOT NULL DEFAULT 0, - `tag` mediumtext NOT NULL, - `attach` mediumtext NOT NULL, - `inform` mediumtext NOT NULL, - `file` mediumtext NOT NULL, + `tag` mediumtext, + `attach` mediumtext, + `inform` mediumtext, + `file` mediumtext, `location` varchar(255) NOT NULL DEFAULT '', `coord` varchar(255) NOT NULL DEFAULT '', - `allow_cid` mediumtext NOT NULL, - `allow_gid` mediumtext NOT NULL, - `deny_cid` mediumtext NOT NULL, - `deny_gid` mediumtext NOT NULL, + `allow_cid` mediumtext, + `allow_gid` mediumtext, + `deny_cid` mediumtext, + `deny_gid` mediumtext, `private` tinyint(1) NOT NULL DEFAULT 0, `pubmail` tinyint(1) NOT NULL DEFAULT 0, `moderated` tinyint(1) NOT NULL DEFAULT 0, @@ -501,7 +507,7 @@ CREATE TABLE IF NOT EXISTS `item` ( `mention` tinyint(1) NOT NULL DEFAULT 0, `network` varchar(32) NOT NULL DEFAULT '', `rendered-hash` varchar(32) NOT NULL DEFAULT '', - `rendered-html` mediumtext NOT NULL, + `rendered-html` mediumtext, `global` tinyint(1) NOT NULL DEFAULT 0, PRIMARY KEY(`id`), INDEX `guid` (`guid`), @@ -519,15 +525,18 @@ CREATE TABLE IF NOT EXISTS `item` ( INDEX `uid_title` (`uid`,`title`), INDEX `uid_thrparent` (`uid`,`thr-parent`), INDEX `uid_parenturi` (`uid`,`parent-uri`), + INDEX `uid_contactid_id` (`uid`,`contact-id`,`id`), INDEX `uid_contactid_created` (`uid`,`contact-id`,`created`), INDEX `gcontactid_uid_created` (`gcontact-id`,`uid`,`created`), + INDEX `authorid_created` (`author-id`,`created`), + INDEX `ownerid_created` (`owner-id`,`created`), INDEX `wall_body` (`wall`,`body`(6)), INDEX `uid_visible_moderated_created` (`uid`,`visible`,`moderated`,`created`), INDEX `uid_uri` (`uid`,`uri`), INDEX `uid_wall_created` (`uid`,`wall`,`created`), INDEX `resource-id` (`resource-id`), INDEX `uid_type` (`uid`,`type`), - INDEX `uid_starred` (`uid`,`starred`), + INDEX `uid_starred_id` (`uid`,`starred`,`id`), INDEX `contactid_allowcid_allowpid_denycid_denygid` (`contact-id`,`allow_cid`(10),`allow_gid`(10),`deny_cid`(10),`deny_gid`(10)), INDEX `uid_wall_parent_created` (`uid`,`wall`,`parent`,`created`), INDEX `uid_type_changed` (`uid`,`type`,`changed`), @@ -537,7 +546,7 @@ CREATE TABLE IF NOT EXISTS `item` ( INDEX `uid_eventid` (`uid`,`event-id`), INDEX `uid_authorlink` (`uid`,`author-link`), INDEX `uid_ownerlink` (`uid`,`owner-link`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE item_id @@ -553,7 +562,7 @@ CREATE TABLE IF NOT EXISTS `item_id` ( INDEX `sid` (`sid`), INDEX `service` (`service`), INDEX `iid` (`iid`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE locks @@ -564,7 +573,7 @@ CREATE TABLE IF NOT EXISTS `locks` ( `locked` tinyint(1) NOT NULL DEFAULT 0, `created` datetime DEFAULT '0000-00-00 00:00:00', PRIMARY KEY(`id`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE mail @@ -579,7 +588,7 @@ CREATE TABLE IF NOT EXISTS `mail` ( `contact-id` varchar(255) NOT NULL DEFAULT '', `convid` int(11) unsigned NOT NULL DEFAULT 0, `title` varchar(255) NOT NULL DEFAULT '', - `body` mediumtext NOT NULL, + `body` mediumtext, `seen` tinyint(1) NOT NULL DEFAULT 0, `reply` tinyint(1) NOT NULL DEFAULT 0, `replied` tinyint(1) NOT NULL DEFAULT 0, @@ -594,7 +603,7 @@ CREATE TABLE IF NOT EXISTS `mail` ( INDEX `reply` (`reply`), INDEX `uri` (`uri`), INDEX `parent-uri` (`parent-uri`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE mailacct @@ -607,14 +616,14 @@ CREATE TABLE IF NOT EXISTS `mailacct` ( `ssltype` varchar(16) NOT NULL DEFAULT '', `mailbox` varchar(255) NOT NULL DEFAULT '', `user` varchar(255) NOT NULL DEFAULT '', - `pass` text NOT NULL, + `pass` text, `reply_to` varchar(255) NOT NULL DEFAULT '', `action` int(11) NOT NULL DEFAULT 0, `movetofolder` varchar(255) NOT NULL DEFAULT '', `pubmail` tinyint(1) NOT NULL DEFAULT 0, `last_check` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY(`id`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE manage @@ -625,7 +634,7 @@ CREATE TABLE IF NOT EXISTS `manage` ( `mid` int(11) NOT NULL DEFAULT 0, PRIMARY KEY(`id`), INDEX `uid_mid` (`uid`,`mid`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE notify @@ -638,7 +647,7 @@ CREATE TABLE IF NOT EXISTS `notify` ( `url` varchar(255) NOT NULL DEFAULT '', `photo` varchar(255) NOT NULL DEFAULT '', `date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `msg` mediumtext NOT NULL, + `msg` mediumtext, `uid` int(11) NOT NULL DEFAULT 0, `link` varchar(255) NOT NULL DEFAULT '', `iid` int(11) NOT NULL DEFAULT 0, @@ -646,9 +655,11 @@ CREATE TABLE IF NOT EXISTS `notify` ( `seen` tinyint(1) NOT NULL DEFAULT 0, `verb` varchar(255) NOT NULL DEFAULT '', `otype` varchar(16) NOT NULL DEFAULT '', + `name_cache` tinytext, + `msg_name` mediumtext, PRIMARY KEY(`id`), INDEX `uid` (`uid`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE notify-threads @@ -662,18 +673,18 @@ CREATE TABLE IF NOT EXISTS `notify-threads` ( PRIMARY KEY(`id`), INDEX `master-parent-item` (`master-parent-item`), INDEX `receiver-uid` (`receiver-uid`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE oembed -- CREATE TABLE IF NOT EXISTS `oembed` ( `url` varchar(255) NOT NULL, - `content` text NOT NULL, + `content` text, `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - PRIMARY KEY(`url`), + PRIMARY KEY(`url`(191)), INDEX `created` (`created`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE parsed_url @@ -682,11 +693,11 @@ CREATE TABLE IF NOT EXISTS `parsed_url` ( `url` varchar(255) NOT NULL, `guessing` tinyint(1) NOT NULL DEFAULT 0, `oembed` tinyint(1) NOT NULL DEFAULT 0, - `content` text NOT NULL, + `content` text, `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - PRIMARY KEY(`url`,`guessing`,`oembed`), + PRIMARY KEY(`url`(191),`guessing`,`oembed`), INDEX `created` (`created`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE pconfig @@ -696,10 +707,10 @@ CREATE TABLE IF NOT EXISTS `pconfig` ( `uid` int(11) NOT NULL DEFAULT 0, `cat` varchar(255) NOT NULL DEFAULT '', `k` varchar(255) NOT NULL DEFAULT '', - `v` mediumtext NOT NULL, + `v` mediumtext, PRIMARY KEY(`id`), - INDEX `uid_cat_k` (`uid`,`cat`(30),`k`(30)) -) DEFAULT CHARSET=utf8; + UNIQUE INDEX `uid_cat_k` (`uid`,`cat`(30),`k`(30)) +) DEFAULT CHARSET=utf8mb4; -- -- TABLE photo @@ -713,7 +724,7 @@ CREATE TABLE IF NOT EXISTS `photo` ( `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `edited` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `title` varchar(255) NOT NULL DEFAULT '', - `desc` text NOT NULL, + `desc` text, `album` varchar(255) NOT NULL DEFAULT '', `filename` varchar(255) NOT NULL DEFAULT '', `type` varchar(128) NOT NULL DEFAULT 'image/jpeg', @@ -723,15 +734,15 @@ CREATE TABLE IF NOT EXISTS `photo` ( `data` mediumblob NOT NULL, `scale` tinyint(3) NOT NULL DEFAULT 0, `profile` tinyint(1) NOT NULL DEFAULT 0, - `allow_cid` mediumtext NOT NULL, - `allow_gid` mediumtext NOT NULL, - `deny_cid` mediumtext NOT NULL, - `deny_gid` mediumtext NOT NULL, + `allow_cid` mediumtext, + `allow_gid` mediumtext, + `deny_cid` mediumtext, + `deny_gid` mediumtext, PRIMARY KEY(`id`), INDEX `uid` (`uid`), INDEX `resource-id` (`resource-id`), INDEX `guid` (`guid`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE poll @@ -739,19 +750,19 @@ CREATE TABLE IF NOT EXISTS `photo` ( CREATE TABLE IF NOT EXISTS `poll` ( `id` int(11) NOT NULL auto_increment, `uid` int(11) NOT NULL DEFAULT 0, - `q0` mediumtext NOT NULL, - `q1` mediumtext NOT NULL, - `q2` mediumtext NOT NULL, - `q3` mediumtext NOT NULL, - `q4` mediumtext NOT NULL, - `q5` mediumtext NOT NULL, - `q6` mediumtext NOT NULL, - `q7` mediumtext NOT NULL, - `q8` mediumtext NOT NULL, - `q9` mediumtext NOT NULL, + `q0` mediumtext, + `q1` mediumtext, + `q2` mediumtext, + `q3` mediumtext, + `q4` mediumtext, + `q5` mediumtext, + `q6` mediumtext, + `q7` mediumtext, + `q8` mediumtext, + `q9` mediumtext, PRIMARY KEY(`id`), INDEX `uid` (`uid`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE poll_result @@ -763,7 +774,18 @@ CREATE TABLE IF NOT EXISTS `poll_result` ( PRIMARY KEY(`id`), INDEX `poll_id` (`poll_id`), INDEX `choice` (`choice`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; + +-- +-- TABLE process +-- +CREATE TABLE IF NOT EXISTS `process` ( + `pid` int(10) unsigned NOT NULL, + `command` varchar(32) NOT NULL DEFAULT '', + `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + PRIMARY KEY(`pid`), + INDEX `command` (`command`) +) DEFAULT CHARSET=utf8mb4; -- -- TABLE profile @@ -785,34 +807,35 @@ CREATE TABLE IF NOT EXISTS `profile` ( `hometown` varchar(255) NOT NULL DEFAULT '', `gender` varchar(32) NOT NULL DEFAULT '', `marital` varchar(255) NOT NULL DEFAULT '', - `with` text NOT NULL, + `with` text, `howlong` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `sexual` varchar(255) NOT NULL DEFAULT '', `politic` varchar(255) NOT NULL DEFAULT '', `religion` varchar(255) NOT NULL DEFAULT '', - `pub_keywords` text NOT NULL, - `prv_keywords` text NOT NULL, - `likes` text NOT NULL, - `dislikes` text NOT NULL, - `about` text NOT NULL, + `pub_keywords` text, + `prv_keywords` text, + `likes` text, + `dislikes` text, + `about` text, `summary` varchar(255) NOT NULL DEFAULT '', - `music` text NOT NULL, - `book` text NOT NULL, - `tv` text NOT NULL, - `film` text NOT NULL, - `interest` text NOT NULL, - `romance` text NOT NULL, - `work` text NOT NULL, - `education` text NOT NULL, - `contact` text NOT NULL, + `music` text, + `book` text, + `tv` text, + `film` text, + `interest` text, + `romance` text, + `work` text, + `education` text, + `contact` text, `homepage` varchar(255) NOT NULL DEFAULT '', + `xmpp` varchar(255) NOT NULL DEFAULT '', `photo` varchar(255) NOT NULL DEFAULT '', `thumb` varchar(255) NOT NULL DEFAULT '', `publish` tinyint(1) NOT NULL DEFAULT 0, `net-publish` tinyint(1) NOT NULL DEFAULT 0, PRIMARY KEY(`id`), INDEX `hometown` (`hometown`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE profile_check @@ -825,7 +848,7 @@ CREATE TABLE IF NOT EXISTS `profile_check` ( `sec` varchar(255) NOT NULL DEFAULT '', `expire` int(11) NOT NULL DEFAULT 0, PRIMARY KEY(`id`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE push_subscriber @@ -840,7 +863,7 @@ CREATE TABLE IF NOT EXISTS `push_subscriber` ( `last_update` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `secret` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY(`id`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE queue @@ -851,7 +874,7 @@ CREATE TABLE IF NOT EXISTS `queue` ( `network` varchar(32) NOT NULL DEFAULT '', `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `last` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `content` mediumtext NOT NULL, + `content` mediumtext, `batch` tinyint(1) NOT NULL DEFAULT 0, PRIMARY KEY(`id`), INDEX `cid` (`cid`), @@ -859,7 +882,7 @@ CREATE TABLE IF NOT EXISTS `queue` ( INDEX `last` (`last`), INDEX `network` (`network`), INDEX `batch` (`batch`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE register @@ -872,7 +895,7 @@ CREATE TABLE IF NOT EXISTS `register` ( `password` varchar(255) NOT NULL DEFAULT '', `language` varchar(16) NOT NULL DEFAULT '', PRIMARY KEY(`id`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE search @@ -884,7 +907,7 @@ CREATE TABLE IF NOT EXISTS `search` ( PRIMARY KEY(`id`), INDEX `uid` (`uid`), INDEX `term` (`term`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE session @@ -892,12 +915,12 @@ CREATE TABLE IF NOT EXISTS `search` ( CREATE TABLE IF NOT EXISTS `session` ( `id` bigint(20) unsigned NOT NULL auto_increment, `sid` varchar(255) NOT NULL DEFAULT '', - `data` text NOT NULL, + `data` text, `expire` int(10) unsigned NOT NULL DEFAULT 0, PRIMARY KEY(`id`), INDEX `sid` (`sid`), INDEX `expire` (`expire`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE sign @@ -905,12 +928,12 @@ CREATE TABLE IF NOT EXISTS `session` ( CREATE TABLE IF NOT EXISTS `sign` ( `id` int(10) unsigned NOT NULL auto_increment, `iid` int(10) unsigned NOT NULL DEFAULT 0, - `signed_text` mediumtext NOT NULL, - `signature` text NOT NULL, + `signed_text` mediumtext, + `signature` text, `signer` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY(`id`), INDEX `iid` (`iid`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE spam @@ -927,7 +950,7 @@ CREATE TABLE IF NOT EXISTS `spam` ( INDEX `spam` (`spam`), INDEX `ham` (`ham`), INDEX `term` (`term`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE term @@ -952,7 +975,7 @@ CREATE TABLE IF NOT EXISTS `term` ( INDEX `uid_otype_type_term_global_created` (`uid`,`otype`,`type`,`term`,`global`,`created`), INDEX `otype_type_term_tid` (`otype`,`type`,`term`,`tid`), INDEX `guid` (`guid`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE thread @@ -962,6 +985,8 @@ CREATE TABLE IF NOT EXISTS `thread` ( `uid` int(10) unsigned NOT NULL DEFAULT 0, `contact-id` int(11) unsigned NOT NULL DEFAULT 0, `gcontact-id` int(11) unsigned NOT NULL DEFAULT 0, + `owner-id` int(11) unsigned NOT NULL DEFAULT 0, + `author-id` int(11) unsigned NOT NULL DEFAULT 0, `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `edited` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `commented` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', @@ -994,20 +1019,20 @@ CREATE TABLE IF NOT EXISTS `thread` ( INDEX `wall_private_received` (`wall`,`private`,`received`), INDEX `uid_created` (`uid`,`created`), INDEX `uid_commented` (`uid`,`commented`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE tokens -- CREATE TABLE IF NOT EXISTS `tokens` ( `id` varchar(40) NOT NULL, - `secret` text NOT NULL, + `secret` text, `client_id` varchar(20) NOT NULL DEFAULT '', `expires` int(11) NOT NULL DEFAULT 0, `scope` varchar(200) NOT NULL DEFAULT '', `uid` int(11) NOT NULL DEFAULT 0, PRIMARY KEY(`id`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE user @@ -1027,10 +1052,10 @@ CREATE TABLE IF NOT EXISTS `user` ( `default-location` varchar(255) NOT NULL DEFAULT '', `allow_location` tinyint(1) NOT NULL DEFAULT 0, `theme` varchar(255) NOT NULL DEFAULT '', - `pubkey` text NOT NULL, - `prvkey` text NOT NULL, - `spubkey` text NOT NULL, - `sprvkey` text NOT NULL, + `pubkey` text, + `prvkey` text, + `spubkey` text, + `sprvkey` text, `verified` tinyint(1) unsigned NOT NULL DEFAULT 0, `blocked` tinyint(1) unsigned NOT NULL DEFAULT 0, `blockwall` tinyint(1) unsigned NOT NULL DEFAULT 0, @@ -1040,6 +1065,7 @@ CREATE TABLE IF NOT EXISTS `user` ( `cntunkmail` int(11) NOT NULL DEFAULT 10, `notify-flags` int(11) unsigned NOT NULL DEFAULT 65535, `page-flags` int(11) unsigned NOT NULL DEFAULT 0, + `account-type` int(11) unsigned NOT NULL DEFAULT 0, `prvnets` tinyint(1) NOT NULL DEFAULT 0, `pwdreset` varchar(255) NOT NULL DEFAULT '', `maxreq` int(11) NOT NULL DEFAULT 10, @@ -1050,14 +1076,14 @@ CREATE TABLE IF NOT EXISTS `user` ( `expire_notification_sent` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `service_class` varchar(32) NOT NULL DEFAULT '', `def_gid` int(11) NOT NULL DEFAULT 0, - `allow_cid` mediumtext NOT NULL, - `allow_gid` mediumtext NOT NULL, - `deny_cid` mediumtext NOT NULL, - `deny_gid` mediumtext NOT NULL, - `openidserver` text NOT NULL, + `allow_cid` mediumtext, + `allow_gid` mediumtext, + `deny_cid` mediumtext, + `deny_gid` mediumtext, + `openidserver` text, PRIMARY KEY(`uid`), INDEX `nickname` (`nickname`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE userd @@ -1067,19 +1093,19 @@ CREATE TABLE IF NOT EXISTS `userd` ( `username` varchar(255) NOT NULL, PRIMARY KEY(`id`), INDEX `username` (`username`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; -- -- TABLE workerqueue -- CREATE TABLE IF NOT EXISTS `workerqueue` ( `id` int(11) NOT NULL auto_increment, - `parameter` text NOT NULL, + `parameter` text, `priority` tinyint(3) unsigned NOT NULL DEFAULT 0, `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `pid` int(11) NOT NULL DEFAULT 0, `executed` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY(`id`), INDEX `created` (`created`) -) DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8mb4; diff --git a/doc/BBCode.md b/doc/BBCode.md index 186b1cda9..6a8c5ebdf 100644 --- a/doc/BBCode.md +++ b/doc/BBCode.md @@ -1,202 +1,612 @@ Friendica BBCode tags reference ======================== -* [Home](help) +* [Creating posts](help/Text_editor) -Inline ------ +## Inline + -
[u]underlined[/u]
: underlined + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BBCodeResult
[b]bold[/b]bold
[i]italic[/i]italic
[u]underlined[/u]underlined
[s]strike[/s]strike
[o]overline[/o]overline
[color=red]red[/color]red
[url=http://www.friendica.com]Friendica[/url]Friendica
[img]http://friendica.com/sites/default/files/friendika-32.png[/img]Immagine/foto
[img=64x32]http://friendica.com/sites/default/files/friendika-32.png[/img]
+
Note: provided height is simply discarded.
[size=xx-small]small text[/size]small text
[size=xx-large]big text[/size]big text
[size=20]exact size[/size] (size can be any number, in pixel)exact size
[font=serif]Serif font[/font]Serif font
-
[s]strike[/s]
: strike +### Links -
[color=red]red[/color]
: red + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BBCodeResult
[url]http://friendica.com[/url]http://friendica.com
[url=http://friendica.com]Friendica[/url]Friendica
[bookmark]http://friendica.com[/bookmark]

+#^[url]http://friendica.com[/url]

Friendica: http://friendica.com

[bookmark=http://friendica.com]Bookmark[/bookmark]

+#^[url=http://friendica.com]Bookmark[/url]

+#[url=http://friendica.com]^[/url][url=http://friendica.com]Bookmark[/url]

Friendica: Bookmark

[url=/posts/f16d77b0630f0134740c0cc47a0ea02a]Diaspora post with GUID[/url]Diaspora post with GUID
#Friendica#Friendica
@Mention@Mention
acct:account@friendica.host.com (WebFinger)acct:account@friendica.host.com
[mail]user@mail.example.com[/mail]user@mail.example.com
[mail=user@mail.example.com]Send an email to User[/mail]Send an email to User
-
[url=http://www.friendica.com]Friendica[/url]
: Friendica +## Blocks -
[img]http://friendica.com/sites/default/files/friendika-32.png[/img]
: Immagine/foto + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BBCodeResult
[p]A paragraph of text[/p]

A paragraph of text

Inline [code]code[/code] in a paragraphInline code in a paragraph
[code]Multi
line
code[/code]
Multi +line +code
[code=php]function text_highlight($s,$lang)[/code]
  1.  function text_highlight($s,$lang)
[quote]quote[/quote]
quote
[quote=Author]Author? Me? No, no, no...[/quote]Author wrote:
Author? Me? No, no, no...
[center]Centered text[/center]
Centered text
You should not read any further if you want to be surprised.[spoiler]There is a happy end.[/spoiler] +
+ You should not read any further if you want to be surprised.
+ Click to open/close + +
+
+
[spoiler=Author]Spoiler quote[/spoiler] +
+ Author wrote:
+ Click to open/close + +
+
+
[hr] (horizontal line)
-
[size=xx-small]small text[/size]
: small text +### Titles -
[size=xx-large]big text[/size]
: big text + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BBCodeResult
[h1]Title 1[/h1]

Title 1

[h2]Title 2[/h2]

Title 2

[h3]Title 3[/h3]

Title 3

[h4]Title 4[/h4]

Title 4

[h5]Title 5[/h5]
Title 5
[h6]Title 6[/h6]
Title 6
-
[size=20]exact size[/size] (size can be any number, in pixel)
: exact size +### Tables + + + + + + + + + + + + + + + + + +
BBCodeResult
[table]
+  [tr]
+    [th]Header 1[/th]
+    [th]Header 2[/th]
+    [th]Header 2[/th]
+  [/tr]
+  [tr]
+    [td]Cell 1[/td]
+    [td]Cell 2[/td]
+    [td]Cell 3[/td]
+  [/tr]
+  [tr]
+    [td]Cell 4[/td]
+    [td]Cell 5[/td]
+    [td]Cell 6[/td]
+  [/tr]
+[/table]
+ + + + + + + + + + + + + + + + + + +
Header 1Header 2Header 3
Cell 1Cell 2Cell 3
Cell 4Cell 5Cell 6
+
[table border=0] + + + + + + + + + + + + + + + + + + +
Header 1Header 2Header 3
Cell 1Cell 2Cell 3
Cell 4Cell 5Cell 6
+
[table border=1] + + + + + + + + + + + + + + + + + + +
Header 1Header 2Header 3
Cell 1Cell 2Cell 3
Cell 4Cell 5Cell 6
+
+### Lists + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BBCodeResult
[ul]
+  [li] First list element
+  [li] Second list element
+[/ul]
+[list]
+  [*] First list element
+  [*] Second list element
+[/list]
+
    +
  • First list element
  • +
  • Second list element
  • +
+
[ol]
+  [*] First list element
+  [*] Second list element
+[/ol]
+[list=1]
+  [*] First list element
+  [*] Second list element
+[/list]
+
    +
  • First list element
  • +
  • Second list element
  • +
+
[list=]
+  [*] First list element
+  [*] Second list element
+[/list]
+
    +
  • First list element
  • +
  • Second list element
  • +
+
[list=i]
+  [*] First list element
+  [*] Second list element
+[/list]
+
    +
  • First list element
  • +
  • Second list element
  • +
+
[list=I]
+  [*] First list element
+  [*] Second list element
+[/list]
+
    +
  • First list element
  • +
  • Second list element
  • +
+
[list=a]
+  [*] First list element
+  [*] Second list element
+[/list]
+
    +
  • First list element
  • +
  • Second list element
  • +
+
[list=A]
+  [*] First list element
+  [*] Second list element
+[/list]
+
    +
  • First list element
  • +
  • Second list element
  • +
+
- - - -Block ------ - -
[code]code[/code]
- -code - -

 

- -
[quote]quote[/quote]
- -
quote
- -

 

- -
[quote=Author]Author? Me? No, no, no...[/quote]
- -Author wrote:
Author? Me? No, no, no...
- -

 

- -
[center]centered text[/center]
- -
centered text
- -

 

- -
You should not read any further if you want to be surprised.[spoiler]There is a happy end.[/spoiler]
- -You should not read any further if you want to be surprised.
*click to open/close* - -(The text between thhe opening and the closing of the spoiler tag will be visible once the link is clicked. So *"There is a happy end."* wont be visible until the spoiler is uncovered.) - -

 

- -**Table** -
[table border=1]
- [tr] 
-   [th]Tables now[/th]
- [/tr]
- [tr]
-   [td]Have headers[/td]
- [/tr]
-[/table]
- -
Tables now
Have headers
- -

 

- -**List** - -
[list]
- [*] First list element
- [*] Second list element
-[/list]
- - -[list] is equivalent to [ul] (unordered list). - -[ol] can be used instead of [list] to show an ordered list: - -
[ol]
- [*] First list element
- [*] Second list element
-[/ol]
- - -For more options on ordered lists, you can define the style of numeration on [list] argument: -
[list=1]
: decimal - -
[list=i]
: lover case roman - -
[list=I]
: upper case roman - -
[list=a]
: lover case alphabetic - -
[list=A] 
: upper case alphabetic - - - - -Embed ------- +## Embed You can embed video, audio and more in a message. -
[video]url[/video]
-
[audio]url[/audio]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BBCodeResult
[video]url[/video]Where *url* can be an url to youtube, vimeo, soundcloud, or other sites wich supports oembed or opengraph specifications.
[video]Video file url[/video] +[audio]Audio file url[/audio]Full URL to an ogg/ogv/oga/ogm/webm/mp4/mp3 file. An HTML5 player will be used to show it.
[youtube]Youtube URL[/youtube]Youtube video OEmbed display. May not embed an actual player.
[youtube]Youtube video ID[/youtube]Youtube player iframe embed.
[vimeo]Vimeo URL[/vimeo]Vimeo video OEmbed display. May not embed an actual player.
[vimeo]Vimeo video ID[/vimeo]Vimeo player iframe embed.
[iframe]URL[/iframe]General embed, iframe size is limited by the theme size for video players.
[url]*url*[/url]If *url* supports oembed or opengraph specifications the embedded object will be shown (eg, documents from scribd). +Page title with a link to *url* will be shown.
-Where *url* can be an url to youtube, vimeo, soundcloud, or other sites wich supports oembed or opengraph specifications. -*url* can be also full url to an ogg file. HTML5 tag will be used to show it. +## Map -
[url]*url*[/url]
+This require "openstreetmap" or "Google Maps" addon version 1.3 or newer. +If the addon isn't activated, the raw coordinates are shown instead. -If *url* supports oembed or opengraph specifications the embedded object will be shown (eg, documents from scribd). -Page title with a link to *url* will be shown. + + + + + + + + + + + + + + + + + +
BBCodeResult
[map]address[/map]Embeds a map centered on this address.
[map=lat,long]Embeds a map centered on those coordinates.
[map]Embeds a map centered on the post's location.
-Map ---- +## Abstract for longer posts -
[map]address[/map]
-
[map=lat,long]
+If you want to spread your post to several third party networks you can have the problem that these networks have a length limitation like on Twitter. -You can embed maps from coordinates or addresses. -This require "openstreetmap" addon version 1.3 or newer. - ------------------------------------------------------------ - -Abstract for longer posts -------------------------- - -If you want to spread your post to several third party networks you can have the problem that these networks have (for example) a length limitation. -(Like on Twitter) - -Friendica is using a semi intelligent mechanism to generate a fitting abstract. -But it can be interesting to define an own abstract that will only be displayed on the external network. -This is done with the [abstract]-element. -Example: - -
[abstract]Totally interesting! A must-see! Please click the link![/abstract]
-I want to tell you a really boring story that you really never wanted 
-to hear.
- -Twitter would display the text "Totally interesting! A must-see! Please click the link!". -On Friendica you would only see the text after "I want to tell you a really ..." +Friendica is using a semi intelligent mechanism to generate a fitting abstract. +But it can be interesting to define a custom abstract that will only be displayed on the external network. +This is done with the [abstract]-element. + + + + + + + + + +
BBCodeResult
[abstract]Totally interesting! A must-see! Please click the link![/abstract]
+I want to tell you a really boring story that you really never wanted to hear.
Twitter would display the text
Totally interesting! A must-see! Please click the link!
+On Friendica you would only see the text after
I want to tell you a really ...
It is even possible to define abstracts for separate networks: -
-[abstract]Hi friends Here are my newest pictures![abstract]
-[abstract=twit]Hi my dear Twitter followers. Do you want to see my new 
-pictures?[abstract]
-[abstract=apdn]Helly my dear followers on ADN. I made sone new pictures 
-that I wanted to share with you.[abstract]
-Today I was in the woods and took some real cool pictures ...
-
- -For Twitter and App.net the system will use the defined abstracts. -For other networks (e.g. when you are using the "statusnet" connector that is used to post to GNU Social) the general abstract element will be used. + + + + + + + + + +
BBCodeResult
+[abstract]Hi friends Here are my newest pictures![/abstract]
+[abstract=twit]Hi my dear Twitter followers. Do you want to see my new +pictures?[/abstract]
+[abstract=apdn]Helly my dear followers on ADN. I made sone new pictures +that I wanted to share with you.[/abstract]
+Today I was in the woods and took some real cool pictures ...
For Twitter and App.net the system will use the defined abstracts.
+For other networks (e.g. when you are using the "statusnet" connector that is used to post to your GNU Social account) the general abstract element will be used.
If you use (for example) the "buffer" connector to post to Facebook or Google+ you can use this element to define an abstract for a longer blogpost that you don't want to post completely to these networks. -Networks like Facebook or Google+ aren't length limited. -For this reason the [abstract] element isn't used. +Networks like Facebook or Google+ aren't length limited. +For this reason the [abstract] element isn't used. Instead you have to name the explicit network: -
-[abstract]These days I had a strange encounter ...[abstract]
-[abstract=goog]Helly my dear Google+ followers. You have to read my 
-newest blog post![abstract]
-[abstract=face]Hello my Facebook friends. These days happened something 
-really cool.[abstract]
-While taking pictures in the woods I had a really strange encounter ... 
+ + + + + + + + + +
BBCodeResult
+[abstract]These days I had a strange encounter...[/abstract]
+[abstract=goog]Helly my dear Google+ followers. You have to read my newest blog post![/abstract]
+[abstract=face]Hello my Facebook friends. These days happened something really cool.[/abstract]
+While taking pictures in the woods I had a really strange encounter...
Google and Facebook will show the respective abstracts while the other networks will show the default one.
+
Meanwhile, Friendica won't show any of the abstracts.
-The [abstract] element isn't working with the native OStatus connection or with connectors where we post the HTML. -(Like Tumblr, Wordpress or Pump.io) +The [abstract] element isn't working with connectors where we post the HTML like Tumblr, Wordpress or Pump.io. +For the native connections--that is to e.g. Friendica, Hubzilla, Diaspora or GNU Social--the full posting is used and the contacts instance will display the posting as desired. -Special -------- +## Special -If you need to put literal bbcode in a message, [noparse], [nobb] or [pre] are used to escape bbcode: - -
[noparse][b]bold[/b][/noparse]
: [b]bold[/b] + + + + + + + + + + + + + + + + + + + + + +
BBCodeResult
If you need to put literal bbcode in a message, [noparse], [nobb] or [pre] are used to escape bbcode: +
    +
  • [noparse][b]bold[/b][/noparse]
  • +
  • [nobb][b]bold[/b][/nobb]
  • +
  • [pre][b]bold[/b][/pre]
  • +
+
[b]bold[/b]
[nosmile] is used to disable smilies on a post by post basis
+
+ [nosmile] ;-) :-O +
;-) :-O
Custom inline styles
+
+[style=text-shadow: 0 0 4px #CC0000;]You can change all the CSS properties of this block.[/style]
You can change all the CSS properties of this block.
Custom class block
+
+[class=custom]If the class exists, this block will have the custom class style applied.[/class]
<span class="custom">If the class exists,
this block will have the custom class
style applied.</span>
diff --git a/doc/Developers-Intro.md b/doc/Developers-Intro.md index 8e3cd03b1..068008c28 100644 --- a/doc/Developers-Intro.md +++ b/doc/Developers-Intro.md @@ -16,7 +16,7 @@ Contact us The discussion of Friendica development takes place in the following Friendica forums: -* The main [forum for Friendica development](https://friendika.openmindspace.org/profile/friendicadevelopers) +* The main [forum for Friendica development](https://helpers.pyxis.uberspace.de/profile/developers) * The [forum for Friendica theme development](https://friendica.eu/profile/ftdevs) Help other users @@ -79,7 +79,7 @@ If you want to get involved here: * Look at the first steps that were made (e.g. the clean theme). Ask us to find out whom to talk to about their experiences. * Talk to design people if you know any. -* Let us know about your plans [in the dev forum](https://friendika.openmindspace.org/profile/friendicadevelopers) and the [theme developer forum](https://friendica.eu/profile/ftdevs). +* Let us know about your plans [in the dev forum](https://helpers.pyxis.uberspace.de/profile/developers) and the [theme developer forum](https://friendica.eu/profile/ftdevs). Do not worry about cross-posting. ###Client software diff --git a/doc/Home.md b/doc/Home.md index 1f9b0cfab..d0f95d076 100644 --- a/doc/Home.md +++ b/doc/Home.md @@ -28,7 +28,7 @@ Friendica Documentation and Resources **Admin Manual** * [Install](help/Install) -* [Settings](help/Settings) +* [Settings & Admin Panel](help/Settings) * [Installing Connectors (Twitter/GNU Social)](help/Installing-Connectors) * [Install an ejabberd server (XMPP chat) with synchronized credentials](help/install-ejabberd) * [Message Flow](help/Message-Flow) diff --git a/doc/Install.md b/doc/Install.md index 5afd5a22c..e494c1edf 100644 --- a/doc/Install.md +++ b/doc/Install.md @@ -10,7 +10,7 @@ Not every PHP/MySQL hosting provider will be able to support Friendica. Many will. But **please** review the requirements and confirm these with your hosting provider prior to installation. -Also if you encounter installation issues, please let us know via the [helper](http://helpers.pyxis.uberspace.de/profile/helpers) or the [developer](https://friendika.openmindspace.org/profile/friendicadevelopers) forum or [file an issue](https://github.com/friendica/friendica/issues). +Also if you encounter installation issues, please let us know via the [helper](http://helpers.pyxis.uberspace.de/profile/helpers) or the [developer](https://helpers.pyxis.uberspace.de/profile/developers) forum or [file an issue](https://github.com/friendica/friendica/issues). 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. If you do not have a Friendica account yet, you can register a temporary one at [tryfriendica.de](https://tryfriendica.de) and join the forums mentioned above from there. @@ -26,12 +26,12 @@ Requirements --- * Apache with mod-rewrite enabled and "Options All" so you can use a local .htaccess file -* PHP 5.2+. The later the better. You'll need 5.3 for encryption of key exchange conversations. On a Windows environment, 5.2+ might not work as the function dns_get_record() is only available with version 5.3. +* PHP 5.4+. * PHP *command line* access with register_argc_argv set to true in the php.ini file * curl, gd, mysql, hash and openssl extensions * some form of email server or email gateway such that PHP mail() works * mcrypt (optional; used for server-to-server message encryption) -* Mysql 5.x or an equivalant alternative for MySQL (MariaDB etc.) +* Mysql 5.5.3+ or an equivalant alternative for MySQL (MariaDB, Percona Server etc.) * the ability to schedule jobs with cron (Linux/Mac) or Scheduled Tasks (Windows) (Note: other options are presented in Section 7 of this document.) * Installation into a top-level domain or sub-domain (without a directory/path component in the URL) is preferred. Directory paths will not be as convenient to use and have not been thoroughly tested. * If your hosting provider doesn't allow Unix shell access, you might have trouble getting everything to work. diff --git a/doc/Settings.md b/doc/Settings.md index 6eb967acc..06ef85c43 100644 --- a/doc/Settings.md +++ b/doc/Settings.md @@ -9,7 +9,8 @@ This number should decrease quickly. The second is the messages which could for various reasons not being delivered. They will be resend later. You can have a quick glance into that second queus in the "Inspect Queue" section of the admin panel. -If you have activated the background workers, there might be a third number representing the count of jobs queued for the workers. +If you have activated the background workers, there is a third number representing the count of jobs queued for the workers. +These worker tasks are prioritised and are done accordingly. Then you get an overview of the accounts on your node, which can be moderated in the "Users" section of the panel. As well as an overview of the currently active addons diff --git a/doc/api.md b/doc/api.md index 7d6f440c5..bf1507adb 100644 --- a/doc/api.md +++ b/doc/api.md @@ -104,6 +104,7 @@ Unofficial Twitter command. It shows all direct answers (excluding the original * max_id: maximum id * getText: Defines the format of the status field. Can be "html" or "plain" * include_entities: "true" shows entities for pictures and links (Default: false) +* friendica_verbose: "true" enables different error returns (default: "false") #### Unsupported parameters * skip_status @@ -116,6 +117,7 @@ Unofficial Twitter command. It shows all direct answers (excluding the original * since_id: minimal id * max_id: maximum id * getText: Defines the format of the status field. Can be "html" or "plain" +* friendica_verbose: "true" enables different error returns (default: "false") --- ### direct_messages/conversation (*; AUTH) @@ -127,6 +129,18 @@ Shows all direct messages of a conversation * max_id: maximum id * getText: Defines the format of the status field. Can be "html" or "plain" * uri: URI of the conversation +* friendica_verbose: "true" enables different error returns (default: "false") + +--- +### direct_messages/sent (*; AUTH) +#### Parameters +* count: Items per page (default: 20) +* page: page number +* since_id: minimal id +* max_id: maximum id +* getText: Defines the format of the status field. Can be "html" or "plain" +* include_entities: "true" shows entities for pictures and links (Default: false) +* friendica_verbose: "true" enables different error returns (default: "false") --- ### direct_messages/new (POST,PUT; AUTH) @@ -138,14 +152,22 @@ Shows all direct messages of a conversation * title: Title of the direct message --- -### direct_messages/sent (*; AUTH) +### direct_messages/destroy (POST,DELETE; AUTH) #### Parameters -* count: Items per page (default: 20) -* page: page number -* since_id: minimal id -* max_id: maximum id -* getText: Defines the format of the status field. Can be "html" or "plain" -* include_entities: "true" shows entities for pictures and links (Default: false) +* id: id of the message to be deleted +* include_entities: optional, currently not yet implemented +* friendica_parenturi: optional, can be used for increased safety to delete only intended messages +* friendica_verbose: "true" enables different error returns (default: "false") + +#### Return values + +On success: +* JSON return as defined for Twitter API not yet implemented +* on friendica_verbose=true: JSON return {"result":"ok","message":"message deleted"} + +On error: +HTTP 400 BadRequest +* on friendica_verbose=true: different JSON returns {"result":"error","message":"xyz"} --- ### favorites (*; AUTH) @@ -694,6 +716,65 @@ xml ``` +--- +### friendica/direct_messages_setseen (GET; AUTH) +#### Parameters +* id: id of the message to be updated as seen + +#### Return values + +On success: +* JSON return {"result":"ok","message":"message set to seen"} + +On error: +* different JSON returns {"result":"error","message":"xyz"} + +--- +### friendica/direct_messages_search (GET; AUTH) +#### Parameters +* searchstring: string for which the API call should search as '%searchstring%' in field 'body' of all messages of the authenticated user (caption ignored) + +#### Return values +Returns only tested with JSON, XML might work as well. + +On success: +* JSON return {"success":"true","search_results": array of found messages} +* JSOn return {"success":"false","search_results":"nothing found"} + +On error: +* different JSON returns {"result":"error","message":"searchstring not specified"} + +--- +### friendica/profile/show (GET; AUTH) +show data of all profiles or a single profile of the authenticated user + +#### Parameters +* profile_id: id of the profile to be returned (optional, if omitted all profiles are returned by default) + +#### Return values +On success: Array of: + +* multi_profiles: true if user has activated multi_profiles +* global_dir: URL of the global directory set in server settings +* friendica_owner: user data of the authenticated user +* profiles: array of the profile data + +On error: +HTTP 403 Forbidden: when no authentication provided +HTTP 400 Bad Request: if given profile_id is not in db or not assigned to authenticated user + +General description of profile data in API returns: +* profile_id +* profile_name +* is_default: true if this is the public profile +* hide_friends: true if friends are hidden +* profile_photo +* profile_thumb +* publish: true if published on the server's local directory +* net_publish: true if published to global_dir +* description ... homepage: different data fields from 'profile' table in database +* users: array with the users allowed to view this profile (empty if is_default=true) + --- ## Not Implemented API calls @@ -718,7 +799,6 @@ The following API calls from the Twitter API aren't implemented neither in Frien * statuses/lookup * direct_messages/show * search/tweets -* direct_messages/destroy * friendships/no_retweets/ids * friendships/incoming * friendships/outgoing diff --git a/doc/database/db_fcontact.md b/doc/database/db_fcontact.md index e1cecbf87..280160522 100644 --- a/doc/database/db_fcontact.md +++ b/doc/database/db_fcontact.md @@ -4,6 +4,7 @@ Table fcontact | Field | Description | Type | Null | Key | Default | Extra | | -------- | ------------- | ---------------- | ---- | --- | ------------------- | --------------- | | id | sequential ID | int(10) unsigned | NO | PRI | NULL | auto_increment | +| guid | unique id | varchar(64) | NO | | | | | url | | varchar(255) | NO | | | | | name | | varchar(255) | NO | | | | | photo | | varchar(255) | NO | | | | diff --git a/doc/database/db_item.md b/doc/database/db_item.md index 00fa213c8..7981d2995 100644 --- a/doc/database/db_item.md +++ b/doc/database/db_item.md @@ -24,9 +24,11 @@ Table item | owner-name | Name of the owner of this item | varchar(255) | NO | | | | | owner-link | Link to the profile page of the owner of this item | varchar(255) | NO | | | | | owner-avatar | Link to the avatar picture of the owner of this item | varchar(255) | NO | | | | +| owner-id | Link to the contact table with uid=0 of the owner of this item | int(11) | NO | MUL | 0 | | | author-name | Name of the author of this item | varchar(255) | NO | | | | | author-link | Link to the profile page of the author of this item | varchar(255) | NO | | | | | author-avatar | Link to the avatar picture of the author of this item | varchar(255) | NO | | | | +| author-id | Link to the contact table with uid=0 of the author of this item | int(11) | NO | MUL | 0 | | | title | item title | varchar(255) | NO | | | | | body | item body content | mediumtext | NO | | NULL | | | app | application which generated this item | varchar(255) | NO | | | | diff --git a/doc/database/db_notify.md b/doc/database/db_notify.md index 5ef2aa7eb..b2bae6471 100644 --- a/doc/database/db_notify.md +++ b/doc/database/db_notify.md @@ -1,22 +1,24 @@ Table notify ============ -| Field | Description | Type | Null | Key | Default | Extra | -| ------ | --------------------------------- | ------------ | ---- | --- | ------------------- | --------------- | -| id | sequential ID | int(11) | NO | PRI | NULL | auto_increment | -| hash | | varchar(64) | NO | | | | -| type | | int(11) | NO | | 0 | | -| name | | varchar(255) | NO | | | | -| url | | varchar(255) | NO | | | | -| photo | | varchar(255) | NO | | | | -| date | | datetime | NO | | 0000-00-00 00:00:00 | | -| msg | | mediumtext | NO | | NULL | | -| uid | user.id of the owner of this data | int(11) | NO | MUL | 0 | | -| link | | varchar(255) | NO | | | | -| parent | | int(11) | NO | | 0 | | -| seen | | tinyint(1) | NO | | 0 | | -| verb | | varchar(255) | NO | | | | -| otype | | varchar(16) | NO | | | | -| iid | item.id | int(11) | NO | | 0 | | +| Field | Description | Type | Null | Key | Default | Extra | +| ---------- | --------------------------------- | ------------ | ---- | --- | ------------------- | --------------- | +| id | sequential ID | int(11) | NO | PRI | NULL | auto_increment | +| hash | | varchar(64) | NO | | | | +| type | | int(11) | NO | | 0 | | +| name | | varchar(255) | NO | | | | +| url | | varchar(255) | NO | | | | +| photo | | varchar(255) | NO | | | | +| date | | datetime | NO | | 0000-00-00 00:00:00 | | +| msg | | mediumtext | YES | | NULL | | +| uid | user.id of the owner of this data | int(11) | NO | MUL | 0 | | +| link | | varchar(255) | NO | | | | +| iid | item.id | int(11) | NO | | 0 | | +| parent | | int(11) | NO | | 0 | | +| seen | | tinyint(1) | NO | | 0 | | +| verb | | varchar(255) | NO | | | | +| otype | | varchar(16) | NO | | | | +| name_cache | Cached bbcode parsing of name | tinytext | YES | | NULL | | +| msg_cache | Cached bbcode parsing of msg | mediumtext | YES | | NULL | | Return to [database documentation](help/database) diff --git a/doc/database/db_thread.md b/doc/database/db_thread.md index 4c912bec1..d6484b760 100644 --- a/doc/database/db_thread.md +++ b/doc/database/db_thread.md @@ -7,6 +7,8 @@ Table thread | uid | | int(10) unsigned | NO | MUL | 0 | | | contact-id | | int(11) unsigned | NO | | 0 | | | gcontact-id | Global Contact | int(11) unsigned | NO | | 0 | | +| owner-id | Item owner | int(11) unsigned | NO | MUL | 0 | | +| author-id | Item author | int(11) unsigned | NO | MUL | 0 | | | created | | datetime | NO | MUL | 0000-00-00 00:00:00 | | | edited | | datetime | NO | | 0000-00-00 00:00:00 | | | commented | | datetime | NO | MUL | 0000-00-00 00:00:00 | | diff --git a/doc/de/BBCode.md b/doc/de/BBCode.md index cd9fa7673..3927e5f18 100644 --- a/doc/de/BBCode.md +++ b/doc/de/BBCode.md @@ -3,195 +3,612 @@ Referenz der Friendica BBCode Tags * [Zur Startseite der Hilfe](help) -Inline Tags ------ +## Inline + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BBCodeErgebnis
[b]fett[/b]fett
[i]kursiv[/i]kursiv
[u]unterstrichen[/u]unterstrichen
[s]durchgestrichen[/s]durchgestrichen
[o]überstrichen[/o]überstrichen
[color=red]rot[/color]rot
[url=http://www.friendica.com]Friendica[/url]Friendica
[img]http://friendica.com/sites/default/files/friendika-32.png[/img]Immagine/foto
[img=64x32]http://friendica.com/sites/default/files/friendika-32.png[/img]
+
Note: provided height is simply discarded.
[size=xx-small]kleiner Text[/size]kleiner Text
[size=xx-large]großer Text[/size]großer Text
[size=20]exakte Größe[/size] (die Größe kann beliebig in Pixeln gewält werden)exakte Größe
[font=serif]Serife Schriftart[/font]Serife Schriftart
+ +### Links + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BBCodeErgebnis
[url]http://friendica.com[/url]http://friendica.com
[url=http://friendica.com]Friendica[/url]Friendica
[bookmark]http://friendica.com[/bookmark]

+#^[url]http://friendica.com[/url]

Friendica: http://friendica.com

[bookmark=http://friendica.com]Lesezeichen[/bookmark]

+#^[url=http://friendica.com]Lesezeichen[/url]

+#[url=http://friendica.com]^[/url][url=http://friendica.com]Lesezeichen[/url]

Friendica: Lesezeichen

[url=/posts/f16d77b0630f0134740c0cc47a0ea02a]Diaspora Beitrag mit GUID[/url]Diaspora Beitrag mit GUID
#Friendica#Friendica
@Erwähnung@Erwähnung
acct:account@friendica.host.com (WebFinger)acct:account@friendica.host.com
[mail]user@mail.example.com[/mail]user@mail.example.com
[mail=user@mail.example.com]Eine E-Mail senden[/mail]Eine E-Mail senden
+ +## Blocks + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BBCodeErgebnis
[p]Ein Absatz mit Text[/p]

Ein Absatz mit Text

Eingebetteter [code]Programmcode[/code] im TextEingebetteter Programmcode im Text
[code]Programmcode
über
mehrere
Zeilen[/code]
Programmcode +über +mehrere +Zeilen
[code=php]function text_highlight($s,$lang)[/code]
  1.  function text_highlight($s,$lang)
[quote]Zitat[/quote]
Zitat
[quote=Autor]Autor? Ich? Nein, niemals...[/quote]Autor hat geschrieben:
Autor? Ich? Nein, niemals...
[center]zentrierter Text[/center]
zentrierter Text
Du solltest nicht weiter lesen, wenn du das Ende des Films nicht vorher erfahren willst. [spoiler]Es gibt ein Happy End.[/spoiler] +
+ Du solltest nicht weiter lesen, wenn du das Ende des Films nicht vorher erfahren willst.
+ Zum öffnen/schließen klicken + +
+
+
[spoiler=Autor]Spoiler Alarm[/spoiler] +
+ Autor hat geschrieben
+ Zum öffnen/schließen klicken + +
+
+
[hr] (horizontale Linie)
+ +### Überschriften + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BBCodeErgebnis
[h1]Titel 1[/h1]

Titel 1

[h2]Titel 2[/h2]

Titel 2

[h3]Titel 3[/h3]

Titel 3

[h4]Titel 4[/h4]

Titel 4

[h5]Titel 5[/h5]
Titel 5
[h6]Titel 6[/h6]
Titel 6
+ +### Tabellen + + + + + + + + + + + + + + + + + + +
BBCodeErgebnis
[table]
+  [tr]
+    [th]Kopfzeile 1[/th]
+    [th]Kopfzeile 2[/th]
+    [th]Kopfzeile 2[/th]
+  [/tr]
+  [tr]
+    [td]Zelle 1[/td]
+    [td]Zelle 2[/td]
+    [td]Zelle 3[/td]
+  [/tr]
+  [tr]
+    [td]Zelle 4[/td]
+    [td]Zelle 5[/td]
+    [td]Zelle 6[/td]
+  [/tr]
+[/table]
+ + + + + + + + + + + + + + + + + + +
Kopfzeile 1Kopfzeile 2Kopfzeile 3
Zelle 1Zelle 2Zelle 3
Zelle 4Zelle 5Zelle 6
+
[table border=0] + + + + + + + + + + + + + + + + + + +
Kopfzeile 1Kopfzeile 2Kopfzeile 3
Zelle 1Zelle 2Zelle 3
Zelle 4Zelle 5Zelle 6
+
[table border=1] + + + + + + + + + + + + + + + + + + +
Kopfzeile 1Kopfzeile 2Kopfzeile 3
Zelle 1Zelle 2Zelle 3
Zelle 4Zelle 5Zelle 6
+
+ +### Listen + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BBCodeErgebnis
[ul]
+  [li] Erstes Listenelement
+  [li] Zweites Listenelement
+[/ul]
+[list]
+  [*] Erstes Listenelement
+  [*] Zweites Listenelement
+[/list]
+
    +
  • Erstes Listenelement
  • +
  • Zweites Listenelement
  • +
+
[ol]
+  [*] Erstes Listenelement
+  [*] Zweites Listenelement
+[/ol]
+[list=1]
+  [*] Erstes Listenelement
+  [*] Zweites Listenelement
+[/list]
+
    +
  • Erstes Listenelement
  • +
  • Zweites Listenelement
  • +
+
[list=]
+  [*] Erstes Listenelement
+  [*] Zweites Listenelement
+[/list]
+
    +
  • Erstes Listenelement
  • +
  • Zweites Listenelement
  • +
+
[list=i]
+  [*] Erstes Listenelement
+  [*] Zweites Listenelement
+[/list]
+
    +
  • Erstes Listenelement
  • +
  • Zweites Listenelement
  • +
+
[list=I]
+  [*] Erstes Listenelement
+  [*] Zweites Listenelement
+[/list]
+
    +
  • Erstes Listenelement
  • +
  • Zweites Listenelement
  • +
+
[list=a]
+  [*] Erstes Listenelement
+  [*] Zweites Listenelement
+[/list]
+
    +
  • Erstes Listenelement
  • +
  • Zweites Listenelement
  • +
+
[list=A]
+  [*] Erstes Listenelement
+  [*] Zweites Listenelement
+[/list]
+
    +
  • Erstes Listenelement
  • +
  • Zweites Listenelement
  • +
+
+ +## Einbetten + +Du kannst Videos, Musikdateien und weitere Dinge in Beiträgen einbinden. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BBCodeErgebnis
[video]url[/video]Wobei die *url* eine URL von youtube, vimeo, soundcloud oder einer anderen Plattform sein kann, die die opengraph Spezifikationen unterstützt.
[video]URL der Videodatei[/video] +[audio]URL der Musikdatei[/audio]Die komplette URL einer ogg/ogv/oga/ogm/webm/mp4/mp3 Datei angeben, diese wird dann mit einem HTML5-Player angezeigt.
[youtube]Youtube URL[/youtube]Youtube Video mittels OEmbed anzeigen. Kann u.U, den Player nicht einbetten.
[youtube]Youtube video ID[/youtube]Youtube-Player im iframe einbinden.
[vimeo]Vimeo URL[/vimeo]Vimeo Video mittels OEmbed anzeigen. Kann u.U, den Player nicht einbetten.
[vimeo]Vimeo video ID[/vimeo]Vimeo-Player im iframe einbinden.
[iframe]URL[/iframe]General embed, iframe size is limited by the theme size for video players.
[url]*url*[/url]Wenn *url* die OEmbed- oder Opengraph-Spezifikationen unterstützt, wird das Objekt eingebettet (z.B. Dokumente von scribd). + Ansonsten wird der Titel der Seite mit der URL verlinkt.
+ +## Karten + +Das Einbetten von Karten benötigt das "openstreetmap" oder das "Google Maps" Addon. +Wenn keines der Addons aktiv ist, werden stattdeßen die Kordinaten angezeigt- + + + + + + + + + + + + + + + + + + +
BBCodeErgebnis
[map]Adresse[/map]Bindet eine Karte ein, auf der die angegebene Adresse zentriert ist.
[map=lat,long]Bindet eine Karte ein, die auf die angegebenen Koordinaten zentriert ist.
[map]Bindet eine Karte ein, die auf die Position des Beitrags zentriert ist.
+ +## Zusammenfassungen für lange Beiträge + +Wenn du deine Beiträge auf anderen Netzwerken von Drittanbietern verbreiten möchtest, z.B. Twitter, könntest du Probleme mit deren Zeichenbegrenzung haben. + +Friendica verwendet einen semi-inelligenten Mechanismus um passende Zusammenfassungen zu erstellen. +Du kannst allerdings auch selbst die Zusammenfassungen erstellen, die auf den unterschiedlichen Netzwerken angezeigt werden. +Um dies zu tun, verwendest du den [abstract]-Tag. + + + + + + + + + + +
BBCodeErgebnis
[abstract]Unglaublich interessant! Muss man gesehen haben! Unbedingt dem Link folgen![/abstract]
+Ich möchte euch eine unglaublich langweilige Geschichte erzählen, die ihr sicherlich niemals hören wolltet.
Auf Twitter würde folgender Text verlffentlicht werden
Unglaublich interessant! Muss man gesehen haben! Unbedingt dem Link folgen!
+Wohingegen auf Friendica folgendes stehen würde
Ich möchte euch eine unglaublich langweilige Geschichte erzählen, die ihr sicherlich niemals hören wolltet.
+ +Wenn du magst, kannst du auch unterschiedliche Zusammenfassungen für die unterschiedlichen Netzwerke verwenden. + + + + + + + + + + +
BBCodeErgebnis
+[abstract]Hey Leute, hier sind meines neuesten Bilder![/abstract]
+[abstract=twit]Hallo liebe Twitter Follower. Wollt ihr meine neuesten Bilder sehen?[/abstract]
+[abstract=apdn]Moin liebe Follower auf ADN. Ich habe einige neue Bilder gemacht, die ich euch gerne zeigen will.[/abstract]
+Heute war ich im Wald unterwegs und habe einige wirklich schöne Bilder gemacht...
Für Twitter und App.net wird Friendica in diesem Fall die speziell definierten Zusammenfassungen Verwenden. Für andere Netzwerke (wie z.B. bei der Verwendung des GNU Social Konnektors zum Veröffentlichen auf deinen GNU Social Account) würde die allgemeine Zusammenfassung verwenden.
+ +Wenn du beispielsweise den "buffer"-Konnektor verwendest um Beiträge nach Facebook und Google+ zu senden, dort aber nicht den gesamten Blogbeitrag posten willst sondern nur einen Anreißer, kannst du dies mit dem [abstract]-Tag realisieren. + +Bei Netzwerken wie Facebook oder Google+, die selbst kein Zeichenlimit haben wird das [abstract]-Element allerdings nicht grundsätzlich verwendet. +Daher müssen diese Netzwerke explizit genannt werden. + + + + + + + + + + +
BBCodeErgebnis
+[abstract]Dieser Tage hatte ich eine ungewöhnliche Begegnung...[/abstract]
+[abstract=goog]Hey liebe Google+ Follower. Habt ich schon meinen neuesten Blog-Beitrag gelesen?[/abstract]
+[abstract=face]Hallo liebe Facebook Freunde. Letztens ist mir etwas wirklich schönes paßiert.[/abstract]
+Als ich die Bilder im Wald aufgenommen habe, hatte ich eine wirklich ungewöhnliche Begegnung...
Auf Google und Facebook würde nun die entsprechende Zusammenfassung verbreitet. Für andere Netzwerke würde die allgemeine Zusammenfassung verwendet werden.
+
Auf Friendica wird weiterhin keine Zusammenfassung angezeigt.
+ +Für Verbindungen zu Netzwerken, zu denen Friendica den HTML Code postet, wie Tumblr, Wordpress oder Pump.io wird das [abstract] Element nicht verwendet. +Bei nativen Verbindungen; das heißt zu z.B. Friendica, Hubzilla, Diaspora oder GNU Social Kontakten; wird der ungekürzte Beitrag übertragen. +Die Instanz des Kontakts kümmert sich um die Darstellung. + +## Special + + + + + + + + + + + + + + + + + + + + + + +
BBCodeErgebnis
Wenn du verhindern möchtest, daß der BBCode in einer Nachricht interpretiert wird, kannst du die [noparse], [nobb] oder [pre] Tag verwenden:
+
    +
  • [noparse][b]fett[/b][/noparse]
  • +
  • [nobb][b]fett[/b][/nobb]
  • +
  • [pre][b]fett[/b][/pre]
  • +
+
[b]fett[/b]
[nosmile] kann verwendet werden um für einen Beitrag das umsetzen von Smilies zu verhindern.
+
+ [nosmile] ;-) :-O +
;-) :-O
Benutzerdefinierte Inline-Styles
+
+[style=text-shadow: 0 0 4px #CC0000;]Du kannst alle CSS-Eigenschaften eines Blocks ändern-[/style]
Du kannst alle CSS-Eigenschaften eines Blocks ändern-
Benutzerdefinierte CSS Klassen
+
+[class=custom]Wenn die vergebene Klasse in den CSS Anweisungen existiert, wird sie angewandt.[/class]
<span class="custom">Wenn die
+vergebene Klasse in den CSS Anweisungen
+existiert,wird sie angewandt.</span>
- -
[b]fett[/b]
: fett - -
[i]kursiv[/i]
: kursiv - -
[u]unterstrichen[/u]
: unterstrichen - -
[s]durchgestrichen[/s]
: durchgestrichen - -
[color=red]rot[/color]
: rot - -
[url=http://www.friendica.com]Friendica[/url]
: Friendica - -
[img]http://friendica.com/sites/default/files/friendika-32.png[/img]
: Immagine/foto - -
[size=xx-small]kleiner Text[/size]
: kleiner Text - -
[size=xx-large]groß Text[/size]
: großer Text - -
[size=20]exakte Textgröße[/size] (Textgröße kann jede Zahl sein, in Pixeln)
: exakte Größe - - - - - - - -Block Tags ------ - -
[code]Code[/code]
- -Code - -

 

- -
[quote]Zitat[/quote]
- -
Zitat
- -

 

- -
[quote=Autor]Der Autor? Ich? Nein, nein, nein...[/quote]
- -Autor hat geschrieben:
Der Autor? Ich? Nein, nein, nein...
- -

 

- -
[center]zentrierter Text[/center]
- -
zentrierter Text
- -

 

- -
Wer überrascht werden möchte sollte nicht weiter lesen.[spoiler]Es gibt ein Happy End.[/spoiler]
- -Wer überrascht werden möchte sollte nicht weiter lesen.
*klicken zum öffnen/schließen* - -(Der Text zweischen dem öffnenden und dem schließenden Teil des spoiler Tags wird nicht angezeigt, bis der Link angeklickt wurde. In dem Fall wird *"Es gibt ein Happy End."* also erst angezeigt, wenn der Spoiler verraten wird.) - -

 

- -**Tabelle** -
[table border=1]
- [tr] 
-   [th]Tabellenzeile[/th]
- [/tr]
- [tr]
-   [td]haben Überschriften[/td]
- [/tr]
-[/table]
- -
Tabellenzeile
haben Überschriften
- -

 

- -**Listen** - -
[list]
- [*] Erstes Listenelement
- [*] Zweites Listenelement
-[/list]
- - -[list] ist Equivalent zu [ul] (unsortierte Liste). - -[ol] kann anstelle von [list] verwendet werden um eine sortierte Liste zu erzeugen: - -
[ol]
- [*] Erstes Listenelement
- [*] Zweites Listenelement
-[/ol]
- - -Für weitere Optionen von sortierten Listen kann man den Stil der Numerierung der Liste definieren: -
[list=1]
: dezimal - -
[list=i]
: römisch, Kleinbuchstaben - -
[list=I]
: römisch, Großbuchstaben - -
[list=a]
: alphabetisch, Kleinbuchstaben - -
[list=A] 
: alphabethisch, Großbuchstaben - - - - -Einbettung von Inhalten ------- - -Man kann viele Dinge, z.B. Video und Audio Dateine, in Nachrichten einbetten. - -
[video]url[/video]
-
[audio]url[/audio]
- -Wobei die *url* von youtube, vimeo, soundcloud oder einer anderen Seite stammen kann die die oembed oder opengraph Spezifikationen unterstützt. -Außerdem kann *url* die genaue url zu einer ogg Datei sein, die dann per HTML5 eingebunden wird. - -
[url]*url*[/url]
- -Wenn *url* entweder oembed oder opengraph unterstützt wird das eingebettete Objekt (z.B. ein Dokument von scribd) eingebunden. -Der Titel der Seite mit einem Link zur *url* wird ebenfalls angezeigt. - -Um eine Karte in einen Beitrag einzubinden, muss das *openstreetmap* Addon aktiviert werden. Ist dies der Fall, kann mit - -
[map]Broadway 26, New York[/map]
- -eine Karte von [OpenStreetmap](http://openstreetmap.org) eingebettet werden. Zur Identifikation des Ortes können entweder seine Koordinaten in der Form - -
[map=lat,long]
- -oder eine Adresse in obiger Form verwendet werden. - -Zusammenfassung für längere Beiträge ------------------------------------- - -Wenn man seine Beiträge über mehrere Netzwerke verbreiten möchte, hat man häufig das Problem, dass diese Netzwerke z.B. eine Längenbeschränkung haben. -(Z.B. Twitter). - -Friendica benutzt zum Erzeugen eines Anreißtextes eine halbwegs intelligente Logik. -Es kann aber dennoch von Interesse sein, eine eigene Zusammenfassung zu erstellen, die nur auf dem Fremdnetzwerk dargestellt wird. -Dies geschieht mit dem [abstract]-Element. -Beispiel: - -
[abstract]Total spannend! Unbedingt diesen Link anklicken![/abstract]
-Hier erzähle ich euch eine total langweilige Geschichte, die ihr noch 
-nie hören wolltet.
- -Auf Twitter würde das "Total spannend! Unbedingt diesen Link anklicken!" stehen, auf Friendica würde nur der Text nach "Hier erzähle ..." erscheinen. - -Es ist sogar möglich, für einzelne Netzwerke eigene Zusammenfassungen zu erstellen: - -
-[abstract]Hallo Leute, hier meine neuesten Bilder![abstract]
-[abstract=twit]Hallo Twitter-User, hier meine neuesten Bilder![abstract]
-[abstract=apdn]Hallo App.net-User, hier meine neuesten Bilder![abstract]
-Ich war heute wieder im Wald unterwegs und habe tolle Bilder geschossen ...
-
- -Für Twitter und App.net nimmt das System die entsprechenden Texte. -Bei anderen Netzwerken, bei denen der Inhalt gekürzt wird (z.B. beim "statusnet"-Connector, der für das Posten nach GNU Social verwendet wird) wird dann die Zusammenfassung unter [abstract] verwendet. - -Wenn man z.B. den "buffer"-Connector verwendet, um nach Facebook oder Google+ zu posten, kann man dieses Element ebenfalls verwenden, wenn man z.B. einen längeren Blogbeitrag erstellt hat, aber ihn nicht komplett in diese Netzwerke posten möchte. - -Netzwerke wie Facebook oder Google+ sind nicht in der Postinglänge beschränkt. -Aus diesem Grund greift nicht die [abstract]-Zusammenfassung. Stattdessen muss man das Netzwerk explizit angeben: - -
-[abstract]Ich habe neulich wieder etwas erlebt, was ich euch mitteilen möchte.[abstract]
-[abstract=goog]Hallo meine Google+-Kreislinge. Ich habe neulich wieder 
-etwas erlebt, was ich euch mitteilen möchte.[abstract]
-[abstract=face]Hallo Facebook-Freunde! Ich habe neulich wieder etwas 
-erlebt, was ich euch mitteilen möchte.[abstract]
-Beim Bildermachen im Wald habe ich neulich eine interessante Person 
-getroffen ... 
- -Das [abstract]-Element greift nicht bei der nativen OStatus-Verbindung oder bei Connectoren, die den HTML-Text posten wie z.B. die Connectoren zu Tumblr, Wordpress oder Pump.io. - -Spezielle Tags -------- - -Wenn Du über BBCode Tags in einer Nachricht schreiben möchtest, kannst Du [noparse], [nobb] oder [pre] verwenden um den BBCode Tags vor der Evaluierung zu schützen: - -
[noparse][b]fett[/b][/noparse]
: [b]fett[/b] diff --git a/doc/de/Home.md b/doc/de/Home.md index 365e18cb3..68c026e5c 100644 --- a/doc/de/Home.md +++ b/doc/de/Home.md @@ -29,7 +29,7 @@ Friendica - Dokumentation und Ressourcen **Technische Dokumentation** * [Installation](help/Install) -* [Konfigurationen](help/Settings) +* [Konfigurationen & Admin-Panel](help/Settings) * [Plugins](help/Plugins) * [Konnektoren (Connectors) installieren (Twitter/GNU Social)](help/Installing-Connectors) * [Installation eines ejabberd Servers (XMPP-Chat) mit synchronisierten Anmeldedaten](help/install-ejabberd) (EN) diff --git a/doc/de/Settings.md b/doc/de/Settings.md index f72d4fd75..2b157e6d9 100644 --- a/doc/de/Settings.md +++ b/doc/de/Settings.md @@ -9,8 +9,9 @@ Diese Zahl sollte sich relativ schnell sinken. Die zweite Zahl gibt die Anzahl von Nachrichten an, die nicht zugestellt werden konnten. Die Zustellung wird zu einem späteren Zeitpunkt noch einmal versucht. Unter dem Punkt "Warteschlange Inspizieren" kannst du einen schnellen Blick auf die zweite Warteschlange werfen. -Solltest du für die Hintergrundprozesse die Worker aktiviert haben, könntest du eine dritte Zahl angezeigt bekommen. +Solltest du für die Hintergrundprozesse die Worker aktiviert haben, wird eine dritte Zahl angezeigt. Diese repräsentiert die Anzahl der Aufgaben, die die Worker noch vor sich haben. +Die Aufgaben der Worker sind priorisiert und werden anhand dieser Prioritäten abgearbeitet. Des weiteren findest du eine Übersicht über die Accounts auf dem Friendica Knoten, die unter dem Punkt "Nutzer" moderiert werden können. Sowie eine Liste der derzeit aktivierten Addons. diff --git a/doc/htconfig.md b/doc/htconfig.md index 2435da2ba..b6f98b2ef 100644 --- a/doc/htconfig.md +++ b/doc/htconfig.md @@ -1,20 +1,19 @@ Config values that can only be set in .htconfig.php =================================================== -There are some config values that haven't found their way into the administration page. This has several reasons. Maybe they are part of a -current development that isn't considered stable and will be added later in the administration page when it is considered safe. Or it triggers -something that isn't expected to be of public interest. Or it is for testing purposes only. +There are some config values that haven't found their way into the administration page. +This has several reasons. +Maybe they are part of a current development that isn't considered stable and will be added later in the administration page when it is considered safe. +Or it triggers something that isn't expected to be of public interest. Or it is for testing purposes only. -**Attention:** Please be warned that you shouldn't use one of these values without the knowledge what it could trigger. Especially don't do that with -undocumented values. +**Attention:** Please be warned that you shouldn't use one of these values without the knowledge what it could trigger. +Especially don't do that with undocumented values. -The header of the section describes the category, the value is the parameter. Example: To set the directory value please add this -line to your .htconfig.php: +The header of the section describes the category, the value is the parameter. +Example: To set the directory value please add this line to your .htconfig.php: $a->config['system']['directory'] = 'http://dir.friendi.ca'; - - ## Jabber ## * debug (Boolean) - Enable debug level for the jabber account synchronisation. * logfile - Logfile for the jabber account synchronisation. @@ -23,7 +22,7 @@ line to your .htconfig.php: * birthday_input_format - Default value is "ymd". * block_local_dir (Boolean) - Blocks the access to the directory of the local users. -* default_service_class - +* default_service_class - * delivery_batch_count - Number of deliveries per process. Default value is 1. (Disabled when using the worker) * diaspora_test (Boolean) - For development only. Disables the message transfer. * directory - The path to global directory. If not set then "http://dir.friendi.ca" is used. @@ -40,6 +39,9 @@ line to your .htconfig.php: * max_batch_queue - Default value is 1000. * max_processes_backend - Maximum number of concurrent database processes for background tasks. Default value is 5. * max_processes_frontend - Maximum number of concurrent database processes for foreground tasks. Default value is 20. +* memcache (Boolean) - Use memcache. To use memcache the PECL extension "memcache" has to be installed and activated. +* memcache_host - Hostname of the memcache daemon. Default is '127.0.0.1'. +* memcache_port- Portnumberof the memcache daemon. Default is 11211. * no_oembed (Boolean) - Don't use OEmbed to fetch more information about a link. * no_oembed_rich_content (Boolean) - Don't show the rich content (e.g. embedded PDF). * no_smilies (Boolean) - Don't show smilies. @@ -48,16 +50,17 @@ line to your .htconfig.php: * ostatus_poll_timeframe - Defines how old an item can be to try to complete the conversation with it. * paranoia (Boolean) - Log out users if their IP address changed. * permit_crawling (Boolean) - Restricts the search for not logged in users to one search per minute. +* profiler (Boolean) - Enable internal timings to help optimize code. Needed for "rendertime" addon. Default is false. * free_crawls - Number of "free" searches when "permit_crawling" is activated (Default value is 10) * crawl_permit_period - Period in seconds between allowed searches when the number of free searches is reached and "permit_crawling" is activated (Default value is 60) * png_quality - Default value is 8. * proc_windows (Boolean) - Should be enabled if Friendica is running under Windows. * proxy_cache_time - Time after which the cache is cleared. Default value is one day. -* pushpoll_frequency - +* pushpoll_frequency - * qsearch_limit - Default value is 100. * relay_server - Experimental Diaspora feature. Address of the relay server where public posts should be send to. For example https://podrelay.net * relay_subscribe (Boolean) - Enables the receiving of public posts from the relay. They will be included in the search and on the community page when it is set up to show all public items. -* relay_scope - Can be "all" or "tags". "all" means that every public post should be received. "tags" means that only posts witt selected tags should be received. +* relay_scope - Can be "all" or "tags". "all" means that every public post should be received. "tags" means that only posts with selected tags should be received. * relay_server_tags - Comma separated list of tags for the "tags" subscription (see "relay_scrope") * relay_user_tags (Boolean) - If enabled, the tags from the saved searches will used for the "tags" subscription in addition to the "relay_server_tags". * remove_multiplicated_lines (Boolean) - If enabled, multiple linefeeds in items are stripped to a single one. @@ -67,11 +70,12 @@ line to your .htconfig.php: * throttle_limit_week - Maximum number of posts that a user can send per week with the API. * throttle_limit_month - Maximum number of posts that a user can send per month with the API. * wall-to-wall_share (Boolean) - Displays forwarded posts like "wall-to-wall" posts. +* worker_cooldown - Cooldown time after each worker function call. Default value is 0 seconds. * xrd_timeout - Timeout for fetching the XRD links. Default value is 20 seconds. ## service_class ## -* upgrade_link - +* upgrade_link - ## experimentals ## @@ -83,19 +87,15 @@ line to your .htconfig.php: # Administrator Options # -Enabling the admin panel for an account, and thus making the account holder -admin of the node, is done by setting the variable +Enabling the admin panel for an account, and thus making the account holder admin of the node, is done by setting the variable $a->config['admin_email'] = "someone@example.com"; -where you have to match the email address used for the account with the one you -enter to the .htconfig file. If more then one account should be able to access -the admin panel, seperate the email addresses with a comma. +Where you have to match the email address used for the account with the one you enter to the .htconfig file. +If more then one account should be able to access the admin panel, seperate the email addresses with a comma. $a->config['admin_email'] = "someone@example.com,someonelese@example.com"; -If you want to have a more personalized closing line for the notification -emails you can set a variable for the admin_name. +If you want to have a more personalized closing line for the notification emails you can set a variable for the admin_name. $a->config['admin_name'] = "Marvin"; - diff --git a/doc/readme.md b/doc/readme.md index 068d0c9c5..98b637a22 100644 --- a/doc/readme.md +++ b/doc/readme.md @@ -27,7 +27,7 @@ Friendica Documentation and Resources **Technical Documentation** * [Install](help/Install) -* [Settings](help/Settings) +* [Settings & Admin Panel](help/Settings) * [Plugins](help/Plugins) * [Installing Connectors (Twitter/GNU Social)](help/Installing-Connectors) * [Install an ejabberd server (XMPP chat) with synchronized credentials](help/install-ejabberd) diff --git a/doc/translations.md b/doc/translations.md index 728a56ab3..861e98440 100644 --- a/doc/translations.md +++ b/doc/translations.md @@ -24,12 +24,12 @@ If you want to get your work into the source tree yourself, feel free to do so a The process is simple and friendica ships with all the tools necessary. The location of the translated files in the source tree is - /view/LNG-CODE/ + /view/lang/LNG-CODE/ where LNG-CODE is the language code used, e.g. de for German or fr for French. The translated strings come as a "message.po" file from transifex which needs to be translated into the PHP file friendica uses. To do so, place the file in the directory mentioned above and use the "po2php" utility from the util directory of your friendica installation. -Assuming you want to convert the German localization which is placed in view/de/message.po you would do the following. +Assuming you want to convert the German localization which is placed in view/lang/de/message.po you would do the following. 1. Navigate at the command prompt to the base directory of your friendica installation @@ -37,9 +37,9 @@ Assuming you want to convert the German localization which is placed in view/de/ 2. Execute the po2php script, which will place the translation in the strings.php file that is used by friendica. - $> php util/po2php.php view/de/messages.po + $> php util/po2php.php view/lang/de/messages.po - The output of the script will be placed at view/de/strings.php where + The output of the script will be placed at view/lang/de/strings.php where friendica is expecting it, so you can test your translation immediately. 3. Visit your friendica page to check if it still works in the language you @@ -50,7 +50,7 @@ Assuming you want to convert the German localization which is placed in view/de/ not give any output if the file is ok but might give a hint for searching the bug in the file. - $> php view/de/strings.php + $> php view/lang/de/strings.php 4. commit the two files with a meaningful commit message to your git repository, push it to your fork of the friendica repository at github and diff --git a/doc/upgrade.md b/doc/upgrade.md new file mode 100644 index 000000000..778f9355e --- /dev/null +++ b/doc/upgrade.md @@ -0,0 +1,34 @@ +# Considerations before upgrading Friendica + +* [Home](help) + +## MySQL >= 5.7.4 + +Starting from MySQL version 5.7.4, the IGNORE keyword in ALTER TABLE statements is ignored. +This prevents automatic table deduplication if a UNIQUE index is added to a Friendica table's structure. +If a DB update fails for you while creating a UNIQUE index, make sure to manually deduplicate the table before trying the update again. + +### Manual deduplication + +There are two main ways of doing it, either by manually removing the duplicates or by recreating the table. +Manually removing the duplicates is usually faster if they're not too numerous. +To manually remove the duplicates, you need to know the UNIQUE index columns available in `database.sql`. + +```SQL +SELECT GROUP_CONCAT(id), , count(*) as count FROM users +GROUP BY HAVING count >= 2; + +/* delete or merge duplicate from above query */; +``` + +If there are too many rows to handle manually, you can create a new table with the same structure as the table with duplicates and insert the existing content with INSERT IGNORE. +To recreate the table you need to know the table structure available in `database.sql`. + +```SQL +CREATE TABLE _new ; +INSERT IGNORE INTO _new SELECT * FROM ; +DROP TABLE ; +RENAME TABLE _new TO ; +``` + +This method is slower overall, but it is better suited for large numbers of duplicates. \ No newline at end of file diff --git a/htconfig.php b/htconfig.php index fe6c0d82e..469fa7af6 100644 --- a/htconfig.php +++ b/htconfig.php @@ -16,6 +16,11 @@ $db_user = 'mysqlusername'; $db_pass = 'mysqlpassword'; $db_data = 'mysqldatabasename'; +// Set the database connection charset to UTF8. +// Changing this value will likely corrupt the special characters. +// You have been warned. +$a->config['system']['db_charset'] = "utf8mb4"; + // Choose a legal default timezone. If you are unsure, use "America/Los_Angeles". // It can be changed later and only applies to timestamps for anonymous viewers. diff --git a/include/Contact.php b/include/Contact.php index 86ef4a30f..23b5bbe5b 100644 --- a/include/Contact.php +++ b/include/Contact.php @@ -45,10 +45,10 @@ function user_remove($uid) { // don't delete yet, will be done later when contacts have deleted my stuff // q("DELETE FROM `user` WHERE `uid` = %d", intval($uid)); q("UPDATE `user` SET `account_removed` = 1, `account_expires_on` = UTC_TIMESTAMP() WHERE `uid` = %d", intval($uid)); - proc_run('php', "include/notifier.php", "removeme", $uid); + proc_run(PRIORITY_HIGH, "include/notifier.php", "removeme", $uid); // Send an update to the directory - proc_run('php', "include/directory.php", $r[0]['url']); + proc_run(PRIORITY_LOW, "include/directory.php", $r[0]['url']); if($uid == local_user()) { unset($_SESSION['authenticated']); @@ -159,7 +159,7 @@ function mark_for_death($contact) { } else { - /// @todo + /// @todo /// We really should send a notification to the owner after 2-3 weeks /// so they won't be surprised when the contact vanishes and can take /// remedial action if this was a serious mistake or glitch @@ -196,6 +196,7 @@ function unmark_for_death($contact) { * @brief Get contact data for a given profile link * * The function looks at several places (contact table and gcontact table) for the contact + * It caches its result for the same script execution to prevent duplicate calls * * @param string $url The profile link * @param int $uid User id @@ -204,35 +205,45 @@ function unmark_for_death($contact) { * @return array Contact data */ function get_contact_details_by_url($url, $uid = -1, $default = array()) { - if ($uid == -1) + static $cache = array(); + + if ($uid == -1) { $uid = local_user(); + } + + if (isset($cache[$url][$uid])) { + return $cache[$url][$uid]; + } // Fetch contact data from the contact table for the given user - $r = q("SELECT `id`, `id` AS `cid`, 0 AS `gid`, 0 AS `zid`, `uid`, `url`, `nurl`, `alias`, `network`, `name`, `nick`, `addr`, `location`, `about`, - `keywords`, `gender`, `photo`, `thumb`, `forum`, `prv`, (`forum` | `prv`) AS `community`, `bd` AS `birthday`, `self` + $r = q("SELECT `id`, `id` AS `cid`, 0 AS `gid`, 0 AS `zid`, `uid`, `url`, `nurl`, `alias`, `network`, `name`, `nick`, `addr`, `location`, `about`, `xmpp`, + `keywords`, `gender`, `photo`, `thumb`, `micro`, `forum`, `prv`, (`forum` | `prv`) AS `community`, `contact-type`, `bd` AS `birthday`, `self` FROM `contact` WHERE `nurl` = '%s' AND `uid` = %d", dbesc(normalise_link($url)), intval($uid)); // Fetch the data from the contact table with "uid=0" (which is filled automatically) if (!$r) - $r = q("SELECT `id`, 0 AS `cid`, `id` AS `zid`, 0 AS `gid`, `uid`, `url`, `nurl`, `alias`, `network`, `name`, `nick`, `addr`, `location`, `about`, - `keywords`, `gender`, `photo`, `thumb`, `forum`, `prv`, (`forum` | `prv`) AS `community`, `bd` AS `birthday`, 0 AS `self` + $r = q("SELECT `id`, 0 AS `cid`, `id` AS `zid`, 0 AS `gid`, `uid`, `url`, `nurl`, `alias`, `network`, `name`, `nick`, `addr`, `location`, `about`, `xmpp`, + `keywords`, `gender`, `photo`, `thumb`, `micro`, `forum`, `prv`, (`forum` | `prv`) AS `community`, `contact-type`, `bd` AS `birthday`, 0 AS `self` FROM `contact` WHERE `nurl` = '%s' AND `uid` = 0", dbesc(normalise_link($url))); // Fetch the data from the gcontact table if (!$r) - $r = q("SELECT 0 AS `id`, 0 AS `cid`, `id` AS `gid`, 0 AS `zid`, 0 AS `uid`, `url`, `nurl`, `alias`, `network`, `name`, `nick`, `addr`, `location`, `about`, - `keywords`, `gender`, `photo`, `photo` AS `thumb`, `community` AS `forum`, 0 AS `prv`, `community`, `birthday`, 0 AS `self` + $r = q("SELECT 0 AS `id`, 0 AS `cid`, `id` AS `gid`, 0 AS `zid`, 0 AS `uid`, `url`, `nurl`, `alias`, `network`, `name`, `nick`, `addr`, `location`, `about`, '' AS `xmpp`, + `keywords`, `gender`, `photo`, `photo` AS `thumb`, `photo` AS `micro`, `community` AS `forum`, 0 AS `prv`, `community`, `contact-type`, `birthday`, 0 AS `self` FROM `gcontact` WHERE `nurl` = '%s'", dbesc(normalise_link($url))); if ($r) { // If there is more than one entry we filter out the connector networks - if (count($r) > 1) - foreach ($r AS $id => $result) - if ($result["network"] == NETWORK_STATUSNET) + if (count($r) > 1) { + foreach ($r AS $id => $result) { + if ($result["network"] == NETWORK_STATUSNET) { unset($r[$id]); + } + } + } $profile = array_shift($r); @@ -251,19 +262,40 @@ function get_contact_details_by_url($url, $uid = -1, $default = array()) { $profile["bd"] = $current_year."-".$month."-".$day; $current = $current_year."-".$current_month."-".$current_day; - if ($profile["bd"] < $current) + if ($profile["bd"] < $current) { $profile["bd"] = (++$current_year)."-".$month."-".$day; - } else + } + } else { $profile["bd"] = "0000-00-00"; + } } else { $profile = $default; - if (!isset($profile["thumb"]) AND isset($profile["photo"])) - $profile["thumb"] = $profile["photo"]; + } + + if (($profile["photo"] == "") AND isset($default["photo"])) { + $profile["photo"] = $default["photo"]; + } + + if (($profile["name"] == "") AND isset($default["name"])) { + $profile["name"] = $default["name"]; + } + + if (($profile["network"] == "") AND isset($default["network"])) { + $profile["network"] = $default["network"]; + } + + if (($profile["thumb"] == "") AND isset($profile["photo"])) { + $profile["thumb"] = $profile["photo"]; + } + + if (($profile["micro"] == "") AND isset($profile["thumb"])) { + $profile["micro"] = $profile["thumb"]; } if ((($profile["addr"] == "") OR ($profile["name"] == "")) AND ($profile["gid"] != 0) AND - in_array($profile["network"], array(NETWORK_DFRN, NETWORK_DIASPORA, NETWORK_OSTATUS))) - proc_run('php',"include/update_gcontact.php", $profile["gid"]); + in_array($profile["network"], array(NETWORK_DFRN, NETWORK_DIASPORA, NETWORK_OSTATUS))) { + proc_run(PRIORITY_LOW, "include/update_gcontact.php", $profile["gid"]); + } // Show contact details of Diaspora contacts only if connected if (($profile["cid"] == 0) AND ($profile["network"] == NETWORK_DIASPORA)) { @@ -273,87 +305,93 @@ function get_contact_details_by_url($url, $uid = -1, $default = array()) { $profile["birthday"] = "0000-00-00"; } - return($profile); + $cache[$url][$uid] = $profile; + + return $profile; } -if(! function_exists('contact_photo_menu')){ -function contact_photo_menu($contact, $uid = 0) { - +if (! function_exists('contact_photo_menu')) { +function contact_photo_menu($contact, $uid = 0) +{ $a = get_app(); - $contact_url=""; - $pm_url=""; - $status_link=""; - $photos_link=""; - $posts_link=""; - $contact_drop_link = ""; - $poke_link=""; + $contact_url = ''; + $pm_url = ''; + $status_link = ''; + $photos_link = ''; + $posts_link = ''; + $contact_drop_link = ''; + $poke_link = ''; - if ($uid == 0) + if ($uid == 0) { $uid = local_user(); + } - if ($contact["uid"] != $uid) { + if ($contact['uid'] != $uid) { if ($uid == 0) { $profile_link = zrl($contact['url']); - $menu = Array('profile' => array(t("View Profile"), $profile_link, true)); + $menu = Array('profile' => array(t('View Profile'), $profile_link, true)); return $menu; } $r = q("SELECT * FROM `contact` WHERE `nurl` = '%s' AND `network` = '%s' AND `uid` = %d", - dbesc($contact["nurl"]), dbesc($contact["network"]), intval($uid)); - if ($r) + dbesc($contact['nurl']), dbesc($contact['network']), intval($uid)); + if ($r) { return contact_photo_menu($r[0], $uid); - else { + } else { $profile_link = zrl($contact['url']); $connlnk = 'follow/?url='.$contact['url']; - $menu = Array( - 'profile' => array(t("View Profile"), $profile_link, true), - 'follow' => array(t("Connect/Follow"), $connlnk, true) - ); + $menu = array( + 'profile' => array(t('View Profile'), $profile_link, true), + 'follow' => array(t('Connect/Follow'), $connlnk, true) + ); return $menu; } } $sparkle = false; - if($contact['network'] === NETWORK_DFRN) { + if ($contact['network'] === NETWORK_DFRN) { $sparkle = true; $profile_link = $a->get_baseurl() . '/redir/' . $contact['id']; - } - else + } else { $profile_link = $contact['url']; - - if($profile_link === 'mailbox') - $profile_link = ''; - - if($sparkle) { - $status_link = $profile_link . "?url=status"; - $photos_link = $profile_link . "?url=photos"; - $profile_link = $profile_link . "?url=profile"; } - if (in_array($contact["network"], array(NETWORK_DFRN, NETWORK_DIASPORA))) - $pm_url = $a->get_baseurl() . '/message/new/' . $contact['id']; + if ($profile_link === 'mailbox') { + $profile_link = ''; + } - if ($contact["network"] == NETWORK_DFRN) + if ($sparkle) { + $status_link = $profile_link . '?url=status'; + $photos_link = $profile_link . '?url=photos'; + $profile_link = $profile_link . '?url=profile'; + } + + if (in_array($contact['network'], array(NETWORK_DFRN, NETWORK_DIASPORA))) { + $pm_url = $a->get_baseurl() . '/message/new/' . $contact['id']; + } + + if ($contact['network'] == NETWORK_DFRN) { $poke_link = $a->get_baseurl() . '/poke/?f=&c=' . $contact['id']; + } $contact_url = $a->get_baseurl() . '/contacts/' . $contact['id']; - $posts_link = $a->get_baseurl() . "/contacts/" . $contact['id'] . '/posts'; - $contact_drop_link = $a->get_baseurl() . "/contacts/" . $contact['id'] . '/drop?confirm=1'; + $posts_link = $a->get_baseurl() . '/contacts/' . $contact['id'] . '/posts'; + $contact_drop_link = $a->get_baseurl() . '/contacts/' . $contact['id'] . '/drop?confirm=1'; /** * menu array: * "name" => [ "Label", "link", (bool)Should the link opened in a new tab? ] */ - $menu = Array( + $menu = array( 'status' => array(t("View Status"), $status_link, true), 'profile' => array(t("View Profile"), $profile_link, true), - 'photos' => array(t("View Photos"), $photos_link,true), - 'network' => array(t("Network Posts"), $posts_link,false), - 'edit' => array(t("Edit Contact"), $contact_url, false), + 'photos' => array(t("View Photos"), $photos_link, true), + 'network' => array(t("Network Posts"), $posts_link, false), + 'edit' => array(t("View Contact"), $contact_url, false), 'drop' => array(t("Drop Contact"), $contact_drop_link, false), 'pm' => array(t("Send PM"), $pm_url, false), 'poke' => array(t("Poke"), $poke_link, false), @@ -366,9 +404,11 @@ function contact_photo_menu($contact, $uid = 0) { $menucondensed = array(); - foreach ($menu AS $menuname=>$menuitem) - if ($menuitem[1] != "") + foreach ($menu AS $menuname => $menuitem) { + if ($menuitem[1] != '') { $menucondensed[$menuname] = $menuitem; + } + } return $menucondensed; }} @@ -410,9 +450,20 @@ function contacts_not_grouped($uid,$start = 0,$count = 0) { return $r; } -function get_contact($url, $uid = 0) { +/** + * @brief Fetch the contact id for a given url and user + * + * @param string $url Contact URL + * @param integer $uid The user id for the contact + * @param boolean $no_update Don't update the contact + * + * @return integer Contact ID + */ +function get_contact($url, $uid = 0, $no_update = false) { require_once("include/Scrape.php"); + logger("Get contact data for url ".$url." and user ".$uid." - ".App::callstack(), LOGGER_DEBUG);; + $data = array(); $contactid = 0; @@ -442,8 +493,9 @@ function get_contact($url, $uid = 0) { $update_photo = ($contact[0]['avatar-date'] < datetime_convert('','','now -7 days')); //$update_photo = ($contact[0]['avatar-date'] < datetime_convert('','','now -12 hours')); - if (!$update_photo) + if (!$update_photo OR $no_update) { return($contactid); + } } elseif ($uid != 0) return 0; @@ -451,17 +503,27 @@ function get_contact($url, $uid = 0) { $data = probe_url($url); // Does this address belongs to a valid network? - if (!in_array($data["network"], array(NETWORK_DFRN, NETWORK_OSTATUS, NETWORK_DIASPORA))) - return 0; + if (!in_array($data["network"], array(NETWORK_DFRN, NETWORK_OSTATUS, NETWORK_DIASPORA))) { + if ($uid != 0) + return 0; + + // Get data from the gcontact table + $r = q("SELECT `name`, `nick`, `url`, `photo`, `addr`, `alias`, `network` FROM `gcontact` WHERE `nurl` = '%s'", + dbesc(normalise_link($url))); + if (!$r) + return 0; + + $data = $r[0]; + } $url = $data["url"]; if ($contactid == 0) { q("INSERT INTO `contact` (`uid`, `created`, `url`, `nurl`, `addr`, `alias`, `notify`, `poll`, `name`, `nick`, `photo`, `network`, `pubkey`, `rel`, `priority`, - `batch`, `request`, `confirm`, `poco`, + `batch`, `request`, `confirm`, `poco`, `name-date`, `uri-date`, `writable`, `blocked`, `readonly`, `pending`) - VALUES (%d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', '%s', '%s', '%s', 1, 0, 0, 0)", + VALUES (%d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', 1, 0, 0, 0)", intval($uid), dbesc(datetime_convert()), dbesc($data["url"]), @@ -480,7 +542,9 @@ function get_contact($url, $uid = 0) { dbesc($data["batch"]), dbesc($data["request"]), dbesc($data["confirm"]), - dbesc($data["poco"]) + dbesc($data["poco"]), + dbesc(datetime_convert()), + dbesc(datetime_convert()) ); $contact = q("SELECT `id` FROM `contact` WHERE `nurl` = '%s' AND `uid` = %d ORDER BY `id` LIMIT 2", @@ -490,6 +554,16 @@ function get_contact($url, $uid = 0) { return 0; $contactid = $contact[0]["id"]; + + // Update the newly created contact from data in the gcontact table + $r = q("SELECT `location`, `about`, `keywords`, `gender` FROM `gcontact` WHERE `nurl` = '%s'", + dbesc(normalise_link($data["url"]))); + if ($r) { + logger("Update contact ".$data["url"]); + q("UPDATE `contact` SET `location` = '%s', `about` = '%s', `keywords` = '%s', `gender` = '%s' WHERE `id` = %d", + dbesc($r["location"]), dbesc($r["about"]), dbesc($r["keywords"]), + dbesc($r["gender"]), intval($contactid)); + } } if ((count($contact) > 1) AND ($uid == 0) AND ($contactid != 0) AND ($url != "")) @@ -501,16 +575,27 @@ function get_contact($url, $uid = 0) { update_contact_avatar($data["photo"],$uid,$contactid); - q("UPDATE `contact` SET `addr` = '%s', `alias` = '%s', `name` = '%s', `nick` = '%s', - `name-date` = '%s', `uri-date` = '%s' WHERE `id` = %d", - dbesc($data["addr"]), - dbesc($data["alias"]), - dbesc($data["name"]), - dbesc($data["nick"]), - dbesc(datetime_convert()), - dbesc(datetime_convert()), - intval($contactid) - ); + $r = q("SELECT `addr`, `alias`, `name`, `nick` FROM `contact` WHERE `id` = %d", intval($contactid)); + + // This condition should always be true + if (!dbm::is_result($r)) + return $contactid; + + // Only update if there had something been changed + if (($data["addr"] != $r[0]["addr"]) OR + ($data["alias"] != $r[0]["alias"]) OR + ($data["name"] != $r[0]["name"]) OR + ($data["nick"] != $r[0]["nick"])) + q("UPDATE `contact` SET `addr` = '%s', `alias` = '%s', `name` = '%s', `nick` = '%s', + `name-date` = '%s', `uri-date` = '%s' WHERE `id` = %d", + dbesc($data["addr"]), + dbesc($data["alias"]), + dbesc($data["name"]), + dbesc($data["nick"]), + dbesc(datetime_convert()), + dbesc(datetime_convert()), + intval($contactid) + ); return $contactid; } @@ -599,11 +684,11 @@ function posts_from_contact($a, $contact_id) { $r = q("SELECT `item`.`uri`, `item`.*, `item`.`id` AS `item_id`, `author-name` AS `name`, `owner-avatar` AS `photo`, `owner-link` AS `url`, `owner-avatar` AS `thumb` - FROM `item` FORCE INDEX (`uid_contactid_created`) + FROM `item` FORCE INDEX (`uid_contactid_id`) WHERE `item`.`uid` = %d AND `contact-id` = %d AND `author-link` IN ('%s', '%s') AND NOT `deleted` AND NOT `moderated` AND `visible` - ORDER BY `item`.`created` DESC LIMIT %d, %d", + ORDER BY `item`.`id` DESC LIMIT %d, %d", intval(local_user()), intval($contact_id), dbesc(str_replace("https://", "http://", $contact["url"])), @@ -651,4 +736,50 @@ function formatted_location($profile) { return $location; } + +/** + * @brief Returns the account type name + * + * The function can be called with either the user or the contact array + * + * @param array $contact contact or user array + */ +function account_type($contact) { + + // There are several fields that indicate that the contact or user is a forum + // "page-flags" is a field in the user table, + // "forum" and "prv" are used in the contact table. They stand for PAGE_COMMUNITY and PAGE_PRVGROUP. + // "community" is used in the gcontact table and is true if the contact is PAGE_COMMUNITY or PAGE_PRVGROUP. + if((isset($contact['page-flags']) && (intval($contact['page-flags']) == PAGE_COMMUNITY)) + || (isset($contact['page-flags']) && (intval($contact['page-flags']) == PAGE_PRVGROUP)) + || (isset($contact['forum']) && intval($contact['forum'])) + || (isset($contact['prv']) && intval($contact['prv'])) + || (isset($contact['community']) && intval($contact['community']))) + $type = ACCOUNT_TYPE_COMMUNITY; + else + $type = ACCOUNT_TYPE_PERSON; + + // The "contact-type" (contact table) and "account-type" (user table) are more general then the chaos from above. + if (isset($contact["contact-type"])) + $type = $contact["contact-type"]; + if (isset($contact["account-type"])) + $type = $contact["account-type"]; + + switch($type) { + case ACCOUNT_TYPE_ORGANISATION: + $account_type = t("Organisation"); + break; + case ACCOUNT_TYPE_NEWS: + $account_type = t('News'); + break; + case ACCOUNT_TYPE_COMMUNITY: + $account_type = t("Forum"); + break; + default: + $account_type = ""; + break; + } + + return $account_type; +} ?> diff --git a/include/Core/Config.php b/include/Core/Config.php index 8e387ca6f..a5eca0570 100644 --- a/include/Core/Config.php +++ b/include/Core/Config.php @@ -2,7 +2,7 @@ namespace Friendica\Core; /** * @file include/Core/Config.php - * + * * @brief Contains the class with methods for system configuration */ @@ -32,9 +32,9 @@ class Config { public static function load($family) { global $a; - $r = q("SELECT `v`, `k` FROM `config` WHERE `cat` = '%s'", dbesc($family)); - if(count($r)) { - foreach($r as $rr) { + $r = q("SELECT `v`, `k` FROM `config` WHERE `cat` = '%s' ORDER BY `cat`, `k`, `id`", dbesc($family)); + if (count($r)) { + foreach ($r as $rr) { $k = $rr['k']; if ($family === 'config') { $a->config[$k] = $rr['v']; @@ -70,74 +70,38 @@ class Config { * If true the config is loaded from the db and not from the cache (default: false) * @return mixed Stored value or null if it does not exist */ - public static function get($family, $key, $default_value=null, $refresh = false) { + public static function get($family, $key, $default_value = null, $refresh = false) { global $a; - if(! $instore) { + if (!$refresh) { // Looking if the whole family isn't set - if(isset($a->config[$family])) { - if($a->config[$family] === '!!') { + if (isset($a->config[$family])) { + if ($a->config[$family] === '!!') { return $default_value; } } - if(isset($a->config[$family][$key])) { - if($a->config[$family][$key] === '!!') { + if (isset($a->config[$family][$key])) { + if ($a->config[$family][$key] === '!!') { return $default_value; } return $a->config[$family][$key]; } } - // If APC is enabled then fetch the data from there, else try XCache - /*if (function_exists("apc_fetch") AND function_exists("apc_exists")) - if (apc_exists($family."|".$key)) { - $val = apc_fetch($family."|".$key); - $a->config[$family][$key] = $val; - - if ($val === '!!') - return false; - else - return $val; - } - elseif (function_exists("xcache_fetch") AND function_exists("xcache_isset")) - if (xcache_isset($family."|".$key)) { - $val = xcache_fetch($family."|".$key); - $a->config[$family][$key] = $val; - - if ($val === '!!') - return false; - else - return $val; - } - */ - - $ret = q("SELECT `v` FROM `config` WHERE `cat` = '%s' AND `k` = '%s' LIMIT 1", + $ret = q("SELECT `v` FROM `config` WHERE `cat` = '%s' AND `k` = '%s' ORDER BY `id` DESC LIMIT 1", dbesc($family), dbesc($key) ); - if(count($ret)) { + if (count($ret)) { // manage array value $val = (preg_match("|^a:[0-9]+:{.*}$|s", $ret[0]['v'])?unserialize( $ret[0]['v']):$ret[0]['v']); $a->config[$family][$key] = $val; - // If APC is enabled then store the data there, else try XCache - /*if (function_exists("apc_store")) - apc_store($family."|".$key, $val, 600); - elseif (function_exists("xcache_set")) - xcache_set($family."|".$key, $val, 600);*/ - return $val; - } - else { + } else { $a->config[$family][$key] = '!!'; - - // If APC is enabled then store the data there, else try XCache - /*if (function_exists("apc_store")) - apc_store($family."|".$key, '!!', 600); - elseif (function_exists("xcache_set")) - xcache_set($family."|".$key, '!!', 600);*/ } return $default_value; } @@ -158,48 +122,38 @@ class Config { * The value to store * @return mixed Stored $value or false if the database update failed */ - public static function set($family,$key,$value) { + public static function set($family, $key, $value) { global $a; - // If $a->config[$family] has been previously set to '!!', then - // $a->config[$family][$key] will evaluate to $a->config[$family][0], and - // $a->config[$family][$key] = $value will be equivalent to - // $a->config[$family][0] = $value[0] (this causes infuriating bugs), - // so unset the family before assigning a value to a family's key - if($a->config[$family] === '!!') - unset($a->config[$family]); + $stored = self::get($family, $key); - // manage array value - $dbvalue = (is_array($value)?serialize($value):$value); - $dbvalue = (is_bool($dbvalue) ? intval($dbvalue) : $dbvalue); - if(is_null(self::get($family,$key,null,true))) { - $a->config[$family][$key] = $value; - $ret = q("INSERT INTO `config` ( `cat`, `k`, `v` ) VALUES ( '%s', '%s', '%s' ) ", - dbesc($family), - dbesc($key), - dbesc($dbvalue) - ); - if($ret) - return $value; - return $ret; + if ($stored == $value) { + return true; } - $ret = q("UPDATE `config` SET `v` = '%s' WHERE `cat` = '%s' AND `k` = '%s'", - dbesc($dbvalue), - dbesc($family), - dbesc($key) - ); - $a->config[$family][$key] = $value; - // If APC is enabled then store the data there, else try XCache - /*if (function_exists("apc_store")) - apc_store($family."|".$key, $value, 600); - elseif (function_exists("xcache_set")) - xcache_set($family."|".$key, $value, 600);*/ + // manage array value + $dbvalue = (is_array($value) ? serialize($value) : $value); + $dbvalue = (is_bool($dbvalue) ? intval($dbvalue) : $dbvalue); - if($ret) + if (is_null($stored)) { + $ret = q("INSERT INTO `config` (`cat`, `k`, `v`) VALUES ('%s', '%s', '%s') ON DUPLICATE KEY UPDATE `v` = '%s'", + dbesc($family), + dbesc($key), + dbesc($dbvalue), + dbesc($dbvalue) + ); + } else { + $ret = q("UPDATE `config` SET `v` = '%s' WHERE `cat` = '%s' AND `k` = '%s'", + dbesc($dbvalue), + dbesc($family), + dbesc($key) + ); + } + if ($ret) { return $value; + } return $ret; } @@ -215,20 +169,16 @@ class Config { * The configuration key to delete * @return mixed */ - public static function delete($family,$key) { + public static function delete($family, $key) { global $a; - if(x($a->config[$family],$key)) + if (x($a->config[$family],$key)) { unset($a->config[$family][$key]); + } $ret = q("DELETE FROM `config` WHERE `cat` = '%s' AND `k` = '%s'", dbesc($family), dbesc($key) ); - // If APC is enabled then delete the data from there, else try XCache - /*if (function_exists("apc_delete")) - apc_delete($family."|".$key); - elseif (function_exists("xcache_unset")) - xcache_unset($family."|".$key);*/ return $ret; } diff --git a/include/Core/PConfig.php b/include/Core/PConfig.php index ab351ef2c..63d204b3a 100644 --- a/include/Core/PConfig.php +++ b/include/Core/PConfig.php @@ -27,14 +27,14 @@ class PConfig { * The category of the configuration value * @return void */ - public static function load($uid,$family) { + public static function load($uid, $family) { global $a; - $r = q("SELECT `v`,`k` FROM `pconfig` WHERE `cat` = '%s' AND `uid` = %d", + $r = q("SELECT `v`,`k` FROM `pconfig` WHERE `cat` = '%s' AND `uid` = %d ORDER BY `cat`, `k`, `id`", dbesc($family), intval($uid) ); - if(count($r)) { - foreach($r as $rr) { + if (count($r)) { + foreach ($r as $rr) { $k = $rr['k']; $a->config[$uid][$family][$k] = $rr['v']; } @@ -67,71 +67,35 @@ class PConfig { global $a; - if(! $instore) { + if (!$refresh) { // Looking if the whole family isn't set - if(isset($a->config[$uid][$family])) { - if($a->config[$uid][$family] === '!!') { + if (isset($a->config[$uid][$family])) { + if ($a->config[$uid][$family] === '!!') { return $default_value; } } - if(isset($a->config[$uid][$family][$key])) { - if($a->config[$uid][$family][$key] === '!!') { + if (isset($a->config[$uid][$family][$key])) { + if ($a->config[$uid][$family][$key] === '!!') { return $default_value; } return $a->config[$uid][$family][$key]; } } - // If APC is enabled then fetch the data from there, else try XCache - /*if (function_exists("apc_fetch") AND function_exists("apc_exists")) - if (apc_exists($uid."|".$family."|".$key)) { - $val = apc_fetch($uid."|".$family."|".$key); - $a->config[$uid][$family][$key] = $val; - - if ($val === '!!') - return false; - else - return $val; - } - elseif (function_exists("xcache_get") AND function_exists("xcache_isset")) - if (xcache_isset($uid."|".$family."|".$key)) { - $val = xcache_get($uid."|".$family."|".$key); - $a->config[$uid][$family][$key] = $val; - - if ($val === '!!') - return false; - else - return $val; - }*/ - - - $ret = q("SELECT `v` FROM `pconfig` WHERE `uid` = %d AND `cat` = '%s' AND `k` = '%s' LIMIT 1", + $ret = q("SELECT `v` FROM `pconfig` WHERE `uid` = %d AND `cat` = '%s' AND `k` = '%s' ORDER BY `id` DESC LIMIT 1", intval($uid), dbesc($family), dbesc($key) ); - if(count($ret)) { + if (count($ret)) { $val = (preg_match("|^a:[0-9]+:{.*}$|s", $ret[0]['v'])?unserialize( $ret[0]['v']):$ret[0]['v']); $a->config[$uid][$family][$key] = $val; - // If APC is enabled then store the data there, else try XCache - /*if (function_exists("apc_store")) - apc_store($uid."|".$family."|".$key, $val, 600); - elseif (function_exists("xcache_set")) - xcache_set($uid."|".$family."|".$key, $val, 600);*/ - return $val; - } - else { + } else { $a->config[$uid][$family][$key] = '!!'; - - // If APC is enabled then store the data there, else try XCache - /*if (function_exists("apc_store")) - apc_store($uid."|".$family."|".$key, '!!', 600); - elseif (function_exists("xcache_set")) - xcache_set($uid."|".$family."|".$key, '!!', 600);*/ } return $default_value; } @@ -154,43 +118,41 @@ class PConfig { * The value to store * @return mixed Stored $value or false */ - public static function set($uid,$family,$key,$value) { + public static function set($uid, $family, $key, $value) { global $a; - // manage array value - $dbvalue = (is_array($value)?serialize($value):$value); + $stored = self::get($uid, $family, $key); - if(is_null(self::get($uid,$family,$key,null, true))) { - $a->config[$uid][$family][$key] = $value; - $ret = q("INSERT INTO `pconfig` ( `uid`, `cat`, `k`, `v` ) VALUES ( %d, '%s', '%s', '%s' ) ", - intval($uid), - dbesc($family), - dbesc($key), - dbesc($dbvalue) - ); - if($ret) - return $value; - return $ret; + if ($stored == $value) { + return true; } - $ret = q("UPDATE `pconfig` SET `v` = '%s' WHERE `uid` = %d AND `cat` = '%s' AND `k` = '%s'", - dbesc($dbvalue), - intval($uid), - dbesc($family), - dbesc($key) - ); + + // manage array value + $dbvalue = (is_array($value) ? serialize($value):$value); $a->config[$uid][$family][$key] = $value; - // If APC is enabled then store the data there, else try XCache - /*if (function_exists("apc_store")) - apc_store($uid."|".$family."|".$key, $value, 600); - elseif (function_exists("xcache_set")) - xcache_set($uid."|".$family."|".$key, $value, 600);*/ + if (is_null($stored)) { + $ret = q("INSERT INTO `pconfig` (`uid`, `cat`, `k`, `v`) VALUES (%d, '%s', '%s', '%s') ON DUPLICATE KEY UPDATE `v` = '%s'", + intval($uid), + dbesc($family), + dbesc($key), + dbesc($dbvalue), + dbesc($dbvalue) + ); + } else { + $ret = q("UPDATE `pconfig` SET `v` = '%s' WHERE `uid` = %d AND `cat` = '%s' AND `k` = '%s'", + dbesc($dbvalue), + intval($uid), + dbesc($family), + dbesc($key) + ); + } - - if($ret) + if ($ret) { return $value; + } return $ret; } @@ -210,13 +172,17 @@ class PConfig { public static function delete($uid,$family,$key) { global $a; - if(x($a->config[$uid][$family],$key)) + + if (x($a->config[$uid][$family], $key)) { unset($a->config[$uid][$family][$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/include/Emailer.php b/include/Emailer.php index d0568f600..b0cdc3fe6 100644 --- a/include/Emailer.php +++ b/include/Emailer.php @@ -30,8 +30,8 @@ class Emailer { // generate a mime boundary $mimeBoundary =rand(0,9)."-" - .rand(10000000000,99999999999)."-" - .rand(10000000000,99999999999)."=:" + .rand(100000000,999999999)."-" + .rand(100000000,999999999)."=:" .rand(10000,99999); // generate a multipart/alternative message header diff --git a/include/ForumManager.php b/include/ForumManager.php index 17a6b6730..d01ece4d9 100644 --- a/include/ForumManager.php +++ b/include/ForumManager.php @@ -26,6 +26,7 @@ class ForumManager { * 'name' => forum name * 'id' => number of the key from the array * 'micro' => contact photo in format micro + * 'thumb' => contact photo in format thumb */ public static function get_list($uid, $showhidden = true, $lastitem, $showprivate = false) { @@ -38,7 +39,7 @@ class ForumManager { $select = '(`forum` OR `prv`)'; } - $contacts = q("SELECT `contact`.`id`, `contact`.`url`, `contact`.`name`, `contact`.`micro` FROM `contact` + $contacts = q("SELECT `contact`.`id`, `contact`.`url`, `contact`.`name`, `contact`.`micro`, `contact`.`thumb` FROM `contact` WHERE `network`= 'dfrn' AND $select AND `uid` = %d AND NOT `blocked` AND NOT `hidden` AND NOT `pending` AND NOT `archive` AND `success_update` > `failure_update` @@ -55,6 +56,7 @@ class ForumManager { 'name' => $contact['name'], 'id' => $contact['id'], 'micro' => $contact['micro'], + 'thumb' => $contact['thumb'], ); } return($forumlist); @@ -86,7 +88,7 @@ class ForumManager { $total = count($contacts); $visible_forums = 10; - if(count($contacts)) { + if(dbm::is_result($contacts)) { $id = 0; diff --git a/include/NotificationsManager.php b/include/NotificationsManager.php index 5f8211eb8..3b7cbdfc9 100644 --- a/include/NotificationsManager.php +++ b/include/NotificationsManager.php @@ -1,21 +1,24 @@ a = get_app(); - } - + private $a; + + public function __construct() { + $this->a = get_app(); + } + /** * @brief set some extra note properties * @@ -28,109 +31,780 @@ class NotificationsManager { * - msg_html: message as html string * - msg_plain: message as plain text string */ - private function _set_extra($notes) { - $rets = array(); - foreach($notes as $n) { - $local_time = datetime_convert('UTC',date_default_timezone_get(),$n['date']); - $n['timestamp'] = strtotime($local_time); - $n['date_rel'] = relative_date($n['date']); - $n['msg_html'] = bbcode($n['msg'], false, false, false, false); - $n['msg_plain'] = explode("\n",trim(html2plain($n['msg_html'], 0)))[0]; - - $rets[] = $n; - } - return $rets; - } + private function _set_extra($notes) { + $rets = array(); + foreach($notes as $n) { + $local_time = datetime_convert('UTC',date_default_timezone_get(),$n['date']); + $n['timestamp'] = strtotime($local_time); + $n['date_rel'] = relative_date($n['date']); + $n['msg_html'] = bbcode($n['msg'], false, false, false, false); + $n['msg_plain'] = explode("\n",trim(html2plain($n['msg_html'], 0)))[0]; + + $rets[] = $n; + } + return $rets; + } - /** - * @brief get all notifications for local_user() - * - * @param array $filter optional Array "column name"=>value: filter query by columns values - * @param string $order optional Space separated list of column to sort by. prepend name with "+" to sort ASC, "-" to sort DESC. Default to "-date" - * @param string $limit optional Query limits - * - * @return array of results or false on errors - */ - public function getAll($filter = array(), $order="-date", $limit="") { - $filter_str = array(); - $filter_sql = ""; - foreach($filter as $column => $value) { - $filter_str[] = sprintf("`%s` = '%s'", $column, dbesc($value)); - } - if (count($filter_str)>0) { - $filter_sql = "AND ".implode(" AND ", $filter_str); - } - - $aOrder = explode(" ", $order); - $asOrder = array(); - foreach($aOrder as $o) { - $dir = "asc"; - if ($o[0]==="-") { - $dir = "desc"; - $o = substr($o,1); - } - if ($o[0]==="+") { - $dir = "asc"; - $o = substr($o,1); - } - $asOrder[] = "$o $dir"; - } - $order_sql = implode(", ", $asOrder); - - if ($limit!="") $limit = " LIMIT ".$limit; - - $r = q("SELECT * FROM `notify` WHERE `uid` = %d $filter_sql ORDER BY $order_sql $limit", + /** + * @brief Get all notifications for local_user() + * + * @param array $filter optional Array "column name"=>value: filter query by columns values + * @param string $order optional Space separated list of column to sort by. prepend name with "+" to sort ASC, "-" to sort DESC. Default to "-date" + * @param string $limit optional Query limits + * + * @return array of results or false on errors + */ + public function getAll($filter = array(), $order="-date", $limit="") { + $filter_str = array(); + $filter_sql = ""; + foreach($filter as $column => $value) { + $filter_str[] = sprintf("`%s` = '%s'", $column, dbesc($value)); + } + if (count($filter_str)>0) { + $filter_sql = "AND ".implode(" AND ", $filter_str); + } + + $aOrder = explode(" ", $order); + $asOrder = array(); + foreach($aOrder as $o) { + $dir = "asc"; + if ($o[0]==="-") { + $dir = "desc"; + $o = substr($o,1); + } + if ($o[0]==="+") { + $dir = "asc"; + $o = substr($o,1); + } + $asOrder[] = "$o $dir"; + } + $order_sql = implode(", ", $asOrder); + + if($limit!="") + $limit = " LIMIT ".$limit; + + $r = q("SELECT * FROM `notify` WHERE `uid` = %d $filter_sql ORDER BY $order_sql $limit", + intval(local_user()) + ); + + if(dbm::is_result($r)) + return $this->_set_extra($r); + + return false; + } + + /** + * @brief Get one note for local_user() by $id value + * + * @param int $id + * @return array note values or null if not found + */ + public function getByID($id) { + $r = q("SELECT * FROM `notify` WHERE `id` = %d AND `uid` = %d LIMIT 1", + intval($id), intval(local_user()) ); - if ($r!==false && count($r)>0) return $this->_set_extra($r); - return false; - } - - /** - * @brief get one note for local_user() by $id value - * - * @param int $id - * @return array note values or null if not found - */ - public function getByID($id) { - $r = q("SELECT * FROM `notify` WHERE `id` = %d AND `uid` = %d LIMIT 1", - intval($id), - intval(local_user()) - ); - if($r!==false && count($r)>0) { - return $this->_set_extra($r)[0]; - } - return null; - } - - /** - * @brief set seen state of $note of local_user() - * - * @param array $note - * @param bool $seen optional true or false, default true - * @return bool true on success, false on errors - */ - public function setSeen($note, $seen = true) { - return q("UPDATE `notify` SET `seen` = %d WHERE ( `link` = '%s' OR ( `parent` != 0 AND `parent` = %d AND `otype` = '%s' )) AND `uid` = %d", - intval($seen), - dbesc($note['link']), - intval($note['parent']), - dbesc($note['otype']), - intval(local_user()) - ); - } - - /** - * @brief set seen state of all notifications of local_user() - * - * @param bool $seen optional true or false. default true - * @return bool true on success, false on error - */ - public function setAllSeen($seen = true) { - return q("UPDATE `notify` SET `seen` = %d WHERE `uid` = %d", - intval($seen), + if(dbm::is_result($r)) { + return $this->_set_extra($r)[0]; + } + return null; + } + + /** + * @brief set seen state of $note of local_user() + * + * @param array $note + * @param bool $seen optional true or false, default true + * @return bool true on success, false on errors + */ + public function setSeen($note, $seen = true) { + return q("UPDATE `notify` SET `seen` = %d WHERE ( `link` = '%s' OR ( `parent` != 0 AND `parent` = %d AND `otype` = '%s' )) AND `uid` = %d", + intval($seen), + dbesc($note['link']), + intval($note['parent']), + dbesc($note['otype']), intval(local_user()) ); - } + } + + /** + * @brief set seen state of all notifications of local_user() + * + * @param bool $seen optional true or false. default true + * @return bool true on success, false on error + */ + public function setAllSeen($seen = true) { + return q("UPDATE `notify` SET `seen` = %d WHERE `uid` = %d", + intval($seen), + intval(local_user()) + ); + } + + /** + * @brief List of pages for the Notifications TabBar + * + * @param app $a The + * @return array with with notifications TabBar data + */ + public function getTabs() { + $tabs = array( + array( + 'label' => t('System'), + 'url'=>'notifications/system', + 'sel'=> (($this->a->argv[1] == 'system') ? 'active' : ''), + 'id' => 'system-tab', + 'accesskey' => 'y', + ), + array( + 'label' => t('Network'), + 'url'=>'notifications/network', + 'sel'=> (($this->a->argv[1] == 'network') ? 'active' : ''), + 'id' => 'network-tab', + 'accesskey' => 'w', + ), + array( + 'label' => t('Personal'), + 'url'=>'notifications/personal', + 'sel'=> (($this->a->argv[1] == 'personal') ? 'active' : ''), + 'id' => 'personal-tab', + 'accesskey' => 'r', + ), + array( + 'label' => t('Home'), + 'url' => 'notifications/home', + 'sel'=> (($this->a->argv[1] == 'home') ? 'active' : ''), + 'id' => 'home-tab', + 'accesskey' => 'h', + ), + array( + 'label' => t('Introductions'), + 'url' => 'notifications/intros', + 'sel'=> (($this->a->argv[1] == 'intros') ? 'active' : ''), + 'id' => 'intro-tab', + 'accesskey' => 'i', + ), + ); + + return $tabs; + } + + /** + * @brief Format the notification query in an usable array + * + * @param array $notifs The array from the db query + * @param string $ident The notifications identifier (e.g. network) + * @return array + * string 'label' => The type of the notification + * string 'link' => URL to the source + * string 'image' => The avatar image + * string 'text' => The notification text + * string 'when' => Relative date of the notification + * bool 'seen' => Is the notification marked as "seen" + */ + private function formatNotifs($notifs, $ident = "") { + + $notif = array(); + $arr = array(); + + if (dbm::is_result($notifs)) { + + foreach ($notifs as $it) { + // Because we use different db tables for the notification query + // we have sometimes $it['unseen'] and sometimes $it['seen]. + // So we will have to transform $it['unseen'] + if($it['unseen']) + $it['seen'] = ($it['unseen'] > 0 ? false : true); + + // Depending on the identifier of the notification we need to use different defaults + switch ($ident) { + case 'system': + $default_item_label = 'notify'; + $default_item_link = $this->a->get_baseurl(true).'/notify/view/'. $it['id']; + $default_item_image = proxy_url($it['photo'], false, PROXY_SIZE_MICRO); + $default_item_text = strip_tags(bbcode($it['msg'])); + $default_item_when = relative_date($it['date']); + $default_tpl = $tpl_notify; + break; + + case 'home': + $default_item_label = 'comment'; + $default_item_link = $this->a->get_baseurl(true).'/display/'.$it['pguid']; + $default_item_image = proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO); + $default_item_text = sprintf( t("%s commented on %s's post"), $it['author-name'], $it['pname']); + $default_item_when = relative_date($it['created']); + $default_tpl = $tpl_item_comments; + break; + + default: + $default_item_label = (($it['id'] == $it['parent']) ? 'post' : 'comment'); + $default_item_link = $this->a->get_baseurl(true).'/display/'.$it['pguid']; + $default_item_image = proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO); + $default_item_text = (($it['id'] == $it['parent']) + ? sprintf( t("%s created a new post"), $it['author-name']) + : sprintf( t("%s commented on %s's post"), $it['author-name'], $it['pname'])); + $default_item_when = relative_date($it['created']); + $default_tpl = (($it['id'] == $it['parent']) ? $tpl_item_posts : $tpl_item_comments); + + } + + // Transform the different types of notification in an usable array + switch($it['verb']){ + case ACTIVITY_LIKE: + $notif = array( + 'label' => 'like', + 'link' => $this->a->get_baseurl(true).'/display/'.$it['pguid'], + '$image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO), + 'text' => sprintf( t("%s liked %s's post"), $it['author-name'], $it['pname']), + 'when' => relative_date($it['created']), + 'seen' => $it['seen'] + ); + break; + + case ACTIVITY_DISLIKE: + $notif = array( + 'label' => 'dislike', + 'link' => $this->a->get_baseurl(true).'/display/'.$it['pguid'], + 'image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO), + 'text' => sprintf( t("%s disliked %s's post"), $it['author-name'], $it['pname']), + 'when' => relative_date($it['created']), + 'seen' => $it['seen'] + ); + break; + + case ACTIVITY_ATTEND: + $notif = array( + 'label' => 'attend', + 'link' => $this->a->get_baseurl(true).'/display/'.$it['pguid'], + 'image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO), + 'text' => sprintf( t("%s is attending %s's event"), $it['author-name'], $it['pname']), + 'when' => relative_date($it['created']), + 'seen' => $it['seen'] + ); + break; + + case ACTIVITY_ATTENDNO: + $notif = array( + 'label' => 'attendno', + 'link' => $this->a->get_baseurl(true).'/display/'.$it['pguid'], + 'image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO), + 'text' => sprintf( t("%s is not attending %s's event"), $it['author-name'], $it['pname']), + 'when' => relative_date($it['created']), + 'seen' => $it['seen'] + ); + break; + + case ACTIVITY_ATTENDMAYBE: + $notif = array( + 'label' => 'attendmaybe', + 'link' => $this->a->get_baseurl(true).'/display/'.$it['pguid'], + 'image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO), + 'text' => sprintf( t("%s may attend %s's event"), $it['author-name'], $it['pname']), + 'when' => relative_date($it['created']), + 'seen' => $it['seen'] + ); + break; + + case ACTIVITY_FRIEND: + $xmlhead="<"."?xml version='1.0' encoding='UTF-8' ?".">"; + $obj = parse_xml_string($xmlhead.$it['object']); + $it['fname'] = $obj->title; + + $notif = array( + 'label' => 'friend', + 'link' => $this->a->get_baseurl(true).'/display/'.$it['pguid'], + 'image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO), + 'text' => sprintf( t("%s is now friends with %s"), $it['author-name'], $it['fname']), + 'when' => relative_date($it['created']), + 'seen' => $it['seen'] + ); + break; + + default: + $notif = array( + 'label' => $default_item_label, + 'link' => $default_item_link, + 'image' => $default_item_image, + 'text' => $default_item_text, + 'when' => $default_item_when, + 'seen' => $it['seen'] + ); + } + + $arr[] = $notif; + } + } + + return $arr; + + } + + /** + * @brief Total number of network notifications + * @param int|string $seen + * If 0 only include notifications into the query + * which aren't marked as "seen" + * @return int Number of network notifications + */ + private function networkTotal($seen = 0) { + $sql_seen = ""; + + if($seen === 0) + $sql_seen = " AND `item`.`unseen` = 1 "; + + $r = q("SELECT COUNT(*) AS `total` + FROM `item` INNER JOIN `item` AS `pitem` ON `pitem`.`id`=`item`.`parent` + WHERE `item`.`visible` = 1 AND `pitem`.`parent` != 0 AND + `item`.`deleted` = 0 AND `item`.`uid` = %d AND `item`.`wall` = 0 + $sql_seen", + intval(local_user()) + ); + + if(dbm::is_result($r)) + return $r[0]['total']; + + return 0; + } + + /** + * @brief Get network notifications + * + * @param int|string $seen + * If 0 only include notifications into the query + * which aren't marked as "seen" + * @param int $start Start the query at this point + * @param int $limit Maximum number of query results + * + * @return array with + * string 'ident' => Notification identifier + * int 'total' => Total number of available network notifications + * array 'notifications' => Network notifications + */ + public function networkNotifs($seen = 0, $start = 0, $limit = 80) { + $ident = 'network'; + $total = $this->networkTotal($seen); + $notifs = array(); + $sql_seen = ""; + + if($seen === 0) + $sql_seen = " AND `item`.`unseen` = 1 "; + + + $r = q("SELECT `item`.`id`,`item`.`parent`, `item`.`verb`, `item`.`author-name`, `item`.`unseen`, + `item`.`author-link`, `item`.`author-avatar`, `item`.`created`, `item`.`object` AS `object`, + `pitem`.`author-name` AS `pname`, `pitem`.`author-link` AS `plink`, `pitem`.`guid` AS `pguid` + FROM `item` INNER JOIN `item` AS `pitem` ON `pitem`.`id`=`item`.`parent` + WHERE `item`.`visible` = 1 AND `pitem`.`parent` != 0 AND + `item`.`deleted` = 0 AND `item`.`uid` = %d AND `item`.`wall` = 0 + $sql_seen + ORDER BY `item`.`created` DESC LIMIT %d, %d ", + intval(local_user()), + intval($start), + intval($limit) + ); + + if(dbm::is_result($r)) + $notifs = $this->formatNotifs($r, $ident); + + $arr = array ( + 'notifications' => $notifs, + 'ident' => $ident, + 'total' => $total, + ); + + return $arr; + } + + /** + * @brief Total number of system notifications + * @param int|string $seen + * If 0 only include notifications into the query + * which aren't marked as "seen" + * @return int Number of system notifications + */ + private function systemTotal($seen = 0) { + $sql_seen = ""; + + if($seen === 0) + $sql_seen = " AND `seen` = 0 "; + + $r = q("SELECT COUNT(*) AS `total` FROM `notify` WHERE `uid` = %d $sql_seen", + intval(local_user()) + ); + + if(dbm::is_result($r)) + return $r[0]['total']; + + return 0; + } + + /** + * @brief Get system notifications + * + * @param int|string $seen + * If 0 only include notifications into the query + * which aren't marked as "seen" + * @param int $start Start the query at this point + * @param int $limit Maximum number of query results + * + * @return array with + * string 'ident' => Notification identifier + * int 'total' => Total number of available system notifications + * array 'notifications' => System notifications + */ + public function systemNotifs($seen = 0, $start = 0, $limit = 80) { + $ident = 'system'; + $total = $this->systemTotal($seen); + $notifs = array(); + $sql_seen = ""; + + if($seen === 0) + $sql_seen = " AND `seen` = 0 "; + + $r = q("SELECT `id`, `photo`, `msg`, `date`, `seen` FROM `notify` + WHERE `uid` = %d $sql_seen ORDER BY `date` DESC LIMIT %d, %d ", + intval(local_user()), + intval($start), + intval($limit) + ); + + if(dbm::is_result($r)) + $notifs = $this->formatNotifs($r, $ident); + + $arr = array ( + 'notifications' => $notifs, + 'ident' => $ident, + 'total' => $total, + ); + + return $arr; + } + + /** + * @brief Addional SQL query string for the personal notifications + * + * @return string The additional sql query + */ + private function _personal_sql_extra() { + $myurl = $this->a->get_baseurl(true) . '/profile/'. $this->a->user['nickname']; + $myurl = substr($myurl,strpos($myurl,'://')+3); + $myurl = str_replace(array('www.','.'),array('','\\.'),$myurl); + $diasp_url = str_replace('/profile/','/u/',$myurl); + $sql_extra = sprintf(" AND ( `item`.`author-link` regexp '%s' or `item`.`tag` regexp '%s' or `item`.`tag` regexp '%s' ) ", + dbesc($myurl . '$'), + dbesc($myurl . '\\]'), + dbesc($diasp_url . '\\]') + ); + + return $sql_extra; + } + + /** + * @brief Total number of personal notifications + * @param int|string $seen + * If 0 only include notifications into the query + * which aren't marked as "seen" + * @return int Number of personal notifications + */ + private function personalTotal($seen = 0) { + $sql_seen = ""; + $sql_extra = $this->_personal_sql_extra(); + + if($seen === 0) + $sql_seen = " AND `item`.`unseen` = 1 "; + + $r = q("SELECT COUNT(*) AS `total` + FROM `item` INNER JOIN `item` AS `pitem` ON `pitem`.`id`=`item`.`parent` + WHERE `item`.`visible` = 1 + $sql_extra + $sql_seen + AND `item`.`deleted` = 0 AND `item`.`uid` = %d AND `item`.`wall` = 0 " , + intval(local_user()) + ); + + if(dbm::is_result($r)) + return $r[0]['total']; + + return 0; + } + + /** + * @brief Get personal notifications + * + * @param int|string $seen + * If 0 only include notifications into the query + * which aren't marked as "seen" + * @param int $start Start the query at this point + * @param int $limit Maximum number of query results + * + * @return array with + * string 'ident' => Notification identifier + * int 'total' => Total number of available personal notifications + * array 'notifications' => Personal notifications + */ + public function personalNotifs($seen = 0, $start = 0, $limit = 80) { + $ident = 'personal'; + $total = $this->personalTotal($seen); + $sql_extra = $this->_personal_sql_extra(); + $notifs = array(); + $sql_seen = ""; + + if($seen === 0) + $sql_seen = " AND `item`.`unseen` = 1 "; + + $r = q("SELECT `item`.`id`,`item`.`parent`, `item`.`verb`, `item`.`author-name`, `item`.`unseen`, + `item`.`author-link`, `item`.`author-avatar`, `item`.`created`, `item`.`object` AS `object`, + `pitem`.`author-name` AS `pname`, `pitem`.`author-link` AS `plink`, `pitem`.`guid` AS `pguid`, + FROM `item` INNER JOIN `item` AS `pitem` ON `pitem`.`id`=`item`.`parent` + WHERE `item`.`visible` = 1 + $sql_extra + $sql_seen + AND `item`.`deleted` = 0 AND `item`.`uid` = %d AND `item`.`wall` = 0 + ORDER BY `item`.`created` DESC LIMIT %d, %d " , + intval(local_user()), + intval($start), + intval($limit) + ); + + if(dbm::is_result($r)) + $notifs = $this->formatNotifs($r, $ident); + + $arr = array ( + 'notifications' => $notifs, + 'ident' => $ident, + 'total' => $total, + ); + + return $arr; + } + + /** + * @brief Total number of home notifications + * @param int|string $seen + * If 0 only include notifications into the query + * which aren't marked as "seen" + * @return int Number of home notifications + */ + private function homeTotal($seen = 0) { + $sql_seen = ""; + + if($seen === 0) + $sql_seen = " AND `item`.`unseen` = 1 "; + + $r = q("SELECT COUNT(*) AS `total` FROM `item` + WHERE `item`.`visible` = 1 AND + `item`.`deleted` = 0 AND `item`.`uid` = %d AND `item`.`wall` = 1 + $sql_seen", + intval(local_user()) + ); + + if(dbm::is_result($r)) + return $r[0]['total']; + + return 0; + } + + /** + * @brief Get home notifications + * + * @param int|string $seen + * If 0 only include notifications into the query + * which aren't marked as "seen" + * @param int $start Start the query at this point + * @param int $limit Maximum number of query results + * + * @return array with + * string 'ident' => Notification identifier + * int 'total' => Total number of available home notifications + * array 'notifications' => Home notifications + */ + public function homeNotifs($seen = 0, $start = 0, $limit = 80) { + $ident = 'home'; + $total = $this->homeTotal($seen); + $notifs = array(); + $sql_seen = ""; + + if($seen === 0) + $sql_seen = " AND `item`.`unseen` = 1 "; + + $r = q("SELECT `item`.`id`,`item`.`parent`, `item`.`verb`, `item`.`author-name`, `item`.`unseen`, + `item`.`author-link`, `item`.`author-avatar`, `item`.`created`, `item`.`object` as `object`, + `pitem`.`author-name` as `pname`, `pitem`.`author-link` as `plink`, `pitem`.`guid` as `pguid` + FROM `item` INNER JOIN `item` as `pitem` ON `pitem`.`id`=`item`.`parent` + WHERE `item`.`visible` = 1 AND + `item`.`deleted` = 0 AND `item`.`uid` = %d AND `item`.`wall` = 1 + $sql_seen + ORDER BY `item`.`created` DESC LIMIT %d, %d ", + intval(local_user()), + intval($start), + intval($limit) + ); + + if(dbm::is_result($r)) + $notifs = $this->formatNotifs($r, $ident); + + $arr = array ( + 'notifications' => $notifs, + 'ident' => $ident, + 'total' => $total, + ); + + return $arr; + } + + /** + * @brief Total number of introductions + * @param bool $all + * If false only include introductions into the query + * which aren't marked as ignored + * @return int Number of introductions + */ + private function introTotal($all = false) { + $sql_extra = ""; + + if(!$all) + $sql_extra = " AND `ignore` = 0 "; + + $r = q("SELECT COUNT(*) AS `total` FROM `intro` + WHERE `intro`.`uid` = %d $sql_extra AND `intro`.`blocked` = 0 ", + intval($_SESSION['uid']) + ); + + if(dbm::is_result($r)) + return $r[0]['total']; + + return 0; + } + + /** + * @brief Get introductions + * + * @param bool $all + * If false only include introductions into the query + * which aren't marked as ignored + * @param int $start Start the query at this point + * @param int $limit Maximum number of query results + * + * @return array with + * string 'ident' => Notification identifier + * int 'total' => Total number of available introductions + * array 'notifications' => Introductions + */ + public function introNotifs($all = false, $start = 0, $limit = 80) { + $ident = 'introductions'; + $total = $this->introTotal($seen); + $notifs = array(); + $sql_extra = ""; + + if(!$all) + $sql_extra = " AND `ignore` = 0 "; + + /// @todo Fetch contact details by "get_contact_details_by_url" instead of queries to contact, fcontact and gcontact + $r = q("SELECT `intro`.`id` AS `intro_id`, `intro`.*, `contact`.*, `fcontact`.`name` AS `fname`,`fcontact`.`url` AS `furl`,`fcontact`.`photo` AS `fphoto`,`fcontact`.`request` AS `frequest`, + `gcontact`.`location` AS `glocation`, `gcontact`.`about` AS `gabout`, + `gcontact`.`keywords` AS `gkeywords`, `gcontact`.`gender` AS `ggender`, + `gcontact`.`network` AS `gnetwork` + FROM `intro` + LEFT JOIN `contact` ON `contact`.`id` = `intro`.`contact-id` + LEFT JOIN `gcontact` ON `gcontact`.`nurl` = `contact`.`nurl` + LEFT JOIN `fcontact` ON `intro`.`fid` = `fcontact`.`id` + WHERE `intro`.`uid` = %d $sql_extra AND `intro`.`blocked` = 0 + LIMIT %d, %d", + intval($_SESSION['uid']), + intval($start), + intval($limit) + ); + + if(dbm::is_result($r)) + $notifs = $this->formatIntros($r); + + $arr = array ( + 'ident' => $ident, + 'total' => $total, + 'notifications' => $notifs, + ); + + return $arr; + } + + /** + * @brief Format the notification query in an usable array + * + * @param array $intros The array from the db query + * @return array with the introductions + */ + private function formatIntros($intros) { + $knowyou = ''; + + foreach($intros as $it) { + // There are two kind of introduction. Contacts suggested by other contacts and normal connection requests. + // We have to distinguish between these two because they use different data. + + // Contact suggestions + if($it['fid']) { + + $return_addr = bin2hex($this->a->user['nickname'] . '@' . $this->a->get_hostname() . (($this->a->path) ? '/' . $this->a->path : '')); + + $intro = array( + 'label' => 'friend_suggestion', + 'notify_type' => t('Friend Suggestion'), + 'intro_id' => $it['intro_id'], + 'madeby' => $it['name'], + 'contact_id' => $it['contact-id'], + 'photo' => ((x($it,'fphoto')) ? proxy_url($it['fphoto'], false, PROXY_SIZE_SMALL) : "images/person-175.jpg"), + 'name' => $it['fname'], + 'url' => zrl($it['furl']), + 'hidden' => $it['hidden'] == 1, + 'post_newfriend' => (intval(get_pconfig(local_user(),'system','post_newfriend')) ? '1' : 0), + + 'knowyou' => $knowyou, + 'note' => $it['note'], + 'request' => $it['frequest'] . '?addr=' . $return_addr, + + ); + + // Normal connection requests + } else { + + // Probe the contact url to get missing data + $ret = probe_url($it["url"]); + + if ($it['gnetwork'] == "") + $it['gnetwork'] = $ret["network"]; + + // Don't show these data until you are connected. Diaspora is doing the same. + if($it['gnetwork'] === NETWORK_DIASPORA) { + $it['glocation'] = ""; + $it['gabout'] = ""; + $it['ggender'] = ""; + } + $intro = array( + 'label' => (($it['network'] !== NETWORK_OSTATUS) ? 'friend_request' : 'follower'), + 'notify_type' => (($it['network'] !== NETWORK_OSTATUS) ? t('Friend/Connect Request') : t('New Follower')), + 'dfrn_id' => $it['issued-id'], + 'uid' => $_SESSION['uid'], + 'intro_id' => $it['intro_id'], + 'contact_id' => $it['contact-id'], + 'photo' => ((x($it,'photo')) ? proxy_url($it['photo'], false, PROXY_SIZE_SMALL) : "images/person-175.jpg"), + 'name' => $it['name'], + 'location' => bbcode($it['glocation'], false, false), + 'about' => bbcode($it['gabout'], false, false), + 'keywords' => $it['gkeywords'], + 'gender' => $it['ggender'], + 'hidden' => $it['hidden'] == 1, + 'post_newfriend' => (intval(get_pconfig(local_user(),'system','post_newfriend')) ? '1' : 0), + 'url' => $it['url'], + 'zrl' => zrl($it['url']), + 'addr' => $ret['addr'], + 'network' => $it['gnetwork'], + 'knowyou' => $it['knowyou'], + 'note' => $it['note'], + ); + } + + $arr[] = $intro; + } + + return $arr; + } } diff --git a/include/Photo.php b/include/Photo.php index d87bce478..6a7cc3e52 100644 --- a/include/Photo.php +++ b/include/Photo.php @@ -1,133 +1,141 @@ 'jpg', - 'image/png' => 'png', - 'image/gif' => 'gif' - ); - } else { - $t = array(); - $t['image/jpeg'] ='jpg'; - if (imagetypes() & IMG_PNG) $t['image/png'] = 'png'; + /** + * @brief supported mimetypes and corresponding file extensions + */ + static function supportedTypes() { + if (class_exists('Imagick')) { + + // Imagick::queryFormats won't help us a lot there... + // At least, not yet, other parts of friendica uses this array + $t = array( + 'image/jpeg' => 'jpg', + 'image/png' => 'png', + 'image/gif' => 'gif' + ); + } else { + $t = array(); + $t['image/jpeg'] ='jpg'; + if (imagetypes() & IMG_PNG) { + $t['image/png'] = 'png'; + } + } + + return $t; } - return $t; - } + public function __construct($data, $type=null) { + $this->imagick = class_exists('Imagick'); + $this->types = $this->supportedTypes(); + if (!array_key_exists($type, $this->types)){ + $type='image/jpeg'; + } + $this->type = $type; - public function __construct($data, $type=null) { - $this->imagick = class_exists('Imagick'); - $this->types = $this->supportedTypes(); - if (!array_key_exists($type,$this->types)){ - $type='image/jpeg'; - } - $this->type = $type; - - if($this->is_imagick() && $this->load_data($data)) { + if ($this->is_imagick() && $this->load_data($data)) { return true; } else { // Failed to load with Imagick, fallback $this->imagick = false; } return $this->load_data($data); - } - - public function __destruct() { - if($this->image) { - if($this->is_imagick()) { - $this->image->clear(); - $this->image->destroy(); - return; - } - imagedestroy($this->image); } - } - public function is_imagick() { - return $this->imagick; - } - - /** - * Maps Mime types to Imagick formats - */ - public function get_FormatsMap() { - $m = array( - 'image/jpeg' => 'JPG', - 'image/png' => 'PNG', - 'image/gif' => 'GIF' - ); - return $m; - } - - private function load_data($data) { - if($this->is_imagick()) { - $this->image = new Imagick(); - try { - $this->image->readImageBlob($data); + public function __destruct() { + if ($this->image) { + if ($this->is_imagick()) { + $this->image->clear(); + $this->image->destroy(); + return; } - catch (Exception $e) { + imagedestroy($this->image); + } + } + + public function is_imagick() { + return $this->imagick; + } + + /** + * @brief Maps Mime types to Imagick formats + * @return arr With with image formats (mime type as key) + */ + public function get_FormatsMap() { + $m = array( + 'image/jpeg' => 'JPG', + 'image/png' => 'PNG', + 'image/gif' => 'GIF' + ); + return $m; + } + + private function load_data($data) { + if ($this->is_imagick()) { + $this->image = new Imagick(); + try { + $this->image->readImageBlob($data); + } catch (Exception $e) { // Imagick couldn't use the data return false; } - /** - * Setup the image to the format it will be saved to - */ - $map = $this->get_FormatsMap(); - $format = $map[$type]; - $this->image->setFormat($format); + /* + * Setup the image to the format it will be saved to + */ + $map = $this->get_FormatsMap(); + $format = $map[$type]; + $this->image->setFormat($format); - // Always coalesce, if it is not a multi-frame image it won't hurt anyway - $this->image = $this->image->coalesceImages(); + // Always coalesce, if it is not a multi-frame image it won't hurt anyway + $this->image = $this->image->coalesceImages(); - /** - * setup the compression here, so we'll do it only once - */ - switch($this->getType()){ - case "image/png": - $quality = get_config('system','png_quality'); - if((! $quality) || ($quality > 9)) - $quality = PNG_QUALITY; - /** - * From http://www.imagemagick.org/script/command-line-options.php#quality: - * - * 'For the MNG and PNG image formats, the quality value sets - * the zlib compression level (quality / 10) and filter-type (quality % 10). - * The default PNG "quality" is 75, which means compression level 7 with adaptive PNG filtering, - * unless the image has a color map, in which case it means compression level 7 with no PNG filtering' - */ - $quality = $quality * 10; - $this->image->setCompressionQuality($quality); - break; - case "image/jpeg": - $quality = get_config('system','jpeg_quality'); - if((! $quality) || ($quality > 100)) - $quality = JPEG_QUALITY; - $this->image->setCompressionQuality($quality); - } + /* + * setup the compression here, so we'll do it only once + */ + switch($this->getType()){ + case "image/png": + $quality = get_config('system', 'png_quality'); + if ((! $quality) || ($quality > 9)) { + $quality = PNG_QUALITY; + } + /* + * From http://www.imagemagick.org/script/command-line-options.php#quality: + * + * 'For the MNG and PNG image formats, the quality value sets + * the zlib compression level (quality / 10) and filter-type (quality % 10). + * The default PNG "quality" is 75, which means compression level 7 with adaptive PNG filtering, + * unless the image has a color map, in which case it means compression level 7 with no PNG filtering' + */ + $quality = $quality * 10; + $this->image->setCompressionQuality($quality); + break; + case "image/jpeg": + $quality = get_config('system', 'jpeg_quality'); + if ((! $quality) || ($quality > 100)) { + $quality = JPEG_QUALITY; + } + $this->image->setCompressionQuality($quality); + } // The 'width' and 'height' properties are only used by non-Imagick routines. $this->width = $this->image->getImageWidth(); @@ -139,7 +147,7 @@ class Photo { $this->valid = false; $this->image = @imagecreatefromstring($data); - if($this->image !== FALSE) { + if ($this->image !== false) { $this->width = imagesx($this->image); $this->height = imagesy($this->image); $this->valid = true; @@ -148,123 +156,125 @@ class Photo { return true; } - + return false; } - public function is_valid() { - if($this->is_imagick()) - return ($this->image !== FALSE); - return $this->valid; - } - - public function getWidth() { - if(!$this->is_valid()) - return FALSE; - - if($this->is_imagick()) - return $this->image->getImageWidth(); - return $this->width; - } - - public function getHeight() { - if(!$this->is_valid()) - return FALSE; - - if($this->is_imagick()) - return $this->image->getImageHeight(); - return $this->height; - } - - public function getImage() { - if(!$this->is_valid()) - return FALSE; - - if($this->is_imagick()) { - /* Clean it */ - $this->image = $this->image->deconstructImages(); - return $this->image; + public function is_valid() { + if ($this->is_imagick()) { + return ($this->image !== false); + } + return $this->valid; } - return $this->image; - } - public function getType() { - if(!$this->is_valid()) - return FALSE; + public function getWidth() { + if (!$this->is_valid()) { + return false; + } - return $this->type; - } + if ($this->is_imagick()) { + return $this->image->getImageWidth(); + } + return $this->width; + } - public function getExt() { - if(!$this->is_valid()) - return FALSE; + public function getHeight() { + if (!$this->is_valid()) { + return false; + } - return $this->types[$this->getType()]; - } + if ($this->is_imagick()) { + return $this->image->getImageHeight(); + } + return $this->height; + } - public function scaleImage($max) { - if(!$this->is_valid()) - return FALSE; + public function getImage() { + if (!$this->is_valid()) { + return false; + } - $width = $this->getWidth(); - $height = $this->getHeight(); + if ($this->is_imagick()) { + /* Clean it */ + $this->image = $this->image->deconstructImages(); + return $this->image; + } + return $this->image; + } - $dest_width = $dest_height = 0; + public function getType() { + if (!$this->is_valid()) { + return false; + } - if((! $width)|| (! $height)) - return FALSE; + return $this->type; + } - if($width > $max && $height > $max) { + public function getExt() { + if (!$this->is_valid()) { + return false; + } + + return $this->types[$this->getType()]; + } + + public function scaleImage($max) { + if (!$this->is_valid()) { + return false; + } + + $width = $this->getWidth(); + $height = $this->getHeight(); + + $dest_width = $dest_height = 0; + + if ((! $width)|| (! $height)) { + return false; + } + + if ($width > $max && $height > $max) { // very tall image (greater than 16:9) // constrain the width - let the height float. - if((($height * 9) / 16) > $width) { + if ((($height * 9) / 16) > $width) { $dest_width = $max; - $dest_height = intval(( $height * $max ) / $width); + $dest_height = intval(($height * $max) / $width); + } elseif ($width > $height) { + // else constrain both dimensions + $dest_width = $max; + $dest_height = intval(($height * $max) / $width); + } else { + $dest_width = intval(($width * $max) / $height); + $dest_height = $max; } - - // else constrain both dimensions - - elseif($width > $height) { - $dest_width = $max; - $dest_height = intval(( $height * $max ) / $width); - } - else { - $dest_width = intval(( $width * $max ) / $height); - $dest_height = $max; - } - } - else { - if( $width > $max ) { - $dest_width = $max; - $dest_height = intval(( $height * $max ) / $width); - } - else { - if( $height > $max ) { + } else { + if ($width > $max) { + $dest_width = $max; + $dest_height = intval(($height * $max) / $width); + } else { + if ($height > $max) { // very tall image (greater than 16:9) // but width is OK - don't do anything - if((($height * 9) / 16) > $width) { + if ((($height * 9) / 16) > $width) { $dest_width = $width; - $dest_height = $height; - } - else { - $dest_width = intval(( $width * $max ) / $height); - $dest_height = $max; + $dest_height = $height; + } else { + $dest_width = intval(($width * $max) / $height); + $dest_height = $max; } + } else { + $dest_width = $width; + $dest_height = $height; + } + } } - else { - $dest_width = $width; - $dest_height = $height; - } - } - } - if($this->is_imagick()) { - /** + if ($this->is_imagick()) { + /* * If it is not animated, there will be only one iteration here, * so don't bother checking */ @@ -283,234 +293,253 @@ class Photo { $this->height = $this->image->getImageHeight(); return; - } - - - $dest = imagecreatetruecolor( $dest_width, $dest_height ); - imagealphablending($dest, false); - imagesavealpha($dest, true); - if ($this->type=='image/png') imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127)); // fill with alpha - imagecopyresampled($dest, $this->image, 0, 0, 0, 0, $dest_width, $dest_height, $width, $height); - if($this->image) - imagedestroy($this->image); - $this->image = $dest; - $this->width = imagesx($this->image); - $this->height = imagesy($this->image); - } - - public function rotate($degrees) { - if(!$this->is_valid()) - return FALSE; - - if($this->is_imagick()) { - $this->image->setFirstIterator(); - do { - $this->image->rotateImage(new ImagickPixel(), -$degrees); // ImageMagick rotates in the opposite direction of imagerotate() - } while ($this->image->nextImage()); - return; - } - - $this->image = imagerotate($this->image,$degrees,0); - $this->width = imagesx($this->image); - $this->height = imagesy($this->image); - } - - public function flip($horiz = true, $vert = false) { - if(!$this->is_valid()) - return FALSE; - - if($this->is_imagick()) { - $this->image->setFirstIterator(); - do { - if($horiz) $this->image->flipImage(); - if($vert) $this->image->flopImage(); - } while ($this->image->nextImage()); - return; - } - - $w = imagesx($this->image); - $h = imagesy($this->image); - $flipped = imagecreate($w, $h); - if($horiz) { - for ($x = 0; $x < $w; $x++) { - imagecopy($flipped, $this->image, $x, 0, $w - $x - 1, 0, 1, $h); - } - } - if($vert) { - for ($y = 0; $y < $h; $y++) { - imagecopy($flipped, $this->image, 0, $y, 0, $h - $y - 1, $w, 1); - } - } - $this->image = $flipped; - } - - public function orient($filename) { - if ($this->is_imagick()) { - // based off comment on http://php.net/manual/en/imagick.getimageorientation.php - $orientation = $this->image->getImageOrientation(); - switch ($orientation) { - case imagick::ORIENTATION_BOTTOMRIGHT: - $this->image->rotateimage("#000", 180); - break; - case imagick::ORIENTATION_RIGHTTOP: - $this->image->rotateimage("#000", 90); - break; - case imagick::ORIENTATION_LEFTBOTTOM: - $this->image->rotateimage("#000", -90); - break; } - $this->image->setImageOrientation(imagick::ORIENTATION_TOPLEFT); - return TRUE; - } - // based off comment on http://php.net/manual/en/function.imagerotate.php - if(!$this->is_valid()) - return FALSE; - - if( (! function_exists('exif_read_data')) || ($this->getType() !== 'image/jpeg') ) - return; - - $exif = @exif_read_data($filename,null,true); - if(! $exif) - return; - - $ort = $exif['IFD0']['Orientation']; - - switch($ort) - { - case 1: // nothing - break; - - case 2: // horizontal flip - $this->flip(); - break; - - case 3: // 180 rotate left - $this->rotate(180); - break; - - case 4: // vertical flip - $this->flip(false, true); - break; - - case 5: // vertical flip + 90 rotate right - $this->flip(false, true); - $this->rotate(-90); - break; - - case 6: // 90 rotate right - $this->rotate(-90); - break; - - case 7: // horizontal flip + 90 rotate right - $this->flip(); - $this->rotate(-90); - break; - - case 8: // 90 rotate left - $this->rotate(90); - break; - } - - // logger('exif: ' . print_r($exif,true)); - return $exif; - - } - - - - public function scaleImageUp($min) { - if(!$this->is_valid()) - return FALSE; - - - $width = $this->getWidth(); - $height = $this->getHeight(); - - $dest_width = $dest_height = 0; - - if((! $width)|| (! $height)) - return FALSE; - - if($width < $min && $height < $min) { - if($width > $height) { - $dest_width = $min; - $dest_height = intval(( $height * $min ) / $width); - } - else { - $dest_width = intval(( $width * $min ) / $height); - $dest_height = $min; - } - } - else { - if( $width < $min ) { - $dest_width = $min; - $dest_height = intval(( $height * $min ) / $width); - } - else { - if( $height < $min ) { - $dest_width = intval(( $width * $min ) / $height); - $dest_height = $min; + $dest = imagecreatetruecolor($dest_width, $dest_height); + imagealphablending($dest, false); + imagesavealpha($dest, true); + if ($this->type=='image/png') { + imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127)); // fill with alpha } - else { - $dest_width = $width; - $dest_height = $height; + imagecopyresampled($dest, $this->image, 0, 0, 0, 0, $dest_width, $dest_height, $width, $height); + if ($this->image) { + imagedestroy($this->image); } - } + $this->image = $dest; + $this->width = imagesx($this->image); + $this->height = imagesy($this->image); } - if($this->is_imagick()) - return $this->scaleImage($dest_width,$dest_height); + public function rotate($degrees) { + if (!$this->is_valid()) { + return false; + } - $dest = imagecreatetruecolor( $dest_width, $dest_height ); - imagealphablending($dest, false); - imagesavealpha($dest, true); - if ($this->type=='image/png') imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127)); // fill with alpha - imagecopyresampled($dest, $this->image, 0, 0, 0, 0, $dest_width, $dest_height, $width, $height); - if($this->image) - imagedestroy($this->image); - $this->image = $dest; - $this->width = imagesx($this->image); - $this->height = imagesy($this->image); - } + if ($this->is_imagick()) { + $this->image->setFirstIterator(); + do { + $this->image->rotateImage(new ImagickPixel(), -$degrees); // ImageMagick rotates in the opposite direction of imagerotate() + } while ($this->image->nextImage()); + return; + } - - - public function scaleImageSquare($dim) { - if(!$this->is_valid()) - return FALSE; - - if($this->is_imagick()) { - $this->image->setFirstIterator(); - do { - $this->image->scaleImage($dim, $dim); - } while ($this->image->nextImage()); - return; + $this->image = imagerotate($this->image,$degrees,0); + $this->width = imagesx($this->image); + $this->height = imagesy($this->image); } - $dest = imagecreatetruecolor( $dim, $dim ); - imagealphablending($dest, false); - imagesavealpha($dest, true); - if ($this->type=='image/png') imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127)); // fill with alpha - imagecopyresampled($dest, $this->image, 0, 0, 0, 0, $dim, $dim, $this->width, $this->height); - if($this->image) - imagedestroy($this->image); - $this->image = $dest; - $this->width = imagesx($this->image); - $this->height = imagesy($this->image); - } + public function flip($horiz = true, $vert = false) { + if (!$this->is_valid()) { + return false; + } + + if ($this->is_imagick()) { + $this->image->setFirstIterator(); + do { + if ($horiz) { + $this->image->flipImage(); + } + if ($vert) { + $this->image->flopImage(); + } + } while ($this->image->nextImage()); + return; + } + + $w = imagesx($this->image); + $h = imagesy($this->image); + $flipped = imagecreate($w, $h); + if ($horiz) { + for ($x = 0; $x < $w; $x++) { + imagecopy($flipped, $this->image, $x, 0, $w - $x - 1, 0, 1, $h); + } + } + if ($vert) { + for ($y = 0; $y < $h; $y++) { + imagecopy($flipped, $this->image, 0, $y, 0, $h - $y - 1, $w, 1); + } + } + $this->image = $flipped; + } + + public function orient($filename) { + if ($this->is_imagick()) { + // based off comment on http://php.net/manual/en/imagick.getimageorientation.php + $orientation = $this->image->getImageOrientation(); + switch ($orientation) { + case imagick::ORIENTATION_BOTTOMRIGHT: + $this->image->rotateimage("#000", 180); + break; + case imagick::ORIENTATION_RIGHTTOP: + $this->image->rotateimage("#000", 90); + break; + case imagick::ORIENTATION_LEFTBOTTOM: + $this->image->rotateimage("#000", -90); + break; + } + + $this->image->setImageOrientation(imagick::ORIENTATION_TOPLEFT); + return true; + } + // based off comment on http://php.net/manual/en/function.imagerotate.php + + if (!$this->is_valid()) { + return false; + } + + if ((!function_exists('exif_read_data')) || ($this->getType() !== 'image/jpeg')) { + return; + } + + $exif = @exif_read_data($filename,null,true); + if (!$exif) { + return; + } + + $ort = $exif['IFD0']['Orientation']; + + switch($ort) + { + case 1: // nothing + break; + + case 2: // horizontal flip + $this->flip(); + break; + + case 3: // 180 rotate left + $this->rotate(180); + break; + + case 4: // vertical flip + $this->flip(false, true); + break; + + case 5: // vertical flip + 90 rotate right + $this->flip(false, true); + $this->rotate(-90); + break; + + case 6: // 90 rotate right + $this->rotate(-90); + break; + + case 7: // horizontal flip + 90 rotate right + $this->flip(); + $this->rotate(-90); + break; + + case 8: // 90 rotate left + $this->rotate(90); + break; + } + + // logger('exif: ' . print_r($exif,true)); + return $exif; + + } - public function cropImage($max,$x,$y,$w,$h) { - if(!$this->is_valid()) - return FALSE; - if($this->is_imagick()) { + public function scaleImageUp($min) { + if (!$this->is_valid()) { + return false; + } + + + $width = $this->getWidth(); + $height = $this->getHeight(); + + $dest_width = $dest_height = 0; + + if ((!$width)|| (!$height)) { + return false; + } + + if ($width < $min && $height < $min) { + if ($width > $height) { + $dest_width = $min; + $dest_height = intval(($height * $min) / $width); + } else { + $dest_width = intval(($width * $min) / $height); + $dest_height = $min; + } + } else { + if ($width < $min) { + $dest_width = $min; + $dest_height = intval(($height * $min) / $width); + } else { + if ($height < $min) { + $dest_width = intval(($width * $min) / $height); + $dest_height = $min; + } else { + $dest_width = $width; + $dest_height = $height; + } + } + } + + if ($this->is_imagick()) { + return $this->scaleImage($dest_width, $dest_height); + } + + $dest = imagecreatetruecolor($dest_width, $dest_height); + imagealphablending($dest, false); + imagesavealpha($dest, true); + if ($this->type=='image/png') { + imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127)); // fill with alpha + } + imagecopyresampled($dest, $this->image, 0, 0, 0, 0, $dest_width, $dest_height, $width, $height); + if ($this->image) { + imagedestroy($this->image); + } + $this->image = $dest; + $this->width = imagesx($this->image); + $this->height = imagesy($this->image); + } + + + + public function scaleImageSquare($dim) { + if (!$this->is_valid()) { + return false; + } + + if ($this->is_imagick()) { + $this->image->setFirstIterator(); + do { + $this->image->scaleImage($dim, $dim); + } while ($this->image->nextImage()); + return; + } + + $dest = imagecreatetruecolor($dim, $dim); + imagealphablending($dest, false); + imagesavealpha($dest, true); + if ($this->type=='image/png') { + imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127)); // fill with alpha + } + imagecopyresampled($dest, $this->image, 0, 0, 0, 0, $dim, $dim, $this->width, $this->height); + if ($this->image) { + imagedestroy($this->image); + } + $this->image = $dest; + $this->width = imagesx($this->image); + $this->height = imagesy($this->image); + } + + + public function cropImage($max, $x, $y, $w, $h) { + if (!$this->is_valid()) { + return false; + } + + if ($this->is_imagick()) { $this->image->setFirstIterator(); do { $this->image->cropImage($w, $h, $x, $y); - /** + /* * We need to remove the canva, * or the image is not resized to the crop: * http://php.net/manual/en/imagick.cropimage.php#97232 @@ -520,159 +549,172 @@ class Photo { return $this->scaleImage($max); } - $dest = imagecreatetruecolor( $max, $max ); - imagealphablending($dest, false); - imagesavealpha($dest, true); - if ($this->type=='image/png') imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127)); // fill with alpha - imagecopyresampled($dest, $this->image, 0, 0, $x, $y, $max, $max, $w, $h); - if($this->image) - imagedestroy($this->image); - $this->image = $dest; - $this->width = imagesx($this->image); - $this->height = imagesy($this->image); - } - - public function saveImage($path) { - if(!$this->is_valid()) - return FALSE; - - $string = $this->imageString(); - - $a = get_app(); - - $stamp1 = microtime(true); - file_put_contents($path, $string); - $a->save_timestamp($stamp1, "file"); - } - - public function imageString() { - if(!$this->is_valid()) - return FALSE; - - if($this->is_imagick()) { - /* Clean it */ - $this->image = $this->image->deconstructImages(); - $string = $this->image->getImagesBlob(); - return $string; + $dest = imagecreatetruecolor($max, $max); + imagealphablending($dest, false); + imagesavealpha($dest, true); + if ($this->type=='image/png') { + imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127)); // fill with alpha + } + imagecopyresampled($dest, $this->image, 0, 0, $x, $y, $max, $max, $w, $h); + if ($this->image) { + imagedestroy($this->image); + } + $this->image = $dest; + $this->width = imagesx($this->image); + $this->height = imagesy($this->image); } - $quality = FALSE; + public function saveImage($path) { + if (!$this->is_valid()) { + return false; + } - ob_start(); + $string = $this->imageString(); - // Enable interlacing - imageinterlace($this->image, true); + $a = get_app(); - switch($this->getType()){ - case "image/png": - $quality = get_config('system','png_quality'); - if((! $quality) || ($quality > 9)) - $quality = PNG_QUALITY; - imagepng($this->image,NULL, $quality); - break; - case "image/jpeg": - $quality = get_config('system','jpeg_quality'); - if((! $quality) || ($quality > 100)) - $quality = JPEG_QUALITY; - imagejpeg($this->image,NULL,$quality); + $stamp1 = microtime(true); + file_put_contents($path, $string); + $a->save_timestamp($stamp1, "file"); } - $string = ob_get_contents(); - ob_end_clean(); - return $string; - } + public function imageString() { + if (!$this->is_valid()) { + return false; + } + + if ($this->is_imagick()) { + /* Clean it */ + $this->image = $this->image->deconstructImages(); + $string = $this->image->getImagesBlob(); + return $string; + } + + $quality = false; + + ob_start(); + + // Enable interlacing + imageinterlace($this->image, true); + + switch($this->getType()){ + case "image/png": + $quality = get_config('system', 'png_quality'); + if ((!$quality) || ($quality > 9)) { + $quality = PNG_QUALITY; + } + imagepng($this->image, null, $quality); + break; + case "image/jpeg": + $quality = get_config('system', 'jpeg_quality'); + if ((!$quality) || ($quality > 100)) { + $quality = JPEG_QUALITY; + } + imagejpeg($this->image, null, $quality); + } + $string = ob_get_contents(); + ob_end_clean(); + + return $string; + } - public function store($uid, $cid, $rid, $filename, $album, $scale, $profile = 0, $allow_cid = '', $allow_gid = '', $deny_cid = '', $deny_gid = '') { + public function store($uid, $cid, $rid, $filename, $album, $scale, $profile = 0, $allow_cid = '', $allow_gid = '', $deny_cid = '', $deny_gid = '') { - $r = q("select `guid` from photo where `resource-id` = '%s' and `guid` != '' limit 1", - dbesc($rid) - ); - if(count($r)) - $guid = $r[0]['guid']; - else - $guid = get_guid(); + $r = q("SELECT `guid` FROM `photo` WHERE `resource-id` = '%s' AND `guid` != '' LIMIT 1", + dbesc($rid) + ); + if (dbm::is_result($r)) { + $guid = $r[0]['guid']; + } else { + $guid = get_guid(); + } - $x = q("select id from photo where `resource-id` = '%s' and uid = %d and `contact-id` = %d and `scale` = %d limit 1", - dbesc($rid), - intval($uid), - intval($cid), - intval($scale) - ); - if(count($x)) { - $r = q("UPDATE `photo` - set `uid` = %d, - `contact-id` = %d, - `guid` = '%s', - `resource-id` = '%s', - `created` = '%s', - `edited` = '%s', - `filename` = '%s', - `type` = '%s', - `album` = '%s', - `height` = %d, - `width` = %d, + $x = q("SELECT `id` FROM `photo` WHERE `resource-id` = '%s' AND `uid` = %d AND `contact-id` = %d AND `scale` = %d LIMIT 1", + dbesc($rid), + intval($uid), + intval($cid), + intval($scale) + ); + if (dbm::is_result($x)) { + $r = q("UPDATE `photo` + SET `uid` = %d, + `contact-id` = %d, + `guid` = '%s', + `resource-id` = '%s', + `created` = '%s', + `edited` = '%s', + `filename` = '%s', + `type` = '%s', + `album` = '%s', + `height` = %d, + `width` = %d, `datasize` = %d, - `data` = '%s', - `scale` = %d, - `profile` = %d, - `allow_cid` = '%s', - `allow_gid` = '%s', - `deny_cid` = '%s', - `deny_gid` = '%s' - where id = %d", + `data` = '%s', + `scale` = %d, + `profile` = %d, + `allow_cid` = '%s', + `allow_gid` = '%s', + `deny_cid` = '%s', + `deny_gid` = '%s' + WHERE `id` = %d", - intval($uid), - intval($cid), - dbesc($guid), - dbesc($rid), - dbesc(datetime_convert()), - dbesc(datetime_convert()), - dbesc(basename($filename)), - dbesc($this->getType()), - dbesc($album), - intval($this->getHeight()), - intval($this->getWidth()), + intval($uid), + intval($cid), + dbesc($guid), + dbesc($rid), + dbesc(datetime_convert()), + dbesc(datetime_convert()), + dbesc(basename($filename)), + dbesc($this->getType()), + dbesc($album), + intval($this->getHeight()), + intval($this->getWidth()), dbesc(strlen($this->imageString())), - dbesc($this->imageString()), - intval($scale), - intval($profile), - dbesc($allow_cid), - dbesc($allow_gid), - dbesc($deny_cid), - dbesc($deny_gid), - intval($x[0]['id']) - ); - } - else { - $r = q("INSERT INTO `photo` - ( `uid`, `contact-id`, `guid`, `resource-id`, `created`, `edited`, `filename`, type, `album`, `height`, `width`, `datasize`, `data`, `scale`, `profile`, `allow_cid`, `allow_gid`, `deny_cid`, `deny_gid` ) - VALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, %d, '%s', %d, %d, '%s', '%s', '%s', '%s' )", - intval($uid), - intval($cid), - dbesc($guid), - dbesc($rid), - dbesc(datetime_convert()), - dbesc(datetime_convert()), - dbesc(basename($filename)), - dbesc($this->getType()), - dbesc($album), - intval($this->getHeight()), - intval($this->getWidth()), + dbesc($this->imageString()), + intval($scale), + intval($profile), + dbesc($allow_cid), + dbesc($allow_gid), + dbesc($deny_cid), + dbesc($deny_gid), + intval($x[0]['id']) + ); + } else { + $r = q("INSERT INTO `photo` + (`uid`, `contact-id`, `guid`, `resource-id`, `created`, `edited`, `filename`, type, `album`, `height`, `width`, `datasize`, `data`, `scale`, `profile`, `allow_cid`, `allow_gid`, `deny_cid`, `deny_gid`) + VALUES (%d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, %d, '%s', %d, %d, '%s', '%s', '%s', '%s')", + intval($uid), + intval($cid), + dbesc($guid), + dbesc($rid), + dbesc(datetime_convert()), + dbesc(datetime_convert()), + dbesc(basename($filename)), + dbesc($this->getType()), + dbesc($album), + intval($this->getHeight()), + intval($this->getWidth()), dbesc(strlen($this->imageString())), - dbesc($this->imageString()), - intval($scale), - intval($profile), - dbesc($allow_cid), - dbesc($allow_gid), - dbesc($deny_cid), - dbesc($deny_gid) - ); + dbesc($this->imageString()), + intval($scale), + intval($profile), + dbesc($allow_cid), + dbesc($allow_gid), + dbesc($deny_cid), + dbesc($deny_gid) + ); + } + + // Update the cached values + if ($album != 'Contact Photos') { + photo_albums($uid, true); + } + + return $r; } - return $r; - } -}} +} /** @@ -682,41 +724,43 @@ class Photo { * @arg $fromcurl boolean Check Content-Type header from curl request */ function guess_image_type($filename, $fromcurl=false) { - logger('Photo: guess_image_type: '.$filename . ($fromcurl?' from curl headers':''), LOGGER_DEBUG); - $type = null; - if ($fromcurl) { - $a = get_app(); - $headers=array(); - $h = explode("\n",$a->get_curl_headers()); - foreach ($h as $l) { - list($k,$v) = array_map("trim", explode(":", trim($l), 2)); - $headers[$k] = $v; + logger('Photo: guess_image_type: '.$filename . ($fromcurl?' from curl headers':''), LOGGER_DEBUG); + $type = null; + if ($fromcurl) { + $a = get_app(); + $headers=array(); + $h = explode("\n",$a->get_curl_headers()); + foreach ($h as $l) { + list($k,$v) = array_map("trim", explode(":", trim($l), 2)); + $headers[$k] = $v; + } + if (array_key_exists('Content-Type', $headers)) + $type = $headers['Content-Type']; } - if (array_key_exists('Content-Type', $headers)) - $type = $headers['Content-Type']; - } - if (is_null($type)){ - // Guessing from extension? Isn't that... dangerous? - if(class_exists('Imagick') && file_exists($filename) && is_readable($filename)) { - /** - * Well, this not much better, - * but at least it comes from the data inside the image, - * we won't be tricked by a manipulated extension - */ - $image = new Imagick($filename); - $type = $image->getImageMimeType(); - $image->setInterlaceScheme(Imagick::INTERLACE_PLANE); - } else { - $ext = pathinfo($filename, PATHINFO_EXTENSION); - $types = Photo::supportedTypes(); - $type = "image/jpeg"; - foreach ($types as $m=>$e){ - if ($ext==$e) $type = $m; - } + if (is_null($type)){ + // Guessing from extension? Isn't that... dangerous? + if (class_exists('Imagick') && file_exists($filename) && is_readable($filename)) { + /** + * Well, this not much better, + * but at least it comes from the data inside the image, + * we won't be tricked by a manipulated extension + */ + $image = new Imagick($filename); + $type = $image->getImageMimeType(); + $image->setInterlaceScheme(Imagick::INTERLACE_PLANE); + } else { + $ext = pathinfo($filename, PATHINFO_EXTENSION); + $types = Photo::supportedTypes(); + $type = "image/jpeg"; + foreach ($types as $m => $e){ + if ($ext == $e) { + $type = $m; + } + } + } } - } - logger('Photo: guess_image_type: type='.$type, LOGGER_DEBUG); - return $type; + logger('Photo: guess_image_type: type='.$type, LOGGER_DEBUG); + return $type; } @@ -730,16 +774,17 @@ function guess_image_type($filename, $fromcurl=false) { * * @return array Returns array of the different avatar sizes */ -function update_contact_avatar($avatar,$uid,$cid, $force = false) { +function update_contact_avatar($avatar, $uid, $cid, $force = false) { $r = q("SELECT `avatar`, `photo`, `thumb`, `micro` FROM `contact` WHERE `id` = %d LIMIT 1", intval($cid)); - if (!$r) + if (!dbm::is_result($r)) { return false; - else + } else { $data = array($r[0]["photo"], $r[0]["thumb"], $r[0]["micro"]); + } if (($r[0]["avatar"] != $avatar) OR $force) { - $photos = import_profile_photo($avatar,$uid,$cid, true); + $photos = import_profile_photo($avatar, $uid, $cid, true); if ($photos) { q("UPDATE `contact` SET `avatar` = '%s', `photo` = '%s', `thumb` = '%s', `micro` = '%s', `avatar-date` = '%s' WHERE `id` = %d", @@ -752,63 +797,67 @@ function update_contact_avatar($avatar,$uid,$cid, $force = false) { return $data; } -function import_profile_photo($photo,$uid,$cid, $quit_on_error = false) { +function import_profile_photo($photo, $uid, $cid, $quit_on_error = false) { $a = get_app(); - $r = q("select `resource-id` from photo where `uid` = %d and `contact-id` = %d and `scale` = 4 and `album` = 'Contact Photos' limit 1", + $r = q("SELECT `resource-id` FROM `photo` WHERE `uid` = %d AND `contact-id` = %d AND `scale` = 4 AND `album` = 'Contact Photos' LIMIT 1", intval($uid), intval($cid) ); - if(count($r) && strlen($r[0]['resource-id'])) { + if (dbm::is_result($r) && strlen($r[0]['resource-id'])) { $hash = $r[0]['resource-id']; } else { $hash = photo_new_resource(); - } + } $photo_failure = false; $filename = basename($photo); - $img_str = fetch_url($photo,true); + $img_str = fetch_url($photo, true); - if ($quit_on_error AND ($img_str == "")) + if ($quit_on_error AND ($img_str == "")) { return false; + } - $type = guess_image_type($photo,true); + $type = guess_image_type($photo, true); $img = new Photo($img_str, $type); - if($img->is_valid()) { + if ($img->is_valid()) { $img->scaleImageSquare(175); - $r = $img->store($uid, $cid, $hash, $filename, 'Contact Photos', 4 ); + $r = $img->store($uid, $cid, $hash, $filename, 'Contact Photos', 4); - if($r === false) + if ($r === false) $photo_failure = true; $img->scaleImage(80); - $r = $img->store($uid, $cid, $hash, $filename, 'Contact Photos', 5 ); + $r = $img->store($uid, $cid, $hash, $filename, 'Contact Photos', 5); - if($r === false) + if ($r === false) $photo_failure = true; $img->scaleImage(48); - $r = $img->store($uid, $cid, $hash, $filename, 'Contact Photos', 6 ); + $r = $img->store($uid, $cid, $hash, $filename, 'Contact Photos', 6); - if($r === false) + if ($r === false) { $photo_failure = true; + } $photo = $a->get_baseurl() . '/photo/' . $hash . '-4.' . $img->getExt(); $thumb = $a->get_baseurl() . '/photo/' . $hash . '-5.' . $img->getExt(); $micro = $a->get_baseurl() . '/photo/' . $hash . '-6.' . $img->getExt(); - } else + } else { $photo_failure = true; + } - if($photo_failure AND $quit_on_error) + if ($photo_failure AND $quit_on_error) { return false; + } - if($photo_failure) { + if ($photo_failure) { $photo = $a->get_baseurl() . '/images/person-175.jpg'; $thumb = $a->get_baseurl() . '/images/person-80.jpg'; $micro = $a->get_baseurl() . '/images/person-48.jpg'; @@ -823,17 +872,13 @@ function get_photo_info($url) { $data = Cache::get($url); - // Unserialise to be able to check in the next step if the cached data is alright. - if (!is_null($data)) - $data = unserialize($data); - if (is_null($data) OR !$data) { $img_str = fetch_url($url, true, $redirects, 4); $filesize = strlen($img_str); - if (function_exists("getimagesizefromstring")) + if (function_exists("getimagesizefromstring")) { $data = getimagesizefromstring($img_str); - else { + } else { $tempfile = tempnam(get_temppath(), "cache"); $a = get_app(); @@ -845,10 +890,11 @@ function get_photo_info($url) { unlink($tempfile); } - if ($data) + if ($data) { $data["size"] = $filesize; + } - Cache::set($url, serialize($data)); + Cache::set($url, $data); } return $data; @@ -858,40 +904,41 @@ function scale_image($width, $height, $max) { $dest_width = $dest_height = 0; - if((!$width) || (!$height)) - return FALSE; + if ((!$width) || (!$height)) { + return false; + } - if($width > $max && $height > $max) { + if ($width > $max && $height > $max) { // very tall image (greater than 16:9) // constrain the width - let the height float. - if((($height * 9) / 16) > $width) { + if ((($height * 9) / 16) > $width) { $dest_width = $max; - $dest_height = intval(( $height * $max ) / $width); - } elseif($width > $height) { + $dest_height = intval(($height * $max) / $width); + } elseif ($width > $height) { // else constrain both dimensions $dest_width = $max; - $dest_height = intval(( $height * $max ) / $width); - } else { - $dest_width = intval(( $width * $max ) / $height); + $dest_height = intval(($height * $max) / $width); + } else { + $dest_width = intval(($width * $max) / $height); $dest_height = $max; } } else { - if( $width > $max ) { + if ($width > $max) { $dest_width = $max; - $dest_height = intval(( $height * $max ) / $width); - } else { - if( $height > $max ) { + $dest_height = intval(($height * $max) / $width); + } else { + if ($height > $max) { // very tall image (greater than 16:9) // but width is OK - don't do anything - if((($height * 9) / 16) > $width) { + if ((($height * 9) / 16) > $width) { $dest_width = $width; $dest_height = $height; } else { - $dest_width = intval(( $width * $max ) / $height); + $dest_width = intval(($width * $max) / $height); $dest_height = $max; } } else { @@ -905,10 +952,10 @@ function scale_image($width, $height, $max) { function store_photo($a, $uid, $imagedata = "", $url = "") { $r = q("SELECT `user`.`nickname`, `user`.`page-flags`, `contact`.`id` FROM `user` INNER JOIN `contact` on `user`.`uid` = `contact`.`uid` - WHERE `user`.`uid` = %d AND `user`.`blocked` = 0 and `contact`.`self` = 1 LIMIT 1", + WHERE `user`.`uid` = %d AND `user`.`blocked` = 0 AND `contact`.`self` = 1 LIMIT 1", intval($uid)); - if(!count($r)) { + if (!dbm::is_result($r)) { logger("Can't detect user data for uid ".$uid, LOGGER_DEBUG); return(array()); } @@ -930,24 +977,24 @@ function store_photo($a, $uid, $imagedata = "", $url = "") { $a->save_timestamp($stamp1, "file"); } - $maximagesize = get_config('system','maximagesize'); + $maximagesize = get_config('system', 'maximagesize'); - if(($maximagesize) && (strlen($imagedata) > $maximagesize)) { + if (($maximagesize) && (strlen($imagedata) > $maximagesize)) { logger("Image exceeds size limit of ".$maximagesize, LOGGER_DEBUG); return(array()); - } + } /* - $r = q("select sum(octet_length(data)) as total from photo where uid = %d and scale = 0 and album != 'Contact Photos' ", - intval($uid) - ); + $r = q("select sum(octet_length(data)) as total from photo where uid = %d and scale = 0 and album != 'Contact Photos' ", + intval($uid) + ); - $limit = service_class_fetch($uid,'photo_upload_limit'); + $limit = service_class_fetch($uid,'photo_upload_limit'); - if(($limit !== false) && (($r[0]['total'] + strlen($imagedata)) > $limit)) { + if (($limit !== false) && (($r[0]['total'] + strlen($imagedata)) > $limit)) { logger("Image exceeds personal limit of uid ".$uid, LOGGER_DEBUG); return(array()); - } + } */ $tempfile = tempnam(get_temppath(), "cache"); @@ -966,7 +1013,7 @@ function store_photo($a, $uid, $imagedata = "", $url = "") { $ph = new Photo($imagedata, $data["mime"]); - if(!$ph->is_valid()) { + if (!$ph->is_valid()) { unlink($tempfile); logger("Picture is no valid picture", LOGGER_DEBUG); return(array()); @@ -975,11 +1022,13 @@ function store_photo($a, $uid, $imagedata = "", $url = "") { $ph->orient($tempfile); unlink($tempfile); - $max_length = get_config('system','max_image_length'); - if(! $max_length) + $max_length = get_config('system', 'max_image_length'); + if (! $max_length) { $max_length = MAX_IMAGE_LENGTH; - if($max_length > 0) + } + if ($max_length > 0) { $ph->scaleImage($max_length); + } $width = $ph->getWidth(); $height = $ph->getHeight(); @@ -991,11 +1040,11 @@ function store_photo($a, $uid, $imagedata = "", $url = "") { // Pictures are always public by now //$defperm = '<'.$default_cid.'>'; $defperm = ""; - $visitor = 0; + $visitor = 0; $r = $ph->store($uid, $visitor, $hash, $tempfile, t('Wall Photos'), 0, 0, $defperm); - if(!$r) { + if (!$r) { logger("Picture couldn't be stored", LOGGER_DEBUG); return(array()); } @@ -1003,43 +1052,49 @@ function store_photo($a, $uid, $imagedata = "", $url = "") { $image = array("page" => $a->get_baseurl().'/photos/'.$page_owner_nick.'/image/'.$hash, "full" => $a->get_baseurl()."/photo/{$hash}-0.".$ph->getExt()); - if($width > 800 || $height > 800) + if ($width > 800 || $height > 800) { $image["large"] = $a->get_baseurl()."/photo/{$hash}-0.".$ph->getExt(); + } - if($width > 640 || $height > 640) { + if ($width > 640 || $height > 640) { $ph->scaleImage(640); $r = $ph->store($uid, $visitor, $hash, $tempfile, t('Wall Photos'), 1, 0, $defperm); - if($r) + if ($r) { $image["medium"] = $a->get_baseurl()."/photo/{$hash}-1.".$ph->getExt(); + } } - if($width > 320 || $height > 320) { + if ($width > 320 || $height > 320) { $ph->scaleImage(320); $r = $ph->store($uid, $visitor, $hash, $tempfile, t('Wall Photos'), 2, 0, $defperm); - if($r) + if ($r) { $image["small"] = $a->get_baseurl()."/photo/{$hash}-2.".$ph->getExt(); + } } - if($width > 160 AND $height > 160) { + if ($width > 160 AND $height > 160) { $x = 0; $y = 0; $min = $ph->getWidth(); - if ($min > 160) + if ($min > 160) { $x = ($min - 160) / 2; + } if ($ph->getHeight() < $min) { $min = $ph->getHeight(); - if ($min > 160) + if ($min > 160) { $y = ($min - 160) / 2; + } } $min = 160; $ph->cropImage(160, $x, $y, $min, $min); $r = $ph->store($uid, $visitor, $hash, $tempfile, t('Wall Photos'), 3, 0, $defperm); - if($r) + if ($r) { $image["thumb"] = $a->get_baseurl()."/photo/{$hash}-3.".$ph->getExt(); + } } // Set the full image as preview image. This will be overwritten, if the picture is larger than 640. @@ -1053,9 +1108,9 @@ function store_photo($a, $uid, $imagedata = "", $url = "") { //if (isset($image["small"])) // $image["preview"] = $image["small"]; - if (isset($image["medium"])) + if (isset($image["medium"])) { $image["preview"] = $image["medium"]; + } return($image); } - diff --git a/include/Probe.php b/include/Probe.php new file mode 100644 index 000000000..aa9f7d21d --- /dev/null +++ b/include/Probe.php @@ -0,0 +1,1139 @@ + Link to LRDD endpoint + * 'lrdd-xml' => Link to LRDD endpoint in XML format + * 'lrdd-json' => Link to LRDD endpoint in JSON format + */ + private function xrd($host) { + + $ssl_url = "https://".$host."/.well-known/host-meta"; + $url = "http://".$host."/.well-known/host-meta"; + + $xrd_timeout = Config::get('system','xrd_timeout', 20); + $redirects = 0; + + $xml = fetch_url($ssl_url, false, $redirects, $xrd_timeout, "application/xrd+xml"); + $xrd = parse_xml_string($xml, false); + + if (!is_object($xrd)) { + $xml = fetch_url($url, false, $redirects, $xrd_timeout, "application/xrd+xml"); + $xrd = parse_xml_string($xml, false); + } + if (!is_object($xrd)) + return false; + + $links = xml::element_to_array($xrd); + if (!isset($links["xrd"]["link"])) + return false; + + $xrd_data = array(); + + foreach ($links["xrd"]["link"] AS $value => $link) { + if (isset($link["@attributes"])) + $attributes = $link["@attributes"]; + elseif ($value == "@attributes") + $attributes = $link; + else + continue; + + if (($attributes["rel"] == "lrdd") AND + ($attributes["type"] == "application/xrd+xml")) + $xrd_data["lrdd-xml"] = $attributes["template"]; + elseif (($attributes["rel"] == "lrdd") AND + ($attributes["type"] == "application/json")) + $xrd_data["lrdd-json"] = $attributes["template"]; + elseif ($attributes["rel"] == "lrdd") + $xrd_data["lrdd"] = $attributes["template"]; + } + return $xrd_data; + } + + /** + * @brief Perform Webfinger lookup and return DFRN data + * + * Given an email style address, perform webfinger lookup and + * return the resulting DFRN profile URL, or if no DFRN profile URL + * is located, returns an OStatus subscription template (prefixed + * with the string 'stat:' to identify it as on OStatus template). + * If this isn't an email style address just return $webbie. + * Return an empty string if email-style addresses but webfinger fails, + * or if the resultant personal XRD doesn't contain a supported + * subscription/friend-request attribute. + * + * amended 7/9/2011 to return an hcard which could save potentially loading + * a lengthy content page to scrape dfrn attributes + * + * @param string $webbie Address that should be probed + * @param string $hcard Link to the hcard - is returned by reference + * + * @return string profile link + */ + + public static function webfinger_dfrn($webbie, &$hcard) { + + $profile_link = ''; + + $links = self::lrdd($webbie); + logger('webfinger_dfrn: '.$webbie.':'.print_r($links,true), LOGGER_DATA); + if (count($links)) { + foreach ($links as $link) { + if ($link['@attributes']['rel'] === NAMESPACE_DFRN) + $profile_link = $link['@attributes']['href']; + if (($link['@attributes']['rel'] === NAMESPACE_OSTATUSSUB) AND ($profile_link == "")) + $profile_link = 'stat:'.$link['@attributes']['template']; + if ($link['@attributes']['rel'] === 'http://microformats.org/profile/hcard') + $hcard = $link['@attributes']['href']; + } + } + return $profile_link; + } + + /** + * @brief Check an URI for LRDD data + * + * this is a replacement for the "lrdd" function in include/network.php. + * It isn't used in this class and has some redundancies in the code. + * When time comes we can check the existing calls for "lrdd" if we can rework them. + * + * @param string $uri Address that should be probed + * + * @return array uri data + */ + public static function lrdd($uri) { + + $lrdd = self::xrd($uri); + + if (!$lrdd) { + $parts = @parse_url($uri); + if (!$parts) + return array(); + + $host = $parts["host"]; + + $path_parts = explode("/", trim($parts["path"], "/")); + + do { + $lrdd = self::xrd($host); + $host .= "/".array_shift($path_parts); + } while (!$lrdd AND (sizeof($path_parts) > 0)); + } + + if (!$lrdd) + return array(); + + foreach ($lrdd AS $key => $link) { + if ($webfinger) + continue; + + if (!in_array($key, array("lrdd", "lrdd-xml", "lrdd-json"))) + continue; + + $path = str_replace('{uri}', urlencode($uri), $link); + $webfinger = self::webfinger($path); + + if (!$webfinger AND (strstr($uri, "@"))) { + $path = str_replace('{uri}', urlencode("acct:".$uri), $link); + $webfinger = self::webfinger($path); + } + } + + if (!is_array($webfinger["links"])) + return false; + + $data = array(); + + foreach ($webfinger["links"] AS $link) + $data[] = array("@attributes" => $link); + + if (is_array($webfinger["aliases"])) + foreach ($webfinger["aliases"] AS $alias) + $data[] = array("@attributes" => + array("rel" => "alias", + "href" => $alias)); + + return $data; + } + + /** + * @brief Fetch information (protocol endpoints and user information) about a given uri + * + * @param string $uri Address that should be probed + * @param string $network Test for this specific network + * @param integer $uid User ID for the probe (only used for mails) + * @param boolean $cache Use cached values? + * + * @return array uri data + */ + public static function uri($uri, $network = "", $uid = 0, $cache = true) { + + if ($cache) { + $result = Cache::get("probe_url:".$network.":".$uri); + if (!is_null($result)) { + return $result; + } + } + + if ($uid == 0) + $uid = local_user(); + + $data = self::detect($uri, $network, $uid); + + if (!isset($data["url"])) + $data["url"] = $uri; + + if ($data["photo"] != "") + $data["baseurl"] = matching_url(normalise_link($data["baseurl"]), normalise_link($data["photo"])); + else + $data["photo"] = App::get_baseurl().'/images/person-175.jpg'; + + if (!isset($data["name"]) OR ($data["name"] == "")) { + if (isset($data["nick"])) + $data["name"] = $data["nick"]; + + if ($data["name"] == "") + $data["name"] = $data["url"]; + } + + if (!isset($data["nick"]) OR ($data["nick"] == "")) { + $data["nick"] = strtolower($data["name"]); + + if (strpos($data['nick'], ' ')) + $data['nick'] = trim(substr($data['nick'], 0, strpos($data['nick'], ' '))); + } + + if (!isset($data["network"])) + $data["network"] = NETWORK_PHANTOM; + + $data = self::rearrange_data($data); + + // Only store into the cache if the value seems to be valid + if (!in_array($data['network'], array(NETWORK_PHANTOM, NETWORK_MAIL))) { + Cache::set("probe_url:".$network.":".$uri, $data, CACHE_DAY); + + /// @todo temporary fix - we need a real contact update function that updates only changing fields + /// The biggest problem is the avatar picture that could have a reduced image size. + /// It should only be updated if the existing picture isn't existing anymore. + if (($data['network'] != NETWORK_FEED) AND ($mode == PROBE_NORMAL) AND + $data["name"] AND $data["nick"] AND $data["url"] AND $data["addr"] AND $data["poll"]) + q("UPDATE `contact` SET `name` = '%s', `nick` = '%s', `url` = '%s', `addr` = '%s', + `notify` = '%s', `poll` = '%s', `alias` = '%s', `success_update` = '%s' + WHERE `nurl` = '%s' AND NOT `self` AND `uid` = 0", + dbesc($data["name"]), + dbesc($data["nick"]), + dbesc($data["url"]), + dbesc($data["addr"]), + dbesc($data["notify"]), + dbesc($data["poll"]), + dbesc($data["alias"]), + dbesc(datetime_convert()), + dbesc(normalise_link($data['url'])) + ); + } + return $data; + } + + /** + * @brief Fetch information (protocol endpoints and user information) about a given uri + * + * This function is only called by the "uri" function that adds caching and rearranging of data. + * + * @param string $uri Address that should be probed + * @param string $network Test for this specific network + * @param integer $uid User ID for the probe (only used for mails) + * + * @return array uri data + */ + private function detect($uri, $network, $uid) { + if (strstr($uri, '@')) { + // If the URI starts with "mailto:" then jump directly to the mail detection + if (strpos($url,'mailto:') !== false) { + $uri = str_replace('mailto:', '', $url); + return self::mail($uri, $uid); + } + + if ($network == NETWORK_MAIL) + return self::mail($uri, $uid); + + // Remove "acct:" from the URI + $uri = str_replace('acct:', '', $uri); + + $host = substr($uri,strpos($uri, '@') + 1); + $nick = substr($uri,0, strpos($uri, '@')); + + if (strpos($uri, '@twitter.com')) + return array("network" => NETWORK_TWITTER); + + $lrdd = self::xrd($host); + + if (!$lrdd) + return self::mail($uri, $uid); + + $addr = $uri; + } else { + $parts = parse_url($uri); + if (!isset($parts["scheme"]) OR + !isset($parts["host"]) OR + !isset($parts["path"])) + return false; + + // todo: Ports? + $host = $parts["host"]; + + if ($host == 'twitter.com') + return array("network" => NETWORK_TWITTER); + + $lrdd = self::xrd($host); + + $path_parts = explode("/", trim($parts["path"], "/")); + + while (!$lrdd AND (sizeof($path_parts) > 1)) { + $host .= "/".array_shift($path_parts); + $lrdd = self::xrd($host); + } + if (!$lrdd) + return self::feed($uri); + + $nick = array_pop($path_parts); + $addr = $nick."@".$host; + } + $webfinger = false; + + /// @todo Do we need the prefix "acct:" or "acct://"? + + foreach ($lrdd AS $key => $link) { + if ($webfinger) + continue; + + if (!in_array($key, array("lrdd", "lrdd-xml", "lrdd-json"))) + continue; + + // Try webfinger with the address (user@domain.tld) + $path = str_replace('{uri}', urlencode($addr), $link); + $webfinger = self::webfinger($path); + + // Mastodon needs to have it with "acct:" + if (!$webfinger) { + $path = str_replace('{uri}', urlencode("acct:".$addr), $link); + $webfinger = self::webfinger($path); + } + + // If webfinger wasn't successful then try it with the URL - possibly in the format https://... + if (!$webfinger AND ($uri != $addr)) { + $path = str_replace('{uri}', urlencode($uri), $link); + $webfinger = self::webfinger($path); + + // Since the detection with the address wasn't successful, we delete it. + if ($webfinger) { + $nick = ""; + $addr = ""; + } + } + + } + if (!$webfinger) + return self::feed($uri); + + $result = false; + + logger("Probing ".$uri, LOGGER_DEBUG); + + if (in_array($network, array("", NETWORK_DFRN))) + $result = self::dfrn($webfinger); + if ((!$result AND ($network == "")) OR ($network == NETWORK_DIASPORA)) + $result = self::diaspora($webfinger); + if ((!$result AND ($network == "")) OR ($network == NETWORK_OSTATUS)) + $result = self::ostatus($webfinger); + if ((!$result AND ($network == "")) OR ($network == NETWORK_PUMPIO)) + $result = self::pumpio($webfinger); + if ((!$result AND ($network == "")) OR ($network == NETWORK_FEED)) + $result = self::feed($uri); + else { + // We overwrite the detected nick with our try if the previois routines hadn't detected it. + // Additionally it is overwritten when the nickname doesn't make sense (contains spaces). + if ((!isset($result["nick"]) OR ($result["nick"] == "") OR (strstr($result["nick"], " "))) AND ($nick != "")) + $result["nick"] = $nick; + + if ((!isset($result["addr"]) OR ($result["addr"] == "")) AND ($addr != "")) + $result["addr"] = $addr; + } + + logger($uri." is ".$result["network"], LOGGER_DEBUG); + + if (!isset($result["baseurl"]) OR ($result["baseurl"] == "")) { + $pos = strpos($result["url"], $host); + if ($pos) + $result["baseurl"] = substr($result["url"], 0, $pos).$host; + } + + return $result; + } + + /** + * @brief Perform a webfinger request. + * + * For details see RFC 7033: + * + * @param string $url Address that should be probed + * + * @return array webfinger data + */ + private function webfinger($url) { + + $xrd_timeout = Config::get('system','xrd_timeout', 20); + $redirects = 0; + + $data = fetch_url($url, false, $redirects, $xrd_timeout, "application/xrd+xml"); + $xrd = parse_xml_string($data, false); + + if (!is_object($xrd)) { + // If it is not XML, maybe it is JSON + $webfinger = json_decode($data, true); + + if (!isset($webfinger["links"])) + return false; + + return $webfinger; + } + + $xrd_arr = xml::element_to_array($xrd); + if (!isset($xrd_arr["xrd"]["link"])) + return false; + + $webfinger = array(); + + if (isset($xrd_arr["xrd"]["subject"])) + $webfinger["subject"] = $xrd_arr["xrd"]["subject"]; + + if (isset($xrd_arr["xrd"]["alias"])) + $webfinger["aliases"] = $xrd_arr["xrd"]["alias"]; + + $webfinger["links"] = array(); + + foreach ($xrd_arr["xrd"]["link"] AS $value => $data) { + if (isset($data["@attributes"])) + $attributes = $data["@attributes"]; + elseif ($value == "@attributes") + $attributes = $data; + else + continue; + + $webfinger["links"][] = $attributes; + } + return $webfinger; + } + + /** + * @brief Poll the Friendica specific noscrape page. + * + * "noscrape" is a faster alternative to fetch the data from the hcard. + * This functionality was originally created for the directory. + * + * @param string $noscrape Link to the noscrape page + * @param array $data The already fetched data + * + * @return array noscrape data + */ + private function poll_noscrape($noscrape, $data) { + $content = fetch_url($noscrape); + if (!$content) + return false; + + $json = json_decode($content, true); + if (!is_array($json)) + return false; + + if (isset($json["fn"])) + $data["name"] = $json["fn"]; + + if (isset($json["addr"])) + $data["addr"] = $json["addr"]; + + if (isset($json["nick"])) + $data["nick"] = $json["nick"]; + + if (isset($json["comm"])) + $data["community"] = $json["comm"]; + + if (isset($json["tags"])) { + $keywords = implode(" ", $json["tags"]); + if ($keywords != "") + $data["keywords"] = $keywords; + } + + $location = formatted_location($json); + if ($location) + $data["location"] = $location; + + if (isset($json["about"])) + $data["about"] = $json["about"]; + + if (isset($json["key"])) + $data["pubkey"] = $json["key"]; + + if (isset($json["photo"])) + $data["photo"] = $json["photo"]; + + if (isset($json["dfrn-request"])) + $data["request"] = $json["dfrn-request"]; + + if (isset($json["dfrn-confirm"])) + $data["confirm"] = $json["dfrn-confirm"]; + + if (isset($json["dfrn-notify"])) + $data["notify"] = $json["dfrn-notify"]; + + if (isset($json["dfrn-poll"])) + $data["poll"] = $json["dfrn-poll"]; + + return $data; + } + + /** + * @brief Check for valid DFRN data + * + * @param array $data DFRN data + * + * @return int Number of errors + */ + public static function valid_dfrn($data) { + $errors = 0; + if(!isset($data['key'])) + $errors ++; + if(!isset($data['dfrn-request'])) + $errors ++; + if(!isset($data['dfrn-confirm'])) + $errors ++; + if(!isset($data['dfrn-notify'])) + $errors ++; + if(!isset($data['dfrn-poll'])) + $errors ++; + return $errors; + } + + /** + * @brief Fetch data from a DFRN profile page and via "noscrape" + * + * @param string $profile Link to the profile page + * + * @return array profile data + */ + public static function profile($profile) { + + $data = array(); + + // Fetch data via noscrape - this is faster + $noscrape = str_replace(array("/hcard/", "/profile/"), "/noscrape/", $profile); + $data = self::poll_noscrape($noscrape, $data); + + if (!isset($data["notify"]) OR !isset($data["confirm"]) OR + !isset($data["request"]) OR !isset($data["poll"]) OR + !isset($data["poco"]) OR !isset($data["name"]) OR + !isset($data["photo"])) + $data = self::poll_hcard($profile, $data, true); + + $prof_data = array(); + $prof_data["addr"] = $data["addr"]; + $prof_data["nick"] = $data["nick"]; + $prof_data["dfrn-request"] = $data["request"]; + $prof_data["dfrn-confirm"] = $data["confirm"]; + $prof_data["dfrn-notify"] = $data["notify"]; + $prof_data["dfrn-poll"] = $data["poll"]; + $prof_data["dfrn-poco"] = $data["poco"]; + $prof_data["photo"] = $data["photo"]; + $prof_data["fn"] = $data["name"]; + $prof_data["key"] = $data["pubkey"]; + + return $prof_data; + } + + /** + * @brief Check for DFRN contact + * + * @param array $webfinger Webfinger data + * + * @return array DFRN data + */ + private function dfrn($webfinger) { + + $hcard = ""; + $data = array(); + foreach ($webfinger["links"] AS $link) { + if (($link["rel"] == NAMESPACE_DFRN) AND ($link["href"] != "")) + $data["network"] = NETWORK_DFRN; + elseif (($link["rel"] == NAMESPACE_FEED) AND ($link["href"] != "")) + $data["poll"] = $link["href"]; + elseif (($link["rel"] == "http://webfinger.net/rel/profile-page") AND + ($link["type"] == "text/html") AND ($link["href"] != "")) + $data["url"] = $link["href"]; + elseif (($link["rel"] == "http://microformats.org/profile/hcard") AND ($link["href"] != "")) + $hcard = $link["href"]; + elseif (($link["rel"] == NAMESPACE_POCO) AND ($link["href"] != "")) + $data["poco"] = $link["href"]; + elseif (($link["rel"] == "http://webfinger.net/rel/avatar") AND ($link["href"] != "")) + $data["photo"] = $link["href"]; + + elseif (($link["rel"] == "http://joindiaspora.com/seed_location") AND ($link["href"] != "")) + $data["baseurl"] = trim($link["href"], '/'); + elseif (($link["rel"] == "http://joindiaspora.com/guid") AND ($link["href"] != "")) + $data["guid"] = $link["href"]; + elseif (($link["rel"] == "diaspora-public-key") AND ($link["href"] != "")) { + $data["pubkey"] = base64_decode($link["href"]); + + //if (strstr($data["pubkey"], 'RSA ') OR ($link["type"] == "RSA")) + if (strstr($data["pubkey"], 'RSA ')) + $data["pubkey"] = rsatopem($data["pubkey"]); + } + } + + if (!isset($data["network"]) OR ($hcard == "")) + return false; + + // Fetch data via noscrape - this is faster + $noscrape = str_replace("/hcard/", "/noscrape/", $hcard); + $data = self::poll_noscrape($noscrape, $data); + + if (isset($data["notify"]) AND isset($data["confirm"]) AND isset($data["request"]) AND + isset($data["poll"]) AND isset($data["name"]) AND isset($data["photo"])) + return $data; + + $data = self::poll_hcard($hcard, $data, true); + + return $data; + } + + /** + * @brief Poll the hcard page (Diaspora and Friendica specific) + * + * @param string $hcard Link to the hcard page + * @param array $data The already fetched data + * @param boolean $dfrn Poll DFRN specific data + * + * @return array hcard data + */ + private function poll_hcard($hcard, $data, $dfrn = false) { + + $content = fetch_url($hcard); + if (!$content) + return false; + + $doc = new DOMDocument(); + if (!@$doc->loadHTML($content)) + return false; + + $xpath = new DomXPath($doc); + + $vcards = $xpath->query("//div[contains(concat(' ', @class, ' '), ' vcard ')]"); + if (!is_object($vcards)) + return false; + + if ($vcards->length > 0) { + $vcard = $vcards->item(0); + + // We have to discard the guid from the hcard in favour of the guid from lrdd + // Reason: Hubzilla doesn't use the value "uid" in the hcard like Diaspora does. + $search = $xpath->query("//*[contains(concat(' ', @class, ' '), ' uid ')]", $vcard); // */ + if (($search->length > 0) AND ($data["guid"] == "")) + $data["guid"] = $search->item(0)->nodeValue; + + $search = $xpath->query("//*[contains(concat(' ', @class, ' '), ' nickname ')]", $vcard); // */ + if ($search->length > 0) + $data["nick"] = $search->item(0)->nodeValue; + + $search = $xpath->query("//*[contains(concat(' ', @class, ' '), ' fn ')]", $vcard); // */ + if ($search->length > 0) + $data["name"] = $search->item(0)->nodeValue; + + $search = $xpath->query("//*[contains(concat(' ', @class, ' '), ' searchable ')]", $vcard); // */ + if ($search->length > 0) + $data["searchable"] = $search->item(0)->nodeValue; + + $search = $xpath->query("//*[contains(concat(' ', @class, ' '), ' key ')]", $vcard); // */ + if ($search->length > 0) { + $data["pubkey"] = $search->item(0)->nodeValue; + if (strstr($data["pubkey"], 'RSA ')) + $data["pubkey"] = rsatopem($data["pubkey"]); + } + + $search = $xpath->query("//*[@id='pod_location']", $vcard); // */ + if ($search->length > 0) + $data["baseurl"] = trim($search->item(0)->nodeValue, "/"); + } + + $avatar = array(); + $photos = $xpath->query("//*[contains(concat(' ', @class, ' '), ' photo ') or contains(concat(' ', @class, ' '), ' avatar ')]", $vcard); // */ + foreach ($photos AS $photo) { + $attr = array(); + foreach ($photo->attributes as $attribute) + $attr[$attribute->name] = trim($attribute->value); + + if (isset($attr["src"]) AND isset($attr["width"])) + $avatar[$attr["width"]] = $attr["src"]; + } + + if (sizeof($avatar)) { + ksort($avatar); + $data["photo"] = array_pop($avatar); + } + + if ($dfrn) { + // Poll DFRN specific data + $search = $xpath->query("//link[contains(concat(' ', @rel), ' dfrn-')]"); + if ($search->length > 0) { + foreach ($search AS $link) { + //$data["request"] = $search->item(0)->nodeValue; + $attr = array(); + foreach ($link->attributes as $attribute) + $attr[$attribute->name] = trim($attribute->value); + + $data[substr($attr["rel"], 5)] = $attr["href"]; + } + } + + // Older Friendica versions had used the "uid" field differently than newer versions + if ($data["nick"] == $data["guid"]) + unset($data["guid"]); + } + + + return $data; + } + + /** + * @brief Check for Diaspora contact + * + * @param array $webfinger Webfinger data + * + * @return array Diaspora data + */ + private function diaspora($webfinger) { + + $hcard = ""; + $data = array(); + foreach ($webfinger["links"] AS $link) { + if (($link["rel"] == "http://microformats.org/profile/hcard") AND ($link["href"] != "")) + $hcard = $link["href"]; + elseif (($link["rel"] == "http://joindiaspora.com/seed_location") AND ($link["href"] != "")) + $data["baseurl"] = trim($link["href"], '/'); + elseif (($link["rel"] == "http://joindiaspora.com/guid") AND ($link["href"] != "")) + $data["guid"] = $link["href"]; + elseif (($link["rel"] == "http://webfinger.net/rel/profile-page") AND + ($link["type"] == "text/html") AND ($link["href"] != "")) + $data["url"] = $link["href"]; + elseif (($link["rel"] == NAMESPACE_FEED) AND ($link["href"] != "")) + $data["poll"] = $link["href"]; + elseif (($link["rel"] == NAMESPACE_POCO) AND ($link["href"] != "")) + $data["poco"] = $link["href"]; + elseif (($link["rel"] == "salmon") AND ($link["href"] != "")) + $data["notify"] = $link["href"]; + elseif (($link["rel"] == "diaspora-public-key") AND ($link["href"] != "")) { + $data["pubkey"] = base64_decode($link["href"]); + + //if (strstr($data["pubkey"], 'RSA ') OR ($link["type"] == "RSA")) + if (strstr($data["pubkey"], 'RSA ')) + $data["pubkey"] = rsatopem($data["pubkey"]); + } + } + + if (!isset($data["url"]) OR ($hcard == "")) + return false; + + if (is_array($webfinger["aliases"])) + foreach ($webfinger["aliases"] AS $alias) + if (normalise_link($alias) != normalise_link($data["url"]) AND !strstr($alias, "@")) + $data["alias"] = $alias; + + // Fetch further information from the hcard + $data = self::poll_hcard($hcard, $data); + + if (!$data) + return false; + + if (isset($data["url"]) AND isset($data["guid"]) AND isset($data["baseurl"]) AND + isset($data["pubkey"]) AND ($hcard != "")) { + $data["network"] = NETWORK_DIASPORA; + + // The Diaspora handle must always be lowercase + $data["addr"] = strtolower($data["addr"]); + + // We have to overwrite the detected value for "notify" since Hubzilla doesn't send it + $data["notify"] = $data["baseurl"]."/receive/users/".$data["guid"]; + $data["batch"] = $data["baseurl"]."/receive/public"; + } else + return false; + + return $data; + } + + /** + * @brief Check for OStatus contact + * + * @param array $webfinger Webfinger data + * + * @return array OStatus data + */ + private function ostatus($webfinger) { + + $data = array(); + if (is_array($webfinger["aliases"])) + foreach($webfinger["aliases"] AS $alias) + if (strstr($alias, "@")) + $data["addr"] = str_replace('acct:', '', $alias); + + if (is_string($webfinger["subject"]) AND strstr($webfinger["subject"], "@")) + $data["addr"] = str_replace('acct:', '', $webfinger["subject"]); + + $pubkey = ""; + foreach ($webfinger["links"] AS $link) { + if (($link["rel"] == "http://webfinger.net/rel/profile-page") AND + ($link["type"] == "text/html") AND ($link["href"] != "")) + $data["url"] = $link["href"]; + elseif (($link["rel"] == "salmon") AND ($link["href"] != "")) + $data["notify"] = $link["href"]; + elseif (($link["rel"] == NAMESPACE_FEED) AND ($link["href"] != "")) + $data["poll"] = $link["href"]; + elseif (($link["rel"] == "magic-public-key") AND ($link["href"] != "")) { + $pubkey = $link["href"]; + + if (substr($pubkey, 0, 5) === 'data:') { + if (strstr($pubkey, ',')) + $pubkey = substr($pubkey, strpos($pubkey, ',') + 1); + else + $pubkey = substr($pubkey, 5); + } elseif (normalise_link($pubkey) == 'http://') + $pubkey = fetch_url($pubkey); + + $key = explode(".", $pubkey); + + if (sizeof($key) >= 3) { + $m = base64url_decode($key[1]); + $e = base64url_decode($key[2]); + $data["pubkey"] = metopem($m,$e); + } + + } + } + + if (isset($data["notify"]) AND isset($data["pubkey"]) AND + isset($data["poll"]) AND isset($data["url"])) { + $data["network"] = NETWORK_OSTATUS; + } else + return false; + + // Fetch all additional data from the feed + $feed = fetch_url($data["poll"]); + $feed_data = feed_import($feed,$dummy1,$dummy2, $dummy3, true); + if (!$feed_data) + return false; + + if ($feed_data["header"]["author-name"] != "") + $data["name"] = $feed_data["header"]["author-name"]; + + if ($feed_data["header"]["author-nick"] != "") + $data["nick"] = $feed_data["header"]["author-nick"]; + + if ($feed_data["header"]["author-avatar"] != "") + $data["photo"] = $feed_data["header"]["author-avatar"]; + + if ($feed_data["header"]["author-id"] != "") + $data["alias"] = $feed_data["header"]["author-id"]; + + if ($feed_data["header"]["author-location"] != "") + $data["location"] = $feed_data["header"]["author-location"]; + + if ($feed_data["header"]["author-about"] != "") + $data["about"] = $feed_data["header"]["author-about"]; + + // OStatus has serious issues when the the url doesn't fit (ssl vs. non ssl) + // So we take the value that we just fetched, although the other one worked as well + if ($feed_data["header"]["author-link"] != "") + $data["url"] = $feed_data["header"]["author-link"]; + + /// @todo Fetch location and "about" from the feed as well + return $data; + } + + /** + * @brief Fetch data from a pump.io profile page + * + * @param string $profile Link to the profile page + * + * @return array profile data + */ + private function pumpio_profile_data($profile) { + + $doc = new DOMDocument(); + if (!@$doc->loadHTMLFile($profile)) + return false; + + $xpath = new DomXPath($doc); + + $data = array(); + + // This is ugly - but pump.io doesn't seem to know a better way for it + $data["name"] = trim($xpath->query("//h1[@class='media-header']")->item(0)->nodeValue); + $pos = strpos($data["name"], chr(10)); + if ($pos) + $data["name"] = trim(substr($data["name"], 0, $pos)); + + $avatar = $xpath->query("//img[@class='img-rounded media-object']")->item(0); + if ($avatar) + foreach ($avatar->attributes as $attribute) + if ($attribute->name == "src") + $data["photo"] = trim($attribute->value); + + $data["location"] = $xpath->query("//p[@class='location']")->item(0)->nodeValue; + $data["about"] = $xpath->query("//p[@class='summary']")->item(0)->nodeValue; + + return $data; + } + + /** + * @brief Check for pump.io contact + * + * @param array $webfinger Webfinger data + * + * @return array pump.io data + */ + private function pumpio($webfinger) { + + $data = array(); + foreach ($webfinger["links"] AS $link) { + if (($link["rel"] == "http://webfinger.net/rel/profile-page") AND + ($link["type"] == "text/html") AND ($link["href"] != "")) + $data["url"] = $link["href"]; + elseif (($link["rel"] == "activity-inbox") AND ($link["href"] != "")) + $data["notify"] = $link["href"]; + elseif (($link["rel"] == "activity-outbox") AND ($link["href"] != "")) + $data["poll"] = $link["href"]; + elseif (($link["rel"] == "dialback") AND ($link["href"] != "")) + $data["dialback"] = $link["href"]; + } + if (isset($data["poll"]) AND isset($data["notify"]) AND + isset($data["dialback"]) AND isset($data["url"])) { + + // by now we use these fields only for the network type detection + // So we unset all data that isn't used at the moment + unset($data["dialback"]); + + $data["network"] = NETWORK_PUMPIO; + } else + return false; + + $profile_data = self::pumpio_profile_data($data["url"]); + + if (!$profile_data) + return false; + + $data = array_merge($data, $profile_data); + + return $data; + } + + /** + * @brief Check page for feed link + * + * @param string $url Page link + * + * @return string feed link + */ + private function get_feed_link($url) { + $doc = new DOMDocument(); + + if (!@$doc->loadHTMLFile($url)) + return false; + + $xpath = new DomXPath($doc); + + //$feeds = $xpath->query("/html/head/link[@type='application/rss+xml']"); + $feeds = $xpath->query("/html/head/link[@type='application/rss+xml' and @rel='alternate']"); + if (!is_object($feeds)) + return false; + + if ($feeds->length == 0) + return false; + + $feed_url = ""; + + foreach ($feeds AS $feed) { + $attr = array(); + foreach ($feed->attributes as $attribute) + $attr[$attribute->name] = trim($attribute->value); + + if ($feed_url == "") + $feed_url = $attr["href"]; + } + + return $feed_url; + } + + /** + * @brief Check for feed contact + * + * @param string $url Profile link + * @param boolean $probe Do a probe if the page contains a feed link + * + * @return array feed data + */ + private function feed($url, $probe = true) { + $feed = fetch_url($url); + $feed_data = feed_import($feed, $dummy1, $dummy2, $dummy3, true); + + if (!$feed_data) { + if (!$probe) + return false; + + $feed_url = self::get_feed_link($url); + + if (!$feed_url) + return false; + + return self::feed($feed_url, false); + } + + if ($feed_data["header"]["author-name"] != "") + $data["name"] = $feed_data["header"]["author-name"]; + + if ($feed_data["header"]["author-nick"] != "") + $data["nick"] = $feed_data["header"]["author-nick"]; + + if ($feed_data["header"]["author-avatar"] != "") + $data["photo"] = $feed_data["header"]["author-avatar"]; + + if ($feed_data["header"]["author-id"] != "") + $data["alias"] = $feed_data["header"]["author-id"]; + + $data["url"] = $url; + $data["poll"] = $url; + + if ($feed_data["header"]["author-link"] != "") + $data["baseurl"] = $feed_data["header"]["author-link"]; + else + $data["baseurl"] = $data["url"]; + + $data["network"] = NETWORK_FEED; + + return $data; + } + + /** + * @brief Check for mail contact + * + * @param string $uri Profile link + * @param integer $uid User ID + * + * @return array mail data + */ + private function mail($uri, $uid) { + + if (!validate_email($uri)) + return false; + + $x = q("SELECT `prvkey` FROM `user` WHERE `uid` = %d LIMIT 1", intval($uid)); + + $r = q("SELECT * FROM `mailacct` WHERE `uid` = %d AND `server` != '' LIMIT 1", intval($uid)); + + if(count($x) && count($r)) { + $mailbox = construct_mailbox_name($r[0]); + $password = ''; + openssl_private_decrypt(hex2bin($r[0]['pass']), $password,$x[0]['prvkey']); + $mbox = email_connect($mailbox,$r[0]['user'], $password); + if(!mbox) + return false; + } + + $msgs = email_poll($mbox, $uri); + logger('searching '.$uri.', '.count($msgs).' messages found.', LOGGER_DEBUG); + + if (!count($msgs)) + return false; + + $data = array(); + + $data["addr"] = $uri; + $data["network"] = NETWORK_MAIL; + $data["name"] = substr($uri, 0, strpos($uri,'@')); + $data["nick"] = $data["name"]; + $data["photo"] = avatar_img($uri); + + $phost = substr($uri, strpos($uri,'@') + 1); + $data["url"] = 'http://'.$phost."/".$data["nick"]; + $data["notify"] = 'smtp '.random_string(); + $data["poll"] = 'email '.random_string(); + + $x = email_msg_meta($mbox, $msgs[0]); + if(stristr($x[0]->from, $uri)) + $adr = imap_rfc822_parse_adrlist($x[0]->from, ''); + elseif(stristr($x[0]->to, $uri)) + $adr = imap_rfc822_parse_adrlist($x[0]->to, ''); + if(isset($adr)) { + foreach($adr as $feadr) { + if((strcasecmp($feadr->mailbox, $data["name"]) == 0) + &&(strcasecmp($feadr->host, $phost) == 0) + && (strlen($feadr->personal))) { + + $personal = imap_mime_header_decode($feadr->personal); + $data["name"] = ""; + foreach($personal as $perspart) + if ($perspart->charset != "default") + $data["name"] .= iconv($perspart->charset, 'UTF-8//IGNORE', $perspart->text); + else + $data["name"] .= $perspart->text; + + $data["name"] = notags($data["name"]); + } + } + } + imap_close($mbox); + + return $data; + } +} +?> diff --git a/include/Scrape.php b/include/Scrape.php index a26576a69..bb9af60d7 100644 --- a/include/Scrape.php +++ b/include/Scrape.php @@ -1,335 +1,5 @@ get_curl_headers(); - logger('scrape_dfrn: headers=' . $headers, LOGGER_DEBUG); - - - $lines = explode("\n",$headers); - if(count($lines)) { - foreach($lines as $line) { - // don't try and run feeds through the html5 parser - if(stristr($line,'content-type:') && ((stristr($line,'application/atom+xml')) || (stristr($line,'application/rss+xml')))) - return ret; - } - } - - try { - $dom = HTML5_Parser::parse($s); - } catch (DOMException $e) { - logger('scrape_dfrn: parse error: ' . $e); - } - - if(! $dom) - return $ret; - - $items = $dom->getElementsByTagName('link'); - - // get DFRN link elements - - foreach($items as $item) { - $x = $item->getAttribute('rel'); - if(($x === 'alternate') && ($item->getAttribute('type') === 'application/atom+xml')) - $ret['feed_atom'] = $item->getAttribute('href'); - if(substr($x,0,5) == "dfrn-") { - $ret[$x] = $item->getAttribute('href'); - } - if($x === 'lrdd') { - $decoded = urldecode($item->getAttribute('href')); - if(preg_match('/acct:([^@]*)@/',$decoded,$matches)) - $ret['nick'] = $matches[1]; - } - } - - // Pull out hCard profile elements - - $largest_photo = 0; - - $items = $dom->getElementsByTagName('*'); - foreach($items as $item) { - if(attribute_contains($item->getAttribute('class'), 'vcard')) { - $level2 = $item->getElementsByTagName('*'); - foreach($level2 as $x) { - if(attribute_contains($x->getAttribute('class'),'fn')) { - $ret['fn'] = $x->textContent; - } - if((attribute_contains($x->getAttribute('class'),'photo')) - || (attribute_contains($x->getAttribute('class'),'avatar'))) { - $size = intval($x->getAttribute('width')); - // dfrn prefers 175, so if we find this, we set largest_size so it can't be topped. - if(($size > $largest_photo) || ($size == 175) || (! $largest_photo)) { - $ret['photo'] = $x->getAttribute('src'); - $largest_photo = (($size == 175) ? 9999 : $size); - } - } - if(attribute_contains($x->getAttribute('class'),'key')) { - $ret['key'] = $x->textContent; - } - } - } - } - return array_merge($ret, $noscrapedata); -}} - - - - - - -if(! function_exists('validate_dfrn')) { -function validate_dfrn($a) { - $errors = 0; - if(! x($a,'key')) - $errors ++; - if(! x($a,'dfrn-request')) - $errors ++; - if(! x($a,'dfrn-confirm')) - $errors ++; - if(! x($a,'dfrn-notify')) - $errors ++; - if(! x($a,'dfrn-poll')) - $errors ++; - return $errors; -}} - -if(! function_exists('scrape_meta')) { -function scrape_meta($url) { - - $a = get_app(); - - $ret = array(); - - logger('scrape_meta: url=' . $url); - - $s = fetch_url($url); - - if(! $s) - return $ret; - - $headers = $a->get_curl_headers(); - logger('scrape_meta: headers=' . $headers, LOGGER_DEBUG); - - $lines = explode("\n",$headers); - if(count($lines)) { - foreach($lines as $line) { - // don't try and run feeds through the html5 parser - if(stristr($line,'content-type:') && ((stristr($line,'application/atom+xml')) || (stristr($line,'application/rss+xml')))) - return ret; - } - } - - try { - $dom = HTML5_Parser::parse($s); - } catch (DOMException $e) { - logger('scrape_meta: parse error: ' . $e); - } - - if(! $dom) - return $ret; - - $items = $dom->getElementsByTagName('meta'); - - // get DFRN link elements - - foreach($items as $item) { - $x = $item->getAttribute('name'); - if(substr($x,0,5) == "dfrn-") - $ret[$x] = $item->getAttribute('content'); - } - - return $ret; -}} - - -if(! function_exists('scrape_vcard')) { -function scrape_vcard($url) { - - $a = get_app(); - - $ret = array(); - - logger('scrape_vcard: url=' . $url); - - $s = fetch_url($url); - - if(! $s) - return $ret; - - $headers = $a->get_curl_headers(); - $lines = explode("\n",$headers); - if(count($lines)) { - foreach($lines as $line) { - // don't try and run feeds through the html5 parser - if(stristr($line,'content-type:') && ((stristr($line,'application/atom+xml')) || (stristr($line,'application/rss+xml')))) - return ret; - } - } - - try { - $dom = HTML5_Parser::parse($s); - } catch (DOMException $e) { - logger('scrape_vcard: parse error: ' . $e); - } - - if(! $dom) - return $ret; - - // Pull out hCard profile elements - - $largest_photo = 0; - - $items = $dom->getElementsByTagName('*'); - foreach($items as $item) { - if(attribute_contains($item->getAttribute('class'), 'vcard')) { - $level2 = $item->getElementsByTagName('*'); - foreach($level2 as $x) { - if(attribute_contains($x->getAttribute('class'),'fn')) - $ret['fn'] = $x->textContent; - if((attribute_contains($x->getAttribute('class'),'photo')) - || (attribute_contains($x->getAttribute('class'),'avatar'))) { - $size = intval($x->getAttribute('width')); - if(($size > $largest_photo) || (! $largest_photo)) { - $ret['photo'] = $x->getAttribute('src'); - $largest_photo = $size; - } - } - if((attribute_contains($x->getAttribute('class'),'nickname')) - || (attribute_contains($x->getAttribute('class'),'uid'))) { - $ret['nick'] = $x->textContent; - } - } - } - } - - return $ret; -}} - - -if(! function_exists('scrape_feed')) { -function scrape_feed($url) { - - $a = get_app(); - - $ret = array(); - $cookiejar = tempnam(get_temppath(), 'cookiejar-scrape-feed-'); - $s = fetch_url($url, false, $redirects, 0, Null, $cookiejar); - unlink($cookiejar); - - $headers = $a->get_curl_headers(); - $code = $a->get_curl_code(); - - logger('scrape_feed: returns: ' . $code . ' headers=' . $headers, LOGGER_DEBUG); - - if(! $s) { - logger('scrape_feed: no data returned for ' . $url); - return $ret; - } - - - $lines = explode("\n",$headers); - if(count($lines)) { - foreach($lines as $line) { - if(stristr($line,'content-type:')) { - if(stristr($line,'application/atom+xml') || stristr($s,'')) { - $ret['feed_rss'] = $url; - return $ret; - } - } - - $basename = implode('/', array_slice(explode('/',$url),0,3)) . '/'; - - $doc = new DOMDocument(); - @$doc->loadHTML($s); - $xpath = new DomXPath($doc); - - $base = $xpath->query("//base"); - foreach ($base as $node) { - $attr = array(); - - if ($node->attributes->length) - foreach ($node->attributes as $attribute) - $attr[$attribute->name] = $attribute->value; - - if ($attr["href"] != "") - $basename = $attr["href"] ; - } - - $list = $xpath->query("//link"); - foreach ($list as $node) { - $attr = array(); - - if ($node->attributes->length) - foreach ($node->attributes as $attribute) - $attr[$attribute->name] = $attribute->value; - - if (($attr["rel"] == "alternate") AND ($attr["type"] == "application/atom+xml")) - $ret["feed_atom"] = $attr["href"]; - - if (($attr["rel"] == "alternate") AND ($attr["type"] == "application/rss+xml")) - $ret["feed_rss"] = $attr["href"]; - } - - // Drupal and perhaps others only provide relative URLs. Turn them into absolute. - - if(x($ret,'feed_atom') && (! strstr($ret['feed_atom'],'://'))) - $ret['feed_atom'] = $basename . $ret['feed_atom']; - if(x($ret,'feed_rss') && (! strstr($ret['feed_rss'],'://'))) - $ret['feed_rss'] = $basename . $ret['feed_rss']; - - return $ret; -}} - +require_once('include/Probe.php'); /** * @@ -349,594 +19,17 @@ function scrape_feed($url) { * */ - -define ( 'PROBE_NORMAL', 0); -define ( 'PROBE_DIASPORA', 1); +define('PROBE_NORMAL', 0); +define('PROBE_DIASPORA', 1); function probe_url($url, $mode = PROBE_NORMAL, $level = 1) { - require_once('include/email.php'); - $result = array(); + if ($mode == PROBE_DIASPORA) + $network = NETWORK_DIASPORA; + else + $network = ""; - if (!$url) - return $result; + $data = Probe::uri($url, $network); - $result = Cache::get("probe_url:".$mode.":".$url); - if (!is_null($result)) { - $result = unserialize($result); - return $result; - } - - $original_url = $url; - $network = null; - $diaspora = false; - $diaspora_base = ''; - $diaspora_guid = ''; - $diaspora_key = ''; - $has_lrdd = false; - $email_conversant = false; - $connectornetworks = false; - $appnet = false; - - if (strpos($url,'twitter.com')) { - $connectornetworks = true; - $network = NETWORK_TWITTER; - } - - $lastfm = ((strpos($url,'last.fm/user') !== false) ? true : false); - - $at_addr = ((strpos($url,'@') !== false) ? true : false); - - if((!$appnet) && (!$lastfm) && !$connectornetworks) { - - if(strpos($url,'mailto:') !== false && $at_addr) { - $url = str_replace('mailto:','',$url); - $links = array(); - } - else - $links = lrdd($url); - - if ((count($links) == 0) AND strstr($url, "/index.php")) { - $url = str_replace("/index.php", "", $url); - $links = lrdd($url); - } - - if (count($links)) { - $has_lrdd = true; - - logger('probe_url: found lrdd links: ' . print_r($links,true), LOGGER_DATA); - foreach($links as $link) { - if($link['@attributes']['rel'] === NAMESPACE_ZOT) - $zot = unamp($link['@attributes']['href']); - if($link['@attributes']['rel'] === NAMESPACE_DFRN) - $dfrn = unamp($link['@attributes']['href']); - if($link['@attributes']['rel'] === 'salmon') - $notify = unamp($link['@attributes']['href']); - if($link['@attributes']['rel'] === NAMESPACE_FEED) - $poll = unamp($link['@attributes']['href']); - if($link['@attributes']['rel'] === 'http://microformats.org/profile/hcard') - $hcard = unamp($link['@attributes']['href']); - if($link['@attributes']['rel'] === 'http://webfinger.net/rel/profile-page') - $profile = unamp($link['@attributes']['href']); - if($link['@attributes']['rel'] === 'http://portablecontacts.net/spec/1.0') - $poco = unamp($link['@attributes']['href']); - if($link['@attributes']['rel'] === 'http://joindiaspora.com/seed_location') { - $diaspora_base = unamp($link['@attributes']['href']); - $diaspora = true; - } - if($link['@attributes']['rel'] === 'http://joindiaspora.com/guid') { - $diaspora_guid = unamp($link['@attributes']['href']); - $diaspora = true; - } - if($link['@attributes']['rel'] === 'diaspora-public-key') { - $diaspora_key = base64_decode(unamp($link['@attributes']['href'])); - if(strstr($diaspora_key,'RSA ')) - $pubkey = rsatopem($diaspora_key); - else - $pubkey = $diaspora_key; - $diaspora = true; - } - if(($link['@attributes']['rel'] === 'http://ostatus.org/schema/1.0/subscribe') AND ($mode == PROBE_NORMAL)) { - $diaspora = false; - } - } - - // Status.Net can have more than one profile URL. We need to match the profile URL - // to a contact on incoming messages to prevent spam, and we won't know which one - // to match. So in case of two, one of them is stored as an alias. Only store URL's - // and not webfinger user@host aliases. If they've got more than two non-email style - // aliases, let's hope we're lucky and get one that matches the feed author-uri because - // otherwise we're screwed. - - $backup_alias = ""; - - foreach($links as $link) { - if($link['@attributes']['rel'] === 'alias') { - if(strpos($link['@attributes']['href'],'@') === false) { - if(isset($profile)) { - $alias_url = $link['@attributes']['href']; - - if(($alias_url !== $profile) AND ($backup_alias == "") AND - ($alias_url !== str_replace("/index.php", "", $profile))) - $backup_alias = $alias_url; - - if(($alias_url !== $profile) AND !strstr($alias_url, "index.php") AND - ($alias_url !== str_replace("/index.php", "", $profile))) - $alias = $alias_url; - } - else - $profile = unamp($link['@attributes']['href']); - } - } - } - - if ($alias == "") - $alias = $backup_alias; - - // If the profile is different from the url then the url is abviously an alias - if (($alias == "") AND ($profile != "") AND !$at_addr AND (normalise_link($profile) != normalise_link($url))) - $alias = $url; - } - elseif($mode == PROBE_NORMAL) { - - // Check email - - $orig_url = $url; - if((strpos($orig_url,'@')) && validate_email($orig_url)) { - $x = q("SELECT `prvkey` FROM `user` WHERE `uid` = %d LIMIT 1", - intval(local_user()) - ); - $r = q("SELECT * FROM `mailacct` WHERE `uid` = %d AND `server` != '' LIMIT 1", - intval(local_user()) - ); - if(count($x) && count($r)) { - $mailbox = construct_mailbox_name($r[0]); - $password = ''; - openssl_private_decrypt(hex2bin($r[0]['pass']),$password,$x[0]['prvkey']); - $mbox = email_connect($mailbox,$r[0]['user'],$password); - if(! $mbox) - logger('probe_url: email_connect failed.'); - unset($password); - } - if($mbox) { - $msgs = email_poll($mbox,$orig_url); - logger('probe_url: searching ' . $orig_url . ', ' . count($msgs) . ' messages found.', LOGGER_DEBUG); - if(count($msgs)) { - $addr = $orig_url; - $network = NETWORK_MAIL; - $name = substr($url,0,strpos($url,'@')); - $phost = substr($url,strpos($url,'@')+1); - $profile = 'http://' . $phost; - // fix nick character range - $vcard = array('fn' => $name, 'nick' => $name, 'photo' => avatar_img($url)); - $notify = 'smtp ' . random_string(); - $poll = 'email ' . random_string(); - $priority = 0; - $x = email_msg_meta($mbox,$msgs[0]); - if(stristr($x[0]->from,$orig_url)) - $adr = imap_rfc822_parse_adrlist($x[0]->from,''); - elseif(stristr($x[0]->to,$orig_url)) - $adr = imap_rfc822_parse_adrlist($x[0]->to,''); - if(isset($adr)) { - foreach($adr as $feadr) { - if((strcasecmp($feadr->mailbox,$name) == 0) - &&(strcasecmp($feadr->host,$phost) == 0) - && (strlen($feadr->personal))) { - - $personal = imap_mime_header_decode($feadr->personal); - $vcard['fn'] = ""; - foreach($personal as $perspart) - if ($perspart->charset != "default") - $vcard['fn'] .= iconv($perspart->charset, 'UTF-8//IGNORE', $perspart->text); - else - $vcard['fn'] .= $perspart->text; - - $vcard['fn'] = notags($vcard['fn']); - } - } - } - } - imap_close($mbox); - } - } - } - } - - if($mode == PROBE_NORMAL) { - - if(strlen($zot)) { - $s = fetch_url($zot); - if($s) { - $j = json_decode($s); - if($j) { - $network = NETWORK_ZOT; - $vcard = array( - 'fn' => $j->fullname, - 'nick' => $j->nickname, - 'photo' => $j->photo - ); - $profile = $j->url; - $notify = $j->post; - $pubkey = $j->pubkey; - $poll = 'N/A'; - } - } - } - - - if(strlen($dfrn)) { - $ret = scrape_dfrn(($hcard) ? $hcard : $dfrn, true); - if(is_array($ret) && x($ret,'dfrn-request')) { - $network = NETWORK_DFRN; - $request = $ret['dfrn-request']; - $confirm = $ret['dfrn-confirm']; - $notify = $ret['dfrn-notify']; - $poll = $ret['dfrn-poll']; - - $vcard = array(); - $vcard['fn'] = $ret['fn']; - $vcard['nick'] = $ret['nick']; - $vcard['photo'] = $ret['photo']; - } - } - } - - // Scrape the public key from the hcard. - // Diaspora will remove it from the webfinger somewhere in the future. - if (($hcard != "") AND ($pubkey == "")) { - $ret = scrape_dfrn(($hcard) ? $hcard : $dfrn, true); - if (isset($ret["key"])) { - $hcard_key = $ret["key"]; - if(strstr($hcard_key,'RSA ')) - $pubkey = rsatopem($hcard_key); - else - $pubkey = $hcard_key; - } - } - if($diaspora && $diaspora_base && $diaspora_guid) { - $diaspora_notify = $diaspora_base.'receive/users/'.$diaspora_guid; - - if($mode == PROBE_DIASPORA || !$notify || ($notify == $diaspora_notify)) { - $notify = $diaspora_notify; - $batch = $diaspora_base . 'receive/public' ; - } - if(strpos($url,'@')) - $addr = str_replace('acct:', '', $url); - } - - if($network !== NETWORK_ZOT && $network !== NETWORK_DFRN && $network !== NETWORK_MAIL) { - if($diaspora) - $network = NETWORK_DIASPORA; - elseif($has_lrdd AND ($notify)) - $network = NETWORK_OSTATUS; - - if(strpos($url,'@')) - $addr = str_replace('acct:', '', $url); - - $priority = 0; - - if($hcard && ! $vcard) { - $vcard = scrape_vcard($hcard); - - // Google doesn't use absolute url in profile photos - - if((x($vcard,'photo')) && substr($vcard['photo'],0,1) == '/') { - $h = @parse_url($hcard); - if($h) - $vcard['photo'] = $h['scheme'] . '://' . $h['host'] . $vcard['photo']; - } - - logger('probe_url: scrape_vcard: ' . print_r($vcard,true), LOGGER_DATA); - } - - if($diaspora && $addr) { - // Diaspora returns the name as the nick. As the nick will never be updated, - // let's use the Diaspora nickname (the first part of the handle) as the nick instead - $addr_parts = explode('@', $addr); - $vcard['nick'] = $addr_parts[0]; - } - - if($lastfm) { - $profile = $url; - $poll = str_replace(array('www.','last.fm/'),array('','ws.audioscrobbler.com/1.0/'),$url) . '/recenttracks.rss'; - $vcard['nick'] = basename($url); - $vcard['fn'] = $vcard['nick'] . t(' on Last.fm'); - $network = NETWORK_FEED; - } - - if(! x($vcard,'fn')) - if(x($vcard,'nick')) - $vcard['fn'] = $vcard['nick']; - - $check_feed = false; - - if(stristr($url,'tumblr.com') && (! stristr($url,'/rss'))) { - $poll = $url . '/rss'; - $check_feed = true; - // Will leave it to others to figure out how to grab the avatar, which is on the $url page in the open graph meta links - } - - if($appnet || ! $poll) - $check_feed = true; - if((! isset($vcard)) || (! x($vcard,'fn')) || (! $profile)) - $check_feed = true; - if(($at_addr) && (! count($links))) - $check_feed = false; - - if ($connectornetworks) - $check_feed = false; - - if($check_feed) { - - $feedret = scrape_feed(($poll) ? $poll : $url); - - logger('probe_url: scrape_feed ' . (($poll)? $poll : $url) . ' returns: ' . print_r($feedret,true), LOGGER_DATA); - if(count($feedret) && ($feedret['feed_atom'] || $feedret['feed_rss'])) { - $poll = ((x($feedret,'feed_atom')) ? unamp($feedret['feed_atom']) : unamp($feedret['feed_rss'])); - if(! x($vcard)) - $vcard = array(); - } - - if(x($feedret,'photo') && (! x($vcard,'photo'))) - $vcard['photo'] = $feedret['photo']; - - $cookiejar = tempnam(get_temppath(), 'cookiejar-scrape-feed-'); - $xml = fetch_url($poll, false, $redirects, 0, Null, $cookiejar); - unlink($cookiejar); - - logger('probe_url: fetch feed: ' . $poll . ' returns: ' . $xml, LOGGER_DATA); - - if ($xml == "") { - logger("scrape_feed: XML is empty for feed ".$poll); - $network = NETWORK_PHANTOM; - } else { - $data = feed_import($xml,$dummy1,$dummy2, $dummy3, true); - - if (!is_array($data)) { - logger("scrape_feed: This doesn't seem to be a feed: ".$poll); - $network = NETWORK_PHANTOM; - } else { - if (($vcard["photo"] == "") AND ($data["header"]["author-avatar"] != "")) - $vcard["photo"] = $data["header"]["author-avatar"]; - - if (($vcard["fn"] == "") AND ($data["header"]["author-name"] != "")) - $vcard["fn"] = $data["header"]["author-name"]; - - if (($vcard["nick"] == "") AND ($data["header"]["author-nick"] != "")) - $vcard["nick"] = $data["header"]["author-nick"]; - - if ($network == NETWORK_OSTATUS) { - if ($data["header"]["author-id"] != "") - $alias = $data["header"]["author-id"]; - - if ($data["header"]["author-link"] != "") - $profile = $data["header"]["author-link"]; - - } elseif(!$profile AND ($data["header"]["author-link"] != "") AND !in_array($network, array("", NETWORK_FEED))) - $profile = $data["header"]["author-link"]; - } - } - - // Workaround for misconfigured Friendica servers - if (($network == "") AND (strstr($url, "/profile/"))) { - $noscrape = str_replace("/profile/", "/noscrape/", $url); - $noscrapejson = fetch_url($noscrape); - if ($noscrapejson) { - - $network = NETWORK_DFRN; - - $poco = str_replace("/profile/", "/poco/", $url); - - $noscrapedata = json_decode($noscrapejson, true); - - if (isset($noscrapedata["addr"])) - $addr = $noscrapedata["addr"]; - - if (isset($noscrapedata["fn"])) - $vcard["fn"] = $noscrapedata["fn"]; - - if (isset($noscrapedata["key"])) - $pubkey = $noscrapedata["key"]; - - if (isset($noscrapedata["photo"])) - $vcard["photo"] = $noscrapedata["photo"]; - - if (isset($noscrapedata["dfrn-request"])) - $request = $noscrapedata["dfrn-request"]; - - if (isset($noscrapedata["dfrn-confirm"])) - $confirm = $noscrapedata["dfrn-confirm"]; - - if (isset($noscrapedata["dfrn-notify"])) - $notify = $noscrapedata["dfrn-notify"]; - - if (isset($noscrapedata["dfrn-poll"])) - $poll = $noscrapedata["dfrn-poll"]; - - } - } - - if(! $network) - $network = NETWORK_FEED; - - if(! x($vcard,'nick')) { - $vcard['nick'] = strtolower(notags(unxmlify($vcard['fn']))); - if(strpos($vcard['nick'],' ')) - $vcard['nick'] = trim(substr($vcard['nick'],0,strpos($vcard['nick'],' '))); - } - if(! $priority) - $priority = 2; - } - } - - if(! x($vcard,'photo')) { - $a = get_app(); - $vcard['photo'] = App::get_baseurl() . '/images/person-175.jpg' ; - } - - if(! $profile) - $profile = $url; - - // No human could be associated with this link, use the URL as the contact name - - if(($network === NETWORK_FEED) && ($poll) && (! x($vcard,'fn'))) - $vcard['fn'] = $url; - - if (($notify != "") AND ($poll != "")) { - $baseurl = matching_url(normalise_link($notify), normalise_link($poll)); - - $baseurl2 = matching_url($baseurl, normalise_link($profile)); - if ($baseurl2 != "") - $baseurl = $baseurl2; - } - - if (($baseurl == "") AND ($notify != "")) - $baseurl = matching_url(normalise_link($profile), normalise_link($notify)); - - if (($baseurl == "") AND ($poll != "")) - $baseurl = matching_url(normalise_link($profile), normalise_link($poll)); - - if (substr($baseurl, -10) == "/index.php") - $baseurl = str_replace("/index.php", "", $baseurl); - - if ($network == "") - $network = NETWORK_PHANTOM; - - $baseurl = rtrim($baseurl, "/"); - - if(strpos($url,'@') AND ($addr == "") AND ($network == NETWORK_DFRN)) - $addr = str_replace('acct:', '', $url); - - $vcard['fn'] = notags($vcard['fn']); - $vcard['nick'] = str_replace(' ','',notags($vcard['nick'])); - - $result['name'] = $vcard['fn']; - $result['nick'] = $vcard['nick']; - $result['url'] = $profile; - $result['addr'] = $addr; - $result['batch'] = $batch; - $result['notify'] = $notify; - $result['poll'] = $poll; - $result['request'] = $request; - $result['confirm'] = $confirm; - $result['poco'] = $poco; - $result['photo'] = $vcard['photo']; - $result['priority'] = $priority; - $result['network'] = $network; - $result['alias'] = $alias; - $result['pubkey'] = $pubkey; - $result['baseurl'] = $baseurl; - - logger('probe_url: ' . print_r($result,true), LOGGER_DEBUG); - - if ($level == 1) { - // Trying if it maybe a diaspora account - if (($result['network'] == NETWORK_FEED) OR ($result['addr'] == "")) { - require_once('include/bbcode.php'); - $address = GetProfileUsername($url, "", true); - $result2 = probe_url($address, $mode, ++$level); - if (!in_array($result2['network'], array("", NETWORK_PHANTOM, NETWORK_FEED))) - $result = $result2; - } - - // Maybe it's some non standard GNU Social installation (Single user, subfolder or no uri rewrite) - if (($result['network'] == NETWORK_FEED) AND ($result['baseurl'] != "") AND ($result['nick'] != "")) { - $addr = $result['nick'].'@'.str_replace("http://", "", $result['baseurl']); - $result2 = probe_url($addr, $mode, ++$level); - if (!in_array($result2['network'], array("", NETWORK_PHANTOM, NETWORK_FEED))) - $result = $result2; - } - - // Quickfix for Hubzilla systems with enabled OStatus plugin - if (($result['network'] == NETWORK_DIASPORA) AND ($result["batch"] == "")) { - $result2 = probe_url($url, PROBE_DIASPORA, ++$level); - if ($result2['network'] == NETWORK_DIASPORA) { - $addr = $result["addr"]; - $result = $result2; - - if (($result["addr"] == "") AND ($addr != "")) - $result["addr"] = $addr; - } - } - } - - // Only store into the cache if the value seems to be valid - if ($result['network'] != NETWORK_PHANTOM) { - Cache::set("probe_url:".$mode.":".$original_url,serialize($result), CACHE_DAY); - - /// @todo temporary fix - we need a real contact update function that updates only changing fields - /// The biggest problem is the avatar picture that could have a reduced image size. - /// It should only be updated if the existing picture isn't existing anymore. - if (($result['network'] != NETWORK_FEED) AND ($mode == PROBE_NORMAL) AND - $result["name"] AND $result["nick"] AND $result["url"] AND $result["addr"] AND $result["poll"]) - q("UPDATE `contact` SET `name` = '%s', `nick` = '%s', `url` = '%s', `addr` = '%s', - `notify` = '%s', `poll` = '%s', `alias` = '%s', `success_update` = '%s' - WHERE `nurl` = '%s' AND NOT `self` AND `uid` = 0", - dbesc($result["name"]), - dbesc($result["nick"]), - dbesc($result["url"]), - dbesc($result["addr"]), - dbesc($result["notify"]), - dbesc($result["poll"]), - dbesc($result["alias"]), - dbesc(datetime_convert()), - dbesc(normalise_link($result['url'])) - ); - } - - return $result; -} - -/** - * @brief Find the matching part between two url - * - * @param string $url1 - * @param string $url2 - * @return string The matching part - */ -function matching_url($url1, $url2) { - - if (($url1 == "") OR ($url2 == "")) - return ""; - - $url1 = normalise_link($url1); - $url2 = normalise_link($url2); - - $parts1 = parse_url($url1); - $parts2 = parse_url($url2); - - if (!isset($parts1["host"]) OR !isset($parts2["host"])) - return ""; - - if ($parts1["scheme"] != $parts2["scheme"]) - return ""; - - if ($parts1["host"] != $parts2["host"]) - return ""; - - if ($parts1["port"] != $parts2["port"]) - return ""; - - $match = $parts1["scheme"]."://".$parts1["host"]; - - if ($parts1["port"]) - $match .= ":".$parts1["port"]; - - $pathparts1 = explode("/", $parts1["path"]); - $pathparts2 = explode("/", $parts2["path"]); - - $i = 0; - $path = ""; - do { - $path1 = $pathparts1[$i]; - $path2 = $pathparts2[$i]; - - if ($path1 == $path2) - $path .= $path1."/"; - - } while (($path1 == $path2) AND ($i++ <= count($pathparts1))); - - $match .= $path; - - return normalise_link($match); + return $data; } diff --git a/include/acl_selectors.php b/include/acl_selectors.php index fc3df5232..71a42478b 100644 --- a/include/acl_selectors.php +++ b/include/acl_selectors.php @@ -399,7 +399,7 @@ function acl_lookup(&$a, $out_type = 'json') { $count = (x($_REQUEST,'count') ? $_REQUEST['count'] : 100); $search = (x($_REQUEST,'search') ? $_REQUEST['search'] : ""); $type = (x($_REQUEST,'type') ? $_REQUEST['type'] : ""); - $mode = (x($_REQUEST,'mode') ? $_REQUEST['mode'] : ""); + $mode = (x($_REQUEST,'smode') ? $_REQUEST['smode'] : ""); $conv_id = (x($_REQUEST,'conversation') ? $_REQUEST['conversation'] : null); // For use with jquery.textcomplete for private mail completion @@ -481,11 +481,11 @@ function acl_lookup(&$a, $out_type = 'json') { if ($type=='' || $type=='g'){ $r = q("SELECT `group`.`id`, `group`.`name`, GROUP_CONCAT(DISTINCT `group_member`.`contact-id` SEPARATOR ',') AS uids - FROM `group`,`group_member` - WHERE `group`.`deleted` = 0 AND `group`.`uid` = %d - AND `group_member`.`gid`=`group`.`id` + FROM `group` + INNER JOIN `group_member` ON `group_member`.`gid`=`group`.`id` AND `group_member`.`uid` = `group`.`uid` + WHERE NOT `group`.`deleted` AND `group`.`uid` = %d $sql_extra - GROUP BY `group`.`id` + GROUP BY `group`.`name` ORDER BY `group`.`name` LIMIT %d,%d", intval(local_user()), @@ -690,7 +690,7 @@ function navbar_complete(&$a) { $localsearch = get_config('system','poco_local_search'); $search = $prefix.notags(trim($_REQUEST['search'])); - $mode = $_REQUEST['mode']; + $mode = $_REQUEST['smode']; // don't search if search term has less than 2 characters if(! $search || mb_strlen($search) < 2) diff --git a/include/api.php b/include/api.php index c86a3cbe4..350c6dd07 100644 --- a/include/api.php +++ b/include/api.php @@ -25,6 +25,7 @@ require_once('include/like.php'); require_once('include/NotificationsManager.php'); require_once('include/plaintext.php'); + require_once('include/xml.php'); define('API_METHOD_ANY','*'); @@ -91,7 +92,7 @@ * * Register a function to be the endpont for defined API path. * - * @param string $path API URL path, relative to $a->get_baseurl() + * @param string $path API URL path, relative to App::get_baseurl() * @param string $func Function name to call on path request * @param bool $auth API need logged user * @param string $method @@ -201,8 +202,8 @@ else { // process normal login request - $r = q("SELECT * FROM `user` WHERE ( `email` = '%s' OR `nickname` = '%s' ) - AND `password` = '%s' AND `blocked` = 0 AND `account_expired` = 0 AND `account_removed` = 0 AND `verified` = 1 LIMIT 1", + $r = q("SELECT * FROM `user` WHERE (`email` = '%s' OR `nickname` = '%s') + AND `password` = '%s' AND NOT `blocked` AND NOT `account_expired` AND NOT `account_removed` AND `verified` LIMIT 1", dbesc(trim($user)), dbesc(trim($user)), dbesc($encrypted) @@ -219,7 +220,9 @@ throw new UnauthorizedException("This API requires login"); } - authenticate_success($record); $_SESSION["allow_api"] = true; + authenticate_success($record); + + $_SESSION["allow_api"] = true; call_hooks('logged_in', $a->user); @@ -250,13 +253,12 @@ */ function api_call(&$a){ GLOBAL $API, $called_api; - + $type="json"; if (strpos($a->query_string, ".xml")>0) $type="xml"; if (strpos($a->query_string, ".json")>0) $type="json"; if (strpos($a->query_string, ".rss")>0) $type="rss"; if (strpos($a->query_string, ".atom")>0) $type="atom"; - if (strpos($a->query_string, ".as")>0) $type="as"; try { foreach ($API as $p=>$info){ if (strpos($a->query_string, $p)===0){ @@ -274,10 +276,49 @@ logger('API parameters: ' . print_r($_REQUEST,true)); $stamp = microtime(true); - $r = call_user_func($info['func'], $a, $type); + $r = call_user_func($info['func'], $type); $duration = (float)(microtime(true)-$stamp); logger("API call duration: ".round($duration, 2)."\t".$a->query_string, LOGGER_DEBUG); + if (get_config("system", "profiler")) { + logger(sprintf("Database: %s/%s, Network: %s, Rendering: %s, Session: %s, I/O: %s, Other: %s, Total: %s", + round($a->performance["database"] - $a->performance["database_write"], 3), + round($a->performance["database_write"], 3), + round($a->performance["network"], 2), + round($a->performance["rendering"], 2), + round($a->performance["parser"], 2), + round($a->performance["file"], 2), + round($duration - $a->performance["database"] + - $a->performance["network"] - $a->performance["rendering"] + - $a->performance["parser"] - $a->performance["file"], 2), + round($duration, 2)), + LOGGER_DEBUG); + + if (get_config("rendertime", "callstack")) { + $o = "Database Read:\n"; + foreach ($a->callstack["database"] AS $func => $time) { + $time = round($time, 3); + if ($time > 0) + $o .= $func.": ".$time."\n"; + } + $o .= "\nDatabase Write:\n"; + foreach ($a->callstack["database_write"] AS $func => $time) { + $time = round($time, 3); + if ($time > 0) + $o .= $func.": ".$time."\n"; + } + + $o .= "\nNetwork:\n"; + foreach ($a->callstack["network"] AS $func => $time) { + $time = round($time, 3); + if ($time > 0) + $o .= $func.": ".$time."\n"; + } + logger($o, LOGGER_DEBUG); + } + } + + if ($r===false) { // api function returned false withour throw an // exception. This should not happend, throw a 500 @@ -286,9 +327,8 @@ switch($type){ case "xml": - $r = mb_convert_encoding($r, "UTF-8",mb_detect_encoding($r)); header ("Content-Type: text/xml"); - return ''."\n".$r; + return $r; break; case "json": header ("Content-Type: application/json"); @@ -306,12 +346,6 @@ header ("Content-Type: application/atom+xml"); return ''."\n".$r; break; - case "as": - //header ("Content-Type: application/json"); - //foreach($r as $rr) - // return json_encode($rr); - return json_encode($r); - break; } } @@ -319,42 +353,46 @@ throw new NotImplementedException(); } catch (HTTPException $e) { header("HTTP/1.1 {$e->httpcode} {$e->httpdesc}"); - return api_error($a, $type, $e); + return api_error($type, $e); } } /** * @brief Format API error string * - * @param Api $a * @param string $type Return type (xml, json, rss, as) * @param HTTPException $error Error object * @return strin error message formatted as $type */ - function api_error(&$a, $type, $e) { + function api_error($type, $e) { + + $a = get_app(); + $error = ($e->getMessage()!==""?$e->getMessage():$e->httpdesc); # TODO: https://dev.twitter.com/overview/api/response-codes - $xmlstr = "{$error}{$e->httpcode} {$e->httpdesc}{$a->query_string}"; + + $error = array("error" => $error, + "code" => $e->httpcode." ".$e->httpdesc, + "request" => $a->query_string); + + $ret = api_format_data('status', $type, array('status' => $error)); + switch($type){ case "xml": header ("Content-Type: text/xml"); - return ''."\n".$xmlstr; + return $ret; break; case "json": header ("Content-Type: application/json"); - return json_encode(array( - 'error' => $error, - 'request' => $a->query_string, - 'code' => $e->httpcode." ".$e->httpdesc - )); + return json_encode($ret); break; case "rss": header ("Content-Type: application/rss+xml"); - return ''."\n".$xmlstr; + return $ret; break; case "atom": header ("Content-Type: application/atom+xml"); - return ''."\n".$xmlstr; + return $ret; break; } } @@ -372,12 +410,12 @@ $arr['$user'] = $user_info; $arr['$rss'] = array( 'alternate' => $user_info['url'], - 'self' => $a->get_baseurl(). "/". $a->query_string, - 'base' => $a->get_baseurl(), + 'self' => App::get_baseurl(). "/". $a->query_string, + 'base' => App::get_baseurl(), 'updated' => api_date(null), 'atom_updated' => datetime_convert('UTC','UTC','now',ATOM_TIME), 'language' => $user_info['language'], - 'logo' => $a->get_baseurl()."/images/friendica-32.png", + 'logo' => App::get_baseurl()."/images/friendica-32.png", ); return $arr; @@ -392,7 +430,7 @@ * Contact url or False if contact id is unknown */ function api_unique_id_to_url($id){ - $r = q("SELECT `url` FROM `gcontact` WHERE `id`=%d LIMIT 1", + $r = q("SELECT `url` FROM `contact` WHERE `uid` = 0 AND `id` = %d LIMIT 1", intval($id)); if ($r) return ($r[0]["url"]); @@ -424,7 +462,7 @@ if (api_user()!==false) $extra_query .= "AND `contact`.`uid`=".intval(api_user()); } - // Searching for unique contact id + // Searching for contact id with uid = 0 if(!is_null($contact_id) AND (intval($contact_id) != 0)){ $user = dbesc(api_unique_id_to_url($contact_id)); @@ -481,7 +519,7 @@ return False; } else { $user = $_SESSION['uid']; - $extra_query = "AND `contact`.`uid` = %d AND `contact`.`self` = 1 "; + $extra_query = "AND `contact`.`uid` = %d AND `contact`.`self` "; } } @@ -497,14 +535,16 @@ // Selecting the id by priority, friendica first api_best_nickname($uinfo); - // if the contact wasn't found, fetch it from the unique contacts + // if the contact wasn't found, fetch it from the contacts with uid = 0 if (count($uinfo)==0) { $r = array(); if ($url != "") - $r = q("SELECT * FROM `gcontact` WHERE `nurl`='%s' LIMIT 1", dbesc(normalise_link($url))); + $r = q("SELECT * FROM `contact` WHERE `uid` = 0 AND `nurl` = '%s' LIMIT 1", dbesc(normalise_link($url))); if ($r) { + $network_name = network_to_name($r[0]['network'], $r[0]['url']); + // If no nick where given, extract it from the address if (($r[0]['nick'] == "") OR ($r[0]['name'] == $r[0]['nick'])) $r[0]['nick'] = api_get_nick($r[0]["url"]); @@ -514,8 +554,10 @@ 'id_str' => (string) $r[0]["id"], 'name' => $r[0]["name"], 'screen_name' => (($r[0]['nick']) ? $r[0]['nick'] : $r[0]['name']), - 'location' => $r[0]["location"], + 'location' => ($r[0]["location"] != "") ? $r[0]["location"] : $network_name, 'description' => $r[0]["about"], + 'profile_image_url' => $r[0]["micro"], + 'profile_image_url_https' => $r[0]["micro"], 'url' => $r[0]["url"], 'protected' => false, 'followers_count' => 0, @@ -532,16 +574,13 @@ 'contributors_enabled' => false, 'is_translator' => false, 'is_translation_enabled' => false, - 'profile_image_url' => $r[0]["photo"], - 'profile_image_url_https' => $r[0]["photo"], 'following' => false, 'follow_request_sent' => false, - 'notifications' => false, 'statusnet_blocking' => false, 'notifications' => false, 'statusnet_profile_url' => $r[0]["url"], 'uid' => 0, - 'cid' => 0, + 'cid' => get_contact($r[0]["url"], api_user(), true), 'self' => 0, 'network' => $r[0]["network"], ); @@ -553,6 +592,10 @@ } if($uinfo[0]['self']) { + + if ($uinfo[0]['network'] == "") + $uinfo[0]['network'] = NETWORK_DFRN; + $usr = q("select * from user where uid = %d limit 1", intval(api_user()) ); @@ -560,24 +603,24 @@ intval(api_user()) ); - //AND `allow_cid`='' AND `allow_gid`='' AND `deny_cid`='' AND `deny_gid`=''", + // Counting is deactivated by now, due to performance issues // count public wall messages - $r = q("SELECT count(*) as `count` FROM `item` - WHERE `uid` = %d - AND `type`='wall'", - intval($uinfo[0]['uid']) - ); - $countitms = $r[0]['count']; + //$r = q("SELECT COUNT(*) as `count` FROM `item` WHERE `uid` = %d AND `wall`", + // intval($uinfo[0]['uid']) + //); + //$countitms = $r[0]['count']; + $countitms = 0; + } else { + // Counting is deactivated by now, due to performance issues + //$r = q("SELECT count(*) as `count` FROM `item` + // WHERE `contact-id` = %d", + // intval($uinfo[0]['id']) + //); + //$countitms = $r[0]['count']; + $countitms = 0; } - else { - //AND `allow_cid`='' AND `allow_gid`='' AND `deny_cid`='' AND `deny_gid`=''", - $r = q("SELECT count(*) as `count` FROM `item` - WHERE `contact-id` = %d", - intval($uinfo[0]['id']) - ); - $countitms = $r[0]['count']; - } - +/* + // Counting is deactivated by now, due to performance issues // count friends $r = q("SELECT count(*) as `count` FROM `contact` WHERE `uid` = %d AND `rel` IN ( %d, %d ) @@ -608,6 +651,10 @@ $countfollowers = 0; $starred = 0; } +*/ + $countfriends = 0; + $countfollowers = 0; + $starred = 0; // Add a nick if it isn't present there if (($uinfo[0]['nick'] == "") OR ($uinfo[0]['name'] == $uinfo[0]['nick'])) { @@ -616,12 +663,11 @@ $network_name = network_to_name($uinfo[0]['network'], $uinfo[0]['url']); - $gcontact_id = get_gcontact_id(array("url" => $uinfo[0]['url'], "network" => $uinfo[0]['network'], - "photo" => $uinfo[0]['micro'], "name" => $uinfo[0]['name'])); + $pcontact_id = get_contact($uinfo[0]['url'], 0, true); $ret = Array( - 'id' => intval($gcontact_id), - 'id_str' => (string) intval($gcontact_id), + 'id' => intval($pcontact_id), + 'id_str' => (string) intval($pcontact_id), 'name' => (($uinfo[0]['name']) ? $uinfo[0]['name'] : $uinfo[0]['nick']), 'screen_name' => (($uinfo[0]['nick']) ? $uinfo[0]['nick'] : $uinfo[0]['name']), 'location' => ($usr) ? $usr[0]['default-location'] : $network_name, @@ -632,16 +678,23 @@ 'protected' => false, 'followers_count' => intval($countfollowers), 'friends_count' => intval($countfriends), + 'listed_count' => 0, 'created_at' => api_date($uinfo[0]['created']), 'favourites_count' => intval($starred), 'utc_offset' => "0", 'time_zone' => 'UTC', - 'statuses_count' => intval($countitms), - 'following' => (($uinfo[0]['rel'] == CONTACT_IS_FOLLOWER) OR ($uinfo[0]['rel'] == CONTACT_IS_FRIEND)), + 'geo_enabled' => false, 'verified' => true, + 'statuses_count' => intval($countitms), + 'lang' => '', + 'contributors_enabled' => false, + 'is_translator' => false, + 'is_translation_enabled' => false, + 'following' => (($uinfo[0]['rel'] == CONTACT_IS_FOLLOWER) OR ($uinfo[0]['rel'] == CONTACT_IS_FRIEND)), + 'follow_request_sent' => false, 'statusnet_blocking' => false, 'notifications' => false, - //'statusnet_profile_url' => $a->get_baseurl()."/contacts/".$uinfo[0]['cid'], + //'statusnet_profile_url' => App::get_baseurl()."/contacts/".$uinfo[0]['cid'], 'statusnet_profile_url' => $uinfo[0]['url'], 'uid' => intval($uinfo[0]['uid']), 'cid' => intval($uinfo[0]['cid']), @@ -653,21 +706,16 @@ } + /** + * @brief return api-formatted array for item's author and owner + * + * @param App $a + * @param array $item : item from db + * @return array(array:author, array:owner) + */ function api_item_get_user(&$a, $item) { - // Make sure that there is an entry in the global contacts for author and owner - get_gcontact_id(array("url" => $item['author-link'], "network" => $item['network'], - "photo" => $item['author-avatar'], "name" => $item['author-name'])); - - get_gcontact_id(array("url" => $item['owner-link'], "network" => $item['network'], - "photo" => $item['owner-avatar'], "name" => $item['owner-name'])); - - // Comments in threads may appear as wall-to-wall postings. - // So only take the owner at the top posting. - if ($item["id"] == $item["parent"]) - $status_user = api_get_user($a,$item["owner-link"]); - else - $status_user = api_get_user($a,$item["author-link"]); + $status_user = api_get_user($a, $item["author-link"]); $status_user["protected"] = (($item["allow_cid"] != "") OR ($item["allow_gid"] != "") OR @@ -675,42 +723,110 @@ ($item["deny_gid"] != "") OR $item["private"]); - return ($status_user); + $owner_user = api_get_user($a, $item["owner-link"]); + + return (array($status_user, $owner_user)); } - /** - * @brief transform $data array in xml without a template + * @brief walks recursively through an array with the possibility to change value and key * - * @param array $data - * @return string xml string + * @param array $array The array to walk through + * @param string $callback The callback function + * + * @return array the transformed array */ - function api_array_to_xml($data, $ename="") { - $attrs=""; - $childs=""; - if (count($data)==1 && !is_array($data[0])) { - $ename = array_keys($data)[0]; - $v = $data[$ename]; - return "<$ename>$v"; - } - foreach($data as $k=>$v) { - $k=trim($k,'$'); - if (!is_array($v)) { - $attrs .= sprintf('%s="%s" ', $k, $v); + function api_walk_recursive(array &$array, callable $callback) { + + $new_array = array(); + + foreach ($array as $k => $v) { + if (is_array($v)) { + if ($callback($v, $k)) + $new_array[$k] = api_walk_recursive($v, $callback); } else { - if (is_numeric($k)) $k=trim($ename,'s'); - $childs.=api_array_to_xml($v, $k); + if ($callback($v, $k)) + $new_array[$k] = $v; } } - $res = $childs; - if ($ename!="") $res = "<$ename $attrs>$res"; - return $res; + $array = $new_array; + + return $array; } /** - * load api $templatename for $type and replace $data array + * @brief Callback function to transform the array in an array that can be transformed in a XML file + * + * @param variant $item Array item value + * @param string $key Array key + * + * @return boolean Should the array item be deleted? */ - function api_apply_template($templatename, $type, $data){ + function api_reformat_xml(&$item, &$key) { + if (is_bool($item)) + $item = ($item ? "true" : "false"); + + if (substr($key, 0, 10) == "statusnet_") + $key = "statusnet:".substr($key, 10); + elseif (substr($key, 0, 10) == "friendica_") + $key = "friendica:".substr($key, 10); + //else + // $key = "default:".$key; + + return true; + } + + /** + * @brief Creates the XML from a JSON style array + * + * @param array $data JSON style array + * @param string $root_element Name of the root element + * + * @return string The XML data + */ + function api_create_xml($data, $root_element) { + $childname = key($data); + $data2 = array_pop($data); + $key = key($data2); + + $namespaces = array("" => "http://api.twitter.com", + "statusnet" => "http://status.net/schema/api/1/", + "friendica" => "http://friendi.ca/schema/api/1/", + "georss" => "http://www.georss.org/georss"); + + /// @todo Auto detection of needed namespaces + if (in_array($root_element, array("ok", "hash", "config", "version", "ids", "notes", "photos"))) + $namespaces = array(); + + if (is_array($data2)) + api_walk_recursive($data2, "api_reformat_xml"); + + if ($key == "0") { + $data4 = array(); + $i = 1; + + foreach ($data2 AS $item) + $data4[$i++.":".$childname] = $item; + + $data2 = $data4; + } + + $data3 = array($root_element => $data2); + + $ret = xml::from_array($data3, $xml, false, $namespaces); + return $ret; + } + + /** + * @brief Formats the data according to the data type + * + * @param string $root_element Name of the root element + * @param string $type Return type (atom, rss, xml, json) + * @param array $data JSON style array + * + * @return (string|object) XML data or JSON data + */ + function api_format_data($root_element, $type, $data){ $a = get_app(); @@ -718,18 +834,7 @@ case "atom": case "rss": case "xml": - $data = array_xmlify($data); - if ($templatename==="") { - $ret = api_array_to_xml($data); - } else { - $tpl = get_markup_template("api_".$templatename."_".$type.".tpl"); - if(! $tpl) { - header ("Content-Type: text/xml"); - echo ''."\n".'not implemented'; - killme(); - } - $ret = replace_macros($tpl, $data); - } + $ret = api_create_xml($data, $root_element); break; case "json": $ret = $data; @@ -748,7 +853,10 @@ * 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(&$a, $type){ + function api_account_verify_credentials($type){ + + $a = get_app(); + if (api_user()===false) throw new ForbiddenException(); unset($_REQUEST["user_id"]); @@ -766,7 +874,7 @@ // - Adding last status if (!$skip_status) { - $user_info["status"] = api_status_show($a,"raw"); + $user_info["status"] = api_status_show("raw"); if (!count($user_info["status"])) unset($user_info["status"]); else @@ -777,7 +885,7 @@ unset($user_info["uid"]); unset($user_info["self"]); - return api_apply_template("user", $type, array('$user' => $user_info)); + return api_format_data("user", $type, array('user' => $user_info)); } api_register_func('api/account/verify_credentials','api_account_verify_credentials', true); @@ -797,7 +905,10 @@ } /*Waitman Gobble Mod*/ - function api_statuses_mediap(&$a, $type) { + function api_statuses_mediap($type) { + + $a = get_app(); + if (api_user()===false) { logger('api_statuses_update: no user'); throw new ForbiddenException(); @@ -830,13 +941,16 @@ item_post($a); // this should output the last post (the one we just posted). - return api_status_show($a,$type); + return api_status_show($type); } api_register_func('api/statuses/mediap','api_statuses_mediap', true, API_METHOD_POST); /*Waitman Gobble Mod*/ - function api_statuses_update(&$a, $type) { + function api_statuses_update($type) { + + $a = get_app(); + if (api_user()===false) { logger('api_statuses_update: no user'); throw new ForbiddenException(); @@ -901,7 +1015,7 @@ if ($posts_day > $throttle_day) { logger('Daily posting limit reached for user '.api_user(), LOGGER_DEBUG); - #die(api_error($a, $type, sprintf(t("Daily posting limit of %d posts reached. The post was rejected."), $throttle_day))); + #die(api_error($type, sprintf(t("Daily posting limit of %d posts reached. The post was rejected."), $throttle_day))); throw new TooManyRequestsException(sprintf(t("Daily posting limit of %d posts reached. The post was rejected."), $throttle_day)); } } @@ -921,7 +1035,7 @@ if ($posts_week > $throttle_week) { logger('Weekly posting limit reached for user '.api_user(), LOGGER_DEBUG); - #die(api_error($a, $type, sprintf(t("Weekly posting limit of %d posts reached. The post was rejected."), $throttle_week))); + #die(api_error($type, sprintf(t("Weekly posting limit of %d posts reached. The post was rejected."), $throttle_week))); throw new TooManyRequestsException(sprintf(t("Weekly posting limit of %d posts reached. The post was rejected."), $throttle_week)); } @@ -942,7 +1056,7 @@ if ($posts_month > $throttle_month) { logger('Monthly posting limit reached for user '.api_user(), LOGGER_DEBUG); - #die(api_error($a, $type, sprintf(t("Monthly posting limit of %d posts reached. The post was rejected."), $throttle_month))); + #die(api_error($type, sprintf(t("Monthly posting limit of %d posts reached. The post was rejected."), $throttle_month))); throw new TooManyRequestsException(sprintf(t("Monthly posting limit of %d posts reached. The post was rejected."), $throttle_month)); } } @@ -965,8 +1079,8 @@ if ($r) { $phototypes = Photo::supportedTypes(); $ext = $phototypes[$r[0]['type']]; - $_REQUEST['body'] .= "\n\n".'[url='.$a->get_baseurl().'/photos/'.$r[0]['nickname'].'/image/'.$r[0]['resource-id'].']'; - $_REQUEST['body'] .= '[img]'.$a->get_baseurl()."/photo/".$r[0]['resource-id']."-".$r[0]['scale'].".".$ext."[/img][/url]"; + $_REQUEST['body'] .= "\n\n".'[url='.App::get_baseurl().'/photos/'.$r[0]['nickname'].'/image/'.$r[0]['resource-id'].']'; + $_REQUEST['body'] .= '[img]'.App::get_baseurl()."/photo/".$r[0]['resource-id']."-".$r[0]['scale'].".".$ext."[/img][/url]"; } } @@ -982,13 +1096,16 @@ item_post($a); // this should output the last post (the one we just posted). - return api_status_show($a,$type); + return api_status_show($type); } api_register_func('api/statuses/update','api_statuses_update', true, API_METHOD_POST); api_register_func('api/statuses/update_with_media','api_statuses_update', true, API_METHOD_POST); - function api_media_upload(&$a, $type) { + function api_media_upload($type) { + + $a = get_app(); + if (api_user()===false) { logger('no user'); throw new ForbiddenException(); @@ -1021,7 +1138,10 @@ } api_register_func('api/media/upload','api_media_upload', true, API_METHOD_POST); - function api_status_show(&$a, $type){ + function api_status_show($type){ + + $a = get_app(); + $user_info = api_get_user($a); logger('api_status_show: user_info: '.print_r($user_info, true), LOGGER_DEBUG); @@ -1032,13 +1152,12 @@ $privacy_sql = ""; // get last public wall message - $lastwall = q("SELECT `item`.*, `i`.`contact-id` as `reply_uid`, `i`.`author-link` AS `item-author` - FROM `item`, `item` as `i` + $lastwall = q("SELECT `item`.* + FROM `item` WHERE `item`.`contact-id` = %d AND `item`.`uid` = %d AND ((`item`.`author-link` IN ('%s', '%s')) OR (`item`.`owner-link` IN ('%s', '%s'))) - AND `i`.`id` = `item`.`parent` - AND `item`.`type`!='activity' $privacy_sql - ORDER BY `item`.`created` DESC + AND `item`.`type` != 'activity' $privacy_sql + ORDER BY `item`.`id` DESC LIMIT 1", intval($user_info['cid']), intval(api_user()), @@ -1051,40 +1170,15 @@ if (count($lastwall)>0){ $lastwall = $lastwall[0]; - $in_reply_to_status_id = NULL; - $in_reply_to_user_id = NULL; - $in_reply_to_status_id_str = NULL; - $in_reply_to_user_id_str = NULL; - $in_reply_to_screen_name = NULL; - if (intval($lastwall['parent']) != intval($lastwall['id'])) { - $in_reply_to_status_id= intval($lastwall['parent']); - $in_reply_to_status_id_str = (string) intval($lastwall['parent']); - - $r = q("SELECT * FROM `gcontact` WHERE `nurl` = '%s'", dbesc(normalise_link($lastwall['item-author']))); - if ($r) { - if ($r[0]['nick'] == "") - $r[0]['nick'] = api_get_nick($r[0]["url"]); - - $in_reply_to_screen_name = (($r[0]['nick']) ? $r[0]['nick'] : $r[0]['name']); - $in_reply_to_user_id = intval($r[0]['id']); - $in_reply_to_user_id_str = (string) intval($r[0]['id']); - } - } - - // There seems to be situation, where both fields are identical: - // https://github.com/friendica/friendica/issues/1010 - // This is a bugfix for that. - if (intval($in_reply_to_status_id) == intval($lastwall['id'])) { - logger('api_status_show: this message should never appear: id: '.$lastwall['id'].' similar to reply-to: '.$in_reply_to_status_id, LOGGER_DEBUG); - $in_reply_to_status_id = NULL; - $in_reply_to_user_id = NULL; - $in_reply_to_status_id_str = NULL; - $in_reply_to_user_id_str = NULL; - $in_reply_to_screen_name = NULL; - } + $in_reply_to = api_in_reply_to($lastwall); $converted = api_convert_item($lastwall); + if ($type == "xml") + $geo = "georss:point"; + else + $geo = "geo"; + $status_info = array( 'created_at' => api_date($lastwall['created']), 'id' => intval($lastwall['id']), @@ -1092,13 +1186,13 @@ 'text' => $converted["text"], 'source' => (($lastwall['app']) ? $lastwall['app'] : 'web'), 'truncated' => false, - 'in_reply_to_status_id' => $in_reply_to_status_id, - 'in_reply_to_status_id_str' => $in_reply_to_status_id_str, - 'in_reply_to_user_id' => $in_reply_to_user_id, - 'in_reply_to_user_id_str' => $in_reply_to_user_id_str, - 'in_reply_to_screen_name' => $in_reply_to_screen_name, + 'in_reply_to_status_id' => $in_reply_to['status_id'], + 'in_reply_to_status_id_str' => $in_reply_to['status_id_str'], + 'in_reply_to_user_id' => $in_reply_to['user_id'], + 'in_reply_to_user_id_str' => $in_reply_to['user_id_str'], + 'in_reply_to_screen_name' => $in_reply_to['screen_name'], 'user' => $user_info, - 'geo' => NULL, + $geo => NULL, 'coordinates' => "", 'place' => "", 'contributors' => "", @@ -1134,7 +1228,7 @@ if ($type == "raw") return($status_info); - return api_apply_template("status", $type, array('$status' => $status_info)); + return api_format_data("statuses", $type, array('status' => $status_info)); } @@ -1147,17 +1241,19 @@ * The author's most recent status will be returned inline. * http://developer.twitter.com/doc/get/users/show */ - function api_users_show(&$a, $type){ - $user_info = api_get_user($a); + function api_users_show($type){ + $a = get_app(); + + $user_info = api_get_user($a); $lastwall = q("SELECT `item`.* - FROM `item`, `contact` + FROM `item` + INNER JOIN `contact` ON `contact`.`id`=`item`.`contact-id` AND `contact`.`uid` = `item`.`uid` WHERE `item`.`uid` = %d AND `verb` = '%s' AND `item`.`contact-id` = %d AND ((`item`.`author-link` IN ('%s', '%s')) OR (`item`.`owner-link` IN ('%s', '%s'))) - AND `contact`.`id`=`item`.`contact-id` AND `type`!='activity' AND `item`.`allow_cid`='' AND `item`.`allow_gid`='' AND `item`.`deny_cid`='' AND `item`.`deny_gid`='' - ORDER BY `created` DESC + ORDER BY `id` DESC LIMIT 1", intval(api_user()), dbesc(ACTIVITY_POST), @@ -1167,48 +1263,32 @@ dbesc($user_info['url']), dbesc(normalise_link($user_info['url'])) ); + if (count($lastwall)>0){ $lastwall = $lastwall[0]; - $in_reply_to_status_id = NULL; - $in_reply_to_user_id = NULL; - $in_reply_to_status_id_str = NULL; - $in_reply_to_user_id_str = NULL; - $in_reply_to_screen_name = NULL; - if ($lastwall['parent']!=$lastwall['id']) { - $reply = q("SELECT `item`.`id`, `item`.`contact-id` as `reply_uid`, `contact`.`nick` as `reply_author`, `item`.`author-link` AS `item-author` - FROM `item`,`contact` WHERE `contact`.`id`=`item`.`contact-id` AND `item`.`id` = %d", intval($lastwall['parent'])); - if (count($reply)>0) { - $in_reply_to_status_id = intval($lastwall['parent']); - $in_reply_to_status_id_str = (string) intval($lastwall['parent']); - - $r = q("SELECT * FROM `gcontact` WHERE `nurl` = '%s'", dbesc(normalise_link($reply[0]['item-author']))); - if ($r) { - if ($r[0]['nick'] == "") - $r[0]['nick'] = api_get_nick($r[0]["url"]); - - $in_reply_to_screen_name = (($r[0]['nick']) ? $r[0]['nick'] : $r[0]['name']); - $in_reply_to_user_id = intval($r[0]['id']); - $in_reply_to_user_id_str = (string) intval($r[0]['id']); - } - } - } + $in_reply_to = api_in_reply_to($lastwall); $converted = api_convert_item($lastwall); + if ($type == "xml") + $geo = "georss:point"; + else + $geo = "geo"; + $user_info['status'] = array( 'text' => $converted["text"], 'truncated' => false, 'created_at' => api_date($lastwall['created']), - 'in_reply_to_status_id' => $in_reply_to_status_id, - 'in_reply_to_status_id_str' => $in_reply_to_status_id_str, + 'in_reply_to_status_id' => $in_reply_to['status_id'], + 'in_reply_to_status_id_str' => $in_reply_to['status_id_str'], 'source' => (($lastwall['app']) ? $lastwall['app'] : 'web'), 'id' => intval($lastwall['contact-id']), 'id_str' => (string) $lastwall['contact-id'], - 'in_reply_to_user_id' => $in_reply_to_user_id, - 'in_reply_to_user_id_str' => $in_reply_to_user_id_str, - 'in_reply_to_screen_name' => $in_reply_to_screen_name, - 'geo' => NULL, + 'in_reply_to_user_id' => $in_reply_to['user_id'], + 'in_reply_to_user_id_str' => $in_reply_to['user_id_str'], + 'in_reply_to_screen_name' => $in_reply_to['screen_name'], + $geo => NULL, 'favorited' => $lastwall['starred'] ? true : false, 'statusnet_html' => $converted["html"], 'statusnet_conversation_id' => $lastwall['parent'], @@ -1231,28 +1311,34 @@ unset($user_info["uid"]); unset($user_info["self"]); - return api_apply_template("user", $type, array('$user' => $user_info)); + return api_format_data("user", $type, array('user' => $user_info)); } api_register_func('api/users/show','api_users_show'); - function api_users_search(&$a, $type) { + function api_users_search($type) { + + $a = get_app(); + $page = (x($_REQUEST,'page')?$_REQUEST['page']-1:0); $userlist = array(); if (isset($_GET["q"])) { - $r = q("SELECT id FROM `gcontact` WHERE `name`='%s'", dbesc($_GET["q"])); + $r = q("SELECT id FROM `contact` WHERE `uid` = 0 AND `name` = '%s'", dbesc($_GET["q"])); if (!count($r)) - $r = q("SELECT `id` FROM `gcontact` WHERE `nick`='%s'", dbesc($_GET["q"])); + $r = q("SELECT `id` FROM `contact` WHERE `uid` = 0 AND `nick` = '%s'", dbesc($_GET["q"])); if (count($r)) { + $k = 0; foreach ($r AS $user) { - $user_info = api_get_user($a, $user["id"]); - //echo print_r($user_info, true)."\n"; - $userdata = api_apply_template("user", $type, array('user' => $user_info)); - $userlist[] = $userdata["user"]; + $user_info = api_get_user($a, $user["id"], "json"); + + if ($type == "xml") + $userlist[$k++.":user"] = $user_info; + else + $userlist[] = $user_info; } $userlist = array("users" => $userlist); } else { @@ -1261,7 +1347,7 @@ } else { throw new BadRequestException("User not found."); } - return ($userlist); + return api_format_data("users", $type, $userlist); } api_register_func('api/users/search','api_users_search'); @@ -1273,7 +1359,10 @@ * TODO: Optional parameters * TODO: Add reply info */ - function api_statuses_home_timeline(&$a, $type){ + function api_statuses_home_timeline($type){ + + $a = get_app(); + if (api_user()===false) throw new ForbiddenException(); unset($_REQUEST["user_id"]); @@ -1285,7 +1374,6 @@ $user_info = api_get_user($a); // get last newtork messages - // params $count = (x($_REQUEST,'count')?$_REQUEST['count']:20); $page = (x($_REQUEST,'page')?$_REQUEST['page']-1:0); @@ -1306,15 +1394,15 @@ if ($conversation_id > 0) $sql_extra .= ' AND `item`.`parent` = '.intval($conversation_id); - $r = q("SELECT STRAIGHT_JOIN `item`.*, `item`.`id` AS `item_id`, `item`.`network` AS `item_network`, + $r = q("SELECT `item`.*, `item`.`id` AS `item_id`, `item`.`network` AS `item_network`, `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`, `contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`, `contact`.`id` AS `cid` - FROM `item`, `contact` + FROM `item` + STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND `contact`.`uid` = `item`.`uid` + AND NOT `contact`.`blocked` AND NOT `contact`.`pending` WHERE `item`.`uid` = %d AND `verb` = '%s' - 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 + AND `item`.`visible` AND NOT `item`.`moderated` AND NOT `item`.`deleted` $sql_extra AND `item`.`id`>%d ORDER BY `item`.`id` DESC LIMIT %d ,%d ", @@ -1324,7 +1412,7 @@ intval($start), intval($count) ); - $ret = api_format_items($r,$user_info); + $ret = api_format_items($r,$user_info, false, $type); // Set all posts from the query above to seen $idarray = array(); @@ -1340,26 +1428,23 @@ $r = q("UPDATE `item` SET `unseen` = 0 WHERE `unseen` AND `id` IN (%s)", $idlist); } - $data = array('$statuses' => $ret); + $data = array('status' => $ret); switch($type){ case "atom": case "rss": $data = api_rss_extra($a, $data, $user_info); break; - case "as": - $as = api_format_as($a, $ret, $user_info); - $as['title'] = $a->config['sitename']." Home Timeline"; - $as['link']['url'] = $a->get_baseurl()."/".$user_info["screen_name"]."/all"; - return($as); - break; } - return api_apply_template("timeline", $type, $data); + return api_format_data("statuses", $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(&$a, $type){ + function api_statuses_public_timeline($type){ + + $a = get_app(); + if (api_user()===false) throw new ForbiddenException(); $user_info = api_get_user($a); @@ -1390,13 +1475,15 @@ `contact`.`network`, `contact`.`thumb`, `contact`.`self`, `contact`.`writable`, `contact`.`id` AS `cid`, `user`.`nickname`, `user`.`hidewall` - FROM `item` STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`contact-id` + FROM `item` + STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND `contact`.`uid` = `item`.`uid` + AND NOT `contact`.`blocked` AND NOT `contact`.`pending` STRAIGHT_JOIN `user` ON `user`.`uid` = `item`.`uid` - WHERE `verb` = '%s' AND `item`.`visible` = 1 AND `item`.`deleted` = 0 and `item`.`moderated` = 0 + AND NOT `user`.`hidewall` + WHERE `verb` = '%s' AND `item`.`visible` AND NOT `item`.`deleted` AND NOT `item`.`moderated` AND `item`.`allow_cid` = '' AND `item`.`allow_gid` = '' AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = '' - AND `item`.`private` = 0 AND `item`.`wall` = 1 AND `user`.`hidewall` = 0 - AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 + AND NOT `item`.`private` AND `item`.`wall` $sql_extra AND `item`.`id`>%d ORDER BY `item`.`id` DESC LIMIT %d, %d ", @@ -1405,31 +1492,28 @@ intval($start), intval($count)); - $ret = api_format_items($r,$user_info); + $ret = api_format_items($r,$user_info, false, $type); - $data = array('$statuses' => $ret); + $data = array('status' => $ret); switch($type){ case "atom": case "rss": $data = api_rss_extra($a, $data, $user_info); break; - case "as": - $as = api_format_as($a, $ret, $user_info); - $as['title'] = $a->config['sitename']." Public Timeline"; - $as['link']['url'] = $a->get_baseurl()."/"; - return($as); - break; } - return api_apply_template("timeline", $type, $data); + return api_format_data("statuses", $type, $data); } api_register_func('api/statuses/public_timeline','api_statuses_public_timeline', true); /** * */ - function api_statuses_show(&$a, $type){ + function api_statuses_show($type){ + + $a = get_app(); + if (api_user()===false) throw new ForbiddenException(); $user_info = api_get_user($a); @@ -1450,7 +1534,7 @@ $sql_extra = ''; if ($conversation) - $sql_extra .= " AND `item`.`parent` = %d ORDER BY `received` ASC "; + $sql_extra .= " AND `item`.`parent` = %d ORDER BY `id` ASC "; else $sql_extra .= " AND `item`.`id` = %d"; @@ -1458,10 +1542,11 @@ `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`, `contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`, `contact`.`id` AS `cid` - FROM `item`, `contact` - WHERE `item`.`visible` = 1 and `item`.`moderated` = 0 AND `item`.`deleted` = 0 - AND `contact`.`id` = `item`.`contact-id` AND `item`.`uid` = %d AND `item`.`verb` = '%s' - AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 + FROM `item` + INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND `contact`.`uid` = `item`.`uid` + AND NOT `contact`.`blocked` AND NOT `contact`.`pending` + WHERE `item`.`visible` AND NOT `item`.`moderated` AND NOT `item`.`deleted` + AND `item`.`uid` = %d AND `item`.`verb` = '%s' $sql_extra", intval(api_user()), dbesc(ACTIVITY_POST), @@ -1472,19 +1557,14 @@ throw new BadRequestException("There is no status with this id."); } - $ret = api_format_items($r,$user_info); + $ret = api_format_items($r,$user_info, false, $type); if ($conversation) { - $data = array('$statuses' => $ret); - return api_apply_template("timeline", $type, $data); + $data = array('status' => $ret); + return api_format_data("statuses", $type, $data); } else { - $data = array('$status' => $ret[0]); - /*switch($type){ - case "atom": - case "rss": - $data = api_rss_extra($a, $data, $user_info); - }*/ - return api_apply_template("status", $type, $data); + $data = array('status' => $ret[0]); + return api_format_data("status", $type, $data); } } api_register_func('api/statuses/show','api_statuses_show', true); @@ -1493,7 +1573,10 @@ /** * */ - function api_conversation_show(&$a, $type){ + function api_conversation_show($type){ + + $a = get_app(); + if (api_user()===false) throw new ForbiddenException(); $user_info = api_get_user($a); @@ -1536,11 +1619,11 @@ `contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`, `contact`.`id` AS `cid` FROM `item` - INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id` + STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND `contact`.`uid` = `item`.`uid` + AND NOT `contact`.`blocked` AND NOT `contact`.`pending` WHERE `item`.`parent` = %d AND `item`.`visible` AND NOT `item`.`moderated` AND NOT `item`.`deleted` AND `item`.`uid` = %d AND `item`.`verb` = '%s' - AND NOT `contact`.`blocked` AND NOT `contact`.`pending` AND `item`.`id`>%d $sql_extra ORDER BY `item`.`id` DESC LIMIT %d ,%d", intval($id), intval(api_user()), @@ -1552,10 +1635,10 @@ if (!$r) throw new BadRequestException("There is no conversation with this id."); - $ret = api_format_items($r,$user_info); + $ret = api_format_items($r,$user_info, false, $type); - $data = array('$statuses' => $ret); - return api_apply_template("timeline", $type, $data); + $data = array('status' => $ret); + return api_format_data("statuses", $type, $data); } api_register_func('api/conversation/show','api_conversation_show', true); api_register_func('api/statusnet/conversation','api_conversation_show', true); @@ -1564,9 +1647,11 @@ /** * */ - function api_statuses_repeat(&$a, $type){ + function api_statuses_repeat($type){ global $called_api; + $a = get_app(); + if (api_user()===false) throw new ForbiddenException(); $user_info = api_get_user($a); @@ -1587,10 +1672,10 @@ `contact`.`name`, `contact`.`photo` as `reply_photo`, `contact`.`url` as `reply_url`, `contact`.`rel`, `contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`, `contact`.`id` AS `cid` - FROM `item`, `contact` - WHERE `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 + FROM `item` + INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND `contact`.`uid` = `item`.`uid` + AND NOT `contact`.`blocked` AND NOT `contact`.`pending` + WHERE `item`.`visible` AND NOT `item`.`moderated` AND NOT `item`.`deleted` AND NOT `item`.`private` AND `item`.`allow_cid` = '' AND `item`.`allow`.`gid` = '' AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = '' $sql_extra @@ -1626,14 +1711,17 @@ // this should output the last post (the one we just posted). $called_api = null; - return(api_status_show($a,$type)); + return(api_status_show($type)); } api_register_func('api/statuses/retweet','api_statuses_repeat', true, API_METHOD_POST); /** * */ - function api_statuses_destroy(&$a, $type){ + function api_statuses_destroy($type){ + + $a = get_app(); + if (api_user()===false) throw new ForbiddenException(); $user_info = api_get_user($a); @@ -1650,7 +1738,7 @@ logger('API: api_statuses_destroy: '.$id); - $ret = api_statuses_show($a, $type); + $ret = api_statuses_show($type); drop_item($id, false); @@ -1663,7 +1751,10 @@ * http://developer.twitter.com/doc/get/statuses/mentions * */ - function api_statuses_mentions(&$a, $type){ + function api_statuses_mentions($type){ + + $a = get_app(); + if (api_user()===false) throw new ForbiddenException(); unset($_REQUEST["user_id"]); @@ -1687,7 +1778,7 @@ $start = $page*$count; // Ugly code - should be changed - $myurl = $a->get_baseurl() . '/profile/'. $a->user['nickname']; + $myurl = App::get_baseurl() . '/profile/'. $a->user['nickname']; $myurl = substr($myurl,strpos($myurl,'://')+3); //$myurl = str_replace(array('www.','.'),array('','\\.'),$myurl); $myurl = str_replace('www.','',$myurl); @@ -1700,12 +1791,12 @@ `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`, `contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`, `contact`.`id` AS `cid` - FROM `item` FORCE INDEX (`uid_id`), `contact` + FROM `item` FORCE INDEX (`uid_id`) + STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND `contact`.`uid` = `item`.`uid` + AND NOT `contact`.`blocked` AND NOT `contact`.`pending` WHERE `item`.`uid` = %d AND `verb` = '%s' AND NOT (`item`.`author-link` IN ('https://%s', 'http://%s')) AND `item`.`visible` AND NOT `item`.`moderated` AND NOT `item`.`deleted` - AND `contact`.`id` = `item`.`contact-id` - AND NOT `contact`.`blocked` AND NOT `contact`.`pending` AND `item`.`parent` IN (SELECT `iid` FROM `thread` WHERE `uid` = %d AND `mention` AND !`ignored`) $sql_extra AND `item`.`id`>%d @@ -1719,30 +1810,27 @@ intval($start), intval($count) ); - $ret = api_format_items($r,$user_info); + $ret = api_format_items($r,$user_info, false, $type); - $data = array('$statuses' => $ret); + $data = array('status' => $ret); switch($type){ case "atom": case "rss": $data = api_rss_extra($a, $data, $user_info); break; - case "as": - $as = api_format_as($a, $ret, $user_info); - $as["title"] = $a->config['sitename']." Mentions"; - $as['link']['url'] = $a->get_baseurl()."/"; - return($as); - break; } - return api_apply_template("timeline", $type, $data); + return api_format_data("statuses", $type, $data); } api_register_func('api/statuses/mentions','api_statuses_mentions', true); api_register_func('api/statuses/replies','api_statuses_mentions', true); - function api_statuses_user_timeline(&$a, $type){ + function api_statuses_user_timeline($type){ + + $a = get_app(); + if (api_user()===false) throw new ForbiddenException(); $user_info = api_get_user($a); @@ -1777,12 +1865,12 @@ `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`, `contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`, `contact`.`id` AS `cid` - FROM `item`, `contact` + FROM `item` FORCE INDEX (`uid_contactid_id`) + STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND `contact`.`uid` = `item`.`uid` + AND NOT `contact`.`blocked` AND NOT `contact`.`pending` WHERE `item`.`uid` = %d AND `verb` = '%s' 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 + AND `item`.`visible` AND NOT `item`.`moderated` AND NOT `item`.`deleted` $sql_extra AND `item`.`id`>%d ORDER BY `item`.`id` DESC LIMIT %d ,%d ", @@ -1793,16 +1881,16 @@ intval($start), intval($count) ); - $ret = api_format_items($r,$user_info, true); + $ret = api_format_items($r,$user_info, true, $type); - $data = array('$statuses' => $ret); + $data = array('status' => $ret); switch($type){ case "atom": case "rss": $data = api_rss_extra($a, $data, $user_info); } - return api_apply_template("timeline", $type, $data); + return api_format_data("statuses", $type, $data); } api_register_func('api/statuses/user_timeline','api_statuses_user_timeline', true); @@ -1813,7 +1901,10 @@ * * api v1 : https://web.archive.org/web/20131019055350/https://dev.twitter.com/docs/api/1/post/favorites/create/%3Aid */ - function api_favorites_create_destroy(&$a, $type){ + function api_favorites_create_destroy($type){ + + $a = get_app(); + if (api_user()===false) throw new ForbiddenException(); // for versioned api. @@ -1856,24 +1947,26 @@ $user_info = api_get_user($a); - $rets = api_format_items($item,$user_info); + $rets = api_format_items($item, $user_info, false, $type); $ret = $rets[0]; - $data = array('$status' => $ret); + $data = array('status' => $ret); switch($type){ case "atom": case "rss": $data = api_rss_extra($a, $data, $user_info); } - return api_apply_template("status", $type, $data); + return api_format_data("status", $type, $data); } api_register_func('api/favorites/create', 'api_favorites_create_destroy', true, API_METHOD_POST); api_register_func('api/favorites/destroy', 'api_favorites_create_destroy', true, API_METHOD_DELETE); - function api_favorites(&$a, $type){ + function api_favorites($type){ global $called_api; + $a = get_app(); + if (api_user()===false) throw new ForbiddenException(); $called_api= array(); @@ -1919,88 +2012,21 @@ intval($start), intval($count) ); - $ret = api_format_items($r,$user_info); + $ret = api_format_items($r,$user_info, false, $type); } - $data = array('$statuses' => $ret); + $data = array('status' => $ret); switch($type){ case "atom": case "rss": $data = api_rss_extra($a, $data, $user_info); } - return api_apply_template("timeline", $type, $data); + return api_format_data("statuses", $type, $data); } api_register_func('api/favorites','api_favorites', true); - - - - function api_format_as($a, $ret, $user_info) { - $as = array(); - $as['title'] = $a->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'] = $a->get_baseurl()."/".$user_info["screen_name"]."/all"; - $as['link']['rel'] = "alternate"; - $as['link']['type'] = "text/html"; - return($as); - } - function api_format_messages($item, $recipient, $sender) { // standard meta information $ret=Array( @@ -2013,6 +2039,9 @@ 'recipient_screen_name' => $recipient['screen_name'], 'sender' => $sender, 'recipient' => $recipient, + 'title' => "", + 'friendica_seen' => $item['seen'], + 'friendica_parent_uri' => $item['parent-uri'], ); // "uid" and "self" are only needed for some internal stuff, so remove it from here @@ -2044,7 +2073,6 @@ } function api_convert_item($item) { - $body = $item['body']; $attachments = api_get_attachments($body); @@ -2082,7 +2110,12 @@ $entities = api_get_entitities($statustext, $body); - return(array("text" => $statustext, "html" => $statushtml, "attachments" => $attachments, "entities" => $entities)); + return array( + "text" => $statustext, + "html" => $statushtml, + "attachments" => $attachments, + "entities" => $entities + ); } function api_get_attachments(&$body) { @@ -2267,16 +2300,42 @@ return($entities); } function api_format_items_embeded_images(&$item, $text){ - $a = get_app(); $text = preg_replace_callback( "|data:image/([^;]+)[^=]+=*|m", - function($match) use ($a, $item) { - return $a->get_baseurl()."/display/".$item['guid']; + function($match) use ($item) { + return App::get_baseurl()."/display/".$item['guid']; }, $text); return $text; } + + /** + * @brief return name as array + * + * @param string $txt + * @return array + * name => 'name' + * 'url => 'url' + */ + function api_contactlink_to_array($txt) { + $match = array(); + $r = preg_match_all('|([^<]*)|', $txt, $match); + if ($r && count($match)==3) { + $res = array( + 'name' => $match[2], + 'url' => $match[1] + ); + } else { + $res = array( + 'name' => $text, + 'url' => "" + ); + } + return $res; + } + + /** * @brief return likes, dislikes and attend status for item * @@ -2285,7 +2344,7 @@ * likes => int count * dislikes => int count */ - function api_format_items_likes(&$item) { + function api_format_items_activities(&$item, $type = "json") { $activities = array( 'like' => array(), 'dislike' => array(), @@ -2293,21 +2352,107 @@ 'attendno' => array(), 'attendmaybe' => array() ); + $items = q('SELECT * FROM item WHERE uid=%d AND `thr-parent`="%s" AND visible AND NOT deleted', intval($item['uid']), dbesc($item['uri'])); + foreach ($items as $i){ - builtin_activity_puller($i, $activities); + // not used as result should be structured like other user data + //builtin_activity_puller($i, $activities); + + // get user data and add it to the array of the activity + $user = api_get_user($a, $i['author-link']); + switch($i['verb']) { + case ACTIVITY_LIKE: + $activities['like'][] = $user; + break; + case ACTIVITY_DISLIKE: + $activities['dislike'][] = $user; + break; + case ACTIVITY_ATTEND: + $activities['attendyes'][] = $user; + break; + case ACTIVITY_ATTENDNO: + $activities['attendno'][] = $user; + break; + case ACTIVITY_ATTENDMAYBE: + $activities['attendmaybe'][] = $user; + break; + default: + break; + } } - $res = array(); - $uri = $item['uri']; - foreach($activities as $k => $v) { - $res[$k] = (x($v,$uri)?$v[$uri]:0); + if ($type == "xml") { + $xml_activities = array(); + foreach ($activities as $k => $v) { + // change xml element from "like" to "friendica:like" + $xml_activities["friendica:".$k] = $v; + // add user data into xml output + $k_user = 0; + foreach ($v as $user) + $xml_activities["friendica:".$k][$k_user++.":user"] = $user; + } + $activities = $xml_activities; } - return $res; + return $activities; + + } + + + /** + * @brief return data from profiles + * + * @param array $profile array containing data from db table 'profile' + * @param string $type Known types are 'atom', 'rss', 'xml' and 'json' + * @return array + */ + function api_format_items_profiles(&$profile = null, $type = "json") { + if ($profile != null) { + $profile = array('profile_id' => $profile['id'], + 'profile_name' => $profile['profile-name'], + 'is_default' => $profile['is-default'] ? true : false, + 'hide_friends'=> $profile['hide-friends'] ? true : false, + 'profile_photo' => $profile['photo'], + 'profile_thumb' => $profile['thumb'], + 'publish' => $profile['publish'] ? true : false, + 'net_publish' => $profile['net-publish'] ? true : false, + 'description' => $profile['pdesc'], + 'date_of_birth' => $profile['dob'], + 'address' => $profile['address'], + 'city' => $profile['locality'], + 'region' => $profile['region'], + 'postal_code' => $profile['postal-code'], + 'country' => $profile['country-name'], + 'hometown' => $profile['hometown'], + 'gender' => $profile['gender'], + 'marital' => $profile['marital'], + 'marital_with' => $profile['with'], + 'marital_since' => $profile['howlong'], + 'sexual' => $profile['sexual'], + 'politic' => $profile['politic'], + 'religion' => $profile['religion'], + 'public_keywords' => $profile['pub_keywords'], + 'private_keywords' => $profile['prv_keywords'], + 'likes' => bbcode(api_clean_plain_items($profile['likes']), false, false, 2, true), + 'dislikes' => bbcode(api_clean_plain_items($profile['dislikes']), false, false, 2, true), + 'about' => bbcode(api_clean_plain_items($profile['about']), false, false, 2, true), + 'music' => bbcode(api_clean_plain_items($profile['music']), false, false, 2, true), + 'book' => bbcode(api_clean_plain_items($profile['book']), false, false, 2, true), + 'tv' => bbcode(api_clean_plain_items($profile['tv']), false, false, 2, true), + 'film' => bbcode(api_clean_plain_items($profile['film']), false, false, 2, true), + 'interest' => bbcode(api_clean_plain_items($profile['interest']), false, false, 2, true), + 'romance' => bbcode(api_clean_plain_items($profile['romance']), false, false, 2, true), + 'work' => bbcode(api_clean_plain_items($profile['work']), false, false, 2, true), + 'education' => bbcode(api_clean_plain_items($profile['education']), false, false, 2, true), + 'social_networks' => bbcode(api_clean_plain_items($profile['contact']), false, false, 2, true), + 'homepage' => $profile['homepage'], + 'users' => null); + return $profile; + } } /** @@ -2317,80 +2462,50 @@ * @param array $user_info * @param bool $filter_user filter items by $user_info */ - function api_format_items($r,$user_info, $filter_user = false) { + function api_format_items($r,$user_info, $filter_user = false, $type = "json") { $a = get_app(); + $ret = Array(); foreach($r as $item) { - api_share_as_retweet($item); localize_item($item); - $status_user = api_item_get_user($a,$item); + list($status_user, $owner_user) = api_item_get_user($a,$item); // Look if the posts are matching if they should be filtered by user id if ($filter_user AND ($status_user["id"] != $user_info["id"])) continue; - if ($item['thr-parent'] != $item['uri']) { - $r = q("SELECT id FROM item WHERE uid=%d AND uri='%s' LIMIT 1", - intval(api_user()), - dbesc($item['thr-parent'])); - if ($r) - $in_reply_to_status_id = intval($r[0]['id']); - else - $in_reply_to_status_id = intval($item['parent']); - - $in_reply_to_status_id_str = (string) intval($item['parent']); - - $in_reply_to_screen_name = NULL; - $in_reply_to_user_id = NULL; - $in_reply_to_user_id_str = NULL; - - $r = q("SELECT `author-link` FROM item WHERE uid=%d AND id=%d LIMIT 1", - intval(api_user()), - intval($in_reply_to_status_id)); - if ($r) { - $r = q("SELECT * FROM `gcontact` WHERE `url` = '%s'", dbesc(normalise_link($r[0]['author-link']))); - - if ($r) { - if ($r[0]['nick'] == "") - $r[0]['nick'] = api_get_nick($r[0]["url"]); - - $in_reply_to_screen_name = (($r[0]['nick']) ? $r[0]['nick'] : $r[0]['name']); - $in_reply_to_user_id = intval($r[0]['id']); - $in_reply_to_user_id_str = (string) intval($r[0]['id']); - } - } - } else { - $in_reply_to_screen_name = NULL; - $in_reply_to_user_id = NULL; - $in_reply_to_status_id = NULL; - $in_reply_to_user_id_str = NULL; - $in_reply_to_status_id_str = NULL; - } + $in_reply_to = api_in_reply_to($item); $converted = api_convert_item($item); + if ($type == "xml") + $geo = "georss:point"; + else + $geo = "geo"; + $status = array( 'text' => $converted["text"], 'truncated' => False, 'created_at'=> api_date($item['created']), - 'in_reply_to_status_id' => $in_reply_to_status_id, - 'in_reply_to_status_id_str' => $in_reply_to_status_id_str, + 'in_reply_to_status_id' => $in_reply_to['status_id'], + 'in_reply_to_status_id_str' => $in_reply_to['status_id_str'], 'source' => (($item['app']) ? $item['app'] : 'web'), 'id' => intval($item['id']), 'id_str' => (string) intval($item['id']), - 'in_reply_to_user_id' => $in_reply_to_user_id, - 'in_reply_to_user_id_str' => $in_reply_to_user_id_str, - 'in_reply_to_screen_name' => $in_reply_to_screen_name, - 'geo' => NULL, + 'in_reply_to_user_id' => $in_reply_to['user_id'], + 'in_reply_to_user_id_str' => $in_reply_to['user_id_str'], + 'in_reply_to_screen_name' => $in_reply_to['screen_name'], + $geo => NULL, 'favorited' => $item['starred'] ? true : false, 'user' => $status_user , + 'friendica_owner' => $owner_user, //'entities' => NULL, 'statusnet_html' => $converted["html"], 'statusnet_conversation_id' => $item['parent'], - 'friendica_activities' => api_format_items_likes($item), + 'friendica_activities' => api_format_items_activities($item, $type), ); if (count($converted["attachments"]) > 0) @@ -2407,15 +2522,31 @@ // Retweets are only valid for top postings // It doesn't work reliable with the link if its a feed - $IsRetweet = ($item['owner-link'] != $item['author-link']); - if ($IsRetweet) - $IsRetweet = (($item['owner-name'] != $item['author-name']) OR ($item['owner-avatar'] != $item['author-avatar'])); + #$IsRetweet = ($item['owner-link'] != $item['author-link']); + #if ($IsRetweet) + # $IsRetweet = (($item['owner-name'] != $item['author-name']) OR ($item['owner-avatar'] != $item['author-avatar'])); - if ($IsRetweet AND ($item["id"] == $item["parent"])) { - $retweeted_status = $status; - $retweeted_status["user"] = api_get_user($a,$item["author-link"]); - $status["retweeted_status"] = $retweeted_status; + if ($item["id"] == $item["parent"]) { + $retweeted_item = api_share_as_retweet($item); + if ($retweeted_item !== false) { + $retweeted_status = $status; + try { + $retweeted_status["user"] = api_get_user($a,$retweeted_item["author-link"]); + } catch( BadRequestException $e ) { + // user not found. should be found? + /// @todo check if the user should be always found + $retweeted_status["user"] = array(); + } + + $rt_converted = api_convert_item($retweeted_item); + + $retweeted_status['text'] = $rt_converted["text"]; + $retweeted_status['statusnet_html'] = $rt_converted["html"]; + $retweeted_status['friendica_activities'] = api_format_items_activities($retweeted_item, $type); + $retweeted_status['created_at'] = api_date($retweeted_item['created']); + $status['retweeted_status'] = $retweeted_status; + } } // "uid" and "self" are only needed for some internal stuff, so remove it from here @@ -2425,51 +2556,64 @@ if ($item["coord"] != "") { $coords = explode(' ',$item["coord"]); if (count($coords) == 2) { - $status["geo"] = array('type' => 'Point', - 'coordinates' => array((float) $coords[0], - (float) $coords[1])); + if ($type == "json") + $status["geo"] = array('type' => 'Point', + 'coordinates' => array((float) $coords[0], + (float) $coords[1])); + else // Not sure if this is the official format - if someone founds a documentation we can check + $status["georss:point"] = $item["coord"]; } } - $ret[] = $status; }; return $ret; } - function api_account_rate_limit_status(&$a,$type) { - $hash = array( - 'reset_time_in_seconds' => strtotime('now + 1 hour'), - 'remaining_hits' => (string) 150, - 'hourly_limit' => (string) 150, - 'reset_time' => api_date(datetime_convert('UTC','UTC','now + 1 hour',ATOM_TIME)), - ); - if ($type == "xml") - $hash['resettime_in_seconds'] = $hash['reset_time_in_seconds']; + function api_account_rate_limit_status($type) { - return api_apply_template('ratelimit', $type, array('$hash' => $hash)); + if ($type == "xml") + $hash = array( + 'remaining-hits' => (string) 150, + '@attributes' => array("type" => "integer"), + 'hourly-limit' => (string) 150, + '@attributes2' => array("type" => "integer"), + 'reset-time' => datetime_convert('UTC','UTC','now + 1 hour',ATOM_TIME), + '@attributes3' => array("type" => "datetime"), + 'reset_time_in_seconds' => strtotime('now + 1 hour'), + '@attributes4' => array("type" => "integer"), + ); + else + $hash = array( + 'reset_time_in_seconds' => strtotime('now + 1 hour'), + 'remaining_hits' => (string) 150, + 'hourly_limit' => (string) 150, + 'reset_time' => api_date(datetime_convert('UTC','UTC','now + 1 hour',ATOM_TIME)), + ); + + return api_format_data('hash', $type, array('hash' => $hash)); } api_register_func('api/account/rate_limit_status','api_account_rate_limit_status',true); - function api_help_test(&$a,$type) { + function api_help_test($type) { if ($type == 'xml') $ok = "true"; else $ok = "ok"; - return api_apply_template('test', $type, array("$ok" => $ok)); + return api_format_data('ok', $type, array("ok" => $ok)); } api_register_func('api/help/test','api_help_test',false); - function api_lists(&$a,$type) { + function api_lists($type) { $ret = array(); - return array($ret); + return api_format_data('lists', $type, array("lists_list" => $ret)); } api_register_func('api/lists','api_lists',true); - function api_lists_list(&$a,$type) { + function api_lists_list($type) { $ret = array(); - return array($ret); + return api_format_data('lists', $type, array("lists_list" => $ret)); } api_register_func('api/lists/list','api_lists_list',true); @@ -2478,7 +2622,10 @@ * This function is deprecated by Twitter * returns: json, xml **/ - function api_statuses_f(&$a, $type, $qtype) { + function api_statuses_f($type, $qtype) { + + $a = get_app(); + if (api_user()===false) throw new ForbiddenException(); $user_info = api_get_user($a); @@ -2517,18 +2664,18 @@ $ret[] = $user; } - return array('$users' => $ret); + return array('user' => $ret); } - function api_statuses_friends(&$a, $type){ - $data = api_statuses_f($a,$type,"friends"); + function api_statuses_friends($type){ + $data = api_statuses_f($type, "friends"); if ($data===false) return false; - return api_apply_template("friends", $type, $data); + return api_format_data("users", $type, $data); } - function api_statuses_followers(&$a, $type){ - $data = api_statuses_f($a,$type,"followers"); + function api_statuses_followers($type){ + $data = api_statuses_f($type, "followers"); if ($data===false) return false; - return api_apply_template("friends", $type, $data); + return api_format_data("users", $type, $data); } api_register_func('api/statuses/friends','api_statuses_friends',true); api_register_func('api/statuses/followers','api_statuses_followers',true); @@ -2538,10 +2685,13 @@ - function api_statusnet_config(&$a,$type) { + function api_statusnet_config($type) { + + $a = get_app(); + $name = $a->config['sitename']; $server = $a->get_hostname(); - $logo = $a->get_baseurl() . '/images/friendica-64.png'; + $logo = App::get_baseurl() . '/images/friendica-64.png'; $email = $a->config['admin_email']; $closed = (($a->config['register_policy'] == REGISTER_CLOSED) ? 'true' : 'false'); $private = (($a->config['system']['block_public']) ? 'true' : 'false'); @@ -2549,7 +2699,7 @@ if($a->config['api_import_size']) $texlimit = string($a->config['api_import_size']); $ssl = (($a->config['system']['have_ssl']) ? 'true' : 'false'); - $sslserver = (($ssl === 'true') ? str_replace('http:','https:',$a->get_baseurl()) : ''); + $sslserver = (($ssl === 'true') ? str_replace('http:','https:',App::get_baseurl()) : ''); $config = array( 'site' => array('name' => $name,'server' => $server, 'theme' => 'default', 'path' => '', @@ -2566,32 +2716,26 @@ ), ); - return api_apply_template('config', $type, array('$config' => $config)); + return api_format_data('config', $type, array('config' => $config)); } api_register_func('api/statusnet/config','api_statusnet_config',false); - function api_statusnet_version(&$a,$type) { + function api_statusnet_version($type) { // liar $fake_statusnet_version = "0.9.7"; - if($type === 'xml') { - header("Content-type: application/xml"); - echo '' . "\r\n" . ''.$fake_statusnet_version.'' . "\r\n"; - killme(); - } - elseif($type === 'json') { - header("Content-type: application/json"); - echo '"'.$fake_statusnet_version.'"'; - killme(); - } + return api_format_data('version', $type, array('version' => $fake_statusnet_version)); } api_register_func('api/statusnet/version','api_statusnet_version',false); /** - * @todo use api_apply_template() to return data + * @todo use api_format_data() to return data */ - function api_ff_ids(&$a,$type,$qtype) { + function api_ff_ids($type,$qtype) { + + $a = get_app(); + if(! api_user()) throw new ForbiddenException(); $user_info = api_get_user($a); @@ -2606,46 +2750,39 @@ $stringify_ids = (x($_REQUEST,'stringify_ids')?$_REQUEST['stringify_ids']:false); - $r = q("SELECT `gcontact`.`id` FROM `contact`, `gcontact` WHERE `contact`.`nurl` = `gcontact`.`nurl` AND `uid` = %d AND NOT `self` AND NOT `blocked` AND NOT `pending` $sql_extra", + $r = q("SELECT `pcontact`.`id` FROM `contact` + INNER JOIN `contact` AS `pcontact` ON `contact`.`nurl` = `pcontact`.`nurl` AND `pcontact`.`uid` = 0 + WHERE `contact`.`uid` = %s AND NOT `contact`.`self`", intval(api_user()) ); - if(is_array($r)) { + if(!dbm::is_result($r)) + return; - if($type === 'xml') { - header("Content-type: application/xml"); - echo '' . "\r\n" . '' . "\r\n"; - foreach($r as $rr) - echo '' . $rr['id'] . '' . "\r\n"; - echo '' . "\r\n"; - killme(); - } - elseif($type === 'json') { - $ret = array(); - header("Content-type: application/json"); - foreach($r as $rr) - if ($stringify_ids) - $ret[] = $rr['id']; - else - $ret[] = intval($rr['id']); + $ids = array(); + foreach($r as $rr) + if ($stringify_ids) + $ids[] = $rr['id']; + else + $ids[] = intval($rr['id']); - echo json_encode($ret); - killme(); - } - } + return api_format_data("ids", $type, array('id' => $ids)); } - function api_friends_ids(&$a,$type) { - api_ff_ids($a,$type,'friends'); + function api_friends_ids($type) { + return api_ff_ids($type,'friends'); } - function api_followers_ids(&$a,$type) { - api_ff_ids($a,$type,'followers'); + function api_followers_ids($type) { + return 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(&$a, $type) { + function api_direct_messages_new($type) { + + $a = get_app(); + if (api_user()===false) throw new ForbiddenException(); if (!x($_POST, "text") OR (!x($_POST,"screen_name") AND !x($_POST,"user_id"))) return; @@ -2692,7 +2829,7 @@ $ret = array("error"=>$id); } - $data = Array('$messages'=>$ret); + $data = Array('direct_message'=>$ret); switch($type){ case "atom": @@ -2700,12 +2837,88 @@ $data = api_rss_extra($a, $data, $user_info); } - return api_apply_template("direct_messages", $type, $data); + return api_format_data("direct-messages", $type, $data); } api_register_func('api/direct_messages/new','api_direct_messages_new',true, API_METHOD_POST); - function api_direct_messages_box(&$a, $type, $box) { + + /** + * @brief delete a direct_message from mail table through api + * + * @param string $type Known types are 'atom', 'rss', 'xml' and 'json' + * @return string + */ + function api_direct_messages_destroy($type){ + $a = get_app(); + + if (api_user()===false) throw new ForbiddenException(); + + // params + $user_info = api_get_user($a); + //required + $id = (x($_REQUEST,'id') ? $_REQUEST['id'] : 0); + // optional + $parenturi = (x($_REQUEST, 'friendica_parenturi') ? $_REQUEST['friendica_parenturi'] : ""); + $verbose = (x($_GET,'friendica_verbose')?strtolower($_GET['friendica_verbose']):"false"); + /// @todo optional parameter 'include_entities' from Twitter API not yet implemented + + $uid = $user_info['uid']; + // error if no id or parenturi specified (for clients posting parent-uri as well) + if ($verbose == "true") { + if ($id == 0 || $parenturi == "") { + $answer = array('result' => 'error', 'message' => 'message id or parenturi not specified'); + return api_format_data("direct_messages_delete", $type, array('$result' => $answer)); + } + } + + // BadRequestException if no id specified (for clients using Twitter API) + if ($id == 0) throw new BadRequestException('Message id not specified'); + + // add parent-uri to sql command if specified by calling app + $sql_extra = ($parenturi != "" ? " AND `parent-uri` = '" . dbesc($parenturi) . "'" : ""); + + // get data of the specified message id + $r = q("SELECT `id` FROM `mail` WHERE `uid` = %d AND `id` = %d" . $sql_extra, + intval($uid), + intval($id)); + + // error message if specified id is not in database + if (!dbm::is_result($r)) { + if ($verbose == "true") { + $answer = array('result' => 'error', 'message' => 'message id not in database'); + return api_format_data("direct_messages_delete", $type, array('$result' => $answer)); + } + /// @todo BadRequestException ok for Twitter API clients? + throw new BadRequestException('message id not in database'); + } + + // delete message + $result = q("DELETE FROM `mail` WHERE `uid` = %d AND `id` = %d" . $sql_extra, + intval($uid), + intval($id)); + + if ($verbose == "true") { + if ($result) { + // return success + $answer = array('result' => 'ok', 'message' => 'message deleted'); + return api_format_data("direct_message_delete", $type, array('$result' => $answer)); + } + else { + $answer = array('result' => 'error', 'message' => 'unknown error'); + return api_format_data("direct_messages_delete", $type, array('$result' => $answer)); + } + } + /// @todo return JSON data like Twitter API not yet implemented + + } + api_register_func('api/direct_messages/destroy', 'api_direct_messages_destroy', true, API_METHOD_DELETE); + + + function api_direct_messages_box($type, $box, $verbose) { + + $a = get_app(); + if (api_user()===false) throw new ForbiddenException(); // params @@ -2727,7 +2940,6 @@ unset($_GET["screen_name"]); $user_info = api_get_user($a); - //$profile_url = $a->get_baseurl() . '/profile/' . $a->user['nickname']; $profile_url = $user_info["url"]; @@ -2763,7 +2975,13 @@ intval($since_id), intval($start), intval($count) ); - + if ($verbose == "true") { + // stop execution and return error message if no mails available + if($r == null) { + $answer = array('result' => 'error', 'message' => 'no mails available'); + return api_format_data("direct_messages_all", $type, array('$result' => $answer)); + } + } $ret = Array(); foreach($r as $item) { @@ -2780,28 +2998,32 @@ } - $data = array('$messages' => $ret); + $data = array('direct_message' => $ret); switch($type){ case "atom": case "rss": $data = api_rss_extra($a, $data, $user_info); } - return api_apply_template("direct_messages", $type, $data); + return api_format_data("direct-messages", $type, $data); } - function api_direct_messages_sentbox(&$a, $type){ - return api_direct_messages_box($a, $type, "sentbox"); + function api_direct_messages_sentbox($type){ + $verbose = (x($_GET,'friendica_verbose')?strtolower($_GET['friendica_verbose']):"false"); + return api_direct_messages_box($type, "sentbox", $verbose); } - function api_direct_messages_inbox(&$a, $type){ - return api_direct_messages_box($a, $type, "inbox"); + function api_direct_messages_inbox($type){ + $verbose = (x($_GET,'friendica_verbose')?strtolower($_GET['friendica_verbose']):"false"); + return api_direct_messages_box($type, "inbox", $verbose); } - function api_direct_messages_all(&$a, $type){ - return api_direct_messages_box($a, $type, "all"); + function api_direct_messages_all($type){ + $verbose = (x($_GET,'friendica_verbose')?strtolower($_GET['friendica_verbose']):"false"); + return api_direct_messages_box($type, "all", $verbose); } - function api_direct_messages_conversation(&$a, $type){ - return api_direct_messages_box($a, $type, "conversation"); + function api_direct_messages_conversation($type){ + $verbose = (x($_GET,'friendica_verbose')?strtolower($_GET['friendica_verbose']):"false"); + return api_direct_messages_box($type, "conversation", $verbose); } api_register_func('api/direct_messages/conversation','api_direct_messages_conversation',true); api_register_func('api/direct_messages/all','api_direct_messages_all',true); @@ -2810,7 +3032,7 @@ - function api_oauth_request_token(&$a, $type){ + function api_oauth_request_token($type){ try{ $oauth = new FKOAuth1(); $r = $oauth->fetch_request_token(OAuthRequest::from_request()); @@ -2820,7 +3042,7 @@ echo $r; killme(); } - function api_oauth_access_token(&$a, $type){ + function api_oauth_access_token($type){ try{ $oauth = new FKOAuth1(); $r = $oauth->fetch_access_token(OAuthRequest::from_request()); @@ -2835,7 +3057,7 @@ api_register_func('api/oauth/access_token', 'api_oauth_access_token', false); - function api_fr_photos_list(&$a,$type) { + function api_fr_photos_list($type) { if (api_user()===false) throw new ForbiddenException(); $r = q("select `resource-id`, max(scale) as scale, album, filename, type from photo where uid = %d and album != 'Contact Photos' group by `resource-id`", @@ -2846,7 +3068,7 @@ 'image/png' => 'png', 'image/gif' => 'gif' ); - $data = array('photos'=>array()); + $data = array('photo'=>array()); if($r) { foreach($r as $rr) { $photo = array(); @@ -2854,14 +3076,20 @@ $photo['album'] = $rr['album']; $photo['filename'] = $rr['filename']; $photo['type'] = $rr['type']; - $photo['thumb'] = $a->get_baseurl()."/photo/".$rr['resource-id']."-".$rr['scale'].".".$typetoext[$rr['type']]; - $data['photos'][] = $photo; + $thumb = App::get_baseurl()."/photo/".$rr['resource-id']."-".$rr['scale'].".".$typetoext[$rr['type']]; + + if ($type == "xml") + $data['photo'][] = array("@attributes" => $photo, "1" => $thumb); + else { + $photo['thumb'] = $thumb; + $data['photo'][] = $photo; + } } } - return api_apply_template("photos_list", $type, $data); + return api_format_data("photos", $type, $data); } - function api_fr_photo_detail(&$a,$type) { + function api_fr_photo_detail($type) { if (api_user()===false) throw new ForbiddenException(); if(!x($_REQUEST,'photo_id')) throw new BadRequestException("No photo id."); @@ -2886,16 +3114,24 @@ if ($r) { $data = array('photo' => $r[0]); + $data['photo']['id'] = $data['photo']['resource-id']; if ($scale !== false) { $data['photo']['data'] = base64_encode($data['photo']['data']); } else { unset($data['photo']['datasize']); //needed only with scale param } - $data['photo']['link'] = array(); - for($k=intval($data['photo']['minscale']); $k<=intval($data['photo']['maxscale']); $k++) { - $data['photo']['link'][$k] = $a->get_baseurl()."/photo/".$data['photo']['resource-id']."-".$k.".".$typetoext[$data['photo']['type']]; + if ($type == "xml") { + $data['photo']['links'] = array(); + for ($k=intval($data['photo']['minscale']); $k<=intval($data['photo']['maxscale']); $k++) + $data['photo']['links'][$k.":link"]["@attributes"] = array("type" => $data['photo']['type'], + "scale" => $k, + "href" => App::get_baseurl()."/photo/".$data['photo']['resource-id']."-".$k.".".$typetoext[$data['photo']['type']]); + } else { + $data['photo']['link'] = array(); + for ($k=intval($data['photo']['minscale']); $k<=intval($data['photo']['maxscale']); $k++) { + $data['photo']['link'][$k] = App::get_baseurl()."/photo/".$data['photo']['resource-id']."-".$k.".".$typetoext[$data['photo']['type']]; + } } - $data['photo']['id'] = $data['photo']['resource-id']; unset($data['photo']['resource-id']); unset($data['photo']['minscale']); unset($data['photo']['maxscale']); @@ -2904,7 +3140,7 @@ throw new NotFoundException(); } - return api_apply_template("photo_detail", $type, $data); + return api_format_data("photo_detail", $type, $data); } api_register_func('api/friendica/photos/list', 'api_fr_photos_list', true); @@ -2923,7 +3159,7 @@ * c_url: url of remote contact to auth to * url: string, url to redirect after auth */ - function api_friendica_remoteauth(&$a) { + function api_friendica_remoteauth() { $url = ((x($_GET,'url')) ? $_GET['url'] : ''); $c_url = ((x($_GET,'c_url')) ? $_GET['c_url'] : ''); @@ -2974,23 +3210,29 @@ } api_register_func('api/friendica/remoteauth', 'api_friendica_remoteauth', true); - + /** + * @brief Return the item shared, if the item contains only the [share] tag + * + * @param array $item Sharer item + * @return array Shared item or false if not a reshare + */ function api_share_as_retweet(&$item) { $body = trim($item["body"]); - // Skip if it isn't a pure repeated messages - // Does it start with a share? - if (strpos($body, "[share") > 0) - return(false); - - // Does it end with a share? - if (strlen($body) > (strrpos($body, "[/share]") + 8)) - return(false); + if (diaspora::is_reshare($body, false)===false) { + return false; + } $attributes = preg_replace("/\[share(.*?)\]\s?(.*?)\s?\[\/share\]\s?/ism","$1",$body); // Skip if there is no shared message in there + // we already checked this in diaspora::is_reshare() + // but better one more than one less... if ($body == $attributes) - return(false); + return false; + + + // build the fake reshared item + $reshared_item = $item; $author = ""; preg_match("/author='(.*?)'/ism", $attributes, $matches); @@ -3028,18 +3270,31 @@ if ($matches[1] != "") $link = $matches[1]; + $posted = ""; + preg_match("/posted='(.*?)'/ism", $attributes, $matches); + if ($matches[1] != "") + $posted= $matches[1]; + + preg_match('/posted="(.*?)"/ism', $attributes, $matches); + if ($matches[1] != "") + $posted = $matches[1]; + $shared_body = preg_replace("/\[share(.*?)\]\s?(.*?)\s?\[\/share\]\s?/ism","$2",$body); - if (($shared_body == "") OR ($profile == "") OR ($author == "") OR ($avatar == "")) - return(false); + if (($shared_body == "") || ($profile == "") || ($author == "") || ($avatar == "") || ($posted == "")) + return false; - $item["body"] = $shared_body; - $item["author-name"] = $author; - $item["author-link"] = $profile; - $item["author-avatar"] = $avatar; - $item["plink"] = $link; - return(true); + + $reshared_item["body"] = $shared_body; + $reshared_item["author-name"] = $author; + $reshared_item["author-link"] = $profile; + $reshared_item["author-avatar"] = $avatar; + $reshared_item["plink"] = $link; + $reshared_item["created"] = $posted; + $reshared_item["edited"] = $posted; + + return $reshared_item; } @@ -3051,7 +3306,7 @@ $nick = ""; - $r = q("SELECT `nick` FROM `gcontact` WHERE `nurl` = '%s'", + $r = q("SELECT `nick` FROM `contact` WHERE `uid` = 0 AND `nurl` = '%s'", dbesc(normalise_link($profile))); if ($r) $nick = $r[0]["nick"]; @@ -3110,11 +3365,64 @@ return(false); } + function api_in_reply_to($item) { + $in_reply_to = array(); + + $in_reply_to['status_id'] = NULL; + $in_reply_to['user_id'] = NULL; + $in_reply_to['status_id_str'] = NULL; + $in_reply_to['user_id_str'] = NULL; + $in_reply_to['screen_name'] = NULL; + + if (($item['thr-parent'] != $item['uri']) AND (intval($item['parent']) != intval($item['id']))) { + $r = q("SELECT `id` FROM `item` WHERE `uid` = %d AND `uri` = '%s' LIMIT 1", + intval($item['uid']), + dbesc($item['thr-parent'])); + + if (dbm::is_result($r)) { + $in_reply_to['status_id'] = intval($r[0]['id']); + } else { + $in_reply_to['status_id'] = intval($item['parent']); + } + + $in_reply_to['status_id_str'] = (string) intval($in_reply_to['status_id']); + + $r = q("SELECT `contact`.`nick`, `contact`.`name`, `contact`.`id`, `contact`.`url` FROM item + STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`author-id` + WHERE `item`.`id` = %d LIMIT 1", + intval($in_reply_to['status_id']) + ); + + if (dbm::is_result($r)) { + if ($r[0]['nick'] == "") { + $r[0]['nick'] = api_get_nick($r[0]["url"]); + } + + $in_reply_to['screen_name'] = (($r[0]['nick']) ? $r[0]['nick'] : $r[0]['name']); + $in_reply_to['user_id'] = intval($r[0]['id']); + $in_reply_to['user_id_str'] = (string) intval($r[0]['id']); + } + + // There seems to be situation, where both fields are identical: + // https://github.com/friendica/friendica/issues/1010 + // This is a bugfix for that. + if (intval($in_reply_to['status_id']) == intval($item['id'])) { + logger('this message should never appear: id: '.$item['id'].' similar to reply-to: '.$in_reply_to['status_id'], LOGGER_DEBUG); + $in_reply_to['status_id'] = NULL; + $in_reply_to['user_id'] = NULL; + $in_reply_to['status_id_str'] = NULL; + $in_reply_to['user_id_str'] = NULL; + $in_reply_to['screen_name'] = NULL; + } + } + + return $in_reply_to; + } + function api_clean_plain_items($Text) { $include_entities = strtolower(x($_REQUEST,'include_entities')?$_REQUEST['include_entities']:"false"); $Text = bb_CleanPictureLinks($Text); - $URLSearchString = "^\[\]"; $Text = preg_replace("/([!#@])\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism",'$1$3',$Text); @@ -3153,6 +3461,8 @@ if (isset($data["url"])) $body .= "\n".$data["url"]; + $body .= $data["after"]; + return $body; } @@ -3200,7 +3510,10 @@ } // return all or a specified group of the user with the containing contacts - function api_friendica_group_show(&$a, $type) { + function api_friendica_group_show($type) { + + $a = get_app(); + if (api_user()===false) throw new ForbiddenException(); // params @@ -3225,19 +3538,33 @@ foreach ($r as $rr) { $members = group_get_members($rr['id']); $users = array(); - foreach ($members as $member) { - $user = api_get_user($a, $member['nurl']); - $users[] = $user; + + if ($type == "xml") { + $user_element = "users"; + $k = 0; + foreach ($members as $member) { + $user = api_get_user($a, $member['nurl']); + $users[$k++.":user"] = $user; + } + } else { + $user_element = "user"; + foreach ($members as $member) { + $user = api_get_user($a, $member['nurl']); + $users[] = $user; + } } - $grps[] = array('name' => $rr['name'], 'gid' => $rr['id'], 'user' => $users); + $grps[] = array('name' => $rr['name'], 'gid' => $rr['id'], $user_element => $users); } - return api_apply_template("group_show", $type, array('$groups' => $grps)); + return api_format_data("groups", $type, array('group' => $grps)); } api_register_func('api/friendica/group_show', 'api_friendica_group_show', true); // delete the specified group of the user - function api_friendica_group_delete(&$a, $type) { + function api_friendica_group_delete($type) { + + $a = get_app(); + if (api_user()===false) throw new ForbiddenException(); // params @@ -3272,7 +3599,7 @@ if ($ret) { // return success $success = array('success' => $ret, 'gid' => $gid, 'name' => $name, 'status' => 'deleted', 'wrong users' => array()); - return api_apply_template("group_delete", $type, array('$result' => $success)); + return api_format_data("group_delete", $type, array('result' => $success)); } else throw new BadRequestException('other API error'); @@ -3281,7 +3608,10 @@ // create the specified group with the posted array of contacts - function api_friendica_group_create(&$a, $type) { + function api_friendica_group_create($type) { + + $a = get_app(); + if (api_user()===false) throw new ForbiddenException(); // params @@ -3338,13 +3668,16 @@ // return success message incl. missing users in array $status = ($erroraddinguser ? "missing user" : ($reactivate_group ? "reactivated" : "ok")); $success = array('success' => true, 'gid' => $gid, 'name' => $name, 'status' => $status, 'wrong users' => $errorusers); - return api_apply_template("group_create", $type, array('result' => $success)); + return api_format_data("group_create", $type, array('result' => $success)); } api_register_func('api/friendica/group_create', 'api_friendica_group_create', true, API_METHOD_POST); // update the specified group with the posted array of contacts - function api_friendica_group_update(&$a, $type) { + function api_friendica_group_update($type) { + + $a = get_app(); + if (api_user()===false) throw new ForbiddenException(); // params @@ -3395,12 +3728,15 @@ // return success message incl. missing users in array $status = ($erroraddinguser ? "missing user" : "ok"); $success = array('success' => true, 'gid' => $gid, 'name' => $name, 'status' => $status, 'wrong users' => $errorusers); - return api_apply_template("group_update", $type, array('result' => $success)); + return api_format_data("group_update", $type, array('result' => $success)); } api_register_func('api/friendica/group_update', 'api_friendica_group_update', true, API_METHOD_POST); - function api_friendica_activity(&$a, $type) { + function api_friendica_activity($type) { + + $a = get_app(); + if (api_user()===false) throw new ForbiddenException(); $verb = strtolower($a->argv[3]); $verb = preg_replace("|\..*$|", "", $verb); @@ -3410,11 +3746,11 @@ $res = do_like($id, $verb); if ($res) { - if ($type == 'xml') + if ($type == "xml") $ok = "true"; else $ok = "ok"; - return api_apply_template('test', $type, array('ok' => $ok)); + return api_format_data('ok', $type, array('ok' => $ok)); } else { throw new BadRequestException('Error adding activity'); } @@ -3434,38 +3770,51 @@ /** * @brief Returns notifications * - * @param App $a * @param string $type Known types are 'atom', 'rss', 'xml' and 'json' * @return string */ - function api_friendica_notification(&$a, $type) { + function api_friendica_notification($type) { + + $a = get_app(); + if (api_user()===false) throw new ForbiddenException(); if ($a->argc!==3) throw new BadRequestException("Invalid argument count"); $nm = new NotificationsManager(); - + $notes = $nm->getAll(array(), "+seen -date", 50); - return api_apply_template("", $type, array('$notes' => $notes)); + + if ($type == "xml") { + $xmlnotes = array(); + foreach ($notes AS $note) + $xmlnotes[] = array("@attributes" => $note); + + $notes = $xmlnotes; + } + + return api_format_data("notes", $type, array('note' => $notes)); } - + /** * @brief Set notification as seen and returns associated item (if possible) * * POST request with 'id' param as notification id - * - * @param App $a + * * @param string $type Known types are 'atom', 'rss', 'xml' and 'json' * @return string */ - function api_friendica_notification_seen(&$a, $type){ + function api_friendica_notification_seen($type){ + + $a = get_app(); + if (api_user()===false) throw new ForbiddenException(); if ($a->argc!==4) throw new BadRequestException("Invalid argument count"); - + $id = (x($_REQUEST, 'id') ? intval($_REQUEST['id']) : 0); - - $nm = new NotificationsManager(); + + $nm = new NotificationsManager(); $note = $nm->getByID($id); if (is_null($note)) throw new BadRequestException("Invalid argument"); - + $nm->setSeen($note); if ($note['otype']=='item') { // would be really better with an ItemsManager and $im->getByID() :-P @@ -3476,18 +3825,188 @@ if ($r!==false) { // we found the item, return it to the user $user_info = api_get_user($a); - $ret = api_format_items($r,$user_info); - $data = array('$statuses' => $ret); - return api_apply_template("timeline", $type, $data); + $ret = api_format_items($r,$user_info, false, $type); + $data = array('status' => $ret); + return api_format_data("status", $type, $data); } // the item can't be found, but we set the note as seen, so we count this as a success - } - return api_apply_template('', $type, array('status' => "success")); + } + return api_format_data('result', $type, array('result' => "success")); } - + api_register_func('api/friendica/notification/seen', 'api_friendica_notification_seen', true, API_METHOD_POST); api_register_func('api/friendica/notification', 'api_friendica_notification', true, API_METHOD_GET); - + + + /** + * @brief update a direct_message to seen state + * + * @param string $type Known types are 'atom', 'rss', 'xml' and 'json' + * @return string (success result=ok, error result=error with error message) + */ + function api_friendica_direct_messages_setseen($type){ + $a = get_app(); + if (api_user()===false) throw new ForbiddenException(); + + // params + $user_info = api_get_user($a); + $uid = $user_info['uid']; + $id = (x($_REQUEST, 'id') ? $_REQUEST['id'] : 0); + + // return error if id is zero + if ($id == "") { + $answer = array('result' => 'error', 'message' => 'message id not specified'); + return api_format_data("direct_messages_setseen", $type, array('$result' => $answer)); + } + + // get data of the specified message id + $r = q("SELECT `id` FROM `mail` WHERE `id` = %d AND `uid` = %d", + intval($id), + intval($uid)); + // error message if specified id is not in database + if (!dbm::is_result($r)) { + $answer = array('result' => 'error', 'message' => 'message id not in database'); + return api_format_data("direct_messages_setseen", $type, array('$result' => $answer)); + } + + // update seen indicator + $result = q("UPDATE `mail` SET `seen` = 1 WHERE `id` = %d AND `uid` = %d", + intval($id), + intval($uid)); + + if ($result) { + // return success + $answer = array('result' => 'ok', 'message' => 'message set to seen'); + return api_format_data("direct_message_setseen", $type, array('$result' => $answer)); + } else { + $answer = array('result' => 'error', 'message' => 'unknown error'); + return api_format_data("direct_messages_setseen", $type, array('$result' => $answer)); + } + } + api_register_func('api/friendica/direct_messages_setseen', 'api_friendica_direct_messages_setseen', true); + + + + + /** + * @brief search for direct_messages containing a searchstring through api + * + * @param string $type Known types are 'atom', 'rss', 'xml' and 'json' + * @return string (success: success=true if found and search_result contains found messages + * success=false if nothing was found, search_result='nothing found', + * error: result=error with error message) + */ + function api_friendica_direct_messages_search($type){ + $a = get_app(); + + if (api_user()===false) throw new ForbiddenException(); + + // params + $user_info = api_get_user($a); + $searchstring = (x($_REQUEST,'searchstring') ? $_REQUEST['searchstring'] : ""); + $uid = $user_info['uid']; + + // error if no searchstring specified + if ($searchstring == "") { + $answer = array('result' => 'error', 'message' => 'searchstring not specified'); + return api_format_data("direct_messages_search", $type, array('$result' => $answer)); + } + + // get data for the specified searchstring + $r = q("SELECT `mail`.*, `contact`.`nurl` AS `contact-url` FROM `mail`,`contact` WHERE `mail`.`contact-id` = `contact`.`id` AND `mail`.`uid`=%d AND `body` LIKE '%s' ORDER BY `mail`.`id` DESC", + intval($uid), + dbesc('%'.$searchstring.'%') + ); + + $profile_url = $user_info["url"]; + // message if nothing was found + if (count($r) == 0) + $success = array('success' => false, 'search_results' => 'nothing found'); + else { + $ret = Array(); + foreach($r as $item) { + if ($box == "inbox" || $item['from-url'] != $profile_url){ + $recipient = $user_info; + $sender = api_get_user($a,normalise_link($item['contact-url'])); + } + elseif ($box == "sentbox" || $item['from-url'] == $profile_url){ + $recipient = api_get_user($a,normalise_link($item['contact-url'])); + $sender = $user_info; + } + $ret[]=api_format_messages($item, $recipient, $sender); + } + $success = array('success' => true, 'search_results' => $ret); + } + + return api_format_data("direct_message_search", $type, array('$result' => $success)); + } + api_register_func('api/friendica/direct_messages_search', 'api_friendica_direct_messages_search', true); + + + /** + * @brief return data of all the profiles a user has to the client + * + * @param string $type Known types are 'atom', 'rss', 'xml' and 'json' + * @return string + */ + function api_friendica_profile_show($type){ + $a = get_app(); + + if (api_user()===false) throw new ForbiddenException(); + + // input params + $profileid = (x($_REQUEST,'profile_id') ? $_REQUEST['profile_id'] : 0); + + // retrieve general information about profiles for user + $multi_profiles = feature_enabled(api_user(),'multi_profiles'); + $directory = get_config('system', 'directory'); + +// get data of the specified profile id or all profiles of the user if not specified + if ($profileid != 0) { + $r = q("SELECT * FROM `profile` WHERE `uid` = %d AND `id` = %d", + intval(api_user()), + intval($profileid)); + // error message if specified gid is not in database + if (count($r) == 0) + throw new BadRequestException("profile_id not available"); + } + else + $r = q("SELECT * FROM `profile` WHERE `uid` = %d", + intval(api_user())); + + // loop through all returned profiles and retrieve data and users + $k = 0; + foreach ($r as $rr) { + $profile = api_format_items_profiles($rr, $type); + + // select all users from contact table, loop and prepare standard return for user data + $users = array(); + $r = q("SELECT `id`, `nurl` FROM `contact` WHERE `uid`= %d AND `profile-id` = %d", + intval(api_user()), + intval($rr['profile_id'])); + + foreach ($r as $rr) { + $user = api_get_user($a, $rr['nurl']); + ($type == "xml") ? $users[$k++.":user"] = $user : $users[] = $user; + } + $profile['users'] = $users; + + // add prepared profile data to array for final return + if ($type == "xml") { + $profiles[$k++.":profile"] = $profile; + } else { + $profiles[] = $profile; + } + } + + // return settings, authenticated user and profiles data + $result = array('multi_profiles' => $multi_profiles ? true : false, + 'global_dir' => $directory, + 'friendica_owner' => api_get_user($a, intval(api_user())), + 'profiles' => $profiles); + return api_format_data("friendica_profiles", $type, array('$result' => $result)); + } + api_register_func('api/friendica/profile/show', 'api_friendica_profile_show', true, API_METHOD_GET); /* To.Do: @@ -3514,6 +4033,9 @@ account/update_profile_background_image account/update_profile_image blocks/create blocks/destroy +friendica/profile/update +friendica/profile/create +friendica/profile/delete Not implemented in status.net: statuses/retweeted_to_me diff --git a/include/auth_ejabberd.php b/include/auth_ejabberd.php index 9a9d9acca..e1900dc73 100755 --- a/include/auth_ejabberd.php +++ b/include/auth_ejabberd.php @@ -47,11 +47,10 @@ require_once("boot.php"); global $a, $db; -if(is_null($a)) { +if (is_null($a)) $a = new App; -} -if(is_null($db)) { +if (is_null($db)) { @include(".htconfig.php"); require_once("include/dba.php"); $db = new dba($db_host, $db_user, $db_pass, $db_data); @@ -66,162 +65,261 @@ $bDebug = get_config('jabber','debug'); $oAuth = new exAuth($sLogFile, $bDebug); -class exAuth -{ +class exAuth { private $sLogFile; private $bDebug; private $rLogFile; - public function __construct($sLogFile, $bDebug) - { + /** + * @brief Create the class and do the authentification studd + * + * @param string $sLogFile The logfile name + * @param boolean $bDebug Debug mode + */ + public function __construct($sLogFile, $bDebug) { global $db; // setter $this->sLogFile = $sLogFile; $this->bDebug = $bDebug; - // ovo ne provjeravamo jer ako ne mozes kreirati log file, onda si u kvascu :) + // Open the logfile if the logfile name is defined if ($this->sLogFile != '') $this->rLogFile = fopen($this->sLogFile, "a") or die("Error opening log file: ". $this->sLogFile); $this->writeLog("[exAuth] start"); - // ovdje bi trebali biti spojeni na MySQL, imati otvoren log i zavrtit cekalicu + // We are connected to the SQL server and are having a log file. do { - $iHeader = fgets(STDIN, 3); - $aLength = unpack("n", $iHeader); - $iLength = $aLength["1"]; - if($iLength > 0) { - // ovo znaci da smo nesto dobili - $sData = fgets(STDIN, $iLength + 1); - $this->writeDebugLog("[debug] received data: ". $sData); - $aCommand = explode(":", $sData); - if (is_array($aCommand)){ - switch ($aCommand[0]){ - case "isuser": - // provjeravamo je li korisnik dobar - if (!isset($aCommand[1])){ - $this->writeLog("[exAuth] invalid isuser command, no username given"); - fwrite(STDOUT, pack("nn", 2, 0)); - } else { - // ovdje provjeri je li korisnik OK - $sUser = str_replace(array("%20", "(a)"), array(" ", "@"), $aCommand[1]); - $this->writeDebugLog("[debug] checking isuser for ". $sUser); - $sQuery = "SELECT `uid` FROM `user` WHERE `nickname`='". $db->escape($sUser) ."'"; - $this->writeDebugLog("[debug] using query ". $sQuery); - if ($oResult = q($sQuery)){ - if ($oResult) { - // korisnik OK - $this->writeLog("[exAuth] valid user: ". $sUser); - fwrite(STDOUT, pack("nn", 2, 1)); - } else { - // korisnik nije OK - $this->writeLog("[exAuth] invalid user: ". $sUser); - fwrite(STDOUT, pack("nn", 2, 0)); - } - //$oResult->close(); - } else { - $this->writeLog("[MySQL] invalid query: ". $sQuery); - fwrite(STDOUT, pack("nn", 2, 0)); - } - } - break; - case "auth": - // provjeravamo autentifikaciju korisnika - if (sizeof($aCommand) != 4){ - $this->writeLog("[exAuth] invalid auth command, data missing"); - fwrite(STDOUT, pack("nn", 2, 0)); - } else { - // ovdje provjeri prijavu - $sUser = str_replace(array("%20", "(a)"), array(" ", "@"), $aCommand[1]); - $this->writeDebugLog("[debug] doing auth for ". $sUser); - //$sQuery = "SELECT `uid`, `password` FROM `user` WHERE `password`='".hash('whirlpool',$aCommand[3])."' AND `nickname`='". $db->escape($sUser) ."'"; - $sQuery = "SELECT `uid`, `password` FROM `user` WHERE `nickname`='". $db->escape($sUser) ."'"; - $this->writeDebugLog("[debug] using query ". $sQuery); - if ($oResult = q($sQuery)){ - $uid = $oResult[0]["uid"]; - $Error = ($oResult[0]["password"] != hash('whirlpool',$aCommand[3])); -/* - if ($oResult[0]["password"] == hash('whirlpool',$aCommand[3])) { - // korisnik OK - $this->writeLog("[exAuth] authentificated user ". $sUser ."@". $aCommand[2]); - fwrite(STDOUT, pack("nn", 2, 1)); - } else { - // korisnik nije OK - $this->writeLog("[exAuth] authentification failed for user ". $sUser ."@". $aCommand[2]); - fwrite(STDOUT, pack("nn", 2, 0)); - } - $oResult->close(); -*/ - } else { - $this->writeLog("[MySQL] invalid query: ". $sQuery); - $Error = true; - $uid = -1; - } - if ($Error) { - $oConfig = q("SELECT `v` FROM `pconfig` WHERE `uid`=%d AND `cat` = 'xmpp' AND `k`='password' LIMIT 1;", intval($uid)); - $this->writeLog("[exAuth] got password ".$oConfig[0]["v"]); - $Error = ($aCommand[3] != $oConfig[0]["v"]); - } - - if ($Error) { - $this->writeLog("[exAuth] authentification failed for user ". $sUser ."@". $aCommand[2]); - fwrite(STDOUT, pack("nn", 2, 0)); - } else { - $this->writeLog("[exAuth] authentificated user ". $sUser ."@". $aCommand[2]); - fwrite(STDOUT, pack("nn", 2, 1)); - } - } - break; - case "setpass": - // postavljanje zaporke, onemoguceno - $this->writeLog("[exAuth] setpass command disabled"); - fwrite(STDOUT, pack("nn", 2, 0)); - break; - default: - // ako je uhvaceno ista drugo - $this->writeLog("[exAuth] unknown command ". $aCommand[0]); - fwrite(STDOUT, pack("nn", 2, 0)); - break; - } - } else { - $this->writeDebugLog("[debug] invalid command string"); - fwrite(STDOUT, pack("nn", 2, 0)); - } + // Quit if the database connection went down + if (!$db->connected()) { + $this->writeDebugLog("[debug] the database connection went down"); + return; + } + + $iHeader = fgets(STDIN, 3); + $aLength = unpack("n", $iHeader); + $iLength = $aLength["1"]; + + // No data? Then quit + if ($iLength == 0) { + $this->writeDebugLog("[debug] we got no data"); + return; + } + + // Fetching the data + $sData = fgets(STDIN, $iLength + 1); + $this->writeDebugLog("[debug] received data: ". $sData); + $aCommand = explode(":", $sData); + if (is_array($aCommand)) { + switch ($aCommand[0]) { + case "isuser": + // Check the existance of a given username + $this->isuser($aCommand); + break; + case "auth": + // Check if the givven password is correct + $this->auth($aCommand); + break; + case "setpass": + // We don't accept the setting of passwords here + $this->writeLog("[exAuth] setpass command disabled"); + fwrite(STDOUT, pack("nn", 2, 0)); + break; + default: + // We don't know the given command + $this->writeLog("[exAuth] unknown command ". $aCommand[0]); + fwrite(STDOUT, pack("nn", 2, 0)); + break; + } + } else { + $this->writeDebugLog("[debug] invalid command string"); + fwrite(STDOUT, pack("nn", 2, 0)); } - unset ($iHeader); - unset ($aLength); - unset ($iLength); - unset($aCommand); } while (true); } - public function __destruct() - { - // zatvori log file + /** + * @brief Check if the given username exists + * + * @param array $aCommand The command array + */ + private function isuser($aCommand) { + global $a; + + // Check if there is a username + if (!isset($aCommand[1])) { + $this->writeLog("[exAuth] invalid isuser command, no username given"); + fwrite(STDOUT, pack("nn", 2, 0)); + return; + } + + // Now we check if the given user is valid + $sUser = str_replace(array("%20", "(a)"), array(" ", "@"), $aCommand[1]); + $this->writeDebugLog("[debug] checking isuser for ". $sUser."@".$aCommand[2]); + + // If the hostnames doesn't match, we try to check remotely + if ($a->get_hostname() != $aCommand[2]) + $found = $this->check_user($aCommand[2], $aCommand[1], true); + else { + $sQuery = "SELECT `uid` FROM `user` WHERE `nickname`='".dbesc($sUser)."'"; + $this->writeDebugLog("[debug] using query ". $sQuery); + $r = q($sQuery); + $found = dbm::is_result($r); + } + + if ($found) { + // The user is okay + $this->writeLog("[exAuth] valid user: ". $sUser); + fwrite(STDOUT, pack("nn", 2, 1)); + } else { + // The user isn't okay + $this->writeLog("[exAuth] invalid user: ". $sUser); + fwrite(STDOUT, pack("nn", 2, 0)); + } + } + + /** + * @brief Check remote user existance via HTTP(S) + * + * @param string $host The hostname + * @param string $user Username + * @param boolean $ssl Should the check be done via SSL? + * + * @return boolean Was the user found? + */ + private function check_user($host, $user, $ssl) { + + $url = ($ssl ? "https":"http")."://".$host."/noscrape/".$user; + + $data = z_fetch_url($url); + + if (!is_array($data)) + return(false); + + if ($data["return_code"] != "200") + return(false); + + $json = @json_decode($data["body"]); + if (!is_object($json)) + return(false); + + return($json->nick == $user); + } + + /** + * @brief Authenticate the givven user and password + * + * @param array $aCommand The command array + */ + private function auth($aCommand) { + global $a; + + // check user authentication + if (sizeof($aCommand) != 4) { + $this->writeLog("[exAuth] invalid auth command, data missing"); + fwrite(STDOUT, pack("nn", 2, 0)); + return; + } + + // We now check if the password match + $sUser = str_replace(array("%20", "(a)"), array(" ", "@"), $aCommand[1]); + $this->writeDebugLog("[debug] doing auth for ".$sUser."@".$aCommand[2]); + + // If the hostnames doesn't match, we try to authenticate remotely + if ($a->get_hostname() != $aCommand[2]) + $Error = !$this->check_credentials($aCommand[2], $aCommand[1], $aCommand[3], true); + else { + $sQuery = "SELECT `uid`, `password` FROM `user` WHERE `nickname`='".dbesc($sUser)."'"; + $this->writeDebugLog("[debug] using query ". $sQuery); + if ($oResult = q($sQuery)) { + $uid = $oResult[0]["uid"]; + $Error = ($oResult[0]["password"] != hash('whirlpool',$aCommand[3])); + } else { + $this->writeLog("[MySQL] invalid query: ". $sQuery); + $Error = true; + $uid = -1; + } + if ($Error) { + $oConfig = q("SELECT `v` FROM `pconfig` WHERE `uid` = %d AND `cat` = 'xmpp' AND `k`='password' LIMIT 1;", intval($uid)); + $this->writeLog("[exAuth] got password ".$oConfig[0]["v"]); + $Error = ($aCommand[3] != $oConfig[0]["v"]); + } + } + + if ($Error) { + $this->writeLog("[exAuth] authentification failed for user ".$sUser."@". $aCommand[2]); + fwrite(STDOUT, pack("nn", 2, 0)); + } else { + $this->writeLog("[exAuth] authentificated user ".$sUser."@".$aCommand[2]); + fwrite(STDOUT, pack("nn", 2, 1)); + } + } + + /** + * @brief Check remote credentials via HTTP(S) + * + * @param string $host The hostname + * @param string $user Username + * @param string $password Password + * @param boolean $ssl Should the check be done via SSL? + * + * @return boolean Are the credentials okay? + */ + private function check_credentials($host, $user, $password, $ssl) { + $this->writeDebugLog("[debug] check credentials for user ".$user." on ".$host); + + $url = ($ssl ? "https":"http")."://".$host."/api/account/verify_credentials.json"; + + $ch = curl_init(); + curl_setopt($ch, CURLOPT_URL, $url); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); + curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); + curl_setopt($ch, CURLOPT_HEADER, true); + curl_setopt($ch, CURLOPT_NOBODY, true); + curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); + curl_setopt($ch, CURLOPT_USERPWD, $user.':'.$password); + + $header = curl_exec($ch); + $curl_info = @curl_getinfo($ch); + $http_code = $curl_info["http_code"]; + curl_close($ch); + + $this->writeDebugLog("[debug] got HTTP code ".$http_code); + + return ($http_code == 200); + } + + /** + * @brief write data to the logfile + * + * @param string $sMessage The logfile message + */ + private function writeLog($sMessage) { + if (is_resource($this->rLogFile)) + fwrite($this->rLogFile, date("r")." ".$sMessage."\n"); + } + + /** + * @brief write debug data to the logfile + * + * @param string $sMessage The logfile message + */ + private function writeDebugLog($sMessage) { + if ($this->bDebug) + $this->writeLog($sMessage); + } + + /** + * @brief destroy the class + */ + public function __destruct() { + // close the log file $this->writeLog("[exAuth] stop"); - if (is_resource($this->rLogFile)){ + if (is_resource($this->rLogFile)) fclose($this->rLogFile); - } } - - private function writeLog($sMessage) - { - if (is_resource($this->rLogFile)) { - fwrite($this->rLogFile, date("r") ." ". $sMessage ."\n"); - } - } - - private function writeDebugLog($sMessage) - { - if ($this->bDebug){ - $this->writeLog($sMessage); - } - } - } ?> - - diff --git a/include/bbcode.php b/include/bbcode.php index 62f56558f..ebafc353a 100644 --- a/include/bbcode.php +++ b/include/bbcode.php @@ -34,7 +34,6 @@ function bb_map_location($match) { function bb_attachment($Text, $simplehtml = false, $tryoembed = true) { $data = get_attachment_data($Text); - if (!$data) return $Text; @@ -85,7 +84,7 @@ function bb_attachment($Text, $simplehtml = false, $tryoembed = true) { $text .= $oembed; if (trim($data["description"]) != "") - $text .= sprintf('
%s
', trim($data["description"])); + $text .= sprintf('
%s
', trim(bbcode($data["description"]))); } } return $data["text"].$text.$data["after"]; @@ -147,7 +146,7 @@ function cleancss($input) { if (($char >= "a") and ($char <= "z")) $cleaned .= $char; - if (!(strpos(" #;:0123456789-_", $char) === false)) + if (!(strpos(" #;:0123456789-_.%", $char) === false)) $cleaned .= $char; } @@ -408,23 +407,28 @@ function bb_ShareAttributes($share, $simplehtml) { if ($itemcache == "") $reldate = (($posted) ? " " . relative_date($posted) : ''); + // We only call this so that a previously unknown contact can be added. + // This is important for the function "get_contact_details_by_url". + // This function then can fetch an entry from the contact table. + get_contact($profile, 0); + $data = get_contact_details_by_url($profile); - if (isset($data["name"]) AND isset($data["addr"])) + if (isset($data["name"]) AND ($data["name"] != "") AND isset($data["addr"]) AND ($data["addr"] != "")) $userid_compact = $data["name"]." (".$data["addr"].")"; else $userid_compact = GetProfileUsername($profile,$author, true); - if (isset($data["addr"])) + if (isset($data["addr"]) AND ($data["addr"] != "")) $userid = $data["addr"]; else $userid = GetProfileUsername($profile,$author, false); - if (isset($data["name"])) + if (isset($data["name"]) AND ($data["name"] != "")) $author = $data["name"]; - if (isset($data["photo"])) - $avatar = $data["photo"]; + if (isset($data["micro"]) AND ($data["micro"] != "")) + $avatar = $data["micro"]; $preshare = trim($share[1]); @@ -490,6 +494,8 @@ function bb_ShareAttributes($share, $simplehtml) { default: $text = trim($share[1])."\n"; + $avatar = proxy_url($avatar, false, PROXY_SIZE_THUMB); + $tpl = get_markup_template('shared_content.tpl'); $text .= replace_macros($tpl, array( @@ -717,6 +723,13 @@ function bb_CleanPictureLinks($text) { return ($text); } +function bb_highlight($match) { + if(in_array(strtolower($match[1]),['php','css','mysql','sql','abap','diff','html','perl','ruby', + 'vbscript','avrc','dtd','java','xml','cpp','python','javascript','js','sh'])) + return text_highlight($match[2],strtolower($match[1])); + return $match[0]; +} + // BBcode 2 HTML was written by WAY2WEB.net // extended to work with Mistpark/Friendica - Mike Macgirvin @@ -769,6 +782,11 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true, $simplehtml = fal if (!$tryoembed) $Text = preg_replace("/\[share(.*?)avatar\s?=\s?'.*?'\s?(.*?)\]\s?(.*?)\s?\[\/share\]\s?/ism","\n[share$1$2]$3[/share]",$Text); + // Check for [code] text here, before the linefeeds are messed with. + // The highlighter will unescape and re-escape the content. + if (strpos($Text,'[code=') !== false) { + $Text = preg_replace_callback("/\[code=(.*?)\](.*?)\[\/code\]/ism", 'bb_highlight', $Text); + } // Convert new line chars to html
tags // nlbr seems to be hopelessly messed up @@ -874,8 +892,7 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true, $simplehtml = fal // we may need to restrict this further if it picks up too many strays // link acct:user@host to a webfinger profile redirector - $Text = preg_replace('/acct:(.*?)@(.*?)([ ,])/', 'acct:' . "$1@$2$3" . '',$Text); + $Text = preg_replace('/acct:([^@]+)@((?!\-)(?:[a-zA-Z\d\-]{0,62}[a-zA-Z\d]\.){1,126}(?!\d+)[a-zA-Z\d]{1,63})/', 'acct:$1@$2',$Text); // Perform MAIL Search $Text = preg_replace("/\[mail\]([$MAILSearchString]*)\[\/mail\]/", '$1', $Text); @@ -902,6 +919,9 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true, $simplehtml = fal $Text = preg_replace("(\[h5\](.*?)\[\/h5\])ism",'
$1
',$Text); $Text = preg_replace("(\[h6\](.*?)\[\/h6\])ism",'
$1
',$Text); + // Check for paragraph + $Text = preg_replace("(\[p\](.*?)\[\/p\])ism",'

$1

',$Text); + // Check for bold text $Text = preg_replace("(\[b\](.*?)\[\/b\])ism",'$1',$Text); @@ -1121,6 +1141,7 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true, $simplehtml = fal $Text = preg_replace("/\[event\-finish\](.*?)\[\/event\-finish\]/ism",'',$Text); $Text = preg_replace("/\[event\-location\](.*?)\[\/event\-location\]/ism",'',$Text); $Text = preg_replace("/\[event\-adjust\](.*?)\[\/event\-adjust\]/ism",'',$Text); + $Text = preg_replace("/\[event\-id\](.*?)\[\/event\-id\]/ism",'',$Text); } diff --git a/include/cache.php b/include/cache.php index d0b0dfafd..b8016ac45 100644 --- a/include/cache.php +++ b/include/cache.php @@ -1,72 +1,197 @@ connect($memcache_host, $memcache_port)) { + return false; + } + + return $memcache; + } + + /** + * @brief Return the duration for a given cache level + * + * @param integer $level Cache level + * + * @return integer The cache duration in seconds + */ + private function duration($level) { + switch($level) { + case CACHE_MONTH; + $seconds = 2592000; + break; + case CACHE_WEEK; + $seconds = 604800; + break; + case CACHE_DAY; + $seconds = 86400; + break; + case CACHE_HOUR; + $seconds = 3600; + break; + case CACHE_HALF_HOUR; + $seconds = 1800; + break; + case CACHE_QUARTER_HOUR; + $seconds = 900; + break; + case CACHE_FIVE_MINUTES; + $seconds = 300; + break; + case CACHE_MINUTE; + $seconds = 60; + break; + } + return $seconds; + } + + /** + * @brief Fetch cached data according to the key + * + * @param string $key The key to the cached data + * + * @return mixed Cached $value or "null" if not found + */ + public static function get($key) { + + $memcache = self::memcache(); + if (is_object($memcache)) { + // We fetch with the hostname as key to avoid problems with other applications + $value = $memcache->get(get_app()->get_hostname().":".$key); + if (!is_bool($value)) { + return unserialize($value); + } return null; } - public static function set($key,$value, $duration = CACHE_MONTH) { + // Frequently clear cache + self::clear($duration); - q("REPLACE INTO `cache` (`k`,`v`,`expire_mode`,`updated`) VALUES ('%s','%s',%d,'%s')", - dbesc($key), - dbesc($value), - intval($duration), - dbesc(datetime_convert())); + $r = q("SELECT `v` FROM `cache` WHERE `k`='%s' LIMIT 1", + dbesc($key) + ); + if (dbm::is_result($r)) { + return unserialize($r[0]['v']); } - -/* - * - * Leaving this legacy code temporaily to see how REPLACE fares - * as opposed to non-atomic checks when faced with fast moving key duplication. - * As a MySQL extension it isn't portable, but we're not yet very portable. - */ - -/* - * $r = q("SELECT * FROM `cache` WHERE `k`='%s' limit 1", - * dbesc($key) - * ); - * if(count($r)) { - * q("UPDATE `cache` SET `v` = '%s', `updated = '%s' WHERE `k` = '%s'", - * dbesc($value), - * dbesc(datetime_convert()), - * dbesc($key)); - * } - * else { - * q("INSERT INTO `cache` (`k`,`v`,`updated`) VALUES ('%s','%s','%s')", - * dbesc($key), - * dbesc($value), - * dbesc(datetime_convert())); - * } - * } - */ - - - public static function clear(){ - q("DELETE FROM `cache` WHERE `updated` < '%s' AND `expire_mode` = %d", - dbesc(datetime_convert('UTC','UTC',"now - 30 days")), intval(CACHE_MONTH)); - - q("DELETE FROM `cache` WHERE `updated` < '%s' AND `expire_mode` = %d", - dbesc(datetime_convert('UTC','UTC',"now - 7 days")), intval(CACHE_WEEK)); - - q("DELETE FROM `cache` WHERE `updated` < '%s' AND `expire_mode` = %d", - dbesc(datetime_convert('UTC','UTC',"now - 1 days")), intval(CACHE_DAY)); - - q("DELETE FROM `cache` WHERE `updated` < '%s' AND `expire_mode` = %d", - dbesc(datetime_convert('UTC','UTC',"now - 1 hours")), intval(CACHE_HOUR)); - } - + return null; } + /** + * @brief Put data in the cache according to the key + * + * The input $value can have multiple formats. + * + * @param string $key The key to the cached data + * @param mixed $valie The value that is about to be stored + * @param integer $duration The cache lifespan + */ + public static function set($key, $value, $duration = CACHE_MONTH) { + + // Do we have an installed memcache? Use it instead. + $memcache = self::memcache(); + if (is_object($memcache)) { + // We store with the hostname as key to avoid problems with other applications + $memcache->set(get_app()->get_hostname().":".$key, serialize($value), MEMCACHE_COMPRESSED, self::duration($duration)); + return; + } + + /// @todo store the cache data in the same way like the config data + q("REPLACE INTO `cache` (`k`,`v`,`expire_mode`,`updated`) VALUES ('%s','%s',%d,'%s')", + dbesc($key), + dbesc(serialize($value)), + intval($duration), + dbesc(datetime_convert())); + } + + /** + * @brief Remove outdated data from the cache + * + * @param integer $maxlevel The maximum cache level that is to be cleared + */ + public static function clear($max_level = CACHE_MONTH) { + + // Clear long lasting cache entries only once a day + if (get_config("system", "cache_cleared_day") < time() - self::duration(CACHE_DAY)) { + if ($max_level == CACHE_MONTH) { + q("DELETE FROM `cache` WHERE `updated` < '%s' AND `expire_mode` = %d", + dbesc(datetime_convert('UTC','UTC',"now - 30 days")), intval(CACHE_MONTH)); + } + + if ($max_level <= CACHE_WEEK) { + q("DELETE FROM `cache` WHERE `updated` < '%s' AND `expire_mode` = %d", + dbesc(datetime_convert('UTC','UTC',"now - 7 days")), intval(CACHE_WEEK)); + } + + if ($max_level <= CACHE_DAY) { + q("DELETE FROM `cache` WHERE `updated` < '%s' AND `expire_mode` = %d", + dbesc(datetime_convert('UTC','UTC',"now - 1 days")), intval(CACHE_DAY)); + } + set_config("system", "cache_cleared_day", time()); + } + + if (($max_level <= CACHE_HOUR) AND (get_config("system", "cache_cleared_hour")) < time() - self::duration(CACHE_HOUR)) { + q("DELETE FROM `cache` WHERE `updated` < '%s' AND `expire_mode` = %d", + dbesc(datetime_convert('UTC','UTC',"now - 1 hours")), intval(CACHE_HOUR)); + + set_config("system", "cache_cleared_hour", time()); + } + + if (($max_level <= CACHE_HALF_HOUR) AND (get_config("system", "cache_cleared_half_hour")) < time() - self::duration(CACHE_HALF_HOUR)) { + q("DELETE FROM `cache` WHERE `updated` < '%s' AND `expire_mode` = %d", + dbesc(datetime_convert('UTC','UTC',"now - 30 minutes")), intval(CACHE_HALF_HOUR)); + + set_config("system", "cache_cleared_half_hour", time()); + } + + if (($max_level <= CACHE_QUARTER_HOUR) AND (get_config("system", "cache_cleared_hour")) < time() - self::duration(CACHE_QUARTER_HOUR)) { + q("DELETE FROM `cache` WHERE `updated` < '%s' AND `expire_mode` = %d", + dbesc(datetime_convert('UTC','UTC',"now - 15 minutes")), intval(CACHE_QUARTER_HOUR)); + + set_config("system", "cache_cleared_quarter_hour", time()); + } + + if (($max_level <= CACHE_FIVE_MINUTES) AND (get_config("system", "cache_cleared_five_minute")) < time() - self::duration(CACHE_FIVE_MINUTES)) { + q("DELETE FROM `cache` WHERE `updated` < '%s' AND `expire_mode` = %d", + dbesc(datetime_convert('UTC','UTC',"now - 5 minutes")), intval(CACHE_FIVE_MINUTES)); + + set_config("system", "cache_cleared_five_minute", time()); + } + + if (($max_level <= CACHE_MINUTE) AND (get_config("system", "cache_cleared_minute")) < time() - self::duration(CACHE_MINUTE)) { + q("DELETE FROM `cache` WHERE `updated` < '%s' AND `expire_mode` = %d", + dbesc(datetime_convert('UTC','UTC',"now - 1 minutes")), intval(CACHE_MINUTE)); + + set_config("system", "cache_cleared_minute", time()); + } + } +} diff --git a/include/cli_startup.php b/include/cli_startup.php index d43bc1c94..4cb86adef 100644 --- a/include/cli_startup.php +++ b/include/cli_startup.php @@ -11,7 +11,7 @@ function cli_startup() { if(is_null($a)) { $a = new App; } - + if(is_null($db)) { @include(".htconfig.php"); require_once("dba.php"); diff --git a/include/contact_selectors.php b/include/contact_selectors.php index 3bf68f764..35c9d983d 100644 --- a/include/contact_selectors.php +++ b/include/contact_selectors.php @@ -7,10 +7,10 @@ function contact_profile_assign($current,$foreign_net) { $disabled = (($foreign_net) ? ' disabled="true" ' : ''); - $o .= "\r\n"; $r = q("SELECT `id`, `profile-name` FROM `profile` WHERE `uid` = %d", - intval($_SESSION['uid'])); + intval($_SESSION['uid'])); if(count($r)) { foreach($r as $rr) { diff --git a/include/conversation.php b/include/conversation.php index 87ad42b04..eba2abdd4 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -374,30 +374,18 @@ function visible_activity($item) { } /** - * @brief List of all contact fields that are needed for the conversation function + * @brief SQL query for items */ -function contact_fieldlist() { +function item_query() { - $fieldlist = "`contact`.`network`, `contact`.`url`, `contact`.`name`, `contact`.`writable`, - `contact`.`self`, `contact`.`id` AS `cid`, `contact`.`alias`"; - - return $fieldlist; + return "SELECT ".item_fieldlists()." FROM `item` ". + item_joins()." WHERE ".item_condition(); } /** - * @brief SQL condition for contacts + * @brief List of all data fields that are needed for displaying items */ -function contact_condition() { - - $condition = "NOT `contact`.`blocked` AND NOT `contact`.`pending`"; - - return $condition; -} - -/** - * @brief List of all item fields that are needed for the conversation function - */ -function item_fieldlist() { +function item_fieldlists() { /* These Fields are not added below (yet). They are here to for bug search. @@ -405,19 +393,15 @@ These Fields are not added below (yet). They are here to for bug search. `item`.`extid`, `item`.`received`, `item`.`changed`, -`item`.`author-avatar`, -`item`.`object`, +`item`.`moderated`, `item`.`target-type`, `item`.`target`, `item`.`resource-id`, `item`.`tag`, -`item`.`attach`, `item`.`inform`, `item`.`pubmail`, -`item`.`moderated`, `item`.`visible`, `item`.`spam`, -`item`.`starred`, `item`.`bookmark`, `item`.`unseen`, `item`.`deleted`, @@ -430,28 +414,42 @@ These Fields are not added below (yet). They are here to for bug search. `item`.`shadow`, */ - $fieldlist = "`item`.`author-link`, `item`.`verb`, `item`.`id`, `item`.`parent`, `item`.`file`, - `item`.`uid`, `item`.`author-name`, `item`.`location`, `item`.`coord`, - `item`.`title`, `item`.`uri`, `item`.`created`, `item`.`app`, `item`.`guid`, - `item`.`contact-id`, `item`.`thr-parent`, `item`.`parent-uri`, `item`.`rendered-hash`, - `item`.`body`, `item`.`rendered-html`, `item`.`private`, `item`.`edited`, - `item`.`allow_cid`, `item`.`allow_gid`, `item`.`deny_cid`, `item`.`deny_gid`, - `item`.`event-id`, `item`.`object-type`, `item`.`starred`, `item`.`created`, - `item`.`postopts`, `item`.`owner-link`, `item`.`owner-name`, `item`.`owner-avatar`, - `item`.`plink`, `item`.`wall`, `item`.`commented`, - `item`.`id` AS `item_id`, `item`.`network` AS `item_network`"; + return "`item`.`author-link`, `item`.`author-name`, `item`.`author-avatar`, + `item`.`owner-link`, `item`.`owner-name`, `item`.`owner-avatar`, + `item`.`contact-id`, `item`.`uid`, `item`.`id`, `item`.`parent`, + `item`.`uri`, `item`.`thr-parent`, `item`.`parent-uri`, + `item`.`commented`, `item`.`created`, `item`.`edited`, + `item`.`verb`, `item`.`object-type`, `item`.`postopts`, `item`.`plink`, + `item`.`guid`, `item`.`wall`, `item`.`private`, `item`.`starred`, + `item`.`title`, `item`.`body`, `item`.`file`, `item`.`event-id`, + `item`.`location`, `item`.`coord`, `item`.`app`, `item`.`attach`, + `item`.`rendered-hash`, `item`.`rendered-html`, `item`.`object`, + `item`.`allow_cid`, `item`.`allow_gid`, `item`.`deny_cid`, `item`.`deny_gid`, + `item`.`id` AS `item_id`, `item`.`network` AS `item_network`, - return $fieldlist; + `author`.`thumb` AS `author-thumb`, `owner`.`thumb` AS `owner-thumb`, + + `contact`.`network`, `contact`.`url`, `contact`.`name`, `contact`.`writable`, + `contact`.`self`, `contact`.`id` AS `cid`, `contact`.`alias`"; } /** - * @brief SQL condition for items + * @brief SQL join for contacts that are needed for displaying items + */ +function item_joins() { + + return "STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND + NOT `contact`.`blocked` AND NOT `contact`.`pending` + LEFT JOIN `contact` AS `author` ON `author`.`id`=`item`.`author-id` + LEFT JOIN `contact` AS `owner` ON `owner`.`id`=`item`.`owner-id`"; +} + +/** + * @brief SQL condition for items that are needed for displaying items */ function item_condition() { - $condition = "`item`.`visible` AND NOT `item`.`deleted` AND NOT `item`.`moderated`"; - - return $condition; + return "`item`.`visible` AND NOT `item`.`deleted` AND NOT `item`.`moderated`"; } /** @@ -623,7 +621,6 @@ function conversation(&$a, $items, $mode, $update, $preview = false) { $comment = ''; $owner_url = ''; - $owner_photo = ''; $owner_name = ''; $sparkle = ''; @@ -668,18 +665,6 @@ function conversation(&$a, $items, $mode, $update, $preview = false) { $tags[] = $prefix."".$tag["term"].""; } - /*foreach(explode(',',$item['tag']) as $tag){ - $tag = trim($tag); - if ($tag!="") { - $t = bbcode($tag); - $tags[] = $t; - if($t[0] == '#') - $hashtags[] = $t; - elseif($t[0] == '@') - $mentions[] = $t; - } - }*/ - $sp = false; $profile_link = best_link_url($item,$sp); if($profile_link === 'mailbox') @@ -689,12 +674,21 @@ function conversation(&$a, $items, $mode, $update, $preview = false) { else $profile_link = zrl($profile_link); - // Don't rely on the author-avatar. It is better to use the data from the contact table - $author_contact = get_contact_details_by_url($item['author-link'], $profile_owner); - if ($author_contact["thumb"]) - $profile_avatar = $author_contact["thumb"]; - else - $profile_avatar = $item['author-avatar']; + if (!isset($item['author-thumb']) OR ($item['author-thumb'] == "")) { + $author_contact = get_contact_details_by_url($item['author-link'], $profile_owner); + if ($author_contact["thumb"]) + $item['author-thumb'] = $author_contact["thumb"]; + else + $item['author-thumb'] = $item['author-avatar']; + } + + if (!isset($item['owner-thumb']) OR ($item['owner-thumb'] == "")) { + $owner_contact = get_contact_details_by_url($item['owner-link'], $profile_owner); + if ($owner_contact["thumb"]) + $item['owner-thumb'] = $owner_contact["thumb"]; + else + $item['owner-thumb'] = $item['owner-avatar']; + } $locate = array('location' => $item['location'], 'coord' => $item['coord'], 'html' => ''); call_hooks('render_location',$locate); @@ -762,7 +756,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) { 'name' => $profile_name_e, 'sparkle' => $sparkle, 'lock' => $lock, - 'thumb' => App::remove_baseurl(proxy_url($profile_avatar, false, PROXY_SIZE_THUMB)), + 'thumb' => App::remove_baseurl(proxy_url($item['author-thumb'], false, PROXY_SIZE_THUMB)), 'title' => $item['title_e'], 'body' => $body_e, 'tags' => $tags_e, @@ -781,7 +775,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) { 'indent' => '', 'owner_name' => $owner_name_e, 'owner_url' => $owner_url, - 'owner_photo' => proxy_url($owner_photo, false, PROXY_SIZE_THUMB), + 'owner_photo' => App::remove_baseurl(proxy_url($item['owner-thumb'], false, PROXY_SIZE_THUMB)), 'plink' => get_plink($item), 'edpost' => false, 'isstarred' => $isstarred, @@ -885,15 +879,13 @@ function conversation(&$a, $items, $mode, $update, $preview = false) { function best_link_url($item,&$sparkle,$ssl_state = false) { - $a = get_app(); - $best_url = ''; $sparkle = false; $clean_url = normalise_link($item['author-link']); if (local_user()) { - $r = q("SELECT `id` FROM `contact` WHERE `network` = '%s' AND `uid` = %d AND `nurl` = '%s' LIMIT 1", + $r = q("SELECT `id` FROM `contact` WHERE `network` = '%s' AND `uid` = %d AND `nurl` = '%s' AND NOT `pending` LIMIT 1", dbesc(NETWORK_DFRN), intval(local_user()), dbesc(normalise_link($clean_url))); if ($r) { $best_url = 'redir/'.$r[0]['id']; @@ -911,80 +903,86 @@ function best_link_url($item,&$sparkle,$ssl_state = false) { } -if(! function_exists('item_photo_menu')){ -function item_photo_menu($item){ - $a = get_app(); - +if (! function_exists('item_photo_menu')) { +function item_photo_menu($item) +{ $ssl_state = false; - if(local_user()) + if(local_user()) { $ssl_state = true; + } - $sub_link=""; - $poke_link=""; - $contact_url=""; - $pm_url=""; - $status_link=""; - $photos_link=""; - $posts_link=""; - $network = ""; + $sub_link = ''; + $poke_link = ''; + $contact_url = ''; + $pm_url = ''; + $status_link = ''; + $photos_link = ''; + $posts_link = ''; + $network = ''; - if((local_user()) && local_user() == $item['uid'] && $item['parent'] == $item['id'] && (! $item['self'])) { + if ((local_user()) && local_user() == $item['uid'] && $item['parent'] == $item['id'] && (! $item['self'])) { $sub_link = 'javascript:dosubthread(' . $item['id'] . '); return false;'; } $sparkle = false; - $profile_link = best_link_url($item,$sparkle,$ssl_state); - if($profile_link === 'mailbox') + $profile_link = best_link_url($item, $sparkle, $ssl_state); + if ($profile_link === 'mailbox') { $profile_link = ''; + } $cid = 0; - $network = ""; + $network = ''; $rel = 0; $r = q("SELECT `id`, `network`, `rel` FROM `contact` WHERE `uid` = %d AND `nurl` = '%s' LIMIT 1", intval(local_user()), dbesc(normalise_link($item['author-link']))); if ($r) { - $cid = $r[0]["id"]; - $network = $r[0]["network"]; - $rel = $r[0]["rel"]; + $cid = $r[0]['id']; + $network = $r[0]['network']; + $rel = $r[0]['rel']; } if($sparkle) { - $status_link = $profile_link."?url=status"; - $photos_link = $profile_link."?url=photos"; - $profile_link = $profile_link."?url=profile"; + $status_link = $profile_link . '?url=status'; + $photos_link = $profile_link . '?url=photos'; + $profile_link = $profile_link . '?url=profile'; $zurl = ''; - } else + } else { $profile_link = zrl($profile_link); + } - if($cid && !$item['self']) { - $poke_link = 'poke/?f=&c='.$cid; - $contact_url = 'contacts/'.$cid; - $posts_link = 'contacts/'.$cid.'/posts'; + if ($cid && !$item['self']) { + $poke_link = 'poke/?f=&c=' . $cid; + $contact_url = 'contacts/' . $cid; + $posts_link = 'contacts/' . $cid . '/posts'; - if (in_array($network, array(NETWORK_DFRN, NETWORK_DIASPORA))) - $pm_url = 'message/new/'.$cid; + if (in_array($network, array(NETWORK_DFRN, NETWORK_DIASPORA))) { + $pm_url = 'message/new/' . $cid; + } } if (local_user()) { $menu = Array( - t("Follow Thread") => $sub_link, - t("View Status") => $status_link, - t("View Profile") => $profile_link, - t("View Photos") => $photos_link, - t("Network Posts") => $posts_link, - t("Edit Contact") => $contact_url, - t("Send PM") => $pm_url + t('Follow Thread') => $sub_link, + t('View Status') => $status_link, + t('View Profile') => $profile_link, + t('View Photos') => $photos_link, + t('Network Posts') => $posts_link, + t('View Contact') => $contact_url, + t('Send PM') => $pm_url ); - if ($network == NETWORK_DFRN) + if ($network == NETWORK_DFRN) { $menu[t("Poke")] = $poke_link; + } if ((($cid == 0) OR ($rel == CONTACT_IS_FOLLOWER)) AND - in_array($item['network'], array(NETWORK_DFRN, NETWORK_OSTATUS, NETWORK_DIASPORA))) - $menu[t("Connect/Follow")] = "follow?url=".urlencode($item['author-link']); - } else - $menu = array(t("View Profile") => $item['author-link']); + in_array($item['network'], array(NETWORK_DFRN, NETWORK_OSTATUS, NETWORK_DIASPORA))) { + $menu[t('Connect/Follow')] = 'follow?url=' . urlencode($item['author-link']); + } + } else { + $menu = array(t('View Profile') => $item['author-link']); + } $args = array('item' => $item, 'menu' => $menu); @@ -992,13 +990,14 @@ function item_photo_menu($item){ $menu = $args['menu']; - $o = ""; - foreach($menu as $k=>$v){ - if(strpos($v,'javascript:') === 0) { - $v = substr($v,11); - $o .= "
  • $k
  • \n"; + $o = ''; + foreach ($menu as $k => $v) { + if (strpos($v, 'javascript:') === 0) { + $v = substr($v, 11); + $o .= '
  • ' . $k . '
  • ' . PHP_EOL; + } elseif ($v!='') { + $o .= '
  • ' . $k . '
  • ' . PHP_EOL; } - elseif ($v!="") $o .= "
  • $k
  • \n"; } return $o; }} @@ -1145,7 +1144,7 @@ function format_like($cnt,$arr,$type,$id) { $explikers = sprintf( t('%s don\'t attend.'), $likers); break; case 'attendmaybe': - $phrase = sprintf( t('%2$d people anttend maybe'), $spanatts, $cnt); + $phrase = sprintf( t('%2$d people attend maybe'), $spanatts, $cnt); $explikers = sprintf( t('%s anttend maybe.'), $likers); break; } @@ -1289,6 +1288,10 @@ function status_editor($a,$x, $notes_cid = 0, $popup=false) { '$private' => t('Private post'), '$is_private' => $private_post, '$public_link' => $public_post_link, + + //jot nav tab (used in some themes) + '$message' => t('Message'), + '$browser' => t('Browser'), )); diff --git a/include/cron.php b/include/cron.php index c1e4338d6..fea5b3961 100644 --- a/include/cron.php +++ b/include/cron.php @@ -11,6 +11,7 @@ if (!file_exists("boot.php") AND (sizeof($_SERVER["argv"]) != 0)) { } require_once("boot.php"); +require_once("include/photos.php"); function cron_run(&$argv, &$argc){ @@ -27,7 +28,6 @@ function cron_run(&$argv, &$argc){ unset($db_host, $db_user, $db_pass, $db_data); }; - require_once('include/session.php'); require_once('include/datetime.php'); require_once('include/items.php'); @@ -70,53 +70,48 @@ function cron_run(&$argv, &$argc){ // run queue delivery process in the background - proc_run('php',"include/queue.php"); + proc_run(PRIORITY_NEGLIGIBLE, "include/queue.php"); // run the process to discover global contacts in the background - proc_run('php',"include/discover_poco.php"); + proc_run(PRIORITY_LOW, "include/discover_poco.php"); // run the process to update locally stored global contacts in the background - proc_run('php',"include/discover_poco.php", "checkcontact"); + proc_run(PRIORITY_LOW, "include/discover_poco.php", "checkcontact"); - // expire any expired accounts + // Expire and remove user entries + cron_expire_and_remove_users(); - q("UPDATE user SET `account_expired` = 1 where `account_expired` = 0 - AND `account_expires_on` != '0000-00-00 00:00:00' - AND `account_expires_on` < UTC_TIMESTAMP() "); + // If the worker is active, split the jobs in several sub processes + if (get_config("system", "worker")) { + // Check OStatus conversations + proc_run(PRIORITY_MEDIUM, "include/cronjobs.php", "ostatus_mentions"); - // delete user and contact records for recently removed accounts + // Check every conversation + proc_run(PRIORITY_MEDIUM, "include/cronjobs.php", "ostatus_conversations"); - $r = q("SELECT * FROM `user` WHERE `account_removed` = 1 AND `account_expires_on` < UTC_TIMESTAMP() - INTERVAL 3 DAY"); - if ($r) { - foreach($r as $user) { - q("DELETE FROM `contact` WHERE `uid` = %d", intval($user['uid'])); - q("DELETE FROM `user` WHERE `uid` = %d", intval($user['uid'])); - } + // Call possible post update functions + proc_run(PRIORITY_LOW, "include/cronjobs.php", "post_update"); + + // update nodeinfo data + proc_run(PRIORITY_LOW, "include/cronjobs.php", "nodeinfo"); + } else { + // Check OStatus conversations + // Check only conversations with mentions (for a longer time) + ostatus::check_conversations(true); + + // Check every conversation + ostatus::check_conversations(false); + + // Call possible post update functions + // see include/post_update.php for more details + post_update(); + + // update nodeinfo data + nodeinfo_cron(); } - $abandon_days = intval(get_config('system','account_abandon_days')); - if($abandon_days < 1) - $abandon_days = 0; - - // Check OStatus conversations - // Check only conversations with mentions (for a longer time) - ostatus::check_conversations(true); - - // Check every conversation - ostatus::check_conversations(false); - - // Call possible post update functions - // see include/post_update.php for more details - post_update(); - - // update nodeinfo data - nodeinfo_cron(); - - /// @TODO Regenerate usage statistics - // q("ANALYZE TABLE `item`"); - // once daily run birthday_updates and then expire in background $d1 = get_config('system','last_expire_day'); @@ -126,11 +121,15 @@ function cron_run(&$argv, &$argc){ update_contact_birthdays(); - proc_run('php',"include/discover_poco.php", "suggestions"); + proc_run(PRIORITY_LOW, "include/discover_poco.php", "suggestions"); set_config('system','last_expire_day',$d2); - proc_run('php','include/expire.php'); + proc_run(PRIORITY_LOW, 'include/expire.php'); + + proc_run(PRIORITY_LOW, 'include/dbclean.php'); + + cron_update_photo_albums(); } // Clear cache entries @@ -142,28 +141,78 @@ function cron_run(&$argv, &$argc){ // Repair entries in the database cron_repair_database(); + // Poll contacts + cron_poll_contacts($argc, $argv); + + logger('cron: end'); + + set_config('system','last_cron', time()); + + return; +} + +/** + * @brief Update the cached values for the number of photo albums per user + */ +function cron_update_photo_albums() { + $r = q("SELECT `uid` FROM `user` WHERE NOT `account_expired` AND NOT `account_removed`"); + if (!dbm::is_result($r)) { + return; + } + + foreach ($r AS $user) { + photo_albums($user['uid'], true); + } +} + +/** + * @brief Expire and remove user entries + */ +function cron_expire_and_remove_users() { + // expire any expired accounts + q("UPDATE user SET `account_expired` = 1 where `account_expired` = 0 + AND `account_expires_on` != '0000-00-00 00:00:00' + AND `account_expires_on` < UTC_TIMESTAMP() "); + + // delete user and contact records for recently removed accounts + $r = q("SELECT * FROM `user` WHERE `account_removed` AND `account_expires_on` < UTC_TIMESTAMP() - INTERVAL 3 DAY"); + if ($r) { + foreach($r as $user) { + q("DELETE FROM `contact` WHERE `uid` = %d", intval($user['uid'])); + q("DELETE FROM `user` WHERE `uid` = %d", intval($user['uid'])); + } + } +} + +/** + * @brief Poll contacts for unreceived messages + * + * @param Integer $argc Number of command line arguments + * @param Array $argv Array of command line arguments + */ +function cron_poll_contacts($argc, $argv) { $manual_id = 0; $generation = 0; $force = false; $restart = false; - if(($argc > 1) && ($argv[1] == 'force')) + if (($argc > 1) && ($argv[1] == 'force')) $force = true; - if(($argc > 1) && ($argv[1] == 'restart')) { + if (($argc > 1) && ($argv[1] == 'restart')) { $restart = true; $generation = intval($argv[2]); - if(! $generation) + if (!$generation) killme(); } - if(($argc > 1) && intval($argv[1])) { + if (($argc > 1) && intval($argv[1])) { $manual_id = intval($argv[1]); $force = true; } $interval = intval(get_config('system','poll_interval')); - if(! $interval) + if (!$interval) $interval = ((get_config('system','delivery_interval') === false) ? 3 : intval(get_config('system','delivery_interval'))); // If we are using the worker we don't need a delivery interval @@ -180,6 +229,10 @@ function cron_run(&$argv, &$argc){ // and which have a polling address and ignore Diaspora since // we are unable to match those posts with a Diaspora GUID and prevent duplicates. + $abandon_days = intval(get_config('system','account_abandon_days')); + if($abandon_days < 1) + $abandon_days = 0; + $abandon_sql = (($abandon_days) ? sprintf(" AND `user`.`login_date` > UTC_TIMESTAMP() - INTERVAL %d DAY ", intval($abandon_days)) : '' @@ -200,11 +253,11 @@ function cron_run(&$argv, &$argc){ dbesc(NETWORK_MAIL2) ); - if(! count($contacts)) { + if (!count($contacts)) { return; } - foreach($contacts as $c) { + foreach ($contacts as $c) { $res = q("SELECT * FROM `contact` WHERE `id` = %d LIMIT 1", intval($c['id']) @@ -266,24 +319,22 @@ function cron_run(&$argv, &$argc){ $update = true; break; } - if(!$update) + if (!$update) continue; } logger("Polling ".$contact["network"]." ".$contact["id"]." ".$contact["nick"]." ".$contact["name"]); - proc_run('php','include/onepoll.php',$contact['id']); + if ($contact["remote_self"]) { + proc_run(PRIORITY_MEDIUM, 'include/onepoll.php', $contact['id']); + } else { + proc_run(PRIORITY_LOW, 'include/onepoll.php', $contact['id']); + } if($interval) @time_sleep_until(microtime(true) + (float) $interval); } } - - logger('cron: end'); - - set_config('system','last_cron', time()); - - return; } /** @@ -327,10 +378,10 @@ function cron_clear_cache(&$a) { } // Delete the cached OEmbed entries that are older than one year - q("DELETE FROM `oembed` WHERE `created` < NOW() - INTERVAL 1 YEAR"); + q("DELETE FROM `oembed` WHERE `created` < NOW() - INTERVAL 3 MONTH"); // Delete the cached "parse_url" entries that are older than one year - q("DELETE FROM `parsed_url` WHERE `created` < NOW() - INTERVAL 1 YEAR"); + q("DELETE FROM `parsed_url` WHERE `created` < NOW() - INTERVAL 3 MONTH"); // Maximum table size in megabyte $max_tablesize = intval(get_config('system','optimize_max_tablesize')) * 1000000; diff --git a/include/cronhooks.php b/include/cronhooks.php index b6cf0e723..4bb1e5f65 100644 --- a/include/cronhooks.php +++ b/include/cronhooks.php @@ -31,6 +31,17 @@ function cronhooks_run(&$argv, &$argc){ return; } + load_hooks(); + + if (($argc == 2) AND is_array($a->hooks) AND array_key_exists("cron", $a->hooks)) { + foreach ($a->hooks["cron"] as $hook) + if ($hook[1] == $argv[1]) { + logger("Calling cron hook '".$hook[1]."'", LOGGER_DEBUG); + call_single_hook($a, $name, $hook, $data); + } + return; + } + $last = get_config('system','last_cronhook'); $poll_interval = intval(get_config('system','cronhook_interval')); @@ -47,13 +58,17 @@ function cronhooks_run(&$argv, &$argc){ $a->set_baseurl(get_config('system','url')); - load_hooks(); - logger('cronhooks: start'); $d = datetime_convert(); - call_hooks('cron', $d); + if (get_config("system", "worker") AND is_array($a->hooks) AND array_key_exists("cron", $a->hooks)) { + foreach ($a->hooks["cron"] as $hook) { + logger("Calling cronhooks for '".$hook[1]."'", LOGGER_DEBUG); + proc_run(PRIORITY_MEDIUM, "include/cronhooks.php", $hook[1]); + } + } else + call_hooks('cron', $d); logger('cronhooks: end'); diff --git a/include/cronjobs.php b/include/cronjobs.php new file mode 100644 index 000000000..1511efbe0 --- /dev/null +++ b/include/cronjobs.php @@ -0,0 +1,77 @@ +set_baseurl(get_config('system','url')); + + // No parameter set? So return + if ($argc <= 1) + return; + + // Check OStatus conversations + // Check only conversations with mentions (for a longer time) + if ($argv[1] == 'ostatus_mentions') { + ostatus::check_conversations(true); + return; + } + + // Check every conversation + if ($argv[1] == 'ostatus_conversations') { + ostatus::check_conversations(false); + return; + } + + // Call possible post update functions + // see include/post_update.php for more details + if ($argv[1] == 'post_update') { + post_update(); + return; + } + + // update nodeinfo data + if ($argv[1] == 'nodeinfo') { + nodeinfo_cron(); + return; + } + + return; +} + +if (array_search(__file__,get_included_files())===0){ + cronjobs_run($_SERVER["argv"],$_SERVER["argc"]); + killme(); +} diff --git a/include/datetime.php b/include/datetime.php index e27f54e09..16b134e90 100644 --- a/include/datetime.php +++ b/include/datetime.php @@ -213,7 +213,7 @@ function dob($dob) { * @return string Parsed HTML output. */ function datesel($format, $min, $max, $default, $id = 'datepicker') { - return datetimesel($format,$min,$max,$default,$id,true,false, '',''); + return datetimesel($format,$min,$max,$default,'',$id,true,false, '',''); } /** @@ -231,7 +231,7 @@ function datesel($format, $min, $max, $default, $id = 'datepicker') { * @return string Parsed HTML output. */ function timesel($format, $h, $m, $id='timepicker') { - return datetimesel($format,new DateTime(),new DateTime(),new DateTime("$h:$m"),$id,false,true); + return datetimesel($format,new DateTime(),new DateTime(),new DateTime("$h:$m"),'',$id,false,true); } /** @@ -262,7 +262,7 @@ function timesel($format, $h, $m, $id='timepicker') { * @todo Once browser support is better this could probably be replaced with * native HTML5 date picker. */ -function datetimesel($format, $min, $max, $default, $id = 'datetimepicker', $pickdate = true, $picktime = true, $minfrom = '', $maxfrom = '', $required = false) { +function datetimesel($format, $min, $max, $default, $label, $id = 'datetimepicker', $pickdate = true, $picktime = true, $minfrom = '', $maxfrom = '', $required = false) { // First day of the week (0 = Sunday) $firstDay = get_pconfig(local_user(),'system','first_day_of_week'); @@ -284,7 +284,7 @@ function datetimesel($format, $min, $max, $default, $id = 'datetimepicker', $pic $minjs = $min ? ",minDate: new Date({$min->getTimestamp()}*1000), yearStart: " . $min->format('Y') : ''; $maxjs = $max ? ",maxDate: new Date({$max->getTimestamp()}*1000), yearEnd: " . $max->format('Y') : ''; - $input_text = $default ? 'value="' . date($dateformat, $default->getTimestamp()) . '"' : ''; + $input_text = $default ? date($dateformat, $default->getTimestamp()) : ''; $defaultdatejs = $default ? ",defaultDate: new Date({$default->getTimestamp()}*1000)" : ''; $pickers = ''; @@ -294,9 +294,9 @@ function datetimesel($format, $min, $max, $default, $id = 'datetimepicker', $pic $extra_js = ''; $pickers .= ",dayOfWeekStart: ".$firstDay.",lang:'".$lang."'"; if($minfrom != '') - $extra_js .= "\$('#$minfrom').data('xdsoft_datetimepicker').setOptions({onChangeDateTime: function (currentDateTime) { \$('#$id').data('xdsoft_datetimepicker').setOptions({minDate: currentDateTime})}})"; + $extra_js .= "\$('#id_$minfrom').data('xdsoft_datetimepicker').setOptions({onChangeDateTime: function (currentDateTime) { \$('#id_$id').data('xdsoft_datetimepicker').setOptions({minDate: currentDateTime})}})"; if($maxfrom != '') - $extra_js .= "\$('#$maxfrom').data('xdsoft_datetimepicker').setOptions({onChangeDateTime: function (currentDateTime) { \$('#$id').data('xdsoft_datetimepicker').setOptions({maxDate: currentDateTime})}})"; + $extra_js .= "\$('#id_$maxfrom').data('xdsoft_datetimepicker').setOptions({onChangeDateTime: function (currentDateTime) { \$('#id_$id').data('xdsoft_datetimepicker').setOptions({maxDate: currentDateTime})}})"; $readable_format = $dateformat; $readable_format = str_replace('Y','yyyy',$readable_format); @@ -305,10 +305,13 @@ function datetimesel($format, $min, $max, $default, $id = 'datetimepicker', $pic $readable_format = str_replace('H','HH',$readable_format); $readable_format = str_replace('i','MM',$readable_format); - $o .= "
    "; - $o .= '
    '; + $tpl = get_markup_template('field_input.tpl'); + $o .= replace_macros($tpl,array( + '$field' => array($id, $label, $input_text, '', (($required) ? '*' : ''), 'placeholder="' . $readable_format . '"'), + )); + $o .= ""; return $o; @@ -322,15 +325,15 @@ function datetimesel($format, $min, $max, $default, $id = 'datetimepicker', $pic * Results relative to current timezone. * Limited to range of timestamps. * - * @param string $posted_date + * @param string $posted_date MySQL-formatted date string (YYYY-MM-DD HH:MM:SS) * @param string $format (optional) Parsed with sprintf() * %1$d %2$s ago, e.g. 22 hours ago, 1 minute ago - * + * * @return string with relative date */ -function relative_date($posted_date,$format = null) { +function relative_date($posted_date, $format = null) { - $localtime = datetime_convert('UTC',date_default_timezone_get(),$posted_date); + $localtime = $posted_date . ' UTC'; $abs = strtotime($localtime); @@ -344,13 +347,6 @@ function relative_date($posted_date,$format = null) { return t('less than a second ago'); } - /* - $time_append = ''; - if ($etime >= 86400) { - $time_append = ' ('.$localtime.')'; - } - */ - $a = array( 12 * 30 * 24 * 60 * 60 => array( t('year'), t('years')), 30 * 24 * 60 * 60 => array( t('month'), t('months')), 7 * 24 * 60 * 60 => array( t('week'), t('weeks')), @@ -365,10 +361,11 @@ function relative_date($posted_date,$format = null) { if ($d >= 1) { $r = round($d); // translators - e.g. 22 hours ago, 1 minute ago - if(! $format) + if (!$format) { $format = t('%1$d %2$s ago'); + } - return sprintf( $format,$r, (($r == 1) ? $str[0] : $str[1])); + return sprintf($format, $r, (($r == 1) ? $str[0] : $str[1])); } } } diff --git a/include/dba.php b/include/dba.php index cae045d87..082a54bd4 100644 --- a/include/dba.php +++ b/include/dba.php @@ -1,10 +1,11 @@ connected = false; $this->db = null; return; } - if($install) { - if(strlen($server) && ($server !== 'localhost') && ($server !== '127.0.0.1')) { - if(! dns_get_record($server, DNS_A + DNS_CNAME + DNS_PTR)) { + if ($install) { + if (strlen($server) && ($server !== 'localhost') && ($server !== '127.0.0.1')) { + if (! dns_get_record($server, DNS_A + DNS_CNAME + DNS_PTR)) { $this->error = sprintf( t('Cannot locate DNS info for database server \'%s\''), $server); $this->connected = false; $this->db = null; @@ -60,23 +61,28 @@ class dba { } } - if(class_exists('mysqli')) { + if (class_exists('mysqli')) { $this->db = @new mysqli($server,$user,$pass,$db); - if(! mysqli_connect_errno()) { + if (! mysqli_connect_errno()) { $this->connected = true; } - } - else { + if (isset($a->config["system"]["db_charset"])) { + $this->db->set_charset($a->config["system"]["db_charset"]); + } + } else { $this->mysqli = false; $this->db = mysql_connect($server,$user,$pass); - if($this->db && mysql_select_db($db,$this->db)) { + if ($this->db && mysql_select_db($db,$this->db)) { $this->connected = true; } + if (isset($a->config["system"]["db_charset"])) + mysql_set_charset($a->config["system"]["db_charset"], $this->db); } - if(! $this->connected) { + if (!$this->connected) { $this->db = null; - if(! $install) + if (!$install) { system_unavailable(); + } } $a->save_timestamp($stamp1, "network"); @@ -86,27 +92,80 @@ class dba { return $this->db; } + /** + * @brief Returns the MySQL server version string + * + * This function discriminate between the deprecated mysql API and the current + * object-oriented mysqli API. Example of returned string: 5.5.46-0+deb8u1 + * + * @return string + */ + public function server_info() { + if ($this->mysqli) { + $return = $this->db->server_info; + } else { + $return = mysql_get_server_info($this->db); + } + return $return; + } + + /** + * @brief Returns the number of rows + * + * @return integer + */ + public function num_rows() { + if (!$this->result) { + return 0; + } + + if ($this->mysqli) { + $return = $this->result->num_rows; + } else { + $return = mysql_num_rows($this->result); + } + return $return; + } + public function q($sql, $onlyquery = false) { global $a; - if((! $this->db) || (! $this->connected)) + if (!$this->db || !$this->connected) { return false; + } $this->error = ''; + // Check the connection (This can reconnect the connection - if configured) + if ($this->mysqli) { + $connected = $this->db->ping(); + } else { + $connected = mysql_ping($this->db); + } + $connstr = ($connected ? "Connected" : "Disonnected"); + $stamp1 = microtime(true); - if($this->mysqli) - $result = @$this->db->query($sql); - else - $result = @mysql_query($sql,$this->db); + $orig_sql = $sql; + if (x($a->config,'system') && x($a->config['system'], 'db_callstack')) { + $sql = "/*".$a->callstack()." */ ".$sql; + } + + if ($this->mysqli) { + $result = @$this->db->query($sql); + } else { + $result = @mysql_query($sql,$this->db); + } $stamp2 = microtime(true); $duration = (float)($stamp2-$stamp1); $a->save_timestamp($stamp1, "database"); - if(x($a->config,'system') && x($a->config['system'],'db_log')) { + if (strtolower(substr($orig_sql, 0, 6)) != "select") { + $a->save_timestamp($stamp1, "database_write"); + } + if (x($a->config,'system') && x($a->config['system'],'db_log')) { if (($duration > $a->config["system"]["db_loglimit"])) { $duration = round($duration, 3); $backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS); @@ -117,30 +176,34 @@ class dba { } } - if($this->mysqli) { - if($this->db->errno) + if ($this->mysqli) { + if ($this->db->errno) { $this->error = $this->db->error; - } - elseif(mysql_errno($this->db)) - $this->error = mysql_error($this->db); - - if(strlen($this->error)) { - logger('dba: ' . $this->error); + $this->errorno = $this->db->errno; + } + } elseif (mysql_errno($this->db)) { + $this->error = mysql_error($this->db); + $this->errorno = mysql_errno($this->db); } - if($this->debug) { + if (strlen($this->error)) { + logger('DB Error ('.$connstr.') '.$this->errorno.': '.$this->error); + } + + if ($this->debug) { $mesg = ''; - if($result === false) + if ($result === false) { $mesg = 'false'; - elseif($result === true) + } elseif ($result === true) { $mesg = 'true'; - else { - if($this->mysqli) + } else { + if ($this->mysqli) { $mesg = $result->num_rows . ' results' . EOL; - else + } else { $mesg = mysql_num_rows($result) . ' results' . EOL; + } } $str = 'SQL = ' . printable($sql) . EOL . 'SQL returned ' . $mesg @@ -156,30 +219,30 @@ class dba { * These usually indicate SQL syntax errors that need to be resolved. */ - if($result === false) { + if ($result === false) { logger('dba: ' . printable($sql) . ' returned false.' . "\n" . $this->error); - if(file_exists('dbfail.out')) + if (file_exists('dbfail.out')) { file_put_contents('dbfail.out', datetime_convert() . "\n" . printable($sql) . ' returned false' . "\n" . $this->error . "\n", FILE_APPEND); + } } - if(($result === true) || ($result === false)) + if (($result === true) || ($result === false)) { return $result; - + } if ($onlyquery) { $this->result = $result; return true; } $r = array(); - if($this->mysqli) { - if($result->num_rows) { + if ($this->mysqli) { + if ($result->num_rows) { while($x = $result->fetch_array(MYSQLI_ASSOC)) $r[] = $x; $result->free_result(); } - } - else { - if(mysql_num_rows($result)) { + } else { + if (mysql_num_rows($result)) { while($x = mysql_fetch_array($result, MYSQL_ASSOC)) $r[] = $x; mysql_free_result($result); @@ -188,33 +251,35 @@ class dba { //$a->save_timestamp($stamp1, "database"); - if($this->debug) + if ($this->debug) { logger('dba: ' . printable(print_r($r, true))); + } return($r); } public function qfetch() { $x = false; - if ($this->result) - if($this->mysqli) { - if($this->result->num_rows) + if ($this->result) { + if ($this->mysqli) { + if ($this->result->num_rows) $x = $this->result->fetch_array(MYSQLI_ASSOC); } else { - if(mysql_num_rows($this->result)) + if (mysql_num_rows($this->result)) $x = mysql_fetch_array($this->result, MYSQL_ASSOC); } - + } return($x); } public function qclose() { - if ($this->result) - if($this->mysqli) { + if ($this->result) { + if ($this->mysqli) { $this->result->free_result(); } else { mysql_free_result($this->result); } + } } public function dbg($dbg) { @@ -222,47 +287,62 @@ class dba { } public function escape($str) { - if($this->db && $this->connected) { - if($this->mysqli) + if ($this->db && $this->connected) { + if ($this->mysqli) { return @$this->db->real_escape_string($str); - else + } else { return @mysql_real_escape_string($str,$this->db); + } } } + function connected() { + if ($this->mysqli) { + $connected = $this->db->ping(); + } else { + $connected = mysql_ping($this->db); + } + return $connected; + } + function __destruct() { - if ($this->db) - if($this->mysqli) + if ($this->db) { + if ($this->mysqli) { $this->db->close(); - else + } else { mysql_close($this->db); + } + } } }} -if(! function_exists('printable')) { +if (! function_exists('printable')) { function printable($s) { $s = preg_replace("~([\x01-\x08\x0E-\x0F\x10-\x1F\x7F-\xFF])~",".", $s); $s = str_replace("\x00",'.',$s); - if(x($_SERVER,'SERVER_NAME')) + if (x($_SERVER,'SERVER_NAME')) { $s = escape_tags($s); + } return $s; }} // Procedural functions -if(! function_exists('dbg')) { +if (! function_exists('dbg')) { function dbg($state) { global $db; - if($db) - $db->dbg($state); + if ($db) { + $db->dbg($state); + } }} -if(! function_exists('dbesc')) { +if (! function_exists('dbesc')) { function dbesc($str) { global $db; - if($db && $db->connected) + if ($db && $db->connected) { return($db->escape($str)); - else + } else { return(str_replace("'","\\'",$str)); + } }} @@ -272,17 +352,17 @@ function dbesc($str) { // Example: $r = q("SELECT * FROM `%s` WHERE `uid` = %d", // 'user', 1); -if(! function_exists('q')) { +if (! function_exists('q')) { function q($sql) { global $db; $args = func_get_args(); unset($args[0]); - if($db && $db->connected) { + if ($db && $db->connected) { $stmt = @vsprintf($sql,$args); // Disabled warnings //logger("dba: q: $stmt", LOGGER_ALL); - if($stmt === false) + if ($stmt === false) logger('dba: vsprintf error: ' . print_r(debug_backtrace(),true), LOGGER_DEBUG); return $db->q($stmt); } @@ -298,20 +378,57 @@ function q($sql) { }} +/** + * @brief Performs a query with "dirty reads" + * + * By doing dirty reads (reading uncommitted data) no locks are performed + * This function can be used to fetch data that doesn't need to be reliable. + * + * @param $args Query parameters (1 to N parameters of different types) + * @return array Query array + */ +function qu($sql) { + + global $db; + $args = func_get_args(); + unset($args[0]); + + if ($db && $db->connected) { + $stmt = @vsprintf($sql,$args); // Disabled warnings + if ($stmt === false) + logger('dba: vsprintf error: ' . print_r(debug_backtrace(),true), LOGGER_DEBUG); + $db->q("SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;"); + $retval = $db->q($stmt); + $db->q("SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;"); + return $retval; + } + + /** + * + * This will happen occasionally trying to store the + * session data after abnormal program termination + * + */ + logger('dba: no database: ' . print_r($args,true)); + return false; + +} + /** * * Raw db query, no arguments * */ -if(! function_exists('dbq')) { +if (! function_exists('dbq')) { function dbq($sql) { global $db; - if($db && $db->connected) + if ($db && $db->connected) { $ret = $db->q($sql); - else + } else { $ret = false; + } return $ret; }} @@ -322,16 +439,16 @@ function dbq($sql) { // cast to int to avoid trouble. -if(! function_exists('dbesc_array_cb')) { +if (! function_exists('dbesc_array_cb')) { function dbesc_array_cb(&$item, $key) { - if(is_string($item)) + if (is_string($item)) $item = dbesc($item); }} -if(! function_exists('dbesc_array')) { +if (! function_exists('dbesc_array')) { function dbesc_array(&$arr) { - if(is_array($arr) && count($arr)) { + if (is_array($arr) && count($arr)) { array_walk($arr,'dbesc_array_cb'); } }} @@ -340,4 +457,3 @@ function dbesc_array(&$arr) { function dba_timer() { return microtime(true); } - diff --git a/include/dbclean.php b/include/dbclean.php new file mode 100644 index 000000000..0baece816 --- /dev/null +++ b/include/dbclean.php @@ -0,0 +1,157 @@ +q("SELECT `id` FROM `item` WHERE `uid` = 0 + AND NOT EXISTS (SELECT `guid` FROM `item` AS `i` WHERE `item`.`guid` = `i`.`guid` AND `i`.`uid` != 0) + AND `received` < UTC_TIMESTAMP() - INTERVAL 90 DAY LIMIT 10000", true)) { + $count = $db->num_rows(); + logger("found global item orphans: ".$count); + while ($orphan = $db->qfetch()) { + q("DELETE FROM `item` WHERE `id` = %d", intval($orphan["id"])); + } + } + $db->qclose(); + logger("Done deleting old global item entries from item table without user copy"); + } + + if (($stage == 2) OR ($stage == 0)) { + logger("Deleting items without parents"); + if ($db->q("SELECT `id` FROM `item` WHERE NOT EXISTS (SELECT `id` FROM `item` AS `i` WHERE `item`.`parent` = `i`.`id`) LIMIT 10000", true)) { + $count = $db->num_rows(); + logger("found item orphans without parents: ".$count); + while ($orphan = $db->qfetch()) { + q("DELETE FROM `item` WHERE `id` = %d", intval($orphan["id"])); + } + } + $db->qclose(); + logger("Done deleting items without parents"); + } + + if (($stage == 3) OR ($stage == 0)) { + logger("Deleting orphaned data from thread table"); + if ($db->q("SELECT `iid` FROM `thread` WHERE NOT EXISTS (SELECT `id` FROM `item` WHERE `item`.`parent` = `thread`.`iid`)", true)) { + $count = $db->num_rows(); + logger("found thread orphans: ".$count); + while ($orphan = $db->qfetch()) { + q("DELETE FROM `thread` WHERE `iid` = %d", intval($orphan["iid"])); + } + } + $db->qclose(); + logger("Done deleting orphaned data from thread table"); + } + + if (($stage == 4) OR ($stage == 0)) { + logger("Deleting orphaned data from notify table"); + if ($db->q("SELECT `iid` FROM `notify` WHERE NOT EXISTS (SELECT `id` FROM `item` WHERE `item`.`id` = `notify`.`iid`)", true)) { + $count = $db->num_rows(); + logger("found notify orphans: ".$count); + while ($orphan = $db->qfetch()) { + q("DELETE FROM `notify` WHERE `iid` = %d", intval($orphan["iid"])); + } + } + $db->qclose(); + logger("Done deleting orphaned data from notify table"); + } + + if (($stage == 5) OR ($stage == 0)) { + logger("Deleting orphaned data from notify-threads table"); + if ($db->q("SELECT `id` FROM `notify-threads` WHERE NOT EXISTS (SELECT `id` FROM `item` WHERE `item`.`parent` = `notify-threads`.`master-parent-item`)", true)) { + $count = $db->num_rows(); + logger("found notify-threads orphans: ".$count); + while ($orphan = $db->qfetch()) { + q("DELETE FROM `notify-threads` WHERE `id` = %d", intval($orphan["id"])); + } + } + $db->qclose(); + logger("Done deleting orphaned data from notify-threads table"); + } + + + if (($stage == 6) OR ($stage == 0)) { + logger("Deleting orphaned data from sign table"); + if ($db->q("SELECT `iid` FROM `sign` WHERE NOT EXISTS (SELECT `id` FROM `item` WHERE `item`.`id` = `sign`.`iid`)", true)) { + $count = $db->num_rows(); + logger("found sign orphans: ".$count); + while ($orphan = $db->qfetch()) { + q("DELETE FROM `sign` WHERE `iid` = %d", intval($orphan["iid"])); + } + } + $db->qclose(); + logger("Done deleting orphaned data from sign table"); + } + + + if (($stage == 7) OR ($stage == 0)) { + logger("Deleting orphaned data from term table"); + if ($db->q("SELECT `oid` FROM `term` WHERE NOT EXISTS (SELECT `id` FROM `item` WHERE `item`.`id` = `term`.`oid`)", true)) { + $count = $db->num_rows(); + logger("found term orphans: ".$count); + while ($orphan = $db->qfetch()) { + q("DELETE FROM `term` WHERE `oid` = %d", intval($orphan["oid"])); + } + } + $db->qclose(); + logger("Done deleting orphaned data from term table"); + } + + // Call it again if not all entries were purged + if (($stage != 0) AND ($count > 0) AND get_config("system", "worker")) { + proc_run(PRIORITY_LOW, 'include/dbclean.php'); + } + +} + +if (array_search(__file__,get_included_files())===0){ + dbclean_run($_SERVER["argv"],$_SERVER["argc"]); + killme(); +} +?> diff --git a/include/dbm.php b/include/dbm.php index 3f936947d..6098dce73 100644 --- a/include/dbm.php +++ b/include/dbm.php @@ -20,8 +20,8 @@ class dbm { foreach ($r AS $process) { $state = trim($process["State"]); - // Filter out all idle processes - if (!in_array($state, array("", "init", "statistics"))) { + // Filter out all non blocking processes + if (!in_array($state, array("", "init", "statistics", "updating"))) { ++$states[$state]; ++$processes; } @@ -35,5 +35,19 @@ class dbm { } return(array("list" => $statelist, "amount" => $processes)); } + + /** + * Checks if $array is a filled array with at least one entry. + * + * @param $array mixed A filled array with at least one entry + * @return Whether $array is a filled array + */ + public static function is_result($array) { + // It could be a return value from an update statement + if (is_bool($array)) { + return $array; + } + return (is_array($array) && count($array) > 0); + } } ?> diff --git a/include/dbstructure.php b/include/dbstructure.php index f89a3ff92..bd4a07eb5 100644 --- a/include/dbstructure.php +++ b/include/dbstructure.php @@ -78,8 +78,16 @@ function table_structure($table) { if ($index["Index_type"] == "FULLTEXT") continue; + if ($index['Key_name'] != 'PRIMARY' && $index['Non_unique'] == '0' && !isset($indexdata[$index["Key_name"]])) { + $indexdata[$index["Key_name"]] = array('UNIQUE'); + } + $column = $index["Column_name"]; - if ($index["Sub_part"] != "") + // On utf8mb4 a varchar index can only have a length of 191 + // To avoid the need to add this to every index definition we just ignore it here. + // Exception are primary indexes + // Since there are some combindex primary indexes we use the limit of 180 here. + if (($index["Sub_part"] != "") AND (($index["Sub_part"] < 180) OR ($index["Key_name"] == "PRIMARY"))) $column .= "(".$index["Sub_part"].")"; $indexdata[$index["Key_name"]][] = $column; @@ -104,7 +112,7 @@ function table_structure($table) { return(array("fields"=>$fielddata, "indexes"=>$indexdata)); } -function print_structure($database) { +function print_structure($database, $charset) { echo "-- ------------------------------------------\n"; echo "-- ".FRIENDICA_PLATFORM." ".FRIENDICA_VERSION." (".FRIENDICA_CODENAME,")\n"; echo "-- DB_UPDATE_VERSION ".DB_UPDATE_VERSION."\n"; @@ -113,7 +121,7 @@ function print_structure($database) { echo "--\n"; echo "-- TABLE $name\n"; echo "--\n"; - db_create_table($name, $structure['fields'], true, false, $structure["indexes"]); + db_create_table($name, $structure['fields'], $charset, true, false, $structure["indexes"]); echo "\n"; } @@ -122,6 +130,14 @@ function print_structure($database) { function update_structure($verbose, $action, $tables=null, $definition=null) { global $a, $db; + if ($action) + set_config('system', 'maintenance', 1); + + if (isset($a->config["system"]["db_charset"])) + $charset = $a->config["system"]["db_charset"]; + else + $charset = "utf8"; + $errors = false; logger('updating structure', LOGGER_DEBUG); @@ -140,15 +156,29 @@ function update_structure($verbose, $action, $tables=null, $definition=null) { // Get the definition if (is_null($definition)) - $definition = db_definition(); + $definition = db_definition($charset); + // Ensure index conversion to unique removes duplicates + $sql_config = "SET session old_alter_table=1;"; + if ($verbose) + echo $sql_config."\n"; + if ($action) + @$db->q($sql_config); + + // MySQL >= 5.7.4 doesn't support the IGNORE keyword in ALTER TABLE statements + if ((version_compare($db->server_info(), '5.7.4') >= 0) AND + !(strpos($db->server_info(), 'MariaDB') !== false)) { + $ignore = ''; + }else { + $ignore = ' IGNORE'; + } // Compare it foreach ($definition AS $name => $structure) { $is_new_table = False; $sql3=""; if (!isset($database[$name])) { - $r = db_create_table($name, $structure["fields"], $verbose, $action, $structure['indexes']); + $r = db_create_table($name, $structure["fields"], $charset, $verbose, $action, $structure['indexes']); if(false === $r) { $errors .= t('Errors encountered creating database tables.').$name.EOL; } @@ -167,7 +197,7 @@ function update_structure($verbose, $action, $tables=null, $definition=null) { if ($current_index_definition != $new_index_definition && substr($indexname, 0, 6) != 'local_') { $sql2=db_drop_index($indexname); if ($sql3 == "") - $sql3 = "ALTER TABLE `".$name."` ".$sql2; + $sql3 = "ALTER".$ignore." TABLE `".$name."` ".$sql2; else $sql3 .= ", ".$sql2; } @@ -211,7 +241,7 @@ function update_structure($verbose, $action, $tables=null, $definition=null) { $sql2=db_create_index($indexname, $fieldnames); if ($sql2 != "") { if ($sql3 == "") - $sql3 = "ALTER TABLE `".$name."` ".$sql2; + $sql3 = "ALTER" . $ignore . " TABLE `".$name."` ".$sql2; else $sql3 .= ", ".$sql2; } @@ -232,6 +262,9 @@ function update_structure($verbose, $action, $tables=null, $definition=null) { } } + if ($action) + set_config('system', 'maintenance', 0); + return $errors; } @@ -257,7 +290,7 @@ function db_field_command($parameters, $create = true) { return($fieldstruct); } -function db_create_table($name, $fields, $verbose, $action, $indexes=null) { +function db_create_table($name, $fields, $charset, $verbose, $action, $indexes=null) { global $a, $db; $r = true; @@ -282,7 +315,7 @@ function db_create_table($name, $fields, $verbose, $action, $indexes=null) { $sql = implode(",\n\t", $sql_rows); - $sql = sprintf("CREATE TABLE IF NOT EXISTS `%s` (\n\t", dbesc($name)).$sql."\n) DEFAULT CHARSET=utf8"; + $sql = sprintf("CREATE TABLE IF NOT EXISTS `%s` (\n\t", dbesc($name)).$sql."\n) DEFAULT CHARSET=".$charset; if ($verbose) echo $sql.";\n"; @@ -315,9 +348,9 @@ function db_create_index($indexname, $fieldnames, $method="ADD") { killme(); } - - if ($indexname == "PRIMARY") { - return sprintf("%s PRIMARY KEY(`%s`)", $method, implode("`,`", $fieldnames)); + if ($fieldnames[0] == "UNIQUE") { + array_shift($fieldnames); + $method .= ' UNIQUE'; } $names = ""; @@ -331,12 +364,26 @@ function db_create_index($indexname, $fieldnames, $method="ADD") { $names .= "`".dbesc($fieldname)."`"; } + if ($indexname == "PRIMARY") { + return sprintf("%s PRIMARY KEY(%s)", $method, $names); + } + $sql = sprintf("%s INDEX `%s` (%s)", $method, dbesc($indexname), $names); return($sql); } -function db_definition() { +function db_index_suffix($charset, $reduce = 0) { + if ($charset != "utf8mb4") + return ""; + + // On utf8mb4 indexes can only have a length of 191 + $indexlength = 191 - $reduce; + + return "(".$indexlength.")"; +} + +function db_definition($charset) { $database = array(); @@ -365,10 +412,10 @@ function db_definition() { "data" => array("type" => "longblob", "not null" => "1"), "created" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"), "edited" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"), - "allow_cid" => array("type" => "mediumtext", "not null" => "1"), - "allow_gid" => array("type" => "mediumtext", "not null" => "1"), - "deny_cid" => array("type" => "mediumtext", "not null" => "1"), - "deny_gid" => array("type" => "mediumtext", "not null" => "1"), + "allow_cid" => array("type" => "mediumtext"), + "allow_gid" => array("type" => "mediumtext"), + "deny_cid" => array("type" => "mediumtext"), + "deny_gid" => array("type" => "mediumtext"), ), "indexes" => array( "PRIMARY" => array("id"), @@ -389,13 +436,14 @@ function db_definition() { $database["cache"] = array( "fields" => array( "k" => array("type" => "varchar(255)", "not null" => "1", "primary" => "1"), - "v" => array("type" => "text", "not null" => "1"), + "v" => array("type" => "text"), "expire_mode" => array("type" => "int(11)", "not null" => "1", "default" => "0"), "updated" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"), ), "indexes" => array( - "PRIMARY" => array("k"), + "PRIMARY" => array("k".db_index_suffix($charset)), "updated" => array("updated"), + "expire_mode_updated" => array("expire_mode", "updated"), ) ); $database["challenge"] = array( @@ -429,11 +477,11 @@ function db_definition() { "id" => array("type" => "int(10) unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1"), "cat" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "k" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), - "v" => array("type" => "text", "not null" => "1"), + "v" => array("type" => "text"), ), "indexes" => array( "PRIMARY" => array("id"), - "cat_k" => array("cat(30)","k(30)"), + "cat_k" => array("UNIQUE", "cat(30)","k(30)"), ) ); $database["contact"] = array( @@ -449,29 +497,30 @@ function db_definition() { "name" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "nick" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "location" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), - "about" => array("type" => "text", "not null" => "1"), - "keywords" => array("type" => "text", "not null" => "1"), + "about" => array("type" => "text"), + "keywords" => array("type" => "text"), "gender" => array("type" => "varchar(32)", "not null" => "1", "default" => ""), + "xmpp" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "attag" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "avatar" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), - "photo" => array("type" => "text", "not null" => "1"), - "thumb" => array("type" => "text", "not null" => "1"), - "micro" => array("type" => "text", "not null" => "1"), - "site-pubkey" => array("type" => "text", "not null" => "1"), + "photo" => array("type" => "text"), + "thumb" => array("type" => "text"), + "micro" => array("type" => "text"), + "site-pubkey" => array("type" => "text"), "issued-id" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "dfrn-id" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "url" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "nurl" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "addr" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "alias" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), - "pubkey" => array("type" => "text", "not null" => "1"), - "prvkey" => array("type" => "text", "not null" => "1"), + "pubkey" => array("type" => "text"), + "prvkey" => array("type" => "text"), "batch" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), - "request" => array("type" => "text", "not null" => "1"), - "notify" => array("type" => "text", "not null" => "1"), - "poll" => array("type" => "text", "not null" => "1"), - "confirm" => array("type" => "text", "not null" => "1"), - "poco" => array("type" => "text", "not null" => "1"), + "request" => array("type" => "text"), + "notify" => array("type" => "text"), + "poll" => array("type" => "text"), + "confirm" => array("type" => "text"), + "poco" => array("type" => "text"), "aes_allow" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"), "ret-aes" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"), "usehub" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"), @@ -491,23 +540,25 @@ function db_definition() { "writable" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"), "forum" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"), "prv" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"), + "contact-type" => array("type" => "int(11) unsigned", "not null" => "1", "default" => "0"), "hidden" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"), "archive" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"), "pending" => array("type" => "tinyint(1)", "not null" => "1", "default" => "1"), "rating" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"), - "reason" => array("type" => "text", "not null" => "1"), + "reason" => array("type" => "text"), "closeness" => array("type" => "tinyint(2)", "not null" => "1", "default" => "99"), - "info" => array("type" => "mediumtext", "not null" => "1"), + "info" => array("type" => "mediumtext"), "profile-id" => array("type" => "int(11)", "not null" => "1", "default" => "0"), "bdyear" => array("type" => "varchar(4)", "not null" => "1", "default" => ""), "bd" => array("type" => "date", "not null" => "1", "default" => "0000-00-00"), "notify_new_posts" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"), "fetch_further_information" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"), - "ffi_keyword_blacklist" => array("type" => "mediumtext", "not null" => "1"), + "ffi_keyword_blacklist" => array("type" => "mediumtext"), ), "indexes" => array( "PRIMARY" => array("id"), "uid" => array("uid"), + "addr_uid" => array("addr", "uid"), "nurl" => array("nurl"), ) ); @@ -515,12 +566,12 @@ function db_definition() { "fields" => array( "id" => array("type" => "int(10) unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1"), "guid" => array("type" => "varchar(64)", "not null" => "1", "default" => ""), - "recips" => array("type" => "mediumtext", "not null" => "1"), + "recips" => array("type" => "mediumtext"), "uid" => array("type" => "int(11)", "not null" => "1", "default" => "0"), "creator" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "created" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"), "updated" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"), - "subject" => array("type" => "mediumtext", "not null" => "1"), + "subject" => array("type" => "mediumtext"), ), "indexes" => array( "PRIMARY" => array("id"), @@ -536,6 +587,7 @@ function db_definition() { ), "indexes" => array( "PRIMARY" => array("id"), + "cmd_item_contact" => array("UNIQUE", "cmd", "item", "contact"), ) ); $database["event"] = array( @@ -548,17 +600,17 @@ function db_definition() { "edited" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"), "start" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"), "finish" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"), - "summary" => array("type" => "text", "not null" => "1"), - "desc" => array("type" => "text", "not null" => "1"), - "location" => array("type" => "text", "not null" => "1"), + "summary" => array("type" => "text"), + "desc" => array("type" => "text"), + "location" => array("type" => "text"), "type" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "nofinish" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"), "adjust" => array("type" => "tinyint(1)", "not null" => "1", "default" => "1"), "ignore" => array("type" => "tinyint(1) unsigned", "not null" => "1", "default" => "0"), - "allow_cid" => array("type" => "mediumtext", "not null" => "1"), - "allow_gid" => array("type" => "mediumtext", "not null" => "1"), - "deny_cid" => array("type" => "mediumtext", "not null" => "1"), - "deny_gid" => array("type" => "mediumtext", "not null" => "1"), + "allow_cid" => array("type" => "mediumtext"), + "allow_gid" => array("type" => "mediumtext"), + "deny_cid" => array("type" => "mediumtext"), + "deny_gid" => array("type" => "mediumtext"), ), "indexes" => array( "PRIMARY" => array("id"), @@ -568,6 +620,7 @@ function db_definition() { $database["fcontact"] = array( "fields" => array( "id" => array("type" => "int(10) unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1"), + "guid" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "url" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "name" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "photo" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), @@ -581,7 +634,7 @@ function db_definition() { "priority" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"), "network" => array("type" => "varchar(32)", "not null" => "1", "default" => ""), "alias" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), - "pubkey" => array("type" => "text", "not null" => "1"), + "pubkey" => array("type" => "text"), "updated" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"), ), "indexes" => array( @@ -605,7 +658,7 @@ function db_definition() { "id" => array("type" => "int(11)", "not null" => "1", "extra" => "auto_increment", "primary" => "1"), "server" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "posturl" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), - "key" => array("type" => "text", "not null" => "1"), + "key" => array("type" => "text"), ), "indexes" => array( "PRIMARY" => array("id"), @@ -621,7 +674,7 @@ function db_definition() { "url" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "request" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "photo" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), - "note" => array("type" => "text", "not null" => "1"), + "note" => array("type" => "text"), "created" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"), ), "indexes" => array( @@ -654,16 +707,17 @@ function db_definition() { "last_contact" => array("type" => "datetime", "default" => "0000-00-00 00:00:00"), "last_failure" => array("type" => "datetime", "default" => "0000-00-00 00:00:00"), "location" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), - "about" => array("type" => "text", "not null" => "1"), - "keywords" => array("type" => "text", "not null" => "1"), + "about" => array("type" => "text"), + "keywords" => array("type" => "text"), "gender" => array("type" => "varchar(32)", "not null" => "1", "default" => ""), "birthday" => array("type" => "varchar(32)", "not null" => "1", "default" => "0000-00-00"), "community" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"), + "contact-type" => array("type" => "tinyint(1)", "not null" => "1", "default" => "-1"), "hide" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"), "nsfw" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"), "network" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "addr" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), - "notify" => array("type" => "text", "not null" => "1"), + "notify" => array("type" => "text"), "alias" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "generation" => array("type" => "tinyint(3)", "not null" => "1", "default" => "0"), "server_url" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), @@ -725,7 +779,7 @@ function db_definition() { "nurl" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "version" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "site_name" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), - "info" => array("type" => "text", "not null" => "1"), + "info" => array("type" => "text"), "register_policy" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"), "poco" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "noscrape" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), @@ -762,7 +816,7 @@ function db_definition() { "contact-id" => array("type" => "int(11)", "not null" => "1", "default" => "0"), "knowyou" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"), "duplex" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"), - "note" => array("type" => "text", "not null" => "1"), + "note" => array("type" => "text"), "hash" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "datetime" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"), "blocked" => array("type" => "tinyint(1)", "not null" => "1", "default" => "1"), @@ -792,34 +846,36 @@ function db_definition() { "commented" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"), "received" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"), "changed" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"), + "owner-id" => array("type" => "int(11)", "not null" => "1", "default" => "0"), "owner-name" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "owner-link" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "owner-avatar" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), + "author-id" => array("type" => "int(11)", "not null" => "1", "default" => "0"), "author-name" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "author-link" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "author-avatar" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "title" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), - "body" => array("type" => "mediumtext", "not null" => "1"), + "body" => array("type" => "mediumtext"), "app" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "verb" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "object-type" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), - "object" => array("type" => "text", "not null" => "1"), + "object" => array("type" => "text"), "target-type" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), - "target" => array("type" => "text", "not null" => "1"), - "postopts" => array("type" => "text", "not null" => "1"), + "target" => array("type" => "text"), + "postopts" => array("type" => "text"), "plink" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "resource-id" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "event-id" => array("type" => "int(11)", "not null" => "1", "default" => "0"), - "tag" => array("type" => "mediumtext", "not null" => "1"), - "attach" => array("type" => "mediumtext", "not null" => "1"), - "inform" => array("type" => "mediumtext", "not null" => "1"), - "file" => array("type" => "mediumtext", "not null" => "1"), + "tag" => array("type" => "mediumtext"), + "attach" => array("type" => "mediumtext"), + "inform" => array("type" => "mediumtext"), + "file" => array("type" => "mediumtext"), "location" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "coord" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), - "allow_cid" => array("type" => "mediumtext", "not null" => "1"), - "allow_gid" => array("type" => "mediumtext", "not null" => "1"), - "deny_cid" => array("type" => "mediumtext", "not null" => "1"), - "deny_gid" => array("type" => "mediumtext", "not null" => "1"), + "allow_cid" => array("type" => "mediumtext"), + "allow_gid" => array("type" => "mediumtext"), + "deny_cid" => array("type" => "mediumtext"), + "deny_gid" => array("type" => "mediumtext"), "private" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"), "pubmail" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"), "moderated" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"), @@ -835,7 +891,7 @@ function db_definition() { "mention" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"), "network" => array("type" => "varchar(32)", "not null" => "1", "default" => ""), "rendered-hash" => array("type" => "varchar(32)", "not null" => "1", "default" => ""), - "rendered-html" => array("type" => "mediumtext", "not null" => "1"), + "rendered-html" => array("type" => "mediumtext"), "global" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"), ), "indexes" => array( @@ -855,15 +911,18 @@ function db_definition() { "uid_title" => array("uid","title"), "uid_thrparent" => array("uid","thr-parent"), "uid_parenturi" => array("uid","parent-uri"), + "uid_contactid_id" => array("uid","contact-id","id"), "uid_contactid_created" => array("uid","contact-id","created"), "gcontactid_uid_created" => array("gcontact-id","uid","created"), + "authorid_created" => array("author-id","created"), + "ownerid_created" => array("owner-id","created"), "wall_body" => array("wall","body(6)"), "uid_visible_moderated_created" => array("uid","visible","moderated","created"), - "uid_uri" => array("uid","uri"), + "uid_uri" => array("uid", "uri"), "uid_wall_created" => array("uid","wall","created"), "resource-id" => array("resource-id"), "uid_type" => array("uid","type"), - "uid_starred" => array("uid","starred"), + "uid_starred_id" => array("uid","starred", "id"), "contactid_allowcid_allowpid_denycid_denygid" => array("contact-id","allow_cid(10)","allow_gid(10)","deny_cid(10)","deny_gid(10)"), "uid_wall_parent_created" => array("uid","wall","parent","created"), "uid_type_changed" => array("uid","type","changed"), @@ -913,7 +972,7 @@ function db_definition() { "contact-id" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "convid" => array("type" => "int(11) unsigned", "not null" => "1", "default" => "0"), "title" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), - "body" => array("type" => "mediumtext", "not null" => "1"), + "body" => array("type" => "mediumtext"), "seen" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"), "reply" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"), "replied" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"), @@ -941,7 +1000,7 @@ function db_definition() { "ssltype" => array("type" => "varchar(16)", "not null" => "1", "default" => ""), "mailbox" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "user" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), - "pass" => array("type" => "text", "not null" => "1"), + "pass" => array("type" => "text"), "reply_to" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "action" => array("type" => "int(11)", "not null" => "1", "default" => "0"), "movetofolder" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), @@ -972,7 +1031,7 @@ function db_definition() { "url" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "photo" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "date" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"), - "msg" => array("type" => "mediumtext", "not null" => "1"), + "msg" => array("type" => "mediumtext"), "uid" => array("type" => "int(11)", "not null" => "1", "default" => "0"), "link" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "iid" => array("type" => "int(11)", "not null" => "1", "default" => "0"), @@ -980,6 +1039,8 @@ function db_definition() { "seen" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"), "verb" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "otype" => array("type" => "varchar(16)", "not null" => "1", "default" => ""), + "name_cache" => array("type" => "tinytext"), + "msg_cache" => array("type" => "mediumtext") ), "indexes" => array( "PRIMARY" => array("id"), @@ -1003,11 +1064,11 @@ function db_definition() { $database["oembed"] = array( "fields" => array( "url" => array("type" => "varchar(255)", "not null" => "1", "primary" => "1"), - "content" => array("type" => "text", "not null" => "1"), + "content" => array("type" => "text"), "created" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"), ), "indexes" => array( - "PRIMARY" => array("url"), + "PRIMARY" => array("url".db_index_suffix($charset)), "created" => array("created"), ) ); @@ -1016,11 +1077,11 @@ function db_definition() { "url" => array("type" => "varchar(255)", "not null" => "1", "primary" => "1"), "guessing" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0", "primary" => "1"), "oembed" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0", "primary" => "1"), - "content" => array("type" => "text", "not null" => "1"), + "content" => array("type" => "text"), "created" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"), ), "indexes" => array( - "PRIMARY" => array("url", "guessing", "oembed"), + "PRIMARY" => array("url".db_index_suffix($charset), "guessing", "oembed"), "created" => array("created"), ) ); @@ -1030,11 +1091,11 @@ function db_definition() { "uid" => array("type" => "int(11)", "not null" => "1", "default" => "0"), "cat" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "k" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), - "v" => array("type" => "mediumtext", "not null" => "1"), + "v" => array("type" => "mediumtext"), ), "indexes" => array( "PRIMARY" => array("id"), - "uid_cat_k" => array("uid","cat(30)","k(30)"), + "uid_cat_k" => array("UNIQUE", "uid","cat(30)","k(30)"), ) ); $database["photo"] = array( @@ -1047,7 +1108,7 @@ function db_definition() { "created" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"), "edited" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"), "title" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), - "desc" => array("type" => "text", "not null" => "1"), + "desc" => array("type" => "text"), "album" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "filename" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "type" => array("type" => "varchar(128)", "not null" => "1", "default" => "image/jpeg"), @@ -1057,14 +1118,16 @@ function db_definition() { "data" => array("type" => "mediumblob", "not null" => "1"), "scale" => array("type" => "tinyint(3)", "not null" => "1", "default" => "0"), "profile" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"), - "allow_cid" => array("type" => "mediumtext", "not null" => "1"), - "allow_gid" => array("type" => "mediumtext", "not null" => "1"), - "deny_cid" => array("type" => "mediumtext", "not null" => "1"), - "deny_gid" => array("type" => "mediumtext", "not null" => "1"), + "allow_cid" => array("type" => "mediumtext"), + "allow_gid" => array("type" => "mediumtext"), + "deny_cid" => array("type" => "mediumtext"), + "deny_gid" => array("type" => "mediumtext"), ), "indexes" => array( "PRIMARY" => array("id"), - "uid" => array("uid"), + "uid_contactid" => array("uid", "contact-id"), + "uid_profile" => array("uid", "profile"), + "uid_album_created" => array("uid", "album", "created"), "resource-id" => array("resource-id"), "guid" => array("guid"), ) @@ -1073,16 +1136,16 @@ function db_definition() { "fields" => array( "id" => array("type" => "int(11)", "not null" => "1", "extra" => "auto_increment", "primary" => "1"), "uid" => array("type" => "int(11)", "not null" => "1", "default" => "0"), - "q0" => array("type" => "mediumtext", "not null" => "1"), - "q1" => array("type" => "mediumtext", "not null" => "1"), - "q2" => array("type" => "mediumtext", "not null" => "1"), - "q3" => array("type" => "mediumtext", "not null" => "1"), - "q4" => array("type" => "mediumtext", "not null" => "1"), - "q5" => array("type" => "mediumtext", "not null" => "1"), - "q6" => array("type" => "mediumtext", "not null" => "1"), - "q7" => array("type" => "mediumtext", "not null" => "1"), - "q8" => array("type" => "mediumtext", "not null" => "1"), - "q9" => array("type" => "mediumtext", "not null" => "1"), + "q0" => array("type" => "mediumtext"), + "q1" => array("type" => "mediumtext"), + "q2" => array("type" => "mediumtext"), + "q3" => array("type" => "mediumtext"), + "q4" => array("type" => "mediumtext"), + "q5" => array("type" => "mediumtext"), + "q6" => array("type" => "mediumtext"), + "q7" => array("type" => "mediumtext"), + "q8" => array("type" => "mediumtext"), + "q9" => array("type" => "mediumtext"), ), "indexes" => array( "PRIMARY" => array("id"), @@ -1101,6 +1164,17 @@ function db_definition() { "choice" => array("choice"), ) ); + $database["process"] = array( + "fields" => array( + "pid" => array("type" => "int(10) unsigned", "not null" => "1", "primary" => "1"), + "command" => array("type" => "varchar(32)", "not null" => "1", "default" => ""), + "created" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"), + ), + "indexes" => array( + "PRIMARY" => array("pid"), + "command" => array("command"), + ) + ); $database["profile"] = array( "fields" => array( "id" => array("type" => "int(11)", "not null" => "1", "extra" => "auto_increment", "primary" => "1"), @@ -1119,27 +1193,28 @@ function db_definition() { "hometown" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "gender" => array("type" => "varchar(32)", "not null" => "1", "default" => ""), "marital" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), - "with" => array("type" => "text", "not null" => "1"), + "with" => array("type" => "text"), "howlong" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"), "sexual" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "politic" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "religion" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), - "pub_keywords" => array("type" => "text", "not null" => "1"), - "prv_keywords" => array("type" => "text", "not null" => "1"), - "likes" => array("type" => "text", "not null" => "1"), - "dislikes" => array("type" => "text", "not null" => "1"), - "about" => array("type" => "text", "not null" => "1"), + "pub_keywords" => array("type" => "text"), + "prv_keywords" => array("type" => "text"), + "likes" => array("type" => "text"), + "dislikes" => array("type" => "text"), + "about" => array("type" => "text"), "summary" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), - "music" => array("type" => "text", "not null" => "1"), - "book" => array("type" => "text", "not null" => "1"), - "tv" => array("type" => "text", "not null" => "1"), - "film" => array("type" => "text", "not null" => "1"), - "interest" => array("type" => "text", "not null" => "1"), - "romance" => array("type" => "text", "not null" => "1"), - "work" => array("type" => "text", "not null" => "1"), - "education" => array("type" => "text", "not null" => "1"), - "contact" => array("type" => "text", "not null" => "1"), + "music" => array("type" => "text"), + "book" => array("type" => "text"), + "tv" => array("type" => "text"), + "film" => array("type" => "text"), + "interest" => array("type" => "text"), + "romance" => array("type" => "text"), + "work" => array("type" => "text"), + "education" => array("type" => "text"), + "contact" => array("type" => "text"), "homepage" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), + "xmpp" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "photo" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "thumb" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "publish" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"), @@ -1185,7 +1260,7 @@ function db_definition() { "network" => array("type" => "varchar(32)", "not null" => "1", "default" => ""), "created" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"), "last" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"), - "content" => array("type" => "mediumtext", "not null" => "1"), + "content" => array("type" => "mediumtext"), "batch" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"), ), "indexes" => array( @@ -1226,7 +1301,7 @@ function db_definition() { "fields" => array( "id" => array("type" => "bigint(20) unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1"), "sid" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), - "data" => array("type" => "text", "not null" => "1"), + "data" => array("type" => "text"), "expire" => array("type" => "int(10) unsigned", "not null" => "1", "default" => "0"), ), "indexes" => array( @@ -1239,8 +1314,8 @@ function db_definition() { "fields" => array( "id" => array("type" => "int(10) unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1"), "iid" => array("type" => "int(10) unsigned", "not null" => "1", "default" => "0"), - "signed_text" => array("type" => "mediumtext", "not null" => "1"), - "signature" => array("type" => "text", "not null" => "1"), + "signed_text" => array("type" => "mediumtext"), + "signature" => array("type" => "text"), "signer" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), ), "indexes" => array( @@ -1287,6 +1362,7 @@ function db_definition() { "type_term" => array("type","term"), "uid_otype_type_term_global_created" => array("uid","otype","type","term","global","created"), "otype_type_term_tid" => array("otype","type","term","tid"), + "uid_otype_type_url" => array("uid","otype","type","url"), "guid" => array("guid"), ) ); @@ -1296,6 +1372,8 @@ function db_definition() { "uid" => array("type" => "int(10) unsigned", "not null" => "1", "default" => "0"), "contact-id" => array("type" => "int(11) unsigned", "not null" => "1", "default" => "0"), "gcontact-id" => array("type" => "int(11) unsigned", "not null" => "1", "default" => "0"), + "owner-id" => array("type" => "int(11) unsigned", "not null" => "1", "default" => "0"), + "author-id" => array("type" => "int(11) unsigned", "not null" => "1", "default" => "0"), "created" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"), "edited" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"), "commented" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"), @@ -1335,7 +1413,7 @@ function db_definition() { $database["tokens"] = array( "fields" => array( "id" => array("type" => "varchar(40)", "not null" => "1", "primary" => "1"), - "secret" => array("type" => "text", "not null" => "1"), + "secret" => array("type" => "text"), "client_id" => array("type" => "varchar(20)", "not null" => "1", "default" => ""), "expires" => array("type" => "int(11)", "not null" => "1", "default" => "0"), "scope" => array("type" => "varchar(200)", "not null" => "1", "default" => ""), @@ -1361,10 +1439,10 @@ function db_definition() { "default-location" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "allow_location" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"), "theme" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), - "pubkey" => array("type" => "text", "not null" => "1"), - "prvkey" => array("type" => "text", "not null" => "1"), - "spubkey" => array("type" => "text", "not null" => "1"), - "sprvkey" => array("type" => "text", "not null" => "1"), + "pubkey" => array("type" => "text"), + "prvkey" => array("type" => "text"), + "spubkey" => array("type" => "text"), + "sprvkey" => array("type" => "text"), "verified" => array("type" => "tinyint(1) unsigned", "not null" => "1", "default" => "0"), "blocked" => array("type" => "tinyint(1) unsigned", "not null" => "1", "default" => "0"), "blockwall" => array("type" => "tinyint(1) unsigned", "not null" => "1", "default" => "0"), @@ -1374,6 +1452,7 @@ function db_definition() { "cntunkmail" => array("type" => "int(11)", "not null" => "1", "default" => "10"), "notify-flags" => array("type" => "int(11) unsigned", "not null" => "1", "default" => "65535"), "page-flags" => array("type" => "int(11) unsigned", "not null" => "1", "default" => "0"), + "account-type" => array("type" => "int(11) unsigned", "not null" => "1", "default" => "0"), "prvnets" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"), "pwdreset" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "maxreq" => array("type" => "int(11)", "not null" => "1", "default" => "10"), @@ -1384,11 +1463,11 @@ function db_definition() { "expire_notification_sent" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"), "service_class" => array("type" => "varchar(32)", "not null" => "1", "default" => ""), "def_gid" => array("type" => "int(11)", "not null" => "1", "default" => "0"), - "allow_cid" => array("type" => "mediumtext", "not null" => "1"), - "allow_gid" => array("type" => "mediumtext", "not null" => "1"), - "deny_cid" => array("type" => "mediumtext", "not null" => "1"), - "deny_gid" => array("type" => "mediumtext", "not null" => "1"), - "openidserver" => array("type" => "text", "not null" => "1"), + "allow_cid" => array("type" => "mediumtext"), + "allow_gid" => array("type" => "mediumtext"), + "deny_cid" => array("type" => "mediumtext"), + "deny_gid" => array("type" => "mediumtext"), + "openidserver" => array("type" => "text"), ), "indexes" => array( "PRIMARY" => array("uid"), @@ -1408,7 +1487,7 @@ function db_definition() { $database["workerqueue"] = array( "fields" => array( "id" => array("type" => "int(11)", "not null" => "1", "extra" => "auto_increment", "primary" => "1"), - "parameter" => array("type" => "text", "not null" => "1"), + "parameter" => array("type" => "text"), "priority" => array("type" => "tinyint(3) unsigned", "not null" => "1", "default" => "0"), "created" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"), "pid" => array("type" => "int(11)", "not null" => "1", "default" => "0"), @@ -1443,11 +1522,33 @@ function dbstructure_run(&$argv, &$argc) { if ($argc==2) { switch ($argv[1]) { + case "dryrun": + update_structure(true, false); + return; case "update": update_structure(true, true); + + $build = get_config('system','build'); + if (!x($build)) { + set_config('system','build',DB_UPDATE_VERSION); + $build = DB_UPDATE_VERSION; + } + + $stored = intval($build); + $current = intval(DB_UPDATE_VERSION); + + // run any left update_nnnn functions in update.php + for($x = $stored; $x < $current; $x ++) { + $r = run_update_function($x); + if (!$r) break; + } + + set_config('system','build',DB_UPDATE_VERSION); return; case "dumpsql": - print_structure(db_definition()); + // For the dump that is used to create the database.sql we always assume utfmb4 + $charset = "utf8mb4"; + print_structure(db_definition($charset), $charset); return; } } @@ -1456,7 +1557,8 @@ function dbstructure_run(&$argv, &$argc) { // print help echo $argv[0]." \n"; echo "\n"; - echo "commands:\n"; + echo "Commands:\n"; + echo "dryrun show database update schema queries without running them\n"; echo "update update database schema\n"; echo "dumpsql dump database schema\n"; return; diff --git a/include/delivery.php b/include/delivery.php index fe3377438..7c0ba63a6 100644 --- a/include/delivery.php +++ b/include/delivery.php @@ -178,7 +178,7 @@ function delivery_run(&$argv, &$argc){ $r = q("SELECT `contact`.*, `user`.`pubkey` AS `upubkey`, `user`.`prvkey` AS `uprvkey`, `user`.`timezone`, `user`.`nickname`, `user`.`sprvkey`, `user`.`spubkey`, - `user`.`page-flags`, `user`.`prvnets` + `user`.`page-flags`, `user`.`account-type`, `user`.`prvnets` FROM `contact` INNER JOIN `user` ON `user`.`uid` = `contact`.`uid` WHERE `contact`.`uid` = %d AND `contact`.`self` = 1 LIMIT 1", intval($uid) diff --git a/include/dfrn.php b/include/dfrn.php index c9b907acc..e048e6608 100644 --- a/include/dfrn.php +++ b/include/dfrn.php @@ -98,9 +98,9 @@ class dfrn { $sql_extra = " AND `item`.`allow_cid` = '' AND `item`.`allow_gid` = '' AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = '' "; - $r = q("SELECT `contact`.*, `user`.`nickname`, `user`.`timezone`, `user`.`page-flags` + $r = q("SELECT `contact`.*, `user`.`nickname`, `user`.`timezone`, `user`.`page-flags`, `user`.`account-type` FROM `contact` INNER JOIN `user` ON `user`.`uid` = `contact`.`uid` - WHERE `contact`.`self` = 1 AND `user`.`nickname` = '%s' LIMIT 1", + WHERE `contact`.`self` AND `user`.`nickname` = '%s' LIMIT 1", dbesc($owner_nick) ); @@ -112,7 +112,6 @@ class dfrn { $owner_nick = $owner['nickname']; $sql_post_table = ""; - $visibility = ""; if(! $public_feed) { @@ -171,9 +170,6 @@ class dfrn { else $sort = 'ASC'; - $date_field = "`changed`"; - $sql_order = "`item`.`parent` ".$sort.", `item`.`created` ASC"; - if(! strlen($last_update)) $last_update = 'now -30 days'; @@ -190,22 +186,19 @@ class dfrn { $check_date = datetime_convert('UTC','UTC',$last_update,'Y-m-d H:i:s'); - // AND ( `item`.`edited` > '%s' OR `item`.`changed` > '%s' ) - // dbesc($check_date), - - $r = q("SELECT STRAIGHT_JOIN `item`.*, `item`.`id` AS `item_id`, + $r = q("SELECT `item`.*, `item`.`id` AS `item_id`, `contact`.`name`, `contact`.`network`, `contact`.`photo`, `contact`.`url`, `contact`.`name-date`, `contact`.`uri-date`, `contact`.`avatar-date`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`, `sign`.`signed_text`, `sign`.`signature`, `sign`.`signer` - FROM `item` $sql_post_table - INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id` - AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 + FROM `item` USE INDEX (`uid_wall_changed`, `uid_type_changed`) $sql_post_table + STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`contact-id` + AND NOT `contact`.`blocked` LEFT JOIN `sign` ON `sign`.`iid` = `item`.`id` - WHERE `item`.`uid` = %d AND `item`.`visible` = 1 and `item`.`moderated` = 0 AND `item`.`parent` != 0 - AND ((`item`.`wall` = 1) $visibility) AND `item`.$date_field > '%s' + WHERE `item`.`uid` = %d AND `item`.`visible` AND NOT `item`.`moderated` AND `item`.`parent` != 0 + AND `item`.`wall` AND `item`.`changed` > '%s' $sql_extra - ORDER BY $sql_order LIMIT 0, 300", + ORDER BY `item`.`parent` ".$sort.", `item`.`created` ASC LIMIT 0, 300", intval($owner_id), dbesc($check_date), dbesc($sort) @@ -369,6 +362,7 @@ class dfrn { xml::add_element($doc, $relocate, "dfrn:url", $owner['url']); xml::add_element($doc, $relocate, "dfrn:name", $owner['name']); xml::add_element($doc, $relocate, "dfrn:addr", $owner['addr']); + xml::add_element($doc, $relocate, "dfrn:avatar", $owner['avatar']); xml::add_element($doc, $relocate, "dfrn:photo", $photos[4]); xml::add_element($doc, $relocate, "dfrn:thumb", $photos[5]); xml::add_element($doc, $relocate, "dfrn:micro", $photos[6]); @@ -439,9 +433,13 @@ class dfrn { xml::add_element($doc, $root, "link", "", $attributes); } + // For backward compatibility we keep this element if ($owner['page-flags'] == PAGE_COMMUNITY) xml::add_element($doc, $root, "dfrn:community", 1); + // The former element is replaced by this one + xml::add_element($doc, $root, "dfrn:account_type", $owner["account-type"]); + /// @todo We need a way to transmit the different page flags like "PAGE_PRVGROUP" xml::add_element($doc, $root, "updated", datetime_convert("UTC", "UTC", "now", ATOM_TIME)); @@ -511,14 +509,16 @@ class dfrn { xml::add_element($doc, $author, "dfrn:birthday", $birthday); // Only show contact details when we are allowed to - $r = q("SELECT `profile`.`about`, `profile`.`name`, `profile`.`homepage`, `user`.`nickname`, `user`.`timezone`, - `profile`.`locality`, `profile`.`region`, `profile`.`country-name`, `profile`.`pub_keywords`, `profile`.`dob` + $r = q("SELECT `profile`.`about`, `profile`.`name`, `profile`.`homepage`, `user`.`nickname`, + `user`.`timezone`, `profile`.`locality`, `profile`.`region`, `profile`.`country-name`, + `profile`.`pub_keywords`, `profile`.`xmpp`, `profile`.`dob` FROM `profile` INNER JOIN `user` ON `user`.`uid` = `profile`.`uid` WHERE `profile`.`is-default` AND NOT `user`.`hidewall` AND `user`.`uid` = %d", intval($owner['uid'])); if ($r) { $profile = $r[0]; + xml::add_element($doc, $author, "poco:displayName", $profile["name"]); xml::add_element($doc, $author, "poco:updated", $namdate); @@ -549,12 +549,10 @@ class dfrn { } - /// @todo When we are having the XMPP address in the profile we should propagate it here - $xmpp = ""; - if (trim($xmpp) != "") { + if (trim($profile["xmpp"]) != "") { $ims = $doc->createElement("poco:ims"); xml::add_element($doc, $ims, "poco:type", "xmpp"); - xml::add_element($doc, $ims, "poco:value", $xmpp); + xml::add_element($doc, $ims, "poco:value", $profile["xmpp"]); xml::add_element($doc, $ims, "poco:primary", "true"); $author->appendChild($ims); } @@ -1142,7 +1140,7 @@ class dfrn { $author["link"] = $xpath->evaluate($element."/atom:uri/text()", $context)->item(0)->nodeValue; $r = q("SELECT `id`, `uid`, `url`, `network`, `avatar-date`, `name-date`, `uri-date`, `addr`, - `name`, `nick`, `about`, `location`, `keywords`, `bdyear`, `bd`, `hidden` + `name`, `nick`, `about`, `location`, `keywords`, `xmpp`, `bdyear`, `bd`, `hidden`, `contact-type` FROM `contact` WHERE `uid` = %d AND `nurl` = '%s' AND `network` != '%s'", intval($importer["uid"]), dbesc(normalise_link($author["link"])), dbesc(NETWORK_STATUSNET)); if ($r) { @@ -1218,9 +1216,13 @@ class dfrn { if ($value != "") $poco["location"] = $value; + /// @todo Only search for elements with "poco:type" = "xmpp" + $value = $xpath->evaluate($element."/poco:ims/poco:value/text()", $context)->item(0)->nodeValue; + if ($value != "") + $poco["xmpp"] = $value; + /// @todo Add support for the following fields that we don't support by now in the contact table: /// - poco:utcOffset - /// - poco:ims /// - poco:urls /// - poco:locality /// - poco:region @@ -1307,12 +1309,13 @@ class dfrn { q("UPDATE `contact` SET `name` = '%s', `nick` = '%s', `about` = '%s', `location` = '%s', `addr` = '%s', `keywords` = '%s', `bdyear` = '%s', `bd` = '%s', `hidden` = %d, - `name-date` = '%s', `uri-date` = '%s' + `xmpp` = '%s', `name-date` = '%s', `uri-date` = '%s' WHERE `id` = %d AND `network` = '%s'", dbesc($contact["name"]), dbesc($contact["nick"]), dbesc($contact["about"]), dbesc($contact["location"]), dbesc($contact["addr"]), dbesc($contact["keywords"]), dbesc($contact["bdyear"]), - dbesc($contact["bd"]), intval($contact["hidden"]), dbesc($contact["name-date"]), - dbesc($contact["uri-date"]), intval($contact["id"]), dbesc($contact["network"])); + dbesc($contact["bd"]), intval($contact["hidden"]), dbesc($contact["xmpp"]), + dbesc($contact["name-date"]), dbesc($contact["uri-date"]), + intval($contact["id"]), dbesc($contact["network"])); } update_contact_avatar($author["avatar"], $importer["uid"], $contact["id"], @@ -1326,6 +1329,7 @@ class dfrn { $poco["generation"] = 2; $poco["photo"] = $author["avatar"]; $poco["hide"] = $hide; + $poco["contact-type"] = $contact["contact-type"]; update_gcontact($poco); } @@ -1548,6 +1552,7 @@ class dfrn { $relocate["url"] = $xpath->query("dfrn:url/text()", $relocation)->item(0)->nodeValue; $relocate["addr"] = $xpath->query("dfrn:addr/text()", $relocation)->item(0)->nodeValue; $relocate["name"] = $xpath->query("dfrn:name/text()", $relocation)->item(0)->nodeValue; + $relocate["avatar"] = $xpath->query("dfrn:avatar/text()", $relocation)->item(0)->nodeValue; $relocate["photo"] = $xpath->query("dfrn:photo/text()", $relocation)->item(0)->nodeValue; $relocate["thumb"] = $xpath->query("dfrn:thumb/text()", $relocation)->item(0)->nodeValue; $relocate["micro"] = $xpath->query("dfrn:micro/text()", $relocation)->item(0)->nodeValue; @@ -1557,6 +1562,9 @@ class dfrn { $relocate["poll"] = $xpath->query("dfrn:poll/text()", $relocation)->item(0)->nodeValue; $relocate["sitepubkey"] = $xpath->query("dfrn:sitepubkey/text()", $relocation)->item(0)->nodeValue; + if (($relocate["avatar"] == "") AND ($relocate["photo"] != "")) + $relocate["avatar"] = $relocate["photo"]; + if ($relocate["addr"] == "") $relocate["addr"] = preg_replace("=(https?://)(.*)/profile/(.*)=ism", "$3@$2", $relocate["url"]); @@ -1583,7 +1591,7 @@ class dfrn { `server_url` = '%s' WHERE `nurl` = '%s';", dbesc($relocate["name"]), - dbesc($relocate["photo"]), + dbesc($relocate["avatar"]), dbesc($relocate["url"]), dbesc(normalise_link($relocate["url"])), dbesc($relocate["addr"]), @@ -1595,9 +1603,7 @@ class dfrn { // Update the contact table. We try to find every entry. $x = q("UPDATE `contact` SET `name` = '%s', - `photo` = '%s', - `thumb` = '%s', - `micro` = '%s', + `avatar` = '%s', `url` = '%s', `nurl` = '%s', `addr` = '%s', @@ -1608,9 +1614,7 @@ class dfrn { `site-pubkey` = '%s' WHERE (`id` = %d AND `uid` = %d) OR (`nurl` = '%s');", dbesc($relocate["name"]), - dbesc($relocate["photo"]), - dbesc($relocate["thumb"]), - dbesc($relocate["micro"]), + dbesc($relocate["avatar"]), dbesc($relocate["url"]), dbesc(normalise_link($relocate["url"])), dbesc($relocate["addr"]), @@ -1623,6 +1627,8 @@ class dfrn { intval($importer["importer_uid"]), dbesc(normalise_link($old["url"]))); + update_contact_avatar($relocate["avatar"], $importer["importer_uid"], $importer["id"], true); + if ($x === false) return false; @@ -1631,17 +1637,23 @@ class dfrn { $fields = array( 'owner-link' => array($old["url"], $relocate["url"]), 'author-link' => array($old["url"], $relocate["url"]), - 'owner-avatar' => array($old["photo"], $relocate["photo"]), - 'author-avatar' => array($old["photo"], $relocate["photo"]), + //'owner-avatar' => array($old["photo"], $relocate["photo"]), + //'author-avatar' => array($old["photo"], $relocate["photo"]), ); - foreach ($fields as $n=>$f){ - $x = q("UPDATE `item` SET `%s` = '%s' WHERE `%s` = '%s' AND `uid` = %d", - $n, dbesc($f[1]), + foreach ($fields as $n=>$f) { + $r = q("SELECT `id` FROM `item` WHERE `%s` = '%s' AND `uid` = %d LIMIT 1", $n, dbesc($f[0]), intval($importer["importer_uid"])); - if ($x === false) - return false; + + if ($r) { + $x = q("UPDATE `item` SET `%s` = '%s' WHERE `%s` = '%s' AND `uid` = %d", + $n, dbesc($f[1]), + $n, dbesc($f[0]), + intval($importer["importer_uid"])); + if ($x === false) + return false; } + } /// @TODO /// merge with current record, current contents have priority @@ -1683,7 +1695,7 @@ class dfrn { $changed = true; if ($entrytype == DFRN_REPLY_RC) - proc_run("php", "include/notifier.php","comment-import", $current["id"]); + proc_run(PRIORITY_HIGH, "include/notifier.php","comment-import", $current["id"]); } // update last-child if it changes @@ -2243,7 +2255,7 @@ class dfrn { if($posted_id AND $parent AND ($entrytype == DFRN_REPLY_RC)) { logger("Notifying followers about comment ".$posted_id, LOGGER_DEBUG); - proc_run("php", "include/notifier.php", "comment-import", $posted_id); + proc_run(PRIORITY_HIGH, "include/notifier.php", "comment-import", $posted_id); } return true; @@ -2414,7 +2426,7 @@ class dfrn { if($entrytype == DFRN_REPLY_RC) { logger("Notifying followers about deletion of post ".$item["id"], LOGGER_DEBUG); - proc_run("php", "include/notifier.php","drop", $item["id"]); + proc_run(PRIORITY_HIGH, "include/notifier.php","drop", $item["id"]); } } } @@ -2474,7 +2486,19 @@ class dfrn { logger("Import DFRN message for user ".$importer["uid"]." from contact ".$importer["id"], LOGGER_DEBUG); - // is it a public forum? Private forums aren't supported by now with this method + // The account type is new since 3.5.1 + if ($xpath->query("/atom:feed/dfrn:account_type")->length > 0) { + $accounttype = intval($xpath->evaluate("/atom:feed/dfrn:account_type/text()", $context)->item(0)->nodeValue); + + if ($accounttype != $importer["contact-type"]) + q("UPDATE `contact` SET `contact-type` = %d WHERE `id` = %d", + intval($accounttype), + intval($importer["id"]) + ); + } + + // is it a public forum? Private forums aren't supported with this method + // This is deprecated since 3.5.1 $forum = intval($xpath->evaluate("/atom:feed/dfrn:community/text()", $context)->item(0)->nodeValue); if ($forum != $importer["forum"]) diff --git a/include/diaspora.php b/include/diaspora.php index 2ff7a90cf..db6844f44 100644 --- a/include/diaspora.php +++ b/include/diaspora.php @@ -2,6 +2,10 @@ /** * @file include/diaspora.php * @brief The implementation of the diaspora protocol + * + * The new protocol is described here: http://diaspora.github.io/diaspora_federation/index.html + * Currently this implementation here interprets the old and the new protocol and sends the old one. + * This will change in the future. */ require_once("include/items.php"); @@ -100,6 +104,59 @@ class diaspora { return($signature); } + /** + * @brief verify the envelope and return the verified data + * + * @param string $envelope The magic envelope + * + * @return string verified data + */ + private function verify_magic_envelope($envelope) { + + $basedom = parse_xml_string($envelope, false); + + if (!is_object($basedom)) { + logger("Envelope is no XML file"); + return false; + } + + $children = $basedom->children('http://salmon-protocol.org/ns/magic-env'); + + if (sizeof($children) == 0) { + logger("XML has no children"); + return false; + } + + $handle = ""; + + $data = base64url_decode($children->data); + $type = $children->data->attributes()->type[0]; + + $encoding = $children->encoding; + + $alg = $children->alg; + + $sig = base64url_decode($children->sig); + $key_id = $children->sig->attributes()->key_id[0]; + if ($key_id != "") + $handle = base64url_decode($key_id); + + $b64url_data = base64url_encode($data); + $msg = str_replace(array("\n", "\r", " ", "\t"), array("", "", "", ""), $b64url_data); + + $signable_data = $msg.".".base64url_encode($type).".".base64url_encode($encoding).".".base64url_encode($alg); + + $key = self::key($handle); + + $verify = rsa_verify($signable_data, $sig, $key); + if (!$verify) { + logger('Message did not verify. Discarding.'); + return false; + } + + return $data; + } + /** * @brief: Decodes incoming Diaspora message * @@ -233,7 +290,6 @@ class diaspora { return array('message' => (string)$inner_decrypted, 'author' => unxmlify($author_link), 'key' => (string)$key); - } @@ -360,8 +416,10 @@ class diaspora { $data = parse_xml_string($msg["message"], false); - if (!is_object($data)) + if (!is_object($data)) { + logger("No valid XML ".$msg["message"], LOGGER_DEBUG); return false; + } $first_child = $data->getName(); @@ -378,6 +436,8 @@ class diaspora { $type = $element->getName(); $orig_type = $type; + logger("Got message type ".$type.": ".$msg["message"], LOGGER_DATA); + // All retractions are handled identically from now on. // In the new version there will only be "retraction". if (in_array($type, array("signed_retraction", "relayable_retraction"))) @@ -422,11 +482,11 @@ class diaspora { } } - if ($fieldname == "author_signature") + if (($fieldname == "author_signature") AND ($entry != "")) $author_signature = base64_decode($entry); - elseif ($fieldname == "parent_author_signature") + elseif (($fieldname == "parent_author_signature") AND ($entry != "")) $parent_author_signature = base64_decode($entry); - elseif ($fieldname != "target_author_signature") { + elseif (!in_array($fieldname, array("author_signature", "parent_author_signature", "target_author_signature"))) { if ($signed_data != "") { $signed_data .= ";"; $signed_data_parent .= ";"; @@ -451,19 +511,27 @@ class diaspora { return true; // No author_signature? This is a must, so we quit. - if (!isset($author_signature)) + if (!isset($author_signature)) { + logger("No author signature for type ".$type." - Message: ".$msg["message"], LOGGER_DEBUG); return false; + } if (isset($parent_author_signature)) { $key = self::key($msg["author"]); - if (!rsa_verify($signed_data, $parent_author_signature, $key, "sha256")) + if (!rsa_verify($signed_data, $parent_author_signature, $key, "sha256")) { + logger("No valid parent author signature for author ".$msg["author"]. " in type ".$type." - signed data: ".$signed_data." - Message: ".$msg["message"]." - Signature ".$parent_author_signature, LOGGER_DEBUG); return false; + } } $key = self::key($fields->author); - return rsa_verify($signed_data, $author_signature, $key, "sha256"); + if (!rsa_verify($signed_data, $author_signature, $key, "sha256")) { + logger("No valid author signature for author ".$msg["author"]. " in type ".$type." - signed data: ".$signed_data." - Message: ".$msg["message"]." - Signature ".$author_signature, LOGGER_DEBUG); + return false; + } else + return true; } /** @@ -506,6 +574,9 @@ class diaspora { $d = strtotime($person["updated"]." +00:00"); if ($d < strtotime("now - 14 days")) $update = true; + + if ($person["guid"] == "") + $update = true; } if (!$person OR $update) { @@ -539,6 +610,7 @@ class diaspora { `request` = '%s', `nick` = '%s', `addr` = '%s', + `guid` = '%s', `batch` = '%s', `notify` = '%s', `poll` = '%s', @@ -551,7 +623,8 @@ class diaspora { dbesc($arr["photo"]), dbesc($arr["request"]), dbesc($arr["nick"]), - dbesc($arr["addr"]), + dbesc(strtolower($arr["addr"])), + dbesc($arr["guid"]), dbesc($arr["batch"]), dbesc($arr["notify"]), dbesc($arr["poll"]), @@ -563,15 +636,16 @@ class diaspora { dbesc($arr["network"]) ); } else { - $r = q("INSERT INTO `fcontact` (`url`,`name`,`photo`,`request`,`nick`,`addr`, + $r = q("INSERT INTO `fcontact` (`url`,`name`,`photo`,`request`,`nick`,`addr`, `guid`, `batch`, `notify`,`poll`,`confirm`,`network`,`alias`,`pubkey`,`updated`) - VALUES ('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')", + VALUES ('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')", dbesc($arr["url"]), dbesc($arr["name"]), dbesc($arr["photo"]), dbesc($arr["request"]), dbesc($arr["nick"]), dbesc($arr["addr"]), + dbesc($arr["guid"]), dbesc($arr["batch"]), dbesc($arr["notify"]), dbesc($arr["poll"]), @@ -603,7 +677,7 @@ class diaspora { $r = q("SELECT `addr` FROM `gcontact` WHERE `id` = %d AND `addr` != ''", intval($gcontact_id)); if ($r) - return $r[0]["addr"]; + return strtolower($r[0]["addr"]); } $r = q("SELECT `network`, `addr`, `self`, `url`, `nick` FROM `contact` WHERE `id` = %d", @@ -623,7 +697,7 @@ class diaspora { } } - return $handle; + return strtolower($handle); } /** @@ -806,11 +880,30 @@ class diaspora { if ($level > 5) return false; - // This will work for Diaspora and newer Friendica servers - $source_url = $server."/p/".$guid.".xml"; - $x = fetch_url($source_url); - if(!$x) - return false; + // This will work for new Diaspora servers and Friendica servers from 3.5 + $source_url = $server."/fetch/post/".$guid; + logger("Fetch post from ".$source_url, LOGGER_DEBUG); + + $envelope = fetch_url($source_url); + if($envelope) { + logger("Envelope was fetched.", LOGGER_DEBUG); + $x = self::verify_magic_envelope($envelope); + if (!$x) + logger("Envelope could not be verified.", LOGGER_DEBUG); + else + logger("Envelope was verified.", LOGGER_DEBUG); + } else + $x = false; + + // This will work for older Diaspora and Friendica servers + if (!$x) { + $source_url = $server."/p/".$guid.".xml"; + logger("Fetch post from ".$source_url, LOGGER_DEBUG); + + $x = fetch_url($source_url); + if(!$x) + return false; + } $source_xml = parse_xml_string($x, false); @@ -819,9 +912,11 @@ class diaspora { if ($source_xml->post->reshare) { // Reshare of a reshare - old Diaspora version + logger("Message is a reshare", LOGGER_DEBUG); return self::message($source_xml->post->reshare->root_guid, $server, ++$level); } elseif ($source_xml->getName() == "reshare") { // Reshare of a reshare - new Diaspora version + logger("Message is a new reshare", LOGGER_DEBUG); return self::message($source_xml->root_guid, $server, ++$level); } @@ -834,8 +929,10 @@ class diaspora { $author = (string)$source_xml->author; // If this isn't a "status_message" then quit - if (!$author) + if (!$author) { + logger("Message doesn't seem to be a status message", LOGGER_DEBUG); return false; + } $msg = array("message" => $x, "author" => $author); @@ -981,6 +1078,23 @@ class diaspora { return true; } + /** + * @brief Fetch the uri from our database if we already have this item (maybe from ourselves) + * + * @param string $author Author handle + * @param string $guid Message guid + * + * @return string The constructed uri or the one from our database + */ + private function get_uri_from_guid($author, $guid) { + + $r = q("SELECT `uri` FROM `item` WHERE `guid` = '%s' LIMIT 1", dbesc($guid)); + if ($r) + return $r[0]["uri"]; + else + return $author.":".$guid; + } + /** * @brief Processes an incoming comment * @@ -997,6 +1111,11 @@ class diaspora { $text = unxmlify($data->text); $author = notags(unxmlify($data->author)); + if (isset($data->created_at)) + $created_at = datetime_convert("UTC", "UTC", notags(unxmlify($data->created_at))); + else + $created_at = datetime_convert(); + $contact = self::allowed_contact_by_handle($importer, $sender, true); if (!$contact) return false; @@ -1033,7 +1152,7 @@ class diaspora { $datarray["owner-avatar"] = ((x($contact,"thumb")) ? $contact["thumb"] : $contact["photo"]); $datarray["guid"] = $guid; - $datarray["uri"] = $author.":".$guid; + $datarray["uri"] = self::get_uri_from_guid($author, $guid); $datarray["type"] = "remote-comment"; $datarray["verb"] = ACTIVITY_POST; @@ -1043,6 +1162,8 @@ class diaspora { $datarray["object-type"] = ACTIVITY_OBJ_COMMENT; $datarray["object"] = $xml; + $datarray["changed"] = $datarray["created"] = $datarray["edited"] = $created_at; + $datarray["body"] = diaspora2bb($text); self::fetch_guid($datarray); @@ -1063,7 +1184,7 @@ class diaspora { ); // notify others - proc_run("php", "include/notifier.php", "comment-import", $message_id); + proc_run(PRIORITY_HIGH, "include/notifier.php", "comment-import", $message_id); } return $message_id; @@ -1239,7 +1360,7 @@ class diaspora { intval($importer["uid"]), dbesc($guid), dbesc($author), - dbesc(datetime_convert("UTC", "UTC", $created_at)), + dbesc($created_at), dbesc(datetime_convert()), dbesc($subject), dbesc($participants) @@ -1370,7 +1491,7 @@ class diaspora { $datarray["owner-avatar"] = ((x($contact,"thumb")) ? $contact["thumb"] : $contact["photo"]); $datarray["guid"] = $guid; - $datarray["uri"] = $author.":".$guid; + $datarray["uri"] = self::get_uri_from_guid($author, $guid); $datarray["type"] = "activity"; $datarray["verb"] = $verb; @@ -1398,7 +1519,7 @@ class diaspora { ); // notify others - proc_run("php", "include/notifier.php", "comment-import", $message_id); + proc_run(PRIORITY_HIGH, "include/notifier.php", "comment-import", $message_id); } return $message_id; @@ -1531,7 +1652,7 @@ class diaspora { * @return bool Success */ private function receive_profile($importer, $data) { - $author = notags(unxmlify($data->author)); + $author = strtolower(notags(unxmlify($data->author))); $contact = self::contact_by_handle($importer["uid"], $author); if (!$contact) @@ -1678,7 +1799,7 @@ class diaspora { $i = item_store($arr); if($i) - proc_run("php", "include/notifier.php", "activity", $i); + proc_run(PRIORITY_HIGH, "include/notifier.php", "activity", $i); } } } @@ -1736,10 +1857,26 @@ class diaspora { // That makes us friends. if ($contact) { if ($following AND $sharing) { + logger("Author ".$author." (Contact ".$contact["id"].") wants to have a bidirectional conection.", LOGGER_DEBUG); self::receive_request_make_friend($importer, $contact); + + // refetch the contact array + $contact = self::contact_by_handle($importer["uid"],$author); + + // If we are now friends, we are sending a share message. + // Normally we needn't to do so, but the first message could have been vanished. + if (in_array($contact["rel"], array(CONTACT_IS_FRIEND, CONTACT_IS_FOLLOWER))) { + $u = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1", intval($importer["uid"])); + if($u) { + logger("Sending share message to author ".$author." - Contact: ".$contact["id"]." - User: ".$importer["uid"], LOGGER_DEBUG); + $ret = self::send_share($u[0], $contact); + } + } return true; - } else /// @todo Handle all possible variations of adding and retracting of permissions + } else { /// @todo Handle all possible variations of adding and retracting of permissions + logger("Author ".$author." (Contact ".$contact["id"].") wants to change the relationship: Following: ".$following." - sharing: ".$sharing. "(By now unsupported)", LOGGER_DEBUG); return false; + } } if (!$following AND $sharing AND in_array($importer["page-flags"], array(PAGE_SOAPBOX, PAGE_NORMAL))) { @@ -1748,6 +1885,12 @@ class diaspora { } elseif (!$following AND !$sharing) { logger("Author ".$author." doesn't want anything - and we don't know the author. Request is ignored.", LOGGER_DEBUG); return false; + } elseif (!$following AND $sharing) { + logger("Author ".$author." wants to share with us.", LOGGER_DEBUG); + } elseif ($following AND $sharing) { + logger("Author ".$author." wants to have a bidirectional conection.", LOGGER_DEBUG); + } elseif ($following AND !$sharing) { + logger("Author ".$author." wants to listen to us.", LOGGER_DEBUG); } $ret = self::person_by_handle($author); @@ -1787,13 +1930,19 @@ class diaspora { return; } + logger("Author ".$author." was added as contact number ".$contact_record["id"].".", LOGGER_DEBUG); + $def_gid = get_default_group($importer['uid'], $ret["network"]); if(intval($def_gid)) group_add_member($importer["uid"], "", $contact_record["id"], $def_gid); + update_contact_avatar($ret["photo"], $importer['uid'], $contact_record["id"], true); + if($importer["page-flags"] == PAGE_NORMAL) { + logger("Sending intra message for author ".$author.".", LOGGER_DEBUG); + $hash = random_string().(string)time(); // Generate a confirm_key $ret = q("INSERT INTO `intro` (`uid`, `contact-id`, `blocked`, `knowyou`, `note`, `hash`, `datetime`) @@ -1810,6 +1959,8 @@ class diaspora { // automatic friend approval + logger("Does an automatic friend approval for author ".$author.".", LOGGER_DEBUG); + update_contact_avatar($contact_record["photo"],$importer["uid"],$contact_record["id"]); // technically they are sharing with us (CONTACT_IS_SHARING), @@ -1838,8 +1989,13 @@ class diaspora { ); $u = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1", intval($importer["uid"])); - if($u) + if($u) { + logger("Sending share message (Relation: ".$new_relation.") to author ".$author." - Contact: ".$contact_record["id"]." - User: ".$importer["uid"], LOGGER_DEBUG); $ret = self::send_share($u[0], $contact_record); + + // Send the profile data, maybe it weren't transmitted before + self::send_profile($importer["uid"], array($contact_record)); + } } return true; @@ -1883,27 +2039,15 @@ class diaspora { if (!$r) { $server = "https://".substr($orig_author, strpos($orig_author, "@") + 1); - logger("1st try: reshared message ".$guid." will be fetched from original server: ".$server); + logger("1st try: reshared message ".$guid." will be fetched via SSL from the server ".$server); $item_id = self::store_by_guid($guid, $server); if (!$item_id) { $server = "http://".substr($orig_author, strpos($orig_author, "@") + 1); - logger("2nd try: reshared message ".$guid." will be fetched from original server: ".$server); + logger("2nd try: reshared message ".$guid." will be fetched without SLL from the server ".$server); $item_id = self::store_by_guid($guid, $server); } - // Deactivated by now since there is a risk that someone could manipulate postings through this method -/* if (!$item_id) { - $server = "https://".substr($author, strpos($author, "@") + 1); - logger("3rd try: reshared message ".$guid." will be fetched from sharer's server: ".$server); - $item_id = self::store_by_guid($guid, $server); - } - if (!$item_id) { - $server = "http://".substr($author, strpos($author, "@") + 1); - logger("4th try: reshared message ".$guid." will be fetched from sharer's server: ".$server); - $item_id = self::store_by_guid($guid, $server); - } -*/ if ($item_id) { $r = q("SELECT `body`, `tag`, `app`, `created`, `object-type`, `uri`, `guid`, `author-name`, `author-link`, `author-avatar` @@ -1938,7 +2082,7 @@ class diaspora { $guid = notags(unxmlify($data->guid)); $author = notags(unxmlify($data->author)); $public = notags(unxmlify($data->public)); - $created_at = notags(unxmlify($data->created_at)); + $created_at = datetime_convert("UTC", "UTC", notags(unxmlify($data->created_at))); $contact = self::allowed_contact_by_handle($importer, $author, false); if (!$contact) @@ -1969,7 +2113,7 @@ class diaspora { $datarray["owner-avatar"] = $datarray["author-avatar"]; $datarray["guid"] = $guid; - $datarray["uri"] = $datarray["parent-uri"] = $author.":".$guid; + $datarray["uri"] = $datarray["parent-uri"] = self::get_uri_from_guid($author, $guid); $datarray["verb"] = ACTIVITY_POST; $datarray["gravity"] = GRAVITY_PARENT; @@ -1985,7 +2129,7 @@ class diaspora { $datarray["plink"] = self::plink($author, $guid); $datarray["private"] = (($public == "false") ? 1 : 0); - $datarray["changed"] = $datarray["created"] = $datarray["edited"] = datetime_convert("UTC", "UTC", $created_at); + $datarray["changed"] = $datarray["created"] = $datarray["edited"] = $created_at; $datarray["object-type"] = $original_item["object-type"]; @@ -2025,12 +2169,6 @@ class diaspora { if (!$r) return false; - // Only delete it if the author really fits - if (!link_compare($r[0]["author-link"], $person["url"])) { - logger("Item author ".$r[0]["author-link"]." doesn't fit to expected contact ".$person["url"], LOGGER_DEBUG); - return false; - } - // Check if the sender is the thread owner $p = q("SELECT `id`, `author-link`, `origin` FROM `item` WHERE `id` = %d", intval($r[0]["parent"])); @@ -2054,7 +2192,7 @@ class diaspora { // Now check if the retraction needs to be relayed by us if($p[0]["origin"]) { // notify others - proc_run("php", "include/notifier.php", "drop", $r[0]["id"]); + proc_run(PRIORITY_HIGH, "include/notifier.php", "drop", $r[0]["id"]); } return true; @@ -2112,12 +2250,11 @@ class diaspora { * @return int The message id of the newly created item */ private function receive_status_message($importer, $data, $xml) { - $raw_message = unxmlify($data->raw_message); $guid = notags(unxmlify($data->guid)); $author = notags(unxmlify($data->author)); $public = notags(unxmlify($data->public)); - $created_at = notags(unxmlify($data->created_at)); + $created_at = datetime_convert("UTC", "UTC", notags(unxmlify($data->created_at))); $provider_display_name = notags(unxmlify($data->provider_display_name)); /// @todo enable support for polls @@ -2171,7 +2308,7 @@ class diaspora { $datarray["owner-avatar"] = $datarray["author-avatar"]; $datarray["guid"] = $guid; - $datarray["uri"] = $datarray["parent-uri"] = $author.":".$guid; + $datarray["uri"] = $datarray["parent-uri"] = self::get_uri_from_guid($author, $guid); $datarray["verb"] = ACTIVITY_POST; $datarray["gravity"] = GRAVITY_PARENT; @@ -2185,7 +2322,7 @@ class diaspora { $datarray["plink"] = self::plink($author, $guid); $datarray["private"] = (($public == "false") ? 1 : 0); - $datarray["changed"] = $datarray["created"] = $datarray["edited"] = datetime_convert("UTC", "UTC", $created_at); + $datarray["changed"] = $datarray["created"] = $datarray["edited"] = $created_at; if (isset($address["address"])) $datarray["location"] = $address["address"]; @@ -2227,6 +2364,40 @@ class diaspora { return $nick."@".substr(App::get_baseurl(), strpos(App::get_baseurl(),"://") + 3); } + /** + * @brief Creates the envelope for the "fetch" endpoint + * + * @param string $msg The message that is to be transmitted + * @param array $user The record of the sender + * + * @return string The envelope + */ + + public static function build_magic_envelope($msg, $user) { + + $b64url_data = base64url_encode($msg); + $data = str_replace(array("\n", "\r", " ", "\t"), array("", "", "", ""), $b64url_data); + + $key_id = base64url_encode(diaspora::my_handle($user)); + $type = "application/xml"; + $encoding = "base64url"; + $alg = "RSA-SHA256"; + $signable_data = $data.".".base64url_encode($type).".".base64url_encode($encoding).".".base64url_encode($alg); + $signature = rsa_sign($signable_data, $user["prvkey"]); + $sig = base64url_encode($signature); + + $xmldata = array("me:env" => array("me:data" => $data, + "@attributes" => array("type" => $type), + "me:encoding" => $encoding, + "me:alg" => $alg, + "me:sig" => $sig, + "@attributes2" => array("key_id" => $key_id))); + + $namespaces = array("me" => "http://salmon-protocol.org/ns/magic-env"); + + return xml::from_array($xmldata, $xml, false, $namespaces); + } + /** * @brief Creates the envelope for a public message * @@ -2258,11 +2429,11 @@ class diaspora { $sig = base64url_encode($signature); $xmldata = array("diaspora" => array("header" => array("author_id" => $handle), - "me:env" => array("me:encoding" => "base64url", - "me:alg" => "RSA-SHA256", - "me:data" => $data, - "@attributes" => array("type" => "application/xml"), - "me:sig" => $sig))); + "me:env" => array("me:encoding" => $encoding, + "me:alg" => $alg, + "me:data" => $data, + "@attributes" => array("type" => $type), + "me:sig" => $sig))); $namespaces = array("" => "https://joindiaspora.com/protocol", "me" => "http://salmon-protocol.org/ns/magic-env"); @@ -2348,10 +2519,10 @@ class diaspora { $cipher_json = base64_encode($encrypted_header_json_object); $xmldata = array("diaspora" => array("encrypted_header" => $cipher_json, - "me:env" => array("me:encoding" => "base64url", - "me:alg" => "RSA-SHA256", + "me:env" => array("me:encoding" => $encoding, + "me:alg" => $alg, "me:data" => $data, - "@attributes" => array("type" => "application/xml"), + "@attributes" => array("type" => $type), "me:sig" => $sig))); $namespaces = array("" => "https://joindiaspora.com/protocol", @@ -2469,6 +2640,20 @@ class diaspora { } + /** + * @brief Build the post xml + * + * @param string $type The message type + * @param array $message The message data + * + * @return string The post XML + */ + public static function build_post_xml($type, $message) { + + $data = array("XML" => array("post" => array($type => $message))); + return xml::from_array($data, $xml); + } + /** * @brief Builds and transmit messages * @@ -2484,13 +2669,15 @@ class diaspora { */ private function build_and_transmit($owner, $contact, $type, $message, $public_batch = false, $guid = "", $spool = false) { - $data = array("XML" => array("post" => array($type => $message))); - - $msg = xml::from_array($data, $xml); + $msg = self::build_post_xml($type, $message); logger('message: '.$msg, LOGGER_DATA); logger('send guid '.$guid, LOGGER_DEBUG); + // Fallback if the private key wasn't transmitted in the expected field + if ($owner['uprvkey'] == "") + $owner['uprvkey'] = $owner['prvkey']; + $slap = self::build_message($msg, $owner, $contact, $owner['uprvkey'], $contact['pubkey'], $public_batch); if ($spool) { @@ -2517,6 +2704,8 @@ class diaspora { $message = array("sender_handle" => self::my_handle($owner), "recipient_handle" => $contact["addr"]); + logger("Send share ".print_r($message, true), LOGGER_DEBUG); + return self::build_and_transmit($owner, $contact, "request", $message); } @@ -2534,6 +2723,8 @@ class diaspora { "diaspora_handle" => self::my_handle($owner), "type" => "Person"); + logger("Send unshare ".print_r($message, true), LOGGER_DEBUG); + return self::build_and_transmit($owner, $contact, "retraction", $message); } @@ -2618,16 +2809,16 @@ class diaspora { } /** - * @brief Sends a post + * @brief Create a post (status message or reshare) * * @param array $item The item that will be exported * @param array $owner the array of the item owner - * @param array $contact Target of the communication - * @param bool $public_batch Is it a public post? * - * @return int The result of the transmission + * @return array + * 'type' -> Message type ("status_message" or "reshare") + * 'message' -> Array of XML elements of the status */ - public static function send_status($item, $owner, $contact, $public_batch = false) { + public static function build_status($item, $owner) { $myaddr = self::my_handle($owner); @@ -2690,8 +2881,24 @@ class diaspora { $type = "status_message"; } + return array("type" => $type, "message" => $message); + } - return self::build_and_transmit($owner, $contact, $type, $message, $public_batch, $item["guid"]); + /** + * @brief Sends a post + * + * @param array $item The item that will be exported + * @param array $owner the array of the item owner + * @param array $contact Target of the communication + * @param bool $public_batch Is it a public post? + * + * @return int The result of the transmission + */ + public static function send_status($item, $owner, $contact, $public_batch = false) { + + $status = diaspora::build_status($item, $owner); + + return self::build_and_transmit($owner, $contact, $status["type"], $status["message"], $public_batch, $item["guid"]); } /** @@ -3004,17 +3211,18 @@ class diaspora { * * @param int $uid The user id */ - public static function send_profile($uid) { + public static function send_profile($uid, $recips = false) { if (!$uid) return; - $recips = q("SELECT `id`,`name`,`network`,`pubkey`,`notify` FROM `contact` WHERE `network` = '%s' - AND `uid` = %d AND `rel` != %d", - dbesc(NETWORK_DIASPORA), - intval($uid), - intval(CONTACT_IS_SHARING) - ); + if (!$recips) + $recips = q("SELECT `id`,`name`,`network`,`pubkey`,`notify` FROM `contact` WHERE `network` = '%s' + AND `uid` = %d AND `rel` != %d", + dbesc(NETWORK_DIASPORA), + intval($uid), + intval(CONTACT_IS_SHARING) + ); if (!$recips) return; @@ -3078,8 +3286,10 @@ class diaspora { "searchable" => $searchable, "tag_string" => $tags); - foreach($recips as $recip) + foreach($recips as $recip) { + logger("Send updated profile data for user ".$uid." to contact ".$recip["id"], LOGGER_DEBUG); self::build_and_transmit($profile, $recip, "profile", $message, false, "", true); + } } /** diff --git a/include/enotify.php b/include/enotify.php index bed00c5ea..5b2bea297 100644 --- a/include/enotify.php +++ b/include/enotify.php @@ -49,7 +49,7 @@ function notification($params) { // with $params['show_in_notification_page'] == false, the notification isn't inserted into // the database, and an email is sent if applicable. // default, if not specified: true - $show_in_notification_page = ((x($params, 'show_in_notification_page')) ? $params['show_in_notification_page']:True); + $show_in_notification_page = ((x($params, 'show_in_notification_page')) ? $params['show_in_notification_page']:true); $additional_mail_header = ""; $additional_mail_header .= "Precedence: list\n"; @@ -418,6 +418,7 @@ function notification($params) { $datarray = array(); $datarray['hash'] = $hash; $datarray['name'] = $params['source_name']; + $datarray['name_cache'] = strip_tags(bbcode($params['source_name'])); $datarray['url'] = $params['source_link']; $datarray['photo'] = $params['source_photo']; $datarray['date'] = datetime_convert(); @@ -439,8 +440,8 @@ function notification($params) { // create notification entry in DB - $r = q("INSERT INTO `notify` (`hash`, `name`, `url`, `photo`, `date`, `uid`, `link`, `iid`, `parent`, `type`, `verb`, `otype`) - values('%s', '%s', '%s', '%s', '%s', %d, '%s', %d, %d, %d, '%s', '%s')", + $r = q("INSERT INTO `notify` (`hash`, `name`, `url`, `photo`, `date`, `uid`, `link`, `iid`, `parent`, `type`, `verb`, `otype`, `name_cache`) + values('%s', '%s', '%s', '%s', '%s', %d, '%s', %d, %d, %d, '%s', '%s', '%s')", dbesc($datarray['hash']), dbesc($datarray['name']), dbesc($datarray['url']), @@ -452,7 +453,8 @@ function notification($params) { intval($datarray['parent']), intval($datarray['type']), dbesc($datarray['verb']), - dbesc($datarray['otype']) + dbesc($datarray['otype']), + dbesc($datarray["name_cache"]) ); $r = q("SELECT `id` FROM `notify` WHERE `hash` = '%s' AND `uid` = %d LIMIT 1", @@ -494,8 +496,10 @@ function notification($params) { $itemlink = $a->get_baseurl().'/notify/view/'.$notify_id; $msg = replace_macros($epreamble, array('$itemlink' => $itemlink)); - $r = q("UPDATE `notify` SET `msg` = '%s' WHERE `id` = %d AND `uid` = %d", + $msg_cache = format_notification_message($datarray['name_cache'], strip_tags(bbcode($msg))); + $r = q("UPDATE `notify` SET `msg` = '%s', `msg_cache` = '%s' WHERE `id` = %d AND `uid` = %d", dbesc($msg), + dbesc($msg_cache), intval($notify_id), intval($params['uid']) ); @@ -778,4 +782,27 @@ function check_item_notification($itemid, $uid, $defaulttype = "") { if (isset($params["type"])) notification($params); } -?> + +/** + * @brief Formats a notification message with the notification author + * + * Replace the name with {0} but ensure to make that only once. The {0} is used + * later and prints the name in bold. + * + * @param string $name + * @param string $message + * @return string Formatted message + */ +function format_notification_message($name, $message) { + if ($name != '') { + $pos = strpos($message, $name); + } else { + $pos = false; + } + + if ($pos !== false) { + $message = substr_replace($message, '{0}', $pos, strlen($name)); + } + + return $message; +} diff --git a/include/event.php b/include/event.php index c5e5ff18d..6c0e2bdec 100644 --- a/include/event.php +++ b/include/event.php @@ -1,12 +1,15 @@ $firstDay, + "Sun" => t("Sun"), + "Mon" => t("Mon"), + "Tue" => t("Tue"), + "Wed" => t("Wed"), + "Thu" => t("Thu"), + "Fri" => t("Fri"), + "Sat" => t("Sat"), + "Sunday" => t("Sunday"), + "Monday" => t("Monday"), + "Tuesday" => t("Tuesday"), + "Wednesday" => t("Wednesday"), + "Thursday" => t("Thursday"), + "Friday" => t("Friday"), + "Saturday" => t("Saturday"), + "Jan" => t("Jan"), + "Feb" => t("Feb"), + "Mar" => t("Mar"), + "Apr" => t("Apr"), + "May" => t("May"), + "Jun" => t("Jun"), + "Jul" => t("Jul"), + "Aug" => t("Aug"), + "Sep" => t("Sept"), + "Oct" => t("Oct"), + "Nov" => t("Nov"), + "Dec" => t("Dec"), + "January" => t("January"), + "February" => t("February"), + "March" => t("March"), + "April" => t("April"), + "May" => t("May"), + "June" => t("June"), + "July" => t("July"), + "August" => t("August"), + "September" => t("September"), + "October" => t("October"), + "November" => t("November"), + "December" => t("December"), + "today" => t("today"), + "month" => t("month"), + "week" => t("week"), + "day" => t("day"), + "allday" => t("all-day"), + + "noevent" => t("No events to display"), + + "dtstart_label" => t("Starts:"), + "dtend_label" => t("Finishes:"), + "location_label" => t("Location:") + ); + + return $i18n; +} + +/** + * @brief Get an event by its event ID + * + * @param type $owner_uid The User ID of the owner of the event + * @param type $event_params An assoziative array with + * int 'event_id' => The ID of the event in the event table + * @param type $sql_extra + * @return array Query result + */ +function event_by_id($owner_uid = 0, $event_params, $sql_extra = '') { + // ownly allow events if there is a valid owner_id + if($owner_uid == 0) + return; + + // query for the event by event id + $r = q("SELECT `event`.*, `item`.`id` AS `itemid`,`item`.`plink`, + `item`.`author-name`, `item`.`author-avatar`, `item`.`author-link` FROM `event` + STRAIGHT_JOIN `item` ON `item`.`event-id` = `event`.`id` AND `item`.`uid` = `event`.`uid` + WHERE `event`.`uid` = %d AND `event`.`id` = %d $sql_extra", + intval($owner_uid), + intval($event_params["event_id"]) + ); + + if(count($r)) + return $r; + +} + +/** + * @brief Get all events in a specific timeframe + * + * @param int $owner_uid The User ID of the owner of the events + * @param array $event_params An assoziative array with + * int 'ignored' => + * string 'start' => Start time of the timeframe + * string 'finish' => Finish time of the timeframe + * string 'adjust_start' => + * string 'adjust_start' => + * + * @param string $sql_extra Additional sql conditions (e.g. permission request) + * @return array Query results + */ +function events_by_date($owner_uid = 0, $event_params, $sql_extra = '') { + // ownly allow events if there is a valid owner_id + if($owner_uid == 0) + return; + + // query for the event by date + $r = q("SELECT `event`.*, `item`.`id` AS `itemid`,`item`.`plink`, + `item`.`author-name`, `item`.`author-avatar`, `item`.`author-link` FROM `event` + STRAIGHT_JOIN `item` ON `item`.`event-id` = `event`.`id` AND `item`.`uid` = `event`.`uid` + WHERE `event`.`uid` = %d AND event.ignore = %d + AND ((`adjust` = 0 AND (`finish` >= '%s' OR (nofinish AND start >= '%s')) AND `start` <= '%s') + OR (`adjust` = 1 AND (`finish` >= '%s' OR (nofinish AND start >= '%s')) AND `start` <= '%s')) + $sql_extra ", + intval($owner_uid), + intval($event_params["ignored"]), + dbesc($event_params["start"]), + dbesc($event_params["start"]), + dbesc($event_params["finish"]), + dbesc($event_params["adjust_start"]), + dbesc($event_params["adjust_start"]), + dbesc($event_params["adjust_finish"]) + ); + + if(count($r)) + return $r; +} + +/** + * @brief Convert an array query results in an arry which could be used by the events template + * + * @param array $arr Event query array + * @return array Event array for the template + */ +function process_events ($arr) { + $events=array(); + + $last_date = ''; + $fmt = t('l, F j'); + if (count($arr)) { + foreach($arr as $rr) { + + $j = (($rr['adjust']) ? datetime_convert('UTC',date_default_timezone_get(),$rr['start'], 'j') : datetime_convert('UTC','UTC',$rr['start'],'j')); + $d = (($rr['adjust']) ? datetime_convert('UTC',date_default_timezone_get(),$rr['start'], $fmt) : datetime_convert('UTC','UTC',$rr['start'],$fmt)); + $d = day_translate($d); + + $start = (($rr['adjust']) ? datetime_convert('UTC',date_default_timezone_get(),$rr['start'], 'c') : datetime_convert('UTC','UTC',$rr['start'],'c')); + if ($rr['nofinish']){ + $end = null; + } else { + $end = (($rr['adjust']) ? datetime_convert('UTC',date_default_timezone_get(),$rr['finish'], 'c') : datetime_convert('UTC','UTC',$rr['finish'],'c')); + } + + + $is_first = ($d !== $last_date); + + $last_date = $d; + $edit = ((! $rr['cid']) ? array(App::get_baseurl().'/events/event/'.$rr['id'],t('Edit event'),'','') : null); + $title = strip_tags(html_entity_decode(bbcode($rr['summary']),ENT_QUOTES,'UTF-8')); + if(! $title) { + list($title, $_trash) = explode("$rr['id'], + 'start'=> $start, + 'end' => $end, + 'allDay' => false, + 'title' => $title, + + 'j' => $j, + 'd' => $d, + 'is_first'=>$is_first, + 'item'=>$rr, + 'html'=>$html, + 'plink' => array($rr['plink'],t('link to source'),'',''), + ); + } + } + + return $events; +} + +/** + * @brief Format event to export format (ical/csv) + * + * @param array $events Query result for events + * @param string $format The output format (ical/csv) + * @param string $timezone The timezone of the user (not implemented yet) + * + * @return string Content according to selected export format + */ +function event_format_export ($events, $format = 'ical', $timezone) { + if(! ((is_array($events)) && count($events))) + return; + + switch ($format) { + // format the exported data as a CSV file + case "csv": + header("Content-type: text/csv"); + $o = '"Subject", "Start Date", "Start Time", "Description", "End Date", "End Time", "Location"' . PHP_EOL; + + foreach ($events as $event) { + /// @todo the time / date entries don't include any information about the + // timezone the event is scheduled in :-/ + $tmp1 = strtotime($event['start']); + $tmp2 = strtotime($event['finish']); + $time_format = "%H:%M:%S"; + $date_format = "%Y-%m-%d"; + $o .= '"'.$event['summary'].'", "'.strftime($date_format, $tmp1) . + '", "'.strftime($time_format, $tmp1).'", "'.$event['desc'] . + '", "'.strftime($date_format, $tmp2) . + '", "'.strftime($time_format, $tmp2) . + '", "'.$event['location'].'"' . PHP_EOL; + } + break; + + // format the exported data as a ics file + case "ical": + header("Content-type: text/ics"); + $o = 'BEGIN:VCALENDAR'. PHP_EOL + . 'VERSION:2.0' . PHP_EOL + . 'PRODID:-//friendica calendar export//0.1//EN' . PHP_EOL; + /// @todo include timezone informations in cases were the time is not in UTC + // see http://tools.ietf.org/html/rfc2445#section-4.8.3 + // . 'BEGIN:VTIMEZONE' . PHP_EOL + // . 'TZID:' . $timezone . PHP_EOL + // . 'END:VTIMEZONE' . PHP_EOL; + // TODO instead of PHP_EOL CRLF should be used for long entries + // but test your solution against http://icalvalid.cloudapp.net/ + // also long lines SHOULD be split at 75 characters length + foreach ($events as $event) { + if ($event['adjust'] == 1) { + $UTC = 'Z'; + } else { + $UTC = ''; + } + $o .= 'BEGIN:VEVENT' . PHP_EOL; + if ($event[start]) { + $tmp = strtotime($event['start']); + $dtformat = "%Y%m%dT%H%M%S".$UTC; + $o .= 'DTSTART:'.strftime($dtformat, $tmp).PHP_EOL; + } + if (!$event['nofinish']) { + $tmp = strtotime($event['finish']); + $dtformat = "%Y%m%dT%H%M%S".$UTC; + $o .= 'DTEND:'.strftime($dtformat, $tmp).PHP_EOL; + } + if ($event['summary']) + $tmp = $event['summary']; + $tmp = str_replace(PHP_EOL, PHP_EOL.' ',$tmp); + $tmp = addcslashes($tmp, ',;'); + $o .= 'SUMMARY:' . $tmp . PHP_EOL; + if ($event['desc']) + $tmp = $event['desc']; + $tmp = str_replace(PHP_EOL, PHP_EOL.' ',$tmp); + $tmp = addcslashes($tmp, ',;'); + $o .= 'DESCRIPTION:' . $tmp . PHP_EOL; + if ($event['location']) { + $tmp = $event['location']; + $tmp = str_replace(PHP_EOL, PHP_EOL.' ',$tmp); + $tmp = addcslashes($tmp, ',;'); + $o .= 'LOCATION:' . $tmp . PHP_EOL; + } + + $o .= 'END:VEVENT' . PHP_EOL; + $o .= PHP_EOL; + } + + $o .= 'END:VCALENDAR' . PHP_EOL; + break; + } + + return $o; +} + +/** + * @brief Get all events for a user ID + * + * The query for events is done permission sensitive + * If the user is the owner of the calendar he/she + * will get all of his/her available events. + * If the user is only a visitor only the public events will + * be available + * + * @param int $uid The user ID + * @param int $sql_extra Additional sql conditions for permission + * + * @return array Query results + */ +function events_by_uid($uid = 0, $sql_extra = '') { + if($uid == 0) + return; + + // The permission condition if no condition was transmitted + if($sql_extra == '') + $sql_extra = " AND `allow_cid` = '' AND `allow_gid` = '' "; + + // does the user who requests happen to be the owner of the events + // requested? then show all of your events, otherwise only those that + // don't have limitations set in allow_cid and allow_gid + if (local_user() == $uid) { + $r = q("SELECT `start`, `finish`, `adjust`, `summary`, `desc`, `location`, `nofinish` + FROM `event` WHERE `uid`= %d AND `cid` = 0 ", + intval($uid) + ); + } else { + $r = q("SELECT `start`, `finish`, `adjust`, `summary`, `desc`, `location`, `nofinish` + FROM `event` WHERE `uid`= %d AND `cid` = 0 $sql_extra ", + intval($uid) + ); + } + + if(count($r)) + return $r; +} + +/** + * + * @param int $uid The user ID + * @param string $format Output format (ical/csv) + * @return array With the results + * bool 'success' => True if the processing was successful + * string 'format' => The output format + * string 'extension' => The file extension of the output format + * string 'content' => The formatted output content + * + * @todo Respect authenticated users with events_by_uid() + */ +function event_export($uid, $format = 'ical') { + + $process = false; + + // we are allowed to show events + // get the timezone the user is in + $r = q("SELECT `timezone` FROM `user` WHERE `uid` = %d LIMIT 1", intval($uid)); + if (count($r)) + $timezone = $r[0]['timezone']; + + // get all events which are owned by a uid (respects permissions); + $events = events_by_uid($uid); + + // we have the events that are available for the requestor + // now format the output according to the requested format + if(count($events)) + $res = event_format_export($events, $format, $timezone); + + // If there are results the precess was successfull + if(x($res)) + $process = true; + + // get the file extension for the format + switch ($format) { + case "ical": + $file_ext = "ics"; + break; + + case "csv": + $file_ext = "csv"; + break; + + default: + $file_ext = ""; + } + + $arr = array( + 'success' => $process, + 'format' => $format, + 'extension' => $file_ext, + 'content' => $res, + ); + + return $arr; +} + +/** + * @brief Get the events widget + * + * @return string Formated html of the evens widget + */ +function widget_events() { + $a = get_app(); + + $owner_uid = $a->data['user']['uid']; + // $a->data is only available if the profile page is visited. If the visited page is not part + // of the profile page it should be the personal /events page. So we can use $a->user + $user = ($a->data['user']['nickname'] ? $a->data['user']['nickname'] : $a->user['nickname']); + + + // The permission testing is a little bit tricky because we have to respect many cases + + // It's not the private events page (we don't get the $owner_uid for /events) + if(! local_user() && ! $owner_uid) + return; + + // Cal logged in user (test permission at foreign profile page) + // If the $owner uid is available we know it is part of one of the profile pages (like /cal) + // So we have to test if if it's the own profile page of the logged in user + // or a foreign one. For foreign profile pages we need to check if the feature + // for exporting the cal is enabled (otherwise the widget would appear for logged in users + // on foreigen profile pages even if the widget is disabled) + if(intval($owner_uid) && local_user() !== $owner_uid && ! feature_enabled($owner_uid, "export_calendar")) + return; + + // If it's a kind of profile page (intval($owner_uid)) return if the user not logged in and + // export feature isn't enabled + if(intval($owner_uid) && ! local_user() && ! feature_enabled($owner_uid, "export_calendar")) + return; + + return replace_macros(get_markup_template("events_aside.tpl"), array( + '$etitle' => t("Export"), + '$export_ical' => t("Export calendar as ical"), + '$export_csv' => t("Export calendar as csv"), + '$user' => $user + )); + +} diff --git a/include/features.php b/include/features.php index 87a9b46d5..4856f0f19 100644 --- a/include/features.php +++ b/include/features.php @@ -64,6 +64,7 @@ function get_features($filtered = true) { //array('expire', t('Content Expiration'), t('Remove old posts/comments after a period of time')), array('multi_profiles', t('Multiple Profiles'), t('Ability to create multiple profiles'), false, get_config('feature_lock','multi_profiles')), array('photo_location', t('Photo Location'), t('Photo metadata is normally stripped. This extracts the location (if present) prior to stripping metadata and links it to a map.'), false, get_config('feature_lock','photo_location')), + array('export_calendar', t('Export Public Calendar'), t('Ability for visitors to download the public calendar'), false, get_config('feature_lock','export_calendar')), ), // Post composition @@ -71,7 +72,7 @@ function get_features($filtered = true) { t('Post Composition Features'), array('richtext', t('Richtext Editor'), t('Enable richtext editor'), false, get_config('feature_lock','richtext')), array('preview', t('Post Preview'), t('Allow previewing posts and comments before publishing them'), false, get_config('feature_lock','preview')), - array('aclautomention', t('Auto-mention Forums'), t('Add/remove mention when a fourm page is selected/deselected in ACL window.'), false, get_config('feature_lock','aclautomention')), + array('aclautomention', t('Auto-mention Forums'), t('Add/remove mention when a forum page is selected/deselected in ACL window.'), false, get_config('feature_lock','aclautomention')), ), // Network sidebar widgets diff --git a/include/feed.php b/include/feed.php index 15e5f6536..5adb2294d 100644 --- a/include/feed.php +++ b/include/feed.php @@ -17,10 +17,15 @@ function feed_import($xml,$importer,&$contact, &$hub, $simulate = false) { $a = get_app(); - logger("Import Atom/RSS feed", LOGGER_DEBUG); + if (!$simulate) + logger("Import Atom/RSS feed '".$contact["name"]."' (Contact ".$contact["id"].") for user ".$importer["uid"], LOGGER_DEBUG); + else + logger("Test Atom/RSS feed", LOGGER_DEBUG); - if ($xml == "") + if ($xml == "") { + logger('XML is empty.', LOGGER_DEBUG); return; + } $doc = new DOMDocument(); @$doc->loadXML($xml); @@ -54,8 +59,6 @@ function feed_import($xml,$importer,&$contact, &$hub, $simulate = false) { if ($attributes->name == "href") $author["author-link"] = $attributes->textContent; - $author["author-id"] = $xpath->evaluate('/atom:feed/atom:author/atom:uri/text()')->item(0)->nodeValue; - if ($author["author-link"] == "") $author["author-link"] = $author["author-id"]; @@ -84,9 +87,22 @@ function feed_import($xml,$importer,&$contact, &$hub, $simulate = false) { if ($value != "") $author["author-name"] = $value; - $value = $xpath->evaluate('atom:author/poco:preferredUsername/text()')->item(0)->nodeValue; - if ($value != "") - $author["author-nick"] = $value; + if ($simulate) { + $author["author-id"] = $xpath->evaluate('/atom:feed/atom:author/atom:uri/text()')->item(0)->nodeValue; + + $value = $xpath->evaluate('atom:author/poco:preferredUsername/text()')->item(0)->nodeValue; + if ($value != "") + $author["author-nick"] = $value; + + $value = $xpath->evaluate('atom:author/poco:address/poco:formatted/text()', $context)->item(0)->nodeValue; + if ($value != "") + $author["author-location"] = $value; + + $value = $xpath->evaluate('atom:author/poco:note/text()')->item(0)->nodeValue; + if ($value != "") + $author["author-about"] = $value; + + } $author["edited"] = $author["created"] = $xpath->query('/atom:feed/atom:updated/text()')->item(0)->nodeValue; @@ -126,10 +142,6 @@ function feed_import($xml,$importer,&$contact, &$hub, $simulate = false) { $author["owner-link"] = $contact["url"]; $author["owner-name"] = $contact["name"]; $author["owner-avatar"] = $contact["thumb"]; - - // This is no field in the item table. So we have to unset it. - unset($author["author-nick"]); - unset($author["author-id"]); } $header = array(); @@ -150,8 +162,10 @@ function feed_import($xml,$importer,&$contact, &$hub, $simulate = false) { $header["last-child"] = 0; } - if (!is_object($entries)) + if (!is_object($entries)) { + logger("There are no entries in this feed.", LOGGER_DEBUG); return; + } $items = array(); diff --git a/include/follow.php b/include/follow.php index 2461bf035..1c33edf80 100644 --- a/include/follow.php +++ b/include/follow.php @@ -270,7 +270,7 @@ function new_contact($uid,$url,$interactive = false) { // pull feed and consume it, which should subscribe to the hub. - proc_run('php',"include/onepoll.php","$contact_id", "force"); + proc_run(PRIORITY_HIGH, "include/onepoll.php", $contact_id, "force"); // create a follow slap diff --git a/include/gprobe.php b/include/gprobe.php index 91b9b16e3..42a8ef713 100644 --- a/include/gprobe.php +++ b/include/gprobe.php @@ -12,11 +12,11 @@ function gprobe_run(&$argv, &$argc){ } if(is_null($db)) { - @include(".htconfig.php"); - require_once("include/dba.php"); - $db = new dba($db_host, $db_user, $db_pass, $db_data); - unset($db_host, $db_user, $db_pass, $db_data); - }; + @include(".htconfig.php"); + require_once("include/dba.php"); + $db = new dba($db_host, $db_user, $db_pass, $db_data); + unset($db_host, $db_user, $db_pass, $db_data); + }; require_once('include/session.php'); require_once('include/datetime.php'); @@ -39,14 +39,13 @@ function gprobe_run(&$argv, &$argc){ logger("gprobe start for ".normalise_link($url), LOGGER_DEBUG); - if (!count($r)) { + if (!dbm::is_result($r)) { // Is it a DDoS attempt? $urlparts = parse_url($url); $result = Cache::get("gprobe:".$urlparts["host"]); if (!is_null($result)) { - $result = unserialize($result); if (in_array($result["network"], array(NETWORK_FEED, NETWORK_PHANTOM))) { logger("DDoS attempt detected for ".$urlparts["host"]." by ".$_SERVER["REMOTE_ADDR"].". server data: ".print_r($_SERVER, true), LOGGER_DEBUG); return; @@ -56,7 +55,7 @@ function gprobe_run(&$argv, &$argc){ $arr = probe_url($url); if (is_null($result)) - Cache::set("gprobe:".$urlparts["host"],serialize($arr)); + Cache::set("gprobe:".$urlparts["host"], $arr); if (!in_array($arr["network"], array(NETWORK_FEED, NETWORK_PHANTOM))) update_gcontact($arr); @@ -65,7 +64,7 @@ function gprobe_run(&$argv, &$argc){ dbesc(normalise_link($url)) ); } - if(count($r)) { + if(dbm::is_result($r)) { // Check for accessibility and do a poco discovery if (poco_last_updated($r[0]['url'], true) AND ($r[0]["network"] == NETWORK_DFRN)) poco_load(0,0,$r[0]['id'], str_replace('/profile/','/poco/',$r[0]['url'])); @@ -76,6 +75,6 @@ function gprobe_run(&$argv, &$argc){ } if (array_search(__file__,get_included_files())===0){ - gprobe_run($_SERVER["argv"],$_SERVER["argc"]); - killme(); + gprobe_run($_SERVER["argv"],$_SERVER["argc"]); + killme(); } diff --git a/include/identity.php b/include/identity.php index 48a6c5bbf..a30d81cf3 100644 --- a/include/identity.php +++ b/include/identity.php @@ -71,8 +71,8 @@ function profile_load(&$a, $nickname, $profile = 0, $profiledata = array()) { $a->page['title'] = $a->profile['name'] . " @ " . $a->config['sitename']; -// if (!$profiledata) -// $_SESSION['theme'] = $a->profile['theme']; + if (!$profiledata && !get_pconfig(local_user(),'system','always_my_theme')) + $_SESSION['theme'] = $a->profile['theme']; $_SESSION['mobile-theme'] = $a->profile['mobile-theme']; @@ -149,17 +149,23 @@ function get_profiledata_by_nick($nickname, $uid = 0, $profile = 0) { if($profile) { $profile_int = intval($profile); - $r = q("SELECT `profile`.`uid` AS `profile_uid`, `profile`.* , `contact`.`avatar-date` AS picdate, `contact`.`addr`, `user`.* FROM `profile` - INNER JOIN `contact` on `contact`.`uid` = `profile`.`uid` INNER JOIN `user` ON `profile`.`uid` = `user`.`uid` - WHERE `user`.`nickname` = '%s' AND `profile`.`id` = %d AND `contact`.`self` = 1 LIMIT 1", + $r = q("SELECT `contact`.`id` AS `contact_id`, `profile`.`uid` AS `profile_uid`, `profile`.*, + `contact`.`avatar-date` AS picdate, `contact`.`addr`, `user`.* + FROM `profile` + INNER JOIN `contact` on `contact`.`uid` = `profile`.`uid` AND `contact`.`self` + INNER JOIN `user` ON `profile`.`uid` = `user`.`uid` + WHERE `user`.`nickname` = '%s' AND `profile`.`id` = %d LIMIT 1", dbesc($nickname), intval($profile_int) ); } if((!$r) && (!count($r))) { - $r = q("SELECT `profile`.`uid` AS `profile_uid`, `profile`.* , `contact`.`avatar-date` AS picdate, `contact`.`addr`, `user`.* FROM `profile` - INNER JOIN `contact` ON `contact`.`uid` = `profile`.`uid` INNER JOIN `user` ON `profile`.`uid` = `user`.`uid` - WHERE `user`.`nickname` = '%s' AND `profile`.`is-default` = 1 AND `contact`.`self` = 1 LIMIT 1", + $r = q("SELECT `contact`.`id` AS `contact_id`, `profile`.`uid` AS `profile_uid`, `profile`.*, + `contact`.`avatar-date` AS picdate, `contact`.`addr`, `user`.* + FROM `profile` + INNER JOIN `contact` ON `contact`.`uid` = `profile`.`uid` AND `contact`.`self` + INNER JOIN `user` ON `profile`.`uid` = `user`.`uid` + WHERE `user`.`nickname` = '%s' AND `profile`.`is-default` LIMIT 1", dbesc($nickname) ); } @@ -310,15 +316,8 @@ function profile_sidebar($profile, $block = 0) { ); } - // check if profile is a forum - if((intval($profile['page-flags']) == PAGE_COMMUNITY) - || (intval($profile['page-flags']) == PAGE_PRVGROUP) - || (isset($profile['forum']) && intval($profile['forum'])) - || (isset($profile['prv']) && intval($profile['prv'])) - || (isset($profile['community']) && intval($profile['community']))) - $account_type = t('Forum'); - else - $account_type = ""; + // Fetch the account type + $account_type = account_type($profile); if((x($profile,'address') == 1) || (x($profile,'location') == 1) @@ -337,6 +336,8 @@ function profile_sidebar($profile, $block = 0) { $about = ((x($profile,'about') == 1) ? t('About:') : False); + $xmpp = ((x($profile,'xmpp') == 1) ? t('XMPP:') : False); + if(($profile['hidewall'] || $block) && (! local_user()) && (! remote_user())) { $location = $pdesc = $gender = $marital = $homepage = $about = False; } @@ -405,6 +406,7 @@ function profile_sidebar($profile, $block = 0) { $tpl = get_markup_template('profile_vcard.tpl'); $o .= replace_macros($tpl, array( '$profile' => $p, + '$xmpp' => $xmpp, '$connect' => $connect, '$remoteconnect' => $remoteconnect, '$subscribe_feed' => $subscribe_feed, @@ -687,6 +689,8 @@ function advanced_profile(&$a) { return replace_macros($tpl, array( '$title' => t('Profile'), + '$basic' => t('Basic'), + '$advanced' => t('Advanced'), '$profile' => $profile )); } @@ -740,8 +744,8 @@ function profile_tabs($a, $is_owner=False, $nickname=Null){ ), ); - if ($is_owner){ - if ($a->theme_events_in_profile) + // the calendar link for the full featured events calendar + if ($is_owner && $a->theme_events_in_profile) { $tabs[] = array( 'label' => t('Events'), 'url' => $a->get_baseurl() . '/events', @@ -750,6 +754,20 @@ function profile_tabs($a, $is_owner=False, $nickname=Null){ 'id' => 'events-tab', 'accesskey' => 'e', ); + // if the user is not the owner of the calendar we only show a calendar + // with the public events of the calendar owner + } elseif (! $is_owner) { + $tabs[] = array( + 'label' => t('Events'), + 'url' => $a->get_baseurl() . '/cal/' . $nickname, + 'sel' =>((!isset($tab)&&$a->argv[0]=='cal')?'active':''), + 'title' => t('Events and Calendar'), + 'id' => 'events-tab', + 'accesskey' => 'e', + ); + } + + if ($is_owner){ $tabs[] = array( 'label' => t('Personal Notes'), 'url' => $a->get_baseurl() . '/notes', @@ -802,7 +820,7 @@ function zrl_init(&$a) { } } - proc_run('php','include/gprobe.php',bin2hex($tmp_str)); + proc_run(PRIORITY_LOW, 'include/gprobe.php',bin2hex($tmp_str)); $arr = array('zrl' => $tmp_str, 'url' => $a->cmd); call_hooks('zrl_init',$arr); } diff --git a/include/items.php b/include/items.php index 203b7d0ee..93df36fb3 100644 --- a/include/items.php +++ b/include/items.php @@ -23,7 +23,7 @@ require_once('include/group.php'); require_once('library/defuse/php-encryption-1.2.1/Crypto.php'); function construct_verb($item) { - if($item['verb']) + if ($item['verb']) return $item['verb']; return ACTIVITY_POST; } @@ -33,7 +33,7 @@ function construct_verb($item) { * The purpose of this function is to apply system message length limits to * imported messages without including any embedded photos in the length */ -if(! function_exists('limit_body_size')) { +if (! function_exists('limit_body_size')) { function limit_body_size($body) { // logger('limit_body_size: start', LOGGER_DEBUG); @@ -42,7 +42,7 @@ function limit_body_size($body) { // If the length of the body, including the embedded images, is smaller // than the maximum, then don't waste time looking for the images - if($maxlen && (strlen($body) > $maxlen)) { + if ($maxlen && (strlen($body) > $maxlen)) { logger('limit_body_size: the total body length exceeds the limit', LOGGER_DEBUG); @@ -60,40 +60,37 @@ function limit_body_size($body) { $img_end += $img_start; $img_end += strlen('[/img]'); - if(! strcmp(substr($orig_body, $img_start + $img_st_close, 5), 'data:')) { + if (! strcmp(substr($orig_body, $img_start + $img_st_close, 5), 'data:')) { // This is an embedded image - if( ($textlen + $img_start) > $maxlen ) { - if($textlen < $maxlen) { + if ( ($textlen + $img_start) > $maxlen ) { + if ($textlen < $maxlen) { logger('limit_body_size: the limit happens before an embedded image', LOGGER_DEBUG); $new_body = $new_body . substr($orig_body, 0, $maxlen - $textlen); $textlen = $maxlen; } - } - else { + } else { $new_body = $new_body . substr($orig_body, 0, $img_start); $textlen += $img_start; } $new_body = $new_body . substr($orig_body, $img_start, $img_end - $img_start); - } - else { + } else { - if( ($textlen + $img_end) > $maxlen ) { - if($textlen < $maxlen) { + if ( ($textlen + $img_end) > $maxlen ) { + if ($textlen < $maxlen) { logger('limit_body_size: the limit happens before the end of a non-embedded image', LOGGER_DEBUG); $new_body = $new_body . substr($orig_body, 0, $maxlen - $textlen); $textlen = $maxlen; } - } - else { + } else { $new_body = $new_body . substr($orig_body, 0, $img_end); $textlen += $img_end; } } $orig_body = substr($orig_body, $img_end); - if($orig_body === false) // in case the body ends on a closing image tag + if ($orig_body === false) // in case the body ends on a closing image tag $orig_body = ''; $img_start = strpos($orig_body, '[img'); @@ -101,22 +98,20 @@ function limit_body_size($body) { $img_end = ($img_start !== false ? strpos(substr($orig_body, $img_start), '[/img]') : false); } - if( ($textlen + strlen($orig_body)) > $maxlen) { - if($textlen < $maxlen) { + if ( ($textlen + strlen($orig_body)) > $maxlen) { + if ($textlen < $maxlen) { logger('limit_body_size: the limit happens after the end of the last image', LOGGER_DEBUG); $new_body = $new_body . substr($orig_body, 0, $maxlen - $textlen); $textlen = $maxlen; } - } - else { + } else { logger('limit_body_size: the text size with embedded images extracted did not violate the limit', LOGGER_DEBUG); $new_body = $new_body . $orig_body; $textlen += strlen($orig_body); } return $new_body; - } - else + } else return $body; }} @@ -319,9 +314,7 @@ function item_add_language_opt(&$arr) { return; } $postopts = $arr['postopts']; - } - else - { + } else { $postopts = ""; } @@ -383,7 +376,7 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa // item array and set it aside for later storage. $dsprsig = null; - if(x($arr,'dsprsig')) { + if (x($arr,'dsprsig')) { $dsprsig = json_decode(base64_decode($arr['dsprsig'])); unset($arr['dsprsig']); } @@ -396,16 +389,16 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa $arr['plink'] = ostatus::convert_href($arr['uri']); } - if(x($arr, 'gravity')) + if (x($arr, 'gravity')) $arr['gravity'] = intval($arr['gravity']); - elseif($arr['parent-uri'] === $arr['uri']) + elseif ($arr['parent-uri'] === $arr['uri']) $arr['gravity'] = 0; - elseif(activity_match($arr['verb'],ACTIVITY_POST)) + elseif (activity_match($arr['verb'],ACTIVITY_POST)) $arr['gravity'] = 6; else $arr['gravity'] = 6; // extensible catchall - if(! x($arr,'type')) + if (! x($arr,'type')) $arr['type'] = 'remote'; @@ -413,7 +406,7 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa /* check for create date and expire time */ $uid = intval($arr['uid']); $r = q("SELECT expire FROM user WHERE uid = %d", intval($uid)); - if(count($r)) { + if (count($r)) { $expire_interval = $r[0]['expire']; if ($expire_interval>0) { $expire_date = new DateTime( '- '.$expire_interval.' days', new DateTimeZone('UTC')); @@ -445,7 +438,7 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa // Shouldn't happen but we want to make absolutely sure it doesn't leak from a plugin. // Deactivated, since the bbcode parser can handle with it - and it destroys posts with some smileys that contain "<" - //if((strpos($arr['body'],'<') !== false) || (strpos($arr['body'],'>') !== false)) + //if ((strpos($arr['body'],'<') !== false) || (strpos($arr['body'],'>') !== false)) // $arr['body'] = strip_tags($arr['body']); item_add_language_opt($arr); @@ -530,19 +523,19 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa intval($arr['uid']) ); - if(!count($r)) + if (!count($r)) $r = q("SELECT `network` FROM `gcontact` WHERE `network` IN ('%s', '%s', '%s') AND `nurl` = '%s' LIMIT 1", dbesc(NETWORK_DFRN), dbesc(NETWORK_DIASPORA), dbesc(NETWORK_OSTATUS), dbesc(normalise_link($arr['author-link'])) ); - if(!count($r)) + if (!count($r)) $r = q("SELECT `network` FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1", intval($arr['contact-id']), intval($arr['uid']) ); - if(count($r)) + if (count($r)) $arr['network'] = $r[0]["network"]; // Fallback to friendica (why is it empty in some cases?) @@ -556,7 +549,7 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa if ($arr["contact-id"] == 0) { // First we are looking for a suitable contact that matches with the author of the post // This is done only for comments (See below explanation at "gcontact-id") - if($arr['parent-uri'] != $arr['uri']) + if ($arr['parent-uri'] != $arr['uri']) $arr["contact-id"] = get_contact($arr['author-link'], $uid); // If not present then maybe the owner was found @@ -576,7 +569,7 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa // The gcontact should mostly behave like the contact. But is is supposed to be global for the system. // This means that wall posts, repeated posts, etc. should have the gcontact id of the owner. // On comments the author is the better choice. - if($arr['parent-uri'] === $arr['uri']) + if ($arr['parent-uri'] === $arr['uri']) $arr["gcontact-id"] = get_gcontact_id(array("url" => $arr['owner-link'], "network" => $arr['network'], "photo" => $arr['owner-avatar'], "name" => $arr['owner-name'])); else @@ -584,13 +577,19 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa "photo" => $arr['author-avatar'], "name" => $arr['author-name'])); } + if ($arr["author-id"] == 0) + $arr["author-id"] = get_contact($arr["author-link"], 0); + + if ($arr["owner-id"] == 0) + $arr["owner-id"] = get_contact($arr["owner-link"], 0); + if ($arr['guid'] != "") { // Checking if there is already an item with the same guid logger('checking for an item for user '.$arr['uid'].' on network '.$arr['network'].' with the guid '.$arr['guid'], LOGGER_DEBUG); $r = q("SELECT `guid` FROM `item` WHERE `guid` = '%s' AND `network` = '%s' AND `uid` = '%d' LIMIT 1", dbesc($arr['guid']), dbesc($arr['network']), intval($arr['uid'])); - if(count($r)) { + if (count($r)) { logger('found item with guid '.$arr['guid'].' for user '.$arr['uid'].' on network '.$arr['network'], LOGGER_DEBUG); return 0; } @@ -600,7 +599,7 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa item_body_set_hashtags($arr); $arr['thr-parent'] = $arr['parent-uri']; - if($arr['parent-uri'] === $arr['uri']) { + if ($arr['parent-uri'] === $arr['uri']) { $parent_id = 0; $parent_deleted = 0; $allow_cid = $arr['allow_cid']; @@ -608,8 +607,7 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa $deny_cid = $arr['deny_cid']; $deny_gid = $arr['deny_gid']; $notify_type = 'wall-new'; - } - else { + } else { // find the parent and snarf the item id and ACLs // and anything else we need to inherit @@ -619,13 +617,13 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa intval($arr['uid']) ); - if(count($r)) { + if (count($r)) { // is the new message multi-level threaded? // even though we don't support it now, preserve the info // and re-attach to the conversation parent. - if($r[0]['uri'] != $r[0]['parent-uri']) { + if ($r[0]['uri'] != $r[0]['parent-uri']) { $arr['parent-uri'] = $r[0]['parent-uri']; $z = q("SELECT * FROM `item` WHERE `uri` = '%s' AND `parent-uri` = '%s' AND `uid` = %d ORDER BY `id` ASC LIMIT 1", @@ -633,7 +631,7 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa dbesc($r[0]['parent-uri']), intval($arr['uid']) ); - if($z && count($z)) + if ($z && count($z)) $r = $z; } @@ -650,21 +648,21 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa // This differs from the above settings as it subtly allows comments from // email correspondents to be private even if the overall thread is not. - if($r[0]['private']) + if ($r[0]['private']) $arr['private'] = $r[0]['private']; // Edge case. We host a public forum that was originally posted to privately. // The original author commented, but as this is a comment, the permissions // weren't fixed up so it will still show the comment as private unless we fix it here. - if((intval($r[0]['forum_mode']) == 1) && (! $r[0]['private'])) + if ((intval($r[0]['forum_mode']) == 1) && (! $r[0]['private'])) $arr['private'] = 0; // If its a post from myself then tag the thread as "mention" logger("item_store: Checking if parent ".$parent_id." has to be tagged as mention for user ".$arr['uid'], LOGGER_DEBUG); - $u = q("select * from user where uid = %d limit 1", intval($arr['uid'])); - if(count($u)) { + $u = q("SELECT `nickname` FROM `user` WHERE `uid` = %d", intval($arr['uid'])); + if (count($u)) { $a = get_app(); $self = normalise_link($a->get_baseurl() . '/profile/' . $u[0]['nickname']); logger("item_store: 'myself' is ".$self." for parent ".$parent_id." checking against ".$arr['author-link']." and ".$arr['owner-link'], LOGGER_DEBUG); @@ -673,19 +671,17 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa logger("item_store: tagged thread ".$parent_id." as mention for user ".$self, LOGGER_DEBUG); } } - } - else { + } else { // Allow one to see reply tweets from status.net even when // we don't have or can't see the original post. - if($force_parent) { + if ($force_parent) { logger('item_store: $force_parent=true, reply converted to top-level post.'); $parent_id = 0; $arr['parent-uri'] = $arr['uri']; $arr['gravity'] = 0; - } - else { + } else { logger('item_store: item parent '.$arr['parent-uri'].' for '.$arr['uid'].' was not found - ignoring item'); return 0; } @@ -700,35 +696,61 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa dbesc(NETWORK_DFRN), intval($arr['uid']) ); - if($r && count($r)) { - logger('duplicated item with the same uri found. ' . print_r($arr,true)); + if (dbm::is_result($r)) { + logger('duplicated item with the same uri found. '.print_r($arr,true)); return 0; } - // Check for an existing post with the same content. There seems to be a problem with OStatus. - $r = q("SELECT `id` FROM `item` WHERE `body` = '%s' AND `network` = '%s' AND `created` = '%s' AND `contact-id` = %d AND `uid` = %d LIMIT 1", - dbesc($arr['body']), - dbesc($arr['network']), - dbesc($arr['created']), - intval($arr['contact-id']), - intval($arr['uid']) - ); - if($r && count($r)) { - logger('duplicated item with the same body found. ' . print_r($arr,true)); - return 0; + // On Friendica and Diaspora the GUID is unique + if (in_array($arr['network'], array(NETWORK_DFRN, NETWORK_DIASPORA))) { + $r = q("SELECT `id` FROM `item` WHERE `guid` = '%s' AND `uid` = %d LIMIT 1", + dbesc($arr['guid']), + intval($arr['uid']) + ); + if (dbm::is_result($r)) { + logger('duplicated item with the same guid found. '.print_r($arr,true)); + return 0; + } + } else { + // Check for an existing post with the same content. There seems to be a problem with OStatus. + $r = q("SELECT `id` FROM `item` WHERE `body` = '%s' AND `network` = '%s' AND `created` = '%s' AND `contact-id` = %d AND `uid` = %d LIMIT 1", + dbesc($arr['body']), + dbesc($arr['network']), + dbesc($arr['created']), + intval($arr['contact-id']), + intval($arr['uid']) + ); + if (dbm::is_result($r)) { + logger('duplicated item with the same body found. '.print_r($arr,true)); + return 0; + } } // Is this item available in the global items (with uid=0)? if ($arr["uid"] == 0) { $arr["global"] = true; + // Set the global flag on all items if this was a global item entry q("UPDATE `item` SET `global` = 1 WHERE `uri` = '%s'", dbesc($arr["uri"])); - } else { + } else { $isglobal = q("SELECT `global` FROM `item` WHERE `uid` = 0 AND `uri` = '%s'", dbesc($arr["uri"])); $arr["global"] = (count($isglobal) > 0); } + // ACL settings + if (strlen($allow_cid) || strlen($allow_gid) || strlen($deny_cid) || strlen($deny_gid)) + $private = 1; + else + $private = $arr['private']; + + $arr["allow_cid"] = $allow_cid; + $arr["allow_gid"] = $allow_gid; + $arr["deny_cid"] = $deny_cid; + $arr["deny_gid"] = $deny_gid; + $arr["private"] = $private; + $arr["deleted"] = $parent_deleted; + // Fill the cache field put_item_in_cache($arr); @@ -737,11 +759,22 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa else call_hooks('post_remote',$arr); - if(x($arr,'cancel')) { + if (x($arr,'cancel')) { logger('item_store: post cancelled by plugin.'); return 0; } + // Check for already added items. + // There is a timing issue here that sometimes creates double postings. + // An unique index would help - but the limitations of MySQL (maximum size of index values) prevent this. + if ($arr["uid"] == 0) { + $r = qu("SELECT `id` FROM `item` WHERE `uri` = '%s' AND `uid` = 0 LIMIT 1", dbesc(trim($arr['uri']))); + if (dbm::is_result($r)) { + logger('Global item already stored. URI: '.$arr['uri'].' on network '.$arr['network'], LOGGER_DEBUG); + return 0; + } + } + // Store the unescaped version $unescaped = $arr; @@ -749,93 +782,85 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa logger('item_store: ' . print_r($arr,true), LOGGER_DATA); + q("COMMIT"); + q("START TRANSACTION;"); + $r = dbq("INSERT INTO `item` (`" . implode("`, `", array_keys($arr)) . "`) VALUES ('" . implode("', '", array_values($arr)) - . "')" ); + . "')"); // And restore it $arr = $unescaped; - // find the item that we just created - $r = q("SELECT `id` FROM `item` WHERE `uri` = '%s' AND `uid` = %d AND `network` = '%s' ORDER BY `id` ASC", + // When the item was successfully stored we fetch the ID of the item. + if (dbm::is_result($r)) { + $r = q("SELECT LAST_INSERT_ID() AS `item-id`"); + if (dbm::is_result($r)) { + $current_post = $r[0]['item-id']; + } else { + // This shouldn't happen + $current_post = 0; + } + } else { + // This can happen - for example - if there are locking timeouts. + logger("Item wasn't stored - we quit here."); + q("COMMIT"); + return 0; + } + + if ($current_post == 0) { + // This is one of these error messages that never should occur. + logger("couldn't find created item - we better quit now."); + q("COMMIT"); + return 0; + } + + // How much entries have we created? + // We wouldn't need this query when we could use an unique index - but MySQL has length problems with them. + $r = q("SELECT COUNT(*) AS `entries` FROM `item` WHERE `uri` = '%s' AND `uid` = %d AND `network` = '%s'", dbesc($arr['uri']), intval($arr['uid']), dbesc($arr['network']) ); - if(count($r) > 1) { - // There are duplicates. Keep the oldest one, delete the others - logger('item_store: duplicated post occurred. Removing newer duplicates. uri = '.$arr['uri'].' uid = '.$arr['uid']); - q("DELETE FROM `item` WHERE `uri` = '%s' AND `uid` = %d AND `network` = '%s' AND `id` > %d", - dbesc($arr['uri']), - intval($arr['uid']), - dbesc($arr['network']), - intval($r[0]["id"]) - ); - return 0; - } elseif(count($r)) { - - $current_post = $r[0]['id']; - logger('item_store: created item ' . $current_post); - - // Set "success_update" and "last-item" to the date of the last time we heard from this contact - // This can be used to filter for inactive contacts. - // Only do this for public postings to avoid privacy problems, since poco data is public. - // Don't set this value if it isn't from the owner (could be an author that we don't know) - - $update = (!$arr['private'] AND (($arr["author-link"] === $arr["owner-link"]) OR ($arr["parent-uri"] === $arr["uri"]))); - - // Is it a forum? Then we don't care about the rules from above - if (!$update AND ($arr["network"] == NETWORK_DFRN) AND ($arr["parent-uri"] === $arr["uri"])) { - $isforum = q("SELECT `forum` FROM `contact` WHERE `id` = %d AND `forum`", - intval($arr['contact-id'])); - if ($isforum) - $update = true; - } - - if ($update) - q("UPDATE `contact` SET `success_update` = '%s', `last-item` = '%s' WHERE `id` = %d", - dbesc($arr['received']), - dbesc($arr['received']), - intval($arr['contact-id']) - ); - } else { - logger('item_store: could not locate created item'); + if (!dbm::is_result($r)) { + // This shouldn't happen, since COUNT always works when the database connection is there. + logger("We couldn't count the stored entries. Very strange ..."); + q("COMMIT"); return 0; } - if((! $parent_id) || ($arr['parent-uri'] === $arr['uri'])) + if ($r[0]["entries"] > 1) { + // There are duplicates. We delete our just created entry. + logger('Duplicated post occurred. uri = '.$arr['uri'].' uid = '.$arr['uid']); + + // Yes, we could do a rollback here - but we are having many users with MyISAM. + q("DELETE FROM `item` WHERE `id` = %d", intval($current_post)); + q("COMMIT"); + return 0; + } elseif ($r[0]["entries"] == 0) { + // This really should never happen since we quit earlier if there were problems. + logger("Something is terribly wrong. We haven't found our created entry."); + q("COMMIT"); + return 0; + } + + logger('item_store: created item '.$current_post); + item_set_last_item($arr); + + if (!$parent_id || ($arr['parent-uri'] === $arr['uri'])) $parent_id = $current_post; - if(strlen($allow_cid) || strlen($allow_gid) || strlen($deny_cid) || strlen($deny_gid)) - $private = 1; - else - $private = $arr['private']; - - // Set parent id - and also make sure to inherit the parent's ACLs. - - $r = q("UPDATE `item` SET `parent` = %d, `allow_cid` = '%s', `allow_gid` = '%s', - `deny_cid` = '%s', `deny_gid` = '%s', `private` = %d, `deleted` = %d WHERE `id` = %d", + // Set parent id + $r = q("UPDATE `item` SET `parent` = %d WHERE `id` = %d", intval($parent_id), - dbesc($allow_cid), - dbesc($allow_gid), - dbesc($deny_cid), - dbesc($deny_gid), - intval($private), - intval($parent_deleted), intval($current_post) ); $arr['id'] = $current_post; $arr['parent'] = $parent_id; - $arr['allow_cid'] = $allow_cid; - $arr['allow_gid'] = $allow_gid; - $arr['deny_cid'] = $deny_cid; - $arr['deny_gid'] = $deny_gid; - $arr['private'] = $private; - $arr['deleted'] = $parent_deleted; // update the commented timestamp on the parent // Only update "commented" if it is really a comment @@ -851,7 +876,7 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa intval($parent_id) ); - if($dsprsig) { + if ($dsprsig) { // Friendica servers lower than 3.4.3-2 had double encoded the signature ... // We can check for this condition when we decode and encode the stuff again. @@ -868,19 +893,6 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa ); } - - /** - * If this is now the last-child, force all _other_ children of this parent to *not* be last-child - */ - - if($arr['last-child']) { - $r = q("UPDATE `item` SET `last-child` = 0 WHERE `parent-uri` = '%s' AND `uid` = %d AND `id` != %d", - dbesc($arr['uri']), - intval($arr['uid']), - intval($current_post) - ); - } - $deleted = tag_deliver($arr['uid'],$current_post); // current post can be deleted if is for a community page and no mention are @@ -897,31 +909,96 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa logger('item_store: new item not found in DB, id ' . $current_post); } + if ($arr['parent-uri'] === $arr['uri']) { + add_thread($current_post); + } else { + update_thread($parent_id); + } + + q("COMMIT"); + + // Due to deadlock issues with the "term" table we are doing these steps after the commit. + // This is not perfect - but a workable solution until we found the reason for the problem. create_tags_from_item($current_post); create_files_from_item($current_post); - // Only check for notifications on start posts - if ($arr['parent-uri'] === $arr['uri']) - add_thread($current_post); - else { - update_thread($parent_id); - add_shadow_entry($arr); + // If this is now the last-child, force all _other_ children of this parent to *not* be last-child + // It is done after the transaction to avoid dead locks. + if ($arr['last-child']) { + $r = q("UPDATE `item` SET `last-child` = 0 WHERE `parent-uri` = '%s' AND `uid` = %d AND `id` != %d", + dbesc($arr['uri']), + intval($arr['uid']), + intval($current_post) + ); + } + + if ($arr['parent-uri'] === $arr['uri']) { + add_shadow_thread($current_post); + } else { + add_shadow_entry($current_post); } check_item_notification($current_post, $uid); if ($notify) - proc_run('php', "include/notifier.php", $notify_type, $current_post); + proc_run(PRIORITY_HIGH, "include/notifier.php", $notify_type, $current_post); return $current_post; } +/** + * @brief Set "success_update" and "last-item" to the date of the last time we heard from this contact + * + * This can be used to filter for inactive contacts. + * Only do this for public postings to avoid privacy problems, since poco data is public. + * Don't set this value if it isn't from the owner (could be an author that we don't know) + * + * @param array $arr Contains the just posted item record + */ +function item_set_last_item($arr) { + + $update = (!$arr['private'] AND (($arr["author-link"] === $arr["owner-link"]) OR ($arr["parent-uri"] === $arr["uri"]))); + + // Is it a forum? Then we don't care about the rules from above + if (!$update AND ($arr["network"] == NETWORK_DFRN) AND ($arr["parent-uri"] === $arr["uri"])) { + $isforum = q("SELECT `forum` FROM `contact` WHERE `id` = %d AND `forum`", + intval($arr['contact-id'])); + if ($isforum) { + $update = true; + } + } + + if ($update) { + q("UPDATE `contact` SET `success_update` = '%s', `last-item` = '%s' WHERE `id` = %d", + dbesc($arr['received']), + dbesc($arr['received']), + intval($arr['contact-id']) + ); + } + // Now do the same for the system wide contacts with uid=0 + if (!$arr['private']) { + q("UPDATE `contact` SET `success_update` = '%s', `last-item` = '%s' WHERE `id` = %d", + dbesc($arr['received']), + dbesc($arr['received']), + intval($arr['owner-id']) + ); + + if ($arr['owner-id'] != $arr['author-id']) { + q("UPDATE `contact` SET `success_update` = '%s', `last-item` = '%s' WHERE `id` = %d", + dbesc($arr['received']), + dbesc($arr['received']), + intval($arr['author-id']) + ); + } + } +} + function item_body_set_hashtags(&$item) { $tags = get_tags($item["body"]); // No hashtags? - if(!count($tags)) + if (!count($tags)) return(false); // This sorting is important when there are hashtags that are part of other hashtags @@ -961,10 +1038,10 @@ function item_body_set_hashtags(&$item) { foreach($tags as $tag) { - if(strpos($tag,'#') !== 0) + if (strpos($tag,'#') !== 0) continue; - if(strpos($tag,'[url=')) + if (strpos($tag,'[url=')) continue; $basetag = str_replace('_',' ',substr($tag,1)); @@ -973,8 +1050,8 @@ function item_body_set_hashtags(&$item) { $item["body"] = str_replace($tag, $newtag, $item["body"]); - if(!stristr($item["tag"],"/search?tag=".$basetag."]".$basetag."[/url]")) { - if(strlen($item["tag"])) + if (!stristr($item["tag"],"/search?tag=".$basetag."]".$basetag."[/url]")) { + if (strlen($item["tag"])) $item["tag"] = ','.$item["tag"]; $item["tag"] = $newtag.$item["tag"]; } @@ -1029,10 +1106,10 @@ function get_item_id($guid, $uid = 0) { // return - test function get_item_contact($item,$contacts) { - if(! count($contacts) || (! is_array($item))) + if (! count($contacts) || (! is_array($item))) return false; foreach($contacts as $contact) { - if($contact['id'] == $item['contact-id']) { + if ($contact['id'] == $item['contact-id']) { return $contact; break; // NOTREACHED } @@ -1057,7 +1134,7 @@ function tag_deliver($uid,$item_id) { $u = q("select * from user where uid = %d limit 1", intval($uid) ); - if(! count($u)) + if (! count($u)) return; $community_page = (($u[0]['page-flags'] == PAGE_COMMUNITY) ? true : false); @@ -1068,7 +1145,7 @@ function tag_deliver($uid,$item_id) { intval($item_id), intval($uid) ); - if(! count($i)) + if (! count($i)) return; $item = $i[0]; @@ -1081,16 +1158,16 @@ function tag_deliver($uid,$item_id) { $dlink = normalise_link($a->get_baseurl() . '/u/' . $u[0]['nickname']); $cnt = preg_match_all('/[\@\!]\[url\=(.*?)\](.*?)\[\/url\]/ism',$item['body'],$matches,PREG_SET_ORDER); - if($cnt) { + if ($cnt) { foreach($matches as $mtch) { - if(link_compare($link,$mtch[1]) || link_compare($dlink,$mtch[1])) { + if (link_compare($link,$mtch[1]) || link_compare($dlink,$mtch[1])) { $mention = true; logger('tag_deliver: mention found: ' . $mtch[2]); } } } - if(! $mention){ + if (! $mention){ if ( ($community_page || $prvgroup) && (!$item['wall']) && (!$item['origin']) && ($item['id'] == $item['parent'])){ // mmh.. no mention.. community page or private group... no wall.. no origin.. top-post (not a comment) @@ -1109,7 +1186,7 @@ function tag_deliver($uid,$item_id) { call_hooks('tagged', $arr); - if((! $community_page) && (! $prvgroup)) + if ((! $community_page) && (! $prvgroup)) return; @@ -1117,7 +1194,7 @@ function tag_deliver($uid,$item_id) { // prevent delivery looping - only proceed // if the message originated elsewhere and is a top-level post - if(($item['wall']) || ($item['origin']) || ($item['id'] != $item['parent'])) + if (($item['wall']) || ($item['origin']) || ($item['id'] != $item['parent'])) return; // now change this copy of the post to a forum head message and deliver to all the tgroup members @@ -1126,7 +1203,7 @@ function tag_deliver($uid,$item_id) { $c = q("select name, url, thumb from contact where self = 1 and uid = %d limit 1", intval($u[0]['uid']) ); - if(! count($c)) + if (! count($c)) return; // also reset all the privacy bits to the forum default permissions @@ -1150,7 +1227,7 @@ function tag_deliver($uid,$item_id) { ); update_thread($item_id); - proc_run('php','include/notifier.php','tgroup',$item_id); + proc_run(PRIORITY_HIGH,'include/notifier.php', 'tgroup', $item_id); } @@ -1164,14 +1241,14 @@ function tgroup_check($uid,$item) { // check that the message originated elsewhere and is a top-level post - if(($item['wall']) || ($item['origin']) || ($item['uri'] != $item['parent-uri'])) + if (($item['wall']) || ($item['origin']) || ($item['uri'] != $item['parent-uri'])) return false; $u = q("select * from user where uid = %d limit 1", intval($uid) ); - if(! count($u)) + if (! count($u)) return false; $community_page = (($u[0]['page-flags'] == PAGE_COMMUNITY) ? true : false); @@ -1186,19 +1263,19 @@ function tgroup_check($uid,$item) { $dlink = normalise_link($a->get_baseurl() . '/u/' . $u[0]['nickname']); $cnt = preg_match_all('/[\@\!]\[url\=(.*?)\](.*?)\[\/url\]/ism',$item['body'],$matches,PREG_SET_ORDER); - if($cnt) { + if ($cnt) { foreach($matches as $mtch) { - if(link_compare($link,$mtch[1]) || link_compare($dlink,$mtch[1])) { + if (link_compare($link,$mtch[1]) || link_compare($dlink,$mtch[1])) { $mention = true; logger('tgroup_check: mention found: ' . $mtch[2]); } } } - if(! $mention) + if (! $mention) return false; - if((! $community_page) && (! $prvgroup)) + if ((! $community_page) && (! $prvgroup)) return false; return true; @@ -1361,13 +1438,13 @@ function new_follower($importer,$contact,$datarray,$item,$sharing = false) { if (is_object($item)) { $rawtag = $item->get_item_tags(NAMESPACE_ACTIVITY,'actor'); - if($rawtag && $rawtag[0]['child'][NAMESPACE_POCO]['preferredUsername'][0]['data']) + if ($rawtag && $rawtag[0]['child'][NAMESPACE_POCO]['preferredUsername'][0]['data']) $nick = $rawtag[0]['child'][NAMESPACE_POCO]['preferredUsername'][0]['data']; } else $nick = $item; - if(is_array($contact)) { - if(($contact['network'] == NETWORK_OSTATUS && $contact['rel'] == CONTACT_IS_SHARING) + if (is_array($contact)) { + if (($contact['network'] == NETWORK_OSTATUS && $contact['rel'] == CONTACT_IS_SHARING) || ($sharing && $contact['rel'] == CONTACT_IS_FOLLOWER)) { $r = q("UPDATE `contact` SET `rel` = %d, `writable` = 1 WHERE `id` = %d AND `uid` = %d", intval(CONTACT_IS_FRIEND), @@ -1397,17 +1474,9 @@ function new_follower($importer,$contact,$datarray,$item,$sharing = false) { intval($importer['uid']), dbesc($url) ); - if(count($r)) { - $contact_record = $r[0]; - - $photos = import_profile_photo($photo,$importer["uid"],$contact_record["id"]); - - q("UPDATE `contact` SET `photo` = '%s', `thumb` = '%s', `micro` = '%s' WHERE `id` = %d", - dbesc($photos[0]), - dbesc($photos[1]), - dbesc($photos[2]), - intval($contact_record["id"]) - ); + if (count($r)) { + $contact_record = $r[0]; + update_contact_avatar($photo, $importer["uid"], $contact_record["id"], true); } @@ -1415,12 +1484,12 @@ function new_follower($importer,$contact,$datarray,$item,$sharing = false) { intval($importer['uid']) ); $a = get_app(); - if(count($r) AND !in_array($r[0]['page-flags'], array(PAGE_SOAPBOX, PAGE_FREELOVE))) { + if (count($r) AND !in_array($r[0]['page-flags'], array(PAGE_SOAPBOX, PAGE_FREELOVE))) { // create notification $hash = random_string(); - if(is_array($contact_record)) { + if (is_array($contact_record)) { $ret = q("INSERT INTO `intro` ( `uid`, `contact-id`, `blocked`, `knowyou`, `hash`, `datetime`) VALUES ( %d, %d, 0, 0, '%s', '%s' )", intval($importer['uid']), @@ -1432,10 +1501,10 @@ function new_follower($importer,$contact,$datarray,$item,$sharing = false) { $def_gid = get_default_group($importer['uid'], $contact_record["network"]); - if(intval($def_gid)) + if (intval($def_gid)) group_add_member($importer['uid'],'',$contact_record['id'],$def_gid); - if(($r[0]['notify-flags'] & NOTIFY_INTRO) && + if (($r[0]['notify-flags'] & NOTIFY_INTRO) && in_array($r[0]['page-flags'], array(PAGE_NORMAL))) { notification(array( @@ -1466,26 +1535,24 @@ function new_follower($importer,$contact,$datarray,$item,$sharing = false) { function lose_follower($importer,$contact,$datarray = array(),$item = "") { - if(($contact['rel'] == CONTACT_IS_FRIEND) || ($contact['rel'] == CONTACT_IS_SHARING)) { + if (($contact['rel'] == CONTACT_IS_FRIEND) || ($contact['rel'] == CONTACT_IS_SHARING)) { q("UPDATE `contact` SET `rel` = %d WHERE `id` = %d", intval(CONTACT_IS_SHARING), intval($contact['id']) ); - } - else { + } else { contact_remove($contact['id']); } } function lose_sharer($importer,$contact,$datarray = array(),$item = "") { - if(($contact['rel'] == CONTACT_IS_FRIEND) || ($contact['rel'] == CONTACT_IS_FOLLOWER)) { + if (($contact['rel'] == CONTACT_IS_FRIEND) || ($contact['rel'] == CONTACT_IS_FOLLOWER)) { q("UPDATE `contact` SET `rel` = %d WHERE `id` = %d", intval(CONTACT_IS_FOLLOWER), intval($contact['id']) ); - } - else { + } else { contact_remove($contact['id']); } } @@ -1494,7 +1561,7 @@ function subscribe_to_hub($url,$importer,$contact,$hubmode = 'subscribe') { $a = get_app(); - if(is_array($importer)) { + if (is_array($importer)) { $r = q("SELECT `nickname` FROM `user` WHERE `uid` = %d LIMIT 1", intval($importer['uid']) ); @@ -1504,7 +1571,7 @@ function subscribe_to_hub($url,$importer,$contact,$hubmode = 'subscribe') { // through the direct Diaspora protocol. If we try and use // the feed, we'll get duplicates. So don't. - if((! count($r)) || $contact['network'] === NETWORK_DIASPORA) + if ((! count($r)) || $contact['network'] === NETWORK_DIASPORA) return; $push_url = get_config('system','url') . '/pubsub/' . $r[0]['nickname'] . '/' . $contact['id']; @@ -1517,7 +1584,7 @@ function subscribe_to_hub($url,$importer,$contact,$hubmode = 'subscribe') { logger('subscribe_to_hub: ' . $hubmode . ' ' . $contact['name'] . ' to hub ' . $url . ' endpoint: ' . $push_url . ' with verifier ' . $verify_token); - if(!strlen($contact['hub-verify']) OR ($contact['hub-verify'] != $verify_token)) { + if (!strlen($contact['hub-verify']) OR ($contact['hub-verify'] != $verify_token)) { $r = q("UPDATE `contact` SET `hub-verify` = '%s' WHERE `id` = %d", dbesc($verify_token), intval($contact['id']) @@ -1534,7 +1601,7 @@ function subscribe_to_hub($url,$importer,$contact,$hubmode = 'subscribe') { function fix_private_photos($s, $uid, $item = null, $cid = 0) { - if(get_config('system','disable_embedded')) + if (get_config('system','disable_embedded')) return $s; $a = get_app(); @@ -1556,14 +1623,14 @@ function fix_private_photos($s, $uid, $item = null, $cid = 0) { logger('fix_private_photos: found photo ' . $image, LOGGER_DEBUG); - if(stristr($image , $site . '/photo/')) { + if (stristr($image , $site . '/photo/')) { // Only embed locally hosted photos $replace = false; $i = basename($image); $i = str_replace(array('.jpg','.png','.gif'),array('','',''),$i); $x = strpos($i,'-'); - if($x) { + if ($x) { $res = substr($i,$x+1); $i = substr($i,0,$x); $r = q("SELECT * FROM `photo` WHERE `resource-id` = '%s' AND `scale` = %d AND `uid` = %d", @@ -1571,7 +1638,7 @@ function fix_private_photos($s, $uid, $item = null, $cid = 0) { intval($res), intval($uid) ); - if($r) { + if ($r) { // Check to see if we should replace this photo link with an embedded image // 1. No need to do so if the photo is public @@ -1581,31 +1648,30 @@ function fix_private_photos($s, $uid, $item = null, $cid = 0) { // permissions, regardless of order but first check to see if they're an exact // match to save some processing overhead. - if(has_permissions($r[0])) { - if($cid) { + if (has_permissions($r[0])) { + if ($cid) { $recips = enumerate_permissions($r[0]); - if(in_array($cid, $recips)) { + if (in_array($cid, $recips)) { $replace = true; } - } - elseif($item) { - if(compare_permissions($item,$r[0])) + } elseif ($item) { + if (compare_permissions($item,$r[0])) $replace = true; } } - if($replace) { + if ($replace) { $data = $r[0]['data']; $type = $r[0]['type']; // If a custom width and height were specified, apply before embedding - if(preg_match("/\[img\=([0-9]*)x([0-9]*)\]/is", substr($orig_body, $img_start, $img_st_close), $match)) { + if (preg_match("/\[img\=([0-9]*)x([0-9]*)\]/is", substr($orig_body, $img_start, $img_st_close), $match)) { logger('fix_private_photos: scaling photo', LOGGER_DEBUG); $width = intval($match[1]); $height = intval($match[2]); $ph = new Photo($data, $type); - if($ph->is_valid()) { + if ($ph->is_valid()) { $ph->scaleImage(max($width, $height)); $data = $ph->imageString(); $type = $ph->getType(); @@ -1622,7 +1688,7 @@ function fix_private_photos($s, $uid, $item = null, $cid = 0) { $new_body = $new_body . substr($orig_body, 0, $img_start + $img_st_close) . $image . '[/img]'; $orig_body = substr($orig_body, $img_start + $img_st_close + $img_len + strlen('[/img]')); - if($orig_body === false) + if ($orig_body === false) $orig_body = ''; $img_start = strpos($orig_body, '[img'); @@ -1636,14 +1702,14 @@ function fix_private_photos($s, $uid, $item = null, $cid = 0) { } function has_permissions($obj) { - if(($obj['allow_cid'] != '') || ($obj['allow_gid'] != '') || ($obj['deny_cid'] != '') || ($obj['deny_gid'] != '')) + if (($obj['allow_cid'] != '') || ($obj['allow_gid'] != '') || ($obj['deny_cid'] != '') || ($obj['deny_gid'] != '')) return true; return false; } function compare_permissions($obj1,$obj2) { // first part is easy. Check that these are exactly the same. - if(($obj1['allow_cid'] == $obj2['allow_cid']) + if (($obj1['allow_cid'] == $obj2['allow_cid']) && ($obj1['allow_gid'] == $obj2['allow_gid']) && ($obj1['deny_cid'] == $obj2['deny_cid']) && ($obj1['deny_gid'] == $obj2['deny_gid'])) @@ -1655,7 +1721,7 @@ function compare_permissions($obj1,$obj2) { $recipients2 = enumerate_permissions($obj2); sort($recipients1); sort($recipients2); - if($recipients1 == $recipients2) + if ($recipients1 == $recipients2) return true; return false; } @@ -1677,17 +1743,17 @@ function item_getfeedtags($item) { $ret = array(); $matches = false; $cnt = preg_match_all('|\#\[url\=(.*?)\](.*?)\[\/url\]|',$item['tag'],$matches); - if($cnt) { + if ($cnt) { for($x = 0; $x < $cnt; $x ++) { - if($matches[1][$x]) + if ($matches[1][$x]) $ret[$matches[2][$x]] = array('#',$matches[1][$x], $matches[2][$x]); } } $matches = false; $cnt = preg_match_all('|\@\[url\=(.*?)\](.*?)\[\/url\]|',$item['tag'],$matches); - if($cnt) { + if ($cnt) { for($x = 0; $x < $cnt; $x ++) { - if($matches[1][$x]) + if ($matches[1][$x]) $ret[] = array('@',$matches[1][$x], $matches[2][$x]); } } @@ -1696,7 +1762,7 @@ function item_getfeedtags($item) { function item_expire($uid, $days, $network = "", $force = false) { - if((! $uid) || ($days < 1)) + if ((! $uid) || ($days < 1)) return; // $expire_network_only = save your own wall posts @@ -1714,7 +1780,7 @@ function item_expire($uid, $days, $network = "", $force = false) { } else $range = "AND `created` < UTC_TIMESTAMP() - INTERVAL %d DAY "; - $r = q("SELECT * FROM `item` + $r = q("SELECT `file`, `resource-id`, `starred`, `type`, `id` FROM `item` WHERE `uid` = %d $range AND `id` = `parent` $sql_extra @@ -1723,7 +1789,7 @@ function item_expire($uid, $days, $network = "", $force = false) { intval($days) ); - if(! count($r)) + if (! count($r)) return; $expire_items = get_pconfig($uid, 'expire','items'); @@ -1748,24 +1814,24 @@ function item_expire($uid, $days, $network = "", $force = false) { // don't expire filed items - if(strpos($item['file'],'[') !== false) + if (strpos($item['file'],'[') !== false) continue; // Only expire posts, not photos and photo comments - if($expire_photos==0 && strlen($item['resource-id'])) + if ($expire_photos==0 && strlen($item['resource-id'])) continue; - if($expire_starred==0 && intval($item['starred'])) + if ($expire_starred==0 && intval($item['starred'])) continue; - if($expire_notes==0 && $item['type']=='note') + if ($expire_notes==0 && $item['type']=='note') continue; - if($expire_items==0 && $item['type']!='note') + if ($expire_items==0 && $item['type']!='note') continue; drop_item($item['id'],false); } - proc_run('php',"include/notifier.php","expire","$uid"); + proc_run(PRIORITY_HIGH,"include/notifier.php", "expire", $uid); } @@ -1773,21 +1839,21 @@ function item_expire($uid, $days, $network = "", $force = false) { function drop_items($items) { $uid = 0; - if(! local_user() && ! remote_user()) + if (! local_user() && ! remote_user()) return; - if(count($items)) { + if (count($items)) { foreach($items as $item) { $owner = drop_item($item,false); - if($owner && ! $uid) + if ($owner && ! $uid) $uid = $owner; } } // multiple threads may have been deleted, send an expire notification - if($uid) - proc_run('php',"include/notifier.php","expire","$uid"); + if ($uid) + proc_run(PRIORITY_HIGH,"include/notifier.php", "expire", $uid); } @@ -1801,8 +1867,8 @@ function drop_item($id,$interactive = true) { intval($id) ); - if(! count($r)) { - if(! $interactive) + if (! count($r)) { + if (! $interactive) return 0; notice( t('Item not found.') . EOL); goaway($a->get_baseurl() . '/' . $_SESSION['return_url']); @@ -1816,9 +1882,9 @@ function drop_item($id,$interactive = true) { // check if logged in user is either the author or owner of this item - if(is_array($_SESSION['remote'])) { + if (is_array($_SESSION['remote'])) { foreach($_SESSION['remote'] as $visitor) { - if($visitor['uid'] == $item['uid'] && $visitor['cid'] == $item['contact-id']) { + if ($visitor['uid'] == $item['uid'] && $visitor['cid'] == $item['contact-id']) { $cid = $visitor['cid']; break; } @@ -1826,16 +1892,16 @@ function drop_item($id,$interactive = true) { } - if((local_user() == $item['uid']) || ($cid) || (! $interactive)) { + if ((local_user() == $item['uid']) || ($cid) || (! $interactive)) { // Check if we should do HTML-based delete confirmation - if($_REQUEST['confirm']) { + if ($_REQUEST['confirm']) { //
    can't take arguments in its "action" parameter // so add any arguments as hidden inputs $query = explode_querystring($a->query_string); $inputs = array(); foreach($query['args'] as $arg) { - if(strpos($arg, 'confirm=') === false) { + if (strpos($arg, 'confirm=') === false) { $arg_parts = explode('=', $arg); $inputs[] = array('name' => $arg_parts[0], 'value' => $arg_parts[1]); } @@ -1852,7 +1918,7 @@ function drop_item($id,$interactive = true) { )); } // Now check how the user responded to the confirmation query - if($_REQUEST['canceled']) { + if ($_REQUEST['canceled']) { goaway($a->get_baseurl() . '/' . $_SESSION['return_url']); } @@ -1872,7 +1938,7 @@ function drop_item($id,$interactive = true) { $matches = false; $cnt = preg_match_all('/<(.*?)>/',$item['file'],$matches,PREG_SET_ORDER); - if($cnt) { + if ($cnt) { foreach($matches as $mtch) { file_tag_unsave_file($item['uid'],$item['id'],$mtch[1],true); } @@ -1881,7 +1947,7 @@ function drop_item($id,$interactive = true) { $matches = false; $cnt = preg_match_all('/\[(.*?)\]/',$item['file'],$matches,PREG_SET_ORDER); - if($cnt) { + if ($cnt) { foreach($matches as $mtch) { file_tag_unsave_file($item['uid'],$item['id'],$mtch[1],false); } @@ -1892,7 +1958,7 @@ function drop_item($id,$interactive = true) { // This only applies to photos uploaded from the photos page. Photos inserted into a post do not // generate a resource-id and therefore aren't intimately linked to the item. - if(strlen($item['resource-id'])) { + if (strlen($item['resource-id'])) { q("DELETE FROM `photo` WHERE `resource-id` = '%s' AND `uid` = %d ", dbesc($item['resource-id']), intval($item['uid']) @@ -1902,7 +1968,7 @@ function drop_item($id,$interactive = true) { // If item is a link to an event, nuke the event record. - if(intval($item['event-id'])) { + if (intval($item['event-id'])) { q("DELETE FROM `event` WHERE `id` = %d AND `uid` = %d", intval($item['event-id']), intval($item['uid']) @@ -1964,7 +2030,7 @@ function drop_item($id,$interactive = true) { // If it's the parent of a comment thread, kill all the kids - if($item['uri'] == $item['parent-uri']) { + if ($item['uri'] == $item['parent-uri']) { $r = q("UPDATE `item` SET `deleted` = 1, `edited` = '%s', `changed` = '%s', `body` = '' , `title` = '' WHERE `parent-uri` = '%s' AND `uid` = %d ", dbesc(datetime_convert()), @@ -1976,8 +2042,7 @@ function drop_item($id,$interactive = true) { create_files_from_itemuri($item['parent-uri'], $item['uid']); delete_thread_uri($item['parent-uri'], $item['uid']); // ignore the result - } - else { + } else { // ensure that last-child is set in case the comment that had it just got wiped. q("UPDATE `item` SET `last-child` = 0, `changed` = '%s' WHERE `parent-uri` = '%s' AND `uid` = %d ", dbesc(datetime_convert()), @@ -1989,7 +2054,7 @@ function drop_item($id,$interactive = true) { dbesc($item['parent-uri']), intval($item['uid']) ); - if(count($r)) { + if (count($r)) { q("UPDATE `item` SET `last-child` = 1 WHERE `id` = %d", intval($r[0]['id']) ); @@ -2000,15 +2065,14 @@ function drop_item($id,$interactive = true) { // send the notification upstream/downstream as the case may be - proc_run('php',"include/notifier.php","drop","$drop_id"); + proc_run(PRIORITY_HIGH,"include/notifier.php", "drop", $drop_id); - if(! $interactive) + if (! $interactive) return $owner; goaway($a->get_baseurl() . '/' . $_SESSION['return_url']); //NOTREACHED - } - else { - if(! $interactive) + } else { + if (! $interactive) return 0; notice( t('Permission denied.') . EOL); goaway($a->get_baseurl() . '/' . $_SESSION['return_url']); @@ -2026,7 +2090,7 @@ function first_post_date($uid,$wall = false) { intval($uid), intval($wall ? 1 : 0) ); - if(count($r)) { + if (count($r)) { // logger('first_post_date: ' . $r[0]['id'] . ' ' . $r[0]['created'], LOGGER_DATA); return substr(datetime_convert('',date_default_timezone_get(),$r[0]['created']),0,10); } @@ -2038,7 +2102,7 @@ function list_post_dates($uid, $wall) { $dnow = datetime_convert('',date_default_timezone_get(),'now','Y-m-d'); $dthen = first_post_date($uid, $wall); - if(! $dthen) + if (! $dthen) return array(); // Set the start and end date to the beginning of the month @@ -2056,7 +2120,7 @@ function list_post_dates($uid, $wall) { $start_month = datetime_convert('','',$dstart,'Y-m-d'); $end_month = datetime_convert('','',$dend,'Y-m-d'); $str = day_translate(datetime_convert('','',$dnow,'F')); - if(! $ret[$dyear]) + if (! $ret[$dyear]) $ret[$dyear] = array(); $ret[$dyear][] = array($str,$end_month,$start_month); $dnow = datetime_convert('','',$dnow . ' -1 month', 'Y-m-d'); @@ -2068,7 +2132,7 @@ function posted_dates($uid,$wall) { $dnow = datetime_convert('',date_default_timezone_get(),'now','Y-m-d'); $dthen = first_post_date($uid,$wall); - if(! $dthen) + if (! $dthen) return array(); // Set the start and end date to the beginning of the month @@ -2094,21 +2158,21 @@ function posted_dates($uid,$wall) { function posted_date_widget($url,$uid,$wall) { $o = ''; - if(! feature_enabled($uid,'archives')) + if (! feature_enabled($uid,'archives')) return $o; // For former Facebook folks that left because of "timeline" -/* if($wall && intval(get_pconfig($uid,'system','no_wall_archive_widget'))) +/* if ($wall && intval(get_pconfig($uid,'system','no_wall_archive_widget'))) return $o;*/ $visible_years = get_pconfig($uid,'system','archive_visible_years'); - if(! $visible_years) + if (! $visible_years) $visible_years = 5; $ret = list_post_dates($uid,$wall); - if(! count($ret)) + if (! count($ret)) return $o; $cutoff_year = intval(datetime_convert('',date_default_timezone_get(),'now','Y')) - $visible_years; diff --git a/include/like.php b/include/like.php index 9ceff2303..118ec81ca 100644 --- a/include/like.php +++ b/include/like.php @@ -153,7 +153,7 @@ function do_like($item_id, $verb) { ); $like_item_id = $like_item['id']; - proc_run('php',"include/notifier.php","like","$like_item_id"); + proc_run(PRIORITY_HIGH, "include/notifier.php", "like", $like_item_id); return true; } @@ -245,7 +245,7 @@ EOT; call_hooks('post_local_end', $arr); - proc_run('php',"include/notifier.php","like","$post_id"); + proc_run(PRIORITY_HIGH, "include/notifier.php", "like", $post_id); return true; } diff --git a/include/message.php b/include/message.php index 0f4b53c62..51f3ad805 100644 --- a/include/message.php +++ b/include/message.php @@ -150,7 +150,7 @@ function send_message($recipient=0, $body='', $subject='', $replyto=''){ } if($post_id) { - proc_run('php',"include/notifier.php","mail","$post_id"); + proc_run(PRIORITY_HIGH, "include/notifier.php", "mail", $post_id); return intval($post_id); } else { return -3; diff --git a/include/nav.php b/include/nav.php index e6460c046..7a8230cc1 100644 --- a/include/nav.php +++ b/include/nav.php @@ -43,181 +43,170 @@ function nav(&$a) { call_hooks('page_header', $a->page['nav']); } - -function nav_info(&$a) { - +/** + * @brief Prepares a list of navigation links + * + * @param App $a + * @return array Navigation links + * string 'sitelocation' => The webbie (username@site.com) + * array 'nav' => Array of links used in the nav menu + * string 'banner' => Formatted html link with banner image + * array 'userinfo' => Array of user information (name, icon) + */ +function nav_info(App $a) +{ $ssl_state = ((local_user()) ? true : false); /* - * * Our network is distributed, and as you visit friends some of the * sites look exactly the same - it isn't always easy to know where you are. * Display the current site location as a navigation aid. - * */ $myident = ((is_array($a->user) && isset($a->user['nickname'])) ? $a->user['nickname'] . '@' : ''); - $sitelocation = $myident . substr($a->get_baseurl($ssl_state),strpos($a->get_baseurl($ssl_state),'//') + 2 ); - + $sitelocation = $myident . substr($a->get_baseurl($ssl_state), strpos($a->get_baseurl($ssl_state), '//') + 2 ); // nav links: array of array('href', 'text', 'extra css classes', 'title') - $nav = Array(); + $nav = array(); - /* - * Display login or logout - */ - - $nav['usermenu']=array(); + // Display login or logout + $nav['usermenu'] = array(); $userinfo = null; - if(local_user()) { - $nav['logout'] = Array('logout',t('Logout'), "", t('End this session')); + if (local_user()) { + $nav['logout'] = array('logout', t('Logout'), '', t('End this session')); // user menu - $nav['usermenu'][] = Array('profile/' . $a->user['nickname'], t('Status'), "", t('Your posts and conversations')); - $nav['usermenu'][] = Array('profile/' . $a->user['nickname']. '?tab=profile', t('Profile'), "", t('Your profile page')); - $nav['usermenu'][] = Array('photos/' . $a->user['nickname'], t('Photos'), "", t('Your photos')); - $nav['usermenu'][] = Array('videos/' . $a->user['nickname'], t('Videos'), "", t('Your videos')); - $nav['usermenu'][] = Array('events/', t('Events'), "", t('Your events')); - $nav['usermenu'][] = Array('notes/', t('Personal notes'), "", t('Your personal notes')); + $nav['usermenu'][] = array('profile/' . $a->user['nickname'], t('Status'), '', t('Your posts and conversations')); + $nav['usermenu'][] = array('profile/' . $a->user['nickname'] . '?tab=profile', t('Profile'), '', t('Your profile page')); + $nav['usermenu'][] = array('photos/' . $a->user['nickname'], t('Photos'), '', t('Your photos')); + $nav['usermenu'][] = array('videos/' . $a->user['nickname'], t('Videos'), '', t('Your videos')); + $nav['usermenu'][] = array('events/', t('Events'), '', t('Your events')); + $nav['usermenu'][] = array('notes/', t('Personal notes'), '', t('Your personal notes')); // user info - $r = q("SELECT micro FROM contact WHERE uid=%d AND self=1", intval($a->user['uid'])); + $r = q("SELECT `micro` FROM `contact` WHERE `uid` = %d AND `self` = 1", intval($a->user['uid'])); $userinfo = array( - 'icon' => (count($r) ? $a->remove_baseurl($r[0]['micro']) : "images/person-48.jpg"), + 'icon' => (count($r) ? $a->remove_baseurl($r[0]['micro']) : 'images/person-48.jpg'), 'name' => $a->user['username'], ); - - } - else { - $nav['login'] = Array('login',t('Login'), ($a->module == 'login'?'selected':''), t('Sign in')); + } else { + $nav['login'] = array('login', t('Login'), ($a->module == 'login' ? 'selected' : ''), t('Sign in')); } - - /* - * "Home" should also take you home from an authenticated remote profile connection - */ - + // "Home" should also take you home from an authenticated remote profile connection $homelink = get_my_url(); - if(! $homelink) + if (! $homelink) { $homelink = ((x($_SESSION,'visitor_home')) ? $_SESSION['visitor_home'] : ''); + } - if(($a->module != 'home') && (! (local_user()))) - $nav['home'] = array($homelink, t('Home'), "", t('Home Page')); + if (($a->module != 'home') && (! (local_user()))) { + $nav['home'] = array($homelink, t('Home'), '', t('Home Page')); + } - - if(($a->config['register_policy'] == REGISTER_OPEN) && (! local_user()) && (! remote_user())) - $nav['register'] = array('register',t('Register'), "", t('Create an account')); + if (($a->config['register_policy'] == REGISTER_OPEN) && (! local_user()) && (! remote_user())) { + $nav['register'] = array('register', t('Register'), '', t('Create an account')); + } $help_url = 'help'; - if(! get_config('system','hide_help')) - $nav['help'] = array($help_url, t('Help'), "", t('Help and documentation')); + if (! get_config('system', 'hide_help')) { + $nav['help'] = array($help_url, t('Help'), '', t('Help and documentation')); + } - if(count($a->apps)>0) - $nav['apps'] = array('apps', t('Apps'), "", t('Addon applications, utilities, games')); + if (count($a->apps) > 0) { + $nav['apps'] = array('apps', t('Apps'), '', t('Addon applications, utilities, games')); + } - if (local_user() OR !get_config('system','local_search')) { - $nav['search'] = array('search', t('Search'), "", t('Search site content')); + if (local_user() OR !get_config('system', 'local_search')) { + $nav['search'] = array('search', t('Search'), '', t('Search site content')); $nav['searchoption'] = array( - t("Full Text"), - t("Tags"), - t("Contacts")); + t('Full Text'), + t('Tags'), + t('Contacts')); - if (get_config('system','poco_local_search')) - $nav['searchoption'][] = t("Forums"); + if (get_config('system', 'poco_local_search')) { + $nav['searchoption'][] = t('Forums'); + } } $gdirpath = 'directory'; - if(strlen(get_config('system','singleuser'))) { - $gdir = get_config('system','directory'); - if(strlen($gdir)) - $gdirpath = $gdir; + if (strlen(get_config('system', 'singleuser'))) { + $gdir = get_config('system', 'directory'); + if(strlen($gdir)) { + $gdirpath = zrl($gdir, true); + } + } elseif (get_config('system', 'community_page_style') == CP_USERS_ON_SERVER) { + $nav['community'] = array('community', t('Community'), '', t('Conversations on this site')); + } elseif (get_config('system', 'community_page_style') == CP_GLOBAL_COMMUNITY) { + $nav['community'] = array('community', t('Community'), '', t('Conversations on the network')); } - elseif(get_config('system','community_page_style') == CP_USERS_ON_SERVER) - $nav['community'] = array('community', t('Community'), "", t('Conversations on this site')); - elseif(get_config('system','community_page_style') == CP_GLOBAL_COMMUNITY) - $nav['community'] = array('community', t('Community'), "", t('Conversations on the network')); - if(local_user()) - $nav['events'] = Array('events', t('Events'), "", t('Events and Calendar')); + if (local_user()) { + $nav['events'] = array('events', t('Events'), '', t('Events and Calendar')); + } - $nav['directory'] = array($gdirpath, t('Directory'), "", t('People directory')); + $nav['directory'] = array($gdirpath, t('Directory'), '', t('People directory')); - $nav['about'] = Array('friendica', t('Information'), "", t('Information about this friendica instance')); + $nav['about'] = array('friendica', t('Information'), '', t('Information about this friendica instance')); - /* - * - * The following nav links are only show to logged in users - * - */ + // The following nav links are only show to logged in users + if (local_user()) { + $nav['network'] = array('network', t('Network'), '', t('Conversations from your friends')); + $nav['net_reset'] = array('network/0?f=&order=comment&nets=all', t('Network Reset'), '', t('Load Network page with no filters')); - if(local_user()) { + $nav['home'] = array('profile/' . $a->user['nickname'], t('Home'), '', t('Your posts and conversations')); - $nav['network'] = array('network', t('Network'), "", t('Conversations from your friends')); - $nav['net_reset'] = array('network/0?f=&order=comment&nets=all', t('Network Reset'), "", t('Load Network page with no filters')); - - $nav['home'] = array('profile/' . $a->user['nickname'], t('Home'), "", t('Your posts and conversations')); - - if(in_array($_SESSION['page_flags'], array(PAGE_NORMAL, PAGE_SOAPBOX, PAGE_FREELOVE, PAGE_PRVGROUP))) { - /* only show friend requests for normal pages. Other page types have automatic friendship. */ - if(in_array($_SESSION['page_flags'], array(PAGE_NORMAL, PAGE_SOAPBOX, PAGE_PRVGROUP))) - $nav['introductions'] = array('notifications/intros', t('Introductions'), "", t('Friend Requests')); - - if(in_array($_SESSION['page_flags'], array(PAGE_NORMAL, PAGE_SOAPBOX, PAGE_FREELOVE))) { - $nav['notifications'] = array('notifications', t('Notifications'), "", t('Notifications')); - $nav['notifications']['all']=array('notifications/system', t('See all notifications'), "", ""); - $nav['notifications']['mark'] = array('', t('Mark as seen'), '',t('Mark all system notifications seen')); + if (in_array($_SESSION['page_flags'], array(PAGE_NORMAL, PAGE_SOAPBOX, PAGE_FREELOVE, PAGE_PRVGROUP))) { + // only show friend requests for normal pages. Other page types have automatic friendship. + if (in_array($_SESSION['page_flags'], array(PAGE_NORMAL, PAGE_SOAPBOX, PAGE_PRVGROUP))) { + $nav['introductions'] = array('notifications/intros', t('Introductions'), '', t('Friend Requests')); + } + if (in_array($_SESSION['page_flags'], array(PAGE_NORMAL, PAGE_SOAPBOX, PAGE_FREELOVE))) { + $nav['notifications'] = array('notifications', t('Notifications'), '', t('Notifications')); + $nav['notifications']['all'] = array('notifications/system', t('See all notifications'), '', ''); + $nav['notifications']['mark'] = array('', t('Mark as seen'), '', t('Mark all system notifications seen')); } } - $nav['messages'] = array('message', t('Messages'), "", t('Private mail')); - $nav['messages']['inbox'] = array('message', t('Inbox'), "", t('Inbox')); - $nav['messages']['outbox']= array('message/sent', t('Outbox'), "", t('Outbox')); - $nav['messages']['new'] = array('message/new', t('New Message'), "", t('New Message')); + $nav['messages'] = array('message', t('Messages'), '', t('Private mail')); + $nav['messages']['inbox'] = array('message', t('Inbox'), '', t('Inbox')); + $nav['messages']['outbox'] = array('message/sent', t('Outbox'), '', t('Outbox')); + $nav['messages']['new'] = array('message/new', t('New Message'), '', t('New Message')); - if(is_array($a->identities) && count($a->identities) > 1) { - $nav['manage'] = array('manage', t('Manage'), "", t('Manage other pages')); + if (is_array($a->identities) && count($a->identities) > 1) { + $nav['manage'] = array('manage', t('Manage'), '', t('Manage other pages')); } - $nav['delegations'] = Array('delegate', t('Delegations'), "", t('Delegate Page Management')); + $nav['delegations'] = array('delegate', t('Delegations'), '', t('Delegate Page Management')); - $nav['settings'] = array('settings', t('Settings'),"", t('Account settings')); + $nav['settings'] = array('settings', t('Settings'), '', t('Account settings')); - if(feature_enabled(local_user(),'multi_profiles')) - $nav['profiles'] = array('profiles', t('Profiles'),"", t('Manage/Edit Profiles')); + if (feature_enabled(local_user(), 'multi_profiles')) { + $nav['profiles'] = array('profiles', t('Profiles'), '', t('Manage/Edit Profiles')); + } - $nav['contacts'] = array('contacts', t('Contacts'),"", t('Manage/edit friends and contacts')); + $nav['contacts'] = array('contacts', t('Contacts'), '', t('Manage/edit friends and contacts')); } - /* - * Admin page - */ - if (is_site_admin()){ - $nav['admin'] = array('admin/', t('Admin'), "", t('Site setup and configuration')); - } + // Show the link to the admin configuration page if user is admin + if (is_site_admin()) { + $nav['admin'] = array('admin/', t('Admin'), '', t('Site setup and configuration')); + } + $nav['navigation'] = array('navigation/', t('Navigation'), '', t('Site map')); - $nav['navigation'] = array('navigation/', t('Navigation'), "", t('Site map')); - - - /* - * - * Provide a banner/logo/whatever - * - */ - - $banner = get_config('system','banner'); - - if($banner === false) - $banner .= 'logoFriendica'; + // Provide a banner/logo/whatever + $banner = get_config('system', 'banner'); + if ($banner === false) { + $banner = 'logoFriendica'; + } call_hooks('nav_info', $nav); - return array( 'sitelocation' => $sitelocation, 'nav' => $nav, @@ -226,7 +215,6 @@ function nav_info(&$a) { ); } - /** * Set a menu item in navbar as selected * diff --git a/include/network.php b/include/network.php index d27a090fe..f20445d27 100644 --- a/include/network.php +++ b/include/network.php @@ -5,7 +5,7 @@ */ require_once("include/xml.php"); - +require_once('include/Probe.php'); /** * @brief Curl wrapper @@ -371,324 +371,6 @@ function http_status_exit($val, $description = array()) { } -// Given an email style address, perform webfinger lookup and -// return the resulting DFRN profile URL, or if no DFRN profile URL -// is located, returns an OStatus subscription template (prefixed -// with the string 'stat:' to identify it as on OStatus template). -// If this isn't an email style address just return $webbie. -// Return an empty string if email-style addresses but webfinger fails, -// or if the resultant personal XRD doesn't contain a supported -// subscription/friend-request attribute. - -// amended 7/9/2011 to return an hcard which could save potentially loading -// a lengthy content page to scrape dfrn attributes - -function webfinger_dfrn($webbie,&$hcard) { - if(! strstr($webbie,'@')) { - return $webbie; - } - $profile_link = ''; - - $links = webfinger($webbie); - logger('webfinger_dfrn: ' . $webbie . ':' . print_r($links,true), LOGGER_DATA); - if(count($links)) { - foreach($links as $link) { - if($link['@attributes']['rel'] === NAMESPACE_DFRN) - $profile_link = $link['@attributes']['href']; - if($link['@attributes']['rel'] === NAMESPACE_OSTATUSSUB) - $profile_link = 'stat:' . $link['@attributes']['template']; - if($link['@attributes']['rel'] === 'http://microformats.org/profile/hcard') - $hcard = $link['@attributes']['href']; - } - } - return $profile_link; -} - -/** - * @brief Perform webfinger lookup on an email style address - * - * @param string $webbi An email style address - * @param boolean $debug - * - * @return array of link attributes from the personal XRD file - * empty array on error/failure - */ -function webfinger($webbie, $debug = false) { - $host = ''; - if(strstr($webbie,'@')) { - $host = substr($webbie,strpos($webbie,'@') + 1); - } - if(strlen($host)) { - $tpl = fetch_lrdd_template($host); - logger('webfinger: lrdd template: ' . $tpl); - if(strlen($tpl)) { - $pxrd = str_replace('{uri}', urlencode('acct:' . $webbie), $tpl); - logger('webfinger: pxrd: ' . $pxrd); - $links = fetch_xrd_links($pxrd); - if(! count($links)) { - // try with double slashes - $pxrd = str_replace('{uri}', urlencode('acct://' . $webbie), $tpl); - logger('webfinger: pxrd: ' . $pxrd); - $links = fetch_xrd_links($pxrd); - } - return $links; - } - } - return array(); -} - -function lrdd($uri, $debug = false) { - - $a = get_app(); - - // default priority is host priority, host-meta first - - $priority = 'host'; - - // All we have is an email address. Resource-priority is irrelevant - // because our URI isn't directly resolvable. - - if(strstr($uri,'@')) { - return(webfinger($uri)); - } - - // get the host meta file - - $host = @parse_url($uri); - - if($host) { - $url = ((x($host,'scheme')) ? $host['scheme'] : 'http') . '://'; - $url .= $host['host'] . '/.well-known/host-meta' ; - } - else - return array(); - - logger('lrdd: constructed url: ' . $url); - - $xml = fetch_url($url); - - $headers = $a->get_curl_headers(); - - if (! $xml) - return array(); - - logger('lrdd: host_meta: ' . $xml, LOGGER_DATA); - - if(! stristr($xml,'].*)>.*rel\=[\'\"]lrdd[\'\"]/',$line,$matches)) { - return(fetch_xrd_links($matches[1])); - break; - } - } - } - } - - - // priority 'resource' - - - $html = fetch_url($uri); - $headers = $a->get_curl_headers(); - logger('lrdd: headers=' . $headers, LOGGER_DEBUG); - - // don't try and parse raw xml as html - if(! strstr($html,'getElementsByTagName('link'); - foreach($items as $item) { - $x = $item->getAttribute('rel'); - if($x == "lrdd") { - $pagelink = $item->getAttribute('href'); - break; - } - } - } - } - - if(isset($pagelink)) - return(fetch_xrd_links($pagelink)); - - // next look in HTTP headers - - $lines = explode("\n",$headers); - if(count($lines)) { - foreach($lines as $line) { - /// @TODO Alter the following regex to support multiple relations (space separated) - if((stristr($line,'link:')) && preg_match('/<([^>].*)>.*rel\=[\'\"]lrdd[\'\"]/',$line,$matches)) { - $pagelink = $matches[1]; - break; - } - // don't try and run feeds through the html5 parser - if(stristr($line,'content-type:') && ((stristr($line,'application/atom+xml')) || (stristr($line,'application/rss+xml')))) - return array(); - if(stristr($html,''),array('href="','"/>'),$xml); - - $h = parse_xml_string($xml); - if(! $h) - return array(); - - $arr = xml::element_to_array($h); - - $links = array(); - - if(isset($arr['xrd']['link'])) { - $link = $arr['xrd']['link']; - if(! isset($link[0])) - $links = array($link); - else - $links = $link; - } - if(isset($arr['xrd']['alias'])) { - $alias = $arr['xrd']['alias']; - if(! isset($alias[0])) - $aliases = array($alias); - else - $aliases = $alias; - if(is_array($aliases) && count($aliases)) { - foreach($aliases as $alias) { - $links[]['@attributes'] = array('rel' => 'alias' , 'href' => $alias); - } - } - } - - logger('fetch_xrd_links: ' . print_r($links,true), LOGGER_DATA); - - return $links; - -} - /** * @brief Check URL to se if ts's real * @@ -1123,7 +805,7 @@ function short_link($url) { * This function encodes an array to json format * and adds an application/json HTTP header to the output. * After finishing the process is getting killed. - * + * * @param array $x The input content */ function json_return_and_die($x) { @@ -1131,3 +813,57 @@ function json_return_and_die($x) { echo json_encode($x); killme(); } + +/** + * @brief Find the matching part between two url + * + * @param string $url1 + * @param string $url2 + * @return string The matching part + */ +function matching_url($url1, $url2) { + + if (($url1 == "") OR ($url2 == "")) + return ""; + + $url1 = normalise_link($url1); + $url2 = normalise_link($url2); + + $parts1 = parse_url($url1); + $parts2 = parse_url($url2); + + if (!isset($parts1["host"]) OR !isset($parts2["host"])) + return ""; + + if ($parts1["scheme"] != $parts2["scheme"]) + return ""; + + if ($parts1["host"] != $parts2["host"]) + return ""; + + if ($parts1["port"] != $parts2["port"]) + return ""; + + $match = $parts1["scheme"]."://".$parts1["host"]; + + if ($parts1["port"]) + $match .= ":".$parts1["port"]; + + $pathparts1 = explode("/", $parts1["path"]); + $pathparts2 = explode("/", $parts2["path"]); + + $i = 0; + $path = ""; + do { + $path1 = $pathparts1[$i]; + $path2 = $pathparts2[$i]; + + if ($path1 == $path2) + $path .= $path1."/"; + + } while (($path1 == $path2) AND ($i++ <= count($pathparts1))); + + $match .= $path; + + return normalise_link($match); +} diff --git a/include/notifier.php b/include/notifier.php index 6c90629bd..812752a55 100644 --- a/include/notifier.php +++ b/include/notifier.php @@ -16,7 +16,7 @@ require_once('include/salmon.php'); /* * The notifier is typically called with: * - * proc_run('php', "include/notifier.php", COMMAND, ITEM_ID); + * proc_run(PRIORITY_HIGH, "include/notifier.php", COMMAND, ITEM_ID); * * where COMMAND is one of the following: * @@ -132,18 +132,25 @@ function notifier_run(&$argv, &$argc){ $recipients[] = $suggest[0]['cid']; $item = $suggest[0]; } elseif($cmd === 'removeme') { - $r = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1", intval($item_id)); - if (! $r) + $r = q("SELECT `contact`.*, `user`.`pubkey` AS `upubkey`, `user`.`prvkey` AS `uprvkey`, + `user`.`timezone`, `user`.`nickname`, `user`.`sprvkey`, `user`.`spubkey`, + `user`.`page-flags`, `user`.`prvnets`, `user`.`account-type`, `user`.`guid` + FROM `contact` INNER JOIN `user` ON `user`.`uid` = `contact`.`uid` + WHERE `contact`.`uid` = %d AND `contact`.`self` LIMIT 1", + intval($item_id)); + if (!$r) return; $user = $r[0]; - $r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `self` = 1 LIMIT 1", intval($item_id)); - if (! $r) + + $r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `self` LIMIT 1", intval($item_id)); + if (!$r) return; $self = $r[0]; - $r = q("SELECT * FROM `contact` WHERE `self` = 0 AND `uid` = %d", intval($item_id)); - if(! $r) + + $r = q("SELECT * FROM `contact` WHERE NOT `self` AND `uid` = %d", intval($item_id)); + if(!$r) return; require_once('include/Contact.php'); @@ -197,7 +204,7 @@ function notifier_run(&$argv, &$argc){ $r = q("SELECT `contact`.*, `user`.`pubkey` AS `upubkey`, `user`.`prvkey` AS `uprvkey`, `user`.`timezone`, `user`.`nickname`, `user`.`sprvkey`, `user`.`spubkey`, - `user`.`page-flags`, `user`.`prvnets` + `user`.`page-flags`, `user`.`prvnets`, `user`.`account-type` FROM `contact` INNER JOIN `user` ON `user`.`uid` = `contact`.`uid` WHERE `contact`.`uid` = %d AND `contact`.`self` = 1 LIMIT 1", intval($uid) @@ -348,7 +355,7 @@ function notifier_run(&$argv, &$argc){ // a delivery fork. private groups (forum_mode == 2) do not uplink if((intval($parent['forum_mode']) == 1) && (! $top_level) && ($cmd !== 'uplink')) { - proc_run('php','include/notifier.php','uplink',$item_id); + proc_run(PRIORITY_HIGH,'include/notifier.php','uplink',$item_id); } $conversants = array(); @@ -388,17 +395,30 @@ function notifier_run(&$argv, &$argc){ // We have not only to look at the parent, since it could be a Friendica thread. if (($thr_parent AND ($thr_parent[0]['network'] == NETWORK_OSTATUS)) OR ($parent['network'] == NETWORK_OSTATUS)) { - logger('Some parent is OStatus for '.$target_item["guid"], LOGGER_DEBUG); + logger('Some parent is OStatus for '.$target_item["guid"]." - Author: ".$thr_parent[0]['author-link']." - Owner: ".$thr_parent[0]['owner-link'], LOGGER_DEBUG); // Send a salmon to the parent author - $probed_contact = probe_url($thr_parent[0]['author-link']); + $r = q("SELECT `notify` FROM `contact` WHERE `nurl`='%s' AND `uid` IN (0, %d) AND `notify` != ''", + dbesc(normalise_link($thr_parent[0]['author-link'])), + intval($uid)); + if ($r) + $probed_contact = $r[0]; + else + $probed_contact = probe_url($thr_parent[0]['author-link']); + if ($probed_contact["notify"] != "") { logger('Notify parent author '.$probed_contact["url"].': '.$probed_contact["notify"]); $url_recipients[$probed_contact["notify"]] = $probed_contact["notify"]; } // Send a salmon to the parent owner - $probed_contact = probe_url($thr_parent[0]['owner-link']); + $r = q("SELECT `notify` FROM `contact` WHERE `nurl`='%s' AND `uid` IN (0, %d) AND `notify` != ''", + dbesc(normalise_link($thr_parent[0]['owner-link'])), + intval($uid)); + if ($r) + $probed_contact = $r[0]; + else + $probed_contact = probe_url($thr_parent[0]['owner-link']); if ($probed_contact["notify"] != "") { logger('Notify parent owner '.$probed_contact["url"].': '.$probed_contact["notify"]); $url_recipients[$probed_contact["notify"]] = $probed_contact["notify"]; @@ -518,7 +538,7 @@ function notifier_run(&$argv, &$argc){ $this_batch[] = $contact['id']; if(count($this_batch) >= $deliveries_per_process) { - proc_run('php','include/delivery.php',$cmd,$item_id,$this_batch); + proc_run(PRIORITY_HIGH,'include/delivery.php',$cmd,$item_id,$this_batch); $this_batch = array(); if($interval) @time_sleep_until(microtime(true) + (float) $interval); @@ -528,7 +548,7 @@ function notifier_run(&$argv, &$argc){ // be sure to pick up any stragglers if(count($this_batch)) - proc_run('php','include/delivery.php',$cmd,$item_id,$this_batch); + proc_run(PRIORITY_HIGH,'include/delivery.php',$cmd,$item_id,$this_batch); } // send salmon slaps to mentioned remote tags (@foo@example.com) in OStatus posts @@ -579,10 +599,10 @@ function notifier_run(&$argv, &$argc){ foreach($r as $rr) { if((! $mail) && (! $fsuggest) && (! $followup)) { - q("insert into deliverq ( `cmd`,`item`,`contact` ) values ('%s', %d, %d )", - dbesc($cmd), - intval($item_id), - intval($rr['id']) + q("INSERT INTO `deliverq` (`cmd`,`item`,`contact`) VALUES ('%s', %d, %d) + ON DUPLICATE KEY UPDATE `cmd` = '%s', `item` = %d, `contact` = %d", + dbesc($cmd), intval($item_id), intval($rr['id']), + dbesc($cmd), intval($item_id), intval($rr['id']) ); } } @@ -599,7 +619,7 @@ function notifier_run(&$argv, &$argc){ if((! $mail) && (! $fsuggest) && (! $followup)) { logger('notifier: delivery agent: '.$rr['name'].' '.$rr['id'].' '.$rr['network'].' '.$target_item["guid"]); - proc_run('php','include/delivery.php',$cmd,$item_id,$rr['id']); + proc_run(PRIORITY_HIGH,'include/delivery.php',$cmd,$item_id,$rr['id']); if($interval) @time_sleep_until(microtime(true) + (float) $interval); } @@ -622,8 +642,8 @@ function notifier_run(&$argv, &$argc){ if ($h === '[internal]') { // Set push flag for PuSH subscribers to this topic, // they will be notified in queue.php - q("UPDATE `push_subscriber` SET `push` = 1 " . - "WHERE `nickname` = '%s'", dbesc($owner['nickname'])); + q("UPDATE `push_subscriber` SET `push` = 1 ". + "WHERE `nickname` = '%s' AND `push` = 0", dbesc($owner['nickname'])); logger('Activating internal PuSH for item '.$item_id, LOGGER_DEBUG); @@ -639,7 +659,7 @@ function notifier_run(&$argv, &$argc){ } // Handling the pubsubhubbub requests - proc_run('php','include/pubsubpublish.php'); + proc_run(PRIORITY_HIGH,'include/pubsubpublish.php'); } logger('notifier: calling hooks', LOGGER_DEBUG); diff --git a/include/oembed.php b/include/oembed.php index c362ab45e..be6c298e8 100755 --- a/include/oembed.php +++ b/include/oembed.php @@ -6,7 +6,15 @@ function oembed_replacecb($matches){ return $s; } - +/** + * @brief Get data from an URL to embed its content. + * + * @param string $embedurl The URL from which the data should be fetched. + * @param bool $no_rich_type If set to true rich type content won't be fetched. + * + * @return bool|object Returns object with embed content or false if no embedable + * content exists + */ function oembed_fetch_url($embedurl, $no_rich_type = false){ $embedurl = trim($embedurl, "'"); $embedurl = trim($embedurl, '"'); @@ -16,11 +24,11 @@ function oembed_fetch_url($embedurl, $no_rich_type = false){ $r = q("SELECT * FROM `oembed` WHERE `url` = '%s'", dbesc(normalise_link($embedurl))); - if ($r) + if (dbm::is_result($r)) { $txt = $r[0]["content"]; - else + } else { $txt = Cache::get($a->videowidth . $embedurl); - + } // These media files should now be caught in bbcode.php // left here as a fallback in case this is called from another source @@ -28,27 +36,27 @@ function oembed_fetch_url($embedurl, $no_rich_type = false){ $ext = pathinfo(strtolower($embedurl),PATHINFO_EXTENSION); - if(is_null($txt)){ + if (is_null($txt)) { $txt = ""; if (!in_array($ext, $noexts)){ // try oembed autodiscovery $redirects = 0; - $html_text = fetch_url($embedurl, false, $redirects, 15, "text/*"); /**/ - if($html_text){ + $html_text = fetch_url($embedurl, false, $redirects, 15, "text/*"); + if ($html_text) { $dom = @DOMDocument::loadHTML($html_text); - if ($dom){ + if ($dom) { $xpath = new DOMXPath($dom); $attr = "oembed"; $xattr = oe_build_xpath("class","oembed"); $entries = $xpath->query("//link[@type='application/json+oembed']"); - foreach($entries as $e){ + foreach ($entries as $e) { $href = $e->getAttributeNode("href")->nodeValue; $txt = fetch_url($href . '&maxwidth=' . $a->videowidth); break; } $entries = $xpath->query("//link[@type='text/json+oembed']"); - foreach($entries as $e){ + foreach ($entries as $e) { $href = $e->getAttributeNode("href")->nodeValue; $txt = fetch_url($href . '&maxwidth=' . $a->videowidth); break; @@ -57,7 +65,7 @@ function oembed_fetch_url($embedurl, $no_rich_type = false){ } } - if ($txt==false || $txt==""){ + if ($txt==false || $txt=="") { $embedly = get_config("system", "embedly"); if ($embedly != "") { // try embedly service @@ -70,30 +78,33 @@ function oembed_fetch_url($embedurl, $no_rich_type = false){ $txt=trim($txt); - if ($txt[0]!="{") + if ($txt[0]!="{") { $txt='{"type":"error"}'; - else { //save in cache + } else { //save in cache $j = json_decode($txt); - if ($j->type != "error") + if ($j->type != "error") { q("INSERT INTO `oembed` (`url`, `content`, `created`) VALUES ('%s', '%s', '%s') ON DUPLICATE KEY UPDATE `content` = '%s', `created` = '%s'", dbesc(normalise_link($embedurl)), dbesc($txt), dbesc(datetime_convert()), dbesc($txt), dbesc(datetime_convert())); + } - Cache::set($a->videowidth.$embedurl,$txt, CACHE_DAY); + Cache::set($a->videowidth.$embedurl, $txt, CACHE_DAY); } } $j = json_decode($txt); - if (!is_object($j)) + if (!is_object($j)) { return false; + } // Always embed the SSL version - if (isset($j->html)) + if (isset($j->html)) { $j->html = str_replace(array("http://www.youtube.com/", "http://player.vimeo.com/"), array("https://www.youtube.com/", "https://player.vimeo.com/"), $j->html); + } $j->embedurl = $embedurl; @@ -109,16 +120,18 @@ function oembed_fetch_url($embedurl, $no_rich_type = false){ //$j->height = $data["images"][0]["height"]; } - if (isset($data["title"])) - $j->title = $data["title"]; + if (isset($data["title"])) { + $j->title = $data["title"]; + } - if (isset($data["text"])) - $j->description = $data["text"]; + if (isset($data["text"])) { + $j->description = $data["text"]; + } if (is_array($data["images"])) { - $j->thumbnail_url = $data["images"][0]["src"]; - $j->thumbnail_width = $data["images"][0]["width"]; - $j->thumbnail_height = $data["images"][0]["height"]; + $j->thumbnail_url = $data["images"][0]["src"]; + $j->thumbnail_width = $data["images"][0]["width"]; + $j->thumbnail_height = $data["images"][0]["height"]; } } @@ -209,25 +222,34 @@ function oembed_format_object($j){ return mb_convert_encoding($ret, 'HTML-ENTITIES', mb_detect_encoding($ret)); } -function oembed_iframe($src,$width,$height) { - - if(! $width || strstr($width,'%')) - $width = '640'; - if(! $height || strstr($height,'%')) { - $height = '300'; - $resize = 'onload="resizeIframe(this);"'; - } else - $resize = ''; - - // try and leave some room for the description line. - $height = intval($height) + 80; - $width = intval($width) + 40; +/** + * @brief Generates the iframe HTML for an oembed attachment. + * + * Width and height are given by the remote, and are regularly too small for + * the generated iframe. + * + * The width is entirely discarded for the actual width of the post, while fixed + * height is used as a starting point before the inevitable resizing. + * + * Since the iframe is automatically resized on load, there are no need for ugly + * and impractical scrollbars. + * + * @param string $src Original remote URL to embed + * @param string $width + * @param string $height + * @return string formatted HTML + * + * @see oembed_format_object() + */ +function oembed_iframe($src, $width, $height) { + if (!$height || strstr($height,'%')) { + $height = '200'; + } + $width = '100%'; $a = get_app(); - - $s = $a->get_baseurl()."/oembed/".base64url_encode($src); - return ''; - + $s = $a->get_baseurl() . '/oembed/'.base64url_encode($src); + return ''; } diff --git a/include/onepoll.php b/include/onepoll.php index eb1045de1..951b87043 100644 --- a/include/onepoll.php +++ b/include/onepoll.php @@ -24,7 +24,6 @@ function onepoll_run(&$argv, &$argc){ unset($db_host, $db_user, $db_pass, $db_data); }; - require_once('include/session.php'); require_once('include/datetime.php'); require_once('include/items.php'); @@ -444,7 +443,7 @@ function onepoll_run(&$argv, &$argc){ $refs_arr[$x] = "'" . msgid2iri(str_replace(array('<','>',' '),array('','',''),dbesc($refs_arr[$x]))) . "'"; } $qstr = implode(',',$refs_arr); - $r = q("SELECT `uri` , `parent-uri` FROM `item` WHERE `uri` IN ( $qstr ) AND `uid` = %d LIMIT 1", + $r = q("SELECT `uri` , `parent-uri` FROM `item` USE INDEX (`uid_uri`) WHERE `uri` IN ($qstr) AND `uid` = %d LIMIT 1", intval($importer_uid) ); if(count($r)) diff --git a/include/ostatus.php b/include/ostatus.php index 7ac26846d..bcd8fd671 100644 --- a/include/ostatus.php +++ b/include/ostatus.php @@ -806,11 +806,20 @@ class ostatus { } // Get the parent + $parents = q("SELECT `item`.`id`, `item`.`parent`, `item`.`uri`, `item`.`contact-id`, `item`.`type`, + `item`.`verb`, `item`.`visible` FROM `term` + STRAIGHT_JOIN `item` AS `thritem` ON `thritem`.`parent` = `term`.`oid` + STRAIGHT_JOIN `item` ON `item`.`parent` = `thritem`.`parent` + WHERE `term`.`uid` = %d AND `term`.`otype` = %d AND `term`.`type` = %d AND `term`.`url` = '%s'", + intval($uid), intval(TERM_OBJ_POST), intval(TERM_CONVERSATION), dbesc($conversation_url)); + +/* 2016-10-23: The old query will be kept until we are sure that the query above is a good and fast replacement + $parents = q("SELECT `id`, `parent`, `uri`, `contact-id`, `type`, `verb`, `visible` FROM `item` WHERE `id` IN (SELECT `parent` FROM `item` WHERE `id` IN (SELECT `oid` FROM `term` WHERE `uid` = %d AND `otype` = %d AND `type` = %d AND `url` = '%s'))", intval($uid), intval(TERM_OBJ_POST), intval(TERM_CONVERSATION), dbesc($conversation_url)); - +*/ if ($parents) $parent = $parents[0]; elseif (count($item) > 0) { @@ -1961,9 +1970,23 @@ class ostatus { $last_update = 'now -30 days'; $check_date = datetime_convert('UTC','UTC',$last_update,'Y-m-d H:i:s'); + $authorid = get_contact($owner["url"], 0); - $items = q("SELECT STRAIGHT_JOIN `item`.*, `item`.`id` AS `item_id` FROM `item` - INNER JOIN `thread` ON `thread`.`iid` = `item`.`parent` + $items = q("SELECT `item`.*, `item`.`id` AS `item_id` FROM `item` USE INDEX (`uid_contactid_created`) + STRAIGHT_JOIN `thread` ON `thread`.`iid` = `item`.`parent` + WHERE `item`.`uid` = %d AND `item`.`contact-id` = %d AND + `item`.`author-id` = %d AND `item`.`created` > '%s' AND + NOT `item`.`deleted` AND NOT `item`.`private` AND + `thread`.`network` IN ('%s', '%s') + ORDER BY `item`.`created` DESC LIMIT 300", + intval($owner["uid"]), intval($owner["id"]), + intval($authorid), dbesc($check_date), + dbesc(NETWORK_OSTATUS), dbesc(NETWORK_DFRN)); + +/* 2016-10-23: The old query will be kept until we are sure that the query above is a good and fast replacement + + $items = q("SELECT `item`.*, `item`.`id` AS `item_id` FROM `item` + STRAIGHT_JOIN `thread` ON `thread`.`iid` = `item`.`parent` LEFT JOIN `item` AS `thritem` ON `thritem`.`uri`=`item`.`thr-parent` AND `thritem`.`uid`=`item`.`uid` WHERE `item`.`uid` = %d AND `item`.`received` > '%s' AND NOT `item`.`private` AND NOT `item`.`deleted` AND `item`.`allow_cid` = '' AND `item`.`allow_gid` = '' AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = '' @@ -1971,7 +1994,7 @@ class ostatus { OR (`item`.`network` = '%s' AND ((`thread`.`network` IN ('%s', '%s')) OR (`thritem`.`network` IN ('%s', '%s')))) AND `thread`.`mention`) AND ((`item`.`owner-link` IN ('%s', '%s') AND (`item`.`parent` = `item`.`id`)) OR (`item`.`author-link` IN ('%s', '%s'))) - ORDER BY `item`.`received` DESC + ORDER BY `item`.`id` DESC LIMIT 0, 300", intval($owner["uid"]), dbesc($check_date), dbesc(NETWORK_DFRN), //dbesc(NETWORK_OSTATUS), dbesc(NETWORK_OSTATUS), @@ -1981,7 +2004,7 @@ class ostatus { dbesc($owner["nurl"]), dbesc(str_replace("http://", "https://", $owner["nurl"])), dbesc($owner["nurl"]), dbesc(str_replace("http://", "https://", $owner["nurl"])) ); - +*/ $doc = new DOMDocument('1.0', 'utf-8'); $doc->formatOutput = true; diff --git a/include/pgettext.php b/include/pgettext.php index f72cbb08a..de7cdda9e 100644 --- a/include/pgettext.php +++ b/include/pgettext.php @@ -1,13 +1,7 @@ 0.8 - $langs = array_combine($lang_parse[1], $lang_parse[4]); - - // set default to 1 for any without q factor - foreach ($langs as $lang => $val) { - if ($val === '') $langs[$lang] = 1; - } - - // sort list based on value - arsort($langs, SORT_NUMERIC); - } - } - - if(isset($langs) && count($langs)) { - foreach ($langs as $lang => $v) { - if(file_exists("view/$lang") && is_dir("view/$lang")) { - $preferred = $lang; - break; + // go through the list of prefered languages and add a generic language + // for sub-linguas (e.g. de-ch will add de) if not already in array + for ($i=0; $i3 ) { + $dashpos = strpos($lang_parse[1][$i], '-'); + if (! in_array(substr($lang_parse[1][$i], 0, $dashpos), $lang_list ) ) { + $lang_list[] = strtolower(substr($lang_parse[1][$i], 0, $dashpos)); + } + } } } } + // check if we have translations for the preferred languages and pick the 1st that has + for ($i=0; $iconfig['system']['language'])) ? $a->config['system']['language'] : 'en'); }} @@ -112,8 +112,8 @@ function load_translation_table($lang) { } } - if(file_exists("view/$lang/strings.php")) { - include("view/$lang/strings.php"); + if(file_exists("view/lang/$lang/strings.php")) { + include("view/lang/$lang/strings.php"); } }} @@ -162,25 +162,31 @@ function string_plural_select_default($n) { }} -/** - * Return installed languages as associative array - * [ - * lang => lang, - * ... - * ] - */ -function get_avaiable_languages() { - $lang_choices = array(); - $langs = glob('view/*/strings.php'); /**/ - if(is_array($langs) && count($langs)) { - if(! in_array('view/en/strings.php',$langs)) - $langs[] = 'view/en/'; - asort($langs); - foreach($langs as $l) { - $t = explode("/",$l); - $lang_choices[$t[1]] = $t[1]; +/** + * @brief Return installed languages codes as associative array + * + * Scans the view/lang directory for the existence of "strings.php" files, and + * returns an alphabetical list of their folder names (@-char language codes). + * Adds the english language if it's missing from the list. + * + * Ex: array('de' => 'de', 'en' => 'en', 'fr' => 'fr', ...) + * + * @return array + */ +function get_available_languages() { + $langs = array(); + $strings_file_paths = glob('view/lang/*/strings.php'); + + if (is_array($strings_file_paths) && count($strings_file_paths)) { + if (!in_array('view/lang/en/strings.php', $strings_file_paths)) { + $strings_file_paths[] = 'view/lang/en/strings.php'; + } + asort($strings_file_paths); + foreach($strings_file_paths as $strings_file_path) { + $path_array = explode('/', $strings_file_path); + $langs[$path_array[2]] = $path_array[2]; } } - return $lang_choices; + return $langs; } diff --git a/include/photos.php b/include/photos.php index 93a565b51..2beb23ffa 100644 --- a/include/photos.php +++ b/include/photos.php @@ -25,3 +25,34 @@ function gps2Num($coordPart) { return floatval($parts[0]) / floatval($parts[1]); } + +/** + * @brief Fetch the photo albums that are available for a viewer + * + * The query in this function is cost intensive, so it is cached. + * + * @param int $uid User id of the photos + * @param bool $update Update the cache + * + * @return array Returns array of the photo albums + */ +function photo_albums($uid, $update = false) { + $sql_extra = permissions_sql($uid); + + $key = "photo_albums:".$uid.":".local_user().":".remote_user(); + $albums = Cache::get($key); + if (is_null($albums) OR $update) { + /// @todo This query needs to be renewed. It is really slow + // At this time we just store the data in the cache + $albums = qu("SELECT COUNT(DISTINCT `resource-id`) AS `total`, `album` + FROM `photo` USE INDEX (`uid_album_created`) + WHERE `uid` = %d AND `album` != '%s' AND `album` != '%s' $sql_extra + GROUP BY `album` ORDER BY `created` DESC", + intval($uid), + dbesc('Contact Photos'), + dbesc(t('Contact Photos')) + ); + Cache::set($key, $albums, CACHE_DAY); + } + return $albums; +} diff --git a/include/plaintext.php b/include/plaintext.php index 793f9935a..539ef020d 100644 --- a/include/plaintext.php +++ b/include/plaintext.php @@ -82,7 +82,7 @@ function get_attachment_data($body) { $data = array(); - if (!preg_match("/(.*)\[attachment(.*)\](.*?)\[\/attachment\](.*)/ism", $body, $match)) + if (!preg_match("/(.*)\[attachment(.*?)\](.*?)\[\/attachment\](.*)/ism", $body, $match)) return get_old_attachment_data($body); $attributes = $match[2]; diff --git a/include/plugin.php b/include/plugin.php index 2cb94b350..f6e4a7a88 100644 --- a/include/plugin.php +++ b/include/plugin.php @@ -205,37 +205,41 @@ function load_hooks() { * @param string $name of the hook to call * @param string|array &$data to transmit to the callback handler */ -if(! function_exists('call_hooks')) { function call_hooks($name, &$data = null) { $stamp1 = microtime(true); $a = get_app(); - #logger($name, LOGGER_ALL); + if (is_array($a->hooks) && array_key_exists($name, $a->hooks)) + foreach ($a->hooks[$name] as $hook) + call_single_hook($a, $name, $hook, $data); +} - if((is_array($a->hooks)) && (array_key_exists($name,$a->hooks))) { - foreach($a->hooks[$name] as $hook) { - // Don't run a theme's hook if the user isn't using the theme - if(strpos($hook[0], 'view/theme/') !== false && strpos($hook[0], 'view/theme/'.current_theme()) === false) - continue; +/** + * @brief Calls a single hook. + * + * @param string $name of the hook to call + * @param array $hook Hook data + * @param string|array &$data to transmit to the callback handler + */ +function call_single_hook($a, $name, $hook, &$data = null) { + // Don't run a theme's hook if the user isn't using the theme + if (strpos($hook[0], 'view/theme/') !== false && strpos($hook[0], 'view/theme/'.current_theme()) === false) + return; - @include_once($hook[0]); - if(function_exists($hook[1])) { - $func = $hook[1]; - //logger($name." => ".$hook[0].":".$func."()", LOGGER_DEBUG); - $func($a,$data); - } - else { - // remove orphan hooks - q("DELETE FROM `hook` WHERE `hook` = '%s' AND `file` = '%s' AND `function` = '%s'", - dbesc($name), - dbesc($hook[0]), - dbesc($hook[1]) - ); - } - } + @include_once($hook[0]); + if (function_exists($hook[1])) { + $func = $hook[1]; + $func($a, $data); + } else { + // remove orphan hooks + q("DELETE FROM `hook` WHERE `hook` = '%s' AND `file` = '%s' AND `function` = '%s'", + dbesc($name), + dbesc($hook[0]), + dbesc($hook[1]) + ); } -}} +} //check if an app_menu hook exist for plugin $name. //Return true if the plugin is an app @@ -534,3 +538,41 @@ function upgrade_bool_message($bbcode = false) { $x = upgrade_link($bbcode); return t('This action is not available under your subscription plan.') . (($x) ? ' ' . $x : '') ; } + +/** + * @brief Get the full path to relevant theme files by filename + * + * This function search in the theme directory (and if not present in global theme directory) + * if there is a directory with the file extension and for a file with the given + * filename. + * + * @param string $file Filename + * @param string $root Full root path + * @return string Path to the file or empty string if the file isn't found + */ +function theme_include($file, $root = '') { + // Make sure $root ends with a slash / if it's not blank + if($root !== '' && $root[strlen($root)-1] !== '/') + $root = $root . '/'; + $theme_info = $a->theme_info; + if(is_array($theme_info) AND array_key_exists('extends',$theme_info)) + $parent = $theme_info['extends']; + else + $parent = 'NOPATH'; + $theme = current_theme(); + $thname = $theme; + $ext = substr($file,strrpos($file,'.')+1); + $paths = array( + "{$root}view/theme/$thname/$ext/$file", + "{$root}view/theme/$parent/$ext/$file", + "{$root}view/$ext/$file", + ); + foreach($paths as $p) { + // strpos() is faster than strstr when checking if one string is in another (http://php.net/manual/en/function.strstr.php) + if(strpos($p,'NOPATH') !== false) + continue; + if(file_exists($p)) + return $p; + } + return ''; +} diff --git a/include/poller.php b/include/poller.php index a391ea8c7..2e036247e 100644 --- a/include/poller.php +++ b/include/poller.php @@ -10,8 +10,10 @@ if (!file_exists("boot.php") AND (sizeof($_SERVER["argv"]) != 0)) { chdir($directory); } +use \Friendica\Core\Config; +use \Friendica\Core\PConfig; + require_once("boot.php"); -require_once("dbm.php"); function poller_run(&$argv, &$argc){ global $a, $db; @@ -27,19 +29,16 @@ function poller_run(&$argv, &$argc){ unset($db_host, $db_user, $db_pass, $db_data); }; - $max_processes = get_config('system', 'max_processes_backend'); - if (intval($max_processes) == 0) - $max_processes = 5; + // Quit when in maintenance + if (get_config('system', 'maintenance', true)) + return; - $processlist = dbm::processlist(); - if ($processlist["list"] != "") { - logger("Processcheck: Processes: ".$processlist["amount"]." - Processlist: ".$processlist["list"], LOGGER_DEBUG); + $a->start_process(); - if ($processlist["amount"] > $max_processes) { - logger("Processcheck: Maximum number of processes for backend tasks (".$max_processes.") reached.", LOGGER_DEBUG); - return; - } - } + $mypid = getmypid(); + + if ($a->max_processes_reached()) + return; if (poller_max_connections_reached()) return; @@ -48,17 +47,17 @@ function poller_run(&$argv, &$argc){ return; // Checking the number of workers - if (poller_too_much_workers(1)) { + if (poller_too_much_workers()) { poller_kill_stale_workers(); return; } if(($argc <= 1) OR ($argv[1] != "no_cron")) { // Run the cron job that calls all other jobs - proc_run("php","include/cron.php"); + proc_run(PRIORITY_MEDIUM, "include/cron.php"); // Run the cronhooks job separately from cron for being able to use a different timing - proc_run("php","include/cronhooks.php"); + proc_run(PRIORITY_MEDIUM, "include/cronhooks.php"); // Cleaning dead processes poller_kill_stale_workers(); @@ -67,46 +66,59 @@ function poller_run(&$argv, &$argc){ sleep(4); // Checking number of workers - if (poller_too_much_workers(2)) + if (poller_too_much_workers()) return; + $cooldown = Config::get("system", "worker_cooldown", 0); + $starttime = time(); - while ($r = q("SELECT * FROM `workerqueue` WHERE `executed` = '0000-00-00 00:00:00' ORDER BY `created` LIMIT 1")) { + while ($r = poller_worker_process()) { - // Log the type of database processes - $processlist = dbm::processlist(); - if ($processlist["amount"] != "") { - logger("Processcheck: Processes: ".$processlist["amount"]." - Processlist: ".$processlist["list"], LOGGER_DEBUG); + // Quit when in maintenance + if (get_config('system', 'maintenance', true)) + return; - if ($processlist["amount"] > $max_processes) { - logger("Processcheck: Maximum number of processes for backend tasks (".$max_processes.") reached.", LOGGER_DEBUG); - return; - } - } + // Constantly check the number of parallel database processes + if ($a->max_processes_reached()) + return; // Constantly check the number of available database connections to let the frontend be accessible at any time if (poller_max_connections_reached()) return; // Count active workers and compare them with a maximum value that depends on the load - if (poller_too_much_workers(3)) + if (poller_too_much_workers()) return; - q("UPDATE `workerqueue` SET `executed` = '%s', `pid` = %d WHERE `id` = %d AND `executed` = '0000-00-00 00:00:00'", + $upd = q("UPDATE `workerqueue` SET `executed` = '%s', `pid` = %d WHERE `id` = %d AND `pid` = 0", dbesc(datetime_convert()), - intval(getmypid()), + intval($mypid), intval($r[0]["id"])); - // Assure that there are no tasks executed twice - $id = q("SELECT `id` FROM `workerqueue` WHERE `id` = %d AND `pid` = %d", - intval($r[0]["id"]), - intval(getmypid())); - if (!$id) { - logger("Queue item ".$r[0]["id"]." was executed multiple times - skip this execution", LOGGER_DEBUG); + if (!$upd) { + logger("Couldn't update queue entry ".$r[0]["id"]." - skip this execution", LOGGER_DEBUG); + q("COMMIT"); continue; } + // Assure that there are no tasks executed twice + $id = q("SELECT `pid`, `executed` FROM `workerqueue` WHERE `id` = %d", intval($r[0]["id"])); + if (!$id) { + logger("Queue item ".$r[0]["id"]." vanished - skip this execution", LOGGER_DEBUG); + q("COMMIT"); + continue; + } elseif ((strtotime($id[0]["executed"]) <= 0) OR ($id[0]["pid"] == 0)) { + logger("Entry for queue item ".$r[0]["id"]." wasn't stored - skip this execution", LOGGER_DEBUG); + q("COMMIT"); + continue; + } elseif ($id[0]["pid"] != $mypid) { + logger("Queue item ".$r[0]["id"]." is to be executed by process ".$id[0]["pid"]." and not by me (".$mypid.") - skip this execution", LOGGER_DEBUG); + q("COMMIT"); + continue; + } + q("COMMIT"); + $argv = json_decode($r[0]["parameter"]); $argc = count($argv); @@ -122,13 +134,26 @@ function poller_run(&$argv, &$argc){ require_once($include); - $funcname=str_replace(".php", "", basename($argv[0]))."_run"; + $funcname = str_replace(".php", "", basename($argv[0]))."_run"; if (function_exists($funcname)) { - logger("Process ".getmypid()." - ID ".$r[0]["id"].": ".$funcname." ".$r[0]["parameter"]); + logger("Process ".$mypid." - Prio ".$r[0]["priority"]." - ID ".$r[0]["id"].": ".$funcname." ".$r[0]["parameter"]); + + // For better logging create a new process id for every worker call + // But preserve the old one for the worker + $old_process_id = $a->process_id; + $a->process_id = uniqid("wrk", true); + $funcname($argv, $argc); - logger("Process ".getmypid()." - ID ".$r[0]["id"].": ".$funcname." - done"); + $a->process_id = $old_process_id; + + if ($cooldown > 0) { + logger("Process ".$mypid." - Prio ".$r[0]["priority"]." - ID ".$r[0]["id"].": ".$funcname." - in cooldown for ".$cooldown." seconds"); + sleep($cooldown); + } + + logger("Process ".$mypid." - Prio ".$r[0]["priority"]." - ID ".$r[0]["id"].": ".$funcname." - done"); q("DELETE FROM `workerqueue` WHERE `id` = %d", intval($r[0]["id"])); } else @@ -226,9 +251,9 @@ function poller_max_connections_reached() { * */ function poller_kill_stale_workers() { - $r = q("SELECT `pid`, `executed` FROM `workerqueue` WHERE `executed` != '0000-00-00 00:00:00'"); + $r = q("SELECT `pid`, `executed`, `priority`, `parameter` FROM `workerqueue` WHERE `executed` != '0000-00-00 00:00:00'"); - if (!is_array($r) || count($r) == 0) { + if (!dbm::is_result($r)) { // No processing here needed return; } @@ -239,27 +264,47 @@ function poller_kill_stale_workers() { intval($pid["pid"])); else { // Kill long running processes + + // Check if the priority is in a valid range + if (!in_array($pid["priority"], array(PRIORITY_CRITICAL, PRIORITY_HIGH, PRIORITY_MEDIUM, PRIORITY_LOW, PRIORITY_NEGLIGIBLE))) + $pid["priority"] = PRIORITY_MEDIUM; + + // Define the maximum durations + $max_duration_defaults = array(PRIORITY_CRITICAL => 360, PRIORITY_HIGH => 10, PRIORITY_MEDIUM => 60, PRIORITY_LOW => 180, PRIORITY_NEGLIGIBLE => 360); + $max_duration = $max_duration_defaults[$pid["priority"]]; + + $argv = json_decode($pid["parameter"]); + $argv[0] = basename($argv[0]); + + // How long is the process already running? $duration = (time() - strtotime($pid["executed"])) / 60; - if ($duration > 180) { - logger("Worker process ".$pid["pid"]." took more than 3 hours. It will be killed now."); + if ($duration > $max_duration) { + logger("Worker process ".$pid["pid"]." (".implode(" ", $argv).") took more than ".$max_duration." minutes. It will be killed now."); posix_kill($pid["pid"], SIGTERM); - // Question: If a process is stale: Should we remove it or should we reschedule it? - // By now we rescheduling it. It's maybe not the wisest decision? - q("UPDATE `workerqueue` SET `executed` = '0000-00-00 00:00:00', `pid` = 0 WHERE `pid` = %d", + // We killed the stale process. + // To avoid a blocking situation we reschedule the process at the beginning of the queue. + // Additionally we are lowering the priority. + q("UPDATE `workerqueue` SET `executed` = '0000-00-00 00:00:00', `created` = '%s', + `priority` = %d, `pid` = 0 WHERE `pid` = %d", + dbesc(datetime_convert()), + intval(PRIORITY_NEGLIGIBLE), intval($pid["pid"])); } else - logger("Worker process ".$pid["pid"]." now runs for ".round($duration)." minutes. That's okay.", LOGGER_DEBUG); + logger("Worker process ".$pid["pid"]." (".implode(" ", $argv).") now runs for ".round($duration)." of ".$max_duration." allowed minutes. That's okay.", LOGGER_DEBUG); } } -function poller_too_much_workers($stage) { +function poller_too_much_workers() { + $queues = get_config("system", "worker_queues"); if ($queues == 0) $queues = 4; + $maxqueues = $queues; + $active = poller_active_workers(); // Decrease the number of workers at higher load @@ -276,21 +321,154 @@ function poller_too_much_workers($stage) { $slope = $maxworkers / pow($maxsysload, $exponent); $queues = ceil($slope * pow(max(0, $maxsysload - $load), $exponent)); - logger("Current load stage ".$stage.": ".$load." - maximum: ".$maxsysload." - current queues: ".$active." - maximum: ".$queues, LOGGER_DEBUG); + $s = q("SELECT COUNT(*) AS `total` FROM `workerqueue` WHERE `executed` = '0000-00-00 00:00:00'"); + $entries = $s[0]["total"]; + if (Config::get("system", "worker_fastlane", false) AND ($queues > 0) AND ($entries > 0) AND ($active >= $queues)) { + $s = q("SELECT `priority` FROM `workerqueue` WHERE `executed` = '0000-00-00 00:00:00' ORDER BY `priority` LIMIT 1"); + $top_priority = $s[0]["priority"]; + + $s = q("SELECT `id` FROM `workerqueue` WHERE `priority` <= %d AND `executed` != '0000-00-00 00:00:00' LIMIT 1", + intval($top_priority)); + $high_running = dbm::is_result($s); + + if (!$high_running AND ($top_priority > PRIORITY_UNDEFINED) AND ($top_priority < PRIORITY_NEGLIGIBLE)) { + logger("There are jobs with priority ".$top_priority." waiting but none is executed. Open a fastlane.", LOGGER_DEBUG); + $queues = $active + 1; + } + } + + // Create a list of queue entries grouped by their priority + $running = array(PRIORITY_CRITICAL => 0, + PRIORITY_HIGH => 0, + PRIORITY_MEDIUM => 0, + PRIORITY_LOW => 0, + PRIORITY_NEGLIGIBLE => 0); + + $r = q("SELECT COUNT(*) AS `running`, `priority` FROM `process` INNER JOIN `workerqueue` ON `workerqueue`.`pid` = `process`.`pid` GROUP BY `priority`"); + if (dbm::is_result($r)) + foreach ($r AS $process) + $running[$process["priority"]] = $process["running"]; + + $processlist = ""; + $r = q("SELECT COUNT(*) AS `entries`, `priority` FROM `workerqueue` GROUP BY `priority`"); + if (dbm::is_result($r)) + foreach ($r as $entry) { + if ($processlist != "") + $processlist .= ", "; + $processlist .= $entry["priority"].":".$running[$entry["priority"]]."/".$entry["entries"]; + } + + logger("Load: ".$load."/".$maxsysload." - processes: ".$active."/".$entries." (".$processlist.") - maximum: ".$queues."/".$maxqueues, LOGGER_DEBUG); + + // Are there fewer workers running as possible? Then fork a new one. + if (!get_config("system", "worker_dont_fork") AND ($queues > ($active + 1)) AND ($entries > 1)) { + logger("Active workers: ".$active."/".$queues." Fork a new worker.", LOGGER_DEBUG); + $args = array("php", "include/poller.php", "no_cron"); + $a = get_app(); + $a->proc_run($args); + } } return($active >= $queues); } function poller_active_workers() { - $workers = q("SELECT COUNT(*) AS `workers` FROM `workerqueue` WHERE `executed` != '0000-00-00 00:00:00'"); + $workers = q("SELECT COUNT(*) AS `processes` FROM `process` WHERE `command` = 'poller.php'"); - return($workers[0]["workers"]); + return($workers[0]["processes"]); +} + +/** + * @brief Check if we should pass some slow processes + * + * When the active processes of the highest priority are using more than 2/3 + * of all processes, we let pass slower processes. + * + * @param string $highest_priority Returns the currently highest priority + * @return bool We let pass a slower process than $highest_priority + */ +function poller_passing_slow(&$highest_priority) { + + $highest_priority = 0; + + $r = q("SELECT `priority` + FROM `process` + INNER JOIN `workerqueue` ON `workerqueue`.`pid` = `process`.`pid` + WHERE `process`.`command` = 'poller.php'"); + + // No active processes at all? Fine + if (!dbm::is_result($r)) + return(false); + + $priorities = array(); + foreach ($r AS $line) + $priorities[] = $line["priority"]; + + // Should not happen + if (count($priorities) == 0) + return(false); + + $highest_priority = min($priorities); + + // The highest process is already the slowest one? + // Then we quit + if ($highest_priority == PRIORITY_NEGLIGIBLE) + return(false); + + $high = 0; + foreach ($priorities AS $priority) + if ($priority == $highest_priority) + ++$high; + + logger("Highest priority: ".$highest_priority." Total processes: ".count($priorities)." Count high priority processes: ".$high, LOGGER_DEBUG); + $passing_slow = (($high/count($priorities)) > (2/3)); + + if ($passing_slow) + logger("Passing slower processes than priority ".$highest_priority, LOGGER_DEBUG); + + return($passing_slow); +} + +/** + * @brief Returns the next worker process + * + * @return string SQL statement + */ + +function poller_worker_process() { + + q("START TRANSACTION;"); + + // Check if we should pass some low priority process + $highest_priority = 0; + + if (poller_passing_slow($highest_priority)) { + // Are there waiting processes with a higher priority than the currently highest? + $r = q("SELECT * FROM `workerqueue` + WHERE `executed` = '0000-00-00 00:00:00' AND `priority` < %d + ORDER BY `priority`, `created` LIMIT 1", dbesc($highest_priority)); + if (dbm::is_result($r)) + return $r; + + // Give slower processes some processing time + $r = q("SELECT * FROM `workerqueue` + WHERE `executed` = '0000-00-00 00:00:00' AND `priority` > %d + ORDER BY `priority`, `created` LIMIT 1", dbesc($highest_priority)); + } + + // If there is no result (or we shouldn't pass lower processes) we check without priority limit + if (($highest_priority == 0) OR !dbm::is_result($r)) + $r = q("SELECT * FROM `workerqueue` WHERE `executed` = '0000-00-00 00:00:00' ORDER BY `priority`, `created` LIMIT 1"); + + return $r; } if (array_search(__file__,get_included_files())===0){ - poller_run($_SERVER["argv"],$_SERVER["argc"]); - killme(); + poller_run($_SERVER["argv"],$_SERVER["argc"]); + + get_app()->end_process(); + + killme(); } ?> diff --git a/include/post_update.php b/include/post_update.php index 2bdfe1f6f..b2d682d72 100644 --- a/include/post_update.php +++ b/include/post_update.php @@ -8,11 +8,18 @@ */ function post_update() { - if (!post_update_1192()) + if (!post_update_1192()) { return; - - if (!post_update_1194()) + } + if (!post_update_1194()) { return; + } + if (!post_update_1198()) { + return; + } + if (!post_update_1206()) { + return; + } } /** @@ -138,4 +145,118 @@ function post_update_1194() { logger("Done", LOGGER_DEBUG); } + +/** + * @brief set the author-id and owner-id in all item entries + * + * This job has to be started multiple times until all entries are set. + * It isn't started in the update function since it would consume too much time and can be done in the background. + * + * @return bool "true" when the job is done + */ +function post_update_1198() { + + // Was the script completed? + if (get_config("system", "post_update_version") >= 1198) + return true; + + logger("Start", LOGGER_DEBUG); + + // Check if the first step is done (Setting "author-id" and "owner-id" in the item table) + $r = q("SELECT `author-link`, `owner-link`, `uid` FROM `item` WHERE `author-id` = 0 AND `owner-id` = 0 LIMIT 100"); + if (!$r) { + // Are there unfinished entries in the thread table? + $r = q("SELECT COUNT(*) AS `total` FROM `thread` + INNER JOIN `item` ON `item`.`id` =`thread`.`iid` + WHERE `thread`.`author-id` = 0 AND `thread`.`owner-id` = 0 AND + (`thread`.`uid` IN (SELECT `uid` from `user`) OR `thread`.`uid` = 0)"); + + if ($r AND ($r[0]["total"] == 0)) { + set_config("system", "post_update_version", 1198); + logger("Done", LOGGER_DEBUG); + return true; + } + + // Update the thread table from the item table + $r = q("UPDATE `thread` INNER JOIN `item` ON `item`.`id`=`thread`.`iid` + SET `thread`.`author-id` = `item`.`author-id`, + `thread`.`owner-id` = `item`.`owner-id` + WHERE `thread`.`author-id` = 0 AND `thread`.`owner-id` = 0 AND + (`thread`.`uid` IN (SELECT `uid` from `user`) OR `thread`.`uid` = 0)"); + + logger("Updated threads", LOGGER_DEBUG); + if (dbm::is_result($r)) { + set_config("system", "post_update_version", 1198); + logger("Done", LOGGER_DEBUG); + return true; + } + return false; + } + + logger("Query done", LOGGER_DEBUG); + + $item_arr = array(); + foreach ($r AS $item) { + $index = $item["author-link"]."-".$item["owner-link"]."-".$item["uid"]; + $item_arr[$index] = array("author-link" => $item["author-link"], + "owner-link" => $item["owner-link"], + "uid" => $item["uid"]); + } + + // Set the "gcontact-id" in the item table and add a new gcontact entry if needed + foreach($item_arr AS $item) { + $author_id = get_contact($item["author-link"], 0); + $owner_id = get_contact($item["owner-link"], 0); + + if ($author_id == 0) + $author_id = -1; + + if ($owner_id == 0) + $owner_id = -1; + + q("UPDATE `item` SET `author-id` = %d, `owner-id` = %d + WHERE `uid` = %d AND `author-link` = '%s' AND `owner-link` = '%s' + AND `author-id` = 0 AND `owner-id` = 0", + intval($author_id), intval($owner_id), intval($item["uid"]), + dbesc($item["author-link"]), dbesc($item["owner-link"])); + } + + logger("Updated items", LOGGER_DEBUG); + return false; +} + +/** + * @brief update the "last-item" field in the "self" contact + * + * This field avoids cost intensive calls in the admin panel and in "nodeinfo" + * + * @return bool "true" when the job is done + */ +function post_update_1206() { + // Was the script completed? + if (get_config("system", "post_update_version") >= 1206) + return true; + + logger("Start", LOGGER_DEBUG); + $r = q("SELECT `contact`.`id`, `contact`.`last-item`, + (SELECT MAX(`changed`) FROM `item` FORCE INDEX (`uid_wall_changed`) WHERE `wall` AND `uid` = `user`.`uid`) AS `lastitem_date` + FROM `user` + INNER JOIN `contact` ON `contact`.`uid` = `user`.`uid` AND `contact`.`self`"); + + if (!dbm::is_result($r)) { + return false; + } + foreach ($r AS $user) { + if (!empty($user["lastitem_date"]) AND ($user["lastitem_date"] > $user["last-item"])) { + q("UPDATE `contact` SET `last-item` = '%s' WHERE `id` = %d", + dbesc($user["lastitem_date"]), + intval($user["id"])); + } + } + + set_config("system", "post_update_version", 1206); + logger("Done", LOGGER_DEBUG); + return true; +} + ?> diff --git a/include/pubsubpublish.php b/include/pubsubpublish.php index 625eefc26..85637facb 100644 --- a/include/pubsubpublish.php +++ b/include/pubsubpublish.php @@ -2,60 +2,57 @@ require_once("boot.php"); require_once("include/ostatus.php"); -function handle_pubsubhubbub() { +use \Friendica\Core\Config; +use \Friendica\Core\PConfig; + +function handle_pubsubhubbub($id) { global $a, $db; - logger('start'); + $r = q("SELECT * FROM `push_subscriber` WHERE `id` = %d", intval($id)); + if (!$r) + return; + else + $rr = $r[0]; - // We'll push to each subscriber that has push > 0, - // i.e. there has been an update (set in notifier.php). + logger("Generate feed of user ".$rr['nickname']." to ".$rr['callback_url']." - last updated ".$rr['last_update'], LOGGER_DEBUG); - $r = q("SELECT * FROM `push_subscriber` WHERE `push` > 0"); + $params = ostatus::feed($a, $rr['nickname'], $rr['last_update']); + $hmac_sig = hash_hmac("sha1", $params, $rr['secret']); - foreach($r as $rr) { + $headers = array("Content-type: application/atom+xml", + sprintf("Link: <%s>;rel=hub,<%s>;rel=self", + $a->get_baseurl().'/pubsubhubbub', + $rr['topic']), + "X-Hub-Signature: sha1=".$hmac_sig); - logger("Generate feed for user ".$rr['nickname']." - last updated ".$rr['last_update'], LOGGER_DEBUG); + logger('POST '.print_r($headers, true)."\n".$params, LOGGER_DEBUG); - $params = ostatus::feed($a, $rr['nickname'], $rr['last_update']); - $hmac_sig = hash_hmac("sha1", $params, $rr['secret']); + post_url($rr['callback_url'], $params, $headers); + $ret = $a->get_curl_code(); - $headers = array("Content-type: application/atom+xml", - sprintf("Link: <%s>;rel=hub,<%s>;rel=self", - $a->get_baseurl().'/pubsubhubbub', - $rr['topic']), - "X-Hub-Signature: sha1=".$hmac_sig); + if ($ret >= 200 && $ret <= 299) { + logger('successfully pushed to '.$rr['callback_url']); - logger('POST '.print_r($headers, true)."\n".$params, LOGGER_DEBUG); + // set last_update to "now", and reset push=0 + $date_now = datetime_convert('UTC','UTC','now','Y-m-d H:i:s'); + q("UPDATE `push_subscriber` SET `push` = 0, last_update = '%s' WHERE id = %d", + dbesc($date_now), + intval($rr['id'])); - post_url($rr['callback_url'], $params, $headers); - $ret = $a->get_curl_code(); + } else { + logger('error when pushing to '.$rr['callback_url'].' HTTP: '.$ret); - if ($ret >= 200 && $ret <= 299) { - logger('successfully pushed to '.$rr['callback_url']); + // we use the push variable also as a counter, if we failed we + // increment this until some upper limit where we give up + $new_push = intval($rr['push']) + 1; - // set last_update to "now", and reset push=0 - $date_now = datetime_convert('UTC','UTC','now','Y-m-d H:i:s'); - q("UPDATE `push_subscriber` SET `push` = 0, last_update = '%s' WHERE id = %d", - dbesc($date_now), - intval($rr['id'])); + if ($new_push > 30) // OK, let's give up + $new_push = 0; - } else { - logger('error when pushing to '.$rr['callback_url'].' HTTP: '.$ret); - - // we use the push variable also as a counter, if we failed we - // increment this until some upper limit where we give up - $new_push = intval($rr['push']) + 1; - - if ($new_push > 30) // OK, let's give up - $new_push = 0; - - q("UPDATE `push_subscriber` SET `push` = %d WHERE id = %d", - $new_push, - intval($rr['id'])); - } + q("UPDATE `push_subscriber` SET `push` = %d WHERE id = %d", + $new_push, + intval($rr['id'])); } - - logger('done'); } @@ -89,10 +86,28 @@ function pubsubpublish_run(&$argv, &$argc){ if($argc > 1) $pubsubpublish_id = intval($argv[1]); - else - $pubsubpublish_id = 0; + else { + // We'll push to each subscriber that has push > 0, + // i.e. there has been an update (set in notifier.php). + $r = q("SELECT `id`, `callback_url` FROM `push_subscriber` WHERE `push` > 0"); - handle_pubsubhubbub(); + // Use the delivery interval that is also used for the notifier + $interval = Config::get("system", "delivery_interval", 2); + + // If we are using the worker we don't need a delivery interval + if (get_config("system", "worker")) + $interval = false; + + foreach($r as $rr) { + logger("Publish feed to ".$rr["callback_url"], LOGGER_DEBUG); + proc_run(PRIORITY_HIGH, 'include/pubsubpublish.php', $rr["id"]); + + if($interval) + @time_sleep_until(microtime(true) + (float) $interval); + } + } + + handle_pubsubhubbub($pubsubpublish_id); return; diff --git a/include/queue.php b/include/queue.php index 878c14973..ad7079e95 100644 --- a/include/queue.php +++ b/include/queue.php @@ -17,7 +17,6 @@ function queue_run(&$argv, &$argc){ unset($db_host, $db_user, $db_pass, $db_data); }; - require_once("include/session.php"); require_once("include/datetime.php"); require_once('include/items.php'); @@ -45,55 +44,57 @@ function queue_run(&$argv, &$argc){ $deadservers = array(); $serverlist = array(); - logger('queue: start'); + if (!$queue_id) { - // Handling the pubsubhubbub requests - proc_run('php','include/pubsubpublish.php'); + logger('queue: start'); - $interval = ((get_config('system','delivery_interval') === false) ? 2 : intval(get_config('system','delivery_interval'))); + // Handling the pubsubhubbub requests + proc_run(PRIORITY_HIGH,'include/pubsubpublish.php'); - // If we are using the worker we don't need a delivery interval - if (get_config("system", "worker")) - $interval = false; + $interval = ((get_config('system','delivery_interval') === false) ? 2 : intval(get_config('system','delivery_interval'))); - $r = q("select * from deliverq where 1"); - if($r) { - foreach($r as $rr) { - logger('queue: deliverq'); - proc_run('php','include/delivery.php',$rr['cmd'],$rr['item'],$rr['contact']); - if($interval) + // If we are using the worker we don't need a delivery interval + if (get_config("system", "worker")) + $interval = false; + + $r = q("select * from deliverq where 1"); + if($r) { + foreach($r as $rr) { + logger('queue: deliverq'); + proc_run(PRIORITY_HIGH,'include/delivery.php',$rr['cmd'],$rr['item'],$rr['contact']); + if($interval) @time_sleep_until(microtime(true) + (float) $interval); + } } - } - $r = q("SELECT `queue`.*, `contact`.`name`, `contact`.`uid` FROM `queue` - INNER JOIN `contact` ON `queue`.`cid` = `contact`.`id` - WHERE `queue`.`created` < UTC_TIMESTAMP() - INTERVAL 3 DAY"); - if($r) { - foreach($r as $rr) { - logger('Removing expired queue item for ' . $rr['name'] . ', uid=' . $rr['uid']); - logger('Expired queue data :' . $rr['content'], LOGGER_DATA); + $r = q("SELECT `queue`.*, `contact`.`name`, `contact`.`uid` FROM `queue` + INNER JOIN `contact` ON `queue`.`cid` = `contact`.`id` + WHERE `queue`.`created` < UTC_TIMESTAMP() - INTERVAL 3 DAY"); + if($r) { + foreach($r as $rr) { + logger('Removing expired queue item for ' . $rr['name'] . ', uid=' . $rr['uid']); + logger('Expired queue data :' . $rr['content'], LOGGER_DATA); + } + q("DELETE FROM `queue` WHERE `created` < UTC_TIMESTAMP() - INTERVAL 3 DAY"); } - q("DELETE FROM `queue` WHERE `created` < UTC_TIMESTAMP() - INTERVAL 3 DAY"); - } - - if($queue_id) { - $r = q("SELECT `id` FROM `queue` WHERE `id` = %d LIMIT 1", - intval($queue_id) - ); - } - else { // For the first 12 hours we'll try to deliver every 15 minutes // After that, we'll only attempt delivery once per hour. $r = q("SELECT `id` FROM `queue` WHERE ((`created` > UTC_TIMESTAMP() - INTERVAL 12 HOUR && `last` < UTC_TIMESTAMP() - INTERVAL 15 MINUTE) OR (`last` < UTC_TIMESTAMP() - INTERVAL 1 HOUR)) ORDER BY `cid`, `created`"); + } else { + logger('queue: start for id '.$queue_id); + + $r = q("SELECT `id` FROM `queue` WHERE `id` = %d LIMIT 1", + intval($queue_id) + ); } - if(! $r){ + + if (!$r){ return; } - if(! $queue_id) + if (!$queue_id) call_hooks('queue_predeliver', $a, $r); @@ -107,16 +108,17 @@ function queue_run(&$argv, &$argc){ // queue_predeliver hooks may have changed the queue db details, // so check again if this entry still needs processing - if($queue_id) { + if($queue_id) $qi = q("SELECT * FROM `queue` WHERE `id` = %d LIMIT 1", - intval($queue_id) - ); - } - else { + intval($queue_id)); + elseif (get_config("system", "worker")) { + logger('Call queue for id '.$q_item['id']); + proc_run(PRIORITY_LOW, "include/queue.php", $q_item['id']); + continue; + } else $qi = q("SELECT * FROM `queue` WHERE `id` = %d AND `last` < UTC_TIMESTAMP() - INTERVAL 15 MINUTE ", - intval($q_item['id']) - ); - } + intval($q_item['id'])); + if(! count($qi)) continue; diff --git a/include/salmon.php b/include/salmon.php index 988c542e2..5e9c4fa61 100644 --- a/include/salmon.php +++ b/include/salmon.php @@ -1,15 +1,14 @@ user['username'] . '"; id="' . $a->user['nickname'] .'"'); if($login_initial || $login_refresh) { - $l = get_browser_language(); - q("UPDATE `user` SET `login_date` = '%s', `language` = '%s' WHERE `uid` = %d", + q("UPDATE `user` SET `login_date` = '%s' WHERE `uid` = %d", dbesc(datetime_convert()), - dbesc($l), intval($_SESSION['uid']) ); diff --git a/include/session.php b/include/session.php index 8f9d64606..31024060f 100644 --- a/include/session.php +++ b/include/session.php @@ -1,76 +1,111 @@ get(get_app()->get_hostname().":session:".$id); + if (!is_bool($data)) { + return $data; + } + logger("no data for session $id", LOGGER_TRACE); + return ''; + } + + $r = q("SELECT `data` FROM `session` WHERE `sid`= '%s'", dbesc($id)); + + if (dbm::is_result($r)) { $session_exists = true; return $r[0]['data']; } else { logger("no data for session $id", LOGGER_TRACE); } - return ''; -}} -if(! function_exists('ref_session_write')) { -function ref_session_write ($id,$data) { + return ''; +} + +/** + * @brief Standard PHP session write callback + * + * This callback updates the DB-stored session data and/or the expiration depending + * on the case. Uses the $session_expire global for existing session, 5 minutes + * for newly created session. + * + * @global bool $session_exists Whether a session with the given id already exists + * @global int $session_expire Session expiration delay in seconds + * @param string $id Session ID with format: [a-z0-9]{26} + * @param string $data Serialized session data + * @return boolean Returns false if parameters are missing, true otherwise + */ +function ref_session_write($id, $data) { global $session_exists, $session_expire; - if(! $id || ! $data) { + if (!$id || !$data) { return false; } $expire = time() + $session_expire; $default_expire = time() + 300; - if($session_exists) { - $r = q("UPDATE `session` - SET `data` = '%s' - WHERE `data` != '%s' AND `sid` = '%s'", - dbesc($data), dbesc($data), dbesc($id)); + $memcache = cache::memcache(); + if (is_object($memcache)) { + $memcache->set(get_app()->get_hostname().":session:".$id, $data, MEMCACHE_COMPRESSED, $expire); + return true; + } + if ($session_exists) { $r = q("UPDATE `session` - SET `expire` = '%s' - WHERE `expire` != '%s' AND `sid` = '%s'", - dbesc($expire), dbesc($expire), dbesc($id)); - } else + SET `data` = '%s', `expire` = '%s' + WHERE `sid` = '%s' + AND (`data` != '%s' OR `expire` != '%s')", + dbesc($data), dbesc($expire), dbesc($id), dbesc($data), dbesc($expire)); + } else { $r = q("INSERT INTO `session` SET `sid` = '%s', `expire` = '%s', `data` = '%s'", dbesc($id), dbesc($default_expire), dbesc($data)); + } return true; -}} +} -if(! function_exists('ref_session_close')) { function ref_session_close() { return true; -}} +} + +function ref_session_destroy($id) { + $memcache = cache::memcache(); + + if (is_object($memcache)) { + $memcache->delete(get_app()->get_hostname().":session:".$id); + return true; + } -if(! function_exists('ref_session_destroy')) { -function ref_session_destroy ($id) { q("DELETE FROM `session` WHERE `sid` = '%s'", dbesc($id)); - return true; -}} -if(! function_exists('ref_session_gc')) { + return true; +} + function ref_session_gc($expire) { q("DELETE FROM `session` WHERE `expire` < %d", dbesc(time())); + return true; -}} +} $gc_probability = 50; @@ -78,7 +113,8 @@ ini_set('session.gc_probability', $gc_probability); ini_set('session.use_only_cookies', 1); ini_set('session.cookie_httponly', 1); -if (!get_config('system', 'disable_database_session')) +if (!get_config('system', 'disable_database_session')) { session_set_save_handler('ref_session_open', 'ref_session_close', 'ref_session_read', 'ref_session_write', 'ref_session_destroy', 'ref_session_gc'); +} diff --git a/include/socgraph.php b/include/socgraph.php index 3718f8230..349869c40 100644 --- a/include/socgraph.php +++ b/include/socgraph.php @@ -9,6 +9,7 @@ require_once('include/datetime.php'); require_once("include/Scrape.php"); +require_once("include/network.php"); require_once("include/html2bbcode.php"); require_once("include/Contact.php"); require_once("include/Photo.php"); @@ -51,7 +52,7 @@ function poco_load($cid,$uid = 0,$zcid = 0,$url = null) { if(! $url) return; - $url = $url . (($uid) ? '/@me/@all?fields=displayName,urls,photos,updated,network,aboutMe,currentLocation,tags,gender,generation' : '?fields=displayName,urls,photos,updated,network,aboutMe,currentLocation,tags,gender,generation') ; + $url = $url . (($uid) ? '/@me/@all?fields=displayName,urls,photos,updated,network,aboutMe,currentLocation,tags,gender,contactType,generation' : '?fields=displayName,urls,photos,updated,network,aboutMe,currentLocation,tags,gender,contactType,generation') ; logger('poco_load: ' . $url, LOGGER_DEBUG); @@ -85,6 +86,7 @@ function poco_load($cid,$uid = 0,$zcid = 0,$url = null) { $about = ''; $keywords = ''; $gender = ''; + $contact_type = -1; $generation = 0; $name = $entry->displayName; @@ -132,6 +134,9 @@ function poco_load($cid,$uid = 0,$zcid = 0,$url = null) { foreach($entry->tags as $tag) $keywords = implode(", ", $tag); + if(isset($entry->contactType) AND ($entry->contactType >= 0)) + $contact_type = $entry->contactType; + // If you query a Friendica server for its profiles, the network has to be Friendica /// TODO It could also be a Redmatrix server //if ($uid == 0) @@ -139,6 +144,9 @@ function poco_load($cid,$uid = 0,$zcid = 0,$url = null) { poco_check($profile_url, $name, $network, $profile_photo, $about, $location, $gender, $keywords, $connect_url, $updated, $generation, $cid, $uid, $zcid); + $gcontact = array("url" => $profile_url, "contact-type" => $contact_type, "generation" => $generation); + update_gcontact($gcontact); + // Update the Friendica contacts. Diaspora is doing it via a message. (See include/diaspora.php) // Deactivated because we now update Friendica contacts in dfrn.php //if (($location != "") OR ($about != "") OR ($keywords != "") OR ($gender != "")) @@ -1067,8 +1075,14 @@ function all_friends($uid,$cid,$start = 0, $limit = 80) { function suggestion_query($uid, $start = 0, $limit = 80) { - if(! $uid) + if (!$uid) { return array(); + } + + $list = Cache::get("suggestion_query:".$uid.":".$start.":".$limit); + if (!is_null($list)) { + return $list; + } $network = array(NETWORK_DFRN); @@ -1079,9 +1093,10 @@ function suggestion_query($uid, $start = 0, $limit = 80) { $network[] = NETWORK_OSTATUS; $sql_network = implode("', '", $network); - //$sql_network = "'".$sql_network."', ''"; $sql_network = "'".$sql_network."'"; + /// @todo This query is really slow + // By now we cache the data for five minutes $r = q("SELECT count(glink.gcid) as `total`, gcontact.* from gcontact INNER JOIN `glink` ON `glink`.`gcid` = `gcontact`.`id` where uid = %d and not gcontact.nurl in ( select nurl from contact where uid = %d ) @@ -1100,8 +1115,10 @@ function suggestion_query($uid, $start = 0, $limit = 80) { intval($limit) ); - if(count($r) && count($r) >= ($limit -1)) + if (count($r) && count($r) >= ($limit -1)) { + Cache::set("suggestion_query:".$uid.":".$start.":".$limit, $r, CACHE_FIVE_MINUTES); return $r; + } $r2 = q("SELECT gcontact.* FROM gcontact INNER JOIN `glink` ON `glink`.`gcid` = `gcontact`.`id` @@ -1130,6 +1147,7 @@ function suggestion_query($uid, $start = 0, $limit = 80) { while (sizeof($list) > ($limit)) array_pop($list); + Cache::set("suggestion_query:".$uid.":".$start.":".$limit, $list, CACHE_FIVE_MINUTES); return $list; } @@ -1235,7 +1253,7 @@ function poco_discover($complete = false) { } // Fetch all users from the other server - $url = $server["poco"]."/?fields=displayName,urls,photos,updated,network,aboutMe,currentLocation,tags,gender,generation"; + $url = $server["poco"]."/?fields=displayName,urls,photos,updated,network,aboutMe,currentLocation,tags,gender,contactType,generation"; logger("Fetch all users from the server ".$server["nurl"], LOGGER_DEBUG); @@ -1254,7 +1272,7 @@ function poco_discover($complete = false) { $updatedSince = date("Y-m-d H:i:s", time() - $timeframe * 86400); // Fetch all global contacts from the other server (Not working with Redmatrix and Friendica versions before 3.3) - $url = $server["poco"]."/@global?updatedSince=".$updatedSince."&fields=displayName,urls,photos,updated,network,aboutMe,currentLocation,tags,gender,generation"; + $url = $server["poco"]."/@global?updatedSince=".$updatedSince."&fields=displayName,urls,photos,updated,network,aboutMe,currentLocation,tags,gender,contactType,generation"; $success = false; @@ -1302,7 +1320,7 @@ function poco_discover_server_users($data, $server) { logger("Fetch contacts for the user ".$username." from the server ".$server["nurl"], LOGGER_DEBUG); // Fetch all contacts from a given user from the other server - $url = $server["poco"]."/".$username."/?fields=displayName,urls,photos,updated,network,aboutMe,currentLocation,tags,gender,generation"; + $url = $server["poco"]."/".$username."/?fields=displayName,urls,photos,updated,network,aboutMe,currentLocation,tags,gender,contactType,generation"; $retdata = z_fetch_url($url); if ($retdata["success"]) @@ -1329,6 +1347,7 @@ function poco_discover_server($data, $default_generation = 0) { $about = ''; $keywords = ''; $gender = ''; + $contact_type = -1; $generation = $default_generation; $name = $entry->displayName; @@ -1373,6 +1392,9 @@ function poco_discover_server($data, $default_generation = 0) { if(isset($entry->generation) AND ($entry->generation > 0)) $generation = ++$entry->generation; + if(isset($entry->contactType) AND ($entry->contactType >= 0)) + $contact_type = $entry->contactType; + if(isset($entry->tags)) foreach($entry->tags as $tag) $keywords = implode(", ", $tag); @@ -1382,6 +1404,10 @@ function poco_discover_server($data, $default_generation = 0) { logger("Store profile ".$profile_url, LOGGER_DEBUG); poco_check($profile_url, $name, $network, $profile_photo, $about, $location, $gender, $keywords, $connect_url, $updated, $generation, 0, 0, 0); + + $gcontact = array("url" => $profile_url, "contact-type" => $contact_type, "generation" => $generation); + update_gcontact($gcontact); + logger("Done for profile ".$profile_url, LOGGER_DEBUG); } } @@ -1506,7 +1532,7 @@ function get_gcontact_id($contact) { if ($doprobing) { logger("Last Contact: ". $last_contact_str." - Last Failure: ".$last_failure_str." - Checking: ".$contact["url"], LOGGER_DEBUG); - proc_run('php', 'include/gprobe.php', bin2hex($contact["url"])); + proc_run(PRIORITY_LOW, 'include/gprobe.php', bin2hex($contact["url"])); } if ((count($r) > 1) AND ($gcontact_id > 0) AND ($contact["url"] != "")) @@ -1533,7 +1559,7 @@ function update_gcontact($contact) { return false; $r = q("SELECT `name`, `nick`, `photo`, `location`, `about`, `addr`, `generation`, `birthday`, `gender`, `keywords`, - `hide`, `nsfw`, `network`, `alias`, `notify`, `server_url`, `connect`, `updated`, `url` + `contact-type`, `hide`, `nsfw`, `network`, `alias`, `notify`, `server_url`, `connect`, `updated`, `url` FROM `gcontact` WHERE `id` = %d LIMIT 1", intval($gcontact_id)); @@ -1613,20 +1639,20 @@ function update_gcontact($contact) { } if ($update) { - logger("Update gcontact for ".$contact["url"]." Callstack: ".App::callstack(), LOGGER_DEBUG); + logger("Update gcontact for ".$contact["url"], LOGGER_DEBUG); q("UPDATE `gcontact` SET `photo` = '%s', `name` = '%s', `nick` = '%s', `addr` = '%s', `network` = '%s', `birthday` = '%s', `gender` = '%s', `keywords` = '%s', `hide` = %d, `nsfw` = %d, - `alias` = '%s', `notify` = '%s', `url` = '%s', + `contact-type` = %d, `alias` = '%s', `notify` = '%s', `url` = '%s', `location` = '%s', `about` = '%s', `generation` = %d, `updated` = '%s', `server_url` = '%s', `connect` = '%s' WHERE `nurl` = '%s' AND (`generation` = 0 OR `generation` >= %d)", dbesc($contact["photo"]), dbesc($contact["name"]), dbesc($contact["nick"]), dbesc($contact["addr"]), dbesc($contact["network"]), dbesc($contact["birthday"]), dbesc($contact["gender"]), dbesc($contact["keywords"]), intval($contact["hide"]), - intval($contact["nsfw"]), dbesc($contact["alias"]), dbesc($contact["notify"]), - dbesc($contact["url"]), dbesc($contact["location"]), dbesc($contact["about"]), - intval($contact["generation"]), dbesc($contact["updated"]), + intval($contact["nsfw"]), intval($contact["contact-type"]), dbesc($contact["alias"]), + dbesc($contact["notify"]), dbesc($contact["url"]), dbesc($contact["location"]), + dbesc($contact["about"]), intval($contact["generation"]), dbesc($contact["updated"]), dbesc($contact["server_url"]), dbesc($contact["connect"]), dbesc(normalise_link($contact["url"])), intval($contact["generation"])); @@ -1643,13 +1669,14 @@ function update_gcontact($contact) { q("UPDATE `contact` SET `name` = '%s', `nick` = '%s', `addr` = '%s', `network` = '%s', `bd` = '%s', `gender` = '%s', - `keywords` = '%s', `alias` = '%s', `url` = '%s', - `location` = '%s', `about` = '%s' + `keywords` = '%s', `alias` = '%s', `contact-type` = %d, + `url` = '%s', `location` = '%s', `about` = '%s' WHERE `id` = %d", dbesc($contact["name"]), dbesc($contact["nick"]), dbesc($contact["addr"]), dbesc($contact["network"]), dbesc($contact["birthday"]), dbesc($contact["gender"]), - dbesc($contact["keywords"]), dbesc($contact["alias"]), dbesc($contact["url"]), - dbesc($contact["location"]), dbesc($contact["about"]), intval($r[0]["id"])); + dbesc($contact["keywords"]), dbesc($contact["alias"]), intval($contact["contact-type"]), + dbesc($contact["url"]), dbesc($contact["location"]), dbesc($contact["about"]), + intval($r[0]["id"])); } } diff --git a/include/text.php b/include/text.php index c57af1feb..83eab1927 100644 --- a/include/text.php +++ b/include/text.php @@ -581,14 +581,14 @@ function get_intltext_template($s) { if(! isset($lang)) $lang = 'en'; - if(file_exists("view/$lang$engine/$s")) { + if(file_exists("view/lang/$lang$engine/$s")) { $stamp1 = microtime(true); - $content = file_get_contents("view/$lang$engine/$s"); + $content = file_get_contents("view/lang/$lang$engine/$s"); $a->save_timestamp($stamp1, "file"); return $content; - } elseif(file_exists("view/en$engine/$s")) { + } elseif(file_exists("view/lang/en$engine/$s")) { $stamp1 = microtime(true); - $content = file_get_contents("view/en$engine/$s"); + $content = file_get_contents("view/lang/en$engine/$s"); $a->save_timestamp($stamp1, "file"); return $content; } else { @@ -678,11 +678,13 @@ function attribute_contains($attr,$s) { return false; }} -if(! function_exists('logger')) { +if (! function_exists('logger')) { /* setup int->string log level map */ $LOGGER_LEVELS = array(); /** + * @brief Logs the given message at the given log level + * * log levels: * LOGGER_NORMAL (default) * LOGGER_TRACE @@ -692,46 +694,63 @@ $LOGGER_LEVELS = array(); * * @global App $a * @global dba $db + * @global array $LOGGER_LEVELS * @param string $msg * @param int $level */ -function logger($msg,$level = 0) { - // turn off logger in install mode +function logger($msg, $level = 0) { global $a; global $db; global $LOGGER_LEVELS; - if(($a->module == 'install') || (! ($db && $db->connected))) return; - - if (count($LOGGER_LEVELS)==0){ - foreach (get_defined_constants() as $k=>$v){ - if (substr($k,0,7)=="LOGGER_") - $LOGGER_LEVELS[$v] = substr($k,7,7); - } + // turn off logger in install mode + if ( + $a->module == 'install' + || ! ($db && $db->connected) + ) { + return; } $debugging = get_config('system','debugging'); - $loglevel = intval(get_config('system','loglevel')); $logfile = get_config('system','logfile'); + $loglevel = intval(get_config('system','loglevel')); - if((! $debugging) || (! $logfile) || ($level > $loglevel)) + if ( + ! $debugging + || ! $logfile + || $level > $loglevel + ) { return; + } + + if (count($LOGGER_LEVELS) == 0) { + foreach (get_defined_constants() as $k => $v) { + if (substr($k, 0, 7) == "LOGGER_") { + $LOGGER_LEVELS[$v] = substr($k, 7, 7); + } + } + } + + $process_id = session_id(); + + if ($process_id == '') { + $process_id = get_app()->process_id; + } $callers = debug_backtrace(); - $logline = sprintf("%s@%s\t[%s]:%s:%s:%s\t%s\n", - datetime_convert(), - session_id(), - $LOGGER_LEVELS[$level], - basename($callers[0]['file']), - $callers[0]['line'], - $callers[1]['function'], - $msg - ); + $logline = sprintf("%s@%s\t[%s]:%s:%s:%s\t%s\n", + datetime_convert(), + $process_id, + $LOGGER_LEVELS[$level], + basename($callers[0]['file']), + $callers[0]['line'], + $callers[1]['function'], + $msg + ); $stamp1 = microtime(true); @file_put_contents($logfile, $logline, FILE_APPEND); $a->save_timestamp($stamp1, "file"); - return; }} @@ -750,71 +769,75 @@ function activity_match($haystack,$needle) { }} -if(! function_exists('get_tags')) { /** - * Pull out all #hashtags and @person tags from $s; + * @brief Pull out all #hashtags and @person tags from $string. + * * We also get @person@domain.com - which would make * the regex quite complicated as tags can also * end a sentence. So we'll run through our results * and strip the period from any tags which end with one. * Returns array of tags found, or empty array. * - * @param string $s - * @return array + * @param string $string Post content + * @return array List of tag and person names */ -function get_tags($s) { +function get_tags($string) { $ret = array(); // Convert hashtag links to hashtags - $s = preg_replace("/#\[url\=([^\[\]]*)\](.*?)\[\/url\]/ism", "#$2", $s); + $string = preg_replace('/#\[url\=([^\[\]]*)\](.*?)\[\/url\]/ism', '#$2', $string); // ignore anything in a code block - $s = preg_replace('/\[code\](.*?)\[\/code\]/sm','',$s); + $string = preg_replace('/\[code\](.*?)\[\/code\]/sm', '', $string); // Force line feeds at bbtags - $s = str_replace(array("[", "]"), array("\n[", "]\n"), $s); + $string = str_replace(array('[', ']'), array("\n[", "]\n"), $string); // ignore anything in a bbtag - $s = preg_replace('/\[(.*?)\]/sm','',$s); + $string = preg_replace('/\[(.*?)\]/sm', '', $string); // Match full names against @tags including the space between first and last // We will look these up afterward to see if they are full names or not recognisable. - if(preg_match_all('/(@[^ \x0D\x0A,:?]+ [^ \x0D\x0A@,:?]+)([ \x0D\x0A@,:?]|$)/',$s,$match)) { - foreach($match[1] as $mtch) { - if(strstr($mtch,"]")) { + if (preg_match_all('/(@[^ \x0D\x0A,:?]+ [^ \x0D\x0A@,:?]+)([ \x0D\x0A@,:?]|$)/', $string, $matches)) { + foreach ($matches[1] as $match) { + if (strstr($match, ']')) { // we might be inside a bbcode color tag - leave it alone continue; } - if(substr($mtch,-1,1) === '.') - $ret[] = substr($mtch,0,-1); - else - $ret[] = $mtch; + if (substr($match, -1, 1) === '.') { + $ret[] = substr($match, 0, -1); + } else { + $ret[] = $match; + } } } // Otherwise pull out single word tags. These can be @nickname, @first_last // and #hash tags. - if(preg_match_all('/([!#@][^ \x0D\x0A,;:?]+)([ \x0D\x0A,;:?]|$)/',$s,$match)) { - foreach($match[1] as $mtch) { - if(strstr($mtch,"]")) { + if (preg_match_all('/([!#@][^\^ \x0D\x0A,;:?]+)([ \x0D\x0A,;:?]|$)/', $string, $matches)) { + foreach($matches[1] as $match) { + if (strstr($match, ']')) { // we might be inside a bbcode color tag - leave it alone continue; } - if(substr($mtch,-1,1) === '.') - $mtch = substr($mtch,0,-1); + if (substr($match, -1, 1) === '.') { + $match = substr($match,0,-1); + } // ignore strictly numeric tags like #1 - if((strpos($mtch,'#') === 0) && ctype_digit(substr($mtch,1))) + if ((strpos($match, '#') === 0) && ctype_digit(substr($match, 1))) { continue; + } // try not to catch url fragments - if(strpos($s,$mtch) && preg_match('/[a-zA-z0-9\/]/',substr($s,strpos($s,$mtch)-1,1))) + if (strpos($string, $match) && preg_match('/[a-zA-z0-9\/]/', substr($string, strpos($string, $match) - 1, 1))) { continue; - $ret[] = $mtch; + } + $ret[] = $match; } } return $ret; -}} +} // @@ -867,7 +890,8 @@ function contact_block() { $micropro = Null; } else { - $r = q("SELECT `id`, `uid`, `addr`, `url`, `name`, `micro`, `network` FROM `contact` + // Splitting the query in two parts makes it much faster + $r = q("SELECT `id` FROM `contact` WHERE `uid` = %d AND NOT `self` AND NOT `blocked` AND NOT `pending` AND NOT `hidden` AND NOT `archive` AND `network` IN ('%s', '%s', '%s') ORDER BY RAND() LIMIT %d", @@ -877,11 +901,19 @@ function contact_block() { dbesc(NETWORK_DIASPORA), intval($shown) ); - if(count($r)) { - $contacts = sprintf( tt('%d Contact','%d Contacts', $total),$total); - $micropro = Array(); - foreach($r as $rr) { - $micropro[] = micropro($rr,true,'mpfriend'); + if ($r) { + $contacts = ""; + foreach ($r AS $contact) + $contacts[] = $contact["id"]; + + $r = q("SELECT `id`, `uid`, `addr`, `url`, `name`, `thumb`, `network` FROM `contact` WHERE `id` IN (%s)", + dbesc(implode(",", $contacts))); + if(count($r)) { + $contacts = sprintf( tt('%d Contact','%d Contacts', $total),$total); + $micropro = Array(); + foreach($r as $rr) { + $micropro[] = micropro($rr,true,'mpfriend'); + } } } } @@ -901,20 +933,28 @@ function contact_block() { }} -if(! function_exists('micropro')) { /** + * @brief Format contacts as picture links or as texxt links * - * @param array $contact - * @param boolean $redirect - * @param string $class - * @param boolean $textmode - * @return string #FIXME: remove html + * @param array $contact Array with contacts which contains an array with + * int 'id' => The ID of the contact + * int 'uid' => The user ID of the user who owns this data + * string 'name' => The name of the contact + * string 'url' => The url to the profile page of the contact + * string 'addr' => The webbie of the contact (e.g.) username@friendica.com + * string 'network' => The network to which the contact belongs to + * string 'thumb' => The contact picture + * string 'click' => js code which is performed when clicking on the contact + * @param boolean $redirect If true try to use the redir url if it's possible + * @param string $class CSS class for the + * @param boolean $textmode If true display the contacts as text links + * if false display the contacts as picture links + + * @return string Formatted html */ function micropro($contact, $redirect = false, $class = '', $textmode = false) { - if($class) - $class = ' ' . $class; - + // Use the contact URL if no address is available if ($contact["addr"] == "") $contact["addr"] = $contact["url"]; @@ -933,26 +973,23 @@ function micropro($contact, $redirect = false, $class = '', $textmode = false) { else $url = zrl($url); } - $click = ((x($contact,'click')) ? ' onclick="' . $contact['click'] . '" ' : ''); - if($click) + + // If there is some js available we don't need the url + if(x($contact,'click')) $url = ''; - if($textmode) { - return '' . "\r\n"; - } - else { - return '
    ' . $contact['name']
-			. '
    ' . "\r\n"; - } -}} + + return replace_macros(get_markup_template(($textmode)?'micropro_txt.tpl':'micropro_img.tpl'),array( + '$click' => (($contact['click']) ? $contact['click'] : ''), + '$class' => $class, + '$url' => $url, + '$photo' => proxy_url($contact['thumb'], false, PROXY_SIZE_THUMB), + '$name' => $contact['name'], + 'title' => $contact['name'] . ' [' . $contact['addr'] . ']', + '$parkle' => $sparkle, + '$redir' => $redir, + + )); +} @@ -969,7 +1006,7 @@ function search($s,$id='search-box',$url='search',$save = false, $aside = true) $a = get_app(); $values = array( - '$s' => $s, + '$s' => htmlspecialchars($s), '$id' => $id, '$action_url' => $url, '$search_label' => t('Search'), @@ -2068,7 +2105,7 @@ function formatBytes($bytes, $precision = 2) { /** * @brief translate and format the networkname of a contact - * + * * @param string $network * Networkname of the contact (e.g. dfrn, rss and so on) * @param sting $url @@ -2087,3 +2124,54 @@ function format_network_name($network, $url = 0) { } } + +/** + * @brief Syntax based code highlighting for popular languages. + * @param string $s Code block + * @param string $lang Programming language + * @return string Formated html + */ +function text_highlight($s,$lang) { + if($lang === 'js') + $lang = 'javascript'; + + if(! strpos('Text_Highlighter',get_include_path())) { + set_include_path(get_include_path() . PATH_SEPARATOR . 'library/Text_Highlighter'); + } + + require_once('library/Text_Highlighter/Text/Highlighter.php'); + require_once('library/Text_Highlighter/Text/Highlighter/Renderer/Html.php'); + $options = array( + 'numbers' => HL_NUMBERS_LI, + 'tabsize' => 4, + ); + + $tag_added = false; + $s = trim(html_entity_decode($s,ENT_COMPAT)); + $s = str_replace(" ","\t",$s); + + // The highlighter library insists on an opening php tag for php code blocks. If + // it isn't present, nothing is highlighted. So we're going to see if it's present. + // If not, we'll add it, and then quietly remove it after we get the processed output back. + + if($lang === 'php') { + if(strpos('setRenderer($renderer); + $o = $hl->highlight($s); + $o = str_replace([" ","\n"],["    ",''],$o); + + if($tag_added) { + $b = substr($o,0,strpos($o,'
  • ')); + $e = substr($o,strpos($o,'
  • ')); + $o = $b . $e; + } + + return('' . $o . ''); +} diff --git a/include/threads.php b/include/threads.php index 0320eaa01..3d9b656ea 100644 --- a/include/threads.php +++ b/include/threads.php @@ -1,7 +1,9 @@ qfetch()) + while ($message = $db->qfetch()) { add_thread($message["id"]); + add_shadow_thread($message["id"]); + } $db->qclose(); } @@ -225,7 +284,7 @@ function update_shadow_copy() { logger("fetched messages: ".count($messages)); while ($message = $db->qfetch()) - add_thread($message["iid"], true); + add_shadow_thread($message["iid"]); $db->qclose(); } diff --git a/include/uimport.php b/include/uimport.php index bd271e91a..937a16710 100644 --- a/include/uimport.php +++ b/include/uimport.php @@ -287,7 +287,7 @@ function import_account(&$a, $file) { } // send relocate messages - proc_run('php', 'include/notifier.php', 'relocate', $newuid); + proc_run(PRIORITY_HIGH, 'include/notifier.php', 'relocate', $newuid); info(t("Done. You can now login with your username and password")); goaway($a->get_baseurl() . "/login"); diff --git a/include/xml.php b/include/xml.php index 39a9102de..3bb376aba 100644 --- a/include/xml.php +++ b/include/xml.php @@ -27,8 +27,11 @@ class xml { foreach ($namespaces AS $nskey => $nsvalue) $key .= " xmlns".($nskey == "" ? "":":").$nskey.'="'.$nsvalue.'"'; - $root = new SimpleXMLElement("<".$key."/>"); - self::from_array($value, $root, $remove_header, $namespaces, false); + if (is_array($value)) { + $root = new SimpleXMLElement("<".$key."/>"); + self::from_array($value, $root, $remove_header, $namespaces, false); + } else + $root = new SimpleXMLElement("<".$key.">".xmlify($value).""); $dom = dom_import_simplexml($root)->ownerDocument; $dom->formatOutput = true; @@ -44,7 +47,33 @@ class xml { } foreach($array as $key => $value) { - if ($key == "@attributes") { + if (!isset($element) AND isset($xml)) + $element = $xml; + + if (is_integer($key)) { + if (isset($element)) { + if (is_scalar($value)) { + $element[0] = $value; + } else { + /// @todo: handle nested array values + } + } + continue; + } + + $element_parts = explode(":", $key); + if ((count($element_parts) > 1) AND isset($namespaces[$element_parts[0]])) + $namespace = $namespaces[$element_parts[0]]; + elseif (isset($namespaces[""])) { + $namespace = $namespaces[""]; + } else + $namespace = NULL; + + // Remove undefined namespaces from the key + if ((count($element_parts) > 1) AND is_null($namespace)) + $key = $element_parts[1]; + + if (substr($key, 0, 11) == "@attributes") { if (!isset($element) OR !is_array($value)) continue; @@ -55,18 +84,12 @@ class xml { else $namespace = NULL; - $element->addAttribute ($attr_key, $attr_value, $namespace); + $element->addAttribute($attr_key, $attr_value, $namespace); } continue; } - $element_parts = explode(":", $key); - if ((count($element_parts) > 1) AND isset($namespaces[$element_parts[0]])) - $namespace = $namespaces[$element_parts[0]]; - else - $namespace = NULL; - if (!is_array($value)) $element = $xml->addChild($key, xmlify($value), $namespace); elseif (is_array($value)) { @@ -131,11 +154,11 @@ class xml { /** * @brief Convert an XML document to a normalised, case-corrected array * used by webfinger - * + * * @param object $xml_element The XML document - * @param integer $recursion_depth recursion counter for internal use - default 0 + * @param integer $recursion_depth recursion counter for internal use - default 0 * internal use, recursion counter - * + * * @return array | sring The array from the xml element or the string */ public static function element_to_array($xml_element, &$recursion_depth=0) { @@ -181,23 +204,23 @@ class xml { /** * @brief Convert the given XML text to an array in the XML structure. - * + * * xml::to_array() will convert the given XML text to an array in the XML structure. * Link: http://www.bin-co.com/php/scripts/xml2array/ * Portions significantly re-written by mike@macgirvin.com for Friendica * (namespaces, lowercase tags, get_attribute default changed, more...) - * + * * Examples: $array = xml::to_array(file_get_contents('feed.xml')); * $array = xml::to_array(file_get_contents('feed.xml', true, 1, 'attribute')); - * + * * @param object $contents The XML text * @param boolean $namespaces True or false include namespace information * in the returned array as array elements. - * @param integer $get_attributes 1 or 0. If this is 1 the function will get the attributes as well as the tag values - + * @param integer $get_attributes 1 or 0. If this is 1 the function will get the attributes as well as the tag values - * this results in a different array structure in the return value. * @param string $priority Can be 'tag' or 'attribute'. This will change the way the resulting * array sturcture. For 'tag', the tags are given more importance. - * + * * @return array The parsed XML in an array form. Use print_r() to see the resulting array structure. */ public static function to_array($contents, $namespaces = true, $get_attributes=1, $priority = 'attribute') { diff --git a/index.php b/index.php index 943763a51..13c3f6318 100644 --- a/index.php +++ b/index.php @@ -19,6 +19,10 @@ require_once('object/BaseObject.php'); $a = new App; BaseObject::set_app($a); +// We assume that the index.php is called by a frontend process +// The value is set to "true" by default in boot.php +$a->backend = false; + /** * * Load the configuration file which contains our DB credentials. @@ -41,7 +45,6 @@ $install = ((file_exists('.htconfig.php') && filesize('.htconfig.php')) ? false */ require_once("include/dba.php"); -require_once("include/dbm.php"); if(!$install) { $db = new dba($db_host, $db_user, $db_pass, $db_data, $install); @@ -54,36 +57,13 @@ if(!$install) { load_config('config'); load_config('system'); - $processlist = dbm::processlist(); - if ($processlist["list"] != "") { - - logger("Processcheck: Processes: ".$processlist["amount"]." - Processlist: ".$processlist["list"], LOGGER_DEBUG); - - $max_processes = get_config('system', 'max_processes_frontend'); - if (intval($max_processes) == 0) - $max_processes = 20; - - if ($processlist["amount"] > $max_processes) { - logger("Processcheck: Maximum number of processes for frontend tasks (".$max_processes.") reached.", LOGGER_DEBUG); - system_unavailable(); - } + if ($a->max_processes_reached() OR $a->maxload_reached()) { + header($_SERVER["SERVER_PROTOCOL"].' 503 Service Temporarily Unavailable'); + header('Retry-After: 120'); + header('Refresh: 120; url='.$a->get_baseurl()."/".$a->query_string); + die("System is currently unavailable. Please try again later"); } - $maxsysload_frontend = intval(get_config('system','maxloadavg_frontend')); - if($maxsysload_frontend < 1) - $maxsysload_frontend = 50; - - $load = current_load(); - if($load) { - if($load > $maxsysload_frontend) { - logger('system: load ' . $load . ' too high. Service Temporarily Unavailable.'); - header($_SERVER["SERVER_PROTOCOL"].' 503 Service Temporarily Unavailable'); - header('Retry-After: 300'); - die("System is currently unavailable. Please try again later"); - } - } - - if (get_config('system','force_ssl') AND ($a->get_scheme() == "http") AND (intval(get_config('system','ssl_policy')) == SSL_POLICY_FULL) AND (substr($a->get_baseurl(), 0, 8) == "https://")) { @@ -114,9 +94,12 @@ load_translation_table($lang); * */ -$stamp1 = microtime(true); -session_start(); -$a->save_timestamp($stamp1, "parser"); +// Exclude the backend processes from the session management +if (!$a->is_backend()) { + $stamp1 = microtime(true); + session_start(); + $a->save_timestamp($stamp1, "parser"); +} /** * Language was set earlier, but we can over-ride it in the session. @@ -126,7 +109,7 @@ if (x($_SESSION,'authenticated') && !x($_SESSION,'language')) { // we didn't loaded user data yet, but we need user language $r = q("SELECT language FROM user WHERE uid=%d", intval($_SESSION['uid'])); $_SESSION['language'] = $lang; - if (count($r)>0) $_SESSION['language'] = $r[0]['language']; + if (dbm::is_result($r)) $_SESSION['language'] = $r[0]['language']; } if((x($_SESSION,'language')) && ($_SESSION['language'] !== $lang)) { @@ -506,7 +489,8 @@ if (isset($_GET["mode"]) AND ($_GET["mode"] == "raw")) { echo substr($target->saveHTML(), 6, -8); - session_write_close(); + if (!$a->is_backend()) + session_write_close(); exit; } @@ -517,21 +501,20 @@ $profile = $a->profile; header("X-Friendica-Version: ".FRIENDICA_VERSION); header("Content-type: text/html; charset=utf-8"); - -if (isset($_GET["mode"]) AND ($_GET["mode"] == "minimal")) { - //$page['content'] = substr($target->saveHTML(), 6, -8)."\n\n". - // '
    '."\n\n"; - - require "view/minimal.php"; -} else { - $template = 'view/theme/' . current_theme() . '/' - . ((x($a->page,'template')) ? $a->page['template'] : 'default' ) . '.php'; - - if(file_exists($template)) - require_once($template); - else - require_once(str_replace('theme/' . current_theme() . '/', '', $template)); +// We use $_GET["mode"] for special page templates. So we will check if we have +// to load another page template than the default one +// The page templates are located in /view/php/ or in the theme directory +if (isset($_GET["mode"])) { + $template = theme_include($_GET["mode"].'.php'); } -session_write_close(); +// If there is no page template use the default page template +if(!$template) { + $template = theme_include("default.php"); +} + +require_once($template); + +if (!$a->is_backend()) + session_write_close(); exit; diff --git a/js/autocomplete.js b/js/autocomplete.js index 802047872..d0c770cc4 100644 --- a/js/autocomplete.js +++ b/js/autocomplete.js @@ -41,7 +41,7 @@ function contact_search(term, callback, backend_url, type, mode) { postdata['conversation'] = conv_id[0]; if(mode !== null) - postdata['mode'] = mode; + postdata['smode'] = mode; $.ajax({ diff --git a/js/main.js b/js/main.js index 2d0b2da36..008d84b0b 100644 --- a/js/main.js +++ b/js/main.js @@ -5,36 +5,38 @@ function _resizeIframe(obj, desth) { var h = obj.style.height; - var ch = obj.contentWindow.document.body.scrollHeight + 'px'; - if (h==ch) { + var ch = obj.contentWindow.document.body.scrollHeight; + if (h == (ch + 'px')) { return; } - //console.log("_resizeIframe", obj, desth, ch); - if (desth!=ch) { - setTimeout(_resizeIframe, 500, obj, ch); - } else { - if (ch>0) obj.style.height = ch; - setTimeout(_resizeIframe, 1000, obj, ch); + if (desth == ch && ch>0) { + obj.style.height = ch + 'px'; + } + setTimeout(_resizeIframe, 100, obj, ch); + } + + function openClose(theID) { + if(document.getElementById(theID).style.display == "block") { + document.getElementById(theID).style.display = "none" + } + else { + document.getElementById(theID).style.display = "block" } } - function openClose(theID) { - if(document.getElementById(theID).style.display == "block") { - document.getElementById(theID).style.display = "none" - } - else { - document.getElementById(theID).style.display = "block" - } - } + function openMenu(theID) { + document.getElementById(theID).style.display = "block" + } - function openMenu(theID) { - document.getElementById(theID).style.display = "block" - } - - function closeMenu(theID) { - document.getElementById(theID).style.display = "none" - } + function closeMenu(theID) { + document.getElementById(theID).style.display = "none" + } + function decodeHtml(html) { + var txt = document.createElement("textarea"); + txt.innerHTML = html; + return txt.value; + } var src = null; @@ -125,6 +127,7 @@ function close_last_popup_menu() { if(last_popup_menu) { last_popup_menu.hide(); + last_popup_menu.off('click', function(e) {e.stopPropagation()}); last_popup_button.removeClass("selected"); last_popup_menu = null; last_popup_button = null; @@ -147,6 +150,7 @@ last_popup_button = null; } else { last_popup_menu = menu; + last_popup_menu.on('click', function(e) {e.stopPropagation()}); last_popup_button = parent; $('#nav-notifications-menu').perfectScrollbar('update'); } @@ -259,13 +263,13 @@ var html = notifications_tpl.format( e.attr('href'), // {0} // link to the source e.attr('photo'), // {1} // photo of the contact - text, // {2} // preformatet text (autor + text) + text, // {2} // preformatted text (autor + text) e.attr('date'), // {3} // date of notification (time ago) - seenclass, // {4} // vistiting status of the notification - new Date(e.attr('timestamp')*1000), // {5} //date of notification + seenclass, // {4} // visited status of the notification + new Date(e.attr('timestamp')*1000), // {5} // date of notification e.attr('url'), // {6} // profile url of the contact - e.text().format(""), // {7} // clean status text - contact // {8} //preformatat author (name + profile url) + e.text().format(contact), // {7} // preformatted html (text including author profile url) + '' // {8} // Deprecated ); nnm.append(html); }); @@ -275,7 +279,7 @@ if (notification_lastitem!== null && notification_id > notification_lastitem) { if (getNotificationPermission()==="granted") { var notification = new Notification(document.title, { - body: e.text().replace('→ ','').format(e.attr('name')), + body: decodeHtml(e.text().replace('→ ','').format(e.attr('name'))), icon: e.attr('photo'), }); notification['url'] = e.attr('href'); @@ -513,7 +517,7 @@ $(".comment-edit-form textarea").editor_autocomplete(baseurl+"/acl"); /* autocomplete bbcode */ $(".comment-edit-form textarea").bbco_autocomplete('bbcode'); - + // setup videos, since VideoJS won't take care of any loaded via AJAX if(typeof videojs != 'undefined') videojs.autoSetup(); }); diff --git a/library/Text_Highlighter/README b/library/Text_Highlighter/README new file mode 100644 index 000000000..88f71aed2 --- /dev/null +++ b/library/Text_Highlighter/README @@ -0,0 +1,455 @@ +# $Id$ + +Introduction +============ + +Text_Highlighter is a class for syntax highlighting. The main idea is to +simplify creation of subclasses implementing syntax highlighting for +particular language. Subclasses do not implement any new functioanality, they +just provide syntax highlighting rules. The rules sources are in XML format. +To create a highlighter for a language, there is no need to code a new class +manually. Simply describe the rules in XML file and use Text_Highlighter_Generator +to create a new class. + + +This document does not contain a formal description of API - it is very +simple, and I believe providing some examples of code is sufficient. + + +Highlighter XML source +====================== + +Basics +------ + +Creating a new syntax highlighter begins with describing the highlighting +rules. There are two basic elements: block and region. A block is just a +portion of text matching a regular expression and highlighted with a single +color. Keyword is an example of a block. A region is defined by two regular +expressions: one for start of region, and another for the end. The main +difference from a block is that a region can contain blocks and regions +(including same-named regions). An example of a region is a group of +statements enclosed in curly brackets (this is used in many languages, for +example PHP and C). Also, characters matching start and end of a region may be +highlighted with their own color, and region contents with another. + +Blocks and regions may be declared as contained. Contained blocks and regions +can only appear inside regions. If a region or a block is not declared as +contained, it can appear both on top level and inside regions. Block or region +declared as not-contained can only appear on top level. + +For any region, a list of blocks and regions that can appear inside this +region can be specified. + +In this document, the term "color group" is used. Chunks of text assigned to +same color group will be highlighted with same color. Note that in versions +prior 0.5.0 color goups were refered as CSS classes, but since 0.5.0 not only +HTML output is supported, so "color group" is more appropriate term. + +Elements +-------- + +The toplevel element is . Attribute lang is required and denotes +the name of the language. Its value is used as a part of generated class name, +and must only contain letters, digits and underscores. Optional attribute +case, when given value yes, makes the language case sensitive (default is case +insensitive). Allowed subelements are: + + * : Information about the authors of the file. + : Information about a single author of the file. (May be used + multiple times, one per author.) + - name="...": Author's name. Required. + - email="...": Author's email address. Optional. + + * : Default color group. + - innerGroup="...": color group name. Required. + + * : Region definition + - name="...": Region name. Required. + - innerGroup="...": Default color group of region contents. Required. + - delimGroup="...": color group of start and end of region. Optional, + defaults to value of innerGroup attribute. + - start="...", end="...": Regular expression matching start and end + of region. Required. Regular expression delimiters are optional, but + if you need to specify delimiter, use /. The only case when the + delimiters are needed, is specifying regular expression modifiers, + such as m or U. Examples: \/\* or /$/m. + - contained="yes": Marks region as contained. + - never-contained="yes": Marks region as not-contained. + - : Elements allowed inside this region. + - all="yes" Region can contain any other region or block + (except not-contained). May be used multiple times. + - Do not allow certain regions or blocks. + - region="..." Name of region not allowed within + current region. + - block="..." Name of block not allowed within + current region. + - region="..." Name of region allowed within current region. + - block="..." Name of block allowed within current region. + - Only allow this region within certain regions. May be + used multiple times. + - block="..." Name of parent region + + * : Block definition + - name="...": Block name. Required. + - innerGroup="...": color group of block contents. Optional. If not + specified, color group of parent region or default color group will be + used. One would only want to omit this attribute if there are + keyword groups (see below) inherited from this block, and no special + highlighting should apply when the block does not match the keyword. + - match="..." Regular expression matching the block. Required. + Regular expression delimiters are optional, but if you need to + specify delimiter, use /. The only case when the delimiters are + needed, is specifying regular expression modifiers, such as m or U. + Examples: #|\/\/ or /$/m. + - contained="yes": Marks block as contained. + - never-contained="yes": Marks block as not-contained. + - Only allow this block within certain regions. May be used + multiple times. + - block="..." Name of parent region + - multiline="yes": Marks block as multi-line. By default, whole + blocks are assumed to reside in a single line. This make the things + faster. If you need to declare a multi-line block, use this + attribute. + - : Assigns another color group to a part of the block that + matched a subpattern. + - index="n": Subpattern index. Required. + - innerGroup="...": color group name. Required. + + This is an example from CSS highlighter: the measure is matched as + a whole, but the measurement units are highlighted with different + color. + + + + + + + * : Keyword group definition. Keyword groups are useful when you + want to highlight some words that match a condition for a block with a + different color. Keywords are defined with literal match, not regular + expressions. For example, you have a block named identifier matching a + general identifier, and want to highlight reserved words (which match + this block as well) with different color. You inherit a keyword group + "reserved" from "identifier" block. + - name="...": Keyword group. Required. + - ifdef="...", ifndef="..." : Conditional declaration. See + "Conditions" below. + - inherits="...": Inherited block name. Required. + - innerGroup="...": color group of keyword group. Required. + - case="yes|no": Overrides case-sensitivity of the language. + Optional, defaults to global value. + - : Single keyword definition. + - match="..." The keyword. Note: this is not a regular + expression, but literal match (possibly case insensitive). + +Note that for BC reasons element partClass is alias for partGroup, and +attributes innerClass and delimClass are aliases of innerGroup and +delimGroup, respectively. + + +Conditions +---------- + +Conditional declarations allow enabling or disabling certain highlighting +rules at runtime. For example, Java highlighter has a very big list of +keywords matching Java standard classes. Finding a match in this list can take +much time. For that reason, corresponding keyword group is declared with +"ifdef" attribute : + + + + + + ... + ... + + + + + +This keyword group will be only enabled when "java.builtins" is passed as an +element of "defines" option: + + $options = array( + 'defines' => array( + 'java.builtins', + ), + 'numbers' => HL_NUMBERS_TABLE, + ); + $highlighter = Text_Highlighter::factory('java', $options); + +"ifndef" attribute has reverse meaning. + +Currently, "ifdef" and "ifndef" attributes are only supported for +tag. + + + +Class generation +================ + +Creating XML description of highlighting rules is the most complicated part of +the process. To generate the class, you need just few lines of code: + + generate(); + $generator->saveCode('PHP.php'); + ?> + + + +Command-line class generation tool +================================== + +Example from previous section looks pretty simple, but it does not handle any +errors which may occur during parsing of XML source. The package provides a +command-line script to make generation of classes even more simple, and takes +care of possible errors. It is called generate (on Unix/Linux) or generate.bat +(on Windows). This script is able to process multiple files in one run, and +also to process XML from standard input and write generated code to standard +output. + + Usage: + generate options + + Options: + -x filename, --xml=filename + source XML file. Multiple input files can be specified, in which + case each -x option must be followed by -p unless -d is specified + Defaults to stdin + -p filename, --php=filename + destination PHP file. Defaults to stdout. If specied multiple times, + each -p must follow -x + -d dirname, --dir=dirname + Default destination directory. File names will be taken from XML input + ("lang" attribute of tag) + -h, --help + This help + +Examples + + Read from php.xml, write to PHP.php + + generate -x php.xml -p PHP.php + + Read from php.xml, write to standard output + + generate -x php.xml + + Read from php.xml, write to PHP.php, read from xml.xml, write to XML.php + + generate -x php.xml -p PHP.php -x xml.xml -p XML.php + + Read from php.xml, write to /some/dir/PHP.php, read from xml.xml, write to + /some/dir/XML.php (assuming that xml.xml contains , and + php.xml contains ) + + generate -x php.xml -x xml.xml -d /some/dir/ + + + +Renderers +========= + +Introduction +------------ + +Text_Highlighter supports renderes. Using renderers, you can get output in +different formats. Two renderers are included in the package: + + - HTML renderer. Generates HTML output. A style sheet should be linked to + the document to display colored text + + - Console renderer. Can be used to output highlighted text to + color-capable terminals, either directly or trough less -r + + +Renderers API +------------- + +Renderers are subclasses of Text_Highlighter_Renderer. Renderer should +override at least two methods - acceptToken and getOutput. Overriding other +methods is optional, depending on the nature of renderer's output and details +of implementation. + + string reset() + resets renderer state. This method is called every time before a new + source file is highlighted. + + string preprocess(string $code) + preprocesses code. Can be used, for example, to normalize whitespace + before highlighting. Returns preprocessed string. + + void acceptToken(string $group, string $content) + the core method of the renderer. Highlighter passes chunks of text to + this method in $content, and color group in $group + + void finalize() + signals the renderer that no more tokens are available. + + mixed getOutput() + returns generated output. + + +Setting renderer options +-------------------------------- + +Renderers accept an optional argument to their constructor - options array. +Elements of this array are renderer-specific. + +HTML renderer +------------- + +HTML renderer produces HTML output with optional line numbering. The renderer +itself does not provide information about actual colors of highlighted text. +Instead, is used, where XXX is replaced with color group +name (hl-var, hl-string, etc.). It is up to you to create a CSS stylesheet. +If 'use_language' option with value evaluating to true was passed, class names +will be formatted as "LANG-hl-XXX", where LANG is language name as defined in +highlighter XML source ("lang" attribute of tag) in lower case. + +There are 3 special CSS classes: + + hl-main - this class applies to whole output or right table column, + depending on 'numbers' option + hl-gutter - applies to left column in table + hl-table - applies to whole table + +HTML renderer accepts following options (each being optional): + + * numbers - line numbering style. + 0 - no numbering (default) + HL_NUMBERS_LI - use
      for line numbering + HL_NUMBERS_TABLE - create a 2-column table, with line numbers in left + column and highlighted text in right column + + * tabsize - tabulation size. Defaults to 4 + + Example: + + require_once 'Text/Highlighter/Renderer/Html.php'; + $options = array( + 'numbers' => HL_NUMBERS_LI, + 'tabsize' => 8, + ); + $renderer = new Text_Highlighter_Renderer_HTML($options); + +Console renderer +---------------- + +Console renderer produces output for displaying on a color-capable terminal, +either directly or through less -r, using ANSI escape sequences. By default, +this renderer only highlights most common color groups. Additional colors +can be specified using 'colors' option. This renderer also accepts 'numbers' +option - a boolean value, and 'tabsize' option. + + Example : + + require_once 'Text/Highlighter/Renderer/Console.php'; + $colors = array( + 'prepro' => "\033[35m", + 'types' => "\033[32m", + ); + $options = array( + 'numbers' => true, + 'tabsize' => 8, + 'colors' => $colors, + ); + $renderer = new Text_Highlighter_Renderer_Console($options); + + +ANSI color escape sequences have the following format: + + ESC[#;#;....;#m + +where ESC is character with ASCII code 27 (033 octal, 0x1B hexadecimal). # is +one of the following: + + 0 for normal display + 1 for bold on + 4 underline (mono only) + 5 blink on + 7 reverse video on + 8 nondisplayed (invisible) + 30 black foreground + 31 red foreground + 32 green foreground + 33 yellow foreground + 34 blue foreground + 35 magenta foreground + 36 cyan foreground + 37 white foreground + 40 black background + 41 red background + 42 green background + 43 yellow background + 44 blue background + 45 magenta background + 46 cyan background + 47 white background + + +How to use Text_Highlighter class +================================= + +Creating a highlighter object +----------------------------- + +To create a highlighter for a certain language, use Text_Highlighter::factory() +static method: + + require_once 'Text/Highlighter.php'; + $hl = Text_Highlighter::factory('php'); + + +Setting a renderer +------------------ + +Actual output is produced by a renderer. + + require_once 'Text/Highlighter.php'; + require_once 'Text/Highlighter/Renderer/Html.php'; + $options = array( + 'numbers' => HL_NUMBERS_LI, + 'tabsize' => 8, + ); + $renderer = new Text_Highlighter_Renderer_HTML($options); + $hl = Text_Highlighter::factory('php'); + $hl->setRenderer($renderer); + +Note that for BC reasons, it is possible to use highlighter without setting a +renderer. If no renderer is set, HTML renderer will be used by default. In +this case, you should pass options as second parameter to factory method. The +following example works exactly as previous one: + + require_once 'Text/Highlighter.php'; + $options = array( + 'numbers' => HL_NUMBERS_LI, + 'tabsize' => 8, + ); + $hl = Text_Highlighter::factory('php', $options); + + +Getting output +-------------- + +And finally, do the highlighting and get the output: + + require_once 'Text/Highlighter.php'; + require_once 'Text/Highlighter/Renderer/Html.php'; + $options = array( + 'numbers' => HL_NUMBERS_LI, + 'tabsize' => 8, + ); + $renderer = new Text_Highlighter_Renderer_HTML($options); + $hl = Text_Highlighter::factory('php'); + $hl->setRenderer($renderer); + $html = $hl->highlight(file_get_contents('example.php')); + +# vim: set autoindent tabstop=4 shiftwidth=4 softtabstop=4 tw=78: */ + diff --git a/library/Text_Highlighter/TODO b/library/Text_Highlighter/TODO new file mode 100644 index 000000000..77a148b8a --- /dev/null +++ b/library/Text_Highlighter/TODO @@ -0,0 +1,12 @@ +# $Id$ + +Major issues to solve (but I currently have no idea how) : + +- speedup highlighting process + +- switching between highlighters depending on context, for example : + PHP code -> HTML -> (JavaScript|CSS) + + +# vim: set autoindent tabstop=4 shiftwidth=4 softtabstop=4 tw=78: */ + diff --git a/library/Text_Highlighter/Text/Highlighter.php b/library/Text_Highlighter/Text/Highlighter.php new file mode 100644 index 000000000..480113c16 --- /dev/null +++ b/library/Text_Highlighter/Text/Highlighter.php @@ -0,0 +1,398 @@ + + * @copyright 2004-2006 Andrey Demenev + * @license http://www.php.net/license/3_0.txt PHP License + * @version CVS: $Id$ + * @link http://pear.php.net/package/Text_Highlighter + */ + +// require_once 'PEAR.php'; + +// {{{ BC constants + +// BC trick : define constants related to default +// renderer if needed +if (!defined('HL_NUMBERS_LI')) { + /**#@+ + * Constant for use with $options['numbers'] + * @see Text_Highlighter_Renderer_Html::_init() + */ + /** + * use numbered list + */ + define ('HL_NUMBERS_LI' , 1); + /** + * Use 2-column table with line numbers in left column and code in right column. + * Forces $options['tag'] = HL_TAG_PRE + */ + define ('HL_NUMBERS_TABLE' , 2); + /**#@-*/ +} + +// }}} +// {{{ constants +/** + * for our purpose, it is infinity + */ +define ('HL_INFINITY', 1000000000); + +// }}} + +/** + * Text highlighter base class + * + * @author Andrey Demenev + * @copyright 2004-2006 Andrey Demenev + * @license http://www.php.net/license/3_0.txt PHP License + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Highlighter + */ + +// {{{ Text_Highlighter + +/** + * Text highlighter base class + * + * This class implements all functions necessary for highlighting, + * but it does not contain highlighting rules. Actual highlighting is + * done using a descendent of this class. + * + * One is not supposed to manually create descendent classes. + * Instead, describe highlighting rules in XML format and + * use {@link Text_Highlighter_Generator} to create descendent class. + * Alternatively, an instance of a descendent class can be created + * directly. + * + * Use {@link Text_Highlighter::factory()} to create an + * object for particular language highlighter + * + * Usage example + * + *require_once 'Text/Highlighter.php'; + *$hlSQL = Text_Highlighter::factory('SQL',array('numbers'=>true)); + *echo $hlSQL->highlight('SELECT * FROM table a WHERE id = 12'); + * + * + * @author Andrey Demenev + * @package Text_Highlighter + * @access public + */ + +class Text_Highlighter +{ + // {{{ members + + /** + * Syntax highlighting rules. + * Auto-generated classes set this var + * + * @access protected + * @see _init + * @var array + */ + var $_syntax; + + /** + * Renderer object. + * + * @access private + * @var array + */ + var $_renderer; + + /** + * Options. Keeped for BC + * + * @access protected + * @var array + */ + var $_options = array(); + + /** + * Conditionds + * + * @access protected + * @var array + */ + var $_conditions = array(); + + /** + * Disabled keywords + * + * @access protected + * @var array + */ + var $_disabled = array(); + + /** + * Language + * + * @access protected + * @var string + */ + var $_language = ''; + + // }}} + // {{{ _checkDefines + + /** + * Called by subclssses' constructors to enable/disable + * optional highlighter rules + * + * @param array $defines Conditional defines + * + * @access protected + */ + function _checkDefines() + { + if (isset($this->_options['defines'])) { + $defines = $this->_options['defines']; + } else { + $defines = array(); + } + foreach ($this->_conditions as $name => $actions) { + foreach($actions as $action) { + $present = in_array($name, $defines); + if (!$action[1]) { + $present = !$present; + } + if ($present) { + unset($this->_disabled[$action[0]]); + } else { + $this->_disabled[$action[0]] = true; + } + } + } + } + + // }}} + // {{{ factory + + /** + * Create a new Highlighter object for specified language + * + * @param string $lang language, for example "SQL" + * @param array $options Rendering options. This + * parameter is only keeped for BC reasons, use + * {@link Text_Highlighter::setRenderer()} instead + * + * @return mixed a newly created Highlighter object, or + * a PEAR error object on error + * + * @static + * @access public + */ + function &factory($lang, $options = array()) + { + $lang = strtoupper($lang); + @include_once 'Text/Highlighter/' . $lang . '.php'; + + $classname = 'Text_Highlighter_' . $lang; + + if (!class_exists($classname)) { + return PEAR::raiseError('Highlighter for ' . $lang . ' not found'); + } + + $obj = new $classname($options); + + return $obj; + } + + // }}} + // {{{ setRenderer + + /** + * Set renderer object + * + * @param object $renderer Text_Highlighter_Renderer + * + * @access public + */ + function setRenderer(&$renderer) + { + $this->_renderer = $renderer; + } + + // }}} + + /** + * Helper function to find matching brackets + * + * @access private + */ + function _matchingBrackets($str) + { + return strtr($str, '()<>[]{}', ')(><][}{'); + } + + + + + function _getToken() + { + if (!empty($this->_tokenStack)) { + return array_pop($this->_tokenStack); + } + if ($this->_pos >= $this->_len) { + return NULL; + } + + if ($this->_state != -1 && preg_match($this->_endpattern, $this->_str, $m, PREG_OFFSET_CAPTURE, $this->_pos)) { + $endpos = $m[0][1]; + $endmatch = $m[0][0]; + } else { + $endpos = -1; + } + preg_match ($this->_regs[$this->_state], $this->_str, $m, PREG_OFFSET_CAPTURE, $this->_pos); + $n = 1; + + + foreach ($this->_counts[$this->_state] as $i=>$count) { + if (!isset($m[$n])) { + break; + } + if ($m[$n][1]>-1 && ($endpos == -1 || $m[$n][1] < $endpos)) { + if ($this->_states[$this->_state][$i] != -1) { + $this->_tokenStack[] = array($this->_delim[$this->_state][$i], $m[$n][0]); + } else { + $inner = $this->_inner[$this->_state][$i]; + if (isset($this->_parts[$this->_state][$i])) { + $parts = array(); + $partpos = $m[$n][1]; + for ($j=1; $j<=$count; $j++) { + if ($m[$j+$n][1] < 0) { + continue; + } + if (isset($this->_parts[$this->_state][$i][$j])) { + if ($m[$j+$n][1] > $partpos) { + array_unshift($parts, array($inner, substr($this->_str, $partpos, $m[$j+$n][1]-$partpos))); + } + array_unshift($parts, array($this->_parts[$this->_state][$i][$j], $m[$j+$n][0])); + } + $partpos = $m[$j+$n][1] + strlen($m[$j+$n][0]); + } + if ($partpos < $m[$n][1] + strlen($m[$n][0])) { + array_unshift($parts, array($inner, substr($this->_str, $partpos, $m[$n][1] - $partpos + strlen($m[$n][0])))); + } + $this->_tokenStack = array_merge($this->_tokenStack, $parts); + } else { + foreach ($this->_keywords[$this->_state][$i] as $g => $re) { + if (isset($this->_disabled[$g])) { + continue; + } + if (preg_match($re, $m[$n][0])) { + $inner = $this->_kwmap[$g]; + break; + } + } + $this->_tokenStack[] = array($inner, $m[$n][0]); + } + } + if ($m[$n][1] > $this->_pos) { + $this->_tokenStack[] = array($this->_lastinner, substr($this->_str, $this->_pos, $m[$n][1]-$this->_pos)); + } + $this->_pos = $m[$n][1] + strlen($m[$n][0]); + if ($this->_states[$this->_state][$i] != -1) { + $this->_stack[] = array($this->_state, $this->_lastdelim, $this->_lastinner, $this->_endpattern); + $this->_lastinner = $this->_inner[$this->_state][$i]; + $this->_lastdelim = $this->_delim[$this->_state][$i]; + $l = $this->_state; + $this->_state = $this->_states[$this->_state][$i]; + $this->_endpattern = $this->_end[$this->_state]; + if ($this->_subst[$l][$i]) { + for ($k=0; $k<=$this->_counts[$l][$i]; $k++) { + if (!isset($m[$i+$k])) { + break; + } + $quoted = preg_quote($m[$n+$k][0], '/'); + $this->_endpattern = str_replace('%'.$k.'%', $quoted, $this->_endpattern); + $this->_endpattern = str_replace('%b'.$k.'%', $this->_matchingBrackets($quoted), $this->_endpattern); + } + } + } + return array_pop($this->_tokenStack); + } + $n += $count + 1; + } + + if ($endpos > -1) { + $this->_tokenStack[] = array($this->_lastdelim, $endmatch); + if ($endpos > $this->_pos) { + $this->_tokenStack[] = array($this->_lastinner, substr($this->_str, $this->_pos, $endpos-$this->_pos)); + } + list($this->_state, $this->_lastdelim, $this->_lastinner, $this->_endpattern) = array_pop($this->_stack); + $this->_pos = $endpos + strlen($endmatch); + return array_pop($this->_tokenStack); + } + $p = $this->_pos; + $this->_pos = HL_INFINITY; + return array($this->_lastinner, substr($this->_str, $p)); + } + + + + + // {{{ highlight + + /** + * Highlights code + * + * @param string $str Code to highlight + * @access public + * @return string Highlighted text + * + */ + + function highlight($str) + { + if (!($this->_renderer)) { + include_once('Text/Highlighter/Renderer/Html.php'); + $this->_renderer = new Text_Highlighter_Renderer_Html($this->_options); + } + $this->_state = -1; + $this->_pos = 0; + $this->_stack = array(); + $this->_tokenStack = array(); + $this->_lastinner = $this->_defClass; + $this->_lastdelim = $this->_defClass; + $this->_endpattern = ''; + $this->_renderer->reset(); + $this->_renderer->setCurrentLanguage($this->_language); + $this->_str = $this->_renderer->preprocess($str); + $this->_len = strlen($this->_str); + while ($token = $this->_getToken()) { + $this->_renderer->acceptToken($token[0], $token[1]); + } + $this->_renderer->finalize(); + return $this->_renderer->getOutput(); + } + + // }}} + +} + +// }}} + +/* + * Local variables: + * tab-width: 4 + * c-basic-offset: 4 + * c-hanging-comment-ender-p: nil + * End: + */ + +?> diff --git a/library/Text_Highlighter/Text/Highlighter/ABAP.php b/library/Text_Highlighter/Text/Highlighter/ABAP.php new file mode 100644 index 000000000..b2f7bda94 --- /dev/null +++ b/library/Text_Highlighter/Text/Highlighter/ABAP.php @@ -0,0 +1,519 @@ + + * + */ + +/** + * @ignore + */ + +require_once 'Text/Highlighter.php'; + +/** + * Auto-generated class. ABAP syntax highlighting + * + * @author Stoyan Stefanov + * @category Text + * @package Text_Highlighter + * @copyright 2004-2006 Andrey Demenev + * @license http://www.php.net/license/3_0.txt PHP License + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Highlighter + */ +class Text_Highlighter_ABAP extends Text_Highlighter +{ + var $_language = 'abap'; + + /** + * PHP4 Compatible Constructor + * + * @param array $options + * @access public + */ + function Text_Highlighter_ABAP($options=array()) + { + $this->__construct($options); + } + + + /** + * Constructor + * + * @param array $options + * @access public + */ + function __construct($options=array()) + { + + $this->_options = $options; + $this->_regs = array ( + -1 => '/((?i)\\{)|((?i)\\()|((?i)\\[)|((?i)^\\*|")|((?i)\')|((?i)[a-z_\\-]\\w*)/', + 0 => '/((?i)\\{)|((?i)\\()|((?i)\\[)|((?i)^\\*|")|((?i)\')|((?i)0[xX][\\da-f]+)|((?i)\\d\\d*|\\b0\\b)|((?i)0[0-7]+)|((?i)(\\d*\\.\\d+)|(\\d+\\.\\d*))|((?i)[a-z_\\-]\\w*)/', + 1 => '/((?i)\\{)|((?i)\\()|((?i)\\[)|((?i)^\\*|")|((?i)\')|((?i)0[xX][\\da-f]+)|((?i)\\d\\d*|\\b0\\b)|((?i)0[0-7]+)|((?i)(\\d*\\.\\d+)|(\\d+\\.\\d*))|((?i)[a-z_\\-]\\w*)/', + 2 => '/((?i)\\{)|((?i)\\()|((?i)\\[)|((?i)^\\*|")|((?i)\')|((?i)0[xX][\\da-f]+)|((?i)\\d\\d*|\\b0\\b)|((?i)0[0-7]+)|((?i)(\\d*\\.\\d+)|(\\d+\\.\\d*))|((?i)[a-z_\\-]\\w*)/', + 3 => '//', + 4 => '//', + ); + $this->_counts = array ( + -1 => + array ( + 0 => 0, + 1 => 0, + 2 => 0, + 3 => 0, + 4 => 0, + 5 => 0, + ), + 0 => + array ( + 0 => 0, + 1 => 0, + 2 => 0, + 3 => 0, + 4 => 0, + 5 => 0, + 6 => 0, + 7 => 0, + 8 => 2, + 9 => 0, + ), + 1 => + array ( + 0 => 0, + 1 => 0, + 2 => 0, + 3 => 0, + 4 => 0, + 5 => 0, + 6 => 0, + 7 => 0, + 8 => 2, + 9 => 0, + ), + 2 => + array ( + 0 => 0, + 1 => 0, + 2 => 0, + 3 => 0, + 4 => 0, + 5 => 0, + 6 => 0, + 7 => 0, + 8 => 2, + 9 => 0, + ), + 3 => + array ( + ), + 4 => + array ( + ), + ); + $this->_delim = array ( + -1 => + array ( + 0 => 'brackets', + 1 => 'brackets', + 2 => 'brackets', + 3 => 'comment', + 4 => 'quotes', + 5 => '', + ), + 0 => + array ( + 0 => 'brackets', + 1 => 'brackets', + 2 => 'brackets', + 3 => 'comment', + 4 => 'quotes', + 5 => '', + 6 => '', + 7 => '', + 8 => '', + 9 => '', + ), + 1 => + array ( + 0 => 'brackets', + 1 => 'brackets', + 2 => 'brackets', + 3 => 'comment', + 4 => 'quotes', + 5 => '', + 6 => '', + 7 => '', + 8 => '', + 9 => '', + ), + 2 => + array ( + 0 => 'brackets', + 1 => 'brackets', + 2 => 'brackets', + 3 => 'comment', + 4 => 'quotes', + 5 => '', + 6 => '', + 7 => '', + 8 => '', + 9 => '', + ), + 3 => + array ( + ), + 4 => + array ( + ), + ); + $this->_inner = array ( + -1 => + array ( + 0 => 'code', + 1 => 'code', + 2 => 'code', + 3 => 'comment', + 4 => 'string', + 5 => 'identifier', + ), + 0 => + array ( + 0 => 'code', + 1 => 'code', + 2 => 'code', + 3 => 'comment', + 4 => 'string', + 5 => 'number', + 6 => 'number', + 7 => 'number', + 8 => 'number', + 9 => 'identifier', + ), + 1 => + array ( + 0 => 'code', + 1 => 'code', + 2 => 'code', + 3 => 'comment', + 4 => 'string', + 5 => 'number', + 6 => 'number', + 7 => 'number', + 8 => 'number', + 9 => 'identifier', + ), + 2 => + array ( + 0 => 'code', + 1 => 'code', + 2 => 'code', + 3 => 'comment', + 4 => 'string', + 5 => 'number', + 6 => 'number', + 7 => 'number', + 8 => 'number', + 9 => 'identifier', + ), + 3 => + array ( + ), + 4 => + array ( + ), + ); + $this->_end = array ( + 0 => '/(?i)\\}/', + 1 => '/(?i)\\)/', + 2 => '/(?i)\\]/', + 3 => '/(?mi)$/', + 4 => '/(?i)\'/', + ); + $this->_states = array ( + -1 => + array ( + 0 => 0, + 1 => 1, + 2 => 2, + 3 => 3, + 4 => 4, + 5 => -1, + ), + 0 => + array ( + 0 => 0, + 1 => 1, + 2 => 2, + 3 => 3, + 4 => 4, + 5 => -1, + 6 => -1, + 7 => -1, + 8 => -1, + 9 => -1, + ), + 1 => + array ( + 0 => 0, + 1 => 1, + 2 => 2, + 3 => 3, + 4 => 4, + 5 => -1, + 6 => -1, + 7 => -1, + 8 => -1, + 9 => -1, + ), + 2 => + array ( + 0 => 0, + 1 => 1, + 2 => 2, + 3 => 3, + 4 => 4, + 5 => -1, + 6 => -1, + 7 => -1, + 8 => -1, + 9 => -1, + ), + 3 => + array ( + ), + 4 => + array ( + ), + ); + $this->_keywords = array ( + -1 => + array ( + 0 => -1, + 1 => -1, + 2 => -1, + 3 => -1, + 4 => -1, + 5 => + array ( + 'sy' => '/^((?i)screen-name|screen-group1|screen-group2|screen-group3|screen-group4|screen-required|screen-input|screen-output|screen-intensified|screen-invisible|screen-length|screen-active|sy-index|sy-pagno|sy-tabix|sy-tfill|sy-tlopc|sy-tmaxl|sy-toccu|sy-ttabc|sy-tstis|sy-ttabi|sy-dbcnt|sy-fdpos|sy-colno|sy-linct|sy-linno|sy-linsz|sy-pagct|sy-macol|sy-marow|sy-tleng|sy-sfoff|sy-willi|sy-lilli|sy-subrc|sy-fleng|sy-cucol|sy-curow|sy-lsind|sy-listi|sy-stepl|sy-tpagi|sy-winx1|sy-winy1|sy-winx2|sy-winy2|sy-winco|sy-winro|sy-windi|sy-srows|sy-scols|sy-loopc|sy-folen|sy-fodec|sy-tzone|sy-dayst|sy-ftype|sy-appli|sy-fdayw|sy-ccurs|sy-ccurt|sy-debug|sy-ctype|sy-input|sy-langu|sy-modno|sy-batch|sy-binpt|sy-calld|sy-dynnr|sy-dyngr|sy-newpa|sy-pri40|sy-rstrt|sy-wtitl|sy-cpage|sy-dbnam|sy-mandt|sy-prefx|sy-fmkey|sy-pexpi|sy-prini|sy-primm|sy-prrel|sy-playo|sy-prbig|sy-playp|sy-prnew|sy-prlog|sy-pdest|sy-plist|sy-pauth|sy-prdsn|sy-pnwpa|sy-callr|sy-repi2|sy-rtitl|sy-prrec|sy-prtxt|sy-prabt|sy-lpass|sy-nrpag|sy-paart|sy-prcop|sy-batzs|sy-bspld|sy-brep4|sy-batzo|sy-batzd|sy-batzw|sy-batzm|sy-ctabl|sy-dbsys|sy-dcsys|sy-macdb|sy-sysid|sy-opsys|sy-pfkey|sy-saprl|sy-tcode|sy-ucomm|sy-cfwae|sy-chwae|sy-spono|sy-sponr|sy-waers|sy-cdate|sy-datum|sy-slset|sy-subty|sy-subcs|sy-group|sy-ffile|sy-uzeit|sy-dsnam|sy-repid|sy-tabid|sy-tfdsn|sy-uname|sy-lstat|sy-abcde|sy-marky|sy-sfnam|sy-tname|sy-msgli|sy-title|sy-entry|sy-lisel|sy-uline|sy-xcode|sy-cprog|sy-xprog|sy-xform|sy-ldbpg|sy-tvar0|sy-tvar1|sy-tvar2|sy-tvar3|sy-tvar4|sy-tvar5|sy-tvar6|sy-tvar7|sy-tvar8|sy-tvar9|sy-msgid|sy-msgty|sy-msgno|sy-msgv1|sy-msgv2|sy-msgv3|sy-msgv4|sy-oncom|sy-vline|sy-winsl|sy-staco|sy-staro|sy-datar|sy-host|sy-locdb|sy-locop|sy-datlo|sy-timlo|sy-zonlo|syst-index|syst-pagno|syst-tabix|syst-tfill|syst-tlopc|syst-tmaxl|syst-toccu|syst-ttabc|syst-tstis|syst-ttabi|syst-dbcnt|syst-fdpos|syst-colno|syst-linct|syst-linno|syst-linsz|syst-pagct|syst-macol|syst-marow|syst-tleng|syst-sfoff|syst-willi|syst-lilli|syst-subrc|syst-fleng|syst-cucol|syst-curow|syst-lsind|syst-listi|syst-stepl|syst-tpagi|syst-winx1|syst-winy1|syst-winx2|syst-winy2|syst-winco|syst-winro|syst-windi|syst-srows|syst-scols|syst-loopc|syst-folen|syst-fodec|syst-tzone|syst-dayst|syst-ftype|syst-appli|syst-fdayw|syst-ccurs|syst-ccurt|syst-debug|syst-ctype|syst-input|syst-langu|syst-modno|syst-batch|syst-binpt|syst-calld|syst-dynnr|syst-dyngr|syst-newpa|syst-pri40|syst-rstrt|syst-wtitl|syst-cpage|syst-dbnam|syst-mandt|syst-prefx|syst-fmkey|syst-pexpi|syst-prini|syst-primm|syst-prrel|syst-playo|syst-prbig|syst-playp|syst-prnew|syst-prlog|syst-pdest|syst-plist|syst-pauth|syst-prdsn|syst-pnwpa|syst-callr|syst-repi2|syst-rtitl|syst-prrec|syst-prtxt|syst-prabt|syst-lpass|syst-nrpag|syst-paart|syst-prcop|syst-batzs|syst-bspld|syst-brep4|syst-batzo|syst-batzd|syst-batzw|syst-batzm|syst-ctabl|syst-dbsys|syst-dcsys|syst-macdb|syst-sysid|syst-opsys|syst-pfkey|syst-saprl|syst-tcode|syst-ucomm|syst-cfwae|syst-chwae|syst-spono|syst-sponr|syst-waers|syst-cdate|syst-datum|syst-slset|syst-subty|syst-subcs|syst-group|syst-ffile|syst-uzeit|syst-dsnam|syst-repid|syst-tabid|syst-tfdsn|syst-uname|syst-lstat|syst-abcde|syst-marky|syst-sfnam|syst-tname|syst-msgli|syst-title|syst-entry|syst-lisel|syst-uline|syst-xcode|syst-cprog|syst-xprog|syst-xform|syst-ldbpg|syst-tvar0|syst-tvar1|syst-tvar2|syst-tvar3|syst-tvar4|syst-tvar5|syst-tvar6|syst-tvar7|syst-tvar8|syst-tvar9|syst-msgid|syst-msgty|syst-msgno|syst-msgv1|syst-msgv2|syst-msgv3|syst-msgv4|syst-oncom|syst-vline|syst-winsl|syst-staco|syst-staro|syst-datar|syst-host|syst-locdb|syst-locop|syst-datlo|syst-timlo|syst-zonlo)$/', + 'reserved' => '/^((?i)abs|acos|add|add-corresponding|adjacent|after|aliases|all|analyzer|and|any|append|as|ascending|asin|assign|assigned|assigning|at|atan|authority-check|avg|back|before|begin|binary|bit|bit-and|bit-not|bit-or|bit-xor|blank|block|break-point|buffer|by|c|call|case|catch|ceil|centered|chain|change|changing|check|checkbox|class|class-data|class-events|class-methods|class-pool|clear|client|close|cnt|code|collect|color|comment|commit|communication|compute|concatenate|condense|constants|context|contexts|continue|control|controls|convert|copy|corresponding|cos|cosh|count|country|create|currency|cursor|customer-function|data|database|dataset|delete|decimals|default|define|demand|descending|describe|dialog|distinct|div|divide|divide-corresponding|do|duplicates|dynpro|edit|editor-call|else|elseif|end|end-of-definition|end-of-page|end-of-selection|endat|endcase|endcatch|endchain|endclass|enddo|endexec|endform|endfunction|endif|endinterface|endloop|endmethod|endmodule|endon|endprovide|endselect|endwhile|entries|events|exec|exit|exit-command|exp|exponent|export|exporting|exceptions|extended|extract|fetch|field|field-groups|field-symbols|fields|floor|for|form|format|frac|frame|free|from|function|function-pool|generate|get|group|hashed|header|help-id|help-request|hide|hotspot|icon|id|if|import|importing|include|index|infotypes|initialization|inner|input|insert|intensified|interface|interface-pool|interfaces|into|inverse|join|key|language|last|leave|left|left-justified|like|line|line-count|line-selection|line-size|lines|list-processing|load|load-of-program|local|locale|log|log10|loop|m|margin|mask|matchcode|max|memory|message|message-id|messages|method|methods|min|mod|mode|modif|modify|module|move|move-corresponding|multiply|multiply-corresponding|new|new-line|new-page|next|no|no-gap|no-gaps|no-heading|no-scrolling|no-sign|no-title|no-zero|nodes|non-unique|o|object|obligatory|occurs|of|off|on|open|or|order|others|outer|output|overlay|pack|page|parameter|parameters|perform|pf-status|position|print|print-control|private|process|program|property|protected|provide|public|put|radiobutton|raise|raising|range|ranges|read|receive|refresh|reject|replace|report|requested|reserve|reset|right-justified|rollback|round|rows|rtti|run|scan|screen|search|separated|scroll|scroll-boundary|select|select-options|selection-screen|selection-table|set|shared|shift|sign|sin|single|sinh|size|skip|sort|sorted|split|sql|sqrt|stamp|standard|start-of-selection|statics|stop|string|strlen|structure|submit|subtract|subtract-corresponding|sum|supply|suppress|symbol|syntax-check|syntax-trace|system-call|system-exceptions|table|table_line|tables|tan|tanh|text|textpool|time|times|title|titlebar|to|top-of-page|transaction|transfer|translate|transporting|trunc|type|type-pool|type-pools|types|uline|under|unique|unit|unpack|up|update|user-command|using|value|value-request|values|vary|when|where|while|window|with|with-title|work|write|x|xstring|z|zone)$/', + 'constants' => '/^((?i)initial|null|space|col_background|col_heading|col_normal|col_total|col_key|col_positive|col_negative|col_group)$/', + ), + ), + 0 => + array ( + 0 => -1, + 1 => -1, + 2 => -1, + 3 => -1, + 4 => -1, + 5 => + array ( + ), + 6 => + array ( + ), + 7 => + array ( + ), + 8 => + array ( + ), + 9 => + array ( + 'sy' => '/^((?i)screen-name|screen-group1|screen-group2|screen-group3|screen-group4|screen-required|screen-input|screen-output|screen-intensified|screen-invisible|screen-length|screen-active|sy-index|sy-pagno|sy-tabix|sy-tfill|sy-tlopc|sy-tmaxl|sy-toccu|sy-ttabc|sy-tstis|sy-ttabi|sy-dbcnt|sy-fdpos|sy-colno|sy-linct|sy-linno|sy-linsz|sy-pagct|sy-macol|sy-marow|sy-tleng|sy-sfoff|sy-willi|sy-lilli|sy-subrc|sy-fleng|sy-cucol|sy-curow|sy-lsind|sy-listi|sy-stepl|sy-tpagi|sy-winx1|sy-winy1|sy-winx2|sy-winy2|sy-winco|sy-winro|sy-windi|sy-srows|sy-scols|sy-loopc|sy-folen|sy-fodec|sy-tzone|sy-dayst|sy-ftype|sy-appli|sy-fdayw|sy-ccurs|sy-ccurt|sy-debug|sy-ctype|sy-input|sy-langu|sy-modno|sy-batch|sy-binpt|sy-calld|sy-dynnr|sy-dyngr|sy-newpa|sy-pri40|sy-rstrt|sy-wtitl|sy-cpage|sy-dbnam|sy-mandt|sy-prefx|sy-fmkey|sy-pexpi|sy-prini|sy-primm|sy-prrel|sy-playo|sy-prbig|sy-playp|sy-prnew|sy-prlog|sy-pdest|sy-plist|sy-pauth|sy-prdsn|sy-pnwpa|sy-callr|sy-repi2|sy-rtitl|sy-prrec|sy-prtxt|sy-prabt|sy-lpass|sy-nrpag|sy-paart|sy-prcop|sy-batzs|sy-bspld|sy-brep4|sy-batzo|sy-batzd|sy-batzw|sy-batzm|sy-ctabl|sy-dbsys|sy-dcsys|sy-macdb|sy-sysid|sy-opsys|sy-pfkey|sy-saprl|sy-tcode|sy-ucomm|sy-cfwae|sy-chwae|sy-spono|sy-sponr|sy-waers|sy-cdate|sy-datum|sy-slset|sy-subty|sy-subcs|sy-group|sy-ffile|sy-uzeit|sy-dsnam|sy-repid|sy-tabid|sy-tfdsn|sy-uname|sy-lstat|sy-abcde|sy-marky|sy-sfnam|sy-tname|sy-msgli|sy-title|sy-entry|sy-lisel|sy-uline|sy-xcode|sy-cprog|sy-xprog|sy-xform|sy-ldbpg|sy-tvar0|sy-tvar1|sy-tvar2|sy-tvar3|sy-tvar4|sy-tvar5|sy-tvar6|sy-tvar7|sy-tvar8|sy-tvar9|sy-msgid|sy-msgty|sy-msgno|sy-msgv1|sy-msgv2|sy-msgv3|sy-msgv4|sy-oncom|sy-vline|sy-winsl|sy-staco|sy-staro|sy-datar|sy-host|sy-locdb|sy-locop|sy-datlo|sy-timlo|sy-zonlo|syst-index|syst-pagno|syst-tabix|syst-tfill|syst-tlopc|syst-tmaxl|syst-toccu|syst-ttabc|syst-tstis|syst-ttabi|syst-dbcnt|syst-fdpos|syst-colno|syst-linct|syst-linno|syst-linsz|syst-pagct|syst-macol|syst-marow|syst-tleng|syst-sfoff|syst-willi|syst-lilli|syst-subrc|syst-fleng|syst-cucol|syst-curow|syst-lsind|syst-listi|syst-stepl|syst-tpagi|syst-winx1|syst-winy1|syst-winx2|syst-winy2|syst-winco|syst-winro|syst-windi|syst-srows|syst-scols|syst-loopc|syst-folen|syst-fodec|syst-tzone|syst-dayst|syst-ftype|syst-appli|syst-fdayw|syst-ccurs|syst-ccurt|syst-debug|syst-ctype|syst-input|syst-langu|syst-modno|syst-batch|syst-binpt|syst-calld|syst-dynnr|syst-dyngr|syst-newpa|syst-pri40|syst-rstrt|syst-wtitl|syst-cpage|syst-dbnam|syst-mandt|syst-prefx|syst-fmkey|syst-pexpi|syst-prini|syst-primm|syst-prrel|syst-playo|syst-prbig|syst-playp|syst-prnew|syst-prlog|syst-pdest|syst-plist|syst-pauth|syst-prdsn|syst-pnwpa|syst-callr|syst-repi2|syst-rtitl|syst-prrec|syst-prtxt|syst-prabt|syst-lpass|syst-nrpag|syst-paart|syst-prcop|syst-batzs|syst-bspld|syst-brep4|syst-batzo|syst-batzd|syst-batzw|syst-batzm|syst-ctabl|syst-dbsys|syst-dcsys|syst-macdb|syst-sysid|syst-opsys|syst-pfkey|syst-saprl|syst-tcode|syst-ucomm|syst-cfwae|syst-chwae|syst-spono|syst-sponr|syst-waers|syst-cdate|syst-datum|syst-slset|syst-subty|syst-subcs|syst-group|syst-ffile|syst-uzeit|syst-dsnam|syst-repid|syst-tabid|syst-tfdsn|syst-uname|syst-lstat|syst-abcde|syst-marky|syst-sfnam|syst-tname|syst-msgli|syst-title|syst-entry|syst-lisel|syst-uline|syst-xcode|syst-cprog|syst-xprog|syst-xform|syst-ldbpg|syst-tvar0|syst-tvar1|syst-tvar2|syst-tvar3|syst-tvar4|syst-tvar5|syst-tvar6|syst-tvar7|syst-tvar8|syst-tvar9|syst-msgid|syst-msgty|syst-msgno|syst-msgv1|syst-msgv2|syst-msgv3|syst-msgv4|syst-oncom|syst-vline|syst-winsl|syst-staco|syst-staro|syst-datar|syst-host|syst-locdb|syst-locop|syst-datlo|syst-timlo|syst-zonlo)$/', + 'reserved' => '/^((?i)abs|acos|add|add-corresponding|adjacent|after|aliases|all|analyzer|and|any|append|as|ascending|asin|assign|assigned|assigning|at|atan|authority-check|avg|back|before|begin|binary|bit|bit-and|bit-not|bit-or|bit-xor|blank|block|break-point|buffer|by|c|call|case|catch|ceil|centered|chain|change|changing|check|checkbox|class|class-data|class-events|class-methods|class-pool|clear|client|close|cnt|code|collect|color|comment|commit|communication|compute|concatenate|condense|constants|context|contexts|continue|control|controls|convert|copy|corresponding|cos|cosh|count|country|create|currency|cursor|customer-function|data|database|dataset|delete|decimals|default|define|demand|descending|describe|dialog|distinct|div|divide|divide-corresponding|do|duplicates|dynpro|edit|editor-call|else|elseif|end|end-of-definition|end-of-page|end-of-selection|endat|endcase|endcatch|endchain|endclass|enddo|endexec|endform|endfunction|endif|endinterface|endloop|endmethod|endmodule|endon|endprovide|endselect|endwhile|entries|events|exec|exit|exit-command|exp|exponent|export|exporting|exceptions|extended|extract|fetch|field|field-groups|field-symbols|fields|floor|for|form|format|frac|frame|free|from|function|function-pool|generate|get|group|hashed|header|help-id|help-request|hide|hotspot|icon|id|if|import|importing|include|index|infotypes|initialization|inner|input|insert|intensified|interface|interface-pool|interfaces|into|inverse|join|key|language|last|leave|left|left-justified|like|line|line-count|line-selection|line-size|lines|list-processing|load|load-of-program|local|locale|log|log10|loop|m|margin|mask|matchcode|max|memory|message|message-id|messages|method|methods|min|mod|mode|modif|modify|module|move|move-corresponding|multiply|multiply-corresponding|new|new-line|new-page|next|no|no-gap|no-gaps|no-heading|no-scrolling|no-sign|no-title|no-zero|nodes|non-unique|o|object|obligatory|occurs|of|off|on|open|or|order|others|outer|output|overlay|pack|page|parameter|parameters|perform|pf-status|position|print|print-control|private|process|program|property|protected|provide|public|put|radiobutton|raise|raising|range|ranges|read|receive|refresh|reject|replace|report|requested|reserve|reset|right-justified|rollback|round|rows|rtti|run|scan|screen|search|separated|scroll|scroll-boundary|select|select-options|selection-screen|selection-table|set|shared|shift|sign|sin|single|sinh|size|skip|sort|sorted|split|sql|sqrt|stamp|standard|start-of-selection|statics|stop|string|strlen|structure|submit|subtract|subtract-corresponding|sum|supply|suppress|symbol|syntax-check|syntax-trace|system-call|system-exceptions|table|table_line|tables|tan|tanh|text|textpool|time|times|title|titlebar|to|top-of-page|transaction|transfer|translate|transporting|trunc|type|type-pool|type-pools|types|uline|under|unique|unit|unpack|up|update|user-command|using|value|value-request|values|vary|when|where|while|window|with|with-title|work|write|x|xstring|z|zone)$/', + 'constants' => '/^((?i)initial|null|space|col_background|col_heading|col_normal|col_total|col_key|col_positive|col_negative|col_group)$/', + ), + ), + 1 => + array ( + 0 => -1, + 1 => -1, + 2 => -1, + 3 => -1, + 4 => -1, + 5 => + array ( + ), + 6 => + array ( + ), + 7 => + array ( + ), + 8 => + array ( + ), + 9 => + array ( + 'sy' => '/^((?i)screen-name|screen-group1|screen-group2|screen-group3|screen-group4|screen-required|screen-input|screen-output|screen-intensified|screen-invisible|screen-length|screen-active|sy-index|sy-pagno|sy-tabix|sy-tfill|sy-tlopc|sy-tmaxl|sy-toccu|sy-ttabc|sy-tstis|sy-ttabi|sy-dbcnt|sy-fdpos|sy-colno|sy-linct|sy-linno|sy-linsz|sy-pagct|sy-macol|sy-marow|sy-tleng|sy-sfoff|sy-willi|sy-lilli|sy-subrc|sy-fleng|sy-cucol|sy-curow|sy-lsind|sy-listi|sy-stepl|sy-tpagi|sy-winx1|sy-winy1|sy-winx2|sy-winy2|sy-winco|sy-winro|sy-windi|sy-srows|sy-scols|sy-loopc|sy-folen|sy-fodec|sy-tzone|sy-dayst|sy-ftype|sy-appli|sy-fdayw|sy-ccurs|sy-ccurt|sy-debug|sy-ctype|sy-input|sy-langu|sy-modno|sy-batch|sy-binpt|sy-calld|sy-dynnr|sy-dyngr|sy-newpa|sy-pri40|sy-rstrt|sy-wtitl|sy-cpage|sy-dbnam|sy-mandt|sy-prefx|sy-fmkey|sy-pexpi|sy-prini|sy-primm|sy-prrel|sy-playo|sy-prbig|sy-playp|sy-prnew|sy-prlog|sy-pdest|sy-plist|sy-pauth|sy-prdsn|sy-pnwpa|sy-callr|sy-repi2|sy-rtitl|sy-prrec|sy-prtxt|sy-prabt|sy-lpass|sy-nrpag|sy-paart|sy-prcop|sy-batzs|sy-bspld|sy-brep4|sy-batzo|sy-batzd|sy-batzw|sy-batzm|sy-ctabl|sy-dbsys|sy-dcsys|sy-macdb|sy-sysid|sy-opsys|sy-pfkey|sy-saprl|sy-tcode|sy-ucomm|sy-cfwae|sy-chwae|sy-spono|sy-sponr|sy-waers|sy-cdate|sy-datum|sy-slset|sy-subty|sy-subcs|sy-group|sy-ffile|sy-uzeit|sy-dsnam|sy-repid|sy-tabid|sy-tfdsn|sy-uname|sy-lstat|sy-abcde|sy-marky|sy-sfnam|sy-tname|sy-msgli|sy-title|sy-entry|sy-lisel|sy-uline|sy-xcode|sy-cprog|sy-xprog|sy-xform|sy-ldbpg|sy-tvar0|sy-tvar1|sy-tvar2|sy-tvar3|sy-tvar4|sy-tvar5|sy-tvar6|sy-tvar7|sy-tvar8|sy-tvar9|sy-msgid|sy-msgty|sy-msgno|sy-msgv1|sy-msgv2|sy-msgv3|sy-msgv4|sy-oncom|sy-vline|sy-winsl|sy-staco|sy-staro|sy-datar|sy-host|sy-locdb|sy-locop|sy-datlo|sy-timlo|sy-zonlo|syst-index|syst-pagno|syst-tabix|syst-tfill|syst-tlopc|syst-tmaxl|syst-toccu|syst-ttabc|syst-tstis|syst-ttabi|syst-dbcnt|syst-fdpos|syst-colno|syst-linct|syst-linno|syst-linsz|syst-pagct|syst-macol|syst-marow|syst-tleng|syst-sfoff|syst-willi|syst-lilli|syst-subrc|syst-fleng|syst-cucol|syst-curow|syst-lsind|syst-listi|syst-stepl|syst-tpagi|syst-winx1|syst-winy1|syst-winx2|syst-winy2|syst-winco|syst-winro|syst-windi|syst-srows|syst-scols|syst-loopc|syst-folen|syst-fodec|syst-tzone|syst-dayst|syst-ftype|syst-appli|syst-fdayw|syst-ccurs|syst-ccurt|syst-debug|syst-ctype|syst-input|syst-langu|syst-modno|syst-batch|syst-binpt|syst-calld|syst-dynnr|syst-dyngr|syst-newpa|syst-pri40|syst-rstrt|syst-wtitl|syst-cpage|syst-dbnam|syst-mandt|syst-prefx|syst-fmkey|syst-pexpi|syst-prini|syst-primm|syst-prrel|syst-playo|syst-prbig|syst-playp|syst-prnew|syst-prlog|syst-pdest|syst-plist|syst-pauth|syst-prdsn|syst-pnwpa|syst-callr|syst-repi2|syst-rtitl|syst-prrec|syst-prtxt|syst-prabt|syst-lpass|syst-nrpag|syst-paart|syst-prcop|syst-batzs|syst-bspld|syst-brep4|syst-batzo|syst-batzd|syst-batzw|syst-batzm|syst-ctabl|syst-dbsys|syst-dcsys|syst-macdb|syst-sysid|syst-opsys|syst-pfkey|syst-saprl|syst-tcode|syst-ucomm|syst-cfwae|syst-chwae|syst-spono|syst-sponr|syst-waers|syst-cdate|syst-datum|syst-slset|syst-subty|syst-subcs|syst-group|syst-ffile|syst-uzeit|syst-dsnam|syst-repid|syst-tabid|syst-tfdsn|syst-uname|syst-lstat|syst-abcde|syst-marky|syst-sfnam|syst-tname|syst-msgli|syst-title|syst-entry|syst-lisel|syst-uline|syst-xcode|syst-cprog|syst-xprog|syst-xform|syst-ldbpg|syst-tvar0|syst-tvar1|syst-tvar2|syst-tvar3|syst-tvar4|syst-tvar5|syst-tvar6|syst-tvar7|syst-tvar8|syst-tvar9|syst-msgid|syst-msgty|syst-msgno|syst-msgv1|syst-msgv2|syst-msgv3|syst-msgv4|syst-oncom|syst-vline|syst-winsl|syst-staco|syst-staro|syst-datar|syst-host|syst-locdb|syst-locop|syst-datlo|syst-timlo|syst-zonlo)$/', + 'reserved' => '/^((?i)abs|acos|add|add-corresponding|adjacent|after|aliases|all|analyzer|and|any|append|as|ascending|asin|assign|assigned|assigning|at|atan|authority-check|avg|back|before|begin|binary|bit|bit-and|bit-not|bit-or|bit-xor|blank|block|break-point|buffer|by|c|call|case|catch|ceil|centered|chain|change|changing|check|checkbox|class|class-data|class-events|class-methods|class-pool|clear|client|close|cnt|code|collect|color|comment|commit|communication|compute|concatenate|condense|constants|context|contexts|continue|control|controls|convert|copy|corresponding|cos|cosh|count|country|create|currency|cursor|customer-function|data|database|dataset|delete|decimals|default|define|demand|descending|describe|dialog|distinct|div|divide|divide-corresponding|do|duplicates|dynpro|edit|editor-call|else|elseif|end|end-of-definition|end-of-page|end-of-selection|endat|endcase|endcatch|endchain|endclass|enddo|endexec|endform|endfunction|endif|endinterface|endloop|endmethod|endmodule|endon|endprovide|endselect|endwhile|entries|events|exec|exit|exit-command|exp|exponent|export|exporting|exceptions|extended|extract|fetch|field|field-groups|field-symbols|fields|floor|for|form|format|frac|frame|free|from|function|function-pool|generate|get|group|hashed|header|help-id|help-request|hide|hotspot|icon|id|if|import|importing|include|index|infotypes|initialization|inner|input|insert|intensified|interface|interface-pool|interfaces|into|inverse|join|key|language|last|leave|left|left-justified|like|line|line-count|line-selection|line-size|lines|list-processing|load|load-of-program|local|locale|log|log10|loop|m|margin|mask|matchcode|max|memory|message|message-id|messages|method|methods|min|mod|mode|modif|modify|module|move|move-corresponding|multiply|multiply-corresponding|new|new-line|new-page|next|no|no-gap|no-gaps|no-heading|no-scrolling|no-sign|no-title|no-zero|nodes|non-unique|o|object|obligatory|occurs|of|off|on|open|or|order|others|outer|output|overlay|pack|page|parameter|parameters|perform|pf-status|position|print|print-control|private|process|program|property|protected|provide|public|put|radiobutton|raise|raising|range|ranges|read|receive|refresh|reject|replace|report|requested|reserve|reset|right-justified|rollback|round|rows|rtti|run|scan|screen|search|separated|scroll|scroll-boundary|select|select-options|selection-screen|selection-table|set|shared|shift|sign|sin|single|sinh|size|skip|sort|sorted|split|sql|sqrt|stamp|standard|start-of-selection|statics|stop|string|strlen|structure|submit|subtract|subtract-corresponding|sum|supply|suppress|symbol|syntax-check|syntax-trace|system-call|system-exceptions|table|table_line|tables|tan|tanh|text|textpool|time|times|title|titlebar|to|top-of-page|transaction|transfer|translate|transporting|trunc|type|type-pool|type-pools|types|uline|under|unique|unit|unpack|up|update|user-command|using|value|value-request|values|vary|when|where|while|window|with|with-title|work|write|x|xstring|z|zone)$/', + 'constants' => '/^((?i)initial|null|space|col_background|col_heading|col_normal|col_total|col_key|col_positive|col_negative|col_group)$/', + ), + ), + 2 => + array ( + 0 => -1, + 1 => -1, + 2 => -1, + 3 => -1, + 4 => -1, + 5 => + array ( + ), + 6 => + array ( + ), + 7 => + array ( + ), + 8 => + array ( + ), + 9 => + array ( + 'sy' => '/^((?i)screen-name|screen-group1|screen-group2|screen-group3|screen-group4|screen-required|screen-input|screen-output|screen-intensified|screen-invisible|screen-length|screen-active|sy-index|sy-pagno|sy-tabix|sy-tfill|sy-tlopc|sy-tmaxl|sy-toccu|sy-ttabc|sy-tstis|sy-ttabi|sy-dbcnt|sy-fdpos|sy-colno|sy-linct|sy-linno|sy-linsz|sy-pagct|sy-macol|sy-marow|sy-tleng|sy-sfoff|sy-willi|sy-lilli|sy-subrc|sy-fleng|sy-cucol|sy-curow|sy-lsind|sy-listi|sy-stepl|sy-tpagi|sy-winx1|sy-winy1|sy-winx2|sy-winy2|sy-winco|sy-winro|sy-windi|sy-srows|sy-scols|sy-loopc|sy-folen|sy-fodec|sy-tzone|sy-dayst|sy-ftype|sy-appli|sy-fdayw|sy-ccurs|sy-ccurt|sy-debug|sy-ctype|sy-input|sy-langu|sy-modno|sy-batch|sy-binpt|sy-calld|sy-dynnr|sy-dyngr|sy-newpa|sy-pri40|sy-rstrt|sy-wtitl|sy-cpage|sy-dbnam|sy-mandt|sy-prefx|sy-fmkey|sy-pexpi|sy-prini|sy-primm|sy-prrel|sy-playo|sy-prbig|sy-playp|sy-prnew|sy-prlog|sy-pdest|sy-plist|sy-pauth|sy-prdsn|sy-pnwpa|sy-callr|sy-repi2|sy-rtitl|sy-prrec|sy-prtxt|sy-prabt|sy-lpass|sy-nrpag|sy-paart|sy-prcop|sy-batzs|sy-bspld|sy-brep4|sy-batzo|sy-batzd|sy-batzw|sy-batzm|sy-ctabl|sy-dbsys|sy-dcsys|sy-macdb|sy-sysid|sy-opsys|sy-pfkey|sy-saprl|sy-tcode|sy-ucomm|sy-cfwae|sy-chwae|sy-spono|sy-sponr|sy-waers|sy-cdate|sy-datum|sy-slset|sy-subty|sy-subcs|sy-group|sy-ffile|sy-uzeit|sy-dsnam|sy-repid|sy-tabid|sy-tfdsn|sy-uname|sy-lstat|sy-abcde|sy-marky|sy-sfnam|sy-tname|sy-msgli|sy-title|sy-entry|sy-lisel|sy-uline|sy-xcode|sy-cprog|sy-xprog|sy-xform|sy-ldbpg|sy-tvar0|sy-tvar1|sy-tvar2|sy-tvar3|sy-tvar4|sy-tvar5|sy-tvar6|sy-tvar7|sy-tvar8|sy-tvar9|sy-msgid|sy-msgty|sy-msgno|sy-msgv1|sy-msgv2|sy-msgv3|sy-msgv4|sy-oncom|sy-vline|sy-winsl|sy-staco|sy-staro|sy-datar|sy-host|sy-locdb|sy-locop|sy-datlo|sy-timlo|sy-zonlo|syst-index|syst-pagno|syst-tabix|syst-tfill|syst-tlopc|syst-tmaxl|syst-toccu|syst-ttabc|syst-tstis|syst-ttabi|syst-dbcnt|syst-fdpos|syst-colno|syst-linct|syst-linno|syst-linsz|syst-pagct|syst-macol|syst-marow|syst-tleng|syst-sfoff|syst-willi|syst-lilli|syst-subrc|syst-fleng|syst-cucol|syst-curow|syst-lsind|syst-listi|syst-stepl|syst-tpagi|syst-winx1|syst-winy1|syst-winx2|syst-winy2|syst-winco|syst-winro|syst-windi|syst-srows|syst-scols|syst-loopc|syst-folen|syst-fodec|syst-tzone|syst-dayst|syst-ftype|syst-appli|syst-fdayw|syst-ccurs|syst-ccurt|syst-debug|syst-ctype|syst-input|syst-langu|syst-modno|syst-batch|syst-binpt|syst-calld|syst-dynnr|syst-dyngr|syst-newpa|syst-pri40|syst-rstrt|syst-wtitl|syst-cpage|syst-dbnam|syst-mandt|syst-prefx|syst-fmkey|syst-pexpi|syst-prini|syst-primm|syst-prrel|syst-playo|syst-prbig|syst-playp|syst-prnew|syst-prlog|syst-pdest|syst-plist|syst-pauth|syst-prdsn|syst-pnwpa|syst-callr|syst-repi2|syst-rtitl|syst-prrec|syst-prtxt|syst-prabt|syst-lpass|syst-nrpag|syst-paart|syst-prcop|syst-batzs|syst-bspld|syst-brep4|syst-batzo|syst-batzd|syst-batzw|syst-batzm|syst-ctabl|syst-dbsys|syst-dcsys|syst-macdb|syst-sysid|syst-opsys|syst-pfkey|syst-saprl|syst-tcode|syst-ucomm|syst-cfwae|syst-chwae|syst-spono|syst-sponr|syst-waers|syst-cdate|syst-datum|syst-slset|syst-subty|syst-subcs|syst-group|syst-ffile|syst-uzeit|syst-dsnam|syst-repid|syst-tabid|syst-tfdsn|syst-uname|syst-lstat|syst-abcde|syst-marky|syst-sfnam|syst-tname|syst-msgli|syst-title|syst-entry|syst-lisel|syst-uline|syst-xcode|syst-cprog|syst-xprog|syst-xform|syst-ldbpg|syst-tvar0|syst-tvar1|syst-tvar2|syst-tvar3|syst-tvar4|syst-tvar5|syst-tvar6|syst-tvar7|syst-tvar8|syst-tvar9|syst-msgid|syst-msgty|syst-msgno|syst-msgv1|syst-msgv2|syst-msgv3|syst-msgv4|syst-oncom|syst-vline|syst-winsl|syst-staco|syst-staro|syst-datar|syst-host|syst-locdb|syst-locop|syst-datlo|syst-timlo|syst-zonlo)$/', + 'reserved' => '/^((?i)abs|acos|add|add-corresponding|adjacent|after|aliases|all|analyzer|and|any|append|as|ascending|asin|assign|assigned|assigning|at|atan|authority-check|avg|back|before|begin|binary|bit|bit-and|bit-not|bit-or|bit-xor|blank|block|break-point|buffer|by|c|call|case|catch|ceil|centered|chain|change|changing|check|checkbox|class|class-data|class-events|class-methods|class-pool|clear|client|close|cnt|code|collect|color|comment|commit|communication|compute|concatenate|condense|constants|context|contexts|continue|control|controls|convert|copy|corresponding|cos|cosh|count|country|create|currency|cursor|customer-function|data|database|dataset|delete|decimals|default|define|demand|descending|describe|dialog|distinct|div|divide|divide-corresponding|do|duplicates|dynpro|edit|editor-call|else|elseif|end|end-of-definition|end-of-page|end-of-selection|endat|endcase|endcatch|endchain|endclass|enddo|endexec|endform|endfunction|endif|endinterface|endloop|endmethod|endmodule|endon|endprovide|endselect|endwhile|entries|events|exec|exit|exit-command|exp|exponent|export|exporting|exceptions|extended|extract|fetch|field|field-groups|field-symbols|fields|floor|for|form|format|frac|frame|free|from|function|function-pool|generate|get|group|hashed|header|help-id|help-request|hide|hotspot|icon|id|if|import|importing|include|index|infotypes|initialization|inner|input|insert|intensified|interface|interface-pool|interfaces|into|inverse|join|key|language|last|leave|left|left-justified|like|line|line-count|line-selection|line-size|lines|list-processing|load|load-of-program|local|locale|log|log10|loop|m|margin|mask|matchcode|max|memory|message|message-id|messages|method|methods|min|mod|mode|modif|modify|module|move|move-corresponding|multiply|multiply-corresponding|new|new-line|new-page|next|no|no-gap|no-gaps|no-heading|no-scrolling|no-sign|no-title|no-zero|nodes|non-unique|o|object|obligatory|occurs|of|off|on|open|or|order|others|outer|output|overlay|pack|page|parameter|parameters|perform|pf-status|position|print|print-control|private|process|program|property|protected|provide|public|put|radiobutton|raise|raising|range|ranges|read|receive|refresh|reject|replace|report|requested|reserve|reset|right-justified|rollback|round|rows|rtti|run|scan|screen|search|separated|scroll|scroll-boundary|select|select-options|selection-screen|selection-table|set|shared|shift|sign|sin|single|sinh|size|skip|sort|sorted|split|sql|sqrt|stamp|standard|start-of-selection|statics|stop|string|strlen|structure|submit|subtract|subtract-corresponding|sum|supply|suppress|symbol|syntax-check|syntax-trace|system-call|system-exceptions|table|table_line|tables|tan|tanh|text|textpool|time|times|title|titlebar|to|top-of-page|transaction|transfer|translate|transporting|trunc|type|type-pool|type-pools|types|uline|under|unique|unit|unpack|up|update|user-command|using|value|value-request|values|vary|when|where|while|window|with|with-title|work|write|x|xstring|z|zone)$/', + 'constants' => '/^((?i)initial|null|space|col_background|col_heading|col_normal|col_total|col_key|col_positive|col_negative|col_group)$/', + ), + ), + 3 => + array ( + ), + 4 => + array ( + ), + ); + $this->_parts = array ( + 0 => + array ( + 0 => NULL, + 1 => NULL, + 2 => NULL, + 3 => NULL, + 4 => NULL, + 5 => NULL, + 6 => NULL, + 7 => NULL, + 8 => NULL, + 9 => NULL, + ), + 1 => + array ( + 0 => NULL, + 1 => NULL, + 2 => NULL, + 3 => NULL, + 4 => NULL, + 5 => NULL, + 6 => NULL, + 7 => NULL, + 8 => NULL, + 9 => NULL, + ), + 2 => + array ( + 0 => NULL, + 1 => NULL, + 2 => NULL, + 3 => NULL, + 4 => NULL, + 5 => NULL, + 6 => NULL, + 7 => NULL, + 8 => NULL, + 9 => NULL, + ), + 3 => + array ( + ), + 4 => + array ( + ), + ); + $this->_subst = array ( + -1 => + array ( + 0 => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => false, + ), + 0 => + array ( + 0 => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => false, + 6 => false, + 7 => false, + 8 => false, + 9 => false, + ), + 1 => + array ( + 0 => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => false, + 6 => false, + 7 => false, + 8 => false, + 9 => false, + ), + 2 => + array ( + 0 => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => false, + 6 => false, + 7 => false, + 8 => false, + 9 => false, + ), + 3 => + array ( + ), + 4 => + array ( + ), + ); + $this->_conditions = array ( + ); + $this->_kwmap = array ( + 'sy' => 'reserved', + 'reserved' => 'reserved', + 'constants' => 'reserved', + ); + $this->_defClass = 'code'; + $this->_checkDefines(); + } + +} \ No newline at end of file diff --git a/library/Text_Highlighter/Text/Highlighter/AVRC.php b/library/Text_Highlighter/Text/Highlighter/AVRC.php new file mode 100644 index 000000000..de4b82ccd --- /dev/null +++ b/library/Text_Highlighter/Text/Highlighter/AVRC.php @@ -0,0 +1,894 @@ + + + * + */ + +/** + * @ignore + */ + +require_once 'Text/Highlighter.php'; + +/** + * Auto-generated class. AVRC syntax highlighting + * + * @author Andrey Demenev + * @category Text + * @package Text_Highlighter + * @copyright 2004-2006 Andrey Demenev + * @license http://www.php.net/license/3_0.txt PHP License + * @version Release: 0.7.0 + * @link http://pear.php.net/package/Text_Highlighter + */ +class Text_Highlighter_AVRC extends Text_Highlighter +{ + var $_language = 'avrc'; + + /** + * PHP4 Compatible Constructor + * + * @param array $options + * @access public + */ + function Text_Highlighter_AVRC($options=array()) + { + $this->__construct($options); + } + + + /** + * Constructor + * + * @param array $options + * @access public + */ + function __construct($options=array()) + { + + $this->_options = $options; + $this->_regs = array ( + -1 => '/((?i)")|((?i)\\{)|((?i)\\()|((?i)\\[)|((?i)[a-z_]\\w*)|((?i)\\b0[xX][\\da-f]+)|((?i)\\b\\d\\d*|\\b0\\b)|((?i)\\b0[0-7]+)|((?i)\\b(\\d*\\.\\d+)|(\\d+\\.\\d*))|((?mi)^[ \\t]*#include)|((?mii)^[ \\t]*#[ \\t]*[a-z]+)|((?i)\\d*\\.?\\d+)|((?i)\\/\\*)|((?i)\\/\\/.+)/', + 0 => '/((?i)\\\\)/', + 1 => '/((?i)")|((?i)\\{)|((?i)\\()|((?i)\\[)|((?i)[a-z_]\\w*)|((?i)\\b0[xX][\\da-f]+)|((?i)\\b\\d\\d*|\\b0\\b)|((?i)\\b0[0-7]+)|((?i)\\b(\\d*\\.\\d+)|(\\d+\\.\\d*))|((?mi)^[ \\t]*#include)|((?mii)^[ \\t]*#[ \\t]*[a-z]+)|((?i)\\d*\\.?\\d+)|((?i)\\/\\*)|((?i)\\/\\/.+)/', + 2 => '/((?i)")|((?i)\\{)|((?i)\\()|((?i)\\[)|((?i)[a-z_]\\w*)|((?i)\\b0[xX][\\da-f]+)|((?i)\\b\\d\\d*|\\b0\\b)|((?i)\\b0[0-7]+)|((?i)\\b(\\d*\\.\\d+)|(\\d+\\.\\d*))|((?mi)^[ \\t]*#include)|((?mii)^[ \\t]*#[ \\t]*[a-z]+)|((?i)\\d*\\.?\\d+)|((?i)\\/\\*)|((?i)\\/\\/.+)/', + 3 => '/((?i)")|((?i)\\{)|((?i)\\()|((?i)\\[)|((?i)[a-z_]\\w*)|((?i)\\b0[xX][\\da-f]+)|((?i)\\b\\d\\d*|\\b0\\b)|((?i)\\b0[0-7]+)|((?i)\\b(\\d*\\.\\d+)|(\\d+\\.\\d*))|((?mi)^[ \\t]*#include)|((?mii)^[ \\t]*#[ \\t]*[a-z]+)|((?i)\\d*\\.?\\d+)|((?i)\\/\\*)|((?i)\\/\\/.+)/', + 4 => '//', + 5 => '/((?i)")|((?i)<)/', + 6 => '/((?i)")|((?i)\\{)|((?i)\\()|((?i)[a-z_]\\w*)|((?i)\\b0[xX][\\da-f]+)|((?i)\\b\\d\\d*|\\b0\\b)|((?i)\\b0[0-7]+)|((?i)\\b(\\d*\\.\\d+)|(\\d+\\.\\d*))|((?i)\\/\\*)|((?i)\\/\\/.+)/', + 7 => '/((?i)\\$\\w+\\s*:.+\\$)/', + 8 => '/((?i)\\$\\w+\\s*:.+\\$)/', + ); + $this->_counts = array ( + -1 => + array ( + 0 => 0, + 1 => 0, + 2 => 0, + 3 => 0, + 4 => 0, + 5 => 0, + 6 => 0, + 7 => 0, + 8 => 2, + 9 => 0, + 10 => 0, + 11 => 0, + 12 => 0, + 13 => 0, + ), + 0 => + array ( + 0 => 0, + ), + 1 => + array ( + 0 => 0, + 1 => 0, + 2 => 0, + 3 => 0, + 4 => 0, + 5 => 0, + 6 => 0, + 7 => 0, + 8 => 2, + 9 => 0, + 10 => 0, + 11 => 0, + 12 => 0, + 13 => 0, + ), + 2 => + array ( + 0 => 0, + 1 => 0, + 2 => 0, + 3 => 0, + 4 => 0, + 5 => 0, + 6 => 0, + 7 => 0, + 8 => 2, + 9 => 0, + 10 => 0, + 11 => 0, + 12 => 0, + 13 => 0, + ), + 3 => + array ( + 0 => 0, + 1 => 0, + 2 => 0, + 3 => 0, + 4 => 0, + 5 => 0, + 6 => 0, + 7 => 0, + 8 => 2, + 9 => 0, + 10 => 0, + 11 => 0, + 12 => 0, + 13 => 0, + ), + 4 => + array ( + ), + 5 => + array ( + 0 => 0, + 1 => 0, + ), + 6 => + array ( + 0 => 0, + 1 => 0, + 2 => 0, + 3 => 0, + 4 => 0, + 5 => 0, + 6 => 0, + 7 => 2, + 8 => 0, + 9 => 0, + ), + 7 => + array ( + 0 => 0, + ), + 8 => + array ( + 0 => 0, + ), + ); + $this->_delim = array ( + -1 => + array ( + 0 => 'quotes', + 1 => 'brackets', + 2 => 'brackets', + 3 => 'brackets', + 4 => '', + 5 => '', + 6 => '', + 7 => '', + 8 => '', + 9 => 'prepro', + 10 => 'prepro', + 11 => '', + 12 => 'mlcomment', + 13 => 'comment', + ), + 0 => + array ( + 0 => '', + ), + 1 => + array ( + 0 => 'quotes', + 1 => 'brackets', + 2 => 'brackets', + 3 => 'brackets', + 4 => '', + 5 => '', + 6 => '', + 7 => '', + 8 => '', + 9 => 'prepro', + 10 => 'prepro', + 11 => '', + 12 => 'mlcomment', + 13 => 'comment', + ), + 2 => + array ( + 0 => 'quotes', + 1 => 'brackets', + 2 => 'brackets', + 3 => 'brackets', + 4 => '', + 5 => '', + 6 => '', + 7 => '', + 8 => '', + 9 => 'prepro', + 10 => 'prepro', + 11 => '', + 12 => 'mlcomment', + 13 => 'comment', + ), + 3 => + array ( + 0 => 'quotes', + 1 => 'brackets', + 2 => 'brackets', + 3 => 'brackets', + 4 => '', + 5 => '', + 6 => '', + 7 => '', + 8 => '', + 9 => 'prepro', + 10 => 'prepro', + 11 => '', + 12 => 'mlcomment', + 13 => 'comment', + ), + 4 => + array ( + ), + 5 => + array ( + 0 => 'quotes', + 1 => 'quotes', + ), + 6 => + array ( + 0 => 'quotes', + 1 => 'brackets', + 2 => 'brackets', + 3 => '', + 4 => '', + 5 => '', + 6 => '', + 7 => '', + 8 => 'mlcomment', + 9 => 'comment', + ), + 7 => + array ( + 0 => '', + ), + 8 => + array ( + 0 => '', + ), + ); + $this->_inner = array ( + -1 => + array ( + 0 => 'string', + 1 => 'code', + 2 => 'code', + 3 => 'code', + 4 => 'identifier', + 5 => 'number', + 6 => 'number', + 7 => 'number', + 8 => 'number', + 9 => 'prepro', + 10 => 'code', + 11 => 'number', + 12 => 'mlcomment', + 13 => 'comment', + ), + 0 => + array ( + 0 => 'special', + ), + 1 => + array ( + 0 => 'string', + 1 => 'code', + 2 => 'code', + 3 => 'code', + 4 => 'identifier', + 5 => 'number', + 6 => 'number', + 7 => 'number', + 8 => 'number', + 9 => 'prepro', + 10 => 'code', + 11 => 'number', + 12 => 'mlcomment', + 13 => 'comment', + ), + 2 => + array ( + 0 => 'string', + 1 => 'code', + 2 => 'code', + 3 => 'code', + 4 => 'identifier', + 5 => 'number', + 6 => 'number', + 7 => 'number', + 8 => 'number', + 9 => 'prepro', + 10 => 'code', + 11 => 'number', + 12 => 'mlcomment', + 13 => 'comment', + ), + 3 => + array ( + 0 => 'string', + 1 => 'code', + 2 => 'code', + 3 => 'code', + 4 => 'identifier', + 5 => 'number', + 6 => 'number', + 7 => 'number', + 8 => 'number', + 9 => 'prepro', + 10 => 'code', + 11 => 'number', + 12 => 'mlcomment', + 13 => 'comment', + ), + 4 => + array ( + ), + 5 => + array ( + 0 => 'string', + 1 => 'string', + ), + 6 => + array ( + 0 => 'string', + 1 => 'code', + 2 => 'code', + 3 => 'identifier', + 4 => 'number', + 5 => 'number', + 6 => 'number', + 7 => 'number', + 8 => 'mlcomment', + 9 => 'comment', + ), + 7 => + array ( + 0 => 'inlinedoc', + ), + 8 => + array ( + 0 => 'inlinedoc', + ), + ); + $this->_end = array ( + 0 => '/(?i)"/', + 1 => '/(?i)\\}/', + 2 => '/(?i)\\)/', + 3 => '/(?i)\\]/', + 4 => '/(?i)>/', + 5 => '/(?mi)(? '/(?mi)(? '/(?i)\\*\\//', + 8 => '/(?mi)$/', + ); + $this->_states = array ( + -1 => + array ( + 0 => 0, + 1 => 1, + 2 => 2, + 3 => 3, + 4 => -1, + 5 => -1, + 6 => -1, + 7 => -1, + 8 => -1, + 9 => 5, + 10 => 6, + 11 => -1, + 12 => 7, + 13 => 8, + ), + 0 => + array ( + 0 => -1, + ), + 1 => + array ( + 0 => 0, + 1 => 1, + 2 => 2, + 3 => 3, + 4 => -1, + 5 => -1, + 6 => -1, + 7 => -1, + 8 => -1, + 9 => 5, + 10 => 6, + 11 => -1, + 12 => 7, + 13 => 8, + ), + 2 => + array ( + 0 => 0, + 1 => 1, + 2 => 2, + 3 => 3, + 4 => -1, + 5 => -1, + 6 => -1, + 7 => -1, + 8 => -1, + 9 => 5, + 10 => 6, + 11 => -1, + 12 => 7, + 13 => 8, + ), + 3 => + array ( + 0 => 0, + 1 => 1, + 2 => 2, + 3 => 3, + 4 => -1, + 5 => -1, + 6 => -1, + 7 => -1, + 8 => -1, + 9 => 5, + 10 => 6, + 11 => -1, + 12 => 7, + 13 => 8, + ), + 4 => + array ( + ), + 5 => + array ( + 0 => 0, + 1 => 4, + ), + 6 => + array ( + 0 => 0, + 1 => 1, + 2 => 2, + 3 => -1, + 4 => -1, + 5 => -1, + 6 => -1, + 7 => -1, + 8 => 7, + 9 => 8, + ), + 7 => + array ( + 0 => -1, + ), + 8 => + array ( + 0 => -1, + ), + ); + $this->_keywords = array ( + -1 => + array ( + 0 => -1, + 1 => -1, + 2 => -1, + 3 => -1, + 4 => + array ( + 'reserved' => '/^(and|and_eq|asm|bitand|bitor|break|case|catch|compl|const_cast|continue|default|delete|do|dynamic_cast|else|for|fortran|friend|goto|if|new|not|not_eq|operator|or|or_eq|private|protected|public|reinterpret_cast|return|sizeof|static_cast|switch|this|throw|try|typeid|using|while|xor|xor_eq|false|true)$/', + 'registers' => '/^(ACSR|ADCH|ADCL|ADCSRA|ADMUX|ASSR|DDRA|DDRB|DDRC|DDRD|DDRE|DDRF|DDRG|EEARH|EEARL|EECR|EEDR|EICRA|EICRB|EIFR|EIMSK|ETIFR|ETIMSK|GICR|GIFR|ICR1H|ICR1L|ICR3H|ICR3L|MCUCR|MCUCSR|OCDR|OCR0|OCR1AH|OCR1AL|OCR1BH|OCR1BL|OCR1CH|OCR1CL|OCR2|OCR3AH|OCR3AL|OCR3BH|OCR3BL|OCR3CH|OCR3CL|OSCCAL|PINA|PINB|PINC|PIND|PINE|PINF|PING|PORTA|PORTB|PORTC|PORTD|PORTE|PORTF|PORTG|RAMPZ|SFIOR|SPCR|SPDR|SPH|SPL|SPMCR|SPMCSR|SPSR|SREG|TCCR0|TCCR1A|TCCR1B|TCCR1C|TCCR2|TCCR3A|TCCR3B|TCCR3C|TCNT0|TCNT1H|TCNT1L|TCNT2|TCNT3H|TCNT3L|TIFR|TIMSK|TWAR|TWBR|TWCR|TWDR|TWSR|UBRR0H|UBRR0L|UBRR1H|UBRR1L|UBRRH|UBRRL|UCSR0A|UCSR0B|UCSR0C|UCSR1A|UCSR1B|UCSR1C|UCSRA|UCSRB|UCSRC|UDR|UDR0|UDR1|WDTCR|XDIV|XMCRA|XMCRB)$/', + 'types' => '/^(auto|bool|char|class|const|double|enum|explicit|export|extern|float|inline|int|long|mutable|namespace|register|short|signed|static|struct|template|typedef|typename|union|unsigned|virtual|void|volatile|wchar_t)$/', + 'Common Macros' => '/^(NULL|TRUE|FALSE|MAX|MIN|__LINE__|__DATA__|__FILE__|__TIME__|__STDC__)$/', + ), + 5 => + array ( + ), + 6 => + array ( + ), + 7 => + array ( + ), + 8 => + array ( + ), + 9 => -1, + 10 => -1, + 11 => + array ( + ), + 12 => -1, + 13 => -1, + ), + 0 => + array ( + 0 => + array ( + ), + ), + 1 => + array ( + 0 => -1, + 1 => -1, + 2 => -1, + 3 => -1, + 4 => + array ( + 'reserved' => '/^(and|and_eq|asm|bitand|bitor|break|case|catch|compl|const_cast|continue|default|delete|do|dynamic_cast|else|for|fortran|friend|goto|if|new|not|not_eq|operator|or|or_eq|private|protected|public|reinterpret_cast|return|sizeof|static_cast|switch|this|throw|try|typeid|using|while|xor|xor_eq|false|true)$/', + 'registers' => '/^(ACSR|ADCH|ADCL|ADCSRA|ADMUX|ASSR|DDRA|DDRB|DDRC|DDRD|DDRE|DDRF|DDRG|EEARH|EEARL|EECR|EEDR|EICRA|EICRB|EIFR|EIMSK|ETIFR|ETIMSK|GICR|GIFR|ICR1H|ICR1L|ICR3H|ICR3L|MCUCR|MCUCSR|OCDR|OCR0|OCR1AH|OCR1AL|OCR1BH|OCR1BL|OCR1CH|OCR1CL|OCR2|OCR3AH|OCR3AL|OCR3BH|OCR3BL|OCR3CH|OCR3CL|OSCCAL|PINA|PINB|PINC|PIND|PINE|PINF|PING|PORTA|PORTB|PORTC|PORTD|PORTE|PORTF|PORTG|RAMPZ|SFIOR|SPCR|SPDR|SPH|SPL|SPMCR|SPMCSR|SPSR|SREG|TCCR0|TCCR1A|TCCR1B|TCCR1C|TCCR2|TCCR3A|TCCR3B|TCCR3C|TCNT0|TCNT1H|TCNT1L|TCNT2|TCNT3H|TCNT3L|TIFR|TIMSK|TWAR|TWBR|TWCR|TWDR|TWSR|UBRR0H|UBRR0L|UBRR1H|UBRR1L|UBRRH|UBRRL|UCSR0A|UCSR0B|UCSR0C|UCSR1A|UCSR1B|UCSR1C|UCSRA|UCSRB|UCSRC|UDR|UDR0|UDR1|WDTCR|XDIV|XMCRA|XMCRB)$/', + 'types' => '/^(auto|bool|char|class|const|double|enum|explicit|export|extern|float|inline|int|long|mutable|namespace|register|short|signed|static|struct|template|typedef|typename|union|unsigned|virtual|void|volatile|wchar_t)$/', + 'Common Macros' => '/^(NULL|TRUE|FALSE|MAX|MIN|__LINE__|__DATA__|__FILE__|__TIME__|__STDC__)$/', + ), + 5 => + array ( + ), + 6 => + array ( + ), + 7 => + array ( + ), + 8 => + array ( + ), + 9 => -1, + 10 => -1, + 11 => + array ( + ), + 12 => -1, + 13 => -1, + ), + 2 => + array ( + 0 => -1, + 1 => -1, + 2 => -1, + 3 => -1, + 4 => + array ( + 'reserved' => '/^(and|and_eq|asm|bitand|bitor|break|case|catch|compl|const_cast|continue|default|delete|do|dynamic_cast|else|for|fortran|friend|goto|if|new|not|not_eq|operator|or|or_eq|private|protected|public|reinterpret_cast|return|sizeof|static_cast|switch|this|throw|try|typeid|using|while|xor|xor_eq|false|true)$/', + 'registers' => '/^(ACSR|ADCH|ADCL|ADCSRA|ADMUX|ASSR|DDRA|DDRB|DDRC|DDRD|DDRE|DDRF|DDRG|EEARH|EEARL|EECR|EEDR|EICRA|EICRB|EIFR|EIMSK|ETIFR|ETIMSK|GICR|GIFR|ICR1H|ICR1L|ICR3H|ICR3L|MCUCR|MCUCSR|OCDR|OCR0|OCR1AH|OCR1AL|OCR1BH|OCR1BL|OCR1CH|OCR1CL|OCR2|OCR3AH|OCR3AL|OCR3BH|OCR3BL|OCR3CH|OCR3CL|OSCCAL|PINA|PINB|PINC|PIND|PINE|PINF|PING|PORTA|PORTB|PORTC|PORTD|PORTE|PORTF|PORTG|RAMPZ|SFIOR|SPCR|SPDR|SPH|SPL|SPMCR|SPMCSR|SPSR|SREG|TCCR0|TCCR1A|TCCR1B|TCCR1C|TCCR2|TCCR3A|TCCR3B|TCCR3C|TCNT0|TCNT1H|TCNT1L|TCNT2|TCNT3H|TCNT3L|TIFR|TIMSK|TWAR|TWBR|TWCR|TWDR|TWSR|UBRR0H|UBRR0L|UBRR1H|UBRR1L|UBRRH|UBRRL|UCSR0A|UCSR0B|UCSR0C|UCSR1A|UCSR1B|UCSR1C|UCSRA|UCSRB|UCSRC|UDR|UDR0|UDR1|WDTCR|XDIV|XMCRA|XMCRB)$/', + 'types' => '/^(auto|bool|char|class|const|double|enum|explicit|export|extern|float|inline|int|long|mutable|namespace|register|short|signed|static|struct|template|typedef|typename|union|unsigned|virtual|void|volatile|wchar_t)$/', + 'Common Macros' => '/^(NULL|TRUE|FALSE|MAX|MIN|__LINE__|__DATA__|__FILE__|__TIME__|__STDC__)$/', + ), + 5 => + array ( + ), + 6 => + array ( + ), + 7 => + array ( + ), + 8 => + array ( + ), + 9 => -1, + 10 => -1, + 11 => + array ( + ), + 12 => -1, + 13 => -1, + ), + 3 => + array ( + 0 => -1, + 1 => -1, + 2 => -1, + 3 => -1, + 4 => + array ( + 'reserved' => '/^(and|and_eq|asm|bitand|bitor|break|case|catch|compl|const_cast|continue|default|delete|do|dynamic_cast|else|for|fortran|friend|goto|if|new|not|not_eq|operator|or|or_eq|private|protected|public|reinterpret_cast|return|sizeof|static_cast|switch|this|throw|try|typeid|using|while|xor|xor_eq|false|true)$/', + 'registers' => '/^(ACSR|ADCH|ADCL|ADCSRA|ADMUX|ASSR|DDRA|DDRB|DDRC|DDRD|DDRE|DDRF|DDRG|EEARH|EEARL|EECR|EEDR|EICRA|EICRB|EIFR|EIMSK|ETIFR|ETIMSK|GICR|GIFR|ICR1H|ICR1L|ICR3H|ICR3L|MCUCR|MCUCSR|OCDR|OCR0|OCR1AH|OCR1AL|OCR1BH|OCR1BL|OCR1CH|OCR1CL|OCR2|OCR3AH|OCR3AL|OCR3BH|OCR3BL|OCR3CH|OCR3CL|OSCCAL|PINA|PINB|PINC|PIND|PINE|PINF|PING|PORTA|PORTB|PORTC|PORTD|PORTE|PORTF|PORTG|RAMPZ|SFIOR|SPCR|SPDR|SPH|SPL|SPMCR|SPMCSR|SPSR|SREG|TCCR0|TCCR1A|TCCR1B|TCCR1C|TCCR2|TCCR3A|TCCR3B|TCCR3C|TCNT0|TCNT1H|TCNT1L|TCNT2|TCNT3H|TCNT3L|TIFR|TIMSK|TWAR|TWBR|TWCR|TWDR|TWSR|UBRR0H|UBRR0L|UBRR1H|UBRR1L|UBRRH|UBRRL|UCSR0A|UCSR0B|UCSR0C|UCSR1A|UCSR1B|UCSR1C|UCSRA|UCSRB|UCSRC|UDR|UDR0|UDR1|WDTCR|XDIV|XMCRA|XMCRB)$/', + 'types' => '/^(auto|bool|char|class|const|double|enum|explicit|export|extern|float|inline|int|long|mutable|namespace|register|short|signed|static|struct|template|typedef|typename|union|unsigned|virtual|void|volatile|wchar_t)$/', + 'Common Macros' => '/^(NULL|TRUE|FALSE|MAX|MIN|__LINE__|__DATA__|__FILE__|__TIME__|__STDC__)$/', + ), + 5 => + array ( + ), + 6 => + array ( + ), + 7 => + array ( + ), + 8 => + array ( + ), + 9 => -1, + 10 => -1, + 11 => + array ( + ), + 12 => -1, + 13 => -1, + ), + 4 => + array ( + ), + 5 => + array ( + 0 => -1, + 1 => -1, + ), + 6 => + array ( + 0 => -1, + 1 => -1, + 2 => -1, + 3 => + array ( + 'reserved' => '/^(and|and_eq|asm|bitand|bitor|break|case|catch|compl|const_cast|continue|default|delete|do|dynamic_cast|else|for|fortran|friend|goto|if|new|not|not_eq|operator|or|or_eq|private|protected|public|reinterpret_cast|return|sizeof|static_cast|switch|this|throw|try|typeid|using|while|xor|xor_eq|false|true)$/', + 'registers' => '/^(ACSR|ADCH|ADCL|ADCSRA|ADMUX|ASSR|DDRA|DDRB|DDRC|DDRD|DDRE|DDRF|DDRG|EEARH|EEARL|EECR|EEDR|EICRA|EICRB|EIFR|EIMSK|ETIFR|ETIMSK|GICR|GIFR|ICR1H|ICR1L|ICR3H|ICR3L|MCUCR|MCUCSR|OCDR|OCR0|OCR1AH|OCR1AL|OCR1BH|OCR1BL|OCR1CH|OCR1CL|OCR2|OCR3AH|OCR3AL|OCR3BH|OCR3BL|OCR3CH|OCR3CL|OSCCAL|PINA|PINB|PINC|PIND|PINE|PINF|PING|PORTA|PORTB|PORTC|PORTD|PORTE|PORTF|PORTG|RAMPZ|SFIOR|SPCR|SPDR|SPH|SPL|SPMCR|SPMCSR|SPSR|SREG|TCCR0|TCCR1A|TCCR1B|TCCR1C|TCCR2|TCCR3A|TCCR3B|TCCR3C|TCNT0|TCNT1H|TCNT1L|TCNT2|TCNT3H|TCNT3L|TIFR|TIMSK|TWAR|TWBR|TWCR|TWDR|TWSR|UBRR0H|UBRR0L|UBRR1H|UBRR1L|UBRRH|UBRRL|UCSR0A|UCSR0B|UCSR0C|UCSR1A|UCSR1B|UCSR1C|UCSRA|UCSRB|UCSRC|UDR|UDR0|UDR1|WDTCR|XDIV|XMCRA|XMCRB)$/', + 'types' => '/^(auto|bool|char|class|const|double|enum|explicit|export|extern|float|inline|int|long|mutable|namespace|register|short|signed|static|struct|template|typedef|typename|union|unsigned|virtual|void|volatile|wchar_t)$/', + 'Common Macros' => '/^(NULL|TRUE|FALSE|MAX|MIN|__LINE__|__DATA__|__FILE__|__TIME__|__STDC__)$/', + ), + 4 => + array ( + ), + 5 => + array ( + ), + 6 => + array ( + ), + 7 => + array ( + ), + 8 => -1, + 9 => -1, + ), + 7 => + array ( + 0 => + array ( + ), + ), + 8 => + array ( + 0 => + array ( + ), + ), + ); + $this->_parts = array ( + 0 => + array ( + 0 => NULL, + ), + 1 => + array ( + 0 => NULL, + 1 => NULL, + 2 => NULL, + 3 => NULL, + 4 => NULL, + 5 => NULL, + 6 => NULL, + 7 => NULL, + 8 => NULL, + 9 => NULL, + 10 => NULL, + 11 => NULL, + 12 => NULL, + 13 => NULL, + ), + 2 => + array ( + 0 => NULL, + 1 => NULL, + 2 => NULL, + 3 => NULL, + 4 => NULL, + 5 => NULL, + 6 => NULL, + 7 => NULL, + 8 => NULL, + 9 => NULL, + 10 => NULL, + 11 => NULL, + 12 => NULL, + 13 => NULL, + ), + 3 => + array ( + 0 => NULL, + 1 => NULL, + 2 => NULL, + 3 => NULL, + 4 => NULL, + 5 => NULL, + 6 => NULL, + 7 => NULL, + 8 => NULL, + 9 => NULL, + 10 => NULL, + 11 => NULL, + 12 => NULL, + 13 => NULL, + ), + 4 => + array ( + ), + 5 => + array ( + 0 => NULL, + 1 => NULL, + ), + 6 => + array ( + 0 => NULL, + 1 => NULL, + 2 => NULL, + 3 => NULL, + 4 => NULL, + 5 => NULL, + 6 => NULL, + 7 => NULL, + 8 => NULL, + 9 => NULL, + ), + 7 => + array ( + 0 => NULL, + ), + 8 => + array ( + 0 => NULL, + ), + ); + $this->_subst = array ( + -1 => + array ( + 0 => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => false, + 6 => false, + 7 => false, + 8 => false, + 9 => false, + 10 => false, + 11 => false, + 12 => false, + 13 => false, + ), + 0 => + array ( + 0 => false, + ), + 1 => + array ( + 0 => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => false, + 6 => false, + 7 => false, + 8 => false, + 9 => false, + 10 => false, + 11 => false, + 12 => false, + 13 => false, + ), + 2 => + array ( + 0 => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => false, + 6 => false, + 7 => false, + 8 => false, + 9 => false, + 10 => false, + 11 => false, + 12 => false, + 13 => false, + ), + 3 => + array ( + 0 => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => false, + 6 => false, + 7 => false, + 8 => false, + 9 => false, + 10 => false, + 11 => false, + 12 => false, + 13 => false, + ), + 4 => + array ( + ), + 5 => + array ( + 0 => false, + 1 => false, + ), + 6 => + array ( + 0 => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => false, + 6 => false, + 7 => false, + 8 => false, + 9 => false, + ), + 7 => + array ( + 0 => false, + ), + 8 => + array ( + 0 => false, + ), + ); + $this->_conditions = array ( + ); + $this->_kwmap = array ( + 'reserved' => 'reserved', + 'registers' => 'reserved', + 'types' => 'types', + 'Common Macros' => 'prepro', + ); + $this->_defClass = 'code'; + $this->_checkDefines(); + } + +} \ No newline at end of file diff --git a/library/Text_Highlighter/Text/Highlighter/CPP.php b/library/Text_Highlighter/Text/Highlighter/CPP.php new file mode 100644 index 000000000..eaa47c575 --- /dev/null +++ b/library/Text_Highlighter/Text/Highlighter/CPP.php @@ -0,0 +1,891 @@ + + + * + */ + +/** + * @ignore + */ + +require_once 'Text/Highlighter.php'; + +/** + * Auto-generated class. CPP syntax highlighting + * + * @author Aaron Kalin + * @author Andrey Demenev + * @category Text + * @package Text_Highlighter + * @copyright 2004-2006 Andrey Demenev + * @license http://www.php.net/license/3_0.txt PHP License + * @version Release: 0.7.0 + * @link http://pear.php.net/package/Text_Highlighter + */ +class Text_Highlighter_CPP extends Text_Highlighter +{ + var $_language = 'cpp'; + + /** + * PHP4 Compatible Constructor + * + * @param array $options + * @access public + */ + function Text_Highlighter_CPP($options=array()) + { + $this->__construct($options); + } + + + /** + * Constructor + * + * @param array $options + * @access public + */ + function __construct($options=array()) + { + + $this->_options = $options; + $this->_regs = array ( + -1 => '/((?i)")|((?i)\\{)|((?i)\\()|((?i)\\[)|((?i)[a-z_]\\w*)|((?i)\\b0[xX][\\da-f]+)|((?i)\\b\\d\\d*|\\b0\\b)|((?i)\\b0[0-7]+)|((?i)\\b(\\d*\\.\\d+)|(\\d+\\.\\d*))|((?mi)^[ \\t]*#include)|((?mii)^[ \\t]*#[ \\t]*[a-z]+)|((?i)\\d*\\.?\\d+)|((?i)\\/\\*)|((?i)\\/\\/.+)/', + 0 => '/((?i)\\\\)/', + 1 => '/((?i)")|((?i)\\{)|((?i)\\()|((?i)\\[)|((?i)[a-z_]\\w*)|((?i)\\b0[xX][\\da-f]+)|((?i)\\b\\d\\d*|\\b0\\b)|((?i)\\b0[0-7]+)|((?i)\\b(\\d*\\.\\d+)|(\\d+\\.\\d*))|((?mi)^[ \\t]*#include)|((?mii)^[ \\t]*#[ \\t]*[a-z]+)|((?i)\\d*\\.?\\d+)|((?i)\\/\\*)|((?i)\\/\\/.+)/', + 2 => '/((?i)")|((?i)\\{)|((?i)\\()|((?i)\\[)|((?i)[a-z_]\\w*)|((?i)\\b0[xX][\\da-f]+)|((?i)\\b\\d\\d*|\\b0\\b)|((?i)\\b0[0-7]+)|((?i)\\b(\\d*\\.\\d+)|(\\d+\\.\\d*))|((?mi)^[ \\t]*#include)|((?mii)^[ \\t]*#[ \\t]*[a-z]+)|((?i)\\d*\\.?\\d+)|((?i)\\/\\*)|((?i)\\/\\/.+)/', + 3 => '/((?i)")|((?i)\\{)|((?i)\\()|((?i)\\[)|((?i)[a-z_]\\w*)|((?i)\\b0[xX][\\da-f]+)|((?i)\\b\\d\\d*|\\b0\\b)|((?i)\\b0[0-7]+)|((?i)\\b(\\d*\\.\\d+)|(\\d+\\.\\d*))|((?mi)^[ \\t]*#include)|((?mii)^[ \\t]*#[ \\t]*[a-z]+)|((?i)\\d*\\.?\\d+)|((?i)\\/\\*)|((?i)\\/\\/.+)/', + 4 => '//', + 5 => '/((?i)")|((?i)<)/', + 6 => '/((?i)")|((?i)\\{)|((?i)\\()|((?i)[a-z_]\\w*)|((?i)\\b0[xX][\\da-f]+)|((?i)\\b\\d\\d*|\\b0\\b)|((?i)\\b0[0-7]+)|((?i)\\b(\\d*\\.\\d+)|(\\d+\\.\\d*))|((?i)\\/\\*)|((?i)\\/\\/.+)/', + 7 => '/((?i)\\$\\w+\\s*:.+\\$)/', + 8 => '/((?i)\\$\\w+\\s*:.+\\$)/', + ); + $this->_counts = array ( + -1 => + array ( + 0 => 0, + 1 => 0, + 2 => 0, + 3 => 0, + 4 => 0, + 5 => 0, + 6 => 0, + 7 => 0, + 8 => 2, + 9 => 0, + 10 => 0, + 11 => 0, + 12 => 0, + 13 => 0, + ), + 0 => + array ( + 0 => 0, + ), + 1 => + array ( + 0 => 0, + 1 => 0, + 2 => 0, + 3 => 0, + 4 => 0, + 5 => 0, + 6 => 0, + 7 => 0, + 8 => 2, + 9 => 0, + 10 => 0, + 11 => 0, + 12 => 0, + 13 => 0, + ), + 2 => + array ( + 0 => 0, + 1 => 0, + 2 => 0, + 3 => 0, + 4 => 0, + 5 => 0, + 6 => 0, + 7 => 0, + 8 => 2, + 9 => 0, + 10 => 0, + 11 => 0, + 12 => 0, + 13 => 0, + ), + 3 => + array ( + 0 => 0, + 1 => 0, + 2 => 0, + 3 => 0, + 4 => 0, + 5 => 0, + 6 => 0, + 7 => 0, + 8 => 2, + 9 => 0, + 10 => 0, + 11 => 0, + 12 => 0, + 13 => 0, + ), + 4 => + array ( + ), + 5 => + array ( + 0 => 0, + 1 => 0, + ), + 6 => + array ( + 0 => 0, + 1 => 0, + 2 => 0, + 3 => 0, + 4 => 0, + 5 => 0, + 6 => 0, + 7 => 2, + 8 => 0, + 9 => 0, + ), + 7 => + array ( + 0 => 0, + ), + 8 => + array ( + 0 => 0, + ), + ); + $this->_delim = array ( + -1 => + array ( + 0 => 'quotes', + 1 => 'brackets', + 2 => 'brackets', + 3 => 'brackets', + 4 => '', + 5 => '', + 6 => '', + 7 => '', + 8 => '', + 9 => 'prepro', + 10 => 'prepro', + 11 => '', + 12 => 'mlcomment', + 13 => 'comment', + ), + 0 => + array ( + 0 => '', + ), + 1 => + array ( + 0 => 'quotes', + 1 => 'brackets', + 2 => 'brackets', + 3 => 'brackets', + 4 => '', + 5 => '', + 6 => '', + 7 => '', + 8 => '', + 9 => 'prepro', + 10 => 'prepro', + 11 => '', + 12 => 'mlcomment', + 13 => 'comment', + ), + 2 => + array ( + 0 => 'quotes', + 1 => 'brackets', + 2 => 'brackets', + 3 => 'brackets', + 4 => '', + 5 => '', + 6 => '', + 7 => '', + 8 => '', + 9 => 'prepro', + 10 => 'prepro', + 11 => '', + 12 => 'mlcomment', + 13 => 'comment', + ), + 3 => + array ( + 0 => 'quotes', + 1 => 'brackets', + 2 => 'brackets', + 3 => 'brackets', + 4 => '', + 5 => '', + 6 => '', + 7 => '', + 8 => '', + 9 => 'prepro', + 10 => 'prepro', + 11 => '', + 12 => 'mlcomment', + 13 => 'comment', + ), + 4 => + array ( + ), + 5 => + array ( + 0 => 'quotes', + 1 => 'quotes', + ), + 6 => + array ( + 0 => 'quotes', + 1 => 'brackets', + 2 => 'brackets', + 3 => '', + 4 => '', + 5 => '', + 6 => '', + 7 => '', + 8 => 'mlcomment', + 9 => 'comment', + ), + 7 => + array ( + 0 => '', + ), + 8 => + array ( + 0 => '', + ), + ); + $this->_inner = array ( + -1 => + array ( + 0 => 'string', + 1 => 'code', + 2 => 'code', + 3 => 'code', + 4 => 'identifier', + 5 => 'number', + 6 => 'number', + 7 => 'number', + 8 => 'number', + 9 => 'prepro', + 10 => 'code', + 11 => 'number', + 12 => 'mlcomment', + 13 => 'comment', + ), + 0 => + array ( + 0 => 'special', + ), + 1 => + array ( + 0 => 'string', + 1 => 'code', + 2 => 'code', + 3 => 'code', + 4 => 'identifier', + 5 => 'number', + 6 => 'number', + 7 => 'number', + 8 => 'number', + 9 => 'prepro', + 10 => 'code', + 11 => 'number', + 12 => 'mlcomment', + 13 => 'comment', + ), + 2 => + array ( + 0 => 'string', + 1 => 'code', + 2 => 'code', + 3 => 'code', + 4 => 'identifier', + 5 => 'number', + 6 => 'number', + 7 => 'number', + 8 => 'number', + 9 => 'prepro', + 10 => 'code', + 11 => 'number', + 12 => 'mlcomment', + 13 => 'comment', + ), + 3 => + array ( + 0 => 'string', + 1 => 'code', + 2 => 'code', + 3 => 'code', + 4 => 'identifier', + 5 => 'number', + 6 => 'number', + 7 => 'number', + 8 => 'number', + 9 => 'prepro', + 10 => 'code', + 11 => 'number', + 12 => 'mlcomment', + 13 => 'comment', + ), + 4 => + array ( + ), + 5 => + array ( + 0 => 'string', + 1 => 'string', + ), + 6 => + array ( + 0 => 'string', + 1 => 'code', + 2 => 'code', + 3 => 'identifier', + 4 => 'number', + 5 => 'number', + 6 => 'number', + 7 => 'number', + 8 => 'mlcomment', + 9 => 'comment', + ), + 7 => + array ( + 0 => 'inlinedoc', + ), + 8 => + array ( + 0 => 'inlinedoc', + ), + ); + $this->_end = array ( + 0 => '/(?i)"/', + 1 => '/(?i)\\}/', + 2 => '/(?i)\\)/', + 3 => '/(?i)\\]/', + 4 => '/(?i)>/', + 5 => '/(?mi)(? '/(?mi)(? '/(?i)\\*\\//', + 8 => '/(?mi)$/', + ); + $this->_states = array ( + -1 => + array ( + 0 => 0, + 1 => 1, + 2 => 2, + 3 => 3, + 4 => -1, + 5 => -1, + 6 => -1, + 7 => -1, + 8 => -1, + 9 => 5, + 10 => 6, + 11 => -1, + 12 => 7, + 13 => 8, + ), + 0 => + array ( + 0 => -1, + ), + 1 => + array ( + 0 => 0, + 1 => 1, + 2 => 2, + 3 => 3, + 4 => -1, + 5 => -1, + 6 => -1, + 7 => -1, + 8 => -1, + 9 => 5, + 10 => 6, + 11 => -1, + 12 => 7, + 13 => 8, + ), + 2 => + array ( + 0 => 0, + 1 => 1, + 2 => 2, + 3 => 3, + 4 => -1, + 5 => -1, + 6 => -1, + 7 => -1, + 8 => -1, + 9 => 5, + 10 => 6, + 11 => -1, + 12 => 7, + 13 => 8, + ), + 3 => + array ( + 0 => 0, + 1 => 1, + 2 => 2, + 3 => 3, + 4 => -1, + 5 => -1, + 6 => -1, + 7 => -1, + 8 => -1, + 9 => 5, + 10 => 6, + 11 => -1, + 12 => 7, + 13 => 8, + ), + 4 => + array ( + ), + 5 => + array ( + 0 => 0, + 1 => 4, + ), + 6 => + array ( + 0 => 0, + 1 => 1, + 2 => 2, + 3 => -1, + 4 => -1, + 5 => -1, + 6 => -1, + 7 => -1, + 8 => 7, + 9 => 8, + ), + 7 => + array ( + 0 => -1, + ), + 8 => + array ( + 0 => -1, + ), + ); + $this->_keywords = array ( + -1 => + array ( + 0 => -1, + 1 => -1, + 2 => -1, + 3 => -1, + 4 => + array ( + 'reserved' => '/^(and|and_eq|asm|bitand|bitor|break|case|catch|compl|const_cast|continue|default|delete|do|dynamic_cast|else|for|fortran|friend|goto|if|new|not|not_eq|operator|or|or_eq|private|protected|public|reinterpret_cast|return|sizeof|static_cast|switch|this|throw|try|typeid|using|while|xor|xor_eq|false|true)$/', + 'types' => '/^(auto|bool|char|class|const|double|enum|explicit|export|extern|float|inline|int|long|mutable|namespace|register|short|signed|static|struct|template|typedef|typename|union|unsigned|virtual|void|volatile|wchar_t)$/', + 'Common Macros' => '/^(NULL|TRUE|FALSE|MAX|MIN|__LINE__|__DATA__|__FILE__|__TIME__|__STDC__)$/', + ), + 5 => + array ( + ), + 6 => + array ( + ), + 7 => + array ( + ), + 8 => + array ( + ), + 9 => -1, + 10 => -1, + 11 => + array ( + ), + 12 => -1, + 13 => -1, + ), + 0 => + array ( + 0 => + array ( + ), + ), + 1 => + array ( + 0 => -1, + 1 => -1, + 2 => -1, + 3 => -1, + 4 => + array ( + 'reserved' => '/^(and|and_eq|asm|bitand|bitor|break|case|catch|compl|const_cast|continue|default|delete|do|dynamic_cast|else|for|fortran|friend|goto|if|new|not|not_eq|operator|or|or_eq|private|protected|public|reinterpret_cast|return|sizeof|static_cast|switch|this|throw|try|typeid|using|while|xor|xor_eq|false|true)$/', + 'types' => '/^(auto|bool|char|class|const|double|enum|explicit|export|extern|float|inline|int|long|mutable|namespace|register|short|signed|static|struct|template|typedef|typename|union|unsigned|virtual|void|volatile|wchar_t)$/', + 'Common Macros' => '/^(NULL|TRUE|FALSE|MAX|MIN|__LINE__|__DATA__|__FILE__|__TIME__|__STDC__)$/', + ), + 5 => + array ( + ), + 6 => + array ( + ), + 7 => + array ( + ), + 8 => + array ( + ), + 9 => -1, + 10 => -1, + 11 => + array ( + ), + 12 => -1, + 13 => -1, + ), + 2 => + array ( + 0 => -1, + 1 => -1, + 2 => -1, + 3 => -1, + 4 => + array ( + 'reserved' => '/^(and|and_eq|asm|bitand|bitor|break|case|catch|compl|const_cast|continue|default|delete|do|dynamic_cast|else|for|fortran|friend|goto|if|new|not|not_eq|operator|or|or_eq|private|protected|public|reinterpret_cast|return|sizeof|static_cast|switch|this|throw|try|typeid|using|while|xor|xor_eq|false|true)$/', + 'types' => '/^(auto|bool|char|class|const|double|enum|explicit|export|extern|float|inline|int|long|mutable|namespace|register|short|signed|static|struct|template|typedef|typename|union|unsigned|virtual|void|volatile|wchar_t)$/', + 'Common Macros' => '/^(NULL|TRUE|FALSE|MAX|MIN|__LINE__|__DATA__|__FILE__|__TIME__|__STDC__)$/', + ), + 5 => + array ( + ), + 6 => + array ( + ), + 7 => + array ( + ), + 8 => + array ( + ), + 9 => -1, + 10 => -1, + 11 => + array ( + ), + 12 => -1, + 13 => -1, + ), + 3 => + array ( + 0 => -1, + 1 => -1, + 2 => -1, + 3 => -1, + 4 => + array ( + 'reserved' => '/^(and|and_eq|asm|bitand|bitor|break|case|catch|compl|const_cast|continue|default|delete|do|dynamic_cast|else|for|fortran|friend|goto|if|new|not|not_eq|operator|or|or_eq|private|protected|public|reinterpret_cast|return|sizeof|static_cast|switch|this|throw|try|typeid|using|while|xor|xor_eq|false|true)$/', + 'types' => '/^(auto|bool|char|class|const|double|enum|explicit|export|extern|float|inline|int|long|mutable|namespace|register|short|signed|static|struct|template|typedef|typename|union|unsigned|virtual|void|volatile|wchar_t)$/', + 'Common Macros' => '/^(NULL|TRUE|FALSE|MAX|MIN|__LINE__|__DATA__|__FILE__|__TIME__|__STDC__)$/', + ), + 5 => + array ( + ), + 6 => + array ( + ), + 7 => + array ( + ), + 8 => + array ( + ), + 9 => -1, + 10 => -1, + 11 => + array ( + ), + 12 => -1, + 13 => -1, + ), + 4 => + array ( + ), + 5 => + array ( + 0 => -1, + 1 => -1, + ), + 6 => + array ( + 0 => -1, + 1 => -1, + 2 => -1, + 3 => + array ( + 'reserved' => '/^(and|and_eq|asm|bitand|bitor|break|case|catch|compl|const_cast|continue|default|delete|do|dynamic_cast|else|for|fortran|friend|goto|if|new|not|not_eq|operator|or|or_eq|private|protected|public|reinterpret_cast|return|sizeof|static_cast|switch|this|throw|try|typeid|using|while|xor|xor_eq|false|true)$/', + 'types' => '/^(auto|bool|char|class|const|double|enum|explicit|export|extern|float|inline|int|long|mutable|namespace|register|short|signed|static|struct|template|typedef|typename|union|unsigned|virtual|void|volatile|wchar_t)$/', + 'Common Macros' => '/^(NULL|TRUE|FALSE|MAX|MIN|__LINE__|__DATA__|__FILE__|__TIME__|__STDC__)$/', + ), + 4 => + array ( + ), + 5 => + array ( + ), + 6 => + array ( + ), + 7 => + array ( + ), + 8 => -1, + 9 => -1, + ), + 7 => + array ( + 0 => + array ( + ), + ), + 8 => + array ( + 0 => + array ( + ), + ), + ); + $this->_parts = array ( + 0 => + array ( + 0 => NULL, + ), + 1 => + array ( + 0 => NULL, + 1 => NULL, + 2 => NULL, + 3 => NULL, + 4 => NULL, + 5 => NULL, + 6 => NULL, + 7 => NULL, + 8 => NULL, + 9 => NULL, + 10 => NULL, + 11 => NULL, + 12 => NULL, + 13 => NULL, + ), + 2 => + array ( + 0 => NULL, + 1 => NULL, + 2 => NULL, + 3 => NULL, + 4 => NULL, + 5 => NULL, + 6 => NULL, + 7 => NULL, + 8 => NULL, + 9 => NULL, + 10 => NULL, + 11 => NULL, + 12 => NULL, + 13 => NULL, + ), + 3 => + array ( + 0 => NULL, + 1 => NULL, + 2 => NULL, + 3 => NULL, + 4 => NULL, + 5 => NULL, + 6 => NULL, + 7 => NULL, + 8 => NULL, + 9 => NULL, + 10 => NULL, + 11 => NULL, + 12 => NULL, + 13 => NULL, + ), + 4 => + array ( + ), + 5 => + array ( + 0 => NULL, + 1 => NULL, + ), + 6 => + array ( + 0 => NULL, + 1 => NULL, + 2 => NULL, + 3 => NULL, + 4 => NULL, + 5 => NULL, + 6 => NULL, + 7 => NULL, + 8 => NULL, + 9 => NULL, + ), + 7 => + array ( + 0 => NULL, + ), + 8 => + array ( + 0 => NULL, + ), + ); + $this->_subst = array ( + -1 => + array ( + 0 => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => false, + 6 => false, + 7 => false, + 8 => false, + 9 => false, + 10 => false, + 11 => false, + 12 => false, + 13 => false, + ), + 0 => + array ( + 0 => false, + ), + 1 => + array ( + 0 => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => false, + 6 => false, + 7 => false, + 8 => false, + 9 => false, + 10 => false, + 11 => false, + 12 => false, + 13 => false, + ), + 2 => + array ( + 0 => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => false, + 6 => false, + 7 => false, + 8 => false, + 9 => false, + 10 => false, + 11 => false, + 12 => false, + 13 => false, + ), + 3 => + array ( + 0 => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => false, + 6 => false, + 7 => false, + 8 => false, + 9 => false, + 10 => false, + 11 => false, + 12 => false, + 13 => false, + ), + 4 => + array ( + ), + 5 => + array ( + 0 => false, + 1 => false, + ), + 6 => + array ( + 0 => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => false, + 6 => false, + 7 => false, + 8 => false, + 9 => false, + ), + 7 => + array ( + 0 => false, + ), + 8 => + array ( + 0 => false, + ), + ); + $this->_conditions = array ( + ); + $this->_kwmap = array ( + 'reserved' => 'reserved', + 'types' => 'types', + 'Common Macros' => 'prepro', + ); + $this->_defClass = 'code'; + $this->_checkDefines(); + } + +} \ No newline at end of file diff --git a/library/Text_Highlighter/Text/Highlighter/CSS.php b/library/Text_Highlighter/Text/Highlighter/CSS.php new file mode 100644 index 000000000..51757c88e --- /dev/null +++ b/library/Text_Highlighter/Text/Highlighter/CSS.php @@ -0,0 +1,437 @@ + + * + */ + +/** + * @ignore + */ + +require_once 'Text/Highlighter.php'; + +/** + * Auto-generated class. CSS syntax highlighting + * + * @author Andrey Demenev + * @category Text + * @package Text_Highlighter + * @copyright 2004-2006 Andrey Demenev + * @license http://www.php.net/license/3_0.txt PHP License + * @version Release: 0.7.0 + * @link http://pear.php.net/package/Text_Highlighter + */ +class Text_Highlighter_CSS extends Text_Highlighter +{ + var $_language = 'css'; + + /** + * PHP4 Compatible Constructor + * + * @param array $options + * @access public + */ + function Text_Highlighter_CSS($options=array()) + { + $this->__construct($options); + } + + + /** + * Constructor + * + * @param array $options + * @access public + */ + function __construct($options=array()) + { + + $this->_options = $options; + $this->_regs = array ( + -1 => '/((?i)\\/\\*)|((?i)(@[a-z\\d]+))|((?i)(((\\.|#)?[a-z]+[a-z\\d\\-]*(?![a-z\\d\\-]))|(\\*))(?!\\s*:\\s*[\\s\\{]))|((?i):[a-z][a-z\\d\\-]*)|((?i)\\[)|((?i)\\{)/', + 0 => '//', + 1 => '/((?i)\\d*\\.?\\d+(\\%|em|ex|pc|pt|px|in|mm|cm))|((?i)\\d*\\.?\\d+)|((?i)[a-z][a-z\\d\\-]*)|((?i)#([\\da-f]{6}|[\\da-f]{3})\\b)/', + 2 => '/((?i)\')|((?i)")|((?i)[\\w\\-\\:]+)/', + 3 => '/((?i)\\/\\*)|((?i)[a-z][a-z\\d\\-]*\\s*:)|((?i)(((\\.|#)?[a-z]+[a-z\\d\\-]*(?![a-z\\d\\-]))|(\\*))(?!\\s*:\\s*[\\s\\{]))|((?i)\\{)/', + 4 => '/((?i)\\\\[\\\\(\\\\)\\\\])/', + 5 => '/((?i)\\\\\\\\|\\\\"|\\\\\'|\\\\`)/', + 6 => '/((?i)\\\\\\\\|\\\\"|\\\\\'|\\\\`|\\\\t|\\\\n|\\\\r)/', + ); + $this->_counts = array ( + -1 => + array ( + 0 => 0, + 1 => 1, + 2 => 4, + 3 => 0, + 4 => 0, + 5 => 0, + ), + 0 => + array ( + ), + 1 => + array ( + 0 => 1, + 1 => 0, + 2 => 0, + 3 => 1, + ), + 2 => + array ( + 0 => 0, + 1 => 0, + 2 => 0, + ), + 3 => + array ( + 0 => 0, + 1 => 0, + 2 => 4, + 3 => 0, + ), + 4 => + array ( + 0 => 0, + ), + 5 => + array ( + 0 => 0, + ), + 6 => + array ( + 0 => 0, + ), + ); + $this->_delim = array ( + -1 => + array ( + 0 => 'comment', + 1 => '', + 2 => '', + 3 => '', + 4 => 'brackets', + 5 => 'brackets', + ), + 0 => + array ( + ), + 1 => + array ( + 0 => '', + 1 => '', + 2 => '', + 3 => '', + ), + 2 => + array ( + 0 => 'quotes', + 1 => 'quotes', + 2 => '', + ), + 3 => + array ( + 0 => 'comment', + 1 => 'reserved', + 2 => '', + 3 => 'brackets', + ), + 4 => + array ( + 0 => '', + ), + 5 => + array ( + 0 => '', + ), + 6 => + array ( + 0 => '', + ), + ); + $this->_inner = array ( + -1 => + array ( + 0 => 'comment', + 1 => 'var', + 2 => 'identifier', + 3 => 'special', + 4 => 'code', + 5 => 'code', + ), + 0 => + array ( + ), + 1 => + array ( + 0 => 'number', + 1 => 'number', + 2 => 'code', + 3 => 'var', + ), + 2 => + array ( + 0 => 'string', + 1 => 'string', + 2 => 'var', + ), + 3 => + array ( + 0 => 'comment', + 1 => 'code', + 2 => 'identifier', + 3 => 'code', + ), + 4 => + array ( + 0 => 'string', + ), + 5 => + array ( + 0 => 'special', + ), + 6 => + array ( + 0 => 'special', + ), + ); + $this->_end = array ( + 0 => '/(?i)\\*\\//', + 1 => '/(?i)(?=;|\\})/', + 2 => '/(?i)\\]/', + 3 => '/(?i)\\}/', + 4 => '/(?i)\\)/', + 5 => '/(?i)\'/', + 6 => '/(?i)"/', + ); + $this->_states = array ( + -1 => + array ( + 0 => 0, + 1 => -1, + 2 => -1, + 3 => -1, + 4 => 2, + 5 => 3, + ), + 0 => + array ( + ), + 1 => + array ( + 0 => -1, + 1 => -1, + 2 => -1, + 3 => -1, + ), + 2 => + array ( + 0 => 5, + 1 => 6, + 2 => -1, + ), + 3 => + array ( + 0 => 0, + 1 => 1, + 2 => -1, + 3 => 3, + ), + 4 => + array ( + 0 => -1, + ), + 5 => + array ( + 0 => -1, + ), + 6 => + array ( + 0 => -1, + ), + ); + $this->_keywords = array ( + -1 => + array ( + 0 => -1, + 1 => + array ( + ), + 2 => + array ( + ), + 3 => + array ( + ), + 4 => -1, + 5 => -1, + ), + 0 => + array ( + ), + 1 => + array ( + 0 => + array ( + ), + 1 => + array ( + ), + 2 => + array ( + 'propertyValue' => '/^((?i)far-left|left|center-left|center-right|center|far-right|right-side|right|behind|leftwards|rightwards|inherit|scroll|fixed|transparent|none|repeat-x|repeat-y|repeat|no-repeat|collapse|separate|auto|top|bottom|both|open-quote|close-quote|no-open-quote|no-close-quote|crosshair|default|pointer|move|e-resize|ne-resize|nw-resize|n-resize|se-resize|sw-resize|s-resize|text|wait|help|ltr|rtl|inline|block|list-item|run-in|compact|marker|table|inline-table|table-row-group|table-header-group|table-footer-group|table-row|table-column-group|table-column|table-cell|table-caption|below|level|above|higher|lower|show|hide|caption|icon|menu|message-box|small-caption|status-bar|normal|wider|narrower|ultra-condensed|extra-condensed|condensed|semi-condensed|semi-expanded|expanded|extra-expanded|ultra-expanded|italic|oblique|small-caps|bold|bolder|lighter|inside|outside|disc|circle|square|decimal|decimal-leading-zero|lower-roman|upper-roman|lower-greek|lower-alpha|lower-latin|upper-alpha|upper-latin|hebrew|armenian|georgian|cjk-ideographic|hiragana|katakana|hiragana-iroha|katakana-iroha|crop|cross|invert|visible|hidden|always|avoid|x-low|low|medium|high|x-high|mix?|repeat?|static|relative|absolute|portrait|landscape|spell-out|once|digits|continuous|code|x-slow|slow|fast|x-fast|faster|slower|justify|underline|overline|line-through|blink|capitalize|uppercase|lowercase|embed|bidi-override|baseline|sub|super|text-top|middle|text-bottom|silent|x-soft|soft|loud|x-loud|pre|nowrap|serif|sans-serif|cursive|fantasy|monospace|empty|string|strict|loose|char|true|false|dotted|dashed|solid|double|groove|ridge|inset|outset|larger|smaller|xx-small|x-small|small|large|x-large|xx-large|all|newspaper|distribute|distribute-all-lines|distribute-center-last|inter-word|inter-ideograph|inter-cluster|kashida|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|keep-all|break-all|break-word|lr-tb|tb-rl|thin|thick|inline-block|w-resize|hand|distribute-letter|distribute-space|whitespace|male|female|child)$/', + 'namedcolor' => '/^((?i)aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|purple|red|silver|teal|white|yellow|activeborder|activecaption|appworkspace|background|buttonface|buttonhighlight|buttonshadow|buttontext|captiontext|graytext|highlight|highlighttext|inactiveborder|inactivecaption|inactivecaptiontext|infobackground|infotext|menu|menutext|scrollbar|threeddarkshadow|threedface|threedhighlight|threedlightshadow|threedshadow|window|windowframe|windowtext)$/', + ), + 3 => + array ( + ), + ), + 2 => + array ( + 0 => -1, + 1 => -1, + 2 => + array ( + ), + ), + 3 => + array ( + 0 => -1, + 1 => -1, + 2 => + array ( + ), + 3 => -1, + ), + 4 => + array ( + 0 => + array ( + ), + ), + 5 => + array ( + 0 => + array ( + ), + ), + 6 => + array ( + 0 => + array ( + ), + ), + ); + $this->_parts = array ( + 0 => + array ( + ), + 1 => + array ( + 0 => + array ( + 1 => 'string', + ), + 1 => NULL, + 2 => NULL, + 3 => NULL, + ), + 2 => + array ( + 0 => NULL, + 1 => NULL, + 2 => NULL, + ), + 3 => + array ( + 0 => NULL, + 1 => NULL, + 2 => NULL, + 3 => NULL, + ), + 4 => + array ( + 0 => NULL, + ), + 5 => + array ( + 0 => NULL, + ), + 6 => + array ( + 0 => NULL, + ), + ); + $this->_subst = array ( + -1 => + array ( + 0 => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => false, + ), + 0 => + array ( + ), + 1 => + array ( + 0 => false, + 1 => false, + 2 => false, + 3 => false, + ), + 2 => + array ( + 0 => false, + 1 => false, + 2 => false, + ), + 3 => + array ( + 0 => false, + 1 => false, + 2 => false, + 3 => false, + ), + 4 => + array ( + 0 => false, + ), + 5 => + array ( + 0 => false, + ), + 6 => + array ( + 0 => false, + ), + ); + $this->_conditions = array ( + ); + $this->_kwmap = array ( + 'propertyValue' => 'string', + 'namedcolor' => 'var', + ); + $this->_defClass = 'code'; + $this->_checkDefines(); + } + +} diff --git a/library/Text_Highlighter/Text/Highlighter/DIFF.php b/library/Text_Highlighter/Text/Highlighter/DIFF.php new file mode 100644 index 000000000..2bb25a453 --- /dev/null +++ b/library/Text_Highlighter/Text/Highlighter/DIFF.php @@ -0,0 +1,384 @@ + + * + */ + +/** + * @ignore + */ + +require_once 'Text/Highlighter.php'; + +/** + * Auto-generated class. DIFF syntax highlighting + * + * @author Andrey Demenev + * @category Text + * @package Text_Highlighter + * @copyright 2004-2006 Andrey Demenev + * @license http://www.php.net/license/3_0.txt PHP License + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Highlighter + */ +class Text_Highlighter_DIFF extends Text_Highlighter +{ + var $_language = 'diff'; + + /** + * PHP4 Compatible Constructor + * + * @param array $options + * @access public + */ + function Text_Highlighter_DIFF($options=array()) + { + $this->__construct($options); + } + + + /** + * Constructor + * + * @param array $options + * @access public + */ + function __construct($options=array()) + { + + $this->_options = $options; + $this->_regs = array ( + -1 => '/((?m)^\\\\\\sNo\\snewline.+$)|((?m)^\\-\\-\\-$)|((?m)^(diff\\s+\\-|Only\\s+|Index).*$)|((?m)^(\\-\\-\\-|\\+\\+\\+)\\s.+$)|((?m)^\\*.*$)|((?m)^\\+.*$)|((?m)^!.*$)|((?m)^\\<\\s.*$)|((?m)^\\>\\s.*$)|((?m)^\\d+(\\,\\d+)?[acd]\\d+(,\\d+)?$)|((?m)^\\-.*$)|((?m)^\\+.*$)|((?m)^@@.+@@$)|((?m)^d\\d+\\s\\d+$)|((?m)^a\\d+\\s\\d+$)|((?m)^(\\d+)(,\\d+)?(a)$)|((?m)^(\\d+)(,\\d+)?(c)$)|((?m)^(\\d+)(,\\d+)?(d)$)|((?m)^a(\\d+)(\\s\\d+)?$)|((?m)^c(\\d+)(\\s\\d+)?$)|((?m)^d(\\d+)(\\s\\d+)?$)/', + 0 => '//', + 1 => '//', + 2 => '//', + 3 => '//', + 4 => '//', + ); + $this->_counts = array ( + -1 => + array ( + 0 => 0, + 1 => 0, + 2 => 1, + 3 => 1, + 4 => 0, + 5 => 0, + 6 => 0, + 7 => 0, + 8 => 0, + 9 => 2, + 10 => 0, + 11 => 0, + 12 => 0, + 13 => 0, + 14 => 0, + 15 => 3, + 16 => 3, + 17 => 3, + 18 => 2, + 19 => 2, + 20 => 2, + ), + 0 => + array ( + ), + 1 => + array ( + ), + 2 => + array ( + ), + 3 => + array ( + ), + 4 => + array ( + ), + ); + $this->_delim = array ( + -1 => + array ( + 0 => '', + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => '', + 6 => '', + 7 => '', + 8 => '', + 9 => '', + 10 => '', + 11 => '', + 12 => '', + 13 => '', + 14 => 'code', + 15 => 'code', + 16 => 'code', + 17 => '', + 18 => 'code', + 19 => 'code', + 20 => '', + ), + 0 => + array ( + ), + 1 => + array ( + ), + 2 => + array ( + ), + 3 => + array ( + ), + 4 => + array ( + ), + ); + $this->_inner = array ( + -1 => + array ( + 0 => 'special', + 1 => 'code', + 2 => 'var', + 3 => 'reserved', + 4 => 'quotes', + 5 => 'string', + 6 => 'inlinedoc', + 7 => 'quotes', + 8 => 'string', + 9 => 'code', + 10 => 'quotes', + 11 => 'string', + 12 => 'code', + 13 => 'code', + 14 => 'var', + 15 => 'string', + 16 => 'inlinedoc', + 17 => 'code', + 18 => 'string', + 19 => 'inlinedoc', + 20 => 'code', + ), + 0 => + array ( + ), + 1 => + array ( + ), + 2 => + array ( + ), + 3 => + array ( + ), + 4 => + array ( + ), + ); + $this->_end = array ( + 0 => '/(?m)(?=^[ad]\\d+\\s\\d+)/', + 1 => '/(?m)^(\\.)$/', + 2 => '/(?m)^(\\.)$/', + 3 => '/(?m)^(\\.)$/', + 4 => '/(?m)^(\\.)$/', + ); + $this->_states = array ( + -1 => + array ( + 0 => -1, + 1 => -1, + 2 => -1, + 3 => -1, + 4 => -1, + 5 => -1, + 6 => -1, + 7 => -1, + 8 => -1, + 9 => -1, + 10 => -1, + 11 => -1, + 12 => -1, + 13 => -1, + 14 => 0, + 15 => 1, + 16 => 2, + 17 => -1, + 18 => 3, + 19 => 4, + 20 => -1, + ), + 0 => + array ( + ), + 1 => + array ( + ), + 2 => + array ( + ), + 3 => + array ( + ), + 4 => + array ( + ), + ); + $this->_keywords = array ( + -1 => + array ( + 0 => + array ( + ), + 1 => + array ( + ), + 2 => + array ( + ), + 3 => + array ( + ), + 4 => + array ( + ), + 5 => + array ( + ), + 6 => + array ( + ), + 7 => + array ( + ), + 8 => + array ( + ), + 9 => + array ( + ), + 10 => + array ( + ), + 11 => + array ( + ), + 12 => + array ( + ), + 13 => + array ( + ), + 14 => -1, + 15 => -1, + 16 => -1, + 17 => + array ( + ), + 18 => -1, + 19 => -1, + 20 => + array ( + ), + ), + 0 => + array ( + ), + 1 => + array ( + ), + 2 => + array ( + ), + 3 => + array ( + ), + 4 => + array ( + ), + ); + $this->_parts = array ( + 0 => + array ( + ), + 1 => + array ( + ), + 2 => + array ( + ), + 3 => + array ( + ), + 4 => + array ( + ), + ); + $this->_subst = array ( + -1 => + array ( + 0 => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => false, + 6 => false, + 7 => false, + 8 => false, + 9 => false, + 10 => false, + 11 => false, + 12 => false, + 13 => false, + 14 => false, + 15 => false, + 16 => false, + 17 => false, + 18 => false, + 19 => false, + 20 => false, + ), + 0 => + array ( + ), + 1 => + array ( + ), + 2 => + array ( + ), + 3 => + array ( + ), + 4 => + array ( + ), + ); + $this->_conditions = array ( + ); + $this->_kwmap = array ( + ); + $this->_defClass = 'default'; + $this->_checkDefines(); + } + +} \ No newline at end of file diff --git a/library/Text_Highlighter/Text/Highlighter/DTD.php b/library/Text_Highlighter/Text/Highlighter/DTD.php new file mode 100644 index 000000000..41b0faa78 --- /dev/null +++ b/library/Text_Highlighter/Text/Highlighter/DTD.php @@ -0,0 +1,426 @@ + + * + */ + +/** + * @ignore + */ + +require_once 'Text/Highlighter.php'; + +/** + * Auto-generated class. DTD syntax highlighting + * + * @author Andrey Demenev + * @category Text + * @package Text_Highlighter + * @copyright 2004-2006 Andrey Demenev + * @license http://www.php.net/license/3_0.txt PHP License + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Highlighter + */ +class Text_Highlighter_DTD extends Text_Highlighter +{ + var $_language = 'dtd'; + + /** + * PHP4 Compatible Constructor + * + * @param array $options + * @access public + */ + function Text_Highlighter_DTD($options=array()) + { + $this->__construct($options); + } + + + /** + * Constructor + * + * @param array $options + * @access public + */ + function __construct($options=array()) + { + + $this->_options = $options; + $this->_regs = array ( + -1 => '/(\\ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/library/Text_Highlighter/avrc.xml b/library/Text_Highlighter/avrc.xml new file mode 100644 index 000000000..dec571e13 --- /dev/null +++ b/library/Text_Highlighter/avrc.xml @@ -0,0 +1,316 @@ + + + + + + + + + + + C/C++ highlighter specific to Atmel AVR microcontrollers + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/library/Text_Highlighter/cpp.xml b/library/Text_Highlighter/cpp.xml new file mode 100644 index 000000000..2cbaa930f --- /dev/null +++ b/library/Text_Highlighter/cpp.xml @@ -0,0 +1,201 @@ + + + + + + + + + + + +Thanks to Aaron Kalin for initial +implementation of this highlighter + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/library/Text_Highlighter/css.xml b/library/Text_Highlighter/css.xml new file mode 100644 index 000000000..2473bcfb7 --- /dev/null +++ b/library/Text_Highlighter/css.xml @@ -0,0 +1,368 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/library/Text_Highlighter/diff.xml b/library/Text_Highlighter/diff.xml new file mode 100644 index 000000000..d088f9257 --- /dev/null +++ b/library/Text_Highlighter/diff.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/library/Text_Highlighter/dtd.xml b/library/Text_Highlighter/dtd.xml new file mode 100644 index 000000000..18fa07db7 --- /dev/null +++ b/library/Text_Highlighter/dtd.xml @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/library/Text_Highlighter/generate b/library/Text_Highlighter/generate new file mode 100644 index 000000000..4e22e82fd --- /dev/null +++ b/library/Text_Highlighter/generate @@ -0,0 +1,171 @@ +#!@php_bin@ + + * @copyright 2004 Andrey Demenev + * @license http://www.php.net/license/3_0.txt PHP License + * @version CVS: $Id$ + * @link http://pear.php.net/package/Text_Highlighter + */ + +require_once 'Text/Highlighter/Generator.php'; +require_once 'Console/Getopt.php'; + +$options = Console_Getopt::getopt($argv, 'x:p:d:h', array('xml=', 'php=','dir=', 'help')); + +if (PEAR::isError($options)) { + $message = str_replace('Console_Getopt: ','',$options->message); + usage($message); +} + +$source = array(); +$dest = array(); +$dir = ''; + +$expectp = false; +$expectx = false; +$unexpectedx = false; +$unexpectedp = false; +$si = $di = 0; + +foreach ($options[0] as $option) { + switch ($option[0]) { + case 'x': + case '--xml': + $source[$si] = $option[1]; + if ($si) { + $di++; + } + $si++; + if ($expectp) { + $unexpectedx = true; + } + $expectp = true; + $expectx = false; + break; + + case 'p': + case '--php': + if ($expectx) { + $unexpectedp = true; + } + $dest[$di] = $option[1]; + $expectp = false; + $expectx = true; + break; + + case 'd': + case '--dir': + $dir = $option[1]; + break; + + case 'h': + case '--help': + usage(); + break; + } +} + + +if ($unexpectedx && !$dir) { + usage('Unexpected -x or --xml', STDERR); +} + +if ($unexpectedp) { + usage('Unexpected -p or --php', STDERR); +} + +$nsource = count($source); +$ndest = count($dest); + +if (!$nsource && !$ndest) { + $source[]='php://stdin'; + if (!$dir) { + $dest[]='php://stdout'; + } else { + $dest[] = null; + } +} elseif ($expectp && !$dir && $nsource > 1) { + usage('-x or --xml without following -p or --php', STDERR); +} elseif ($nsource == 1 && !$ndest && !$dir) { + $dest[]='php://stdout'; +} + +if ($dir && substr($dir,-1)!='/' && substr($dir,-1)!=='\\' ) { + $dir .= DIRECTORY_SEPARATOR; +} + + +foreach ($source as $i => $xmlfile) +{ + $gen = new Text_Highlighter_Generator; + $gen->setInputFile($xmlfile); + if ($gen->hasErrors()) { + break; + } + $gen->generate(); + if ($gen->hasErrors()) { + break; + } + if (isset($dest[$i])) { + $phpfile = $dest[$i]; + } else { + $phpfile = $dir . $gen->language . '.php'; + } + $gen->saveCode($phpfile); + if ($gen->hasErrors()) { + break; + } +} +if ($gen->hasErrors()) { + $errors = $gen->getErrors(); + foreach ($errors as $error) { + fwrite (STDERR, $error . "\n"); + } + exit(1); +} + +function usage($message='', $file=STDOUT) +{ + $code = 0; + if ($message) { + $message .= "\n\n"; + $code = 1; + } + $message .= << tag) + -h, --help + This help +MSG; + fwrite ($file, $message); + exit($code); +} +?> + diff --git a/library/Text_Highlighter/generate.bat b/library/Text_Highlighter/generate.bat new file mode 100644 index 000000000..3960486c1 --- /dev/null +++ b/library/Text_Highlighter/generate.bat @@ -0,0 +1,188 @@ +@echo off +rem vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: + +rem Console highlighter class generator + +rem PHP versions 4 and 5 + +rem LICENSE: This source file is subject to version 3.0 of the PHP license +rem that is available through the world-wide-web at the following URI: +rem http://www.php.net/license/3_0.txt. If you did not receive a copy of +rem the PHP License and are unable to obtain it through the web, please +rem send a note to license@php.net so we can mail you a copy immediately. + +rem @category Text +rem @package Text_Highlighter +rem @author Andrey Demenev +rem @copyright 2004 Andrey Demenev +rem @license http://www.php.net/license/3_0.txt PHP License +rem @version CVS: $Id: generate.bat,v 1.1 2007-06-03 02:35:28 ssttoo Exp $ +rem @link http://pear.php.net/package/Text_Highlighter + +set "MHL_PARAMS=" +:doshift +set "MHL_PARAMS=%MHL_PARAMS% %1" +shift +if -%1- == -- GOTO noshift +GOTO doshift +:noshift +@php_bin@ -q -d output_buffering=1 -d include_path="@php_dir@" @bin_dir@/Text/Highlighter/generate.bat %MHL_PARAMS% + +GOTO finish +message); + usage($message); +} + +$source = array(); +$dest = array(); +$dir = ''; + +$expectp = false; +$expectx = false; +$unexpectedx = false; +$unexpectedp = false; +$si = $di = 0; + +foreach ($options[0] as $option) { + switch ($option[0]) { + case 'x': + case '--xml': + $source[$si] = $option[1]; + if ($si) { + $di++; + } + $si++; + if ($expectp) { + $unexpectedx = true; + } + $expectp = true; + $expectx = false; + break; + + case 'p': + case '--php': + if ($expectx) { + $unexpectedp = true; + } + $dest[$di] = $option[1]; + $expectp = false; + $expectx = true; + break; + + case 'd': + case '--dir': + $dir = $option[1]; + break; + + case 'h': + case '--help': + usage(); + break; + } +} + + +if ($unexpectedx && !$dir) { + usage('Unexpected -x or --xml', STDERR); +} + +if ($unexpectedp) { + usage('Unexpected -p or --php', STDERR); +} + +$nsource = count($source); +$ndest = count($dest); + +if (!$nsource && !$ndest) { + $source[]='php://stdin'; + if (!$dir) { + $dest[]='php://stdout'; + } else { + $dest[] = null; + } +} elseif ($expectp && !$dir && $nsource > 1) { + usage('-x or --xml without following -p or --php', STDERR); +} elseif ($nsource == 1 && !$ndest && !$dir) { + $dest[]='php://stdout'; +} + +if ($dir && substr($dir,-1)!='/' && substr($dir,-1)!=='\\' ) { + $dir .= DIRECTORY_SEPARATOR; +} + + +foreach ($source as $i => $xmlfile) +{ + $gen = new Text_Highlighter_Generator; + $gen->setInputFile($xmlfile); + if ($gen->hasErrors()) { + break; + } + $gen->generate(); + if ($gen->hasErrors()) { + break; + } + if (isset($dest[$i])) { + $phpfile = $dest[$i]; + } else { + $phpfile = $dir . $gen->language . '.php'; + } + $gen->saveCode($phpfile); + if ($gen->hasErrors()) { + break; + } +} +if ($gen->hasErrors()) { + $errors = $gen->getErrors(); + foreach ($errors as $error) { + fwrite (STDERR, $error . "\n"); + } + exit(1); +} + +exit(0); + +function usage($message='', $file=STDOUT) +{ + $code = 0; + if ($message) { + $message .= "\n\n"; + $code = 1; + } + $message .= << tag) + -h, --help + This help +MSG; + fwrite ($file, $message); + exit($code); +} +?> +:finish diff --git a/library/Text_Highlighter/html.xml b/library/Text_Highlighter/html.xml new file mode 100644 index 000000000..58d51fc5b --- /dev/null +++ b/library/Text_Highlighter/html.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/library/Text_Highlighter/java.xml b/library/Text_Highlighter/java.xml new file mode 100644 index 000000000..12052b5db --- /dev/null +++ b/library/Text_Highlighter/java.xml @@ -0,0 +1,2824 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/library/Text_Highlighter/javascript.xml b/library/Text_Highlighter/javascript.xml new file mode 100644 index 000000000..e478515a7 --- /dev/null +++ b/library/Text_Highlighter/javascript.xml @@ -0,0 +1,174 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/library/Text_Highlighter/mysql.xml b/library/Text_Highlighter/mysql.xml new file mode 100644 index 000000000..082b62795 --- /dev/null +++ b/library/Text_Highlighter/mysql.xml @@ -0,0 +1,424 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/library/Text_Highlighter/perl.xml b/library/Text_Highlighter/perl.xml new file mode 100644 index 000000000..54f8835ea --- /dev/null +++ b/library/Text_Highlighter/perl.xml @@ -0,0 +1,439 @@ + + + + + + + + + + + This highlighter is EXPERIMENTAL, so that it may work incorrectly. +Most rules were created by Mariusz Jakubowski, and extended by me. +My knowledge of Perl is poor, and Perl syntax seems too +complicated to me. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/library/Text_Highlighter/php.xml b/library/Text_Highlighter/php.xml new file mode 100644 index 000000000..1b08ea203 --- /dev/null +++ b/library/Text_Highlighter/php.xml @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/library/Text_Highlighter/python.xml b/library/Text_Highlighter/python.xml new file mode 100644 index 000000000..29e77203c --- /dev/null +++ b/library/Text_Highlighter/python.xml @@ -0,0 +1,229 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/library/Text_Highlighter/release b/library/Text_Highlighter/release new file mode 100644 index 000000000..66f1fa603 --- /dev/null +++ b/library/Text_Highlighter/release @@ -0,0 +1,4 @@ +#!/bin/sh + +/usr/local/bin/php package.php make +/usr/local/bin/pear package diff --git a/library/Text_Highlighter/ruby.xml b/library/Text_Highlighter/ruby.xml new file mode 100644 index 000000000..599f5af17 --- /dev/null +++ b/library/Text_Highlighter/ruby.xml @@ -0,0 +1,141 @@ + + + + + + + + + + +FIXME: While this construction : s.split /z/i +is valid, regular expression is not recognized as such +(/ folowing an identifier or number is not recognized as +start of RE), making highlighting improper + +%q(a (nested) string) does not get highlighted correctly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/library/Text_Highlighter/sample.css b/library/Text_Highlighter/sample.css new file mode 100644 index 000000000..b4b38c5fc --- /dev/null +++ b/library/Text_Highlighter/sample.css @@ -0,0 +1,62 @@ +.hl-main ol { + line-height: 1.0; +} +.hl-default { + color: Black; +} +.hl-code { + color: Black; +} +.hl-brackets { + color: Olive; +} +.hl-comment { + color: Purple; +} +.hl-quotes { + color: Darkred; +} +.hl-string { + color: Red; +} +.hl-identifier { + color: Blue; +} +.hl-builtin { + color: Teal; +} +.hl-reserved { + color: Green; +} +.hl-inlinedoc { + color: Blue; +} +.hl-var { + color: Darkblue; +} +.hl-url { + color: Blue; +} +.hl-special { + color: Navy; +} +.hl-number { + color: Maroon; +} +.hl-inlinetags { + color: Blue; +} +.hl-main { + background: #ccc none repeat scroll 0 0; + color: #000; +/* background-color: White; */ +} +.hl-gutter { + background-color: #999999; + color: White +} +.hl-table { + font-family: courier; + font-size: 12px; + border: solid 1px Lightgrey; +} diff --git a/library/Text_Highlighter/sh.xml b/library/Text_Highlighter/sh.xml new file mode 100644 index 000000000..1250de3bc --- /dev/null +++ b/library/Text_Highlighter/sh.xml @@ -0,0 +1,242 @@ + + + + + + + + + + This highlighter is EXPERIMENTAL. It may work incorrectly. + It is a crude hack of the perl syntax, which itself wasn't so good. + But this seems to work OK. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/library/Text_Highlighter/sql.xml b/library/Text_Highlighter/sql.xml new file mode 100644 index 000000000..19cae49a0 --- /dev/null +++ b/library/Text_Highlighter/sql.xml @@ -0,0 +1,496 @@ + + + + + + + + + + + Based on SQL-99 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/library/Text_Highlighter/vbscript.xml b/library/Text_Highlighter/vbscript.xml new file mode 100644 index 000000000..09c37ffde --- /dev/null +++ b/library/Text_Highlighter/vbscript.xml @@ -0,0 +1,305 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/library/Text_Highlighter/xml.xml b/library/Text_Highlighter/xml.xml new file mode 100644 index 000000000..2271ff3ae --- /dev/null +++ b/library/Text_Highlighter/xml.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/library/asn1.php b/library/asn1.php index e84398bf6..ac14a5b16 100644 --- a/library/asn1.php +++ b/library/asn1.php @@ -4,6 +4,7 @@ // Attribution: http://www.krisbailey.com // license: unknown // modified: Mike Macgrivin mike@macgirvin.com 6-oct-2010 to support Salmon auto-discovery +// modified: Tobias Diekershoff 28-jul-2016 adding an intval in line 162 to make PHP7 happy // from openssl public keys @@ -159,7 +160,7 @@ class ASN_BASE { } $length = $tempLength; } - $data = substr($string, $p, $length); + $data = substr($string, $p, intval($length)); $parsed[] = self::parseASNData($type, $data, $level, $maxLevels); $p = $p + $length; } diff --git a/library/fullcalendar/CHANGELOG.txt b/library/fullcalendar/CHANGELOG.txt new file mode 100644 index 000000000..e91ce3bd6 --- /dev/null +++ b/library/fullcalendar/CHANGELOG.txt @@ -0,0 +1,1063 @@ + +v3.0.1 (2016-09-26) +------------------- + +Bugfixes: +- list view rendering event times incorrectly (#3334) +- list view rendering events/days out of order (#3347) +- events with no title rendering as "undefined" +- add .fc scope to table print styles (#3343) +- "display no events" text fix for German (#3354) + + +v3.0.0 (2016-09-04) +------------------- + +Features: +- List View (#560) + - new views: `listDay`, `listWeek`, `listMonth`, `listYear`, and simply `list` + - `listDayFormat` + - `listDayAltFormat` + - `noEventsMessage` +- Clickable day/week numbers for easier navigation (#424) + - `navLinks` + - `navLinkDayClick` + - `navLinkWeekClick` +- Programmatically allow/disallow user interactions: + - `eventAllow` (#2740) + - `selectAllow` (#2511) +- Option to display week numbers in cells (#3024) + - `weekNumbersWithinDays` (set to `true` to activate) +- When week calc is ISO, default first day-of-week to Monday (#3255) +- Macedonian locale (#2739) +- Malay locale + +Breaking Changes: +- IE8 support dropped +- jQuery: minimum support raised to v2.0.0 +- MomentJS: minimum support raised to v2.9.0 +- `lang` option renamed to `locale` +- dist files have been renamed to be more consistent with MomentJS: + - `lang/` -> `locale/` + - `lang-all.js` -> `locale-all.js` +- behavior of moment methods no longer affected by ambiguousness: + - `isSame` + - `isBefore` + - `isAfter` +- View-Option-Hashes no longer supported (deprecated in 2.2.4) +- removed `weekMode` setting +- removed `axisFormat` setting +- DOM structure of month/basic-view day cell numbers changed + +Bugfixes: +- `$.fullCalendar.version` incorrect (#3292) + +Build System: +- using gulp instead of grunt (faster) +- using npm internally for dependencies instead of bower +- changed repo directory structure + + +v2.9.1 (2016-07-31) +------------------- + +- multiple definitions for businessHours (#2686) +- businessHours for single day doesn't display weekends (#2944) +- height/contentHeight can accept a function or 'parent' for dynamic value (#3271) +- fix +more popover clipped by overflow (#3232) +- fix +more popover positioned incorrectly when scrolled (#3137) +- Norwegian Nynorsk translation (#3246) +- fix isAnimating JS error (#3285) + + +v2.9.0 (2016-07-10) +------------------- + +- Setters for (almost) all options (#564). + See [docs](http://fullcalendar.io/docs/utilities/dynamic_options/) for more info. +- Travis CI improvements (#3266) + + +v2.8.0 (2016-06-19) +------------------- + +- getEventSources method (#3103, #2433) +- getEventSourceById method (#3223) +- refetchEventSources method (#3103, #1328, #254) +- removeEventSources method (#3165, #948) +- prevent flicker when refetchEvents is called (#3123, #2558) +- fix for removing event sources that share same URL (#3209) +- jQuery 3 support (#3197, #3124) +- Travis CI integration (#3218) +- EditorConfig for promoting consistent code style (#141) +- use en dash when formatting ranges (#3077) +- height:auto always shows scrollbars in month view on FF (#3202) +- new languages: + - Basque (#2992) + - Galician (#194) + - Luxembourgish (#2979) + + +v2.7.3 (2016-06-02) +------------------- + +internal enhancements that plugins can benefit from: +- EventEmitter not correctly working with stopListeningTo +- normalizeEvent hook for manipulating event data + + +v2.7.2 (2016-05-20) +------------------- + +- fixed desktops/laptops with touch support not accepting mouse events for + dayClick/dragging/resizing (#3154, #3149) +- fixed dayClick incorrectly triggered on touch scroll (#3152) +- fixed touch event dragging wrongfully beginning upon scrolling document (#3160) +- fixed minified JS still contained comments +- UI change: mouse users must hover over an event to reveal its resizers + + +v2.7.1 (2016-05-01) +------------------- + +- dayClick not firing on touch devices (#3138) +- icons for prev/next not working in MS Edge (#2852) +- fix bad languages troubles with firewalls (#3133, #3132) +- update all dev dependencies (#3145, #3010, #2901, #251) +- git-ignore npm debug logs (#3011) +- misc automated test updates (#3139, #3147) +- Google Calendar htmlLink not always defined (#2844) + + +v2.7.0 (2016-04-23) +------------------- + +touch device support (#994): + - smoother scrolling + - interactions initiated via "long press": + - event drag-n-drop + - event resize + - time-range selecting + - `longPressDelay` + + +v2.6.1 (2016-02-17) +------------------- + +- make `nowIndicator` positioning refresh on window resize + + +v2.6.0 (2016-01-07) +------------------- + +- current time indicator (#414) +- bundled with most recent version of moment (2.11.0) +- UMD wrapper around lang files now handles commonjs (#2918) +- fix bug where external event dragging would not respect eventOverlap +- fix bug where external event dropping would not render the whole-day highlight + + +v2.5.0 (2015-11-30) +------------------- + +- internal timezone refactor. fixes #2396, #2900, #2945, #2711 +- internal "grid" system refactor. improved API for plugins. + + +v2.4.0 (2015-08-16) +------------------- + +- add new buttons to the header via `customButtons` ([225]) +- control stacking order of events via `eventOrder` ([364]) +- control frequency of slot text via `slotLabelInterval` ([946]) +- `displayEventTime` ([1904]) +- `on` and `off` methods ([1910]) +- renamed `axisFormat` to `slotLabelFormat` + +[225]: https://code.google.com/p/fullcalendar/issues/detail?id=225 +[364]: https://code.google.com/p/fullcalendar/issues/detail?id=364 +[946]: https://code.google.com/p/fullcalendar/issues/detail?id=946 +[1904]: https://code.google.com/p/fullcalendar/issues/detail?id=1904 +[1910]: https://code.google.com/p/fullcalendar/issues/detail?id=1910 + + +v2.3.2 (2015-06-14) +------------------- + +- minor code adjustment in preparation for plugins + + +v2.3.1 (2015-03-08) +------------------- + +- Fix week view column title for en-gb ([PR220]) +- Publish to NPM ([2447]) +- Detangle bower from npm package ([PR179]) + +[PR220]: https://github.com/arshaw/fullcalendar/pull/220 +[2447]: https://code.google.com/p/fullcalendar/issues/detail?id=2447 +[PR179]: https://github.com/arshaw/fullcalendar/pull/179 + + +v2.3.0 (2015-02-21) +------------------- + +- internal refactoring in preparation for other views +- businessHours now renders on whole-days in addition to timed areas +- events in "more" popover not sorted by time ([2385]) +- avoid using moment's deprecated zone method ([2443]) +- destroying the calendar sometimes causes all window resize handlers to be unbound ([2432]) +- multiple calendars on one page, can't accept external elements after navigating ([2433]) +- accept external events from jqui sortable ([1698]) +- external jqui drop processed before reverting ([1661]) +- IE8 fix: month view renders incorrectly ([2428]) +- IE8 fix: eventLimit:true wouldn't activate "more" link ([2330]) +- IE8 fix: dragging an event with an href +- IE8 fix: invisible element while dragging agenda view events +- IE8 fix: erratic external element dragging + +[2385]: https://code.google.com/p/fullcalendar/issues/detail?id=2385 +[2443]: https://code.google.com/p/fullcalendar/issues/detail?id=2443 +[2432]: https://code.google.com/p/fullcalendar/issues/detail?id=2432 +[2433]: https://code.google.com/p/fullcalendar/issues/detail?id=2433 +[1698]: https://code.google.com/p/fullcalendar/issues/detail?id=1698 +[1661]: https://code.google.com/p/fullcalendar/issues/detail?id=1661 +[2428]: https://code.google.com/p/fullcalendar/issues/detail?id=2428 +[2330]: https://code.google.com/p/fullcalendar/issues/detail?id=2330 + + +v2.2.7 (2015-02-10) +------------------- + +- view.title wasn't defined in viewRender callback ([2407]) +- FullCalendar versions >= 2.2.5 brokenness with Moment versions <= 2.8.3 ([2417]) +- Support Bokmal Norwegian language specifically ([2427]) + +[2407]: https://code.google.com/p/fullcalendar/issues/detail?id=2407 +[2417]: https://code.google.com/p/fullcalendar/issues/detail?id=2417 +[2427]: https://code.google.com/p/fullcalendar/issues/detail?id=2427 + + +v2.2.6 (2015-01-11) +------------------- + +- Compatibility with Moment v2.9. Was breaking GCal plugin ([2408]) +- View object's `title` property mistakenly omitted ([2407]) +- Single-day views with hiddens days could cause prev/next misbehavior ([2406]) +- Don't let the current date ever be a hidden day (solves [2395]) +- Hebrew locale ([2157]) + +[2408]: https://code.google.com/p/fullcalendar/issues/detail?id=2408 +[2407]: https://code.google.com/p/fullcalendar/issues/detail?id=2407 +[2406]: https://code.google.com/p/fullcalendar/issues/detail?id=2406 +[2395]: https://code.google.com/p/fullcalendar/issues/detail?id=2395 +[2157]: https://code.google.com/p/fullcalendar/issues/detail?id=2157 + + +v2.2.5 (2014-12-30) +------------------- + +- `buttonText` specified for custom views via the `views` option + - bugfix: wrong default value, couldn't override default + - feature: default value taken from locale + + +v2.2.4 (2014-12-29) +------------------- + +- Arbitrary durations for basic/agenda views with the `views` option ([692]) +- Specify view-specific options using the `views` option. fixes [2283] +- Deprecate view-option-hashes +- Formalize and expose View API ([1055]) +- updateEvent method, more intuitive behavior. fixes [2194] + +[692]: https://code.google.com/p/fullcalendar/issues/detail?id=692 +[2283]: https://code.google.com/p/fullcalendar/issues/detail?id=2283 +[1055]: https://code.google.com/p/fullcalendar/issues/detail?id=1055 +[2194]: https://code.google.com/p/fullcalendar/issues/detail?id=2194 + + +v2.2.3 (2014-11-26) +------------------- + +- removeEventSource with Google Calendar object source, would not remove ([2368]) +- Events with invalid end dates are still accepted and rendered ([2350], [2237], [2296]) +- Bug when rendering business hours and navigating away from original view ([2365]) +- Links to Google Calendar events will use current timezone ([2122]) +- Google Calendar plugin works with timezone names that have spaces +- Google Calendar plugin accepts person email addresses as calendar IDs +- Internally use numeric sort instead of alphanumeric sort ([2370]) + +[2368]: https://code.google.com/p/fullcalendar/issues/detail?id=2368 +[2350]: https://code.google.com/p/fullcalendar/issues/detail?id=2350 +[2237]: https://code.google.com/p/fullcalendar/issues/detail?id=2237 +[2296]: https://code.google.com/p/fullcalendar/issues/detail?id=2296 +[2365]: https://code.google.com/p/fullcalendar/issues/detail?id=2365 +[2122]: https://code.google.com/p/fullcalendar/issues/detail?id=2122 +[2370]: https://code.google.com/p/fullcalendar/issues/detail?id=2370 + + +v2.2.2 (2014-11-19) +------------------- + +- Fixes to Google Calendar API V3 code + - wouldn't recognize a lone-string Google Calendar ID if periods before the @ symbol + - removeEventSource wouldn't work when given a Google Calendar ID + + +v2.2.1 (2014-11-19) +------------------- + +- Migrate Google Calendar plugin to use V3 of the API ([1526]) + +[1526]: https://code.google.com/p/fullcalendar/issues/detail?id=1526 + + +v2.2.0 (2014-11-14) +------------------- + +- Background events. Event object's `rendering` property ([144], [1286]) +- `businessHours` option ([144]) +- Controlling where events can be dragged/resized and selections can go ([396], [1286], [2253]) + - `eventOverlap`, `selectOverlap`, and similar + - `eventConstraint`, `selectConstraint`, and similar +- Improvements to dragging and dropping external events ([2004]) + - Associating with real event data. used with `eventReceive` + - Associating a `duration` +- Performance boost for moment creation + - Be aware, FullCalendar-specific methods now attached directly to global moment.fn + - Helps with [issue 2259][2259] +- Reintroduced forgotten `dropAccept` option ([2312]) + +[144]: https://code.google.com/p/fullcalendar/issues/detail?id=144 +[396]: https://code.google.com/p/fullcalendar/issues/detail?id=396 +[1286]: https://code.google.com/p/fullcalendar/issues/detail?id=1286 +[2004]: https://code.google.com/p/fullcalendar/issues/detail?id=2004 +[2253]: https://code.google.com/p/fullcalendar/issues/detail?id=2253 +[2259]: https://code.google.com/p/fullcalendar/issues/detail?id=2259 +[2312]: https://code.google.com/p/fullcalendar/issues/detail?id=2312 + + +v2.1.1 (2014-08-29) +------------------- + +- removeEventSource not working with array ([2203]) +- mouseout not triggered after mouseover+updateEvent ([829]) +- agenda event's render with no href, not clickable ([2263]) + +[2203]: https://code.google.com/p/fullcalendar/issues/detail?id=2203 +[829]: https://code.google.com/p/fullcalendar/issues/detail?id=829 +[2263]: https://code.google.com/p/fullcalendar/issues/detail?id=2263 + + +v2.1.0 (2014-08-25) +------------------- + +Large code refactor with better OOP, better code reuse, and more comments. +**No more reliance on jQuery UI** for event dragging, resizing, or anything else. + +Significant changes to HTML/CSS skeleton: +- Leverages tables for liquid rendering of days and events. No costly manual repositioning ([809]) +- **Backwards-incompatibilities**: + - **Many classNames have changed. Custom CSS will likely need to be adjusted.** + - IE7 definitely not supported anymore + - In `eventRender` callback, `element` will not be attached to DOM yet + - Events are styled to be one line by default ([1992]). Can be undone through custom CSS, + but not recommended (might get gaps [like this][111] in certain situations). + +A "more..." link when there are too many events on a day ([304]). Works with month and basic views +as well as the all-day section of the agenda views. New options: +- `eventLimit`. a number or `true` +- `eventLimitClick`. the `"popover`" value will reveal all events in a raised panel (the default) +- `eventLimitText` +- `dayPopoverFormat` + +Changes related to height and scrollbars: +- `aspectRatio`/`height`/`contentHeight` values will be honored *no matter what* + - If too many events causing too much vertical space, scrollbars will be used ([728]). + This is default behavior for month view (**backwards-incompatibility**) + - If too few slots in agenda view, view will stretch to be the correct height ([2196]) +- `'auto'` value for `height`/`contentHeight` options. If content is too tall, the view will + vertically stretch to accomodate and no scrollbars will be used ([521]). +- Tall weeks in month view will borrow height from other weeks ([243]) +- Automatically scroll the view then dragging/resizing an event ([1025], [2078]) +- New `fixedWeekCount` option to determines the number of weeks in month view + - Supersedes `weekMode` (**deprecated**). Instead, use a combination of `fixedWeekCount` and + one of the height options, possibly with an `'auto'` value + +Much nicer, glitch-free rendering of calendar *for printers* ([35]). Things you might not expect: +- Buttons will become hidden +- Agenda views display a flat list of events where the time slots would be + +Other issues resolved along the way: +- Space on right side of agenda events configurable through CSS ([204]) +- Problem with window resize ([259]) +- Events sorting stays consistent across weeks ([510]) +- Agenda's columns misaligned on wide screens ([511]) +- Run `selectHelper` through `eventRender` callbacks ([629]) +- Keyboard access, tabbing ([637]) +- Run resizing events through `eventRender` ([714]) +- Resize an event to a different day in agenda views ([736]) +- Allow selection across days in agenda views ([778]) +- Mouseenter delegated event not working on event elements ([936]) +- Agenda event dragging, snapping to different columns is erratic ([1101]) +- Android browser cuts off Day view at 8 PM with no scroll bar ([1203]) +- Don't fire `eventMouseover`/`eventMouseout` while dragging/resizing ([1297]) +- Customize the resize handle text ("=") ([1326]) +- If agenda event is too short, don't overwrite `.fc-event-time` ([1700]) +- Zooming calendar causes events to misalign ([1996]) +- Event destroy callback on event removal ([2017]) +- Agenda views, when RTL, should have axis on right ([2132]) +- Make header buttons more accessibile ([2151]) +- daySelectionMousedown should interpret OSX ctrl+click as a right mouse click ([2169]) +- Best way to display time text on multi-day events *with times* ([2172]) +- Eliminate table use for header layout ([2186]) +- Event delegation used for event-related callbacks (like `eventClick`). Speedier. + +[35]: https://code.google.com/p/fullcalendar/issues/detail?id=35 +[204]: https://code.google.com/p/fullcalendar/issues/detail?id=204 +[243]: https://code.google.com/p/fullcalendar/issues/detail?id=243 +[259]: https://code.google.com/p/fullcalendar/issues/detail?id=259 +[304]: https://code.google.com/p/fullcalendar/issues/detail?id=304 +[510]: https://code.google.com/p/fullcalendar/issues/detail?id=510 +[511]: https://code.google.com/p/fullcalendar/issues/detail?id=511 +[521]: https://code.google.com/p/fullcalendar/issues/detail?id=521 +[629]: https://code.google.com/p/fullcalendar/issues/detail?id=629 +[637]: https://code.google.com/p/fullcalendar/issues/detail?id=637 +[714]: https://code.google.com/p/fullcalendar/issues/detail?id=714 +[728]: https://code.google.com/p/fullcalendar/issues/detail?id=728 +[736]: https://code.google.com/p/fullcalendar/issues/detail?id=736 +[778]: https://code.google.com/p/fullcalendar/issues/detail?id=778 +[809]: https://code.google.com/p/fullcalendar/issues/detail?id=809 +[936]: https://code.google.com/p/fullcalendar/issues/detail?id=936 +[1025]: https://code.google.com/p/fullcalendar/issues/detail?id=1025 +[1101]: https://code.google.com/p/fullcalendar/issues/detail?id=1101 +[1203]: https://code.google.com/p/fullcalendar/issues/detail?id=1203 +[1297]: https://code.google.com/p/fullcalendar/issues/detail?id=1297 +[1326]: https://code.google.com/p/fullcalendar/issues/detail?id=1326 +[1700]: https://code.google.com/p/fullcalendar/issues/detail?id=1700 +[1992]: https://code.google.com/p/fullcalendar/issues/detail?id=1992 +[1996]: https://code.google.com/p/fullcalendar/issues/detail?id=1996 +[2017]: https://code.google.com/p/fullcalendar/issues/detail?id=2017 +[2078]: https://code.google.com/p/fullcalendar/issues/detail?id=2078 +[2132]: https://code.google.com/p/fullcalendar/issues/detail?id=2132 +[2151]: https://code.google.com/p/fullcalendar/issues/detail?id=2151 +[2169]: https://code.google.com/p/fullcalendar/issues/detail?id=2169 +[2172]: https://code.google.com/p/fullcalendar/issues/detail?id=2172 +[2186]: https://code.google.com/p/fullcalendar/issues/detail?id=2186 +[2196]: https://code.google.com/p/fullcalendar/issues/detail?id=2196 +[111]: https://code.google.com/p/fullcalendar/issues/detail?id=111 + + +v2.0.3 (2014-08-15) +------------------- + +- moment-2.8.1 compatibility ([2221]) +- relative path in bower.json ([PR 117]) +- upgraded jquery-ui and misc dev dependencies + +[2221]: https://code.google.com/p/fullcalendar/issues/detail?id=2221 +[PR 117]: https://github.com/arshaw/fullcalendar/pull/177 + + +v2.0.2 (2014-06-24) +------------------- + +- bug with persisting addEventSource calls ([2191]) +- bug with persisting removeEvents calls with an array source ([2187]) +- bug with removeEvents method when called with 0 removes all events ([2082]) + +[2191]: https://code.google.com/p/fullcalendar/issues/detail?id=2191 +[2187]: https://code.google.com/p/fullcalendar/issues/detail?id=2187 +[2082]: https://code.google.com/p/fullcalendar/issues/detail?id=2082 + + +v2.0.1 (2014-06-15) +------------------- + +- `delta` parameters reintroduced in `eventDrop` and `eventResize` handlers ([2156]) + - **Note**: this changes the argument order for `revertFunc` +- wrongfully triggering a windowResize when resizing an agenda view event ([1116]) +- `this` values in event drag-n-drop/resize handlers consistently the DOM node ([1177]) +- `displayEventEnd` - v2 workaround to force display of an end time ([2090]) +- don't modify passed-in eventSource items ([954]) +- destroy method now removes fc-ltr class ([2033]) +- weeks of last/next month still visible when weekends are hidden ([2095]) +- fixed memory leak when destroying calendar with selectable/droppable ([2137]) +- Icelandic language ([2180]) +- Bahasa Indonesia language ([PR 172]) + +[1116]: https://code.google.com/p/fullcalendar/issues/detail?id=1116 +[1177]: https://code.google.com/p/fullcalendar/issues/detail?id=1177 +[2090]: https://code.google.com/p/fullcalendar/issues/detail?id=2090 +[954]: https://code.google.com/p/fullcalendar/issues/detail?id=954 +[2033]: https://code.google.com/p/fullcalendar/issues/detail?id=2033 +[2095]: https://code.google.com/p/fullcalendar/issues/detail?id=2095 +[2137]: https://code.google.com/p/fullcalendar/issues/detail?id=2137 +[2156]: https://code.google.com/p/fullcalendar/issues/detail?id=2156 +[2180]: https://code.google.com/p/fullcalendar/issues/detail?id=2180 +[PR 172]: https://github.com/arshaw/fullcalendar/pull/172 + + +v2.0.0 (2014-06-01) +------------------- + +Internationalization support, timezone support, and [MomentJS] integration. Extensive changes, many +of which are backwards incompatible. + +[Full list of changes][Upgrading-to-v2] | [Affected Issues][Date-Milestone] + +An automated testing framework has been set up ([Karma] + [Jasmine]) and tests have been written +which cover about half of FullCalendar's functionality. Special thanks to @incre-d, @vidbina, and +@sirrocco for the help. + +In addition, the main development repo has been repurposed to also include the built distributable +JS/CSS for the project and will serve as the new [Bower] endpoint. + +[MomentJS]: http://momentjs.com/ +[Upgrading-to-v2]: http://arshaw.com/fullcalendar/wiki/Upgrading-to-v2/ +[Date-Milestone]: https://code.google.com/p/fullcalendar/issues/list?can=1&q=milestone%3Ddate +[Karma]: http://karma-runner.github.io/ +[Jasmine]: http://jasmine.github.io/ +[Bower]: http://bower.io/ + + +v1.6.4 (2013-09-01) +------------------- + +- better algorithm for positioning timed agenda events ([1115]) +- `slotEventOverlap` option to tweak timed agenda event overlapping ([218]) +- selection bug when slot height is customized ([1035]) +- supply view argument in `loading` callback ([1018]) +- fixed week number not displaying in agenda views ([1951]) +- fixed fullCalendar not initializing with no options ([1356]) +- NPM's `package.json`, no more warnings or errors ([1762]) +- building the bower component should output `bower.json` instead of `component.json` ([PR 125]) +- use bower internally for fetching new versions of jQuery and jQuery UI + +[1115]: https://code.google.com/p/fullcalendar/issues/detail?id=1115 +[218]: https://code.google.com/p/fullcalendar/issues/detail?id=218 +[1035]: https://code.google.com/p/fullcalendar/issues/detail?id=1035 +[1018]: https://code.google.com/p/fullcalendar/issues/detail?id=1018 +[1951]: https://code.google.com/p/fullcalendar/issues/detail?id=1951 +[1356]: https://code.google.com/p/fullcalendar/issues/detail?id=1356 +[1762]: https://code.google.com/p/fullcalendar/issues/detail?id=1762 +[PR 125]: https://github.com/arshaw/fullcalendar/pull/125 + + +v1.6.3 (2013-08-10) +------------------- + +- `viewRender` callback ([PR 15]) +- `viewDestroy` callback ([PR 15]) +- `eventDestroy` callback ([PR 111]) +- `handleWindowResize` option ([PR 54]) +- `eventStartEditable`/`startEditable` options ([PR 49]) +- `eventDurationEditable`/`durationEditable` options ([PR 49]) +- specify function for `$.ajax` `data` parameter for JSON event sources ([PR 59]) +- fixed bug with agenda event dropping in wrong column ([PR 55]) +- easier event element z-index customization ([PR 58]) +- classNames on past/future days ([PR 88]) +- allow `null`/`undefined` event titles ([PR 84]) +- small optimize for agenda event rendering ([PR 56]) +- deprecated: + - `viewDisplay` + - `disableDragging` + - `disableResizing` +- bundled with latest jQuery (1.10.2) and jQuery UI (1.10.3) + +[PR 15]: https://github.com/arshaw/fullcalendar/pull/15 +[PR 111]: https://github.com/arshaw/fullcalendar/pull/111 +[PR 54]: https://github.com/arshaw/fullcalendar/pull/54 +[PR 49]: https://github.com/arshaw/fullcalendar/pull/49 +[PR 59]: https://github.com/arshaw/fullcalendar/pull/59 +[PR 55]: https://github.com/arshaw/fullcalendar/pull/55 +[PR 58]: https://github.com/arshaw/fullcalendar/pull/58 +[PR 88]: https://github.com/arshaw/fullcalendar/pull/88 +[PR 84]: https://github.com/arshaw/fullcalendar/pull/84 +[PR 56]: https://github.com/arshaw/fullcalendar/pull/56 + + +v1.6.2 (2013-07-18) +------------------- + +- `hiddenDays` option ([686]) +- bugfix: when `eventRender` returns `false`, incorrect stacking of events ([762]) +- bugfix: couldn't change `event.backgroundImage` when calling `updateEvent` (thx @stephenharris) + +[686]: https://code.google.com/p/fullcalendar/issues/detail?id=686 +[762]: https://code.google.com/p/fullcalendar/issues/detail?id=762 + + +v1.6.1 (2013-04-14) +------------------- + +- fixed event inner content overflow bug ([1783]) +- fixed table header className bug [1772] +- removed text-shadow on events (better for general use, thx @tkrotoff) + +[1783]: https://code.google.com/p/fullcalendar/issues/detail?id=1783 +[1772]: https://code.google.com/p/fullcalendar/issues/detail?id=1772 + + +v1.6.0 (2013-03-18) +------------------- + +- visual facelift, with bootstrap-inspired buttons and colors +- simplified HTML/CSS for events and buttons +- `dayRender`, for modifying a day cell ([191], thx @althaus) +- week numbers on side of calendar ([295]) + - `weekNumber` + - `weekNumberCalculation` + - `weekNumberTitle` + - `W` formatting variable +- finer snapping granularity for agenda view events ([495], thx @ms-doodle-com) +- `eventAfterAllRender` ([753], thx @pdrakeweb) +- `eventDataTransform` (thx @joeyspo) +- `data-date` attributes on cells (thx @Jae) +- expose `$.fullCalendar.dateFormatters` +- when clicking fast on buttons, prevent text selection +- bundled with latest jQuery (1.9.1) and jQuery UI (1.10.2) +- Grunt/Lumbar build system for internal development +- build for Bower package manager +- build for jQuery plugin site + +[191]: https://code.google.com/p/fullcalendar/issues/detail?id=191 +[295]: https://code.google.com/p/fullcalendar/issues/detail?id=295 +[495]: https://code.google.com/p/fullcalendar/issues/detail?id=495 +[753]: https://code.google.com/p/fullcalendar/issues/detail?id=753 + + +v1.5.4 (2012-09-05) +------------------- + +- made compatible with jQuery 1.8.* (thx @archaeron) +- bundled with jQuery 1.8.1 and jQuery UI 1.8.23 + + +v1.5.3 (2012-02-06) +------------------- + +- fixed dragging issue with jQuery UI 1.8.16 ([1168]) +- bundled with jQuery 1.7.1 and jQuery UI 1.8.17 + +[1168]: https://code.google.com/p/fullcalendar/issues/detail?id=1168 + + +v1.5.2 (2011-08-21) +------------------- + +- correctly process UTC "Z" ISO8601 date strings ([750]) + +[750]: https://code.google.com/p/fullcalendar/issues/detail?id=750 + + +v1.5.1 (2011-04-09) +------------------- + +- more flexible ISO8601 date parsing ([814]) +- more flexible parsing of UNIX timestamps ([826]) +- FullCalendar now buildable from source on a Mac ([795]) +- FullCalendar QA'd in FF4 ([883]) +- upgraded to jQuery 1.5.2 (which supports IE9) and jQuery UI 1.8.11 + +[814]: https://code.google.com/p/fullcalendar/issues/detail?id=814 +[826]: https://code.google.com/p/fullcalendar/issues/detail?id=826 +[795]: https://code.google.com/p/fullcalendar/issues/detail?id=795 +[883]: https://code.google.com/p/fullcalendar/issues/detail?id=883 + + +v1.5 (2011-03-19) +----------------- + +- slicker default styling for buttons +- reworked a lot of the calendar's HTML and accompanying CSS (solves [327] and [395]) +- more printer-friendly (fullcalendar-print.css) +- fullcalendar now inherits styles from jquery-ui themes differently. + styles for buttons are distinct from styles for calendar cells. + (solves [299]) +- can now color events through FullCalendar options and Event-Object properties ([117]) + THIS IS NOW THE PREFERRED METHOD OF COLORING EVENTS (as opposed to using className and CSS) + - FullCalendar options: + - eventColor (changes both background and border) + - eventBackgroundColor + - eventBorderColor + - eventTextColor + - Event-Object options: + - color (changes both background and border) + - backgroundColor + - borderColor + - textColor +- can now specify an event source as an *object* with a `url` property (json feed) or + an `events` property (function or array) with additional properties that will + be applied to the entire event source: + - color (changes both background and border) + - backgroudColor + - borderColor + - textColor + - className + - editable + - allDayDefault + - ignoreTimezone + - startParam (for a feed) + - endParam (for a feed) + - ANY OF THE JQUERY $.ajax OPTIONS + allows for easily changing from GET to POST and sending additional parameters ([386]) + allows for easily attaching ajax handlers such as `error` ([754]) + allows for turning caching on ([355]) +- Google Calendar feeds are now specified differently: + - specify a simple string of your feed's URL + - specify an *object* with a `url` property of your feed's URL. + you can include any of the new Event-Source options in this object. + - the old `$.fullCalendar.gcalFeed` method still works +- no more IE7 SSL popup ([504]) +- remove `cacheParam` - use json event source `cache` option instead +- latest jquery/jquery-ui + +[327]: https://code.google.com/p/fullcalendar/issues/detail?id=327 +[395]: https://code.google.com/p/fullcalendar/issues/detail?id=395 +[299]: https://code.google.com/p/fullcalendar/issues/detail?id=299 +[117]: https://code.google.com/p/fullcalendar/issues/detail?id=117 +[386]: https://code.google.com/p/fullcalendar/issues/detail?id=386 +[754]: https://code.google.com/p/fullcalendar/issues/detail?id=754 +[355]: https://code.google.com/p/fullcalendar/issues/detail?id=355 +[504]: https://code.google.com/p/fullcalendar/issues/detail?id=504 + + +v1.4.11 (2011-02-22) +-------------------- + +- fixed rerenderEvents bug ([790]) +- fixed bug with faulty dragging of events from all-day slot in agenda views +- bundled with jquery 1.5 and jquery-ui 1.8.9 + +[790]: https://code.google.com/p/fullcalendar/issues/detail?id=790 + + +v1.4.10 (2011-01-02) +-------------------- + +- fixed bug with resizing event to different week in 5-day month view ([740]) +- fixed bug with events not sticking after a removeEvents call ([757]) +- fixed bug with underlying parseTime method, and other uses of parseInt ([688]) + +[740]: https://code.google.com/p/fullcalendar/issues/detail?id=740 +[757]: https://code.google.com/p/fullcalendar/issues/detail?id=757 +[688]: https://code.google.com/p/fullcalendar/issues/detail?id=688 + + +v1.4.9 (2010-11-16) +------------------- + +- new algorithm for vertically stacking events ([111]) +- resizing an event to a different week ([306]) +- bug: some events not rendered with consecutive calls to addEventSource ([679]) + +[111]: https://code.google.com/p/fullcalendar/issues/detail?id=111 +[306]: https://code.google.com/p/fullcalendar/issues/detail?id=306 +[679]: https://code.google.com/p/fullcalendar/issues/detail?id=679 + + +v1.4.8 (2010-10-16) +------------------- + +- ignoreTimezone option (set to `false` to process UTC offsets in ISO8601 dates) +- bugfixes + - event refetching not being called under certain conditions ([417], [554]) + - event refetching being called multiple times under certain conditions ([586], [616]) + - selection cannot be triggered by right mouse button ([558]) + - agenda view left axis sized incorrectly ([465]) + - IE js error when calendar is too narrow ([517]) + - agenda view looks strange when no scrollbars ([235]) + - improved parsing of ISO8601 dates with UTC offsets +- $.fullCalendar.version +- an internal refactor of the code, for easier future development and modularity + +[417]: https://code.google.com/p/fullcalendar/issues/detail?id=417 +[554]: https://code.google.com/p/fullcalendar/issues/detail?id=554 +[586]: https://code.google.com/p/fullcalendar/issues/detail?id=586 +[616]: https://code.google.com/p/fullcalendar/issues/detail?id=616 +[558]: https://code.google.com/p/fullcalendar/issues/detail?id=558 +[465]: https://code.google.com/p/fullcalendar/issues/detail?id=465 +[517]: https://code.google.com/p/fullcalendar/issues/detail?id=517 +[235]: https://code.google.com/p/fullcalendar/issues/detail?id=235 + + +v1.4.7 (2010-07-05) +------------------- + +- "dropping" external objects onto the calendar + - droppable (boolean, to turn on/off) + - dropAccept (to filter which events the calendar will accept) + - drop (trigger) +- selectable options can now be specified with a View Option Hash +- bugfixes + - dragged & reverted events having wrong time text ([406]) + - bug rendering events that have an endtime with seconds, but no hours/minutes ([477]) + - gotoDate date overflow bug ([429]) + - wrong date reported when clicking on edge of last column in agenda views [412] +- support newlines in event titles +- select/unselect callbacks now passes native js event + +[406]: https://code.google.com/p/fullcalendar/issues/detail?id=406 +[477]: https://code.google.com/p/fullcalendar/issues/detail?id=477 +[429]: https://code.google.com/p/fullcalendar/issues/detail?id=429 +[412]: https://code.google.com/p/fullcalendar/issues/detail?id=412 + + +v1.4.6 (2010-05-31) +------------------- + +- "selecting" days or timeslots + - options: selectable, selectHelper, unselectAuto, unselectCancel + - callbacks: select, unselect + - methods: select, unselect +- when dragging an event, the highlighting reflects the duration of the event +- code compressing by Google Closure Compiler +- bundled with jQuery 1.4.2 and jQuery UI 1.8.1 + + +v1.4.5 (2010-02-21) +------------------- + +- lazyFetching option, which can force the calendar to fetch events on every view/date change +- scroll state of agenda views are preserved when switching back to view +- bugfixes + - calling methods on an uninitialized fullcalendar throws error + - IE6/7 bug where an entire view becomes invisible ([320]) + - error when rendering a hidden calendar (in jquery ui tabs for example) in IE ([340]) + - interconnected bugs related to calendar resizing and scrollbars + - when switching views or clicking prev/next, calendar would "blink" ([333]) + - liquid-width calendar's events shifted (depending on initial height of browser) ([341]) + - more robust underlying algorithm for calendar resizing + +[320]: https://code.google.com/p/fullcalendar/issues/detail?id=320 +[340]: https://code.google.com/p/fullcalendar/issues/detail?id=340 +[333]: https://code.google.com/p/fullcalendar/issues/detail?id=333 +[341]: https://code.google.com/p/fullcalendar/issues/detail?id=341 + + +v1.4.4 (2010-02-03) +------------------- + +- optimized event rendering in all views (events render in 1/10 the time) +- gotoDate() does not force the calendar to unnecessarily rerender +- render() method now correctly readjusts height + + +v1.4.3 (2009-12-22) +------------------- + +- added destroy method +- Google Calendar event pages respect currentTimezone +- caching now handled by jQuery's ajax +- protection from setting aspectRatio to zero +- bugfixes + - parseISO8601 and DST caused certain events to display day before + - button positioning problem in IE6 + - ajax event source removed after recently being added, events still displayed + - event not displayed when end is an empty string + - dynamically setting calendar height when no events have been fetched, throws error + + +v1.4.2 (2009-12-02) +------------------- + +- eventAfterRender trigger +- getDate & getView methods +- height & contentHeight options (explicitly sets the pixel height) +- minTime & maxTime options (restricts shown hours in agenda view) +- getters [for all options] and setters [for height, contentHeight, and aspectRatio ONLY! stay tuned..] +- render method now readjusts calendar's size +- bugfixes + - lightbox scripts that use iframes (like fancybox) + - day-of-week classNames were off when firstDay=1 + - guaranteed space on right side of agenda events (even when stacked) + - accepts ISO8601 dates with a space (instead of 'T') + + +v1.4.1 (2009-10-31) +------------------- + +- can exclude weekends with new 'weekends' option +- gcal feed 'currentTimezone' option +- bugfixes + - year/month/date option sometimes wouldn't set correctly (depending on current date) + - daylight savings issue caused agenda views to start at 1am (for BST users) +- cleanup of gcal.js code + + +v1.4 (2009-10-19) +----------------- + +- agendaWeek and agendaDay views +- added some options for agenda views: + - allDaySlot + - allDayText + - firstHour + - slotMinutes + - defaultEventMinutes + - axisFormat +- modified some existing options/triggers to work with agenda views: + - dragOpacity and timeFormat can now accept a "View Hash" (a new concept) + - dayClick now has an allDay parameter + - eventDrop now has an an allDay parameter + (this will affect those who use revertFunc, adjust parameter list) +- added 'prevYear' and 'nextYear' for buttons in header +- minor change for theme users, ui-state-hover not applied to active/inactive buttons +- added event-color-changing example in docs +- better defaults for right-to-left themed button icons + + +v1.3.2 (2009-10-13) +------------------- + +- Bugfixes (please upgrade from 1.3.1!) + - squashed potential infinite loop when addMonths and addDays + is called with an invalid date + - $.fullCalendar.parseDate() now correctly parses IETF format + - when switching views, the 'today' button sticks inactive, fixed +- gotoDate now can accept a single Date argument +- documentation for changes in 1.3.1 and 1.3.2 now on website + + +v1.3.1 (2009-09-30) +------------------- + +- Important Bugfixes (please upgrade from 1.3!) + - When current date was late in the month, for long months, and prev/next buttons + were clicked in month-view, some months would be skipped/repeated + - In certain time zones, daylight savings time would cause certain days + to be misnumbered in month-view +- Subtle change in way week interval is chosen when switching from month to basicWeek/basicDay view +- Added 'allDayDefault' option +- Added 'changeView' and 'render' methods + + +v1.3 (2009-09-21) +----------------- + +- different 'views': month/basicWeek/basicDay +- more flexible 'header' system for buttons +- themable by jQuery UI themes +- resizable events (require jQuery UI resizable plugin) +- rescoped & rewritten CSS, enhanced default look +- cleaner css & rendering techniques for right-to-left +- reworked options & API to support multiple views / be consistent with jQuery UI +- refactoring of entire codebase + - broken into different JS & CSS files, assembled w/ build scripts + - new test suite for new features, uses firebug-lite +- refactored docs +- Options + - + date + - + defaultView + - + aspectRatio + - + disableResizing + - + monthNames (use instead of $.fullCalendar.monthNames) + - + monthNamesShort (use instead of $.fullCalendar.monthAbbrevs) + - + dayNames (use instead of $.fullCalendar.dayNames) + - + dayNamesShort (use instead of $.fullCalendar.dayAbbrevs) + - + theme + - + buttonText + - + buttonIcons + - x draggable -> editable/disableDragging + - x fixedWeeks -> weekMode + - x abbrevDayHeadings -> columnFormat + - x buttons/title -> header + - x eventDragOpacity -> dragOpacity + - x eventRevertDuration -> dragRevertDuration + - x weekStart -> firstDay + - x rightToLeft -> isRTL + - x showTime (use 'allDay' CalEvent property instead) +- Triggered Actions + - + eventResizeStart + - + eventResizeStop + - + eventResize + - x monthDisplay -> viewDisplay + - x resize -> windowResize + - 'eventDrop' params changed, can revert if ajax cuts out +- CalEvent Properties + - x showTime -> allDay + - x draggable -> editable + - 'end' is now INCLUSIVE when allDay=true + - 'url' now produces a real tag, more native clicking/tab behavior +- Methods: + - + renderEvent + - x prevMonth -> prev + - x nextMonth -> next + - x prevYear/nextYear -> moveDate + - x refresh -> rerenderEvents/refetchEvents + - x removeEvent -> removeEvents + - x getEventsByID -> clientEvents +- Utilities: + - 'formatDate' format string completely changed (inspired by jQuery UI datepicker + datejs) + - 'formatDates' added to support date-ranges +- Google Calendar Options: + - x draggable -> editable +- Bugfixes + - gcal extension fetched 25 results max, now fetches all + + +v1.2.1 (2009-06-29) +------------------- + +- bugfixes + - allows and corrects invalid end dates for events + - doesn't throw an error in IE while rendering when display:none + - fixed 'loading' callback when used w/ multiple addEventSource calls + - gcal className can now be an array + + +v1.2 (2009-05-31) +----------------- + +- expanded API + - 'className' CalEvent attribute + - 'source' CalEvent attribute + - dynamically get/add/remove/update events of current month + - locale improvements: change month/day name text + - better date formatting ($.fullCalendar.formatDate) + - multiple 'event sources' allowed + - dynamically add/remove event sources +- options for prevYear and nextYear buttons +- docs have been reworked (include addition of Google Calendar docs) +- changed behavior of parseDate for number strings + (now interpets as unix timestamp, not MS times) +- bugfixes + - rightToLeft month start bug + - off-by-one errors with month formatting commands + - events from previous months sticking when clicking prev/next quickly +- Google Calendar API changed to work w/ multiple event sources + - can also provide 'className' and 'draggable' options +- date utilties moved from $ to $.fullCalendar +- more documentation in source code +- minified version of fullcalendar.js +- test suit (available from svn) +- top buttons now use `' + ) + .click(function(ev) { + // don't process clicks for disabled buttons + if (!button.hasClass(tm + '-state-disabled')) { + + buttonClick(ev); + + // after the click action, if the button becomes the "active" tab, or disabled, + // it should never have a hover class, so remove it now. + if ( + button.hasClass(tm + '-state-active') || + button.hasClass(tm + '-state-disabled') + ) { + button.removeClass(tm + '-state-hover'); + } + } + }) + .mousedown(function() { + // the *down* effect (mouse pressed in). + // only on buttons that are not the "active" tab, or disabled + button + .not('.' + tm + '-state-active') + .not('.' + tm + '-state-disabled') + .addClass(tm + '-state-down'); + }) + .mouseup(function() { + // undo the *down* effect + button.removeClass(tm + '-state-down'); + }) + .hover( + function() { + // the *hover* effect. + // only on buttons that are not the "active" tab, or disabled + button + .not('.' + tm + '-state-active') + .not('.' + tm + '-state-disabled') + .addClass(tm + '-state-hover'); + }, + function() { + // undo the *hover* effect + button + .removeClass(tm + '-state-hover') + .removeClass(tm + '-state-down'); // if mouseleave happens before mouseup + } + ); + + groupChildren = groupChildren.add(button); + } + } + }); + + if (isOnlyButtons) { + groupChildren + .first().addClass(tm + '-corner-left').end() + .last().addClass(tm + '-corner-right').end(); + } + + if (groupChildren.length > 1) { + groupEl = $('
      '); + if (isOnlyButtons) { + groupEl.addClass('fc-button-group'); + } + groupEl.append(groupChildren); + sectionEl.append(groupEl); + } + else { + sectionEl.append(groupChildren); // 1 or 0 children + } + }); + } + + return sectionEl; + } + + + function updateTitle(text) { + if (el) { + el.find('h2').text(text); + } + } + + + function activateButton(buttonName) { + if (el) { + el.find('.fc-' + buttonName + '-button') + .addClass(tm + '-state-active'); + } + } + + + function deactivateButton(buttonName) { + if (el) { + el.find('.fc-' + buttonName + '-button') + .removeClass(tm + '-state-active'); + } + } + + + function disableButton(buttonName) { + if (el) { + el.find('.fc-' + buttonName + '-button') + .prop('disabled', true) + .addClass(tm + '-state-disabled'); + } + } + + + function enableButton(buttonName) { + if (el) { + el.find('.fc-' + buttonName + '-button') + .prop('disabled', false) + .removeClass(tm + '-state-disabled'); + } + } + + + function getViewsWithButtons() { + return viewsWithButtons; + } } ;; -function DayEventRenderer() { - var t = this; +FC.sourceNormalizers = []; +FC.sourceFetchers = []; +var ajaxDefaults = { + dataType: 'json', + cache: false +}; + +var eventGUID = 1; + + +function EventManager() { // assumed to be a calendar + var t = this; + // exports - t.renderDayEvents = renderDayEvents; - t.draggableDayEvent = draggableDayEvent; // made public so that subclasses can override - t.resizableDayEvent = resizableDayEvent; // " + t.isFetchNeeded = isFetchNeeded; + t.fetchEvents = fetchEvents; + t.fetchEventSources = fetchEventSources; + t.getEventSources = getEventSources; + t.getEventSourceById = getEventSourceById; + t.getEventSourcesByMatchArray = getEventSourcesByMatchArray; + t.getEventSourcesByMatch = getEventSourcesByMatch; + t.addEventSource = addEventSource; + t.removeEventSource = removeEventSource; + t.removeEventSources = removeEventSources; + t.updateEvent = updateEvent; + t.renderEvent = renderEvent; + t.removeEvents = removeEvents; + t.clientEvents = clientEvents; + t.mutateEvent = mutateEvent; + t.normalizeEventDates = normalizeEventDates; + t.normalizeEventTimes = normalizeEventTimes; // imports - var opt = t.opt; - var trigger = t.trigger; - var isEventDraggable = t.isEventDraggable; - var isEventResizable = t.isEventResizable; - var eventEnd = t.eventEnd; - var reportEventElement = t.reportEventElement; - var eventElementHandlers = t.eventElementHandlers; - var showEvents = t.showEvents; - var hideEvents = t.hideEvents; - var eventDrop = t.eventDrop; - var eventResize = t.eventResize; - var getRowCnt = t.getRowCnt; - var getColCnt = t.getColCnt; - var getColWidth = t.getColWidth; - var allDayRow = t.allDayRow; // TODO: rename - var colLeft = t.colLeft; - var colRight = t.colRight; - var colContentLeft = t.colContentLeft; - var colContentRight = t.colContentRight; - var dateToCell = t.dateToCell; - var getDaySegmentContainer = t.getDaySegmentContainer; - var formatDates = t.calendar.formatDates; - var renderDayOverlay = t.renderDayOverlay; - var clearOverlays = t.clearOverlays; - var clearSelection = t.clearSelection; - var getHoverListener = t.getHoverListener; - var rangeToSegments = t.rangeToSegments; - var cellToDate = t.cellToDate; - var cellToCellOffset = t.cellToCellOffset; - var cellOffsetToDayOffset = t.cellOffsetToDayOffset; - var dateToDayOffset = t.dateToDayOffset; - var dayOffsetToCellOffset = t.dayOffsetToCellOffset; + var reportEvents = t.reportEvents; + + + // locals + var stickySource = { events: [] }; + var sources = [ stickySource ]; + var rangeStart, rangeEnd; + var pendingSourceCnt = 0; // outstanding fetch requests, max one per source + var cache = []; // holds events that have already been expanded - // Render `events` onto the calendar, attach mouse event handlers, and call the `eventAfterRender` callback for each. - // Mouse event will be lazily applied, except if the event has an ID of `modifiedEventId`. - // Can only be called when the event container is empty (because it wipes out all innerHTML). - function renderDayEvents(events, modifiedEventId) { - - // do the actual rendering. Receive the intermediate "segment" data structures. - var segments = _renderDayEvents( - events, - false, // don't append event elements - true // set the heights of the rows - ); - - // report the elements to the View, for general drag/resize utilities - segmentElementEach(segments, function(segment, element) { - reportEventElement(segment.event, element); - }); - - // attach mouse handlers - attachHandlers(segments, modifiedEventId); - - // call `eventAfterRender` callback for each event - segmentElementEach(segments, function(segment, element) { - trigger('eventAfterRender', segment.event, segment.event, element); - }); - } - - - // Render an event on the calendar, but don't report them anywhere, and don't attach mouse handlers. - // Append this event element to the event container, which might already be populated with events. - // If an event's segment will have row equal to `adjustRow`, then explicitly set its top coordinate to `adjustTop`. - // This hack is used to maintain continuity when user is manually resizing an event. - // Returns an array of DOM elements for the event. - function renderTempDayEvent(event, adjustRow, adjustTop) { - - // actually render the event. `true` for appending element to container. - // Recieve the intermediate "segment" data structures. - var segments = _renderDayEvents( - [ event ], - true, // append event elements - false // don't set the heights of the rows - ); - - var elements = []; - - // Adjust certain elements' top coordinates - segmentElementEach(segments, function(segment, element) { - if (segment.row === adjustRow) { - element.css('top', adjustTop); + $.each( + (t.options.events ? [ t.options.events ] : []).concat(t.options.eventSources || []), + function(i, sourceInput) { + var source = buildEventSource(sourceInput); + if (source) { + sources.push(source); } - elements.push(element[0]); // accumulate DOM nodes - }); + } + ); + + + + /* Fetching + -----------------------------------------------------------------------------*/ - return elements; + + // start and end are assumed to be unzoned + function isFetchNeeded(start, end) { + return !rangeStart || // nothing has been fetched yet? + start < rangeStart || end > rangeEnd; // is part of the new range outside of the old range? + } + + + function fetchEvents(start, end) { + rangeStart = start; + rangeEnd = end; + fetchEventSources(sources, 'reset'); } - // Render events onto the calendar. Only responsible for the VISUAL aspect. - // Not responsible for attaching handlers or calling callbacks. - // Set `doAppend` to `true` for rendering elements without clearing the existing container. - // Set `doRowHeights` to allow setting the height of each row, to compensate for vertical event overflow. - function _renderDayEvents(events, doAppend, doRowHeights) { + // expects an array of event source objects (the originals, not copies) + // `specialFetchType` is an optimization parameter that affects purging of the event cache. + function fetchEventSources(specificSources, specialFetchType) { + var i, source; - // where the DOM nodes will eventually end up - var finalContainer = getDaySegmentContainer(); - - // the container where the initial HTML will be rendered. - // If `doAppend`==true, uses a temporary container. - var renderContainer = doAppend ? $("
      ") : finalContainer; - - var segments = buildSegments(events); - var html; - var elements; - - // calculate the desired `left` and `width` properties on each segment object - calculateHorizontals(segments); - - // build the HTML string. relies on `left` property - html = buildHTML(segments); - - // render the HTML. innerHTML is considerably faster than jQuery's .html() - renderContainer[0].innerHTML = html; - - // retrieve the individual elements - elements = renderContainer.children(); - - // if we were appending, and thus using a temporary container, - // re-attach elements to the real container. - if (doAppend) { - finalContainer.append(elements); + if (specialFetchType === 'reset') { + cache = []; + } + else if (specialFetchType !== 'add') { + cache = excludeEventsBySources(cache, specificSources); } - // assigns each element to `segment.event`, after filtering them through user callbacks - resolveElements(segments, elements); + for (i = 0; i < specificSources.length; i++) { + source = specificSources[i]; - // Calculate the left and right padding+margin for each element. - // We need this for setting each element's desired outer width, because of the W3C box model. - // It's important we do this in a separate pass from acually setting the width on the DOM elements - // because alternating reading/writing dimensions causes reflow for every iteration. - segmentElementEach(segments, function(segment, element) { - segment.hsides = hsides(element, true); // include margins = `true` + // already-pending sources have already been accounted for in pendingSourceCnt + if (source._status !== 'pending') { + pendingSourceCnt++; + } + + source._fetchId = (source._fetchId || 0) + 1; + source._status = 'pending'; + } + + for (i = 0; i < specificSources.length; i++) { + source = specificSources[i]; + + tryFetchEventSource(source, source._fetchId); + } + } + + + // fetches an event source and processes its result ONLY if it is still the current fetch. + // caller is responsible for incrementing pendingSourceCnt first. + function tryFetchEventSource(source, fetchId) { + _fetchEventSource(source, function(eventInputs) { + var isArraySource = $.isArray(source.events); + var i, eventInput; + var abstractEvent; + + if ( + // is this the source's most recent fetch? + // if not, rely on an upcoming fetch of this source to decrement pendingSourceCnt + fetchId === source._fetchId && + // event source no longer valid? + source._status !== 'rejected' + ) { + source._status = 'resolved'; + + if (eventInputs) { + for (i = 0; i < eventInputs.length; i++) { + eventInput = eventInputs[i]; + + if (isArraySource) { // array sources have already been convert to Event Objects + abstractEvent = eventInput; + } + else { + abstractEvent = buildEventFromInput(eventInput, source); + } + + if (abstractEvent) { // not false (an invalid event) + cache.push.apply( + cache, + expandEvent(abstractEvent) // add individual expanded events to the cache + ); + } + } + } + + decrementPendingSourceCnt(); + } }); + } - // Set the width of each element - segmentElementEach(segments, function(segment, element) { - element.width( - Math.max(0, segment.outerWidth - segment.hsides) + + function rejectEventSource(source) { + var wasPending = source._status === 'pending'; + + source._status = 'rejected'; + + if (wasPending) { + decrementPendingSourceCnt(); + } + } + + + function decrementPendingSourceCnt() { + pendingSourceCnt--; + if (!pendingSourceCnt) { + reportEvents(cache); + } + } + + + function _fetchEventSource(source, callback) { + var i; + var fetchers = FC.sourceFetchers; + var res; + + for (i=0; i" + - "
      "; - if (!event.allDay && segment.isStart) { - html += - "" + - htmlEscape( - formatDates(event.start, event.end, opt('timeFormat')) - ) + - ""; - } - html += - "" + - htmlEscape(event.title || '') + - "" + - "
      "; - if (segment.isEnd && isEventResizable(event)) { - html += - "
      " + - "   " + // makes hit area a lot better for IE6/7 - "
      "; - } - html += ""; - - // TODO: - // When these elements are initially rendered, they will be briefly visibile on the screen, - // even though their widths/heights are not set. - // SOLUTION: initially set them as visibility:hidden ? - - return html; - } - - - // Associate each segment (an object) with an element (a jQuery object), - // by setting each `segment.element`. - // Run each element through the `eventRender` filter, which allows developers to - // modify an existing element, supply a new one, or cancel rendering. - function resolveElements(segments, elements) { - for (var i=0; i= eventStart && innerSpan.end <= eventEnd; +}; + + +// Returns a list of events that the given event should be compared against when being considered for a move to +// the specified span. Attached to the Calendar's prototype because EventManager is a mixin for a Calendar. +Calendar.prototype.getPeerEvents = function(span, event) { + var cache = this.getEventCache(); + var peerEvents = []; + var i, otherEvent; + + for (i = 0; i < cache.length; i++) { + otherEvent = cache[i]; + if ( + !event || + event._id !== otherEvent._id // don't compare the event to itself or other related [repeating] events + ) { + peerEvents.push(otherEvent); + } + } + + return peerEvents; +}; + + +// updates the "backup" properties, which are preserved in order to compute diffs later on. +function backupEventDates(event) { + event._allDay = event.allDay; + event._start = event.start.clone(); + event._end = event.end ? event.end.clone() : null; +} + + +/* Overlapping / Constraining +-----------------------------------------------------------------------------------------*/ + + +// Determines if the given event can be relocated to the given span (unzoned start/end with other misc data) +Calendar.prototype.isEventSpanAllowed = function(span, event) { + var source = event.source || {}; + + var constraint = firstDefined( + event.constraint, + source.constraint, + this.options.eventConstraint + ); + + var overlap = firstDefined( + event.overlap, + source.overlap, + this.options.eventOverlap + ); + + return this.isSpanAllowed(span, constraint, overlap, event) && + (!this.options.eventAllow || this.options.eventAllow(span, event) !== false); +}; + + +// Determines if an external event can be relocated to the given span (unzoned start/end with other misc data) +Calendar.prototype.isExternalSpanAllowed = function(eventSpan, eventLocation, eventProps) { + var eventInput; + var event; + + // note: very similar logic is in View's reportExternalDrop + if (eventProps) { + eventInput = $.extend({}, eventProps, eventLocation); + event = this.expandEvent( + this.buildEventFromInput(eventInput) + )[0]; + } + + if (event) { + return this.isEventSpanAllowed(eventSpan, event); + } + else { // treat it as a selection + + return this.isSelectionSpanAllowed(eventSpan); + } +}; + + +// Determines the given span (unzoned start/end with other misc data) can be selected. +Calendar.prototype.isSelectionSpanAllowed = function(span) { + return this.isSpanAllowed(span, this.options.selectConstraint, this.options.selectOverlap) && + (!this.options.selectAllow || this.options.selectAllow(span) !== false); +}; + + +// Returns true if the given span (caused by an event drop/resize or a selection) is allowed to exist +// according to the constraint/overlap settings. +// `event` is not required if checking a selection. +Calendar.prototype.isSpanAllowed = function(span, constraint, overlap, event) { + var constraintEvents; + var anyContainment; + var peerEvents; + var i, peerEvent; + var peerOverlap; + + // the range must be fully contained by at least one of produced constraint events + if (constraint != null) { + + // not treated as an event! intermediate data structure + // TODO: use ranges in the future + constraintEvents = this.constraintToEvents(constraint); + if (constraintEvents) { // not invalid + + anyContainment = false; + for (i = 0; i < constraintEvents.length; i++) { + if (this.spanContainsSpan(constraintEvents[i], span)) { + anyContainment = true; break; } } - // `j` now holds the desired subrow index - if (subrows[j]) { - subrows[j].push(segment); + + if (!anyContainment) { + return false; + } + } + } + + peerEvents = this.getPeerEvents(span, event); + + for (i = 0; i < peerEvents.length; i++) { + peerEvent = peerEvents[i]; + + // there needs to be an actual intersection before disallowing anything + if (this.eventIntersectsRange(peerEvent, span)) { + + // evaluate overlap for the given range and short-circuit if necessary + if (overlap === false) { + return false; + } + // if the event's overlap is a test function, pass the peer event in question as the first param + else if (typeof overlap === 'function' && !overlap(peerEvent, event)) { + return false; + } + + // if we are computing if the given range is allowable for an event, consider the other event's + // EventObject-specific or Source-specific `overlap` property + if (event) { + peerOverlap = firstDefined( + peerEvent.overlap, + (peerEvent.source || {}).overlap + // we already considered the global `eventOverlap` + ); + if (peerOverlap === false) { + return false; + } + // if the peer event's overlap is a test function, pass the subject event as the first param + if (typeof peerOverlap === 'function' && !peerOverlap(event, peerEvent)) { + return false; + } + } + } + } + + return true; +}; + + +// Given an event input from the API, produces an array of event objects. Possible event inputs: +// 'businessHours' +// An event ID (number or string) +// An object with specific start/end dates or a recurring event (like what businessHours accepts) +Calendar.prototype.constraintToEvents = function(constraintInput) { + + if (constraintInput === 'businessHours') { + return this.getCurrentBusinessHourEvents(); + } + + if (typeof constraintInput === 'object') { + if (constraintInput.start != null) { // needs to be event-like input + return this.expandEvent(this.buildEventFromInput(constraintInput)); + } + else { + return null; // invalid + } + } + + return this.clientEvents(constraintInput); // probably an ID +}; + + +// Does the event's date range intersect with the given range? +// start/end already assumed to have stripped zones :( +Calendar.prototype.eventIntersectsRange = function(event, range) { + var eventStart = event.start.clone().stripZone(); + var eventEnd = this.getEventEnd(event).stripZone(); + + return range.start < eventEnd && range.end > eventStart; +}; + + +/* Business Hours +-----------------------------------------------------------------------------------------*/ + +var BUSINESS_HOUR_EVENT_DEFAULTS = { + id: '_fcBusinessHours', // will relate events from different calls to expandEvent + start: '09:00', + end: '17:00', + dow: [ 1, 2, 3, 4, 5 ], // monday - friday + rendering: 'inverse-background' + // classNames are defined in businessHoursSegClasses +}; + +// Return events objects for business hours within the current view. +// Abuse of our event system :( +Calendar.prototype.getCurrentBusinessHourEvents = function(wholeDay) { + return this.computeBusinessHourEvents(wholeDay, this.options.businessHours); +}; + +// Given a raw input value from options, return events objects for business hours within the current view. +Calendar.prototype.computeBusinessHourEvents = function(wholeDay, input) { + if (input === true) { + return this.expandBusinessHourEvents(wholeDay, [ {} ]); + } + else if ($.isPlainObject(input)) { + return this.expandBusinessHourEvents(wholeDay, [ input ]); + } + else if ($.isArray(input)) { + return this.expandBusinessHourEvents(wholeDay, input, true); + } + else { + return []; + } +}; + +// inputs expected to be an array of objects. +// if ignoreNoDow is true, will ignore entries that don't specify a day-of-week (dow) key. +Calendar.prototype.expandBusinessHourEvents = function(wholeDay, inputs, ignoreNoDow) { + var view = this.getView(); + var events = []; + var i, input; + + for (i = 0; i < inputs.length; i++) { + input = inputs[i]; + + if (ignoreNoDow && !input.dow) { + continue; + } + + // give defaults. will make a copy + input = $.extend({}, BUSINESS_HOUR_EVENT_DEFAULTS, input); + + // if a whole-day series is requested, clear the start/end times + if (wholeDay) { + input.start = null; + input.end = null; + } + + events.push.apply(events, // append + this.expandEvent( + this.buildEventFromInput(input), + view.start, + view.end + ) + ); + } + + return events; +}; + +;; + +/* An abstract class for the "basic" views, as well as month view. Renders one or more rows of day cells. +----------------------------------------------------------------------------------------------------------------------*/ +// It is a manager for a DayGrid subcomponent, which does most of the heavy lifting. +// It is responsible for managing width/height. + +var BasicView = FC.BasicView = View.extend({ + + scroller: null, + + dayGridClass: DayGrid, // class the dayGrid will be instantiated from (overridable by subclasses) + dayGrid: null, // the main subcomponent that does most of the heavy lifting + + dayNumbersVisible: false, // display day numbers on each day cell? + colWeekNumbersVisible: false, // display week numbers along the side? + cellWeekNumbersVisible: false, // display week numbers in day cell? + + weekNumberWidth: null, // width of all the week-number cells running down the side + + headContainerEl: null, // div that hold's the dayGrid's rendered date header + headRowEl: null, // the fake row element of the day-of-week header + + + initialize: function() { + this.dayGrid = this.instantiateDayGrid(); + + this.scroller = new Scroller({ + overflowX: 'hidden', + overflowY: 'auto' + }); + }, + + + // Generates the DayGrid object this view needs. Draws from this.dayGridClass + instantiateDayGrid: function() { + // generate a subclass on the fly with BasicView-specific behavior + // TODO: cache this subclass + var subclass = this.dayGridClass.extend(basicDayGridMethods); + + return new subclass(this); + }, + + + // Sets the display range and computes all necessary dates + setRange: function(range) { + View.prototype.setRange.call(this, range); // call the super-method + + this.dayGrid.breakOnWeeks = /year|month|week/.test(this.intervalUnit); // do before setRange + this.dayGrid.setRange(range); + }, + + + // Compute the value to feed into setRange. Overrides superclass. + computeRange: function(date) { + var range = View.prototype.computeRange.call(this, date); // get value from the super-method + + // year and month views should be aligned with weeks. this is already done for week + if (/year|month/.test(range.intervalUnit)) { + range.start.startOf('week'); + range.start = this.skipHiddenDays(range.start); + + // make end-of-week if not already + if (range.end.weekday()) { + range.end.add(1, 'week').startOf('week'); + range.end = this.skipHiddenDays(range.end, -1, true); // exclusively move backwards + } + } + + return range; + }, + + + // Renders the view into `this.el`, which should already be assigned + renderDates: function() { + + this.dayNumbersVisible = this.dayGrid.rowCnt > 1; // TODO: make grid responsible + if (this.opt('weekNumbers')) { + if (this.opt('weekNumbersWithinDays')) { + this.cellWeekNumbersVisible = true; + this.colWeekNumbersVisible = false; } else { - subrows[j] = [ segment ]; + this.cellWeekNumbersVisible = false; + this.colWeekNumbersVisible = true; + }; + } + this.dayGrid.numbersVisible = this.dayNumbersVisible || + this.cellWeekNumbersVisible || this.colWeekNumbersVisible; + + this.el.addClass('fc-basic-view').html(this.renderSkeletonHtml()); + this.renderHead(); + + this.scroller.render(); + var dayGridContainerEl = this.scroller.el.addClass('fc-day-grid-container'); + var dayGridEl = $('
      ').appendTo(dayGridContainerEl); + this.el.find('.fc-body > tr > td').append(dayGridContainerEl); + + this.dayGrid.setElement(dayGridEl); + this.dayGrid.renderDates(this.hasRigidRows()); + }, + + + // render the day-of-week headers + renderHead: function() { + this.headContainerEl = + this.el.find('.fc-head-container') + .html(this.dayGrid.renderHeadHtml()); + this.headRowEl = this.headContainerEl.find('.fc-row'); + }, + + + // Unrenders the content of the view. Since we haven't separated skeleton rendering from date rendering, + // always completely kill the dayGrid's rendering. + unrenderDates: function() { + this.dayGrid.unrenderDates(); + this.dayGrid.removeElement(); + this.scroller.destroy(); + }, + + + renderBusinessHours: function() { + this.dayGrid.renderBusinessHours(); + }, + + + unrenderBusinessHours: function() { + this.dayGrid.unrenderBusinessHours(); + }, + + + // Builds the HTML skeleton for the view. + // The day-grid component will render inside of a container defined by this HTML. + renderSkeletonHtml: function() { + return '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '
      '; + }, + + + // Generates an HTML attribute string for setting the width of the week number column, if it is known + weekNumberStyleAttr: function() { + if (this.weekNumberWidth !== null) { + return 'style="width:' + this.weekNumberWidth + 'px"'; + } + return ''; + }, + + + // Determines whether each row should have a constant height + hasRigidRows: function() { + var eventLimit = this.opt('eventLimit'); + return eventLimit && typeof eventLimit !== 'number'; + }, + + + /* Dimensions + ------------------------------------------------------------------------------------------------------------------*/ + + + // Refreshes the horizontal dimensions of the view + updateWidth: function() { + if (this.colWeekNumbersVisible) { + // Make sure all week number cells running down the side have the same width. + // Record the width for cells created later. + this.weekNumberWidth = matchCellWidths( + this.el.find('.fc-week-number') + ); + } + }, + + + // Adjusts the vertical dimensions of the view to the specified values + setHeight: function(totalHeight, isAuto) { + var eventLimit = this.opt('eventLimit'); + var scrollerHeight; + var scrollbarWidths; + + // reset all heights to be natural + this.scroller.clear(); + uncompensateScroll(this.headRowEl); + + this.dayGrid.removeSegPopover(); // kill the "more" popover if displayed + + // is the event limit a constant level number? + if (eventLimit && typeof eventLimit === 'number') { + this.dayGrid.limitRows(eventLimit); // limit the levels first so the height can redistribute after + } + + // distribute the height to the rows + // (totalHeight is a "recommended" value if isAuto) + scrollerHeight = this.computeScrollerHeight(totalHeight); + this.setGridHeight(scrollerHeight, isAuto); + + // is the event limit dynamically calculated? + if (eventLimit && typeof eventLimit !== 'number') { + this.dayGrid.limitRows(eventLimit); // limit the levels after the grid's row heights have been set + } + + if (!isAuto) { // should we force dimensions of the scroll container? + + this.scroller.setHeight(scrollerHeight); + scrollbarWidths = this.scroller.getScrollbarWidths(); + + if (scrollbarWidths.left || scrollbarWidths.right) { // using scrollbars? + + compensateScroll(this.headRowEl, scrollbarWidths); + + // doing the scrollbar compensation might have created text overflow which created more height. redo + scrollerHeight = this.computeScrollerHeight(totalHeight); + this.scroller.setHeight(scrollerHeight); + } + + // guarantees the same scrollbar widths + this.scroller.lockOverflow(scrollbarWidths); + } + }, + + + // given a desired total height of the view, returns what the height of the scroller should be + computeScrollerHeight: function(totalHeight) { + return totalHeight - + subtractInnerElHeight(this.el, this.scroller.el); // everything that's NOT the scroller + }, + + + // Sets the height of just the DayGrid component in this view + setGridHeight: function(height, isAuto) { + if (isAuto) { + undistributeHeight(this.dayGrid.rowEls); // let the rows be their natural height with no expanding + } + else { + distributeHeight(this.dayGrid.rowEls, height, true); // true = compensate for height-hogging rows + } + }, + + + /* Scroll + ------------------------------------------------------------------------------------------------------------------*/ + + + queryScroll: function() { + return this.scroller.getScrollTop(); + }, + + + setScroll: function(top) { + this.scroller.setScrollTop(top); + }, + + + /* Hit Areas + ------------------------------------------------------------------------------------------------------------------*/ + // forward all hit-related method calls to dayGrid + + + prepareHits: function() { + this.dayGrid.prepareHits(); + }, + + + releaseHits: function() { + this.dayGrid.releaseHits(); + }, + + + queryHit: function(left, top) { + return this.dayGrid.queryHit(left, top); + }, + + + getHitSpan: function(hit) { + return this.dayGrid.getHitSpan(hit); + }, + + + getHitEl: function(hit) { + return this.dayGrid.getHitEl(hit); + }, + + + /* Events + ------------------------------------------------------------------------------------------------------------------*/ + + + // Renders the given events onto the view and populates the segments array + renderEvents: function(events) { + this.dayGrid.renderEvents(events); + + this.updateHeight(); // must compensate for events that overflow the row + }, + + + // Retrieves all segment objects that are rendered in the view + getEventSegs: function() { + return this.dayGrid.getEventSegs(); + }, + + + // Unrenders all event elements and clears internal segment data + unrenderEvents: function() { + this.dayGrid.unrenderEvents(); + + // we DON'T need to call updateHeight() because + // a renderEvents() call always happens after this, which will eventually call updateHeight() + }, + + + /* Dragging (for both events and external elements) + ------------------------------------------------------------------------------------------------------------------*/ + + + // A returned value of `true` signals that a mock "helper" event has been rendered. + renderDrag: function(dropLocation, seg) { + return this.dayGrid.renderDrag(dropLocation, seg); + }, + + + unrenderDrag: function() { + this.dayGrid.unrenderDrag(); + }, + + + /* Selection + ------------------------------------------------------------------------------------------------------------------*/ + + + // Renders a visual indication of a selection + renderSelection: function(span) { + this.dayGrid.renderSelection(span); + }, + + + // Unrenders a visual indications of a selection + unrenderSelection: function() { + this.dayGrid.unrenderSelection(); + } + +}); + + +// Methods that will customize the rendering behavior of the BasicView's dayGrid +var basicDayGridMethods = { + + + // Generates the HTML that will go before the day-of week header cells + renderHeadIntroHtml: function() { + var view = this.view; + + if (view.colWeekNumbersVisible) { + return '' + + '' + + '' + // needed for matchCellWidths + htmlEscape(view.opt('weekNumberTitle')) + + '' + + ''; + } + + return ''; + }, + + + // Generates the HTML that will go before content-skeleton cells that display the day/week numbers + renderNumberIntroHtml: function(row) { + var view = this.view; + var weekStart = this.getCellDate(row, 0); + + if (view.colWeekNumbersVisible) { + return '' + + '' + + view.buildGotoAnchorHtml( // aside from link, important for matchCellWidths + { date: weekStart, type: 'week', forceOff: this.colCnt === 1 }, + weekStart.format('w') // inner HTML + ) + + ''; + } + + return ''; + }, + + + // Generates the HTML that goes before the day bg cells for each day-row + renderBgIntroHtml: function() { + var view = this.view; + + if (view.colWeekNumbersVisible) { + return ''; + } + + return ''; + }, + + + // Generates the HTML that goes before every other type of row generated by DayGrid. + // Affects helper-skeleton and highlight-skeleton rows. + renderIntroHtml: function() { + var view = this.view; + + if (view.colWeekNumbersVisible) { + return ''; + } + + return ''; + } + +}; + +;; + +/* A month view with day cells running in rows (one-per-week) and columns +----------------------------------------------------------------------------------------------------------------------*/ + +var MonthView = FC.MonthView = BasicView.extend({ + + // Produces information about what range to display + computeRange: function(date) { + var range = BasicView.prototype.computeRange.call(this, date); // get value from super-method + var rowCnt; + + // ensure 6 weeks + if (this.isFixedWeeks()) { + rowCnt = Math.ceil(range.end.diff(range.start, 'weeks', true)); // could be partial weeks due to hiddenDays + range.end.add(6 - rowCnt, 'weeks'); + } + + return range; + }, + + + // Overrides the default BasicView behavior to have special multi-week auto-height logic + setGridHeight: function(height, isAuto) { + + // if auto, make the height of each row the height that it would be if there were 6 weeks + if (isAuto) { + height *= this.rowCnt / 6; + } + + distributeHeight(this.dayGrid.rowEls, height, !isAuto); // if auto, don't compensate for height-hogging rows + }, + + + isFixedWeeks: function() { + return this.opt('fixedWeekCount'); + } + +}); + +;; + +fcViews.basic = { + 'class': BasicView +}; + +fcViews.basicDay = { + type: 'basic', + duration: { days: 1 } +}; + +fcViews.basicWeek = { + type: 'basic', + duration: { weeks: 1 } +}; + +fcViews.month = { + 'class': MonthView, + duration: { months: 1 }, // important for prev/next + defaults: { + fixedWeekCount: true + } +}; +;; + +/* An abstract class for all agenda-related views. Displays one more columns with time slots running vertically. +----------------------------------------------------------------------------------------------------------------------*/ +// Is a manager for the TimeGrid subcomponent and possibly the DayGrid subcomponent (if allDaySlot is on). +// Responsible for managing width/height. + +var AgendaView = FC.AgendaView = View.extend({ + + scroller: null, + + timeGridClass: TimeGrid, // class used to instantiate the timeGrid. subclasses can override + timeGrid: null, // the main time-grid subcomponent of this view + + dayGridClass: DayGrid, // class used to instantiate the dayGrid. subclasses can override + dayGrid: null, // the "all-day" subcomponent. if all-day is turned off, this will be null + + axisWidth: null, // the width of the time axis running down the side + + headContainerEl: null, // div that hold's the timeGrid's rendered date header + noScrollRowEls: null, // set of fake row elements that must compensate when scroller has scrollbars + + // when the time-grid isn't tall enough to occupy the given height, we render an
      underneath + bottomRuleEl: null, + + + initialize: function() { + this.timeGrid = this.instantiateTimeGrid(); + + if (this.opt('allDaySlot')) { // should we display the "all-day" area? + this.dayGrid = this.instantiateDayGrid(); // the all-day subcomponent of this view + } + + this.scroller = new Scroller({ + overflowX: 'hidden', + overflowY: 'auto' + }); + }, + + + // Instantiates the TimeGrid object this view needs. Draws from this.timeGridClass + instantiateTimeGrid: function() { + var subclass = this.timeGridClass.extend(agendaTimeGridMethods); + + return new subclass(this); + }, + + + // Instantiates the DayGrid object this view might need. Draws from this.dayGridClass + instantiateDayGrid: function() { + var subclass = this.dayGridClass.extend(agendaDayGridMethods); + + return new subclass(this); + }, + + + /* Rendering + ------------------------------------------------------------------------------------------------------------------*/ + + + // Sets the display range and computes all necessary dates + setRange: function(range) { + View.prototype.setRange.call(this, range); // call the super-method + + this.timeGrid.setRange(range); + if (this.dayGrid) { + this.dayGrid.setRange(range); + } + }, + + + // Renders the view into `this.el`, which has already been assigned + renderDates: function() { + + this.el.addClass('fc-agenda-view').html(this.renderSkeletonHtml()); + this.renderHead(); + + this.scroller.render(); + var timeGridWrapEl = this.scroller.el.addClass('fc-time-grid-container'); + var timeGridEl = $('
      ').appendTo(timeGridWrapEl); + this.el.find('.fc-body > tr > td').append(timeGridWrapEl); + + this.timeGrid.setElement(timeGridEl); + this.timeGrid.renderDates(); + + // the
      that sometimes displays under the time-grid + this.bottomRuleEl = $('
      ') + .appendTo(this.timeGrid.el); // inject it into the time-grid + + if (this.dayGrid) { + this.dayGrid.setElement(this.el.find('.fc-day-grid')); + this.dayGrid.renderDates(); + + // have the day-grid extend it's coordinate area over the
      dividing the two grids + this.dayGrid.bottomCoordPadding = this.dayGrid.el.next('hr').outerHeight(); + } + + this.noScrollRowEls = this.el.find('.fc-row:not(.fc-scroller *)'); // fake rows not within the scroller + }, + + + // render the day-of-week headers + renderHead: function() { + this.headContainerEl = + this.el.find('.fc-head-container') + .html(this.timeGrid.renderHeadHtml()); + }, + + + // Unrenders the content of the view. Since we haven't separated skeleton rendering from date rendering, + // always completely kill each grid's rendering. + unrenderDates: function() { + this.timeGrid.unrenderDates(); + this.timeGrid.removeElement(); + + if (this.dayGrid) { + this.dayGrid.unrenderDates(); + this.dayGrid.removeElement(); + } + + this.scroller.destroy(); + }, + + + // Builds the HTML skeleton for the view. + // The day-grid and time-grid components will render inside containers defined by this HTML. + renderSkeletonHtml: function() { + return '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '
      ' + + (this.dayGrid ? + '
      ' + + '
      ' : + '' + ) + + '
      '; + }, + + + // Generates an HTML attribute string for setting the width of the axis, if it is known + axisStyleAttr: function() { + if (this.axisWidth !== null) { + return 'style="width:' + this.axisWidth + 'px"'; + } + return ''; + }, + + + /* Business Hours + ------------------------------------------------------------------------------------------------------------------*/ + + + renderBusinessHours: function() { + this.timeGrid.renderBusinessHours(); + + if (this.dayGrid) { + this.dayGrid.renderBusinessHours(); + } + }, + + + unrenderBusinessHours: function() { + this.timeGrid.unrenderBusinessHours(); + + if (this.dayGrid) { + this.dayGrid.unrenderBusinessHours(); + } + }, + + + /* Now Indicator + ------------------------------------------------------------------------------------------------------------------*/ + + + getNowIndicatorUnit: function() { + return this.timeGrid.getNowIndicatorUnit(); + }, + + + renderNowIndicator: function(date) { + this.timeGrid.renderNowIndicator(date); + }, + + + unrenderNowIndicator: function() { + this.timeGrid.unrenderNowIndicator(); + }, + + + /* Dimensions + ------------------------------------------------------------------------------------------------------------------*/ + + + updateSize: function(isResize) { + this.timeGrid.updateSize(isResize); + + View.prototype.updateSize.call(this, isResize); // call the super-method + }, + + + // Refreshes the horizontal dimensions of the view + updateWidth: function() { + // make all axis cells line up, and record the width so newly created axis cells will have it + this.axisWidth = matchCellWidths(this.el.find('.fc-axis')); + }, + + + // Adjusts the vertical dimensions of the view to the specified values + setHeight: function(totalHeight, isAuto) { + var eventLimit; + var scrollerHeight; + var scrollbarWidths; + + // reset all dimensions back to the original state + this.bottomRuleEl.hide(); // .show() will be called later if this
      is necessary + this.scroller.clear(); // sets height to 'auto' and clears overflow + uncompensateScroll(this.noScrollRowEls); + + // limit number of events in the all-day area + if (this.dayGrid) { + this.dayGrid.removeSegPopover(); // kill the "more" popover if displayed + + eventLimit = this.opt('eventLimit'); + if (eventLimit && typeof eventLimit !== 'number') { + eventLimit = AGENDA_ALL_DAY_EVENT_LIMIT; // make sure "auto" goes to a real number + } + if (eventLimit) { + this.dayGrid.limitRows(eventLimit); } } - return subrows; - } + if (!isAuto) { // should we force dimensions of the scroll container? + + scrollerHeight = this.computeScrollerHeight(totalHeight); + this.scroller.setHeight(scrollerHeight); + scrollbarWidths = this.scroller.getScrollbarWidths(); + + if (scrollbarWidths.left || scrollbarWidths.right) { // using scrollbars? + + // make the all-day and header rows lines up + compensateScroll(this.noScrollRowEls, scrollbarWidths); + + // the scrollbar compensation might have changed text flow, which might affect height, so recalculate + // and reapply the desired height to the scroller. + scrollerHeight = this.computeScrollerHeight(totalHeight); + this.scroller.setHeight(scrollerHeight); + } + + // guarantees the same scrollbar widths + this.scroller.lockOverflow(scrollbarWidths); + + // if there's any space below the slats, show the horizontal rule. + // this won't cause any new overflow, because lockOverflow already called. + if (this.timeGrid.getTotalSlatHeight() < scrollerHeight) { + this.bottomRuleEl.show(); + } + } + }, - // Return an array of jQuery objects for the placeholder content containers of each row. - // The content containers don't actually contain anything, but their dimensions should match - // the events that are overlaid on top. - function getRowContentElements() { + // given a desired total height of the view, returns what the height of the scroller should be + computeScrollerHeight: function(totalHeight) { + return totalHeight - + subtractInnerElHeight(this.el, this.scroller.el); // everything that's NOT the scroller + }, + + + /* Scroll + ------------------------------------------------------------------------------------------------------------------*/ + + + // Computes the initial pre-configured scroll state prior to allowing the user to change it + computeInitialScroll: function() { + var scrollTime = moment.duration(this.opt('scrollTime')); + var top = this.timeGrid.computeTimeTop(scrollTime); + + // zoom can give weird floating-point values. rather scroll a little bit further + top = Math.ceil(top); + + if (top) { + top++; // to overcome top border that slots beyond the first have. looks better + } + + return top; + }, + + + queryScroll: function() { + return this.scroller.getScrollTop(); + }, + + + setScroll: function(top) { + this.scroller.setScrollTop(top); + }, + + + /* Hit Areas + ------------------------------------------------------------------------------------------------------------------*/ + // forward all hit-related method calls to the grids (dayGrid might not be defined) + + + prepareHits: function() { + this.timeGrid.prepareHits(); + if (this.dayGrid) { + this.dayGrid.prepareHits(); + } + }, + + + releaseHits: function() { + this.timeGrid.releaseHits(); + if (this.dayGrid) { + this.dayGrid.releaseHits(); + } + }, + + + queryHit: function(left, top) { + var hit = this.timeGrid.queryHit(left, top); + + if (!hit && this.dayGrid) { + hit = this.dayGrid.queryHit(left, top); + } + + return hit; + }, + + + getHitSpan: function(hit) { + // TODO: hit.component is set as a hack to identify where the hit came from + return hit.component.getHitSpan(hit); + }, + + + getHitEl: function(hit) { + // TODO: hit.component is set as a hack to identify where the hit came from + return hit.component.getHitEl(hit); + }, + + + /* Events + ------------------------------------------------------------------------------------------------------------------*/ + + + // Renders events onto the view and populates the View's segment array + renderEvents: function(events) { + var dayEvents = []; + var timedEvents = []; + var daySegs = []; + var timedSegs; var i; - var rowCnt = getRowCnt(); - var rowDivs = []; - for (i=0; i div'); - } - return rowDivs; - } - - - /* Mouse Handlers - ---------------------------------------------------------------------------------------------------*/ - // TODO: better documentation! - - - function attachHandlers(segments, modifiedEventId) { - var segmentContainer = getDaySegmentContainer(); - - segmentElementEach(segments, function(segment, element, i) { - var event = segment.event; - if (event._id === modifiedEventId) { - bindDaySeg(event, element, segment); - }else{ - element[0]._fci = i; // for lazySegBind + // separate the events into all-day and timed + for (i = 0; i < events.length; i++) { + if (events[i].allDay) { + dayEvents.push(events[i]); } - }); - - lazySegBind(segmentContainer, segments, bindDaySeg); - } - - - function bindDaySeg(event, eventElement, segment) { - - if (isEventDraggable(event)) { - t.draggableDayEvent(event, eventElement, segment); // use `t` so subclasses can override - } - - if ( - segment.isEnd && // only allow resizing on the final segment for an event - isEventResizable(event) - ) { - t.resizableDayEvent(event, eventElement, segment); // use `t` so subclasses can override - } - - // attach all other handlers. - // needs to be after, because resizableDayEvent might stopImmediatePropagation on click - eventElementHandlers(event, eventElement); - } - - - function draggableDayEvent(event, eventElement) { - var hoverListener = getHoverListener(); - var dayDelta; - eventElement.draggable({ - delay: 50, - opacity: opt('dragOpacity'), - revertDuration: opt('dragRevertDuration'), - start: function(ev, ui) { - trigger('eventDragStart', eventElement, event, ev, ui); - hideEvents(event, eventElement); - hoverListener.start(function(cell, origCell, rowDelta, colDelta) { - eventElement.draggable('option', 'revert', !cell || !rowDelta && !colDelta); - clearOverlays(); - if (cell) { - var origDate = cellToDate(origCell); - var date = cellToDate(cell); - dayDelta = dayDiff(date, origDate); - renderDayOverlay( - addDays(cloneDate(event.start), dayDelta), - addDays(exclEndDay(event), dayDelta) - ); - }else{ - dayDelta = 0; - } - }, ev, 'drag'); - }, - stop: function(ev, ui) { - hoverListener.stop(); - clearOverlays(); - trigger('eventDragStop', eventElement, event, ev, ui); - if (dayDelta) { - eventDrop(this, event, dayDelta, 0, event.allDay, ev, ui); - }else{ - eventElement.css('filter', ''); // clear IE opacity side-effects - showEvents(event, eventElement); - } + else { + timedEvents.push(events[i]); } - }); + } + + // render the events in the subcomponents + timedSegs = this.timeGrid.renderEvents(timedEvents); + if (this.dayGrid) { + daySegs = this.dayGrid.renderEvents(dayEvents); + } + + // the all-day area is flexible and might have a lot of events, so shift the height + this.updateHeight(); + }, + + + // Retrieves all segment objects that are rendered in the view + getEventSegs: function() { + return this.timeGrid.getEventSegs().concat( + this.dayGrid ? this.dayGrid.getEventSegs() : [] + ); + }, + + + // Unrenders all event elements and clears internal segment data + unrenderEvents: function() { + + // unrender the events in the subcomponents + this.timeGrid.unrenderEvents(); + if (this.dayGrid) { + this.dayGrid.unrenderEvents(); + } + + // we DON'T need to call updateHeight() because + // a renderEvents() call always happens after this, which will eventually call updateHeight() + }, + + + /* Dragging (for events and external elements) + ------------------------------------------------------------------------------------------------------------------*/ + + + // A returned value of `true` signals that a mock "helper" event has been rendered. + renderDrag: function(dropLocation, seg) { + if (dropLocation.start.hasTime()) { + return this.timeGrid.renderDrag(dropLocation, seg); + } + else if (this.dayGrid) { + return this.dayGrid.renderDrag(dropLocation, seg); + } + }, + + + unrenderDrag: function() { + this.timeGrid.unrenderDrag(); + if (this.dayGrid) { + this.dayGrid.unrenderDrag(); + } + }, + + + /* Selection + ------------------------------------------------------------------------------------------------------------------*/ + + + // Renders a visual indication of a selection + renderSelection: function(span) { + if (span.start.hasTime() || span.end.hasTime()) { + this.timeGrid.renderSelection(span); + } + else if (this.dayGrid) { + this.dayGrid.renderSelection(span); + } + }, + + + // Unrenders a visual indications of a selection + unrenderSelection: function() { + this.timeGrid.unrenderSelection(); + if (this.dayGrid) { + this.dayGrid.unrenderSelection(); + } } - - function resizableDayEvent(event, element, segment) { - var isRTL = opt('isRTL'); - var direction = isRTL ? 'w' : 'e'; - var handle = element.find('.ui-resizable-' + direction); // TODO: stop using this class because we aren't using jqui for this - var isResizing = false; - - // TODO: look into using jquery-ui mouse widget for this stuff - disableTextSelection(element); // prevent native selection for IE - element - .mousedown(function(ev) { // prevent native selection for others - ev.preventDefault(); - }) - .click(function(ev) { - if (isResizing) { - ev.preventDefault(); // prevent link from being visited (only method that worked in IE6) - ev.stopImmediatePropagation(); // prevent fullcalendar eventClick handler from being called - // (eventElementHandlers needs to be bound after resizableDayEvent) - } +}); + + +// Methods that will customize the rendering behavior of the AgendaView's timeGrid +// TODO: move into TimeGrid +var agendaTimeGridMethods = { + + + // Generates the HTML that will go before the day-of week header cells + renderHeadIntroHtml: function() { + var view = this.view; + var weekText; + + if (view.opt('weekNumbers')) { + weekText = this.start.format(view.opt('smallWeekFormat')); + + return '' + + '' + + view.buildGotoAnchorHtml( // aside from link, important for matchCellWidths + { date: this.start, type: 'week', forceOff: this.colCnt > 1 }, + htmlEscape(weekText) // inner HTML + ) + + ''; + } + else { + return ''; + } + }, + + + // Generates the HTML that goes before the bg of the TimeGrid slot area. Long vertical column. + renderBgIntroHtml: function() { + var view = this.view; + + return ''; + }, + + + // Generates the HTML that goes before all other types of cells. + // Affects content-skeleton, helper-skeleton, highlight-skeleton for both the time-grid and day-grid. + renderIntroHtml: function() { + var view = this.view; + + return ''; + } + +}; + + +// Methods that will customize the rendering behavior of the AgendaView's dayGrid +var agendaDayGridMethods = { + + + // Generates the HTML that goes before the all-day cells + renderBgIntroHtml: function() { + var view = this.view; + + return '' + + '' + + '' + // needed for matchCellWidths + view.getAllDayHtml() + + '' + + ''; + }, + + + // Generates the HTML that goes before all other types of cells. + // Affects content-skeleton, helper-skeleton, highlight-skeleton for both the time-grid and day-grid. + renderIntroHtml: function() { + var view = this.view; + + return ''; + } + +}; + +;; + +var AGENDA_ALL_DAY_EVENT_LIMIT = 5; + +// potential nice values for the slot-duration and interval-duration +// from largest to smallest +var AGENDA_STOCK_SUB_DURATIONS = [ + { hours: 1 }, + { minutes: 30 }, + { minutes: 15 }, + { seconds: 30 }, + { seconds: 15 } +]; + +fcViews.agenda = { + 'class': AgendaView, + defaults: { + allDaySlot: true, + slotDuration: '00:30:00', + minTime: '00:00:00', + maxTime: '24:00:00', + slotEventOverlap: true // a bad name. confused with overlap/constraint system + } +}; + +fcViews.agendaDay = { + type: 'agenda', + duration: { days: 1 } +}; + +fcViews.agendaWeek = { + type: 'agenda', + duration: { weeks: 1 } +}; +;; + +/* +Responsible for the scroller, and forwarding event-related actions into the "grid" +*/ +var ListView = View.extend({ + + grid: null, + scroller: null, + + initialize: function() { + this.grid = new ListViewGrid(this); + this.scroller = new Scroller({ + overflowX: 'hidden', + overflowY: 'auto' + }); + }, + + setRange: function(range) { + View.prototype.setRange.call(this, range); // super + + this.grid.setRange(range); // needs to process range-related options + }, + + renderSkeleton: function() { + this.el.addClass( + 'fc-list-view ' + + this.widgetContentClass + ); + + this.scroller.render(); + this.scroller.el.appendTo(this.el); + + this.grid.setElement(this.scroller.scrollEl); + }, + + unrenderSkeleton: function() { + this.scroller.destroy(); // will remove the Grid too + }, + + setHeight: function(totalHeight, isAuto) { + this.scroller.setHeight(this.computeScrollerHeight(totalHeight)); + }, + + computeScrollerHeight: function(totalHeight) { + return totalHeight - + subtractInnerElHeight(this.el, this.scroller.el); // everything that's NOT the scroller + }, + + renderEvents: function(events) { + this.grid.renderEvents(events); + }, + + unrenderEvents: function() { + this.grid.unrenderEvents(); + }, + + isEventResizable: function(event) { + return false; + }, + + isEventDraggable: function(event) { + return false; + } + +}); + +/* +Responsible for event rendering and user-interaction. +Its "el" is the inner-content of the above view's scroller. +*/ +var ListViewGrid = Grid.extend({ + + segSelector: '.fc-list-item', // which elements accept event actions + hasDayInteractions: false, // no day selection or day clicking + + // slices by day + spanToSegs: function(span) { + var view = this.view; + var dayStart = view.start.clone().time(0); // timed, so segs get times! + var dayIndex = 0; + var seg; + var segs = []; + + while (dayStart < view.end) { + + seg = intersectRanges(span, { + start: dayStart, + end: dayStart.clone().add(1, 'day') }); - - handle.mousedown(function(ev) { - if (ev.which != 1) { - return; // needs to be left mouse button + + if (seg) { + seg.dayIndex = dayIndex; + segs.push(seg); } - isResizing = true; - var hoverListener = getHoverListener(); - var rowCnt = getRowCnt(); - var colCnt = getColCnt(); - var elementTop = element.css('top'); - var dayDelta; - var helpers; - var eventCopy = $.extend({}, event); - var minCellOffset = dayOffsetToCellOffset( dateToDayOffset(event.start) ); - clearSelection(); - $('body') - .css('cursor', direction + '-resize') - .one('mouseup', mouseup); - trigger('eventResizeStart', this, event, ev); - hoverListener.start(function(cell, origCell) { - if (cell) { - var origCellOffset = cellToCellOffset(origCell); - var cellOffset = cellToCellOffset(cell); + dayStart.add(1, 'day'); + dayIndex++; - // don't let resizing move earlier than start date cell - cellOffset = Math.max(cellOffset, minCellOffset); - - dayDelta = - cellOffsetToDayOffset(cellOffset) - - cellOffsetToDayOffset(origCellOffset); - - if (dayDelta) { - eventCopy.end = addDays(eventEnd(event), dayDelta, true); - var oldHelpers = helpers; - - helpers = renderTempDayEvent(eventCopy, segment.row, elementTop); - helpers = $(helpers); // turn array into a jQuery object - - helpers.find('*').css('cursor', direction + '-resize'); - if (oldHelpers) { - oldHelpers.remove(); - } - - hideEvents(event); - } - else { - if (helpers) { - showEvents(event); - helpers.remove(); - helpers = null; - } - } - clearOverlays(); - renderDayOverlay( // coordinate grid already rebuilt with hoverListener.start() - event.start, - addDays( exclEndDay(event), dayDelta ) - // TODO: instead of calling renderDayOverlay() with dates, - // call _renderDayOverlay (or whatever) with cell offsets. - ); - } - }, ev); - - function mouseup(ev) { - trigger('eventResizeStop', this, event, ev); - $('body').css('cursor', ''); - hoverListener.stop(); - clearOverlays(); - if (dayDelta) { - eventResize(this, event, dayDelta, 0, ev); - // event redraw will clear helpers - } - // otherwise, the drag handler already restored the old events - - setTimeout(function() { // make this happen after the element's click event - isResizing = false; - },0); - } - }); - } - - -} - - - -/* Generalized Segment Utilities --------------------------------------------------------------------------------------------------*/ - - -function isDaySegmentCollision(segment, otherSegments) { - for (var i=0; i= segment.leftCol - ) { - return true; - } - } - return false; -} - - -function segmentElementEach(segments, callback) { // TODO: use in AgendaView? - for (var i=0; i"); - } - if (e[0].parentNode != parent[0]) { - e.appendTo(parent); - } - usedOverlays.push(e.css(rect).show()); - return e; - } - - - function clearOverlays() { - var e; - while (e = usedOverlays.shift()) { - unusedOverlays.push(e.hide().unbind()); - } - } - - -} - -;; - -function CoordinateGrid(buildFunc) { - - var t = this; - var rows; - var cols; - - - t.build = function() { - rows = []; - cols = []; - buildFunc(rows, cols); - }; - - - t.cell = function(x, y) { - var rowCnt = rows.length; - var colCnt = cols.length; - var i, r=-1, c=-1; - for (i=0; i= rows[i][0] && y < rows[i][1]) { - r = i; + // detect when span won't go fully into the next day, + // and mutate the latest seg to the be the end. + if ( + seg && !seg.isEnd && span.end.hasTime() && + span.end < dayStart.clone().add(this.view.nextDayThreshold) + ) { + seg.end = span.end.clone(); + seg.isEnd = true; break; } } - for (i=0; i= cols[i][0] && x < cols[i][1]) { - c = i; - break; + + return segs; + }, + + // like "4:00am" + computeEventTimeFormat: function() { + return this.view.opt('mediumTimeFormat'); + }, + + // for events with a url, the whole should be clickable, + // but it's impossible to wrap with an tag. simulate this. + handleSegClick: function(seg, ev) { + var url; + + Grid.prototype.handleSegClick.apply(this, arguments); // super. might prevent the default action + + // not clicking on or within an with an href + if (!$(ev.target).closest('a[href]').length) { + url = seg.event.url; + if (url && !ev.isDefaultPrevented()) { // jsEvent not cancelled in handler + window.location.href = url; // simulate link click } } - return (r>=0 && c>=0) ? { row:r, col:c } : null; - }; - - - t.rect = function(row0, col0, row1, col1, originElement) { // row1,col1 is inclusive - var origin = originElement.offset(); - return { - top: rows[row0][0] - origin.top, - left: cols[col0][0] - origin.left, - width: cols[col1][1] - cols[col0][0], - height: rows[row1][1] - rows[row0][0] - }; - }; + }, -} + // returns list of foreground segs that were actually rendered + renderFgSegs: function(segs) { + segs = this.renderFgSegEls(segs); // might filter away hidden events -;; + if (!segs.length) { + this.renderEmptyMessage(); + } + else { + this.renderSegList(segs); + } -function HoverListener(coordinateGrid) { + return segs; + }, + renderEmptyMessage: function() { + this.el.html( + '
      ' + // TODO: try less wraps + '
      ' + + '
      ' + + htmlEscape(this.view.opt('noEventsMessage')) + + '
      ' + + '
      ' + + '
      ' + ); + }, - var t = this; - var bindType; - var change; - var firstCell; - var cell; - - - t.start = function(_change, ev, _bindType) { - change = _change; - firstCell = cell = null; - coordinateGrid.build(); - mouse(ev); - bindType = _bindType || 'mousemove'; - $(document).bind(bindType, mouse); - }; - - - function mouse(ev) { - _fixUIEvent(ev); // see below - var newCell = coordinateGrid.cell(ev.pageX, ev.pageY); - if (!newCell != !cell || newCell && (newCell.row != cell.row || newCell.col != cell.col)) { - if (newCell) { - if (!firstCell) { - firstCell = newCell; + // render the event segments in the view + renderSegList: function(allSegs) { + var segsByDay = this.groupSegsByDay(allSegs); // sparse array + var dayIndex; + var daySegs; + var i; + var tableEl = $('
      '); + var tbodyEl = tableEl.find('tbody'); + + for (dayIndex = 0; dayIndex < segsByDay.length; dayIndex++) { + daySegs = segsByDay[dayIndex]; + if (daySegs) { // sparse array, so might be undefined + + // append a day header + tbodyEl.append(this.dayHeaderHtml( + this.view.start.clone().add(dayIndex, 'days') + )); + + this.sortEventSegs(daySegs); + + for (i = 0; i < daySegs.length; i++) { + tbodyEl.append(daySegs[i].el); // append event row } - change(newCell, firstCell, newCell.row-firstCell.row, newCell.col-firstCell.col); - }else{ - change(newCell, firstCell); } - cell = newCell; } + + this.el.empty().append(tableEl); + }, + + // Returns a sparse array of arrays, segs grouped by their dayIndex + groupSegsByDay: function(segs) { + var segsByDay = []; // sparse array + var i, seg; + + for (i = 0; i < segs.length; i++) { + seg = segs[i]; + (segsByDay[seg.dayIndex] || (segsByDay[seg.dayIndex] = [])) + .push(seg); + } + + return segsByDay; + }, + + // generates the HTML for the day headers that live amongst the event rows + dayHeaderHtml: function(dayDate) { + var view = this.view; + var mainFormat = view.opt('listDayFormat'); + var altFormat = view.opt('listDayAltFormat'); + + return '' + + '' + + (mainFormat ? + view.buildGotoAnchorHtml( + dayDate, + { 'class': 'fc-list-heading-main' }, + htmlEscape(dayDate.format(mainFormat)) // inner HTML + ) : + '') + + (altFormat ? + view.buildGotoAnchorHtml( + dayDate, + { 'class': 'fc-list-heading-alt' }, + htmlEscape(dayDate.format(altFormat)) // inner HTML + ) : + '') + + '' + + ''; + }, + + // generates the HTML for a single event row + fgSegHtml: function(seg) { + var view = this.view; + var classes = [ 'fc-list-item' ].concat(this.getSegCustomClasses(seg)); + var bgColor = this.getSegBackgroundColor(seg); + var event = seg.event; + var url = event.url; + var timeHtml; + + if (event.allDay) { + timeHtml = view.getAllDayHtml(); + } + else if (view.isMultiDayEvent(event)) { // if the event appears to span more than one day + if (seg.isStart || seg.isEnd) { // outer segment that probably lasts part of the day + timeHtml = htmlEscape(this.getEventTimeText(seg)); + } + else { // inner segment that lasts the whole day + timeHtml = view.getAllDayHtml(); + } + } + else { + // Display the normal time text for the *event's* times + timeHtml = htmlEscape(this.getEventTimeText(event)); + } + + if (url) { + classes.push('fc-has-url'); + } + + return '' + + (this.displayEventTime ? + '' + + (timeHtml || '') + + '' : + '') + + '' + + '' + + '' + + '' + + '' + + htmlEscape(seg.event.title || '') + + '
      ' + + '' + + ''; } - - - t.stop = function() { - $(document).unbind(bindType, mouse); - return cell; - }; - - -} - - -// this fix was only necessary for jQuery UI 1.8.16 (and jQuery 1.7 or 1.7.1) -// upgrading to jQuery UI 1.8.17 (and using either jQuery 1.7 or 1.7.1) fixed the problem -// but keep this in here for 1.8.16 users -// and maybe remove it down the line - -function _fixUIEvent(event) { // for issue 1168 - if (event.pageX === undefined) { - event.pageX = event.originalEvent.pageX; - event.pageY = event.originalEvent.pageY; - } -} -;; - -function HorizontalPositionCache(getElement) { - - var t = this, - elements = {}, - lefts = {}, - rights = {}; - - function e(i) { - return elements[i] = elements[i] || getElement(i); - } - - t.left = function(i) { - return lefts[i] = lefts[i] === undefined ? e(i).position().left : lefts[i]; - }; - - t.right = function(i) { - return rights[i] = rights[i] === undefined ? t.left(i) + e(i).width() : rights[i]; - }; - - t.clear = function() { - elements = {}; - lefts = {}; - rights = {}; - }; - -} +}); ;; -})(jQuery); \ No newline at end of file +fcViews.list = { + 'class': ListView, + buttonTextKey: 'list', // what to lookup in locale files + defaults: { + buttonText: 'list', // text to display for English + listDayFormat: 'LL', // like "January 1, 2016" + noEventsMessage: 'No events to display' + } +}; + +fcViews.listDay = { + type: 'list', + duration: { days: 1 }, + defaults: { + listDayFormat: 'dddd' // day-of-week is all we need. full date is probably in header + } +}; + +fcViews.listWeek = { + type: 'list', + duration: { weeks: 1 }, + defaults: { + listDayFormat: 'dddd', // day-of-week is more important + listDayAltFormat: 'LL' + } +}; + +fcViews.listMonth = { + type: 'list', + duration: { month: 1 }, + defaults: { + listDayAltFormat: 'dddd' // day-of-week is nice-to-have + } +}; + +fcViews.listYear = { + type: 'list', + duration: { year: 1 }, + defaults: { + listDayAltFormat: 'dddd' // day-of-week is nice-to-have + } +}; + +;; + +return FC; // export for Node/CommonJS +}); \ No newline at end of file diff --git a/library/fullcalendar/fullcalendar.min.css b/library/fullcalendar/fullcalendar.min.css new file mode 100644 index 000000000..87ee16e69 --- /dev/null +++ b/library/fullcalendar/fullcalendar.min.css @@ -0,0 +1,5 @@ +/*! + * FullCalendar v3.0.1 Stylesheet + * Docs & License: http://fullcalendar.io/ + * (c) 2016 Adam Shaw + */.fc-icon,body .fc{font-size:1em}.fc-button-group,.fc-icon{display:inline-block}.fc-bg,.fc-row .fc-bgevent-skeleton,.fc-row .fc-highlight-skeleton{bottom:0}.fc-icon,.fc-unselectable{-khtml-user-select:none;-webkit-touch-callout:none}.fc{direction:ltr;text-align:left}.fc-rtl{text-align:right}.fc th,.fc-basic-view td.fc-week-number,.fc-icon,.fc-toolbar{text-align:center}.fc-unthemed .fc-content,.fc-unthemed .fc-divider,.fc-unthemed .fc-list-heading td,.fc-unthemed .fc-list-view,.fc-unthemed .fc-popover,.fc-unthemed .fc-row,.fc-unthemed tbody,.fc-unthemed td,.fc-unthemed th,.fc-unthemed thead{border-color:#ddd}.fc-unthemed .fc-popover{background-color:#fff}.fc-unthemed .fc-divider,.fc-unthemed .fc-list-heading td,.fc-unthemed .fc-popover .fc-header{background:#eee}.fc-unthemed .fc-popover .fc-header .fc-close{color:#666}.fc-unthemed .fc-today{background:#fcf8e3}.fc-highlight{background:#bce8f1;opacity:.3}.fc-bgevent{background:#8fdf82;opacity:.3}.fc-nonbusiness{background:#d7d7d7}.fc-icon{height:1em;line-height:1em;overflow:hidden;font-family:"Courier New",Courier,monospace;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.fc-icon:after{position:relative}.fc-icon-left-single-arrow:after{content:"\02039";font-weight:700;font-size:200%;top:-7%}.fc-icon-right-single-arrow:after{content:"\0203A";font-weight:700;font-size:200%;top:-7%}.fc-icon-left-double-arrow:after{content:"\000AB";font-size:160%;top:-7%}.fc-icon-right-double-arrow:after{content:"\000BB";font-size:160%;top:-7%}.fc-icon-left-triangle:after{content:"\25C4";font-size:125%;top:3%}.fc-icon-right-triangle:after{content:"\25BA";font-size:125%;top:3%}.fc-icon-down-triangle:after{content:"\25BC";font-size:125%;top:2%}.fc-icon-x:after{content:"\000D7";font-size:200%;top:6%}.fc button{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;height:2.1em;padding:0 .6em;font-size:1em;white-space:nowrap;cursor:pointer}.fc button::-moz-focus-inner{margin:0;padding:0}.fc-state-default{border:1px solid;background-color:#f5f5f5;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);color:#333;text-shadow:0 1px 1px rgba(255,255,255,.75);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05)}.fc-state-default.fc-corner-left{border-top-left-radius:4px;border-bottom-left-radius:4px}.fc-state-default.fc-corner-right{border-top-right-radius:4px;border-bottom-right-radius:4px}.fc button .fc-icon{position:relative;top:-.05em;margin:0 .2em;vertical-align:middle}.fc-state-active,.fc-state-disabled,.fc-state-down,.fc-state-hover{color:#333;background-color:#e6e6e6}.fc-state-hover{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.fc-state-active,.fc-state-down{background-color:#ccc;background-image:none;box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05)}.fc-state-disabled{cursor:default;background-image:none;opacity:.65;box-shadow:none}.fc-event.fc-draggable,.fc-event[href],.fc-popover .fc-header .fc-close,a[data-goto]{cursor:pointer}.fc .fc-button-group>*{float:left;margin:0 0 0 -1px}.fc .fc-button-group>:first-child{margin-left:0}.fc-popover{position:absolute;box-shadow:0 2px 6px rgba(0,0,0,.15)}.fc-popover .fc-header{padding:2px 4px}.fc-popover .fc-header .fc-title{margin:0 2px}.fc-ltr .fc-popover .fc-header .fc-title,.fc-rtl .fc-popover .fc-header .fc-close{float:left}.fc-ltr .fc-popover .fc-header .fc-close,.fc-rtl .fc-popover .fc-header .fc-title{float:right}.fc-unthemed .fc-popover{border-width:1px;border-style:solid}.fc-unthemed .fc-popover .fc-header .fc-close{font-size:.9em;margin-top:2px}.fc-popover>.ui-widget-header+.ui-widget-content{border-top:0}.fc-divider{border-style:solid;border-width:1px}hr.fc-divider{height:0;margin:0;padding:0 0 2px;border-width:1px 0}.fc-bg table,.fc-row .fc-bgevent-skeleton table,.fc-row .fc-highlight-skeleton table{height:100%}.fc-clear{clear:both}.fc-bg,.fc-bgevent-skeleton,.fc-helper-skeleton,.fc-highlight-skeleton{position:absolute;top:0;left:0;right:0}.fc table{width:100%;box-sizing:border-box;table-layout:fixed;border-collapse:collapse;border-spacing:0;font-size:1em}.fc td,.fc th{border-style:solid;border-width:1px;padding:0;vertical-align:top}.fc td.fc-today{border-style:double}a[data-goto]:hover{text-decoration:underline}.fc .fc-row{border-style:solid;border-width:0}.fc-row table{border-left:0 hidden transparent;border-right:0 hidden transparent;border-bottom:0 hidden transparent}.fc-row:first-child table{border-top:0 hidden transparent}.fc-row{position:relative}.fc-row .fc-bg{z-index:1}.fc-row .fc-bgevent-skeleton td,.fc-row .fc-highlight-skeleton td{border-color:transparent}.fc-row .fc-bgevent-skeleton{z-index:2}.fc-row .fc-highlight-skeleton{z-index:3}.fc-row .fc-content-skeleton{position:relative;z-index:4;padding-bottom:2px}.fc-row .fc-helper-skeleton{z-index:5}.fc-row .fc-content-skeleton td,.fc-row .fc-helper-skeleton td{background:0 0;border-color:transparent;border-bottom:0}.fc-row .fc-content-skeleton tbody td,.fc-row .fc-helper-skeleton tbody td{border-top:0}.fc-scroller{-webkit-overflow-scrolling:touch}.fc-row.fc-rigid,.fc-time-grid-event{overflow:hidden}.fc-scroller>.fc-day-grid,.fc-scroller>.fc-time-grid{position:relative;width:100%}.fc-event{position:relative;display:block;font-size:.85em;line-height:1.3;border-radius:3px;border:1px solid #3a87ad;font-weight:400}.fc-event,.fc-event-dot{background-color:#3a87ad}.fc-event,.fc-event:hover,.ui-widget .fc-event{color:#fff;text-decoration:none}.fc-not-allowed,.fc-not-allowed .fc-event{cursor:not-allowed}.fc-event .fc-bg{z-index:1;background:#fff;opacity:.25}.fc-event .fc-content{position:relative;z-index:2}.fc-event .fc-resizer{position:absolute;z-index:4;display:none}.fc-event.fc-allow-mouse-resize .fc-resizer,.fc-event.fc-selected .fc-resizer{display:block}.fc-event.fc-selected .fc-resizer:before{content:"";position:absolute;z-index:9999;top:50%;left:50%;width:40px;height:40px;margin-left:-20px;margin-top:-20px}.fc-event.fc-selected{z-index:9999!important;box-shadow:0 2px 5px rgba(0,0,0,.2)}.fc-event.fc-selected.fc-dragging{box-shadow:0 2px 7px rgba(0,0,0,.3)}.fc-h-event.fc-selected:before{content:"";position:absolute;z-index:3;top:-10px;bottom:-10px;left:0;right:0}.fc-ltr .fc-h-event.fc-not-start,.fc-rtl .fc-h-event.fc-not-end{margin-left:0;border-left-width:0;padding-left:1px;border-top-left-radius:0;border-bottom-left-radius:0}.fc-ltr .fc-h-event.fc-not-end,.fc-rtl .fc-h-event.fc-not-start{margin-right:0;border-right-width:0;padding-right:1px;border-top-right-radius:0;border-bottom-right-radius:0}.fc-ltr .fc-h-event .fc-start-resizer,.fc-rtl .fc-h-event .fc-end-resizer{cursor:w-resize;left:-1px}.fc-ltr .fc-h-event .fc-end-resizer,.fc-rtl .fc-h-event .fc-start-resizer{cursor:e-resize;right:-1px}.fc-h-event.fc-allow-mouse-resize .fc-resizer{width:7px;top:-1px;bottom:-1px}.fc-h-event.fc-selected .fc-resizer{border-radius:4px;border-width:1px;width:6px;height:6px;border-style:solid;border-color:inherit;background:#fff;top:50%;margin-top:-4px}.fc-ltr .fc-h-event.fc-selected .fc-start-resizer,.fc-rtl .fc-h-event.fc-selected .fc-end-resizer{margin-left:-4px}.fc-ltr .fc-h-event.fc-selected .fc-end-resizer,.fc-rtl .fc-h-event.fc-selected .fc-start-resizer{margin-right:-4px}.fc-day-grid-event{margin:1px 2px 0;padding:0 1px}tr:first-child>td>.fc-day-grid-event{margin-top:2px}.fc-day-grid-event.fc-selected:after{content:"";position:absolute;z-index:1;top:-1px;right:-1px;bottom:-1px;left:-1px;background:#000;opacity:.25}.fc-day-grid-event .fc-content{white-space:nowrap;overflow:hidden}.fc-day-grid-event .fc-time{font-weight:700}.fc-ltr .fc-day-grid-event.fc-allow-mouse-resize .fc-start-resizer,.fc-rtl .fc-day-grid-event.fc-allow-mouse-resize .fc-end-resizer{margin-left:-2px}.fc-ltr .fc-day-grid-event.fc-allow-mouse-resize .fc-end-resizer,.fc-rtl .fc-day-grid-event.fc-allow-mouse-resize .fc-start-resizer{margin-right:-2px}a.fc-more{margin:1px 3px;font-size:.85em;cursor:pointer;text-decoration:none}a.fc-more:hover{text-decoration:underline}.fc-limited{display:none}.fc-day-grid .fc-row{z-index:1}.fc-more-popover{z-index:2;width:220px}.fc-more-popover .fc-event-container{padding:10px}.fc-now-indicator{position:absolute;border:0 solid red}.fc-unselectable{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.fc-toolbar{margin-bottom:1em}.fc-toolbar .fc-left{float:left}.fc-toolbar .fc-right{float:right}.fc-toolbar .fc-center{display:inline-block}.fc .fc-toolbar>*>*{float:left;margin-left:.75em}.fc .fc-toolbar>*>:first-child{margin-left:0}.fc-toolbar h2{margin:0}.fc-toolbar button{position:relative}.fc-toolbar .fc-state-hover,.fc-toolbar .ui-state-hover{z-index:2}.fc-toolbar .fc-state-down{z-index:3}.fc-toolbar .fc-state-active,.fc-toolbar .ui-state-active{z-index:4}.fc-toolbar button:focus{z-index:5}.fc-view-container *,.fc-view-container :after,.fc-view-container :before{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.fc-view,.fc-view>table{position:relative;z-index:1}.fc-basicDay-view .fc-content-skeleton,.fc-basicWeek-view .fc-content-skeleton{padding-bottom:1em}.fc-basic-view .fc-body .fc-row{min-height:4em}.fc-row.fc-rigid .fc-content-skeleton{position:absolute;top:0;left:0;right:0}.fc-day-top.fc-other-month{opacity:.3}.fc-basic-view .fc-day-number,.fc-basic-view .fc-week-number{padding:2px}.fc-basic-view th.fc-day-number,.fc-basic-view th.fc-week-number{padding:0 2px}.fc-ltr .fc-basic-view .fc-day-top .fc-day-number{float:right}.fc-rtl .fc-basic-view .fc-day-top .fc-day-number{float:left}.fc-ltr .fc-basic-view .fc-day-top .fc-week-number{float:left;border-radius:0 0 3px}.fc-rtl .fc-basic-view .fc-day-top .fc-week-number{float:right;border-radius:0 0 0 3px}.fc-basic-view .fc-day-top .fc-week-number{min-width:1.5em;text-align:center;background-color:#f2f2f2;color:grey}.fc-basic-view td.fc-week-number>*{display:inline-block;min-width:1.25em}.fc-agenda-view .fc-day-grid{position:relative;z-index:2}.fc-agenda-view .fc-day-grid .fc-row{min-height:3em}.fc-agenda-view .fc-day-grid .fc-row .fc-content-skeleton{padding-bottom:1em}.fc .fc-axis{vertical-align:middle;padding:0 4px;white-space:nowrap}.fc-ltr .fc-axis{text-align:right}.fc-rtl .fc-axis{text-align:left}.ui-widget td.fc-axis{font-weight:400}.fc-time-grid,.fc-time-grid-container{position:relative;z-index:1}.fc-time-grid{min-height:100%}.fc-time-grid table{border:0 hidden transparent}.fc-time-grid>.fc-bg{z-index:1}.fc-time-grid .fc-slats,.fc-time-grid>hr{position:relative;z-index:2}.fc-time-grid .fc-content-col{position:relative}.fc-time-grid .fc-content-skeleton{position:absolute;z-index:3;top:0;left:0;right:0}.fc-time-grid .fc-business-container{position:relative;z-index:1}.fc-time-grid .fc-bgevent-container{position:relative;z-index:2}.fc-time-grid .fc-highlight-container{z-index:3;position:relative}.fc-time-grid .fc-event-container{position:relative;z-index:4}.fc-time-grid .fc-now-indicator-line{z-index:5}.fc-time-grid .fc-helper-container{position:relative;z-index:6}.fc-time-grid .fc-slats td{height:1.5em;border-bottom:0}.fc-time-grid .fc-slats .fc-minor td{border-top-style:dotted}.fc-time-grid .fc-slats .ui-widget-content{background:0 0}.fc-time-grid .fc-highlight{position:absolute;left:0;right:0}.fc-ltr .fc-time-grid .fc-event-container{margin:0 2.5% 0 2px}.fc-rtl .fc-time-grid .fc-event-container{margin:0 2px 0 2.5%}.fc-time-grid .fc-bgevent,.fc-time-grid .fc-event{position:absolute;z-index:1}.fc-time-grid .fc-bgevent{left:0;right:0}.fc-v-event.fc-not-start{border-top-width:0;padding-top:1px;border-top-left-radius:0;border-top-right-radius:0}.fc-v-event.fc-not-end{border-bottom-width:0;padding-bottom:1px;border-bottom-left-radius:0;border-bottom-right-radius:0}.fc-time-grid-event.fc-selected{overflow:visible}.fc-time-grid-event.fc-selected .fc-bg{display:none}.fc-time-grid-event .fc-content{overflow:hidden}.fc-time-grid-event .fc-time,.fc-time-grid-event .fc-title{padding:0 1px}.fc-time-grid-event .fc-time{font-size:.85em;white-space:nowrap}.fc-time-grid-event.fc-short .fc-content{white-space:nowrap}.fc-time-grid-event.fc-short .fc-time,.fc-time-grid-event.fc-short .fc-title{display:inline-block;vertical-align:top}.fc-time-grid-event.fc-short .fc-time span{display:none}.fc-time-grid-event.fc-short .fc-time:before{content:attr(data-start)}.fc-time-grid-event.fc-short .fc-time:after{content:"\000A0-\000A0"}.fc-time-grid-event.fc-short .fc-title{font-size:.85em;padding:0}.fc-time-grid-event.fc-allow-mouse-resize .fc-resizer{left:0;right:0;bottom:0;height:8px;overflow:hidden;line-height:8px;font-size:11px;font-family:monospace;text-align:center;cursor:s-resize}.fc-time-grid-event.fc-allow-mouse-resize .fc-resizer:after{content:"="}.fc-time-grid-event.fc-selected .fc-resizer{border-radius:5px;border-width:1px;width:8px;height:8px;border-style:solid;border-color:inherit;background:#fff;left:50%;margin-left:-5px;bottom:-5px}.fc-time-grid .fc-now-indicator-line{border-top-width:1px;left:0;right:0}.fc-time-grid .fc-now-indicator-arrow{margin-top:-5px}.fc-ltr .fc-time-grid .fc-now-indicator-arrow{left:0;border-width:5px 0 5px 6px;border-top-color:transparent;border-bottom-color:transparent}.fc-rtl .fc-time-grid .fc-now-indicator-arrow{right:0;border-width:5px 6px 5px 0;border-top-color:transparent;border-bottom-color:transparent}.fc-event-dot{display:inline-block;width:10px;height:10px;border-radius:5px}.fc-rtl .fc-list-view{direction:rtl}.fc-list-view{border-width:1px;border-style:solid}.fc .fc-list-table{table-layout:auto}.fc-list-table td{border-width:1px 0 0;padding:8px 14px}.fc-list-table tr:first-child td{border-top-width:0}.fc-list-heading{border-bottom-width:1px}.fc-list-heading td{font-weight:700}.fc-ltr .fc-list-heading-main{float:left}.fc-ltr .fc-list-heading-alt,.fc-rtl .fc-list-heading-main{float:right}.fc-rtl .fc-list-heading-alt{float:left}.fc-list-item.fc-has-url{cursor:pointer}.fc-list-item:hover td{background-color:#f5f5f5}.fc-list-item-marker,.fc-list-item-time{white-space:nowrap;width:1px}.fc-ltr .fc-list-item-marker{padding-right:0}.fc-rtl .fc-list-item-marker{padding-left:0}.fc-list-item-title a{text-decoration:none;color:inherit}.fc-list-item-title a[href]:hover{text-decoration:underline}.fc-list-empty-wrap2{position:absolute;top:0;left:0;right:0;bottom:0}.fc-list-empty-wrap1{width:100%;height:100%;display:table}.fc-list-empty{display:table-cell;vertical-align:middle;text-align:center}.fc-unthemed .fc-list-empty{background-color:#eee} \ No newline at end of file diff --git a/library/fullcalendar/fullcalendar.min.js b/library/fullcalendar/fullcalendar.min.js index da4b984b2..bc8b51c8a 100644 --- a/library/fullcalendar/fullcalendar.min.js +++ b/library/fullcalendar/fullcalendar.min.js @@ -1,7 +1,9 @@ /*! - * FullCalendar v1.6.4 - * Docs & License: http://arshaw.com/fullcalendar/ - * (c) 2013 Adam Shaw + * FullCalendar v3.0.1 + * Docs & License: http://fullcalendar.io/ + * (c) 2016 Adam Shaw */ -(function(t,e){function n(e){t.extend(!0,Ce,e)}function r(n,r,c){function u(t){ae?p()&&(S(),M(t)):f()}function f(){oe=r.theme?"ui":"fc",n.addClass("fc"),r.isRTL?n.addClass("fc-rtl"):n.addClass("fc-ltr"),r.theme&&n.addClass("ui-widget"),ae=t("
      ").prependTo(n),ne=new a(ee,r),re=ne.render(),re&&n.prepend(re),y(r.defaultView),r.handleWindowResize&&t(window).resize(x),m()||v()}function v(){setTimeout(function(){!ie.start&&m()&&C()},0)}function h(){ie&&(te("viewDestroy",ie,ie,ie.element),ie.triggerEventDestroy()),t(window).unbind("resize",x),ne.destroy(),ae.remove(),n.removeClass("fc fc-rtl ui-widget")}function p(){return n.is(":visible")}function m(){return t("body").is(":visible")}function y(t){ie&&t==ie.name||D(t)}function D(e){he++,ie&&(te("viewDestroy",ie,ie,ie.element),Y(),ie.triggerEventDestroy(),G(),ie.element.remove(),ne.deactivateButton(ie.name)),ne.activateButton(e),ie=new Se[e](t("
      ").appendTo(ae),ee),C(),$(),he--}function C(t){(!ie.start||t||ie.start>ge||ge>=ie.end)&&p()&&M(t)}function M(t){he++,ie.start&&(te("viewDestroy",ie,ie,ie.element),Y(),N()),G(),ie.render(ge,t||0),T(),$(),(ie.afterRender||A)(),_(),P(),te("viewRender",ie,ie,ie.element),ie.trigger("viewDisplay",de),he--,z()}function E(){p()&&(Y(),N(),S(),T(),F())}function S(){le=r.contentHeight?r.contentHeight:r.height?r.height-(re?re.height():0)-R(ae):Math.round(ae.width()/Math.max(r.aspectRatio,.5))}function T(){le===e&&S(),he++,ie.setHeight(le),ie.setWidth(ae.width()),he--,se=n.outerWidth()}function x(){if(!he)if(ie.start){var t=++ve;setTimeout(function(){t==ve&&!he&&p()&&se!=(se=n.outerWidth())&&(he++,E(),ie.trigger("windowResize",de),he--)},200)}else v()}function k(){N(),W()}function H(t){N(),F(t)}function F(t){p()&&(ie.setEventData(pe),ie.renderEvents(pe,t),ie.trigger("eventAfterAllRender"))}function N(){ie.triggerEventDestroy(),ie.clearEvents(),ie.clearEventData()}function z(){!r.lazyFetching||ue(ie.visStart,ie.visEnd)?W():F()}function W(){fe(ie.visStart,ie.visEnd)}function O(t){pe=t,F()}function L(t){H(t)}function _(){ne.updateTitle(ie.title)}function P(){var t=new Date;t>=ie.start&&ie.end>t?ne.disableButton("today"):ne.enableButton("today")}function q(t,n,r){ie.select(t,n,r===e?!0:r)}function Y(){ie&&ie.unselect()}function B(){C(-1)}function j(){C(1)}function I(){i(ge,-1),C()}function X(){i(ge,1),C()}function J(){ge=new Date,C()}function V(t,e,n){t instanceof Date?ge=d(t):g(ge,t,e,n),C()}function U(t,n,r){t!==e&&i(ge,t),n!==e&&s(ge,n),r!==e&&l(ge,r),C()}function Z(){return d(ge)}function G(){ae.css({width:"100%",height:ae.height(),overflow:"hidden"})}function $(){ae.css({width:"",height:"",overflow:""})}function Q(){return ie}function K(t,n){return n===e?r[t]:(("height"==t||"contentHeight"==t||"aspectRatio"==t)&&(r[t]=n,E()),e)}function te(t,n){return r[t]?r[t].apply(n||de,Array.prototype.slice.call(arguments,2)):e}var ee=this;ee.options=r,ee.render=u,ee.destroy=h,ee.refetchEvents=k,ee.reportEvents=O,ee.reportEventChange=L,ee.rerenderEvents=H,ee.changeView=y,ee.select=q,ee.unselect=Y,ee.prev=B,ee.next=j,ee.prevYear=I,ee.nextYear=X,ee.today=J,ee.gotoDate=V,ee.incrementDate=U,ee.formatDate=function(t,e){return w(t,e,r)},ee.formatDates=function(t,e,n){return b(t,e,n,r)},ee.getDate=Z,ee.getView=Q,ee.option=K,ee.trigger=te,o.call(ee,r,c);var ne,re,ae,oe,ie,se,le,ce,ue=ee.isFetchNeeded,fe=ee.fetchEvents,de=n[0],ve=0,he=0,ge=new Date,pe=[];g(ge,r.year,r.month,r.date),r.droppable&&t(document).bind("dragstart",function(e,n){var a=e.target,o=t(a);if(!o.parents(".fc").length){var i=r.dropAccept;(t.isFunction(i)?i.call(a,o):o.is(i))&&(ce=a,ie.dragStart(ce,e,n))}}).bind("dragstop",function(t,e){ce&&(ie.dragStop(ce,t,e),ce=null)})}function a(n,r){function a(){v=r.theme?"ui":"fc";var n=r.header;return n?h=t("").append(t("").append(i("left")).append(i("center")).append(i("right"))):e}function o(){h.remove()}function i(e){var a=t("",ue&&(r+=""),t=0;ne>t;t++)e=Ee(0,t),r+="";return r+=""}function v(){var t,e,n,r=le+"-widget-content",a="";for(a+="",t=0;ee>t;t++){for(a+="",ue&&(n=Ee(t,0),a+=""),e=0;ne>e;e++)n=Ee(t,e),a+=h(n);a+=""}return a+=""}function h(t){var e=le+"-widget-content",n=O.start.getMonth(),r=f(new Date),a="",o=["fc-day","fc-"+ke[t.getDay()],e];return t.getMonth()!=n&&o.push("fc-other-month"),+t==+r?o.push("fc-today",le+"-state-highlight"):r>t?o.push("fc-past"):o.push("fc-future"),a+=""}function g(e){Q=e;var n,r,a,o=Q-_.height();"variable"==he("weekMode")?n=r=Math.floor(o/(1==ee?2:6)):(n=Math.floor(o/ee),r=o-n*(ee-1)),J.each(function(e,o){ee>e&&(a=t(o),a.find("> div").css("min-height",(e==ee-1?r:n)-R(a)))})}function p(t){$=t,ie.clear(),se.clear(),te=0,ue&&(te=_.find("th.fc-week-number").outerWidth()),K=Math.floor(($-te)/ne),S(P.slice(0,-1),K)}function y(t){t.click(w).mousedown(Me)}function w(e){if(!he("selectable")){var n=m(t(this).data("date"));ge("dayClick",this,n,!0,e)}}function b(t,e,n){n&&ae.build();for(var r=Te(t,e),a=0;r.length>a;a++){var o=r[a];y(D(o.row,o.leftCol,o.row,o.rightCol))}}function D(t,n,r,a){var o=ae.rect(t,n,r,a,e);return be(o,e)}function C(t){return d(t)}function M(t,e){b(t,l(d(e),1),!0)}function E(){Ce()}function T(t,e,n){var r=Se(t),a=X[r.row*ne+r.col];ge("dayClick",a,t,e,n)}function x(t,e){oe.start(function(t){Ce(),t&&D(t.row,t.col,t.row,t.col)},e)}function k(t,e,n){var r=oe.stop();if(Ce(),r){var a=Ee(r);ge("drop",t,a,!0,e,n)}}function H(t){return d(t.start)}function F(t){return ie.left(t)}function N(t){return ie.right(t)}function z(t){return se.left(t)}function W(t){return se.right(t)}function A(t){return I.eq(t)}var O=this;O.renderBasic=a,O.setHeight=g,O.setWidth=p,O.renderDayOverlay=b,O.defaultSelectionEnd=C,O.renderSelection=M,O.clearSelection=E,O.reportDayClick=T,O.dragStart=x,O.dragStop=k,O.defaultEventEnd=H,O.getHoverListener=function(){return oe},O.colLeft=F,O.colRight=N,O.colContentLeft=z,O.colContentRight=W,O.getIsCellAllDay=function(){return!0},O.allDayRow=A,O.getRowCnt=function(){return ee},O.getColCnt=function(){return ne},O.getColWidth=function(){return K},O.getDaySegmentContainer=function(){return Z},fe.call(O,e,n,r),me.call(O),pe.call(O),G.call(O);var L,_,P,j,I,X,J,V,U,Z,$,Q,K,te,ee,ne,re,ae,oe,ie,se,le,ce,ue,de,ve,he=O.opt,ge=O.trigger,be=O.renderOverlay,Ce=O.clearOverlays,Me=O.daySelectionMousedown,Ee=O.cellToDate,Se=O.dateToCell,Te=O.rangeToSegments,xe=n.formatDate;Y(e.addClass("fc-grid")),ae=new ye(function(e,n){var r,a,o;P.each(function(e,i){r=t(i),a=r.offset().left,e&&(o[1]=a),o=[a],n[e]=o}),o[1]=a+r.outerWidth(),I.each(function(n,i){ee>n&&(r=t(i),a=r.offset().top,n&&(o[1]=a),o=[a],e[n]=o)}),o[1]=a+r.outerHeight()}),oe=new we(ae),ie=new De(function(t){return V.eq(t)}),se=new De(function(t){return U.eq(t)})}function G(){function t(t,e){n.renderDayEvents(t,e)}function e(){n.getDaySegmentContainer().empty()}var n=this;n.renderEvents=t,n.clearEvents=e,de.call(n)}function $(t,e){function n(t,e){e&&l(t,7*e);var n=l(d(t),-((t.getDay()-a("firstDay")+7)%7)),u=l(d(n),7),f=d(n);i(f);var v=d(u);i(v,-1,!0);var h=s();r.title=c(f,l(d(v),-1),a("titleFormat")),r.start=n,r.end=u,r.visStart=f,r.visEnd=v,o(h)}var r=this;r.render=n,K.call(r,t,e,"agendaWeek");var a=r.opt,o=r.renderAgenda,i=r.skipHiddenDays,s=r.getCellsPerWeek,c=e.formatDates}function Q(t,e){function n(t,e){e&&l(t,e),i(t,0>e?-1:1);var n=d(t,!0),c=l(d(n),1);r.title=s(t,a("titleFormat")),r.start=r.visStart=n,r.end=r.visEnd=c,o(1)}var r=this;r.render=n,K.call(r,t,e,"agendaDay");var a=r.opt,o=r.renderAgenda,i=r.skipHiddenDays,s=e.formatDate}function K(n,r,a){function o(t){We=t,i(),K?c():s()}function i(){qe=Ue("theme")?"ui":"fc",Ye=Ue("isRTL"),Be=y(Ue("minTime")),je=y(Ue("maxTime")),Ie=Ue("columnFormat"),Xe=Ue("weekNumbers"),Je=Ue("weekNumberTitle"),Ve="iso"!=Ue("weekNumberCalculation")?"w":"W",Re=Ue("snapMinutes")||Ue("slotMinutes")}function s(){var e,r,a,o,i,s=qe+"-widget-header",l=qe+"-widget-content",f=0==Ue("slotMinutes")%15;for(c(),ce=t("
      ").appendTo(n),Ue("allDaySlot")?(ue=t("
      ").appendTo(ce),e="
      "),o=r.header[e];return o&&t.each(o.split(" "),function(e){e>0&&a.append("");var o;t.each(this.split(","),function(e,i){if("title"==i)a.append("

       

      "),o&&o.addClass(v+"-corner-right"),o=null;else{var s;if(n[i]?s=n[i]:Se[i]&&(s=function(){u.removeClass(v+"-state-hover"),n.changeView(i)}),s){var l=r.theme?P(r.buttonIcons,i):null,c=P(r.buttonText,i),u=t(""+(l?""+"":c)+"").click(function(){u.hasClass(v+"-state-disabled")||s()}).mousedown(function(){u.not("."+v+"-state-active").not("."+v+"-state-disabled").addClass(v+"-state-down")}).mouseup(function(){u.removeClass(v+"-state-down")}).hover(function(){u.not("."+v+"-state-active").not("."+v+"-state-disabled").addClass(v+"-state-hover")},function(){u.removeClass(v+"-state-hover").removeClass(v+"-state-down")}).appendTo(a);Y(u),o||u.addClass(v+"-corner-left"),o=u}}}),o&&o.addClass(v+"-corner-right")}),a}function s(t){h.find("h2").html(t)}function l(t){h.find("span.fc-button-"+t).addClass(v+"-state-active")}function c(t){h.find("span.fc-button-"+t).removeClass(v+"-state-active")}function u(t){h.find("span.fc-button-"+t).addClass(v+"-state-disabled")}function f(t){h.find("span.fc-button-"+t).removeClass(v+"-state-disabled")}var d=this;d.render=a,d.destroy=o,d.updateTitle=s,d.activateButton=l,d.deactivateButton=c,d.disableButton=u,d.enableButton=f;var v,h=t([])}function o(n,r){function a(t,e){return!E||E>t||e>S}function o(t,e){E=t,S=e,W=[];var n=++R,r=F.length;N=r;for(var a=0;r>a;a++)i(F[a],n)}function i(e,r){s(e,function(a){if(r==R){if(a){n.eventDataTransform&&(a=t.map(a,n.eventDataTransform)),e.eventDataTransform&&(a=t.map(a,e.eventDataTransform));for(var o=0;a.length>o;o++)a[o].source=e,w(a[o]);W=W.concat(a)}N--,N||k(W)}})}function s(r,a){var o,i,l=Ee.sourceFetchers;for(o=0;l.length>o;o++){if(i=l[o](r,E,S,a),i===!0)return;if("object"==typeof i)return s(i,a),e}var c=r.events;if(c)t.isFunction(c)?(m(),c(d(E),d(S),function(t){a(t),y()})):t.isArray(c)?a(c):a();else{var u=r.url;if(u){var f,v=r.success,h=r.error,g=r.complete;f=t.isFunction(r.data)?r.data():r.data;var p=t.extend({},f||{}),w=X(r.startParam,n.startParam),b=X(r.endParam,n.endParam);w&&(p[w]=Math.round(+E/1e3)),b&&(p[b]=Math.round(+S/1e3)),m(),t.ajax(t.extend({},Te,r,{data:p,success:function(e){e=e||[];var n=I(v,this,arguments);t.isArray(n)&&(e=n),a(e)},error:function(){I(h,this,arguments),a()},complete:function(){I(g,this,arguments),y()}}))}else a()}}function l(t){t=c(t),t&&(N++,i(t,R))}function c(n){return t.isFunction(n)||t.isArray(n)?n={events:n}:"string"==typeof n&&(n={url:n}),"object"==typeof n?(b(n),F.push(n),n):e}function u(e){F=t.grep(F,function(t){return!D(t,e)}),W=t.grep(W,function(t){return!D(t.source,e)}),k(W)}function f(t){var e,n,r=W.length,a=x().defaultEventEnd,o=t.start-t._start,i=t.end?t.end-(t._end||a(t)):0;for(e=0;r>e;e++)n=W[e],n._id==t._id&&n!=t&&(n.start=new Date(+n.start+o),n.end=t.end?n.end?new Date(+n.end+i):new Date(+a(n)+i):null,n.title=t.title,n.url=t.url,n.allDay=t.allDay,n.className=t.className,n.editable=t.editable,n.color=t.color,n.backgroundColor=t.backgroundColor,n.borderColor=t.borderColor,n.textColor=t.textColor,w(n));w(t),k(W)}function v(t,e){w(t),t.source||(e&&(H.events.push(t),t.source=H),W.push(t)),k(W)}function h(e){if(e){if(!t.isFunction(e)){var n=e+"";e=function(t){return t._id==n}}W=t.grep(W,e,!0);for(var r=0;F.length>r;r++)t.isArray(F[r].events)&&(F[r].events=t.grep(F[r].events,e,!0))}else{W=[];for(var r=0;F.length>r;r++)t.isArray(F[r].events)&&(F[r].events=[])}k(W)}function g(e){return t.isFunction(e)?t.grep(W,e):e?(e+="",t.grep(W,function(t){return t._id==e})):W}function m(){z++||T("loading",null,!0,x())}function y(){--z||T("loading",null,!1,x())}function w(t){var r=t.source||{},a=X(r.ignoreTimezone,n.ignoreTimezone);t._id=t._id||(t.id===e?"_fc"+xe++:t.id+""),t.date&&(t.start||(t.start=t.date),delete t.date),t._start=d(t.start=p(t.start,a)),t.end=p(t.end,a),t.end&&t.end<=t.start&&(t.end=null),t._end=t.end?d(t.end):null,t.allDay===e&&(t.allDay=X(r.allDayDefault,n.allDayDefault)),t.className?"string"==typeof t.className&&(t.className=t.className.split(/\s+/)):t.className=[]}function b(t){t.className?"string"==typeof t.className&&(t.className=t.className.split(/\s+/)):t.className=[];for(var e=Ee.sourceNormalizers,n=0;e.length>n;n++)e[n](t)}function D(t,e){return t&&e&&C(t)==C(e)}function C(t){return("object"==typeof t?t.events||t.url:"")||t}var M=this;M.isFetchNeeded=a,M.fetchEvents=o,M.addEventSource=l,M.removeEventSource=u,M.updateEvent=f,M.renderEvent=v,M.removeEvents=h,M.clientEvents=g,M.normalizeEvent=w;for(var E,S,T=M.trigger,x=M.getView,k=M.reportEvents,H={events:[]},F=[H],R=0,N=0,z=0,W=[],A=0;r.length>A;A++)c(r[A])}function i(t,e,n){return t.setFullYear(t.getFullYear()+e),n||f(t),t}function s(t,e,n){if(+t){var r=t.getMonth()+e,a=d(t);for(a.setDate(1),a.setMonth(r),t.setMonth(r),n||f(t);t.getMonth()!=a.getMonth();)t.setDate(t.getDate()+(a>t?1:-1))}return t}function l(t,e,n){if(+t){var r=t.getDate()+e,a=d(t);a.setHours(9),a.setDate(r),t.setDate(r),n||f(t),c(t,a)}return t}function c(t,e){if(+t)for(;t.getDate()!=e.getDate();)t.setTime(+t+(e>t?1:-1)*Fe)}function u(t,e){return t.setMinutes(t.getMinutes()+e),t}function f(t){return t.setHours(0),t.setMinutes(0),t.setSeconds(0),t.setMilliseconds(0),t}function d(t,e){return e?f(new Date(+t)):new Date(+t)}function v(){var t,e=0;do t=new Date(1970,e++,1);while(t.getHours());return t}function h(t,e){return Math.round((d(t,!0)-d(e,!0))/He)}function g(t,n,r,a){n!==e&&n!=t.getFullYear()&&(t.setDate(1),t.setMonth(0),t.setFullYear(n)),r!==e&&r!=t.getMonth()&&(t.setDate(1),t.setMonth(r)),a!==e&&t.setDate(a)}function p(t,n){return"object"==typeof t?t:"number"==typeof t?new Date(1e3*t):"string"==typeof t?t.match(/^\d+(\.\d+)?$/)?new Date(1e3*parseFloat(t)):(n===e&&(n=!0),m(t,n)||(t?new Date(t):null)):null}function m(t,e){var n=t.match(/^([0-9]{4})(-([0-9]{2})(-([0-9]{2})([T ]([0-9]{2}):([0-9]{2})(:([0-9]{2})(\.([0-9]+))?)?(Z|(([-+])([0-9]{2})(:?([0-9]{2}))?))?)?)?)?$/);if(!n)return null;var r=new Date(n[1],0,1);if(e||!n[13]){var a=new Date(n[1],0,1,9,0);n[3]&&(r.setMonth(n[3]-1),a.setMonth(n[3]-1)),n[5]&&(r.setDate(n[5]),a.setDate(n[5])),c(r,a),n[7]&&r.setHours(n[7]),n[8]&&r.setMinutes(n[8]),n[10]&&r.setSeconds(n[10]),n[12]&&r.setMilliseconds(1e3*Number("0."+n[12])),c(r,a)}else if(r.setUTCFullYear(n[1],n[3]?n[3]-1:0,n[5]||1),r.setUTCHours(n[7]||0,n[8]||0,n[10]||0,n[12]?1e3*Number("0."+n[12]):0),n[14]){var o=60*Number(n[16])+(n[18]?Number(n[18]):0);o*="-"==n[15]?1:-1,r=new Date(+r+1e3*60*o)}return r}function y(t){if("number"==typeof t)return 60*t;if("object"==typeof t)return 60*t.getHours()+t.getMinutes();var e=t.match(/(\d+)(?::(\d+))?\s*(\w+)?/);if(e){var n=parseInt(e[1],10);return e[3]&&(n%=12,"p"==e[3].toLowerCase().charAt(0)&&(n+=12)),60*n+(e[2]?parseInt(e[2],10):0)}}function w(t,e,n){return b(t,null,e,n)}function b(t,e,n,r){r=r||Ce;var a,o,i,s,l=t,c=e,u=n.length,f="";for(a=0;u>a;a++)if(o=n.charAt(a),"'"==o){for(i=a+1;u>i;i++)if("'"==n.charAt(i)){l&&(f+=i==a+1?"'":n.substring(a+1,i),a=i);break}}else if("("==o){for(i=a+1;u>i;i++)if(")"==n.charAt(i)){var d=w(l,n.substring(a+1,i),r);parseInt(d.replace(/\D/,""),10)&&(f+=d),a=i;break}}else if("["==o){for(i=a+1;u>i;i++)if("]"==n.charAt(i)){var v=n.substring(a+1,i),d=w(l,v,r);d!=w(c,v,r)&&(f+=d),a=i;break}}else if("{"==o)l=e,c=t;else if("}"==o)l=t,c=e;else{for(i=u;i>a;i--)if(s=Ne[n.substring(a,i)]){l&&(f+=s(l,r)),a=i-1;break}i==a&&l&&(f+=o)}return f}function D(t){var e,n=new Date(t.getTime());return n.setDate(n.getDate()+4-(n.getDay()||7)),e=n.getTime(),n.setMonth(0),n.setDate(1),Math.floor(Math.round((e-n)/864e5)/7)+1}function C(t){return t.end?M(t.end,t.allDay):l(d(t.start),1)}function M(t,e){return t=d(t),e||t.getHours()||t.getMinutes()?l(t,1):f(t)}function E(n,r,a){n.unbind("mouseover").mouseover(function(n){for(var o,i,s,l=n.target;l!=this;)o=l,l=l.parentNode;(i=o._fci)!==e&&(o._fci=e,s=r[i],a(s.event,s.element,s),t(n.target).trigger(n)),n.stopPropagation()})}function S(e,n,r){for(var a,o=0;e.length>o;o++)a=t(e[o]),a.width(Math.max(0,n-x(a,r)))}function T(e,n,r){for(var a,o=0;e.length>o;o++)a=t(e[o]),a.height(Math.max(0,n-R(a,r)))}function x(t,e){return k(t)+F(t)+(e?H(t):0)}function k(e){return(parseFloat(t.css(e[0],"paddingLeft",!0))||0)+(parseFloat(t.css(e[0],"paddingRight",!0))||0)}function H(e){return(parseFloat(t.css(e[0],"marginLeft",!0))||0)+(parseFloat(t.css(e[0],"marginRight",!0))||0)}function F(e){return(parseFloat(t.css(e[0],"borderLeftWidth",!0))||0)+(parseFloat(t.css(e[0],"borderRightWidth",!0))||0)}function R(t,e){return N(t)+W(t)+(e?z(t):0)}function N(e){return(parseFloat(t.css(e[0],"paddingTop",!0))||0)+(parseFloat(t.css(e[0],"paddingBottom",!0))||0)}function z(e){return(parseFloat(t.css(e[0],"marginTop",!0))||0)+(parseFloat(t.css(e[0],"marginBottom",!0))||0)}function W(e){return(parseFloat(t.css(e[0],"borderTopWidth",!0))||0)+(parseFloat(t.css(e[0],"borderBottomWidth",!0))||0)}function A(){}function O(t,e){return t-e}function L(t){return Math.max.apply(Math,t)}function _(t){return(10>t?"0":"")+t}function P(t,n){if(t[n]!==e)return t[n];for(var r,a=n.split(/(?=[A-Z])/),o=a.length-1;o>=0;o--)if(r=t[a[o].toLowerCase()],r!==e)return r;return t[""]}function q(t){return t.replace(/&/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""").replace(/\n/g,"
      ")}function Y(t){t.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return!1})}function B(t){t.children().removeClass("fc-first fc-last").filter(":first-child").addClass("fc-first").end().filter(":last-child").addClass("fc-last")}function j(t,e){var n=t.source||{},r=t.color,a=n.color,o=e("eventColor"),i=t.backgroundColor||r||n.backgroundColor||a||e("eventBackgroundColor")||o,s=t.borderColor||r||n.borderColor||a||e("eventBorderColor")||o,l=t.textColor||n.textColor||e("eventTextColor"),c=[];return i&&c.push("background-color:"+i),s&&c.push("border-color:"+s),l&&c.push("color:"+l),c.join(";")}function I(e,n,r){if(t.isFunction(e)&&(e=[e]),e){var a,o;for(a=0;e.length>a;a++)o=e[a].apply(n,r)||o;return o}}function X(){for(var t=0;arguments.length>t;t++)if(arguments[t]!==e)return arguments[t]}function J(t,e){function n(t,e){e&&(s(t,e),t.setDate(1));var n=a("firstDay"),f=d(t,!0);f.setDate(1);var v=s(d(f),1),g=d(f);l(g,-((g.getDay()-n+7)%7)),i(g);var p=d(v);l(p,(7-p.getDay()+n)%7),i(p,-1,!0);var m=c(),y=Math.round(h(p,g)/7);"fixed"==a("weekMode")&&(l(p,7*(6-y)),y=6),r.title=u(f,a("titleFormat")),r.start=f,r.end=v,r.visStart=g,r.visEnd=p,o(y,m,!0)}var r=this;r.render=n,Z.call(r,t,e,"month");var a=r.opt,o=r.renderBasic,i=r.skipHiddenDays,c=r.getCellsPerWeek,u=e.formatDate}function V(t,e){function n(t,e){e&&l(t,7*e);var n=l(d(t),-((t.getDay()-a("firstDay")+7)%7)),u=l(d(n),7),f=d(n);i(f);var v=d(u);i(v,-1,!0);var h=s();r.start=n,r.end=u,r.visStart=f,r.visEnd=v,r.title=c(f,l(d(v),-1),a("titleFormat")),o(1,h,!1)}var r=this;r.render=n,Z.call(r,t,e,"basicWeek");var a=r.opt,o=r.renderBasic,i=r.skipHiddenDays,s=r.getCellsPerWeek,c=e.formatDates}function U(t,e){function n(t,e){e&&l(t,e),i(t,0>e?-1:1);var n=d(t,!0),c=l(d(n),1);r.title=s(t,a("titleFormat")),r.start=r.visStart=n,r.end=r.visEnd=c,o(1,1,!1)}var r=this;r.render=n,Z.call(r,t,e,"basicDay");var a=r.opt,o=r.renderBasic,i=r.skipHiddenDays,s=e.formatDate}function Z(e,n,r){function a(t,e,n){ee=t,ne=e,re=n,o(),j||i(),s()}function o(){le=he("theme")?"ui":"fc",ce=he("columnFormat"),ue=he("weekNumbers"),de=he("weekNumberTitle"),ve="iso"!=he("weekNumberCalculation")?"w":"W"}function i(){Z=t("
      ").appendTo(e)}function s(){var n=c();L&&L.remove(),L=t(n).appendTo(e),_=L.find("thead"),P=_.find(".fc-day-header"),j=L.find("tbody"),I=j.find("tr"),X=j.find(".fc-day"),J=I.find("td:first-child"),V=I.eq(0).find(".fc-day > div"),U=I.eq(0).find(".fc-day-content > div"),B(_.add(_.find("tr"))),B(I),I.eq(0).addClass("fc-first"),I.filter(":last").addClass("fc-last"),X.each(function(e,n){var r=Ee(Math.floor(e/ne),e%ne);ge("dayRender",O,r,t(n))}),y(X)}function c(){var t=""+u()+v()+"
      ";return t}function u(){var t,e,n=le+"-widget-header",r="";for(r+="
      "+q(de)+""+q(xe(e,ce))+"
      "+"
      "+q(xe(n,ve))+"
      "+"
      "+"
      ",re&&(a+="
      "+t.getDate()+"
      "),a+="
       
      "+""+""+""+"
      "+Ue("allDayText")+""+"
      "+"
       
      ",de=t(e).appendTo(ce),ve=de.find("tr"),C(ve.find("td")),ce.append("
      "+"
      "+"
      ")):ue=t([]),he=t("
      ").appendTo(ce),ge=t("
      ").appendTo(he),be=t("
      ").appendTo(ge),e="",r=v(),o=u(d(r),je),u(r,Be),Ae=0,a=0;o>r;a++)i=r.getMinutes(),e+=""+""+""+"",u(r,Ue("slotMinutes")),Ae++;e+="
      "+(f&&i?" ":on(r,Ue("axisFormat")))+""+"
       
      "+"
      ",Ce=t(e).appendTo(ge),M(Ce.find("td"))}function c(){var e=h();K&&K.remove(),K=t(e).appendTo(n),ee=K.find("thead"),ne=ee.find("th").slice(1,-1),re=K.find("tbody"),ae=re.find("td").slice(0,-1),oe=ae.find("> div"),ie=ae.find(".fc-day-content > div"),se=ae.eq(0),le=oe.eq(0),B(ee.add(ee.find("tr"))),B(re.add(re.find("tr")))}function h(){var t=""+g()+p()+"
      ";return t}function g(){var t,e,n,r=qe+"-widget-header",a="";for(a+="",Xe?(t=nn(0,0),e=on(t,Ve),Ye?e+=Je:e=Je+e,a+=""+q(e)+""):a+=" ",n=0;We>n;n++)t=nn(0,n),a+=""+q(on(t,Ie))+"";return a+=" "+""+""}function p(){var t,e,n,r,a,o=qe+"-widget-header",i=qe+"-widget-content",s=f(new Date),l="";for(l+=" ",n="",e=0;We>e;e++)t=nn(0,e),a=["fc-col"+e,"fc-"+ke[t.getDay()],i],+t==+s?a.push(qe+"-state-highlight","fc-today"):s>t?a.push("fc-past"):a.push("fc-future"),r=""+"
      "+"
      "+"
       
      "+"
      "+"
      "+"",n+=r;return l+=n,l+=" "+""+""}function m(t){t===e&&(t=Se),Se=t,sn={};var n=re.position().top,r=he.position().top,a=Math.min(t-n,Ce.height()+r+1);le.height(a-R(se)),ce.css("top",n),he.height(a-r-1),Fe=Ce.find("tr:first").height()+1,Ne=Ue("slotMinutes")/Re,ze=Fe/Ne}function w(e){Ee=e,_e.clear(),Pe.clear();var n=ee.find("th:first");de&&(n=n.add(de.find("th:first"))),n=n.add(Ce.find("th:first")),Te=0,S(n.width("").each(function(e,n){Te=Math.max(Te,t(n).outerWidth())}),Te);var r=K.find(".fc-agenda-gutter");de&&(r=r.add(de.find("th.fc-agenda-gutter")));var a=he[0].clientWidth;He=he.width()-a,He?(S(r,He),r.show().prev().removeClass("fc-last")):r.hide().prev().addClass("fc-last"),xe=Math.floor((a-Te)/We),S(ne.slice(0,-1),xe)}function b(){function t(){he.scrollTop(r)}var e=v(),n=d(e);n.setHours(Ue("firstHour"));var r=_(e,n)+1;t(),setTimeout(t,0)}function D(){b()}function C(t){t.click(E).mousedown(tn)}function M(t){t.click(E).mousedown(U)}function E(t){if(!Ue("selectable")){var e=Math.min(We-1,Math.floor((t.pageX-K.offset().left-Te)/xe)),n=nn(0,e),r=this.parentNode.className.match(/fc-slot(\d+)/);if(r){var a=parseInt(r[1])*Ue("slotMinutes"),o=Math.floor(a/60);n.setHours(o),n.setMinutes(a%60+Be),Ze("dayClick",ae[e],n,!1,t)}else Ze("dayClick",ae[e],n,!0,t)}}function x(t,e,n){n&&Oe.build();for(var r=an(t,e),a=0;r.length>a;a++){var o=r[a];C(k(o.row,o.leftCol,o.row,o.rightCol))}}function k(t,e,n,r){var a=Oe.rect(t,e,n,r,ce);return Ge(a,ce)}function H(t,e){for(var n=0;We>n;n++){var r=nn(0,n),a=l(d(r),1),o=new Date(Math.max(r,t)),i=new Date(Math.min(a,e));if(i>o){var s=Oe.rect(0,n,0,n,ge),c=_(r,o),u=_(r,i);s.top=c,s.height=u-c,M(Ge(s,ge))}}}function F(t){return _e.left(t)}function N(t){return Pe.left(t)}function z(t){return _e.right(t)}function W(t){return Pe.right(t)}function A(t){return Ue("allDaySlot")&&!t.row}function L(t){var e=nn(0,t.col),n=t.row;return Ue("allDaySlot")&&n--,n>=0&&u(e,Be+n*Re),e}function _(t,n){if(t=d(t,!0),u(d(t),Be)>n)return 0;if(n>=u(d(t),je))return Ce.height();var r=Ue("slotMinutes"),a=60*n.getHours()+n.getMinutes()-Be,o=Math.floor(a/r),i=sn[o];return i===e&&(i=sn[o]=Ce.find("tr").eq(o).find("td div")[0].offsetTop),Math.max(0,Math.round(i-1+Fe*(a%r/r)))}function P(){return ve}function j(t){var e=d(t.start);return t.allDay?e:u(e,Ue("defaultEventMinutes"))}function I(t,e){return e?d(t):u(d(t),Ue("slotMinutes"))}function X(t,e,n){n?Ue("allDaySlot")&&x(t,l(d(e),1),!0):J(t,e)}function J(e,n){var r=Ue("selectHelper");if(Oe.build(),r){var a=rn(e).col;if(a>=0&&We>a){var o=Oe.rect(0,a,0,a,ge),i=_(e,e),s=_(e,n);if(s>i){if(o.top=i,o.height=s-i,o.left+=2,o.width-=5,t.isFunction(r)){var l=r(e,n);l&&(o.position="absolute",Me=t(l).css(o).appendTo(ge))}else o.isStart=!0,o.isEnd=!0,Me=t(en({title:"",start:e,end:n,className:["fc-select-helper"],editable:!1},o)),Me.css("opacity",Ue("dragOpacity"));Me&&(M(Me),ge.append(Me),S(Me,o.width,!0),T(Me,o.height,!0))}}}else H(e,n)}function V(){$e(),Me&&(Me.remove(),Me=null)}function U(e){if(1==e.which&&Ue("selectable")){Ke(e);var n;Le.start(function(t,e){if(V(),t&&t.col==e.col&&!A(t)){var r=L(e),a=L(t);n=[r,u(d(r),Re),a,u(d(a),Re)].sort(O),J(n[0],n[3])}else n=null},e),t(document).one("mouseup",function(t){Le.stop(),n&&(+n[0]==+n[1]&&Z(n[0],!1,t),Qe(n[0],n[3],!1,t))})}}function Z(t,e,n){Ze("dayClick",ae[rn(t).col],t,e,n)}function G(t,e){Le.start(function(t){if($e(),t)if(A(t))k(t.row,t.col,t.row,t.col);else{var e=L(t),n=u(d(e),Ue("defaultEventMinutes"));H(e,n)}},e)}function $(t,e,n){var r=Le.stop();$e(),r&&Ze("drop",t,L(r),A(r),e,n)}var Q=this;Q.renderAgenda=o,Q.setWidth=w,Q.setHeight=m,Q.afterRender=D,Q.defaultEventEnd=j,Q.timePosition=_,Q.getIsCellAllDay=A,Q.allDayRow=P,Q.getCoordinateGrid=function(){return Oe},Q.getHoverListener=function(){return Le},Q.colLeft=F,Q.colRight=z,Q.colContentLeft=N,Q.colContentRight=W,Q.getDaySegmentContainer=function(){return ue},Q.getSlotSegmentContainer=function(){return be},Q.getMinMinute=function(){return Be},Q.getMaxMinute=function(){return je},Q.getSlotContainer=function(){return ge},Q.getRowCnt=function(){return 1},Q.getColCnt=function(){return We},Q.getColWidth=function(){return xe},Q.getSnapHeight=function(){return ze},Q.getSnapMinutes=function(){return Re},Q.defaultSelectionEnd=I,Q.renderDayOverlay=x,Q.renderSelection=X,Q.clearSelection=V,Q.reportDayClick=Z,Q.dragStart=G,Q.dragStop=$,fe.call(Q,n,r,a),me.call(Q),pe.call(Q),te.call(Q);var K,ee,ne,re,ae,oe,ie,se,le,ce,ue,de,ve,he,ge,be,Ce,Me,Ee,Se,Te,xe,He,Fe,Re,Ne,ze,We,Ae,Oe,Le,_e,Pe,qe,Ye,Be,je,Ie,Xe,Je,Ve,Ue=Q.opt,Ze=Q.trigger,Ge=Q.renderOverlay,$e=Q.clearOverlays,Qe=Q.reportSelection,Ke=Q.unselect,tn=Q.daySelectionMousedown,en=Q.slotSegHtml,nn=Q.cellToDate,rn=Q.dateToCell,an=Q.rangeToSegments,on=r.formatDate,sn={};Y(n.addClass("fc-agenda")),Oe=new ye(function(e,n){function r(t){return Math.max(l,Math.min(c,t))}var a,o,i;ne.each(function(e,r){a=t(r),o=a.offset().left,e&&(i[1]=o),i=[o],n[e]=i}),i[1]=o+a.outerWidth(),Ue("allDaySlot")&&(a=ve,o=a.offset().top,e[0]=[o,o+a.outerHeight()]);for(var s=ge.offset().top,l=he.offset().top,c=l+he.outerHeight(),u=0;Ae*Ne>u;u++)e.push([r(s+ze*u),r(s+ze*(u+1))])}),Le=new we(Oe),_e=new De(function(t){return oe.eq(t)}),Pe=new De(function(t){return ie.eq(t)})}function te(){function n(t,e){var n,r=t.length,o=[],i=[];for(n=0;r>n;n++)t[n].allDay?o.push(t[n]):i.push(t[n]);y("allDaySlot")&&(te(o,e),k()),s(a(i),e)}function r(){H().empty(),F().empty()}function a(e){var n,r,a,s,l,c=Y(),f=W(),v=z(),h=t.map(e,i),g=[];for(r=0;c>r;r++)for(n=P(0,r),u(n,f),l=o(e,h,n,u(d(n),v-f)),l=ee(l),a=0;l.length>a;a++)s=l[a],s.col=r,g.push(s);return g}function o(t,e,n,r){var a,o,i,s,l,c,u,f,v=[],h=t.length;for(a=0;h>a;a++)o=t[a],i=o.start,s=e[a],s>n&&r>i&&(n>i?(l=d(n),u=!1):(l=i,u=!0),s>r?(c=d(r),f=!1):(c=s,f=!0),v.push({event:o,start:l,end:c,isStart:u,isEnd:f}));return v.sort(ue)}function i(t){return t.end?d(t.end):u(d(t.start),y("defaultEventMinutes"))}function s(n,r){var a,o,i,s,l,u,d,v,h,g,p,m,b,D,C,M,S=n.length,T="",k=F(),H=y("isRTL");for(a=0;S>a;a++)o=n[a],i=o.event,s=A(o.start,o.start),l=A(o.start,o.end),u=L(o.col),d=_(o.col),v=d-u,d-=.025*v,v=d-u,h=v*(o.forwardCoord-o.backwardCoord),y("slotEventOverlap")&&(h=Math.max(2*(h-10),h)),H?(p=d-o.backwardCoord*v,g=p-h):(g=u+o.backwardCoord*v,p=g+h),g=Math.max(g,u),p=Math.min(p,d),h=p-g,o.top=s,o.left=g,o.outerWidth=h,o.outerHeight=l-s,T+=c(i,o);for(k[0].innerHTML=T,m=k.children(),a=0;S>a;a++)o=n[a],i=o.event,b=t(m[a]),D=w("eventRender",i,i,b),D===!1?b.remove():(D&&D!==!0&&(b.remove(),b=t(D).css({position:"absolute",top:o.top,left:o.left}).appendTo(k)),o.element=b,i._id===r?f(i,b,o):b[0]._fci=a,V(i,b));for(E(k,n,f),a=0;S>a;a++)o=n[a],(b=o.element)&&(o.vsides=R(b,!0),o.hsides=x(b,!0),C=b.find(".fc-event-title"),C.length&&(o.contentTop=C[0].offsetTop));for(a=0;S>a;a++)o=n[a],(b=o.element)&&(b[0].style.width=Math.max(0,o.outerWidth-o.hsides)+"px",M=Math.max(0,o.outerHeight-o.vsides),b[0].style.height=M+"px",i=o.event,o.contentTop!==e&&10>M-o.contentTop&&(b.find("div.fc-event-time").text(re(i.start,y("timeFormat"))+" - "+i.title),b.find("div.fc-event-title").remove()),w("eventAfterRender",i,i,b))}function c(t,e){var n="<",r=t.url,a=j(t,y),o=["fc-event","fc-event-vert"];return b(t)&&o.push("fc-event-draggable"),e.isStart&&o.push("fc-event-start"),e.isEnd&&o.push("fc-event-end"),o=o.concat(t.className),t.source&&(o=o.concat(t.source.className||[])),n+=r?"a href='"+q(t.url)+"'":"div",n+=" class='"+o.join(" ")+"'"+" style="+"'"+"position:absolute;"+"top:"+e.top+"px;"+"left:"+e.left+"px;"+a+"'"+">"+"
      "+"
      "+q(ae(t.start,t.end,y("timeFormat")))+"
      "+"
      "+q(t.title||"")+"
      "+"
      "+"
      ",e.isEnd&&D(t)&&(n+="
      =
      "),n+=""}function f(t,e,n){var r=e.find("div.fc-event-time");b(t)&&g(t,e,r),n.isEnd&&D(t)&&p(t,e,r),S(t,e)}function v(t,e,n){function r(){c||(e.width(a).height("").draggable("option","grid",null),c=!0)}var a,o,i,s=n.isStart,c=!0,u=N(),f=B(),v=I(),g=X(),p=W();e.draggable({opacity:y("dragOpacity","month"),revertDuration:y("dragRevertDuration"),start:function(n,p){w("eventDragStart",e,t,n,p),Z(t,e),a=e.width(),u.start(function(n,a){if(K(),n){o=!1;var u=P(0,a.col),p=P(0,n.col);i=h(p,u),n.row?s?c&&(e.width(f-10),T(e,v*Math.round((t.end?(t.end-t.start)/Re:y("defaultEventMinutes"))/g)),e.draggable("option","grid",[f,1]),c=!1):o=!0:(Q(l(d(t.start),i),l(C(t),i)),r()),o=o||c&&!i -}else r(),o=!0;e.draggable("option","revert",o)},n,"drag")},stop:function(n,a){if(u.stop(),K(),w("eventDragStop",e,t,n,a),o)r(),e.css("filter",""),U(t,e);else{var s=0;c||(s=Math.round((e.offset().top-J().offset().top)/v)*g+p-(60*t.start.getHours()+t.start.getMinutes())),G(this,t,i,s,c,n,a)}}})}function g(t,e,n){function r(){K(),s&&(f?(n.hide(),e.draggable("option","grid",null),Q(l(d(t.start),b),l(C(t),b))):(a(D),n.css("display",""),e.draggable("option","grid",[T,x])))}function a(e){var r,a=u(d(t.start),e);t.end&&(r=u(d(t.end),e)),n.text(ae(a,r,y("timeFormat")))}var o,i,s,c,f,v,g,p,b,D,M,E=m.getCoordinateGrid(),S=Y(),T=B(),x=I(),k=X();e.draggable({scroll:!1,grid:[T,x],axis:1==S?"y":!1,opacity:y("dragOpacity"),revertDuration:y("dragRevertDuration"),start:function(n,r){w("eventDragStart",e,t,n,r),Z(t,e),E.build(),o=e.position(),i=E.cell(n.pageX,n.pageY),s=c=!0,f=v=O(i),g=p=0,b=0,D=M=0},drag:function(t,n){var a=E.cell(t.pageX,t.pageY);if(s=!!a){if(f=O(a),g=Math.round((n.position.left-o.left)/T),g!=p){var l=P(0,i.col),u=i.col+g;u=Math.max(0,u),u=Math.min(S-1,u);var d=P(0,u);b=h(d,l)}f||(D=Math.round((n.position.top-o.top)/x)*k)}(s!=c||f!=v||g!=p||D!=M)&&(r(),c=s,v=f,p=g,M=D),e.draggable("option","revert",!s)},stop:function(n,a){K(),w("eventDragStop",e,t,n,a),s&&(f||b||D)?G(this,t,b,f?0:D,f,n,a):(s=!0,f=!1,g=0,b=0,D=0,r(),e.css("filter",""),e.css(o),U(t,e))}})}function p(t,e,n){var r,a,o=I(),i=X();e.resizable({handles:{s:".ui-resizable-handle"},grid:o,start:function(n,o){r=a=0,Z(t,e),w("eventResizeStart",this,t,n,o)},resize:function(s,l){r=Math.round((Math.max(o,e.height())-l.originalSize.height)/o),r!=a&&(n.text(ae(t.start,r||t.end?u(M(t),i*r):null,y("timeFormat"))),a=r)},stop:function(n,a){w("eventResizeStop",this,t,n,a),r?$(this,t,0,i*r,n,a):U(t,e)}})}var m=this;m.renderEvents=n,m.clearEvents=r,m.slotSegHtml=c,de.call(m);var y=m.opt,w=m.trigger,b=m.isEventDraggable,D=m.isEventResizable,M=m.eventEnd,S=m.eventElementHandlers,k=m.setHeight,H=m.getDaySegmentContainer,F=m.getSlotSegmentContainer,N=m.getHoverListener,z=m.getMaxMinute,W=m.getMinMinute,A=m.timePosition,O=m.getIsCellAllDay,L=m.colContentLeft,_=m.colContentRight,P=m.cellToDate,Y=m.getColCnt,B=m.getColWidth,I=m.getSnapHeight,X=m.getSnapMinutes,J=m.getSlotContainer,V=m.reportEventElement,U=m.showEvents,Z=m.hideEvents,G=m.eventDrop,$=m.eventResize,Q=m.renderDayOverlay,K=m.clearOverlays,te=m.renderDayEvents,ne=m.calendar,re=ne.formatDate,ae=ne.formatDates;m.draggableDayEvent=v}function ee(t){var e,n=ne(t),r=n[0];if(re(n),r){for(e=0;r.length>e;e++)ae(r[e]);for(e=0;r.length>e;e++)oe(r[e],0,0)}return ie(n)}function ne(t){var e,n,r,a=[];for(e=0;t.length>e;e++){for(n=t[e],r=0;a.length>r&&se(n,a[r]).length;r++);(a[r]||(a[r]=[])).push(n)}return a}function re(t){var e,n,r,a,o;for(e=0;t.length>e;e++)for(n=t[e],r=0;n.length>r;r++)for(a=n[r],a.forwardSegs=[],o=e+1;t.length>o;o++)se(a,t[o],a.forwardSegs)}function ae(t){var n,r,a=t.forwardSegs,o=0;if(t.forwardPressure===e){for(n=0;a.length>n;n++)r=a[n],ae(r),o=Math.max(o,1+r.forwardPressure);t.forwardPressure=o}}function oe(t,n,r){var a,o=t.forwardSegs;if(t.forwardCoord===e)for(o.length?(o.sort(ce),oe(o[0],n+1,r),t.forwardCoord=o[0].backwardCoord):t.forwardCoord=1,t.backwardCoord=t.forwardCoord-(t.forwardCoord-r)/(n+1),a=0;o.length>a;a++)oe(o[a],0,t.forwardCoord)}function ie(t){var e,n,r,a=[];for(e=0;t.length>e;e++)for(n=t[e],r=0;n.length>r;r++)a.push(n[r]);return a}function se(t,e,n){n=n||[];for(var r=0;e.length>r;r++)le(t,e[r])&&n.push(e[r]);return n}function le(t,e){return t.end>e.start&&t.starte;e++)n=t[e],j[n._id]?j[n._id].push(n):j[n._id]=[n]}function v(){j={},I={},J=[]}function g(t){return t.end?d(t.end):q(t)}function p(t,e){J.push({event:t,element:e}),I[t._id]?I[t._id].push(e):I[t._id]=[e]}function m(){t.each(J,function(t,e){_.trigger("eventDestroy",e.event,e.event,e.element)})}function y(t,n){n.click(function(r){return n.hasClass("ui-draggable-dragging")||n.hasClass("ui-resizable-resizing")?e:i("eventClick",this,t,r)}).hover(function(e){i("eventMouseover",this,t,e)},function(e){i("eventMouseout",this,t,e)})}function w(t,e){D(t,e,"show")}function b(t,e){D(t,e,"hide")}function D(t,e,n){var r,a=I[t._id],o=a.length;for(r=0;o>r;r++)e&&a[r][0]==e[0]||a[r][n]()}function C(t,e,n,r,a,o,s){var l=e.allDay,c=e._id;E(j[c],n,r,a),i("eventDrop",t,e,n,r,a,function(){E(j[c],-n,-r,l),B(c)},o,s),B(c)}function M(t,e,n,r,a,o){var s=e._id;S(j[s],n,r),i("eventResize",t,e,n,r,function(){S(j[s],-n,-r),B(s)},a,o),B(s)}function E(t,n,r,a){r=r||0;for(var o,i=t.length,s=0;i>s;s++)o=t[s],a!==e&&(o.allDay=a),u(l(o.start,n,!0),r),o.end&&(o.end=u(l(o.end,n,!0),r)),Y(o,V)}function S(t,e,n){n=n||0;for(var r,a=t.length,o=0;a>o;o++)r=t[o],r.end=u(l(g(r),e,!0),n),Y(r,V)}function T(t){return"object"==typeof t&&(t=t.getDay()),G[t]}function x(){return U}function k(t,e,n){for(e=e||1;G[(t.getDay()+(n?e:0)+7)%7];)l(t,e)}function H(){var t=F.apply(null,arguments),e=R(t),n=N(e);return n}function F(t,e){var n=_.getColCnt(),r=K?-1:1,a=K?n-1:0;"object"==typeof t&&(e=t.col,t=t.row);var o=t*n+(e*r+a);return o}function R(t){var e=_.visStart.getDay();return t+=$[e],7*Math.floor(t/U)+Q[(t%U+U)%U]-e}function N(t){var e=d(_.visStart);return l(e,t),e}function z(t){var e=W(t),n=A(e),r=O(n);return r}function W(t){return h(t,_.visStart)}function A(t){var e=_.visStart.getDay();return t+=e,Math.floor(t/7)*U+$[(t%7+7)%7]-$[e]}function O(t){var e=_.getColCnt(),n=K?-1:1,r=K?e-1:0,a=Math.floor(t/e),o=(t%e+e)%e*n+r;return{row:a,col:o}}function L(t,e){for(var n=_.getRowCnt(),r=_.getColCnt(),a=[],o=W(t),i=W(e),s=A(o),l=A(i)-1,c=0;n>c;c++){var u=c*r,f=u+r-1,d=Math.max(s,u),v=Math.min(l,f);if(v>=d){var h=O(d),g=O(v),p=[h.col,g.col].sort(),m=R(d)==o,y=R(v)+1==i;a.push({row:c,leftCol:p[0],rightCol:p[1],isStart:m,isEnd:y})}}return a}var _=this;_.element=n,_.calendar=r,_.name=a,_.opt=o,_.trigger=i,_.isEventDraggable=s,_.isEventResizable=c,_.setEventData=f,_.clearEventData=v,_.eventEnd=g,_.reportEventElement=p,_.triggerEventDestroy=m,_.eventElementHandlers=y,_.showEvents=w,_.hideEvents=b,_.eventDrop=C,_.eventResize=M;var q=_.defaultEventEnd,Y=r.normalizeEvent,B=r.reportEventChange,j={},I={},J=[],V=r.options;_.isHiddenDay=T,_.skipHiddenDays=k,_.getCellsPerWeek=x,_.dateToCell=z,_.dateToDayOffset=W,_.dayOffsetToCellOffset=A,_.cellOffsetToCell=O,_.cellToDate=H,_.cellToCellOffset=F,_.cellOffsetToDayOffset=R,_.dayOffsetToDate=N,_.rangeToSegments=L;var U,Z=o("hiddenDays")||[],G=[],$=[],Q=[],K=o("isRTL");(function(){o("weekends")===!1&&Z.push(0,6);for(var e=0,n=0;7>e;e++)$[e]=n,G[e]=-1!=t.inArray(e,Z),G[e]||(Q[n]=e,n++);if(U=n,!U)throw"invalid hiddenDays"})()}function de(){function e(t,e){var n=r(t,!1,!0);he(n,function(t,e){N(t.event,e)}),w(n,e),he(n,function(t,e){k("eventAfterRender",t.event,t.event,e)})}function n(t,e,n){var a=r([t],!0,!1),o=[];return he(a,function(t,r){t.row===e&&r.css("top",n),o.push(r[0])}),o}function r(e,n,r){var o,l,c=Z(),d=n?t("
      "):c,v=a(e);return i(v),o=s(v),d[0].innerHTML=o,l=d.children(),n&&c.append(l),u(v,l),he(v,function(t,e){t.hsides=x(e,!0)}),he(v,function(t,e){e.width(Math.max(0,t.outerWidth-t.hsides))}),he(v,function(t,e){t.outerHeight=e.outerHeight(!0)}),f(v,r),v}function a(t){for(var e=[],n=0;t.length>n;n++){var r=o(t[n]);e.push.apply(e,r)}return e}function o(t){for(var e=t.start,n=C(t),r=ee(e,n),a=0;r.length>a;a++)r[a].event=t;return r}function i(t){for(var e=T("isRTL"),n=0;t.length>n;n++){var r=t[n],a=(e?r.isEnd:r.isStart)?V:X,o=(e?r.isStart:r.isEnd)?U:J,i=a(r.leftCol),s=o(r.rightCol);r.left=i,r.outerWidth=s-i}}function s(t){for(var e="",n=0;t.length>n;n++)e+=c(t[n]);return e}function c(t){var e="",n=T("isRTL"),r=t.event,a=r.url,o=["fc-event","fc-event-hori"];H(r)&&o.push("fc-event-draggable"),t.isStart&&o.push("fc-event-start"),t.isEnd&&o.push("fc-event-end"),o=o.concat(r.className),r.source&&(o=o.concat(r.source.className||[]));var i=j(r,T);return e+=a?""+"
      ",!r.allDay&&t.isStart&&(e+=""+q(G(r.start,r.end,T("timeFormat")))+""),e+=""+q(r.title||"")+""+"
      ",t.isEnd&&F(r)&&(e+="
      "+"   "+"
      "),e+=""}function u(e,n){for(var r=0;e.length>r;r++){var a=e[r],o=a.event,i=n.eq(r),s=k("eventRender",o,o,i);s===!1?i.remove():(s&&s!==!0&&(s=t(s).css({position:"absolute",left:a.left}),i.replaceWith(s),i=s),a.element=i)}}function f(t,e){var n=v(t),r=y(),a=[];if(e)for(var o=0;r.length>o;o++)r[o].height(n[o]);for(var o=0;r.length>o;o++)a.push(r[o].position().top);he(t,function(t,e){e.css("top",a[t.row]+t.top)})}function v(t){for(var e=P(),n=B(),r=[],a=g(t),o=0;e>o;o++){for(var i=a[o],s=[],l=0;n>l;l++)s.push(0);for(var c=0;i.length>c;c++){var u=i[c];u.top=L(s.slice(u.leftCol,u.rightCol+1));for(var l=u.leftCol;u.rightCol>=l;l++)s[l]=u.top+u.outerHeight}r.push(L(s))}return r}function g(t){var e,n,r,a=P(),o=[];for(e=0;t.length>e;e++)n=t[e],r=n.row,n.element&&(o[r]?o[r].push(n):o[r]=[n]);for(r=0;a>r;r++)o[r]=p(o[r]||[]);return o}function p(t){for(var e=[],n=m(t),r=0;n.length>r;r++)e.push.apply(e,n[r]);return e}function m(t){t.sort(ge);for(var e=[],n=0;t.length>n;n++){for(var r=t[n],a=0;e.length>a&&ve(r,e[a]);a++);e[a]?e[a].push(r):e[a]=[r]}return e}function y(){var t,e=P(),n=[];for(t=0;e>t;t++)n[t]=I(t).find("div.fc-day-content > div");return n}function w(t,e){var n=Z();he(t,function(t,n,r){var a=t.event;a._id===e?b(a,n,t):n[0]._fci=r}),E(n,t,b)}function b(t,e,n){H(t)&&S.draggableDayEvent(t,e,n),n.isEnd&&F(t)&&S.resizableDayEvent(t,e,n),z(t,e)}function D(t,e){var n,r=te();e.draggable({delay:50,opacity:T("dragOpacity"),revertDuration:T("dragRevertDuration"),start:function(a,o){k("eventDragStart",e,t,a,o),A(t,e),r.start(function(r,a,o,i){if(e.draggable("option","revert",!r||!o&&!i),Q(),r){var s=ne(a),c=ne(r);n=h(c,s),$(l(d(t.start),n),l(C(t),n))}else n=0},a,"drag")},stop:function(a,o){r.stop(),Q(),k("eventDragStop",e,t,a,o),n?O(this,t,n,0,t.allDay,a,o):(e.css("filter",""),W(t,e))}})}function M(e,r,a){var o=T("isRTL"),i=o?"w":"e",s=r.find(".ui-resizable-"+i),c=!1;Y(r),r.mousedown(function(t){t.preventDefault()}).click(function(t){c&&(t.preventDefault(),t.stopImmediatePropagation())}),s.mousedown(function(o){function s(n){k("eventResizeStop",this,e,n),t("body").css("cursor",""),u.stop(),Q(),f&&_(this,e,f,0,n),setTimeout(function(){c=!1},0)}if(1==o.which){c=!0;var u=te();P(),B();var f,d,v=r.css("top"),h=t.extend({},e),g=ie(oe(e.start));K(),t("body").css("cursor",i+"-resize").one("mouseup",s),k("eventResizeStart",this,e,o),u.start(function(r,o){if(r){var s=re(o),c=re(r);if(c=Math.max(c,g),f=ae(c)-ae(s)){h.end=l(R(e),f,!0);var u=d;d=n(h,a.row,v),d=t(d),d.find("*").css("cursor",i+"-resize"),u&&u.remove(),A(e)}else d&&(W(e),d.remove(),d=null);Q(),$(e.start,l(C(e),f))}},o)}})}var S=this;S.renderDayEvents=e,S.draggableDayEvent=D,S.resizableDayEvent=M;var T=S.opt,k=S.trigger,H=S.isEventDraggable,F=S.isEventResizable,R=S.eventEnd,N=S.reportEventElement,z=S.eventElementHandlers,W=S.showEvents,A=S.hideEvents,O=S.eventDrop,_=S.eventResize,P=S.getRowCnt,B=S.getColCnt;S.getColWidth;var I=S.allDayRow,X=S.colLeft,J=S.colRight,V=S.colContentLeft,U=S.colContentRight;S.dateToCell;var Z=S.getDaySegmentContainer,G=S.calendar.formatDates,$=S.renderDayOverlay,Q=S.clearOverlays,K=S.clearSelection,te=S.getHoverListener,ee=S.rangeToSegments,ne=S.cellToDate,re=S.cellToCellOffset,ae=S.cellOffsetToDayOffset,oe=S.dateToDayOffset,ie=S.dayOffsetToCellOffset}function ve(t,e){for(var n=0;e.length>n;n++){var r=e[n];if(r.leftCol<=t.rightCol&&r.rightCol>=t.leftCol)return!0}return!1}function he(t,e){for(var n=0;t.length>n;n++){var r=t[n],a=r.element;a&&e(r,a,n)}}function ge(t,e){return e.rightCol-e.leftCol-(t.rightCol-t.leftCol)||e.event.allDay-t.event.allDay||t.event.start-e.event.start||(t.event.title||"").localeCompare(e.event.title)}function pe(){function e(t,e,a){n(),e||(e=l(t,a)),c(t,e,a),r(t,e,a)}function n(t){f&&(f=!1,u(),s("unselect",null,t))}function r(t,e,n,r){f=!0,s("select",null,t,e,n,r)}function a(e){var a=o.cellToDate,s=o.getIsCellAllDay,l=o.getHoverListener(),f=o.reportDayClick;if(1==e.which&&i("selectable")){n(e);var d;l.start(function(t,e){u(),t&&s(t)?(d=[a(e),a(t)].sort(O),c(d[0],d[1],!0)):d=null},e),t(document).one("mouseup",function(t){l.stop(),d&&(+d[0]==+d[1]&&f(d[0],!0,t),r(d[0],d[1],!0,t))})}}var o=this;o.select=e,o.unselect=n,o.reportSelection=r,o.daySelectionMousedown=a;var i=o.opt,s=o.trigger,l=o.defaultSelectionEnd,c=o.renderSelection,u=o.clearSelection,f=!1;i("selectable")&&i("unselectAuto")&&t(document).mousedown(function(e){var r=i("unselectCancel");r&&t(e.target).parents(r).length||n(e)})}function me(){function e(e,n){var r=o.shift();return r||(r=t("
      ")),r[0].parentNode!=n[0]&&r.appendTo(n),a.push(r.css(e).show()),r}function n(){for(var t;t=a.shift();)o.push(t.hide().unbind())}var r=this;r.renderOverlay=e,r.clearOverlays=n;var a=[],o=[]}function ye(t){var e,n,r=this;r.build=function(){e=[],n=[],t(e,n)},r.cell=function(t,r){var a,o=e.length,i=n.length,s=-1,l=-1;for(a=0;o>a;a++)if(r>=e[a][0]&&e[a][1]>r){s=a;break}for(a=0;i>a;a++)if(t>=n[a][0]&&n[a][1]>t){l=a;break}return s>=0&&l>=0?{row:s,col:l}:null},r.rect=function(t,r,a,o,i){var s=i.offset();return{top:e[t][0]-s.top,left:n[r][0]-s.left,width:n[o][1]-n[r][0],height:e[a][1]-e[t][0]}}}function we(e){function n(t){be(t);var n=e.cell(t.pageX,t.pageY);(!n!=!i||n&&(n.row!=i.row||n.col!=i.col))&&(n?(o||(o=n),a(n,o,n.row-o.row,n.col-o.col)):a(n,o),i=n)}var r,a,o,i,s=this;s.start=function(s,l,c){a=s,o=i=null,e.build(),n(l),r=c||"mousemove",t(document).bind(r,n)},s.stop=function(){return t(document).unbind(r,n),i}}function be(t){t.pageX===e&&(t.pageX=t.originalEvent.pageX,t.pageY=t.originalEvent.pageY)}function De(t){function n(e){return a[e]=a[e]||t(e)}var r=this,a={},o={},i={};r.left=function(t){return o[t]=o[t]===e?n(t).position().left:o[t]},r.right=function(t){return i[t]=i[t]===e?r.left(t)+n(t).width():i[t]},r.clear=function(){a={},o={},i={}}}var Ce={defaultView:"month",aspectRatio:1.35,header:{left:"title",center:"",right:"today prev,next"},weekends:!0,weekNumbers:!1,weekNumberCalculation:"iso",weekNumberTitle:"W",allDayDefault:!0,ignoreTimezone:!0,lazyFetching:!0,startParam:"start",endParam:"end",titleFormat:{month:"MMMM yyyy",week:"MMM d[ yyyy]{ '—'[ MMM] d yyyy}",day:"dddd, MMM d, yyyy"},columnFormat:{month:"ddd",week:"ddd M/d",day:"dddd M/d"},timeFormat:{"":"h(:mm)t"},isRTL:!1,firstDay:0,monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],buttonText:{prev:"",next:"",prevYear:"«",nextYear:"»",today:"today",month:"month",week:"week",day:"day"},theme:!1,buttonIcons:{prev:"circle-triangle-w",next:"circle-triangle-e"},unselectAuto:!0,dropAccept:"*",handleWindowResize:!0},Me={header:{left:"next,prev today",center:"",right:"title"},buttonText:{prev:"",next:"",prevYear:"»",nextYear:"«"},buttonIcons:{prev:"circle-triangle-e",next:"circle-triangle-w"}},Ee=t.fullCalendar={version:"1.6.4"},Se=Ee.views={};t.fn.fullCalendar=function(n){if("string"==typeof n){var a,o=Array.prototype.slice.call(arguments,1);return this.each(function(){var r=t.data(this,"fullCalendar");if(r&&t.isFunction(r[n])){var i=r[n].apply(r,o);a===e&&(a=i),"destroy"==n&&t.removeData(this,"fullCalendar")}}),a!==e?a:this}n=n||{};var i=n.eventSources||[];return delete n.eventSources,n.events&&(i.push(n.events),delete n.events),n=t.extend(!0,{},Ce,n.isRTL||n.isRTL===e&&Ce.isRTL?Me:{},n),this.each(function(e,a){var o=t(a),s=new r(o,n,i);o.data("fullCalendar",s),s.render()}),this},Ee.sourceNormalizers=[],Ee.sourceFetchers=[];var Te={dataType:"json",cache:!1},xe=1;Ee.addDays=l,Ee.cloneDate=d,Ee.parseDate=p,Ee.parseISO8601=m,Ee.parseTime=y,Ee.formatDate=w,Ee.formatDates=b;var ke=["sun","mon","tue","wed","thu","fri","sat"],He=864e5,Fe=36e5,Re=6e4,Ne={s:function(t){return t.getSeconds()},ss:function(t){return _(t.getSeconds())},m:function(t){return t.getMinutes()},mm:function(t){return _(t.getMinutes())},h:function(t){return t.getHours()%12||12},hh:function(t){return _(t.getHours()%12||12)},H:function(t){return t.getHours()},HH:function(t){return _(t.getHours())},d:function(t){return t.getDate()},dd:function(t){return _(t.getDate())},ddd:function(t,e){return e.dayNamesShort[t.getDay()]},dddd:function(t,e){return e.dayNames[t.getDay()]},M:function(t){return t.getMonth()+1},MM:function(t){return _(t.getMonth()+1)},MMM:function(t,e){return e.monthNamesShort[t.getMonth()]},MMMM:function(t,e){return e.monthNames[t.getMonth()]},yy:function(t){return(t.getFullYear()+"").substring(2)},yyyy:function(t){return t.getFullYear()},t:function(t){return 12>t.getHours()?"a":"p"},tt:function(t){return 12>t.getHours()?"am":"pm"},T:function(t){return 12>t.getHours()?"A":"P"},TT:function(t){return 12>t.getHours()?"AM":"PM"},u:function(t){return w(t,"yyyy-MM-dd'T'HH:mm:ss'Z'")},S:function(t){var e=t.getDate();return e>10&&20>e?"th":["st","nd","rd"][e%10-1]||"th"},w:function(t,e){return e.weekNumberCalculation(t)},W:function(t){return D(t)}};Ee.dateFormatters=Ne,Ee.applyAll=I,Se.month=J,Se.basicWeek=V,Se.basicDay=U,n({weekMode:"fixed"}),Se.agendaWeek=$,Se.agendaDay=Q,n({allDaySlot:!0,allDayText:"all-day",firstHour:6,slotMinutes:30,defaultEventMinutes:120,axisFormat:"h(:mm)tt",timeFormat:{agenda:"h:mm{ - h:mm}"},dragOpacity:{agenda:.5},minTime:0,maxTime:24,slotEventOverlap:!0})})(jQuery); \ No newline at end of file +!function(t){"function"==typeof define&&define.amd?define(["jquery","moment"],t):"object"==typeof exports?module.exports=t(require("jquery"),require("moment")):t(jQuery,moment)}(function(t,e){function n(t){return q(t,qt)}function i(t,e){e.left&&t.css({"border-left-width":1,"margin-left":e.left-1}),e.right&&t.css({"border-right-width":1,"margin-right":e.right-1})}function r(t){t.css({"margin-left":"","margin-right":"","border-left-width":"","border-right-width":""})}function s(){t("body").addClass("fc-not-allowed")}function o(){t("body").removeClass("fc-not-allowed")}function l(e,n,i){var r=Math.floor(n/e.length),s=Math.floor(n-r*(e.length-1)),o=[],l=[],u=[],d=0;a(e),e.each(function(n,i){var a=n===e.length-1?s:r,c=t(i).outerHeight(!0);c *").each(function(e,i){var r=t(i).outerWidth();r>n&&(n=r)}),n++,e.width(n),n}function d(t,e){var n,i=t.add(e);return i.css({position:"relative",left:-1}),n=t.outerHeight()-e.outerHeight(),i.css({position:"",left:""}),n}function c(e){var n=e.css("position"),i=e.parents().filter(function(){var e=t(this);return/(auto|scroll)/.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==n&&i.length?i:t(e[0].ownerDocument||document)}function h(t,e){var n=t.offset(),i=n.left-(e?e.left:0),r=n.top-(e?e.top:0);return{left:i,right:i+t.outerWidth(),top:r,bottom:r+t.outerHeight()}}function f(t,e){var n=t.offset(),i=p(t),r=n.left+y(t,"border-left-width")+i.left-(e?e.left:0),s=n.top+y(t,"border-top-width")+i.top-(e?e.top:0);return{left:r,right:r+t[0].clientWidth,top:s,bottom:s+t[0].clientHeight}}function g(t,e){var n=t.offset(),i=n.left+y(t,"border-left-width")+y(t,"padding-left")-(e?e.left:0),r=n.top+y(t,"border-top-width")+y(t,"padding-top")-(e?e.top:0);return{left:i,right:i+t.width(),top:r,bottom:r+t.height()}}function p(t){var e=t.innerWidth()-t[0].clientWidth,n={left:0,right:0,top:0,bottom:t.innerHeight()-t[0].clientHeight};return v()&&"rtl"==t.css("direction")?n.left=e:n.right=e,n}function v(){return null===Zt&&(Zt=m()),Zt}function m(){var e=t("
      ").css({position:"absolute",top:-1e3,left:0,border:0,padding:0,overflow:"scroll",direction:"rtl"}).appendTo("body"),n=e.children(),i=n.offset().left>e.offset().left;return e.remove(),i}function y(t,e){return parseFloat(t.css(e))||0}function S(t){return 1==t.which&&!t.ctrlKey}function w(t){if(void 0!==t.pageX)return t.pageX;var e=t.originalEvent.touches;return e?e[0].pageX:void 0}function E(t){if(void 0!==t.pageY)return t.pageY;var e=t.originalEvent.touches;return e?e[0].pageY:void 0}function D(t){return/^touch/.test(t.type)}function b(t){t.addClass("fc-unselectable").on("selectstart",C)}function C(t){t.preventDefault()}function H(t){return!!window.addEventListener&&(window.addEventListener("scroll",t,!0),!0)}function T(t){return!!window.removeEventListener&&(window.removeEventListener("scroll",t,!0),!0)}function x(t,e){var n={left:Math.max(t.left,e.left),right:Math.min(t.right,e.right),top:Math.max(t.top,e.top),bottom:Math.min(t.bottom,e.bottom)};return n.lefta&&o=a?(n=o.clone(),r=!0):(n=a.clone(),r=!1),l<=u?(i=l.clone(),s=!0):(i=u.clone(),s=!1),{start:n,end:i,isStart:r,isEnd:s}}function N(t,n){return e.duration({days:t.clone().stripTime().diff(n.clone().stripTime(),"days"),ms:t.time()-n.time()})}function G(t,n){return e.duration({days:t.clone().stripTime().diff(n.clone().stripTime(),"days")})}function A(t,n,i){return e.duration(Math.round(t.diff(n,i,!0)),i)}function O(t,e){var n,i,r;for(n=0;n=1&&ot(r)));n++);return i}function V(t,n,i){return null!=i?i.diff(n,t,!0):e.isDuration(n)?n.as(t):n.end.diff(n.start,t,!0)}function P(t,e,n){var i;return W(n)?(e-t)/n:(i=n.asMonths(),Math.abs(i)>=1&&ot(i)?e.diff(t,"months",!0)/i:e.diff(t,"days",!0)/n.asDays())}function _(t,e){var n,i;return W(t)||W(e)?t/e:(n=t.asMonths(),i=e.asMonths(),Math.abs(n)>=1&&ot(n)&&Math.abs(i)>=1&&ot(i)?n/i:t.asDays()/e.asDays())}function Y(t,n){var i;return W(t)?e.duration(t*n):(i=t.asMonths(),Math.abs(i)>=1&&ot(i)?e.duration({months:i*n}):e.duration({days:t.asDays()*n}))}function W(t){return Boolean(t.hours()||t.minutes()||t.seconds()||t.milliseconds())}function j(t){return"[object Date]"===Object.prototype.toString.call(t)||t instanceof Date}function U(t){return/^\d+\:\d+(?:\:\d+\.?(?:\d{3})?)?$/.test(t)}function q(t,e){var n,i,r,s,o,l,a={};if(e)for(n=0;n=0;s--)if(o=t[s][i],"object"==typeof o)r.unshift(o);else if(void 0!==o){a[i]=o;break}r.length&&(a[i]=q(r))}for(n=t.length-1;n>=0;n--){l=t[n];for(i in l)i in a||(a[i]=l[i])}return a}function Z(t){var e=function(){};return e.prototype=t,new e}function $(t,e){for(var n in t)X(t,n)&&(e[n]=t[n])}function X(t,e){return Kt.call(t,e)}function K(e){return/undefined|null|boolean|number|string/.test(t.type(e))}function Q(e,n,i){if(t.isFunction(e)&&(e=[e]),e){var r,s;for(r=0;r/g,">").replace(/'/g,"'").replace(/"/g,""").replace(/\n/g,"
      ")}function et(t){return t.replace(/&.*?;/g,"")}function nt(e){var n=[];return t.each(e,function(t,e){null!=e&&n.push(t+":"+e)}),n.join(";")}function it(e){var n=[];return t.each(e,function(t,e){null!=e&&n.push(t+'="'+tt(e)+'"')}),n.join(" ")}function rt(t){return t.charAt(0).toUpperCase()+t.slice(1)}function st(t,e){return t-e}function ot(t){return t%1===0}function lt(t,e){var n=t[e];return function(){return n.apply(t,arguments)}}function at(t,e,n){var i,r,s,o,l,a=function(){var u=+new Date-o;uo&&(s=mt(t,e,u,d,n[l]),s!==!1);l--)h=s+h;for(a=o;a<=l;a++)f+=gt(t,n[a]),g+=gt(e,n[a]);return(f||g)&&(p=r?g+i+f:f+i+g),c+p+h}function mt(t,e,n,i,r){var s,o;return"string"==typeof r?r:!!((s=r.token)&&(o=re[s.charAt(0)],o&&n.isSame(i,o)))&&ct(t,s)}function yt(t){return t in se?se[t]:se[t]=St(t)}function St(t){for(var e,n=[],i=/\[([^\]]*)\]|\(([^\)]*)\)|(LTS|LT|(\w)\4*o?)|([^\w\[\(]+)/g;e=i.exec(t);)e[1]?n.push(e[1]):e[2]?n.push({maybe:St(e[2])}):e[3]?n.push({token:e[3]}):e[5]&&n.push(e[5]);return n}function wt(){}function Et(t,e){var n;return X(e,"constructor")&&(n=e.constructor),"function"!=typeof n&&(n=e.constructor=function(){t.apply(this,arguments)}),n.prototype=Z(t.prototype),$(e,n.prototype),$(t,n),n}function Dt(t,e){$(e,t.prototype)}function bt(t,e){return!t&&!e||!(!t||!e)&&(t.component===e.component&&Ct(t,e)&&Ct(e,t))}function Ct(t,e){for(var n in t)if(!/^(component|left|right|top|bottom)$/.test(n)&&t[n]!==e[n])return!1;return!0}function Ht(t){return{start:t.start.clone(),end:t.end?t.end.clone():null,allDay:t.allDay}}function Tt(t){var e=Rt(t);return"background"===e||"inverse-background"===e}function xt(t){return"inverse-background"===Rt(t)}function Rt(t){return J((t.source||{}).rendering,t.rendering)}function It(t){var e,n,i={};for(e=0;e=t.leftCol)return!0;return!1}function Bt(t,e){return t.leftCol-e.leftCol}function zt(t){var e,n,i,r=[];for(e=0;ee.top&&t.top").prependTo(n),q=j.header=new _t(j),l(),d(j.options.defaultView),j.options.handleWindowResize&&(J=at(m,j.options.windowResizeDelay),t(window).resize(J))}function l(){q.render(),q.el&&n.prepend(q.el)}function a(){K&&K.removeElement(),q.removeElement(),$.remove(),n.removeClass("fc fc-ltr fc-rtl fc-unthemed ui-widget"),n.off(".fc"),J&&t(window).unbind("resize",J)}function u(){return n.is(":visible")}function d(e,n){lt++,K&&e&&K.type!==e&&(A(),c()),!K&&e&&(K=j.view=ot[e]||(ot[e]=j.instantiateView(e)),K.setElement(t("
      ").appendTo($)),q.activateButton(e)),K&&(tt=K.massageCurrentDate(tt),K.displaying&&tt>=K.intervalStart&&tt=K.intervalStart&&t"),h.append(r("left")).append(r("right")).append(r("center")).append('
      ')):i()}function i(){h&&(h.remove(),h=c.el=null)}function r(n){var i=t('
      '),r=e.options,s=r.header[n];return s&&t.each(s.split(" "),function(n){var s,o=t(),l=!0;t.each(this.split(","),function(n,i){var s,a,u,d,c,h,p,v,m,y;"title"==i?(o=o.add(t("

       

      ")),l=!1):((s=(r.customButtons||{})[i])?(u=function(t){s.click&&s.click.call(y[0],t)},d="",c=s.text):(a=e.getViewSpec(i))?(u=function(){e.changeView(i)},g.push(i),d=a.buttonTextOverride,c=a.buttonTextDefault):e[i]&&(u=function(){e[i]()},d=(e.overrides.buttonText||{})[i],c=r.buttonText[i]),u&&(h=s?s.themeIcon:r.themeButtonIcons[i],p=s?s.icon:r.buttonIcons[i],v=d?tt(d):h&&r.theme?"":p&&!r.theme?"":tt(c),m=["fc-"+i+"-button",f+"-button",f+"-state-default"],y=t('").click(function(t){y.hasClass(f+"-state-disabled")||(u(t),(y.hasClass(f+"-state-active")||y.hasClass(f+"-state-disabled"))&&y.removeClass(f+"-state-hover"))}).mousedown(function(){y.not("."+f+"-state-active").not("."+f+"-state-disabled").addClass(f+"-state-down")}).mouseup(function(){y.removeClass(f+"-state-down")}).hover(function(){y.not("."+f+"-state-active").not("."+f+"-state-disabled").addClass(f+"-state-hover")},function(){y.removeClass(f+"-state-hover").removeClass(f+"-state-down")}),o=o.add(y)))}),l&&o.first().addClass(f+"-corner-left").end().last().addClass(f+"-corner-right").end(),o.length>1?(s=t("
      "),l&&s.addClass("fc-button-group"),s.append(o),i.append(s)):i.append(o)}),i}function s(t){h&&h.find("h2").text(t)}function o(t){h&&h.find(".fc-"+t+"-button").addClass(f+"-state-active")}function l(t){h&&h.find(".fc-"+t+"-button").removeClass(f+"-state-active")}function a(t){h&&h.find(".fc-"+t+"-button").prop("disabled",!0).addClass(f+"-state-disabled")}function u(t){h&&h.find(".fc-"+t+"-button").prop("disabled",!1).removeClass(f+"-state-disabled")}function d(){return g}var c=this;c.render=n,c.removeElement=i,c.updateTitle=s,c.activateButton=o,c.deactivateButton=l,c.disableButton=a,c.enableButton=u,c.getViewsWithButtons=d,c.el=null;var h,f,g=[]}function Yt(){function n(t,e){return!O||tV}function i(t,e){O=t,V=e,r(Y,"reset")}function r(t,e){var n,i;for("reset"===e?j=[]:"add"!==e&&(j=w(j,t)),n=0;nr.value)&&(r=i));return r?r.unit:null},jt.Class=wt,wt.extend=function(){var t,e,n=arguments.length;for(t=0;t').addClass(n.className||"").css({top:0,left:0}).append(n.content).appendTo(n.parentEl),this.el.on("click",".fc-close",function(){e.hide()}),n.autoHide&&this.listenTo(t(document),"mousedown",this.documentMousedown)},documentMousedown:function(e){this.el&&!t(e.target).closest(this.el).length&&this.hide()},removeElement:function(){this.hide(),this.el&&(this.el.remove(),this.el=null),this.stopListeningTo(t(document),"mousedown")},position:function(){var e,n,i,r,s,o=this.options,l=this.el.offsetParent().offset(),a=this.el.outerWidth(),u=this.el.outerHeight(),d=t(window),h=c(this.el);r=o.top||0,s=void 0!==o.left?o.left:void 0!==o.right?o.right-a:0,h.is(window)||h.is(document)?(h=d,e=0,n=0):(i=h.offset(),e=i.top,n=i.left),e+=d.scrollTop(),n+=d.scrollLeft(),o.viewportConstrain!==!1&&(r=Math.min(r,e+h.outerHeight()-u-this.margin),r=Math.max(r,e+this.margin),s=Math.min(s,n+h.outerWidth()-a-this.margin),s=Math.max(s,n+this.margin)),this.el.css({top:r-l.top,left:s-l.left})},trigger:function(t){this.options[t]&&this.options[t].apply(this,Array.prototype.slice.call(arguments,1))}}),ce=jt.CoordCache=wt.extend({els:null,forcedOffsetParentEl:null,origin:null,boundingRect:null,isHorizontal:!1,isVertical:!1,lefts:null,rights:null,tops:null,bottoms:null,constructor:function(e){this.els=t(e.els),this.isHorizontal=e.isHorizontal,this.isVertical=e.isVertical,this.forcedOffsetParentEl=e.offsetParent?t(e.offsetParent):null},build:function(){var t=this.forcedOffsetParentEl||this.els.eq(0).offsetParent();this.origin=t.offset(),this.boundingRect=this.queryBoundingRect(),this.isHorizontal&&this.buildElHorizontals(),this.isVertical&&this.buildElVerticals()},clear:function(){this.origin=null,this.boundingRect=null,this.lefts=null,this.rights=null,this.tops=null,this.bottoms=null},ensureBuilt:function(){this.origin||this.build()},buildElHorizontals:function(){var e=[],n=[];this.els.each(function(i,r){var s=t(r),o=s.offset().left,l=s.outerWidth();e.push(o),n.push(o+l)}),this.lefts=e,this.rights=n},buildElVerticals:function(){var e=[],n=[];this.els.each(function(i,r){var s=t(r),o=s.offset().top,l=s.outerHeight();e.push(o),n.push(o+l)}),this.tops=e,this.bottoms=n},getHorizontalIndex:function(t){this.ensureBuilt();var e,n=this.lefts,i=this.rights,r=n.length;for(e=0;e=n[e]&&t=n[e]&&t=this.boundingRect.left&&t=this.boundingRect.top&&t=r*r&&this.handleDistanceSurpassed(t)),this.isDragging&&this.handleDrag(n,i,t)},handleDrag:function(t,e,n){this.trigger("drag",t,e,n),this.updateAutoScroll(n)},endDrag:function(t){this.isDragging&&(this.isDragging=!1,this.handleDragEnd(t))},handleDragEnd:function(t){this.trigger("dragEnd",t)},startDelay:function(t){var e=this;this.delay?this.delayTimeoutId=setTimeout(function(){e.handleDelayEnd(t)},this.delay):this.handleDelayEnd(t)},handleDelayEnd:function(t){this.isDelayEnded=!0,this.isDistanceSurpassed&&this.startDrag(t)},handleDistanceSurpassed:function(t){this.isDistanceSurpassed=!0,this.isDelayEnded&&this.startDrag(t)},handleTouchMove:function(t){this.isDragging&&t.preventDefault(),this.handleMove(t)},handleMouseMove:function(t){this.handleMove(t)},handleTouchScroll:function(t){this.isDragging||this.endInteraction(t,!0)},trigger:function(t){this.options[t]&&this.options[t].apply(this,Array.prototype.slice.call(arguments,1)),this["_"+t]&&this["_"+t].apply(this,Array.prototype.slice.call(arguments,1))}});he.mixin({isAutoScroll:!1,scrollBounds:null,scrollTopVel:null,scrollLeftVel:null,scrollIntervalId:null,scrollSensitivity:30,scrollSpeed:200,scrollIntervalMs:50,initAutoScroll:function(){var t=this.scrollEl;this.isAutoScroll=this.options.scroll&&t&&!t.is(window)&&!t.is(document),this.isAutoScroll&&this.listenTo(t,"scroll",at(this.handleDebouncedScroll,100))},destroyAutoScroll:function(){this.endAutoScroll(),this.isAutoScroll&&this.stopListeningTo(this.scrollEl,"scroll")},computeScrollBounds:function(){this.isAutoScroll&&(this.scrollBounds=h(this.scrollEl))},updateAutoScroll:function(t){var e,n,i,r,s=this.scrollSensitivity,o=this.scrollBounds,l=0,a=0;o&&(e=(s-(E(t)-o.top))/s,n=(s-(o.bottom-E(t)))/s,i=(s-(w(t)-o.left))/s,r=(s-(o.right-w(t)))/s,e>=0&&e<=1?l=e*this.scrollSpeed*-1:n>=0&&n<=1&&(l=n*this.scrollSpeed),i>=0&&i<=1?a=i*this.scrollSpeed*-1:r>=0&&r<=1&&(a=r*this.scrollSpeed)),this.setScrollVel(l,a)},setScrollVel:function(t,e){this.scrollTopVel=t,this.scrollLeftVel=e,this.constrainScrollVel(),!this.scrollTopVel&&!this.scrollLeftVel||this.scrollIntervalId||(this.scrollIntervalId=setInterval(lt(this,"scrollIntervalFunc"),this.scrollIntervalMs))},constrainScrollVel:function(){var t=this.scrollEl;this.scrollTopVel<0?t.scrollTop()<=0&&(this.scrollTopVel=0):this.scrollTopVel>0&&t.scrollTop()+t[0].clientHeight>=t[0].scrollHeight&&(this.scrollTopVel=0),this.scrollLeftVel<0?t.scrollLeft()<=0&&(this.scrollLeftVel=0):this.scrollLeftVel>0&&t.scrollLeft()+t[0].clientWidth>=t[0].scrollWidth&&(this.scrollLeftVel=0)},scrollIntervalFunc:function(){var t=this.scrollEl,e=this.scrollIntervalMs/1e3;this.scrollTopVel&&t.scrollTop(t.scrollTop()+this.scrollTopVel*e),this.scrollLeftVel&&t.scrollLeft(t.scrollLeft()+this.scrollLeftVel*e),this.constrainScrollVel(),this.scrollTopVel||this.scrollLeftVel||this.endAutoScroll()},endAutoScroll:function(){this.scrollIntervalId&&(clearInterval(this.scrollIntervalId),this.scrollIntervalId=null,this.handleScrollEnd())},handleDebouncedScroll:function(){this.scrollIntervalId||this.handleScrollEnd()},handleScrollEnd:function(){}});var fe=he.extend({component:null,origHit:null,hit:null,coordAdjust:null,constructor:function(t,e){he.call(this,e),this.component=t},handleInteractionStart:function(t){var e,n,i,r=this.subjectEl;this.computeCoords(),t?(n={left:w(t),top:E(t)},i=n,r&&(e=h(r),i=R(i,e)),this.origHit=this.queryHit(i.left,i.top),r&&this.options.subjectCenter&&(this.origHit&&(e=x(this.origHit,e)||e),i=I(e)),this.coordAdjust=k(i,n)):(this.origHit=null,this.coordAdjust=null),he.prototype.handleInteractionStart.apply(this,arguments)},computeCoords:function(){this.component.prepareHits(),this.computeScrollBounds()},handleDragStart:function(t){var e;he.prototype.handleDragStart.apply(this,arguments),e=this.queryHit(w(t),E(t)),e&&this.handleHitOver(e)},handleDrag:function(t,e,n){var i;he.prototype.handleDrag.apply(this,arguments),i=this.queryHit(w(n),E(n)),bt(i,this.hit)||(this.hit&&this.handleHitOut(),i&&this.handleHitOver(i))},handleDragEnd:function(){this.handleHitDone(),he.prototype.handleDragEnd.apply(this,arguments)},handleHitOver:function(t){var e=bt(t,this.origHit);this.hit=t,this.trigger("hitOver",this.hit,e,this.origHit)},handleHitOut:function(){this.hit&&(this.trigger("hitOut",this.hit),this.handleHitDone(),this.hit=null)},handleHitDone:function(){this.hit&&this.trigger("hitDone",this.hit)},handleInteractionEnd:function(){he.prototype.handleInteractionEnd.apply(this,arguments),this.origHit=null,this.hit=null,this.component.releaseHits()},handleScrollEnd:function(){he.prototype.handleScrollEnd.apply(this,arguments),this.computeCoords()},queryHit:function(t,e){return this.coordAdjust&&(t+=this.coordAdjust.left,e+=this.coordAdjust.top),this.component.queryHit(t,e)}}),ge=wt.extend(ae,{options:null,sourceEl:null,el:null,parentEl:null,top0:null,left0:null,y0:null,x0:null,topDelta:null,leftDelta:null,isFollowing:!1,isHidden:!1,isAnimating:!1,constructor:function(e,n){this.options=n=n||{},this.sourceEl=e,this.parentEl=n.parentEl?t(n.parentEl):e.parent()},start:function(e){this.isFollowing||(this.isFollowing=!0,this.y0=E(e),this.x0=w(e),this.topDelta=0,this.leftDelta=0,this.isHidden||this.updatePosition(),D(e)?this.listenTo(t(document),"touchmove",this.handleMove):this.listenTo(t(document),"mousemove",this.handleMove))},stop:function(e,n){function i(){r.isAnimating=!1,r.removeElement(),r.top0=r.left0=null,n&&n()}var r=this,s=this.options.revertDuration;this.isFollowing&&!this.isAnimating&&(this.isFollowing=!1,this.stopListeningTo(t(document)),e&&s&&!this.isHidden?(this.isAnimating=!0,this.el.animate({top:this.top0,left:this.left0},{duration:s,complete:i})):i())},getEl:function(){var t=this.el;return t||(t=this.el=this.sourceEl.clone().addClass(this.options.additionalClass||"").css({position:"absolute",visibility:"",display:this.isHidden?"none":"",margin:0,right:"auto",bottom:"auto",width:this.sourceEl.width(),height:this.sourceEl.height(),opacity:this.options.opacity||"",zIndex:this.options.zIndex}),t.addClass("fc-unselectable"),t.appendTo(this.parentEl)),t},removeElement:function(){this.el&&(this.el.remove(),this.el=null)},updatePosition:function(){var t,e;this.getEl(),null===this.top0&&(t=this.sourceEl.offset(),e=this.el.offsetParent().offset(),this.top0=t.top-e.top,this.left0=t.left-e.left),this.el.css({top:this.top0+this.topDelta,left:this.left0+this.leftDelta})},handleMove:function(t){this.topDelta=E(t)-this.y0,this.leftDelta=w(t)-this.x0,this.isHidden||this.updatePosition()},hide:function(){this.isHidden||(this.isHidden=!0,this.el&&this.el.hide())},show:function(){this.isHidden&&(this.isHidden=!1,this.updatePosition(),this.getEl().show())}}),pe=jt.Grid=wt.extend(ae,ue,{hasDayInteractions:!0,view:null,isRTL:null,start:null,end:null,el:null,elsByFill:null,eventTimeFormat:null,displayEventTime:null,displayEventEnd:null,minResizeDuration:null,largeUnit:null,dayDragListener:null,segDragListener:null,segResizeListener:null,externalDragListener:null,constructor:function(t){this.view=t,this.isRTL=t.opt("isRTL"),this.elsByFill={},this.dayDragListener=this.buildDayDragListener(),this.initMouseIgnoring()},computeEventTimeFormat:function(){return this.view.opt("smallTimeFormat")},computeDisplayEventTime:function(){return!0},computeDisplayEventEnd:function(){return!0},setRange:function(t){this.start=t.start.clone(),this.end=t.end.clone(),this.rangeUpdated(),this.processRangeOptions()},rangeUpdated:function(){},processRangeOptions:function(){var t,e,n=this.view;this.eventTimeFormat=n.opt("eventTimeFormat")||n.opt("timeFormat")||this.computeEventTimeFormat(),t=n.opt("displayEventTime"),null==t&&(t=this.computeDisplayEventTime()),e=n.opt("displayEventEnd"),null==e&&(e=this.computeDisplayEventEnd()),this.displayEventTime=t,this.displayEventEnd=e},spanToSegs:function(t){},diffDates:function(t,e){return this.largeUnit?A(t,e,this.largeUnit):N(t,e)},prepareHits:function(){},releaseHits:function(){},queryHit:function(t,e){},getHitSpan:function(t){},getHitEl:function(t){},setElement:function(t){this.el=t,this.hasDayInteractions&&(b(t),this.bindDayHandler("touchstart",this.dayTouchStart),this.bindDayHandler("mousedown",this.dayMousedown)),this.bindSegHandlers(),this.bindGlobalHandlers()},bindDayHandler:function(e,n){var i=this;this.el.on(e,function(e){if(!t(e.target).is(i.segSelector+","+i.segSelector+" *,.fc-more,a[data-goto]"))return n.call(i,e)})},removeElement:function(){this.unbindGlobalHandlers(),this.clearDragListeners(),this.el.remove()},renderSkeleton:function(){},renderDates:function(){},unrenderDates:function(){},bindGlobalHandlers:function(){this.listenTo(t(document),{dragstart:this.externalDragStart,sortstart:this.externalDragStart})},unbindGlobalHandlers:function(){this.stopListeningTo(t(document))},dayMousedown:function(t){this.isIgnoringMouse||this.dayDragListener.startInteraction(t,{})},dayTouchStart:function(t){var e=this.view;(e.isSelected||e.selectedEvent)&&this.tempIgnoreMouse(),this.dayDragListener.startInteraction(t,{delay:this.view.opt("longPressDelay")})},buildDayDragListener:function(){var t,e,n=this,i=this.view,r=i.opt("selectable"),l=new fe(this,{scroll:i.opt("dragScroll"),interactionStart:function(){t=l.origHit,e=null},dragStart:function(){i.unselect()},hitOver:function(i,o,l){l&&(o||(t=null),r&&(e=n.computeSelection(n.getHitSpan(l),n.getHitSpan(i)),e?n.renderSelection(e):e===!1&&s()))},hitOut:function(){t=null,e=null,n.unrenderSelection()},hitDone:function(){o()},interactionEnd:function(r,s){s||(t&&!n.isIgnoringMouse&&i.triggerDayClick(n.getHitSpan(t),n.getHitEl(t),r),e&&i.reportSelection(e,r))}});return l},clearDragListeners:function(){this.dayDragListener.endInteraction(),this.segDragListener&&this.segDragListener.endInteraction(),this.segResizeListener&&this.segResizeListener.endInteraction(),this.externalDragListener&&this.externalDragListener.endInteraction()},renderEventLocationHelper:function(t,e){var n=this.fabricateHelperEvent(t,e);return this.renderHelper(n,e)},fabricateHelperEvent:function(t,e){var n=e?Z(e.event):{};return n.start=t.start.clone(),n.end=t.end?t.end.clone():null,n.allDay=null,this.view.calendar.normalizeEventDates(n),n.className=(n.className||[]).concat("fc-helper"),e||(n.editable=!1),n},renderHelper:function(t,e){},unrenderHelper:function(){},renderSelection:function(t){this.renderHighlight(t)},unrenderSelection:function(){this.unrenderHighlight()},computeSelection:function(t,e){var n=this.computeSelectionSpan(t,e);return!(n&&!this.view.calendar.isSelectionSpanAllowed(n))&&n},computeSelectionSpan:function(t,e){var n=[t.start,t.end,e.start,e.end];return n.sort(st),{start:n[0].clone(),end:n[3].clone()}},renderHighlight:function(t){this.renderFill("highlight",this.spanToSegs(t))},unrenderHighlight:function(){this.unrenderFill("highlight")},highlightSegClasses:function(){return["fc-highlight"]},renderBusinessHours:function(){},unrenderBusinessHours:function(){},getNowIndicatorUnit:function(){},renderNowIndicator:function(t){},unrenderNowIndicator:function(){},renderFill:function(t,e){},unrenderFill:function(t){var e=this.elsByFill[t];e&&(e.remove(),delete this.elsByFill[t])},renderFillSegEls:function(e,n){var i,r=this,s=this[e+"SegEl"],o="",l=[];if(n.length){for(i=0;i"},getDayClasses:function(t){var e=this.view,n=e.calendar.getNow(),i=["fc-"+$t[t.day()]];return 1==e.intervalDuration.as("months")&&t.month()!=e.intervalStart.month()&&i.push("fc-other-month"),t.isSame(n,"day")?i.push("fc-today",e.highlightStateClass):t *",mousedOverSeg:null,isDraggingSeg:!1,isResizingSeg:!1,isDraggingExternal:!1,segs:null,renderEvents:function(t){var e,n=[],i=[];for(e=0;el&&o.push({start:l,end:n.start}),l=n.end;return l=e.length?e[e.length-1]+1:e[n]},computeColHeadFormat:function(){return this.rowCnt>1||this.colCnt>10?"ddd":this.colCnt>1?this.view.opt("dayOfMonthFormat"):"dddd"},sliceRangeByRow:function(t){var e,n,i,r,s,o=this.daysPerRow,l=this.view.computeDayRange(t),a=this.getDateDayIndex(l.start),u=this.getDateDayIndex(l.end.clone().subtract(1,"days")),d=[];for(e=0;e'+this.renderHeadTrHtml()+"
      "},renderHeadIntroHtml:function(){return this.renderIntroHtml()},renderHeadTrHtml:function(){return""+(this.isRTL?"":this.renderHeadIntroHtml())+this.renderHeadDateCellsHtml()+(this.isRTL?this.renderHeadIntroHtml():"")+""},renderHeadDateCellsHtml:function(){var t,e,n=[];for(t=0;t1?' colspan="'+e+'"':"")+(n?" "+n:"")+">"+i.buildGotoAnchorHtml({date:t,forceOff:this.rowCnt>1||1===this.colCnt},tt(t.format(this.colHeadFormat)))+""},renderBgTrHtml:function(t){return""+(this.isRTL?"":this.renderBgIntroHtml(t))+this.renderBgCellsHtml(t)+(this.isRTL?this.renderBgIntroHtml(t):"")+""},renderBgIntroHtml:function(t){return this.renderIntroHtml()},renderBgCellsHtml:function(t){var e,n,i=[];for(e=0;e"},renderIntroHtml:function(){},bookendCells:function(t){var e=this.renderIntroHtml();e&&(this.isRTL?t.append(e):t.prepend(e))}},me=jt.DayGrid=pe.extend(ve,{numbersVisible:!1,bottomCoordPadding:0,rowEls:null,cellEls:null,helperEls:null,rowCoordCache:null,colCoordCache:null,renderDates:function(t){var e,n,i=this.view,r=this.rowCnt,s=this.colCnt,o="";for(e=0;e
      '+this.renderBgTrHtml(t)+'
      '+(this.numbersVisible?""+this.renderNumberTrHtml(t)+"":"")+"
      "},renderNumberTrHtml:function(t){return""+(this.isRTL?"":this.renderNumberIntroHtml(t))+this.renderNumberCellsHtml(t)+(this.isRTL?this.renderNumberIntroHtml(t):"")+""},renderNumberIntroHtml:function(t){return this.renderIntroHtml()},renderNumberCellsHtml:function(t){var e,n,i=[];for(e=0;e',this.view.cellWeekNumbersVisible&&t.day()==n&&(i+=this.view.buildGotoAnchorHtml({date:t,type:"week"},{class:"fc-week-number"},t.format("w"))),this.view.dayNumbersVisible&&(i+=this.view.buildGotoAnchorHtml(t,{class:"fc-day-number"},t.date())),i+=""):""},computeEventTimeFormat:function(){return this.view.opt("extraSmallTimeFormat")},computeDisplayEventEnd:function(){return 1==this.colCnt},rangeUpdated:function(){this.updateDayTable()},spanToSegs:function(t){var e,n,i=this.sliceRangeByRow(t);for(e=0;e');o=n&&n.row===e?n.el.position().top:l.find(".fc-content-skeleton tbody").position().top,a.css("top",o).find("table").append(i[e].tbodyEl),l.append(a),r.push(a[0])}),this.helperEls=t(r)},unrenderHelper:function(){this.helperEls&&(this.helperEls.remove(),this.helperEls=null)},fillSegTag:"td",renderFill:function(e,n,i){var r,s,o,l=[];for(n=this.renderFillSegEls(e,n),r=0;r
      '),s=r.find("tr"),l>0&&s.append(''),s.append(n.el.attr("colspan",a-l)),a'),this.bookendCells(s),r}});me.mixin({rowStructs:null,unrenderEvents:function(){this.removeSegPopover(),pe.prototype.unrenderEvents.apply(this,arguments)},getEventSegs:function(){return pe.prototype.getEventSegs.call(this).concat(this.popoverSegs||[])},renderBgSegs:function(e){var n=t.grep(e,function(t){return t.event.allDay});return pe.prototype.renderBgSegs.call(this,n)},renderFgSegs:function(e){var n;return e=this.renderFgSegEls(e),n=this.rowStructs=this.renderSegRows(e),this.rowEls.each(function(e,i){t(i).find(".fc-content-skeleton > table").append(n[e].tbodyEl)}),e},unrenderFgSegs:function(){for(var t,e=this.rowStructs||[];t=e.pop();)t.tbodyEl.remove();this.rowStructs=null},renderSegRows:function(t){var e,n,i=[];for(e=this.groupSegRows(t),n=0;n'+tt(n)+"")),i=''+(tt(s.title||"")||" ")+"",'
      '+(this.isRTL?i+" "+c:c+" "+i)+"
      "+(l?'
      ':"")+(a?'
      ':"")+""},renderSegRow:function(e,n){function i(e){for(;o"),l.append(d)),v[r][o]=d,m[r][o]=d,o++}var r,s,o,l,a,u,d,c=this.colCnt,h=this.buildSegLevels(n),f=Math.max(1,h.length),g=t(""),p=[],v=[],m=[];for(r=0;r"),p.push([]),v.push([]),m.push([]),s)for(a=0;a').append(u.el),u.leftCol!=u.rightCol?d.attr("colspan",u.rightCol-u.leftCol+1):m[r][o]=d;o<=u.rightCol;)v[r][o]=d,p[r][o]=u,o++;l.append(d)}i(c),this.bookendCells(l),g.append(l)}return{row:e,tbodyEl:g,cellMatrix:v,segMatrix:p,segLevels:h,segs:n}},buildSegLevels:function(t){var e,n,i,r=[];for(this.sortEventSegs(t),e=0;e td > :first-child").each(n),r.position().top+s>l)return i;return!1},limitRow:function(e,n){function i(i){for(;D").append(y),h.append(m),E.push(m[0])),D++}var r,s,o,l,a,u,d,c,h,f,g,p,v,m,y,S=this,w=this.rowStructs[e],E=[],D=0;if(n&&n').attr("rowspan",f),u=c[p],y=this.renderMoreLink(e,a.leftCol+p,[a].concat(u)),m=t("
      ").append(y),v.append(m),g.push(v[0]),E.push(v[0]);h.addClass("fc-limited").after(t(g)),o.push(h[0])}}i(this.colCnt),w.moreEls=t(E),w.limitedEls=t(o)}},unlimitRow:function(t){var e=this.rowStructs[t];e.moreEls&&(e.moreEls.remove(),e.moreEls=null),e.limitedEls&&(e.limitedEls.removeClass("fc-limited"),e.limitedEls=null)},renderMoreLink:function(e,n,i){var r=this,s=this.view;return t('').text(this.getMoreLinkText(i.length)).on("click",function(o){var l=s.opt("eventLimitClick"),a=r.getCellDate(e,n),u=t(this),d=r.getCellEl(e,n),c=r.getCellSegs(e,n),h=r.resliceDaySegs(c,a),f=r.resliceDaySegs(i,a);"function"==typeof l&&(l=s.trigger("eventLimitClick",null,{date:a,dayEl:d,moreEl:u,segs:h,hiddenSegs:f},o)),"popover"===l?r.showSegPopover(e,n,u,h):"string"==typeof l&&s.calendar.zoomTo(a,l)})},showSegPopover:function(t,e,n,i){var r,s,o=this,l=this.view,a=n.parent();r=1==this.rowCnt?l.el:this.rowEls.eq(t),s={className:"fc-more-popover",content:this.renderSegPopoverContent(t,e,i),parentEl:this.view.el,top:r.offset().top,autoHide:!0,viewportConstrain:l.opt("popoverViewportConstrain"),hide:function(){o.segPopover.removeElement(),o.segPopover=null,o.popoverSegs=null}},this.isRTL?s.right=a.offset().left+a.outerWidth()+1:s.left=a.offset().left-1,this.segPopover=new de(s),this.segPopover.show(),this.bindSegHandlersToEl(this.segPopover.el)},renderSegPopoverContent:function(e,n,i){var r,s=this.view,o=s.opt("theme"),l=this.getCellDate(e,n).format(s.opt("dayPopoverFormat")),a=t('
      '+tt(l)+'
      '),u=a.find(".fc-event-container");for(i=this.renderFgSegEls(i,!0),this.popoverSegs=i,r=0;r'+this.renderBgTrHtml(0)+'
      '+this.renderSlatRowHtml()+"
      "},renderSlatRowHtml:function(){for(var t,n,i,r=this.view,s=this.isRTL,o="",l=e.duration(+this.minTime);l"+(n?""+tt(t.format(this.labelFormat))+"":"")+"",o+='"+(s?"":i)+''+(s?i:"")+"",l.add(this.slotDuration);return o},processOptions:function(){var n,i=this.view,r=i.opt("slotDuration"),s=i.opt("snapDuration");r=e.duration(r),s=s?e.duration(s):r,this.slotDuration=r,this.snapDuration=s,this.snapsPerSlot=r/s,this.minResizeDuration=s,this.minTime=e.duration(i.opt("minTime")),this.maxTime=e.duration(i.opt("maxTime")),n=i.opt("slotLabelFormat"),t.isArray(n)&&(n=n[n.length-1]),this.labelFormat=n||i.opt("smallTimeFormat"),n=i.opt("slotLabelInterval"),this.labelInterval=n?e.duration(n):this.computeLabelInterval(r)},computeLabelInterval:function(t){var n,i,r;for(n=Ne.length-1;n>=0;n--)if(i=e.duration(Ne[n]),r=_(i,t),ot(r)&&r>1)return i;return e.duration(t)},computeEventTimeFormat:function(){return this.view.opt("noMeridiemTimeFormat")},computeDisplayEventEnd:function(){return!0},prepareHits:function(){this.colCoordCache.build(),this.slatCoordCache.build()},releaseHits:function(){this.colCoordCache.clear()},queryHit:function(t,e){var n=this.snapsPerSlot,i=this.colCoordCache,r=this.slatCoordCache;if(i.isLeftInBounds(t)&&r.isTopInBounds(e)){var s=i.getHorizontalIndex(t),o=r.getVerticalIndex(e);if(null!=s&&null!=o){var l=r.getTopOffset(o),a=r.getHeight(o),u=(e-l)/a,d=Math.floor(u*n),c=o*n+d,h=l+d/n*a,f=l+(d+1)/n*a;return{col:s,snap:c,component:this,left:i.getLeftOffset(s),right:i.getRightOffset(s),top:h,bottom:f}}}},getHitSpan:function(t){var e,n=this.getCellDate(0,t.col),i=this.computeSnapTime(t.snap);return n.time(i),e=n.clone().add(this.snapDuration),{start:n,end:e}},getHitEl:function(t){return this.colEls.eq(t.col)},rangeUpdated:function(){this.updateDayTable()},computeSnapTime:function(t){return e.duration(this.minTime+this.snapDuration*t)},spanToSegs:function(t){var e,n=this.sliceRangeByTimes(t);for(e=0;e
      ').css("top",r).appendTo(this.colContainerEls.eq(i[n].col))[0]);i.length>0&&s.push(t('
      ').css("top",r).appendTo(this.el.find(".fc-content-skeleton"))[0]),this.nowIndicatorEls=t(s)},unrenderNowIndicator:function(){this.nowIndicatorEls&&(this.nowIndicatorEls.remove(),this.nowIndicatorEls=null)},renderSelection:function(t){this.view.opt("selectHelper")?this.renderEventLocationHelper(t):this.renderHighlight(t)},unrenderSelection:function(){this.unrenderHelper(),this.unrenderHighlight()},renderHighlight:function(t){this.renderHighlightSegs(this.spanToSegs(t))},unrenderHighlight:function(){this.unrenderHighlightSegs()}});ye.mixin({colContainerEls:null,fgContainerEls:null,bgContainerEls:null,helperContainerEls:null,highlightContainerEls:null,businessContainerEls:null,fgSegs:null,bgSegs:null,helperSegs:null,highlightSegs:null,businessSegs:null,renderContentSkeleton:function(){var e,n,i="";for(e=0;e
      ';n=t('
      '+i+"
      "),this.colContainerEls=n.find(".fc-content-col"),this.helperContainerEls=n.find(".fc-helper-container"),this.fgContainerEls=n.find(".fc-event-container:not(.fc-helper-container)"),this.bgContainerEls=n.find(".fc-bgevent-container"),this.highlightContainerEls=n.find(".fc-highlight-container"),this.businessContainerEls=n.find(".fc-business-container"),this.bookendCells(n.find("tr")),this.el.append(n)},renderFgSegs:function(t){return t=this.renderFgSegsIntoContainers(t,this.fgContainerEls),this.fgSegs=t,t},unrenderFgSegs:function(){this.unrenderNamedSegs("fgSegs")},renderHelperSegs:function(e,n){var i,r,s,o=[];for(e=this.renderFgSegsIntoContainers(e,this.helperContainerEls),i=0;i
      '+(n?'
      '+tt(n)+"
      ":"")+(o.title?'
      '+tt(o.title)+"
      ":"")+'
      '+(u?'
      ':"")+""},updateSegVerticals:function(t){this.computeSegVerticals(t),this.assignSegVerticals(t)},computeSegVerticals:function(t){var e,n;for(e=0;e1?"ll":"LL"},formatRange:function(t,e,n){var i=t.end;return i.hasTime()||(i=i.clone().subtract(1)),pt(t.start,i,e,n,this.opt("isRTL"))},getAllDayHtml:function(){return this.opt("allDayHtml")||tt(this.opt("allDayText"))},buildGotoAnchorHtml:function(e,n,i){var r,s,o,l;return t.isPlainObject(e)?(r=e.date,s=e.type,o=e.forceOff):r=e,r=jt.moment(r),l={date:r.format("YYYY-MM-DD"),type:s||"day"},"string"==typeof n&&(i=n,n=null),n=n?" "+it(n):"",i=i||"",!o&&this.opt("navLinks")?"'+i+"":""+i+""},setElement:function(t){this.el=t,this.bindGlobalHandlers()},removeElement:function(){this.clear(),this.isSkeletonRendered&&(this.unrenderSkeleton(),this.isSkeletonRendered=!1),this.unbindGlobalHandlers(),this.el.remove()},display:function(t,e){var n=this,i=null;return null!=e&&this.displaying&&(i=this.queryScroll()),this.calendar.freezeContentHeight(),ut(this.clear(),function(){return n.displaying=ut(n.displayView(t),function(){null!=e?n.setScroll(e):n.forceScroll(n.computeInitialScroll(i)),n.calendar.unfreezeContentHeight(),n.triggerRender()})})},clear:function(){var e=this,n=this.displaying;return n?ut(n,function(){return e.displaying=null,e.clearEvents(),e.clearView()}):t.when()},displayView:function(t){this.isSkeletonRendered||(this.renderSkeleton(),this.isSkeletonRendered=!0),t&&this.setDate(t),this.render&&this.render(),this.renderDates(),this.updateSize(),this.renderBusinessHours(),this.startNowIndicator()},clearView:function(){this.unselect(),this.stopNowIndicator(),this.triggerUnrender(),this.unrenderBusinessHours(),this.unrenderDates(),this.destroy&&this.destroy()},renderSkeleton:function(){},unrenderSkeleton:function(){},renderDates:function(){},unrenderDates:function(){},triggerRender:function(){this.trigger("viewRender",this,this,this.el)},triggerUnrender:function(){this.trigger("viewDestroy",this,this,this.el)},bindGlobalHandlers:function(){this.listenTo(t(document),"mousedown",this.handleDocumentMousedown),this.listenTo(t(document),"touchstart",this.processUnselect)},unbindGlobalHandlers:function(){this.stopListeningTo(t(document))},initThemingProps:function(){var t=this.opt("theme")?"ui":"fc";this.widgetHeaderClass=t+"-widget-header",this.widgetContentClass=t+"-widget-content",this.highlightStateClass=t+"-state-highlight"},renderBusinessHours:function(){},unrenderBusinessHours:function(){},startNowIndicator:function(){var t,n,i,r=this;this.opt("nowIndicator")&&(t=this.getNowIndicatorUnit(),t&&(n=lt(this,"updateNowIndicator"),this.initialNowDate=this.calendar.getNow(),this.initialNowQueriedMs=+new Date,this.renderNowIndicator(this.initialNowDate),this.isNowIndicatorRendered=!0,i=this.initialNowDate.clone().startOf(t).add(1,t)-this.initialNowDate,this.nowIndicatorTimeoutID=setTimeout(function(){r.nowIndicatorTimeoutID=null,n(),i=+e.duration(1,t),i=Math.max(100,i),r.nowIndicatorIntervalID=setInterval(n,i)},i)))},updateNowIndicator:function(){this.isNowIndicatorRendered&&(this.unrenderNowIndicator(),this.renderNowIndicator(this.initialNowDate.clone().add(new Date-this.initialNowQueriedMs)))},stopNowIndicator:function(){this.isNowIndicatorRendered&&(this.nowIndicatorTimeoutID&&(clearTimeout(this.nowIndicatorTimeoutID),this.nowIndicatorTimeoutID=null),this.nowIndicatorIntervalID&&(clearTimeout(this.nowIndicatorIntervalID),this.nowIndicatorIntervalID=null),this.unrenderNowIndicator(),this.isNowIndicatorRendered=!1)},getNowIndicatorUnit:function(){},renderNowIndicator:function(t){},unrenderNowIndicator:function(){},updateSize:function(t){var e;t&&(e=this.queryScroll()),this.updateHeight(t),this.updateWidth(t),this.updateNowIndicator(),t&&this.setScroll(e)},updateWidth:function(t){},updateHeight:function(t){var e=this.calendar;this.setHeight(e.getSuggestedViewHeight(),e.isHeightAuto())},setHeight:function(t,e){},computeInitialScroll:function(t){return 0},queryScroll:function(){},setScroll:function(t){},forceScroll:function(t){var e=this;this.setScroll(t),setTimeout(function(){e.setScroll(t)},0)},displayEvents:function(t){var e=this.queryScroll();this.clearEvents(),this.renderEvents(t),this.isEventsRendered=!0,this.setScroll(e),this.triggerEventRender()},clearEvents:function(){var t;this.isEventsRendered&&(t=this.queryScroll(),this.triggerEventUnrender(),this.destroyEvents&&this.destroyEvents(),this.unrenderEvents(),this.setScroll(t),this.isEventsRendered=!1)},renderEvents:function(t){},unrenderEvents:function(){},triggerEventRender:function(){this.renderedEventSegEach(function(t){this.trigger("eventAfterRender",t.event,t.event,t.el)}),this.trigger("eventAfterAllRender")},triggerEventUnrender:function(){this.renderedEventSegEach(function(t){this.trigger("eventDestroy",t.event,t.event,t.el)})},resolveEventEl:function(e,n){var i=this.trigger("eventRender",e,e,n);return i===!1?n=null:i&&i!==!0&&(n=t(i)),n},showEvent:function(t){this.renderedEventSegEach(function(t){t.el.css("visibility","")},t)},hideEvent:function(t){this.renderedEventSegEach(function(t){t.el.css("visibility","hidden")},t)},renderedEventSegEach:function(t,e){var n,i=this.getEventSegs();for(n=0;n=this.nextDayThreshold&&r.add(1,"days")),(!i||r<=n)&&(r=n.clone().add(1,"days")),{start:n,end:r}},isMultiDayEvent:function(t){var e=this.computeDayRange(t);return e.end.diff(e.start,"days")>1}}),we=jt.Scroller=wt.extend({el:null,scrollEl:null,overflowX:null,overflowY:null,constructor:function(t){t=t||{},this.overflowX=t.overflowX||t.overflow||"auto",this.overflowY=t.overflowY||t.overflow||"auto"},render:function(){this.el=this.renderEl(),this.applyOverflow()},renderEl:function(){return this.scrollEl=t('
      ')},clear:function(){this.setHeight("auto"),this.applyOverflow()},destroy:function(){this.el.remove()},applyOverflow:function(){this.scrollEl.css({"overflow-x":this.overflowX,"overflow-y":this.overflowY})},lockOverflow:function(t){var e=this.overflowX,n=this.overflowY;t=t||this.getScrollbarWidths(),"auto"===e&&(e=t.top||t.bottom||this.scrollEl[0].scrollWidth-1>this.scrollEl[0].clientWidth?"scroll":"hidden"),"auto"===n&&(n=t.left||t.right||this.scrollEl[0].scrollHeight-1>this.scrollEl[0].clientHeight?"scroll":"hidden"),this.scrollEl.css({"overflow-x":e,"overflow-y":n})},setHeight:function(t){this.scrollEl.height(t)},getScrollTop:function(){return this.scrollEl.scrollTop()},setScrollTop:function(t){this.scrollEl.scrollTop(t)},getClientWidth:function(){return this.scrollEl[0].clientWidth},getClientHeight:function(){return this.scrollEl[0].clientHeight},getScrollbarWidths:function(){return p(this.scrollEl)}}),Ee=jt.Calendar=wt.extend({dirDefaults:null,localeDefaults:null,overrides:null,dynamicOverrides:null,options:null,viewSpecCache:null,view:null,header:null,loadingLevel:0,constructor:Ot,initialize:function(){},populateOptionsHash:function(){var t,e,i,r;t=J(this.dynamicOverrides.locale,this.overrides.locale),e=De[t],e||(t=Ee.defaults.locale,e=De[t]||{}),i=J(this.dynamicOverrides.isRTL,this.overrides.isRTL,e.isRTL,Ee.defaults.isRTL),r=i?Ee.rtlDefaults:{},this.dirDefaults=r,this.localeDefaults=e,this.options=n([Ee.defaults,r,e,this.overrides,this.dynamicOverrides]),Vt(this.options)},getViewSpec:function(t){var e=this.viewSpecCache;return e[t]||(e[t]=this.buildViewSpec(t))},getUnitViewSpec:function(e){var n,i,r;if(t.inArray(e,Xt)!=-1)for(n=this.header.getViewsWithButtons(),t.each(jt.views,function(t){n.push(t)}),i=0;i=n&&e.end<=i},Ee.prototype.getPeerEvents=function(t,e){var n,i,r=this.getEventCache(),s=[];for(n=0;nn};var Re={id:"_fcBusinessHours",start:"09:00",end:"17:00",dow:[1,2,3,4,5],rendering:"inverse-background"};Ee.prototype.getCurrentBusinessHourEvents=function(t){return this.computeBusinessHourEvents(t,this.options.businessHours)},Ee.prototype.computeBusinessHourEvents=function(e,n){return n===!0?this.expandBusinessHourEvents(e,[{}]):t.isPlainObject(n)?this.expandBusinessHourEvents(e,[n]):t.isArray(n)?this.expandBusinessHourEvents(e,n,!0):[]},Ee.prototype.expandBusinessHourEvents=function(e,n,i){var r,s,o=this.getView(),l=[];for(r=0;r1,this.opt("weekNumbers")&&(this.opt("weekNumbersWithinDays")?(this.cellWeekNumbersVisible=!0,this.colWeekNumbersVisible=!1):(this.cellWeekNumbersVisible=!1,this.colWeekNumbersVisible=!0)),this.dayGrid.numbersVisible=this.dayNumbersVisible||this.cellWeekNumbersVisible||this.colWeekNumbersVisible,this.el.addClass("fc-basic-view").html(this.renderSkeletonHtml()),this.renderHead(),this.scroller.render();var e=this.scroller.el.addClass("fc-day-grid-container"),n=t('
      ').appendTo(e);this.el.find(".fc-body > tr > td").append(e),this.dayGrid.setElement(n),this.dayGrid.renderDates(this.hasRigidRows())},renderHead:function(){this.headContainerEl=this.el.find(".fc-head-container").html(this.dayGrid.renderHeadHtml()),this.headRowEl=this.headContainerEl.find(".fc-row")},unrenderDates:function(){this.dayGrid.unrenderDates(),this.dayGrid.removeElement(),this.scroller.destroy()},renderBusinessHours:function(){this.dayGrid.renderBusinessHours()},unrenderBusinessHours:function(){this.dayGrid.unrenderBusinessHours()},renderSkeletonHtml:function(){return'
      '},weekNumberStyleAttr:function(){return null!==this.weekNumberWidth?'style="width:'+this.weekNumberWidth+'px"':""},hasRigidRows:function(){var t=this.opt("eventLimit");return t&&"number"!=typeof t},updateWidth:function(){this.colWeekNumbersVisible&&(this.weekNumberWidth=u(this.el.find(".fc-week-number")))},setHeight:function(t,e){var n,s,o=this.opt("eventLimit");this.scroller.clear(),r(this.headRowEl),this.dayGrid.removeSegPopover(),o&&"number"==typeof o&&this.dayGrid.limitRows(o),n=this.computeScrollerHeight(t),this.setGridHeight(n,e),o&&"number"!=typeof o&&this.dayGrid.limitRows(o),e||(this.scroller.setHeight(n),s=this.scroller.getScrollbarWidths(),(s.left||s.right)&&(i(this.headRowEl,s),n=this.computeScrollerHeight(t),this.scroller.setHeight(n)),this.scroller.lockOverflow(s))},computeScrollerHeight:function(t){return t-d(this.el,this.scroller.el)},setGridHeight:function(t,e){e?a(this.dayGrid.rowEls):l(this.dayGrid.rowEls,t,!0)},queryScroll:function(){return this.scroller.getScrollTop()},setScroll:function(t){this.scroller.setScrollTop(t)},prepareHits:function(){this.dayGrid.prepareHits()},releaseHits:function(){this.dayGrid.releaseHits()},queryHit:function(t,e){return this.dayGrid.queryHit(t,e)},getHitSpan:function(t){return this.dayGrid.getHitSpan(t)},getHitEl:function(t){return this.dayGrid.getHitEl(t)},renderEvents:function(t){this.dayGrid.renderEvents(t),this.updateHeight()},getEventSegs:function(){return this.dayGrid.getEventSegs()},unrenderEvents:function(){this.dayGrid.unrenderEvents()},renderDrag:function(t,e){return this.dayGrid.renderDrag(t,e)},unrenderDrag:function(){this.dayGrid.unrenderDrag()},renderSelection:function(t){this.dayGrid.renderSelection(t)},unrenderSelection:function(){this.dayGrid.unrenderSelection()}}),ke={renderHeadIntroHtml:function(){var t=this.view;return t.colWeekNumbersVisible?'"+tt(t.opt("weekNumberTitle"))+"":""},renderNumberIntroHtml:function(t){var e=this.view,n=this.getCellDate(t,0);return e.colWeekNumbersVisible?'"+e.buildGotoAnchorHtml({date:n,type:"week",forceOff:1===this.colCnt},n.format("w"))+"":""},renderBgIntroHtml:function(){var t=this.view;return t.colWeekNumbersVisible?'":""},renderIntroHtml:function(){var t=this.view;return t.colWeekNumbersVisible?'":""}},Me=jt.MonthView=Ie.extend({computeRange:function(t){var e,n=Ie.prototype.computeRange.call(this,t);return this.isFixedWeeks()&&(e=Math.ceil(n.end.diff(n.start,"weeks",!0)),n.end.add(6-e,"weeks")),n},setGridHeight:function(t,e){e&&(t*=this.rowCnt/6),l(this.dayGrid.rowEls,t,!e)},isFixedWeeks:function(){return this.opt("fixedWeekCount")}});Ut.basic={class:Ie},Ut.basicDay={type:"basic",duration:{days:1}},Ut.basicWeek={type:"basic",duration:{weeks:1}},Ut.month={class:Me,duration:{months:1},defaults:{fixedWeekCount:!0}};var Le=jt.AgendaView=Se.extend({scroller:null,timeGridClass:ye,timeGrid:null,dayGridClass:me,dayGrid:null,axisWidth:null,headContainerEl:null,noScrollRowEls:null,bottomRuleEl:null,initialize:function(){this.timeGrid=this.instantiateTimeGrid(),this.opt("allDaySlot")&&(this.dayGrid=this.instantiateDayGrid()),this.scroller=new we({overflowX:"hidden",overflowY:"auto"})},instantiateTimeGrid:function(){var t=this.timeGridClass.extend(Be);return new t(this)},instantiateDayGrid:function(){var t=this.dayGridClass.extend(ze);return new t(this)},setRange:function(t){Se.prototype.setRange.call(this,t),this.timeGrid.setRange(t),this.dayGrid&&this.dayGrid.setRange(t)},renderDates:function(){this.el.addClass("fc-agenda-view").html(this.renderSkeletonHtml()),this.renderHead(),this.scroller.render();var e=this.scroller.el.addClass("fc-time-grid-container"),n=t('
      ').appendTo(e);this.el.find(".fc-body > tr > td").append(e),this.timeGrid.setElement(n),this.timeGrid.renderDates(),this.bottomRuleEl=t('
      ').appendTo(this.timeGrid.el),this.dayGrid&&(this.dayGrid.setElement(this.el.find(".fc-day-grid")),this.dayGrid.renderDates(),this.dayGrid.bottomCoordPadding=this.dayGrid.el.next("hr").outerHeight()),this.noScrollRowEls=this.el.find(".fc-row:not(.fc-scroller *)")},renderHead:function(){this.headContainerEl=this.el.find(".fc-head-container").html(this.timeGrid.renderHeadHtml())},unrenderDates:function(){this.timeGrid.unrenderDates(),this.timeGrid.removeElement(),this.dayGrid&&(this.dayGrid.unrenderDates(),this.dayGrid.removeElement()),this.scroller.destroy()},renderSkeletonHtml:function(){return'
      '+(this.dayGrid?'

      ':"")+"
      "},axisStyleAttr:function(){return null!==this.axisWidth?'style="width:'+this.axisWidth+'px"':""},renderBusinessHours:function(){this.timeGrid.renderBusinessHours(),this.dayGrid&&this.dayGrid.renderBusinessHours()},unrenderBusinessHours:function(){this.timeGrid.unrenderBusinessHours(),this.dayGrid&&this.dayGrid.unrenderBusinessHours()},getNowIndicatorUnit:function(){return this.timeGrid.getNowIndicatorUnit()},renderNowIndicator:function(t){this.timeGrid.renderNowIndicator(t)},unrenderNowIndicator:function(){this.timeGrid.unrenderNowIndicator()},updateSize:function(t){this.timeGrid.updateSize(t),Se.prototype.updateSize.call(this,t)},updateWidth:function(){this.axisWidth=u(this.el.find(".fc-axis"))},setHeight:function(t,e){var n,s,o;this.bottomRuleEl.hide(),this.scroller.clear(),r(this.noScrollRowEls),this.dayGrid&&(this.dayGrid.removeSegPopover(),n=this.opt("eventLimit"),n&&"number"!=typeof n&&(n=Fe),n&&this.dayGrid.limitRows(n)),e||(s=this.computeScrollerHeight(t),this.scroller.setHeight(s),o=this.scroller.getScrollbarWidths(),(o.left||o.right)&&(i(this.noScrollRowEls,o),s=this.computeScrollerHeight(t),this.scroller.setHeight(s)),this.scroller.lockOverflow(o),this.timeGrid.getTotalSlatHeight()"+e.buildGotoAnchorHtml({date:this.start,type:"week",forceOff:this.colCnt>1},tt(t))+""):'"},renderBgIntroHtml:function(){var t=this.view;return'"},renderIntroHtml:function(){var t=this.view;return'"}},ze={renderBgIntroHtml:function(){var t=this.view;return'"+t.getAllDayHtml()+""},renderIntroHtml:function(){var t=this.view;return'"}},Fe=5,Ne=[{hours:1},{minutes:30},{minutes:15},{seconds:30},{seconds:15}];Ut.agenda={class:Le,defaults:{allDaySlot:!0,slotDuration:"00:30:00",minTime:"00:00:00",maxTime:"24:00:00",slotEventOverlap:!0}},Ut.agendaDay={type:"agenda",duration:{days:1}},Ut.agendaWeek={type:"agenda",duration:{weeks:1}};var Ge=Se.extend({grid:null,scroller:null,initialize:function(){this.grid=new Ae(this),this.scroller=new we({overflowX:"hidden",overflowY:"auto"})},setRange:function(t){Se.prototype.setRange.call(this,t),this.grid.setRange(t)},renderSkeleton:function(){this.el.addClass("fc-list-view "+this.widgetContentClass),this.scroller.render(),this.scroller.el.appendTo(this.el),this.grid.setElement(this.scroller.scrollEl)},unrenderSkeleton:function(){this.scroller.destroy()},setHeight:function(t,e){this.scroller.setHeight(this.computeScrollerHeight(t))},computeScrollerHeight:function(t){return t-d(this.el,this.scroller.el)},renderEvents:function(t){this.grid.renderEvents(t)},unrenderEvents:function(){this.grid.unrenderEvents()},isEventResizable:function(t){return!1},isEventDraggable:function(t){return!1}}),Ae=pe.extend({segSelector:".fc-list-item",hasDayInteractions:!1,spanToSegs:function(t){for(var e,n=this.view,i=n.start.clone().time(0),r=0,s=[];i
      '+tt(this.view.opt("noEventsMessage"))+"
      ")},renderSegList:function(e){var n,i,r,s=this.groupSegsByDay(e),o=t('
      '),l=o.find("tbody");for(n=0;n'+(n?e.buildGotoAnchorHtml(t,{class:"fc-list-heading-main"},tt(t.format(n))):"")+(i?e.buildGotoAnchorHtml(t,{class:"fc-list-heading-alt"},tt(t.format(i))):"")+""},fgSegHtml:function(t){var e,n=this.view,i=["fc-list-item"].concat(this.getSegCustomClasses(t)),r=this.getSegBackgroundColor(t),s=t.event,o=s.url;return e=s.allDay?n.getAllDayHtml():n.isMultiDayEvent(s)?t.isStart||t.isEnd?tt(this.getEventTimeText(t)):n.getAllDayHtml():tt(this.getEventTimeText(s)),o&&i.push("fc-has-url"),''+(this.displayEventTime?''+(e||"")+"":"")+'"+tt(t.event.title||"")+""}});return Ut.list={class:Ge,buttonTextKey:"list",defaults:{buttonText:"list",listDayFormat:"LL",noEventsMessage:"No events to display"}},Ut.listDay={type:"list",duration:{days:1},defaults:{listDayFormat:"dddd"}},Ut.listWeek={type:"list",duration:{weeks:1},defaults:{listDayFormat:"dddd",listDayAltFormat:"LL"}},Ut.listMonth={type:"list",duration:{month:1},defaults:{listDayAltFormat:"dddd"}},Ut.listYear={type:"list",duration:{year:1},defaults:{listDayAltFormat:"dddd"}},jt}); \ No newline at end of file diff --git a/library/fullcalendar/fullcalendar.print.css b/library/fullcalendar/fullcalendar.print.css index 43607199d..bfa910b3c 100644 --- a/library/fullcalendar/fullcalendar.print.css +++ b/library/fullcalendar/fullcalendar.print.css @@ -1,7 +1,7 @@ /*! - * FullCalendar v1.6.4 Print Stylesheet - * Docs & License: http://arshaw.com/fullcalendar/ - * (c) 2013 Adam Shaw + * FullCalendar v3.0.1 Print Stylesheet + * Docs & License: http://fullcalendar.io/ + * (c) 2016 Adam Shaw */ /* @@ -9,24 +9,200 @@ * When including this stylesheet, use the media='print' attribute of the tag. * Make sure to include this stylesheet IN ADDITION to the regular fullcalendar.css. */ - - - /* Events ------------------------------------------------------*/ - + +.fc { + max-width: 100% !important; +} + + +/* Global Event Restyling +--------------------------------------------------------------------------------------------------*/ + .fc-event { background: #fff !important; color: #000 !important; - } - -/* for vertical events */ - -.fc-event-bg { + page-break-inside: avoid; +} + +.fc-event .fc-resizer { + display: none; +} + + +/* Table & Day-Row Restyling +--------------------------------------------------------------------------------------------------*/ + +.fc th, +.fc td, +.fc hr, +.fc thead, +.fc tbody, +.fc-row { + border-color: #ccc !important; + background: #fff !important; +} + +/* kill the overlaid, absolutely-positioned components */ +/* common... */ +.fc-bg, +.fc-bgevent-skeleton, +.fc-highlight-skeleton, +.fc-helper-skeleton, +/* for timegrid. within cells within table skeletons... */ +.fc-bgevent-container, +.fc-business-container, +.fc-highlight-container, +.fc-helper-container { + display: none; +} + +/* don't force a min-height on rows (for DayGrid) */ +.fc tbody .fc-row { + height: auto !important; /* undo height that JS set in distributeHeight */ + min-height: 0 !important; /* undo the min-height from each view's specific stylesheet */ +} + +.fc tbody .fc-row .fc-content-skeleton { + position: static; /* undo .fc-rigid */ + padding-bottom: 0 !important; /* use a more border-friendly method for this... */ +} + +.fc tbody .fc-row .fc-content-skeleton tbody tr:last-child td { /* only works in newer browsers */ + padding-bottom: 1em; /* ...gives space within the skeleton. also ensures min height in a way */ +} + +.fc tbody .fc-row .fc-content-skeleton table { + /* provides a min-height for the row, but only effective for IE, which exaggerates this value, + making it look more like 3em. for other browers, it will already be this tall */ + height: 1em; +} + + +/* Undo month-view event limiting. Display all events and hide the "more" links +--------------------------------------------------------------------------------------------------*/ + +.fc-more-cell, +.fc-more { display: none !important; - } - -.fc-event .ui-resizable-handle { - display: none !important; - } - - +} + +.fc tr.fc-limited { + display: table-row !important; +} + +.fc td.fc-limited { + display: table-cell !important; +} + +.fc-popover { + display: none; /* never display the "more.." popover in print mode */ +} + + +/* TimeGrid Restyling +--------------------------------------------------------------------------------------------------*/ + +/* undo the min-height 100% trick used to fill the container's height */ +.fc-time-grid { + min-height: 0 !important; +} + +/* don't display the side axis at all ("all-day" and time cells) */ +.fc-agenda-view .fc-axis { + display: none; +} + +/* don't display the horizontal lines */ +.fc-slats, +.fc-time-grid hr { /* this hr is used when height is underused and needs to be filled */ + display: none !important; /* important overrides inline declaration */ +} + +/* let the container that holds the events be naturally positioned and create real height */ +.fc-time-grid .fc-content-skeleton { + position: static; +} + +/* in case there are no events, we still want some height */ +.fc-time-grid .fc-content-skeleton table { + height: 4em; +} + +/* kill the horizontal spacing made by the event container. event margins will be done below */ +.fc-time-grid .fc-event-container { + margin: 0 !important; +} + + +/* TimeGrid *Event* Restyling +--------------------------------------------------------------------------------------------------*/ + +/* naturally position events, vertically stacking them */ +.fc-time-grid .fc-event { + position: static !important; + margin: 3px 2px !important; +} + +/* for events that continue to a future day, give the bottom border back */ +.fc-time-grid .fc-event.fc-not-end { + border-bottom-width: 1px !important; +} + +/* indicate the event continues via "..." text */ +.fc-time-grid .fc-event.fc-not-end:after { + content: "..."; +} + +/* for events that are continuations from previous days, give the top border back */ +.fc-time-grid .fc-event.fc-not-start { + border-top-width: 1px !important; +} + +/* indicate the event is a continuation via "..." text */ +.fc-time-grid .fc-event.fc-not-start:before { + content: "..."; +} + +/* time */ + +/* undo a previous declaration and let the time text span to a second line */ +.fc-time-grid .fc-event .fc-time { + white-space: normal !important; +} + +/* hide the the time that is normally displayed... */ +.fc-time-grid .fc-event .fc-time span { + display: none; +} + +/* ...replace it with a more verbose version (includes AM/PM) stored in an html attribute */ +.fc-time-grid .fc-event .fc-time:after { + content: attr(data-full); +} + + +/* Vertical Scroller & Containers +--------------------------------------------------------------------------------------------------*/ + +/* kill the scrollbars and allow natural height */ +.fc-scroller, +.fc-day-grid-container, /* these divs might be assigned height, which we need to cleared */ +.fc-time-grid-container { /* */ + overflow: visible !important; + height: auto !important; +} + +/* kill the horizontal border/padding used to compensate for scrollbars */ +.fc-row { + border: 0 !important; + margin: 0 !important; +} + + +/* Button Controls +--------------------------------------------------------------------------------------------------*/ + +.fc-button-group, +.fc button { + display: none; /* don't display any button-related controls */ +} diff --git a/library/fullcalendar/gcal.js b/library/fullcalendar/gcal.js index 164422762..dfe6fa905 100644 --- a/library/fullcalendar/gcal.js +++ b/library/fullcalendar/gcal.js @@ -1,107 +1,180 @@ /*! - * FullCalendar v1.6.4 Google Calendar Plugin - * Docs & License: http://arshaw.com/fullcalendar/ - * (c) 2013 Adam Shaw + * FullCalendar v3.0.1 Google Calendar Plugin + * Docs & License: http://fullcalendar.io/ + * (c) 2016 Adam Shaw */ -(function($) { +(function(factory) { + if (typeof define === 'function' && define.amd) { + define([ 'jquery' ], factory); + } + else if (typeof exports === 'object') { // Node/CommonJS + module.exports = factory(require('jquery')); + } + else { + factory(jQuery); + } +})(function($) { -var fc = $.fullCalendar; -var formatDate = fc.formatDate; -var parseISO8601 = fc.parseISO8601; -var addDays = fc.addDays; -var applyAll = fc.applyAll; +var API_BASE = 'https://www.googleapis.com/calendar/v3/calendars'; +var FC = $.fullCalendar; +var applyAll = FC.applyAll; -fc.sourceNormalizers.push(function(sourceOptions) { - if (sourceOptions.dataType == 'gcal' || - sourceOptions.dataType === undefined && - (sourceOptions.url || '').match(/^(http|https):\/\/www.google.com\/calendar\/feeds\//)) { - sourceOptions.dataType = 'gcal'; - if (sourceOptions.editable === undefined) { - sourceOptions.editable = false; - } +FC.sourceNormalizers.push(function(sourceOptions) { + var googleCalendarId = sourceOptions.googleCalendarId; + var url = sourceOptions.url; + var match; + + // if the Google Calendar ID hasn't been explicitly defined + if (!googleCalendarId && url) { + + // detect if the ID was specified as a single string. + // will match calendars like "asdf1234@calendar.google.com" in addition to person email calendars. + if (/^[^\/]+@([^\/\.]+\.)*(google|googlemail|gmail)\.com$/.test(url)) { + googleCalendarId = url; } -}); + // try to scrape it out of a V1 or V3 API feed URL + else if ( + (match = /^https:\/\/www.googleapis.com\/calendar\/v3\/calendars\/([^\/]*)/.exec(url)) || + (match = /^https?:\/\/www.google.com\/calendar\/feeds\/([^\/]*)/.exec(url)) + ) { + googleCalendarId = decodeURIComponent(match[1]); + } + + if (googleCalendarId) { + sourceOptions.googleCalendarId = googleCalendarId; + } + } -fc.sourceFetchers.push(function(sourceOptions, start, end) { - if (sourceOptions.dataType == 'gcal') { - return transformOptions(sourceOptions, start, end); + if (googleCalendarId) { // is this a Google Calendar? + + // make each Google Calendar source uneditable by default + if (sourceOptions.editable == null) { + sourceOptions.editable = false; + } + + // We want removeEventSource to work, but it won't know about the googleCalendarId primitive. + // Shoehorn it into the url, which will function as the unique primitive. Won't cause side effects. + // This hack is obsolete since 2.2.3, but keep it so this plugin file is compatible with old versions. + sourceOptions.url = googleCalendarId; } }); -function transformOptions(sourceOptions, start, end) { +FC.sourceFetchers.push(function(sourceOptions, start, end, timezone) { + if (sourceOptions.googleCalendarId) { + return transformOptions(sourceOptions, start, end, timezone, this); // `this` is the calendar + } +}); + +function transformOptions(sourceOptions, start, end, timezone, calendar) { + var url = API_BASE + '/' + encodeURIComponent(sourceOptions.googleCalendarId) + '/events?callback=?'; // jsonp + var apiKey = sourceOptions.googleCalendarApiKey || calendar.options.googleCalendarApiKey; var success = sourceOptions.success; - var data = $.extend({}, sourceOptions.data || {}, { - 'start-min': formatDate(start, 'u'), - 'start-max': formatDate(end, 'u'), - 'singleevents': true, - 'max-results': 9999 - }); - - var ctz = sourceOptions.currentTimezone; - if (ctz) { - data.ctz = ctz = ctz.replace(' ', '_'); + var data; + var timezoneArg; // populated when a specific timezone. escaped to Google's liking + + function reportError(message, apiErrorObjs) { + var errorObjs = apiErrorObjs || [ { message: message } ]; // to be passed into error handlers + + // call error handlers + (sourceOptions.googleCalendarError || $.noop).apply(calendar, errorObjs); + (calendar.options.googleCalendarError || $.noop).apply(calendar, errorObjs); + + // print error to debug console + FC.warn.apply(null, [ message ].concat(apiErrorObjs || [])); } + if (!apiKey) { + reportError("Specify a googleCalendarApiKey. See http://fullcalendar.io/docs/google_calendar/"); + return {}; // an empty source to use instead. won't fetch anything. + } + + // The API expects an ISO8601 datetime with a time and timezone part. + // Since the calendar's timezone offset isn't always known, request the date in UTC and pad it by a day on each + // side, guaranteeing we will receive all events in the desired range, albeit a superset. + // .utc() will set a zone and give it a 00:00:00 time. + if (!start.hasZone()) { + start = start.clone().utc().add(-1, 'day'); + } + if (!end.hasZone()) { + end = end.clone().utc().add(1, 'day'); + } + + // when sending timezone names to Google, only accepts underscores, not spaces + if (timezone && timezone != 'local') { + timezoneArg = timezone.replace(' ', '_'); + } + + data = $.extend({}, sourceOptions.data || {}, { + key: apiKey, + timeMin: start.format(), + timeMax: end.format(), + timeZone: timezoneArg, + singleEvents: true, + maxResults: 9999 + }); + return $.extend({}, sourceOptions, { - url: sourceOptions.url.replace(/\/basic$/, '/full') + '?alt=json-in-script&callback=?', - dataType: 'jsonp', + googleCalendarId: null, // prevents source-normalizing from happening again + url: url, data: data, - startParam: false, - endParam: false, + startParam: false, // `false` omits this parameter. we already included it above + endParam: false, // same + timezoneParam: false, // same success: function(data) { var events = []; - if (data.feed.entry) { - $.each(data.feed.entry, function(i, entry) { - var startStr = entry['gd$when'][0]['startTime']; - var start = parseISO8601(startStr, true); - var end = parseISO8601(entry['gd$when'][0]['endTime'], true); - var allDay = startStr.indexOf('T') == -1; - var url; - $.each(entry.link, function(i, link) { - if (link.type == 'text/html') { - url = link.href; - if (ctz) { - url += (url.indexOf('?') == -1 ? '?' : '&') + 'ctz=' + ctz; - } - } - }); - if (allDay) { - addDays(end, -1); // make inclusive + var successArgs; + var successRes; + + if (data.error) { + reportError('Google Calendar API: ' + data.error.message, data.error.errors); + } + else if (data.items) { + $.each(data.items, function(i, entry) { + var url = entry.htmlLink || null; + + // make the URLs for each event show times in the correct timezone + if (timezoneArg && url !== null) { + url = injectQsComponent(url, 'ctz=' + timezoneArg); } + events.push({ - id: entry['gCal$uid']['value'], - title: entry['title']['$t'], + id: entry.id, + title: entry.summary, + start: entry.start.dateTime || entry.start.date, // try timed. will fall back to all-day + end: entry.end.dateTime || entry.end.date, // same url: url, - start: start, - end: end, - allDay: allDay, - location: entry['gd$where'][0]['valueString'], - description: entry['content']['$t'] + location: entry.location, + description: entry.description }); }); + + // call the success handler(s) and allow it to return a new events array + successArgs = [ events ].concat(Array.prototype.slice.call(arguments, 1)); // forward other jq args + successRes = applyAll(success, this, successArgs); + if ($.isArray(successRes)) { + return successRes; + } } - var args = [events].concat(Array.prototype.slice.call(arguments, 1)); - var res = applyAll(success, this, args); - if ($.isArray(res)) { - return res; - } + return events; } }); - } -// legacy -fc.gcalFeed = function(url, sourceOptions) { - return $.extend({}, sourceOptions, { url: url, dataType: 'gcal' }); -}; +// Injects a string like "arg=value" into the querystring of a URL +function injectQsComponent(url, component) { + // inject it after the querystring but before the fragment + return url.replace(/(\?.*?)?(#|$)/, function(whole, qs, hash) { + return (qs ? qs + '&' : '?') + component + hash; + }); +} -})(jQuery); +}); diff --git a/library/fullcalendar/locale-all.js b/library/fullcalendar/locale-all.js new file mode 100644 index 000000000..8332f58fa --- /dev/null +++ b/library/fullcalendar/locale-all.js @@ -0,0 +1,5 @@ +!function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):"object"==typeof exports?module.exports=e(require("jquery"),require("moment")):e(jQuery,moment)}(function(e,a){!function(){!function(){var e={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},t={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},n=function(e){return 0===e?0:1===e?1:2===e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5},r={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},s=function(e){return function(a,t,s,d){var i=n(a),o=r[e][n(a)];return 2===i&&(o=o[t?0:1]),o.replace(/%d/i,a)}},d=["كانون الثاني يناير","شباط فبراير","آذار مارس","نيسان أبريل","أيار مايو","حزيران يونيو","تموز يوليو","آب أغسطس","أيلول سبتمبر","تشرين الأول أكتوبر","تشرين الثاني نوفمبر","كانون الأول ديسمبر"],i=a.defineLocale("ar",{months:d,monthsShort:d,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,a,t){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:s("s"),m:s("m"),mm:s("m"),h:s("h"),hh:s("h"),d:s("d"),dd:s("d"),M:s("M"),MM:s("M"),y:s("y"),yy:s("y")},preparse:function(e){return e.replace(/\u200f/g,"").replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(e){return t[e]}).replace(/،/g,",")},postformat:function(a){return a.replace(/\d/g,function(a){return e[a]}).replace(/,/g,"،")},week:{dow:6,doy:12}});return i}(),e.fullCalendar.datepickerLocale("ar","ar",{closeText:"إغلاق",prevText:"<السابق",nextText:"التالي>",currentText:"اليوم",monthNames:["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],monthNamesShort:["1","2","3","4","5","6","7","8","9","10","11","12"],dayNames:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],dayNamesShort:["أحد","اثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت"],dayNamesMin:["ح","ن","ث","ر","خ","ج","س"],weekHeader:"أسبوع",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!0,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("ar",{buttonText:{month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},allDayText:"اليوم كله",eventLimitText:"أخرى",noEventsMessage:"أي أحداث لعرض"})}(),function(){!function(){var e=a.defineLocale("ar-ma",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:6,doy:12}});return e}(),e.fullCalendar.datepickerLocale("ar-ma","ar",{closeText:"إغلاق",prevText:"<السابق",nextText:"التالي>",currentText:"اليوم",monthNames:["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],monthNamesShort:["1","2","3","4","5","6","7","8","9","10","11","12"],dayNames:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],dayNamesShort:["أحد","اثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت"],dayNamesMin:["ح","ن","ث","ر","خ","ج","س"],weekHeader:"أسبوع",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!0,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("ar-ma",{buttonText:{month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},allDayText:"اليوم كله",eventLimitText:"أخرى",noEventsMessage:"أي أحداث لعرض"})}(),function(){!function(){var e={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},t={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},n=a.defineLocale("ar-sa",{months:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,a,t){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},preparse:function(e){return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(e){return t[e]}).replace(/،/g,",")},postformat:function(a){return a.replace(/\d/g,function(a){return e[a]}).replace(/,/g,"،")},week:{dow:6,doy:12}});return n}(),e.fullCalendar.datepickerLocale("ar-sa","ar",{closeText:"إغلاق",prevText:"<السابق",nextText:"التالي>",currentText:"اليوم",monthNames:["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],monthNamesShort:["1","2","3","4","5","6","7","8","9","10","11","12"],dayNames:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],dayNamesShort:["أحد","اثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت"],dayNamesMin:["ح","ن","ث","ر","خ","ج","س"],weekHeader:"أسبوع",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!0,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("ar-sa",{buttonText:{month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},allDayText:"اليوم كله",eventLimitText:"أخرى",noEventsMessage:"أي أحداث لعرض"})}(),function(){!function(){var e=a.defineLocale("ar-tn",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:1,doy:4}});return e}(),e.fullCalendar.datepickerLocale("ar-tn","ar",{closeText:"إغلاق",prevText:"<السابق",nextText:"التالي>",currentText:"اليوم",monthNames:["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],monthNamesShort:["1","2","3","4","5","6","7","8","9","10","11","12"],dayNames:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],dayNamesShort:["أحد","اثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت"],dayNamesMin:["ح","ن","ث","ر","خ","ج","س"],weekHeader:"أسبوع",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!0,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("ar-tn",{buttonText:{month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},allDayText:"اليوم كله",eventLimitText:"أخرى",noEventsMessage:"أي أحداث لعرض"})}(),function(){!function(){var e=a.defineLocale("bg",{months:"януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември".split("_"),monthsShort:"янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек".split("_"),weekdays:"неделя_понеделник_вторник_сряда_четвъртък_петък_събота".split("_"),weekdaysShort:"нед_пон_вто_сря_чет_пет_съб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Днес в] LT",nextDay:"[Утре в] LT",nextWeek:"dddd [в] LT",lastDay:"[Вчера в] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[В изминалата] dddd [в] LT";case 1:case 2:case 4:case 5:return"[В изминалия] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"след %s",past:"преди %s",s:"няколко секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дни",M:"месец",MM:"%d месеца",y:"година",yy:"%d години"},ordinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(e){var a=e%10,t=e%100;return 0===e?e+"-ев":0===t?e+"-ен":t>10&&t<20?e+"-ти":1===a?e+"-ви":2===a?e+"-ри":7===a||8===a?e+"-ми":e+"-ти"},week:{dow:1,doy:7}});return e}(),e.fullCalendar.datepickerLocale("bg","bg",{closeText:"затвори",prevText:"<назад",nextText:"напред>",nextBigText:">>",currentText:"днес",monthNames:["Януари","Февруари","Март","Април","Май","Юни","Юли","Август","Септември","Октомври","Ноември","Декември"],monthNamesShort:["Яну","Фев","Мар","Апр","Май","Юни","Юли","Авг","Сеп","Окт","Нов","Дек"],dayNames:["Неделя","Понеделник","Вторник","Сряда","Четвъртък","Петък","Събота"],dayNamesShort:["Нед","Пон","Вто","Сря","Чет","Пет","Съб"],dayNamesMin:["Не","По","Вт","Ср","Че","Пе","Съ"],weekHeader:"Wk",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("bg",{buttonText:{month:"Месец",week:"Седмица",day:"Ден",list:"График"},allDayText:"Цял ден",eventLimitText:function(e){return"+още "+e},noEventsMessage:"Няма събития за показване"})}(),function(){!function(){var e=a.defineLocale("ca",{months:"gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),monthsShort:"gen._febr._mar._abr._mai._jun._jul._ag._set._oct._nov._des.".split("_"),monthsParseExact:!0,weekdays:"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dt._dc._dj._dv._ds.".split("_"),weekdaysMin:"Dg_Dl_Dt_Dc_Dj_Dv_Ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd D MMMM YYYY H:mm"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[demà a "+(1!==this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"fa %s",s:"uns segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},ordinalParse:/\d{1,2}(r|n|t|è|a)/,ordinal:function(e,a){var t=1===e?"r":2===e?"n":3===e?"r":4===e?"t":"è";return"w"!==a&&"W"!==a||(t="a"),e+t},week:{dow:1,doy:4}});return e}(),e.fullCalendar.datepickerLocale("ca","ca",{closeText:"Tanca",prevText:"Anterior",nextText:"Següent",currentText:"Avui",monthNames:["gener","febrer","març","abril","maig","juny","juliol","agost","setembre","octubre","novembre","desembre"],monthNamesShort:["gen","feb","març","abr","maig","juny","jul","ag","set","oct","nov","des"],dayNames:["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"],dayNamesShort:["dg","dl","dt","dc","dj","dv","ds"],dayNamesMin:["dg","dl","dt","dc","dj","dv","ds"],weekHeader:"Set",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("ca",{buttonText:{month:"Mes",week:"Setmana",day:"Dia",list:"Agenda"},allDayText:"Tot el dia",eventLimitText:"més",noEventsMessage:"No hi ha esdeveniments per mostrar"})}(),function(){!function(){function e(e){return e>1&&e<5&&1!==~~(e/10)}function t(a,t,n,r){var s=a+" ";switch(n){case"s":return t||r?"pár sekund":"pár sekundami";case"m":return t?"minuta":r?"minutu":"minutou";case"mm":return t||r?s+(e(a)?"minuty":"minut"):s+"minutami";case"h":return t?"hodina":r?"hodinu":"hodinou";case"hh":return t||r?s+(e(a)?"hodiny":"hodin"):s+"hodinami";case"d":return t||r?"den":"dnem";case"dd":return t||r?s+(e(a)?"dny":"dní"):s+"dny";case"M":return t||r?"měsíc":"měsícem";case"MM":return t||r?s+(e(a)?"měsíce":"měsíců"):s+"měsíci";case"y":return t||r?"rok":"rokem";case"yy":return t||r?s+(e(a)?"roky":"let"):s+"lety"}}var n="leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec".split("_"),r="led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro".split("_"),s=a.defineLocale("cs",{months:n,monthsShort:r,monthsParse:function(e,a){var t,n=[];for(t=0;t<12;t++)n[t]=new RegExp("^"+e[t]+"$|^"+a[t]+"$","i");return n}(n,r),shortMonthsParse:function(e){var a,t=[];for(a=0;a<12;a++)t[a]=new RegExp("^"+e[a]+"$","i");return t}(r),longMonthsParse:function(e){var a,t=[];for(a=0;a<12;a++)t[a]=new RegExp("^"+e[a]+"$","i");return t}(n),weekdays:"neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota".split("_"),weekdaysShort:"ne_po_út_st_čt_pá_so".split("_"),weekdaysMin:"ne_po_út_st_čt_pá_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},calendar:{sameDay:"[dnes v] LT",nextDay:"[zítra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v neděli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve středu v] LT";case 4:return"[ve čtvrtek v] LT";case 5:return"[v pátek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[včera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou neděli v] LT";case 1:case 2:return"[minulé] dddd [v] LT";case 3:return"[minulou středu v] LT";case 4:case 5:return"[minulý] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"před %s",s:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return s}(),e.fullCalendar.datepickerLocale("cs","cs",{closeText:"Zavřít",prevText:"<Dříve",nextText:"Později>",currentText:"Nyní",monthNames:["leden","únor","březen","duben","květen","červen","červenec","srpen","září","říjen","listopad","prosinec"],monthNamesShort:["led","úno","bře","dub","kvě","čer","čvc","srp","zář","říj","lis","pro"],dayNames:["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"],dayNamesShort:["ne","po","út","st","čt","pá","so"],dayNamesMin:["ne","po","út","st","čt","pá","so"],weekHeader:"Týd",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("cs",{buttonText:{month:"Měsíc",week:"Týden",day:"Den",list:"Agenda"},allDayText:"Celý den",eventLimitText:function(e){return"+další: "+e},noEventsMessage:"Žádné akce k zobrazení"})}(),function(){!function(){var e=a.defineLocale("da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"søn_man_tir_ons_tor_fre_lør".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd [d.] D. MMMM YYYY HH:mm"},calendar:{sameDay:"[I dag kl.] LT",nextDay:"[I morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[I går kl.] LT",lastWeek:"[sidste] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"få sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en måned",MM:"%d måneder",y:"et år",yy:"%d år"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return e}(),e.fullCalendar.datepickerLocale("da","da",{closeText:"Luk",prevText:"<Forrige",nextText:"Næste>",currentText:"Idag",monthNames:["Januar","Februar","Marts","April","Maj","Juni","Juli","August","September","Oktober","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],dayNames:["Søndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","Lørdag"],dayNamesShort:["Søn","Man","Tir","Ons","Tor","Fre","Lør"],dayNamesMin:["Sø","Ma","Ti","On","To","Fr","Lø"],weekHeader:"Uge",dateFormat:"dd-mm-yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("da",{buttonText:{month:"Måned",week:"Uge",day:"Dag",list:"Agenda"},allDayText:"Hele dagen",eventLimitText:"flere",noEventsMessage:"Ingen arrangementer at vise"})}(),function(){!function(){function e(e,a,t,n){var r={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return a?r[t][0]:r[t][1]}var t=a.defineLocale("de",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",m:e,mm:"%d Minuten",h:e,hh:"%d Stunden",d:e,dd:e,M:e,MM:e,y:e,yy:e},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return t}(),e.fullCalendar.datepickerLocale("de","de",{closeText:"Schließen",prevText:"<Zurück",nextText:"Vor>",currentText:"Heute",monthNames:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],monthNamesShort:["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],dayNames:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],dayNamesShort:["So","Mo","Di","Mi","Do","Fr","Sa"],dayNamesMin:["So","Mo","Di","Mi","Do","Fr","Sa"],weekHeader:"KW",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("de",{buttonText:{month:"Monat",week:"Woche",day:"Tag",list:"Terminübersicht"},allDayText:"Ganztägig",eventLimitText:function(e){return"+ weitere "+e},noEventsMessage:"Keine Ereignisse anzuzeigen"})}(),function(){!function(){function e(e,a,t,n){var r={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return a?r[t][0]:r[t][1]}var t=a.defineLocale("de-at",{months:"Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jän._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",m:e,mm:"%d Minuten",h:e,hh:"%d Stunden",d:e,dd:e,M:e,MM:e,y:e,yy:e},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return t}(),e.fullCalendar.datepickerLocale("de-at","de",{closeText:"Schließen",prevText:"<Zurück",nextText:"Vor>",currentText:"Heute",monthNames:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],monthNamesShort:["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],dayNames:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],dayNamesShort:["So","Mo","Di","Mi","Do","Fr","Sa"],dayNamesMin:["So","Mo","Di","Mi","Do","Fr","Sa"],weekHeader:"KW",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("de-at",{buttonText:{month:"Monat",week:"Woche",day:"Tag",list:"Terminübersicht"},allDayText:"Ganztägig",eventLimitText:function(e){return"+ weitere "+e},noEventsMessage:"Keine Ereignisse anzuzeigen"})}(),function(){!function(){function e(e){return e instanceof Function||"[object Function]"===Object.prototype.toString.call(e)}var t=a.defineLocale("el",{monthsNominativeEl:"Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος".split("_"),monthsGenitiveEl:"Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου".split("_"),months:function(e,a){return/D/.test(a.substring(0,a.indexOf("MMMM")))?this._monthsGenitiveEl[e.month()]:this._monthsNominativeEl[e.month()]},monthsShort:"Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ".split("_"),weekdays:"Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο".split("_"),weekdaysShort:"Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ".split("_"),weekdaysMin:"Κυ_Δε_Τρ_Τε_Πε_Πα_Σα".split("_"),meridiem:function(e,a,t){return e>11?t?"μμ":"ΜΜ":t?"πμ":"ΠΜ"},isPM:function(e){return"μ"===(e+"").toLowerCase()[0]},meridiemParse:/[ΠΜ]\.?Μ?\.?/i,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendarEl:{sameDay:"[Σήμερα {}] LT",nextDay:"[Αύριο {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[Χθες {}] LT",lastWeek:function(){switch(this.day()){case 6:return"[το προηγούμενο] dddd [{}] LT";default:return"[την προηγούμενη] dddd [{}] LT"}},sameElse:"L"},calendar:function(a,t){var n=this._calendarEl[a],r=t&&t.hours();return e(n)&&(n=n.apply(t)),n.replace("{}",r%12===1?"στη":"στις")},relativeTime:{future:"σε %s",past:"%s πριν",s:"λίγα δευτερόλεπτα",m:"ένα λεπτό",mm:"%d λεπτά",h:"μία ώρα",hh:"%d ώρες",d:"μία μέρα",dd:"%d μέρες",M:"ένας μήνας",MM:"%d μήνες",y:"ένας χρόνος",yy:"%d χρόνια"},ordinalParse:/\d{1,2}η/,ordinal:"%dη",week:{dow:1,doy:4}});return t}(),e.fullCalendar.datepickerLocale("el","el",{closeText:"Κλείσιμο",prevText:"Προηγούμενος",nextText:"Επόμενος",currentText:"Σήμερα",monthNames:["Ιανουάριος","Φεβρουάριος","Μάρτιος","Απρίλιος","Μάιος","Ιούνιος","Ιούλιος","Αύγουστος","Σεπτέμβριος","Οκτώβριος","Νοέμβριος","Δεκέμβριος"],monthNamesShort:["Ιαν","Φεβ","Μαρ","Απρ","Μαι","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Νοε","Δεκ"],dayNames:["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"],dayNamesShort:["Κυρ","Δευ","Τρι","Τετ","Πεμ","Παρ","Σαβ"],dayNamesMin:["Κυ","Δε","Τρ","Τε","Πε","Πα","Σα"],weekHeader:"Εβδ",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("el",{buttonText:{month:"Μήνας",week:"Εβδομάδα",day:"Ημέρα",list:"Ατζέντα"},allDayText:"Ολοήμερο",eventLimitText:"περισσότερα",noEventsMessage:"Δεν υπάρχουν γεγονότα για να εμφανιστεί"})}(),function(){!function(){var e=a.defineLocale("en-au",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var a=e%10,t=1===~~(e%100/10)?"th":1===a?"st":2===a?"nd":3===a?"rd":"th";return e+t},week:{dow:1,doy:4}});return e}(),e.fullCalendar.datepickerLocale("en-au","en-AU",{closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("en-au")}(),function(){!function(){var e=a.defineLocale("en-ca",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"YYYY-MM-DD",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var a=e%10,t=1===~~(e%100/10)?"th":1===a?"st":2===a?"nd":3===a?"rd":"th";return e+t}});return e}(),e.fullCalendar.locale("en-ca")}(),function(){!function(){var e=a.defineLocale("en-gb",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var a=e%10,t=1===~~(e%100/10)?"th":1===a?"st":2===a?"nd":3===a?"rd":"th";return e+t},week:{dow:1,doy:4}});return e}(),e.fullCalendar.datepickerLocale("en-gb","en-GB",{closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("en-gb")}(),function(){!function(){var e=a.defineLocale("en-ie",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var a=e%10,t=1===~~(e%100/10)?"th":1===a?"st":2===a?"nd":3===a?"rd":"th";return e+t},week:{dow:1,doy:4}});return e}(),e.fullCalendar.locale("en-ie")}(),function(){!function(){var e=a.defineLocale("en-nz",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var a=e%10,t=1===~~(e%100/10)?"th":1===a?"st":2===a?"nd":3===a?"rd":"th";return e+t},week:{dow:1,doy:4}});return e}(),e.fullCalendar.datepickerLocale("en-nz","en-NZ",{closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("en-nz")}(),function(){!function(){var e="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),t="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),n=a.defineLocale("es",{ +months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(a,n){return/-MMM-/.test(n)?t[a.month()]:e[a.month()]},monthsParseExact:!0,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},ordinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}});return n}(),e.fullCalendar.datepickerLocale("es","es",{closeText:"Cerrar",prevText:"<Ant",nextText:"Sig>",currentText:"Hoy",monthNames:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],monthNamesShort:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],dayNames:["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],dayNamesShort:["dom","lun","mar","mié","jue","vie","sáb"],dayNamesMin:["D","L","M","X","J","V","S"],weekHeader:"Sm",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("es",{buttonText:{month:"Mes",week:"Semana",day:"Día",list:"Agenda"},allDayHtml:"Todo
      el día",eventLimitText:"más",noEventsMessage:"No hay eventos para mostrar"})}(),function(){!function(){var e="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),t="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),n=a.defineLocale("es-do",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(a,n){return/-MMM-/.test(n)?t[a.month()]:e[a.month()]},monthsParseExact:!0,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},ordinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}});return n}(),e.fullCalendar.datepickerLocale("es-do","es",{closeText:"Cerrar",prevText:"<Ant",nextText:"Sig>",currentText:"Hoy",monthNames:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],monthNamesShort:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],dayNames:["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],dayNamesShort:["dom","lun","mar","mié","jue","vie","sáb"],dayNamesMin:["D","L","M","X","J","V","S"],weekHeader:"Sm",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("es-do",{buttonText:{month:"Mes",week:"Semana",day:"Día",list:"Agenda"},allDayHtml:"Todo
      el día",eventLimitText:"más",noEventsMessage:"No hay eventos para mostrar"})}(),function(){!function(){var e=a.defineLocale("eu",{months:"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),monthsShort:"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),monthsParseExact:!0,weekdays:"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),weekdaysShort:"ig._al._ar._az._og._ol._lr.".split("_"),weekdaysMin:"ig_al_ar_az_og_ol_lr".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] HH:mm",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] HH:mm",llll:"ddd, YYYY[ko] MMM D[a] HH:mm"},calendar:{sameDay:"[gaur] LT[etan]",nextDay:"[bihar] LT[etan]",nextWeek:"dddd LT[etan]",lastDay:"[atzo] LT[etan]",lastWeek:"[aurreko] dddd LT[etan]",sameElse:"L"},relativeTime:{future:"%s barru",past:"duela %s",s:"segundo batzuk",m:"minutu bat",mm:"%d minutu",h:"ordu bat",hh:"%d ordu",d:"egun bat",dd:"%d egun",M:"hilabete bat",MM:"%d hilabete",y:"urte bat",yy:"%d urte"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});return e}(),e.fullCalendar.datepickerLocale("eu","eu",{closeText:"Egina",prevText:"<Aur",nextText:"Hur>",currentText:"Gaur",monthNames:["urtarrila","otsaila","martxoa","apirila","maiatza","ekaina","uztaila","abuztua","iraila","urria","azaroa","abendua"],monthNamesShort:["urt.","ots.","mar.","api.","mai.","eka.","uzt.","abu.","ira.","urr.","aza.","abe."],dayNames:["igandea","astelehena","asteartea","asteazkena","osteguna","ostirala","larunbata"],dayNamesShort:["ig.","al.","ar.","az.","og.","ol.","lr."],dayNamesMin:["ig","al","ar","az","og","ol","lr"],weekHeader:"As",dateFormat:"yy-mm-dd",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("eu",{buttonText:{month:"Hilabetea",week:"Astea",day:"Eguna",list:"Agenda"},allDayHtml:"Egun
      osoa",eventLimitText:"gehiago",noEventsMessage:"Ez dago ekitaldirik erakusteko"})}(),function(){!function(){var e={1:"۱",2:"۲",3:"۳",4:"۴",5:"۵",6:"۶",7:"۷",8:"۸",9:"۹",0:"۰"},t={"۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","۰":"0"},n=a.defineLocale("fa",{months:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),monthsShort:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),weekdays:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysShort:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysMin:"ی_د_س_چ_پ_ج_ش".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/قبل از ظهر|بعد از ظهر/,isPM:function(e){return/بعد از ظهر/.test(e)},meridiem:function(e,a,t){return e<12?"قبل از ظهر":"بعد از ظهر"},calendar:{sameDay:"[امروز ساعت] LT",nextDay:"[فردا ساعت] LT",nextWeek:"dddd [ساعت] LT",lastDay:"[دیروز ساعت] LT",lastWeek:"dddd [پیش] [ساعت] LT",sameElse:"L"},relativeTime:{future:"در %s",past:"%s پیش",s:"چندین ثانیه",m:"یک دقیقه",mm:"%d دقیقه",h:"یک ساعت",hh:"%d ساعت",d:"یک روز",dd:"%d روز",M:"یک ماه",MM:"%d ماه",y:"یک سال",yy:"%d سال"},preparse:function(e){return e.replace(/[۰-۹]/g,function(e){return t[e]}).replace(/،/g,",")},postformat:function(a){return a.replace(/\d/g,function(a){return e[a]}).replace(/,/g,"،")},ordinalParse:/\d{1,2}م/,ordinal:"%dم",week:{dow:6,doy:12}});return n}(),e.fullCalendar.datepickerLocale("fa","fa",{closeText:"بستن",prevText:"<قبلی",nextText:"بعدی>",currentText:"امروز",monthNames:["ژانویه","فوریه","مارس","آوریل","مه","ژوئن","ژوئیه","اوت","سپتامبر","اکتبر","نوامبر","دسامبر"],monthNamesShort:["1","2","3","4","5","6","7","8","9","10","11","12"],dayNames:["يکشنبه","دوشنبه","سه‌شنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"],dayNamesShort:["ی","د","س","چ","پ","ج","ش"],dayNamesMin:["ی","د","س","چ","پ","ج","ش"],weekHeader:"هف",dateFormat:"yy/mm/dd",firstDay:6,isRTL:!0,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("fa",{buttonText:{month:"ماه",week:"هفته",day:"روز",list:"برنامه"},allDayText:"تمام روز",eventLimitText:function(e){return"بیش از "+e},noEventsMessage:"هیچ رویدادی به نمایش"})}(),function(){!function(){function e(e,a,n,r){var s="";switch(n){case"s":return r?"muutaman sekunnin":"muutama sekunti";case"m":return r?"minuutin":"minuutti";case"mm":s=r?"minuutin":"minuuttia";break;case"h":return r?"tunnin":"tunti";case"hh":s=r?"tunnin":"tuntia";break;case"d":return r?"päivän":"päivä";case"dd":s=r?"päivän":"päivää";break;case"M":return r?"kuukauden":"kuukausi";case"MM":s=r?"kuukauden":"kuukautta";break;case"y":return r?"vuoden":"vuosi";case"yy":s=r?"vuoden":"vuotta"}return s=t(e,r)+" "+s}function t(e,a){return e<10?a?r[e]:n[e]:e}var n="nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän".split(" "),r=["nolla","yhden","kahden","kolmen","neljän","viiden","kuuden",n[7],n[8],n[9]],s=a.defineLocale("fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu".split("_"),weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] HH.mm",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] HH.mm",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] HH.mm",llll:"ddd, Do MMM YYYY, [klo] HH.mm"},calendar:{sameDay:"[tänään] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s päästä",past:"%s sitten",s:e,m:e,mm:e,h:e,hh:e,d:e,dd:e,M:e,MM:e,y:e,yy:e},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return s}(),e.fullCalendar.datepickerLocale("fi","fi",{closeText:"Sulje",prevText:"«Edellinen",nextText:"Seuraava»",currentText:"Tänään",monthNames:["Tammikuu","Helmikuu","Maaliskuu","Huhtikuu","Toukokuu","Kesäkuu","Heinäkuu","Elokuu","Syyskuu","Lokakuu","Marraskuu","Joulukuu"],monthNamesShort:["Tammi","Helmi","Maalis","Huhti","Touko","Kesä","Heinä","Elo","Syys","Loka","Marras","Joulu"],dayNamesShort:["Su","Ma","Ti","Ke","To","Pe","La"],dayNames:["Sunnuntai","Maanantai","Tiistai","Keskiviikko","Torstai","Perjantai","Lauantai"],dayNamesMin:["Su","Ma","Ti","Ke","To","Pe","La"],weekHeader:"Vk",dateFormat:"d.m.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("fi",{buttonText:{month:"Kuukausi",week:"Viikko",day:"Päivä",list:"Tapahtumat"},allDayText:"Koko päivä",eventLimitText:"lisää",noEventsMessage:"Ei tapahtumia näytettäviä"})}(),function(){!function(){var e=a.defineLocale("fr",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"Di_Lu_Ma_Me_Je_Ve_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd'hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},ordinalParse:/\d{1,2}(er|)/,ordinal:function(e){return e+(1===e?"er":"")},week:{dow:1,doy:4}});return e}(),e.fullCalendar.datepickerLocale("fr","fr",{closeText:"Fermer",prevText:"Précédent",nextText:"Suivant",currentText:"Aujourd'hui",monthNames:["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],monthNamesShort:["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],dayNames:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],dayNamesShort:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],dayNamesMin:["D","L","M","M","J","V","S"],weekHeader:"Sem.",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("fr",{buttonText:{year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Mon planning"},allDayHtml:"Toute la
      journée",eventLimitText:"en plus",noEventsMessage:"Aucun événement à afficher"})}(),function(){!function(){var e=a.defineLocale("fr-ca",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"Di_Lu_Ma_Me_Je_Ve_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd'hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},ordinalParse:/\d{1,2}(er|e)/,ordinal:function(e){return e+(1===e?"er":"e")}});return e}(),e.fullCalendar.datepickerLocale("fr-ca","fr-CA",{closeText:"Fermer",prevText:"Précédent",nextText:"Suivant",currentText:"Aujourd'hui",monthNames:["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],monthNamesShort:["janv.","févr.","mars","avril","mai","juin","juil.","août","sept.","oct.","nov.","déc."],dayNames:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],dayNamesShort:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],dayNamesMin:["D","L","M","M","J","V","S"],weekHeader:"Sem.",dateFormat:"yy-mm-dd",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("fr-ca",{buttonText:{year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Mon planning"},allDayHtml:"Toute la
      journée",eventLimitText:"en plus",noEventsMessage:"Aucun événement à afficher"})}(),function(){!function(){var e=a.defineLocale("fr-ch",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"Di_Lu_Ma_Me_Je_Ve_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd'hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},ordinalParse:/\d{1,2}(er|e)/,ordinal:function(e){return e+(1===e?"er":"e")},week:{dow:1,doy:4}});return e}(),e.fullCalendar.datepickerLocale("fr-ch","fr-CH",{closeText:"Fermer",prevText:"<Préc",nextText:"Suiv>",currentText:"Courant",monthNames:["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],monthNamesShort:["janv.","févr.","mars","avril","mai","juin","juil.","août","sept.","oct.","nov.","déc."],dayNames:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],dayNamesShort:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],dayNamesMin:["D","L","M","M","J","V","S"],weekHeader:"Sm",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("fr-ch",{buttonText:{year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Mon planning"},allDayHtml:"Toute la
      journée",eventLimitText:"en plus",noEventsMessage:"Aucun événement à afficher"})}(),function(){!function(){var e=a.defineLocale("gl",{months:"Xaneiro_Febreiro_Marzo_Abril_Maio_Xuño_Xullo_Agosto_Setembro_Outubro_Novembro_Decembro".split("_"),monthsShort:"Xan._Feb._Mar._Abr._Mai._Xuñ._Xul._Ago._Set._Out._Nov._Dec.".split("_"),monthsParseExact:!0,weekdays:"Domingo_Luns_Martes_Mércores_Xoves_Venres_Sábado".split("_"),weekdaysShort:"Dom._Lun._Mar._Mér._Xov._Ven._Sáb.".split("_"),weekdaysMin:"Do_Lu_Ma_Mé_Xo_Ve_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd D MMMM YYYY H:mm"},calendar:{sameDay:function(){return"[hoxe "+(1!==this.hours()?"ás":"á")+"] LT"},nextDay:function(){return"[mañá "+(1!==this.hours()?"ás":"á")+"] LT"},nextWeek:function(){return"dddd ["+(1!==this.hours()?"ás":"a")+"] LT"},lastDay:function(){return"[onte "+(1!==this.hours()?"á":"a")+"] LT"},lastWeek:function(){return"[o] dddd [pasado "+(1!==this.hours()?"ás":"a")+"] LT"},sameElse:"L"},relativeTime:{future:function(e){return"uns segundos"===e?"nuns segundos":"en "+e},past:"hai %s",s:"uns segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"},ordinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:7}});return e}(),e.fullCalendar.datepickerLocale("gl","gl",{closeText:"Pechar",prevText:"<Ant",nextText:"Seg>",currentText:"Hoxe",monthNames:["Xaneiro","Febreiro","Marzo","Abril","Maio","Xuño","Xullo","Agosto","Setembro","Outubro","Novembro","Decembro"],monthNamesShort:["Xan","Feb","Mar","Abr","Mai","Xuñ","Xul","Ago","Set","Out","Nov","Dec"],dayNames:["Domingo","Luns","Martes","Mércores","Xoves","Venres","Sábado"],dayNamesShort:["Dom","Lun","Mar","Mér","Xov","Ven","Sáb"],dayNamesMin:["Do","Lu","Ma","Mé","Xo","Ve","Sá"],weekHeader:"Sm",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("gl",{buttonText:{month:"Mes",week:"Semana",day:"Día",list:"Axenda"},allDayHtml:"Todo
      o día",eventLimitText:"máis",noEventsMessage:"Non hai eventos para amosar"})}(),function(){!function(){var e=a.defineLocale("he",{months:"ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר".split("_"),monthsShort:"ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳".split("_"),weekdays:"ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת".split("_"),weekdaysShort:"א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳".split("_"),weekdaysMin:"א_ב_ג_ד_ה_ו_ש".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [ב]MMMM YYYY",LLL:"D [ב]MMMM YYYY HH:mm",LLLL:"dddd, D [ב]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[היום ב־]LT",nextDay:"[מחר ב־]LT",nextWeek:"dddd [בשעה] LT",lastDay:"[אתמול ב־]LT",lastWeek:"[ביום] dddd [האחרון בשעה] LT",sameElse:"L"},relativeTime:{future:"בעוד %s",past:"לפני %s",s:"מספר שניות",m:"דקה",mm:"%d דקות",h:"שעה",hh:function(e){return 2===e?"שעתיים":e+" שעות"},d:"יום",dd:function(e){return 2===e?"יומיים":e+" ימים"},M:"חודש",MM:function(e){return 2===e?"חודשיים":e+" חודשים"},y:"שנה",yy:function(e){return 2===e?"שנתיים":e%10===0&&10!==e?e+" שנה":e+" שנים"}},meridiemParse:/אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,isPM:function(e){return/^(אחה"צ|אחרי הצהריים|בערב)$/.test(e)},meridiem:function(e,a,t){return e<5?"לפנות בוקר":e<10?"בבוקר":e<12?t?'לפנה"צ':"לפני הצהריים":e<18?t?'אחה"צ':"אחרי הצהריים":"בערב"}});return e}(),e.fullCalendar.datepickerLocale("he","he",{closeText:"סגור",prevText:"<הקודם",nextText:"הבא>",currentText:"היום",monthNames:["ינואר","פברואר","מרץ","אפריל","מאי","יוני","יולי","אוגוסט","ספטמבר","אוקטובר","נובמבר","דצמבר"],monthNamesShort:["ינו","פבר","מרץ","אפר","מאי","יוני","יולי","אוג","ספט","אוק","נוב","דצמ"],dayNames:["ראשון","שני","שלישי","רביעי","חמישי","שישי","שבת"],dayNamesShort:["א'","ב'","ג'","ד'","ה'","ו'","שבת"],dayNamesMin:["א'","ב'","ג'","ד'","ה'","ו'","שבת"],weekHeader:"Wk",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!0,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("he",{buttonText:{month:"חודש",week:"שבוע",day:"יום",list:"סדר יום"},allDayText:"כל היום",eventLimitText:"אחר",noEventsMessage:"אין אירועים להצגה",weekNumberTitle:"שבוע"})}(),function(){!function(){var e={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},t={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"},n=a.defineLocale("hi",{months:"जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर".split("_"),monthsShort:"जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm बजे",LTS:"A h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm बजे",LLLL:"dddd, D MMMM YYYY, A h:mm बजे"},calendar:{sameDay:"[आज] LT",nextDay:"[कल] LT",nextWeek:"dddd, LT",lastDay:"[कल] LT",lastWeek:"[पिछले] dddd, LT",sameElse:"L"},relativeTime:{future:"%s में",past:"%s पहले",s:"कुछ ही क्षण",m:"एक मिनट",mm:"%d मिनट",h:"एक घंटा",hh:"%d घंटे",d:"एक दिन",dd:"%d दिन",M:"एक महीने",MM:"%d महीने",y:"एक वर्ष",yy:"%d वर्ष"},preparse:function(e){return e.replace(/[१२३४५६७८९०]/g,function(e){return t[e]})},postformat:function(a){return a.replace(/\d/g,function(a){return e[a]})},meridiemParse:/रात|सुबह|दोपहर|शाम/,meridiemHour:function(e,a){return 12===e&&(e=0),"रात"===a?e<4?e:e+12:"सुबह"===a?e:"दोपहर"===a?e>=10?e:e+12:"शाम"===a?e+12:void 0},meridiem:function(e,a,t){return e<4?"रात":e<10?"सुबह":e<17?"दोपहर":e<20?"शाम":"रात"},week:{dow:0,doy:6}});return n}(),e.fullCalendar.datepickerLocale("hi","hi",{closeText:"बंद",prevText:"पिछला",nextText:"अगला",currentText:"आज",monthNames:["जनवरी ","फरवरी","मार्च","अप्रेल","मई","जून","जूलाई","अगस्त ","सितम्बर","अक्टूबर","नवम्बर","दिसम्बर"],monthNamesShort:["जन","फर","मार्च","अप्रेल","मई","जून","जूलाई","अग","सित","अक्ट","नव","दि"],dayNames:["रविवार","सोमवार","मंगलवार","बुधवार","गुरुवार","शुक्रवार","शनिवार"],dayNamesShort:["रवि","सोम","मंगल","बुध","गुरु","शुक्र","शनि"],dayNamesMin:["रवि","सोम","मंगल","बुध","गुरु","शुक्र","शनि"],weekHeader:"हफ्ता",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("hi",{buttonText:{month:"महीना",week:"सप्ताह",day:"दिन",list:"कार्यसूची"},allDayText:"सभी दिन",eventLimitText:function(e){return"+अधिक "+e},noEventsMessage:"कोई घटनाओं को प्रदर्शित करने के लिए"})}(),function(){!function(){function e(e,a,t){var n=e+" ";switch(t){case"m":return a?"jedna minuta":"jedne minute";case"mm":return n+=1===e?"minuta":2===e||3===e||4===e?"minute":"minuta";case"h":return a?"jedan sat":"jednog sata";case"hh":return n+=1===e?"sat":2===e||3===e||4===e?"sata":"sati";case"dd":return n+=1===e?"dan":"dana";case"MM":return n+=1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci";case"yy":return n+=1===e?"godina":2===e||3===e||4===e?"godine":"godina"}}var t=a.defineLocale("hr",{months:{format:"siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),standalone:"siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_")},monthsShort:"sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",m:e,mm:e,h:e,hh:e,d:"dan",dd:e,M:"mjesec",MM:e,y:"godinu",yy:e},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});return t}(),e.fullCalendar.datepickerLocale("hr","hr",{closeText:"Zatvori",prevText:"<",nextText:">",currentText:"Danas",monthNames:["Siječanj","Veljača","Ožujak","Travanj","Svibanj","Lipanj","Srpanj","Kolovoz","Rujan","Listopad","Studeni","Prosinac"],monthNamesShort:["Sij","Velj","Ožu","Tra","Svi","Lip","Srp","Kol","Ruj","Lis","Stu","Pro"],dayNames:["Nedjelja","Ponedjeljak","Utorak","Srijeda","Četvrtak","Petak","Subota"],dayNamesShort:["Ned","Pon","Uto","Sri","Čet","Pet","Sub"],dayNamesMin:["Ne","Po","Ut","Sr","Če","Pe","Su"],weekHeader:"Tje",dateFormat:"dd.mm.yy.",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("hr",{buttonText:{month:"Mjesec",week:"Tjedan",day:"Dan",list:"Raspored"},allDayText:"Cijeli dan",eventLimitText:function(e){return"+ još "+e},noEventsMessage:"Nema događaja za prikaz"})}(),function(){!function(){function e(e,a,t,n){var r=e;switch(t){case"s":return n||a?"néhány másodperc":"néhány másodperce";case"m":return"egy"+(n||a?" perc":" perce");case"mm":return r+(n||a?" perc":" perce");case"h":return"egy"+(n||a?" óra":" órája");case"hh":return r+(n||a?" óra":" órája");case"d":return"egy"+(n||a?" nap":" napja");case"dd":return r+(n||a?" nap":" napja");case"M":return"egy"+(n||a?" hónap":" hónapja");case"MM":return r+(n||a?" hónap":" hónapja");case"y":return"egy"+(n||a?" év":" éve");case"yy":return r+(n||a?" év":" éve")}return""}function t(e){return(e?"":"[múlt] ")+"["+n[this.day()]+"] LT[-kor]"}var n="vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton".split(" "),r=a.defineLocale("hu",{months:"január_február_március_április_május_június_július_augusztus_szeptember_október_november_december".split("_"),monthsShort:"jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec".split("_"),weekdays:"vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat".split("_"),weekdaysShort:"vas_hét_kedd_sze_csüt_pén_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"},meridiemParse:/de|du/i,isPM:function(e){return"u"===e.charAt(1).toLowerCase()},meridiem:function(e,a,t){return e<12?t===!0?"de":"DE":t===!0?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return t.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return t.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s múlva",past:"%s",s:e,m:e,mm:e,h:e,hh:e,d:e,dd:e,M:e,MM:e,y:e,yy:e},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});return r}(),e.fullCalendar.datepickerLocale("hu","hu",{closeText:"bezár",prevText:"vissza",nextText:"előre",currentText:"ma",monthNames:["Január","Február","Március","Április","Május","Június","Július","Augusztus","Szeptember","Október","November","December"],monthNamesShort:["Jan","Feb","Már","Ápr","Máj","Jún","Júl","Aug","Szep","Okt","Nov","Dec"],dayNames:["Vasárnap","Hétfő","Kedd","Szerda","Csütörtök","Péntek","Szombat"],dayNamesShort:["Vas","Hét","Ked","Sze","Csü","Pén","Szo"],dayNamesMin:["V","H","K","Sze","Cs","P","Szo"],weekHeader:"Hét",dateFormat:"yy.mm.dd.",firstDay:1,isRTL:!1,showMonthAfterYear:!0,yearSuffix:""}),e.fullCalendar.locale("hu",{buttonText:{month:"Hónap",week:"Hét",day:"Nap",list:"Napló"},allDayText:"Egész nap",eventLimitText:"további",noEventsMessage:"Nincs megjeleníthető események"})}(),function(){!function(){var e=a.defineLocale("id",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(e,a){return 12===e&&(e=0),"pagi"===a?e:"siang"===a?e>=11?e:e+12:"sore"===a||"malam"===a?e+12:void 0},meridiem:function(e,a,t){return e<11?"pagi":e<15?"siang":e<19?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}});return e}(),e.fullCalendar.datepickerLocale("id","id",{closeText:"Tutup",prevText:"<mundur",nextText:"maju>",currentText:"hari ini",monthNames:["Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","Nopember","Desember"],monthNamesShort:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Agus","Sep","Okt","Nop","Des"],dayNames:["Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"],dayNamesShort:["Min","Sen","Sel","Rab","kam","Jum","Sab"],dayNamesMin:["Mg","Sn","Sl","Rb","Km","jm","Sb"],weekHeader:"Mg",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("id",{buttonText:{month:"Bulan",week:"Minggu",day:"Hari",list:"Agenda"},allDayHtml:"Sehari
      penuh",eventLimitText:"lebih",noEventsMessage:"Tidak ada acara untuk ditampilkan"})}(),function(){!function(){function e(e){return e%100===11||e%10!==1}function t(a,t,n,r){var s=a+" ";switch(n){case"s":return t||r?"nokkrar sekúndur":"nokkrum sekúndum";case"m":return t?"mínúta":"mínútu";case"mm":return e(a)?s+(t||r?"mínútur":"mínútum"):t?s+"mínúta":s+"mínútu";case"hh":return e(a)?s+(t||r?"klukkustundir":"klukkustundum"):s+"klukkustund";case"d":return t?"dagur":r?"dag":"degi";case"dd":return e(a)?t?s+"dagar":s+(r?"daga":"dögum"):t?s+"dagur":s+(r?"dag":"degi");case"M":return t?"mánuður":r?"mánuð":"mánuði";case"MM":return e(a)?t?s+"mánuðir":s+(r?"mánuði":"mánuðum"):t?s+"mánuður":s+(r?"mánuð":"mánuði");case"y":return t||r?"ár":"ári";case"yy":return e(a)?s+(t||r?"ár":"árum"):s+(t||r?"ár":"ári")}}var n=a.defineLocale("is",{months:"janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember".split("_"),monthsShort:"jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des".split("_"),weekdays:"sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur".split("_"),weekdaysShort:"sun_mán_þri_mið_fim_fös_lau".split("_"),weekdaysMin:"Su_Má_Þr_Mi_Fi_Fö_La".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd, D. MMMM YYYY [kl.] H:mm"},calendar:{ +sameDay:"[í dag kl.] LT",nextDay:"[á morgun kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[í gær kl.] LT",lastWeek:"[síðasta] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"eftir %s",past:"fyrir %s síðan",s:t,m:t,mm:t,h:"klukkustund",hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return n}(),e.fullCalendar.datepickerLocale("is","is",{closeText:"Loka",prevText:"< Fyrri",nextText:"Næsti >",currentText:"Í dag",monthNames:["Janúar","Febrúar","Mars","Apríl","Maí","Júní","Júlí","Ágúst","September","Október","Nóvember","Desember"],monthNamesShort:["Jan","Feb","Mar","Apr","Maí","Jún","Júl","Ágú","Sep","Okt","Nóv","Des"],dayNames:["Sunnudagur","Mánudagur","Þriðjudagur","Miðvikudagur","Fimmtudagur","Föstudagur","Laugardagur"],dayNamesShort:["Sun","Mán","Þri","Mið","Fim","Fös","Lau"],dayNamesMin:["Su","Má","Þr","Mi","Fi","Fö","La"],weekHeader:"Vika",dateFormat:"dd.mm.yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("is",{buttonText:{month:"Mánuður",week:"Vika",day:"Dagur",list:"Dagskrá"},allDayHtml:"Allan
      daginn",eventLimitText:"meira",noEventsMessage:"Engir viðburðir til að sýna"})}(),function(){!function(){var e=a.defineLocale("it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"Domenica_Lunedì_Martedì_Mercoledì_Giovedì_Venerdì_Sabato".split("_"),weekdaysShort:"Dom_Lun_Mar_Mer_Gio_Ven_Sab".split("_"),weekdaysMin:"Do_Lu_Ma_Me_Gi_Ve_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(e){return(/^[0-9].+$/.test(e)?"tra":"in")+" "+e},past:"%s fa",s:"alcuni secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},ordinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}});return e}(),e.fullCalendar.datepickerLocale("it","it",{closeText:"Chiudi",prevText:"<Prec",nextText:"Succ>",currentText:"Oggi",monthNames:["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"],monthNamesShort:["Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic"],dayNames:["Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato"],dayNamesShort:["Dom","Lun","Mar","Mer","Gio","Ven","Sab"],dayNamesMin:["Do","Lu","Ma","Me","Gi","Ve","Sa"],weekHeader:"Sm",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("it",{buttonText:{month:"Mese",week:"Settimana",day:"Giorno",list:"Agenda"},allDayHtml:"Tutto il
      giorno",eventLimitText:function(e){return"+altri "+e},noEventsMessage:"Non ci sono eventi da visualizzare"})}(),function(){!function(){var e=a.defineLocale("ja",{months:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"),weekdaysShort:"日_月_火_水_木_金_土".split("_"),weekdaysMin:"日_月_火_水_木_金_土".split("_"),longDateFormat:{LT:"Ah時m分",LTS:"Ah時m分s秒",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah時m分",LLLL:"YYYY年M月D日Ah時m分 dddd"},meridiemParse:/午前|午後/i,isPM:function(e){return"午後"===e},meridiem:function(e,a,t){return e<12?"午前":"午後"},calendar:{sameDay:"[今日] LT",nextDay:"[明日] LT",nextWeek:"[来週]dddd LT",lastDay:"[昨日] LT",lastWeek:"[前週]dddd LT",sameElse:"L"},ordinalParse:/\d{1,2}日/,ordinal:function(e,a){switch(a){case"d":case"D":case"DDD":return e+"日";default:return e}},relativeTime:{future:"%s後",past:"%s前",s:"数秒",m:"1分",mm:"%d分",h:"1時間",hh:"%d時間",d:"1日",dd:"%d日",M:"1ヶ月",MM:"%dヶ月",y:"1年",yy:"%d年"}});return e}(),e.fullCalendar.datepickerLocale("ja","ja",{closeText:"閉じる",prevText:"<前",nextText:"次>",currentText:"今日",monthNames:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],monthNamesShort:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dayNames:["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"],dayNamesShort:["日","月","火","水","木","金","土"],dayNamesMin:["日","月","火","水","木","金","土"],weekHeader:"週",dateFormat:"yy/mm/dd",firstDay:0,isRTL:!1,showMonthAfterYear:!0,yearSuffix:"年"}),e.fullCalendar.locale("ja",{buttonText:{month:"月",week:"週",day:"日",list:"予定リスト"},allDayText:"終日",eventLimitText:function(e){return"他 "+e+" 件"},noEventsMessage:"イベントが表示されないように"})}(),function(){!function(){var e=a.defineLocale("ko",{months:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),monthsShort:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),weekdays:"일요일_월요일_화요일_수요일_목요일_금요일_토요일".split("_"),weekdaysShort:"일_월_화_수_목_금_토".split("_"),weekdaysMin:"일_월_화_수_목_금_토".split("_"),longDateFormat:{LT:"A h시 m분",LTS:"A h시 m분 s초",L:"YYYY.MM.DD",LL:"YYYY년 MMMM D일",LLL:"YYYY년 MMMM D일 A h시 m분",LLLL:"YYYY년 MMMM D일 dddd A h시 m분"},calendar:{sameDay:"오늘 LT",nextDay:"내일 LT",nextWeek:"dddd LT",lastDay:"어제 LT",lastWeek:"지난주 dddd LT",sameElse:"L"},relativeTime:{future:"%s 후",past:"%s 전",s:"몇 초",ss:"%d초",m:"일분",mm:"%d분",h:"한 시간",hh:"%d시간",d:"하루",dd:"%d일",M:"한 달",MM:"%d달",y:"일 년",yy:"%d년"},ordinalParse:/\d{1,2}일/,ordinal:"%d일",meridiemParse:/오전|오후/,isPM:function(e){return"오후"===e},meridiem:function(e,a,t){return e<12?"오전":"오후"}});return e}(),e.fullCalendar.datepickerLocale("ko","ko",{closeText:"닫기",prevText:"이전달",nextText:"다음달",currentText:"오늘",monthNames:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],monthNamesShort:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],dayNames:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"],dayNamesShort:["일","월","화","수","목","금","토"],dayNamesMin:["일","월","화","수","목","금","토"],weekHeader:"주",dateFormat:"yy. m. d.",firstDay:0,isRTL:!1,showMonthAfterYear:!0,yearSuffix:"년"}),e.fullCalendar.locale("ko",{buttonText:{month:"월",week:"주",day:"일",list:"일정목록"},allDayText:"종일",eventLimitText:"개",noEventsMessage:"일정이 표시 없습니다"})}(),function(){!function(){function e(e,a,t,n){var r={m:["eng Minutt","enger Minutt"],h:["eng Stonn","enger Stonn"],d:["een Dag","engem Dag"],M:["ee Mount","engem Mount"],y:["ee Joer","engem Joer"]};return a?r[t][0]:r[t][1]}function t(e){var a=e.substr(0,e.indexOf(" "));return r(a)?"a "+e:"an "+e}function n(e){var a=e.substr(0,e.indexOf(" "));return r(a)?"viru "+e:"virun "+e}function r(e){if(e=parseInt(e,10),isNaN(e))return!1;if(e<0)return!0;if(e<10)return 4<=e&&e<=7;if(e<100){var a=e%10,t=e/10;return r(0===a?t:a)}if(e<1e4){for(;e>=10;)e/=10;return r(e)}return e/=1e3,r(e)}var s=a.defineLocale("lb",{months:"Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),weekdaysShort:"So._Mé._Dë._Më._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mé_Dë_Më_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm [Auer]",LTS:"H:mm:ss [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm [Auer]",LLLL:"dddd, D. MMMM YYYY H:mm [Auer]"},calendar:{sameDay:"[Haut um] LT",sameElse:"L",nextDay:"[Muer um] LT",nextWeek:"dddd [um] LT",lastDay:"[Gëschter um] LT",lastWeek:function(){switch(this.day()){case 2:case 4:return"[Leschten] dddd [um] LT";default:return"[Leschte] dddd [um] LT"}}},relativeTime:{future:t,past:n,s:"e puer Sekonnen",m:e,mm:"%d Minutten",h:e,hh:"%d Stonnen",d:e,dd:"%d Deeg",M:e,MM:"%d Méint",y:e,yy:"%d Joer"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return s}(),e.fullCalendar.datepickerLocale("lb","lb",{closeText:"Fäerdeg",prevText:"Zréck",nextText:"Weider",currentText:"Haut",monthNames:["Januar","Februar","Mäerz","Abrëll","Mee","Juni","Juli","August","September","Oktober","November","Dezember"],monthNamesShort:["Jan","Feb","Mäe","Abr","Mee","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],dayNames:["Sonndeg","Méindeg","Dënschdeg","Mëttwoch","Donneschdeg","Freideg","Samschdeg"],dayNamesShort:["Son","Méi","Dën","Mët","Don","Fre","Sam"],dayNamesMin:["So","Mé","Dë","Më","Do","Fr","Sa"],weekHeader:"W",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("lb",{buttonText:{month:"Mount",week:"Woch",day:"Dag",list:"Terminiwwersiicht"},allDayText:"Ganzen Dag",eventLimitText:"méi",noEventsMessage:"Nee Evenementer ze affichéieren"})}(),function(){!function(){function e(e,a,t,n){return a?"kelios sekundės":n?"kelių sekundžių":"kelias sekundes"}function t(e,a,t,n){return a?r(t)[0]:n?r(t)[1]:r(t)[2]}function n(e){return e%10===0||e>10&&e<20}function r(e){return d[e].split("_")}function s(e,a,s,d){var i=e+" ";return 1===e?i+t(e,a,s[0],d):a?i+(n(e)?r(s)[1]:r(s)[0]):d?i+r(s)[1]:i+(n(e)?r(s)[1]:r(s)[2])}var d={m:"minutė_minutės_minutę",mm:"minutės_minučių_minutes",h:"valanda_valandos_valandą",hh:"valandos_valandų_valandas",d:"diena_dienos_dieną",dd:"dienos_dienų_dienas",M:"mėnuo_mėnesio_mėnesį",MM:"mėnesiai_mėnesių_mėnesius",y:"metai_metų_metus",yy:"metai_metų_metus"},i=a.defineLocale("lt",{months:{format:"sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio".split("_"),standalone:"sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis".split("_"),isFormat:/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?|MMMM?(\[[^\[\]]*\]|\s+)+D[oD]?/},monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:{format:"sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį".split("_"),standalone:"sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis".split("_"),isFormat:/dddd HH:mm/},weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_Šeš".split("_"),weekdaysMin:"S_P_A_T_K_Pn_Š".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},calendar:{sameDay:"[Šiandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Praėjusį] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prieš %s",s:e,m:t,mm:s,h:t,hh:s,d:t,dd:s,M:t,MM:s,y:t,yy:s},ordinalParse:/\d{1,2}-oji/,ordinal:function(e){return e+"-oji"},week:{dow:1,doy:4}});return i}(),e.fullCalendar.datepickerLocale("lt","lt",{closeText:"Uždaryti",prevText:"<Atgal",nextText:"Pirmyn>",currentText:"Šiandien",monthNames:["Sausis","Vasaris","Kovas","Balandis","Gegužė","Birželis","Liepa","Rugpjūtis","Rugsėjis","Spalis","Lapkritis","Gruodis"],monthNamesShort:["Sau","Vas","Kov","Bal","Geg","Bir","Lie","Rugp","Rugs","Spa","Lap","Gru"],dayNames:["sekmadienis","pirmadienis","antradienis","trečiadienis","ketvirtadienis","penktadienis","šeštadienis"],dayNamesShort:["sek","pir","ant","tre","ket","pen","šeš"],dayNamesMin:["Se","Pr","An","Tr","Ke","Pe","Še"],weekHeader:"SAV",dateFormat:"yy-mm-dd",firstDay:1,isRTL:!1,showMonthAfterYear:!0,yearSuffix:""}),e.fullCalendar.locale("lt",{buttonText:{month:"Mėnuo",week:"Savaitė",day:"Diena",list:"Darbotvarkė"},allDayText:"Visą dieną",eventLimitText:"daugiau",noEventsMessage:"Nėra įvykių rodyti"})}(),function(){!function(){function e(e,a,t){return t?a%10===1&&a%100!==11?e[2]:e[3]:a%10===1&&a%100!==11?e[0]:e[1]}function t(a,t,n){return a+" "+e(s[n],a,t)}function n(a,t,n){return e(s[n],a,t)}function r(e,a){return a?"dažas sekundes":"dažām sekundēm"}var s={m:"minūtes_minūtēm_minūte_minūtes".split("_"),mm:"minūtes_minūtēm_minūte_minūtes".split("_"),h:"stundas_stundām_stunda_stundas".split("_"),hh:"stundas_stundām_stunda_stundas".split("_"),d:"dienas_dienām_diena_dienas".split("_"),dd:"dienas_dienām_diena_dienas".split("_"),M:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),MM:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),y:"gada_gadiem_gads_gadi".split("_"),yy:"gada_gadiem_gads_gadi".split("_")},d=a.defineLocale("lv",{months:"janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris".split("_"),monthsShort:"jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec".split("_"),weekdays:"svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena".split("_"),weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY.",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, HH:mm",LLLL:"YYYY. [gada] D. MMMM, dddd, HH:mm"},calendar:{sameDay:"[Šodien pulksten] LT",nextDay:"[Rīt pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",lastWeek:"[Pagājušā] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"pēc %s",past:"pirms %s",s:r,m:n,mm:t,h:n,hh:t,d:n,dd:t,M:n,MM:t,y:n,yy:t},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return d}(),e.fullCalendar.datepickerLocale("lv","lv",{closeText:"Aizvērt",prevText:"Iepr.",nextText:"Nāk.",currentText:"Šodien",monthNames:["Janvāris","Februāris","Marts","Aprīlis","Maijs","Jūnijs","Jūlijs","Augusts","Septembris","Oktobris","Novembris","Decembris"],monthNamesShort:["Jan","Feb","Mar","Apr","Mai","Jūn","Jūl","Aug","Sep","Okt","Nov","Dec"],dayNames:["svētdiena","pirmdiena","otrdiena","trešdiena","ceturtdiena","piektdiena","sestdiena"],dayNamesShort:["svt","prm","otr","tre","ctr","pkt","sst"],dayNamesMin:["Sv","Pr","Ot","Tr","Ct","Pk","Ss"],weekHeader:"Ned.",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("lv",{buttonText:{month:"Mēnesis",week:"Nedēļa",day:"Diena",list:"Dienas kārtība"},allDayText:"Visu dienu",eventLimitText:function(e){return"+vēl "+e},noEventsMessage:"Nav notikumu, lai parādītu"})}(),function(){!function(){var e=a.defineLocale("mk",{months:"јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември".split("_"),monthsShort:"јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек".split("_"),weekdays:"недела_понеделник_вторник_среда_четврток_петок_сабота".split("_"),weekdaysShort:"нед_пон_вто_сре_чет_пет_саб".split("_"),weekdaysMin:"нe_пo_вт_ср_че_пе_сa".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Денес во] LT",nextDay:"[Утре во] LT",nextWeek:"[Во] dddd [во] LT",lastDay:"[Вчера во] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[Изминатата] dddd [во] LT";case 1:case 2:case 4:case 5:return"[Изминатиот] dddd [во] LT"}},sameElse:"L"},relativeTime:{future:"после %s",past:"пред %s",s:"неколку секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дена",M:"месец",MM:"%d месеци",y:"година",yy:"%d години"},ordinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(e){var a=e%10,t=e%100;return 0===e?e+"-ев":0===t?e+"-ен":t>10&&t<20?e+"-ти":1===a?e+"-ви":2===a?e+"-ри":7===a||8===a?e+"-ми":e+"-ти"},week:{dow:1,doy:7}});return e}(),e.fullCalendar.datepickerLocale("mk","mk",{closeText:"Затвори",prevText:"<",nextText:">",currentText:"Денес",monthNames:["Јануари","Февруари","Март","Април","Мај","Јуни","Јули","Август","Септември","Октомври","Ноември","Декември"],monthNamesShort:["Јан","Фев","Мар","Апр","Мај","Јун","Јул","Авг","Сеп","Окт","Ное","Дек"],dayNames:["Недела","Понеделник","Вторник","Среда","Четврток","Петок","Сабота"],dayNamesShort:["Нед","Пон","Вто","Сре","Чет","Пет","Саб"],dayNamesMin:["Не","По","Вт","Ср","Че","Пе","Са"],weekHeader:"Сед",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("mk",{buttonText:{month:"Месец",week:"Недела",day:"Ден",list:"График"},allDayText:"Цел ден",eventLimitText:function(e){return"+повеќе "+e},noEventsMessage:"Нема настани за прикажување"})}(),function(){!function(){var e=a.defineLocale("ms",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(e,a){return 12===e&&(e=0),"pagi"===a?e:"tengahari"===a?e>=11?e:e+12:"petang"===a||"malam"===a?e+12:void 0},meridiem:function(e,a,t){return e<11?"pagi":e<15?"tengahari":e<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}});return e}(),e.fullCalendar.datepickerLocale("ms","ms",{closeText:"Tutup",prevText:"<Sebelum",nextText:"Selepas>",currentText:"hari ini",monthNames:["Januari","Februari","Mac","April","Mei","Jun","Julai","Ogos","September","Oktober","November","Disember"],monthNamesShort:["Jan","Feb","Mac","Apr","Mei","Jun","Jul","Ogo","Sep","Okt","Nov","Dis"],dayNames:["Ahad","Isnin","Selasa","Rabu","Khamis","Jumaat","Sabtu"],dayNamesShort:["Aha","Isn","Sel","Rab","kha","Jum","Sab"],dayNamesMin:["Ah","Is","Se","Ra","Kh","Ju","Sa"],weekHeader:"Mg",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("ms",{buttonText:{month:"Bulan",week:"Minggu",day:"Hari",list:"Agenda"},allDayText:"Sepanjang hari",eventLimitText:function(e){return"masih ada "+e+" acara"},noEventsMessage:"Tiada peristiwa untuk dipaparkan"})}(),function(){!function(){var e=a.defineLocale("ms-my",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(e,a){return 12===e&&(e=0),"pagi"===a?e:"tengahari"===a?e>=11?e:e+12:"petang"===a||"malam"===a?e+12:void 0},meridiem:function(e,a,t){return e<11?"pagi":e<15?"tengahari":e<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}});return e}(),e.fullCalendar.datepickerLocale("ms-my","ms",{closeText:"Tutup",prevText:"<Sebelum",nextText:"Selepas>",currentText:"hari ini",monthNames:["Januari","Februari","Mac","April","Mei","Jun","Julai","Ogos","September","Oktober","November","Disember"],monthNamesShort:["Jan","Feb","Mac","Apr","Mei","Jun","Jul","Ogo","Sep","Okt","Nov","Dis"],dayNames:["Ahad","Isnin","Selasa","Rabu","Khamis","Jumaat","Sabtu"],dayNamesShort:["Aha","Isn","Sel","Rab","kha","Jum","Sab"],dayNamesMin:["Ah","Is","Se","Ra","Kh","Ju","Sa"],weekHeader:"Mg",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("ms-my",{buttonText:{month:"Bulan",week:"Minggu",day:"Hari",list:"Agenda"},allDayText:"Sepanjang hari",eventLimitText:function(e){return"masih ada "+e+" acara"},noEventsMessage:"Tiada peristiwa untuk dipaparkan"})}(),function(){!function(){var e=a.defineLocale("nb",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.".split("_"),monthsParseExact:!0,weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"sø._ma._ti._on._to._fr._lø.".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] HH:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[forrige] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"noen sekunder",m:"ett minutt",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dager",M:"en måned",MM:"%d måneder",y:"ett år",yy:"%d år"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return e}(),e.fullCalendar.datepickerLocale("nb","nb",{closeText:"Lukk",prevText:"«Forrige",nextText:"Neste»",currentText:"I dag",monthNames:["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],monthNamesShort:["jan","feb","mar","apr","mai","jun","jul","aug","sep","okt","nov","des"],dayNamesShort:["søn","man","tir","ons","tor","fre","lør"],dayNames:["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],dayNamesMin:["sø","ma","ti","on","to","fr","lø"],weekHeader:"Uke",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("nb",{buttonText:{month:"Måned",week:"Uke",day:"Dag",list:"Agenda"},allDayText:"Hele dagen",eventLimitText:"til",noEventsMessage:"Ingen hendelser å vise"})}(),function(){!function(){var e="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),t="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),n=a.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(a,n){return/-MMM-/.test(n)?t[a.month()]:e[a.month()]},monthsParseExact:!0,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"Zo_Ma_Di_Wo_Do_Vr_Za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},ordinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}});return n}(),e.fullCalendar.datepickerLocale("nl","nl",{closeText:"Sluiten",prevText:"←",nextText:"→",currentText:"Vandaag",monthNames:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],monthNamesShort:["jan","feb","mrt","apr","mei","jun","jul","aug","sep","okt","nov","dec"],dayNames:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],dayNamesShort:["zon","maa","din","woe","don","vri","zat"],dayNamesMin:["zo","ma","di","wo","do","vr","za"],weekHeader:"Wk",dateFormat:"dd-mm-yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("nl",{buttonText:{month:"Maand",week:"Week",day:"Dag",list:"Agenda"},allDayText:"Hele dag",eventLimitText:"extra",noEventsMessage:"Geen evenementen om te laten zien"})}(),function(){!function(){var e=a.defineLocale("nn",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),weekdaysShort:"sun_mån_tys_ons_tor_fre_lau".split("_"),weekdaysMin:"su_må_ty_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[I dag klokka] LT",nextDay:"[I morgon klokka] LT",nextWeek:"dddd [klokka] LT",lastDay:"[I går klokka] LT",lastWeek:"[Føregåande] dddd [klokka] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s sidan",s:"nokre sekund",m:"eit minutt",mm:"%d minutt",h:"ein time",hh:"%d timar",d:"ein dag",dd:"%d dagar",M:"ein månad",MM:"%d månader",y:"eit år",yy:"%d år"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return e}(),e.fullCalendar.datepickerLocale("nn","nn",{closeText:"Lukk",prevText:"«Førre",nextText:"Neste»",currentText:"I dag",monthNames:["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],monthNamesShort:["jan","feb","mar","apr","mai","jun","jul","aug","sep","okt","nov","des"],dayNamesShort:["sun","mån","tys","ons","tor","fre","lau"],dayNames:["sundag","måndag","tysdag","onsdag","torsdag","fredag","laurdag"],dayNamesMin:["su","må","ty","on","to","fr","la"],weekHeader:"Veke",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("nn",{buttonText:{month:"Månad",week:"Veke",day:"Dag",list:"Agenda"},allDayText:"Heile dagen",eventLimitText:"til",noEventsMessage:"Ingen hendelser å vise"})}(),function(){!function(){function e(e){return e%10<5&&e%10>1&&~~(e/10)%10!==1}function t(a,t,n){var r=a+" ";switch(n){case"m":return t?"minuta":"minutę";case"mm":return r+(e(a)?"minuty":"minut");case"h":return t?"godzina":"godzinę";case"hh":return r+(e(a)?"godziny":"godzin");case"MM":return r+(e(a)?"miesiące":"miesięcy");case"yy":return r+(e(a)?"lata":"lat")}}var n="styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_"),r="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_"),s=a.defineLocale("pl",{months:function(e,a){return""===a?"("+r[e.month()]+"|"+n[e.month()]+")":/D MMMM/.test(a)?r[e.month()]:n[e.month()]},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"),weekdays:"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota".split("_"),weekdaysShort:"nie_pon_wt_śr_czw_pt_sb".split("_"),weekdaysMin:"Nd_Pn_Wt_Śr_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Dziś o] LT",nextDay:"[Jutro o] LT",nextWeek:"[W] dddd [o] LT",lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zeszłą niedzielę o] LT";case 3:return"[W zeszłą środę o] LT";case 6:return"[W zeszłą sobotę o] LT";default:return"[W zeszły] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",m:t,mm:t,h:t,hh:t,d:"1 dzień",dd:"%d dni",M:"miesiąc",MM:t,y:"rok",yy:t},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return s}(),e.fullCalendar.datepickerLocale("pl","pl",{closeText:"Zamknij",prevText:"<Poprzedni",nextText:"Następny>",currentText:"Dziś",monthNames:["Styczeń","Luty","Marzec","Kwiecień","Maj","Czerwiec","Lipiec","Sierpień","Wrzesień","Październik","Listopad","Grudzień"],monthNamesShort:["Sty","Lu","Mar","Kw","Maj","Cze","Lip","Sie","Wrz","Pa","Lis","Gru"],dayNames:["Niedziela","Poniedziałek","Wtorek","Środa","Czwartek","Piątek","Sobota"],dayNamesShort:["Nie","Pn","Wt","Śr","Czw","Pt","So"],dayNamesMin:["N","Pn","Wt","Śr","Cz","Pt","So"],weekHeader:"Tydz",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("pl",{buttonText:{month:"Miesiąc",week:"Tydzień",day:"Dzień",list:"Plan dnia"},allDayText:"Cały dzień",eventLimitText:"więcej",noEventsMessage:"Brak wydarzeń do wyświetlenia"})}(),function(){!function(){var e=a.defineLocale("pt",{months:"Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingo_Segunda-Feira_Terça-Feira_Quarta-Feira_Quinta-Feira_Sexta-Feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Dom_2ª_3ª_4ª_5ª_6ª_Sáb".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},ordinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}});return e}(),e.fullCalendar.datepickerLocale("pt","pt",{closeText:"Fechar",prevText:"Anterior",nextText:"Seguinte",currentText:"Hoje",monthNames:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],monthNamesShort:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],dayNames:["Domingo","Segunda-feira","Terça-feira","Quarta-feira","Quinta-feira","Sexta-feira","Sábado"],dayNamesShort:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],dayNamesMin:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],weekHeader:"Sem",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("pt",{buttonText:{month:"Mês",week:"Semana",day:"Dia",list:"Agenda"},allDayText:"Todo o dia",eventLimitText:"mais",noEventsMessage:"Não há eventos para mostrar"})}(),function(){!function(){var e=a.defineLocale("pt-br",{months:"Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Dom_2ª_3ª_4ª_5ª_6ª_Sáb".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [às] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [às] HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"%s atrás",s:"poucos segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},ordinalParse:/\d{1,2}º/,ordinal:"%dº"});return e}(),e.fullCalendar.datepickerLocale("pt-br","pt-BR",{closeText:"Fechar",prevText:"<Anterior",nextText:"Próximo>",currentText:"Hoje",monthNames:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],monthNamesShort:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],dayNames:["Domingo","Segunda-feira","Terça-feira","Quarta-feira","Quinta-feira","Sexta-feira","Sábado"],dayNamesShort:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],dayNamesMin:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"], +weekHeader:"Sm",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("pt-br",{buttonText:{month:"Mês",week:"Semana",day:"Dia",list:"Compromissos"},allDayText:"dia inteiro",eventLimitText:function(e){return"mais +"+e},noEventsMessage:"Não há eventos para mostrar"})}(),function(){!function(){function e(e,a,t){var n={mm:"minute",hh:"ore",dd:"zile",MM:"luni",yy:"ani"},r=" ";return(e%100>=20||e>=100&&e%100===0)&&(r=" de "),e+r+n[t]}var t=a.defineLocale("ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"duminică_luni_marți_miercuri_joi_vineri_sâmbătă".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_Sâm".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_Sâ".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[mâine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s în urmă",s:"câteva secunde",m:"un minut",mm:e,h:"o oră",hh:e,d:"o zi",dd:e,M:"o lună",MM:e,y:"un an",yy:e},week:{dow:1,doy:7}});return t}(),e.fullCalendar.datepickerLocale("ro","ro",{closeText:"Închide",prevText:"« Luna precedentă",nextText:"Luna următoare »",currentText:"Azi",monthNames:["Ianuarie","Februarie","Martie","Aprilie","Mai","Iunie","Iulie","August","Septembrie","Octombrie","Noiembrie","Decembrie"],monthNamesShort:["Ian","Feb","Mar","Apr","Mai","Iun","Iul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Duminică","Luni","Marţi","Miercuri","Joi","Vineri","Sâmbătă"],dayNamesShort:["Dum","Lun","Mar","Mie","Joi","Vin","Sâm"],dayNamesMin:["Du","Lu","Ma","Mi","Jo","Vi","Sâ"],weekHeader:"Săpt",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("ro",{buttonText:{prev:"precedentă",next:"următoare",month:"Lună",week:"Săptămână",day:"Zi",list:"Agendă"},allDayText:"Toată ziua",eventLimitText:function(e){return"+alte "+e},noEventsMessage:"Nu există evenimente de afișat"})}(),function(){!function(){function e(e,a){var t=e.split("_");return a%10===1&&a%100!==11?t[0]:a%10>=2&&a%10<=4&&(a%100<10||a%100>=20)?t[1]:t[2]}function t(a,t,n){var r={mm:t?"минута_минуты_минут":"минуту_минуты_минут",hh:"час_часа_часов",dd:"день_дня_дней",MM:"месяц_месяца_месяцев",yy:"год_года_лет"};return"m"===n?t?"минута":"минуту":a+" "+e(r[n],+a)}var n=[/^янв/i,/^фев/i,/^мар/i,/^апр/i,/^ма[йя]/i,/^июн/i,/^июл/i,/^авг/i,/^сен/i,/^окт/i,/^ноя/i,/^дек/i],r=a.defineLocale("ru",{months:{format:"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря".split("_"),standalone:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_")},monthsShort:{format:"янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.".split("_"),standalone:"янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.".split("_")},weekdays:{standalone:"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"),format:"воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу".split("_"),isFormat:/\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\] ?dddd/},weekdaysShort:"вс_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"вс_пн_вт_ср_чт_пт_сб".split("_"),monthsParse:n,longMonthsParse:n,shortMonthsParse:n,monthsRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,monthsShortRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,monthsStrictRegex:/^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,monthsShortStrictRegex:/^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., HH:mm",LLLL:"dddd, D MMMM YYYY г., HH:mm"},calendar:{sameDay:"[Сегодня в] LT",nextDay:"[Завтра в] LT",lastDay:"[Вчера в] LT",nextWeek:function(e){if(e.week()===this.week())return 2===this.day()?"[Во] dddd [в] LT":"[В] dddd [в] LT";switch(this.day()){case 0:return"[В следующее] dddd [в] LT";case 1:case 2:case 4:return"[В следующий] dddd [в] LT";case 3:case 5:case 6:return"[В следующую] dddd [в] LT"}},lastWeek:function(e){if(e.week()===this.week())return 2===this.day()?"[Во] dddd [в] LT":"[В] dddd [в] LT";switch(this.day()){case 0:return"[В прошлое] dddd [в] LT";case 1:case 2:case 4:return"[В прошлый] dddd [в] LT";case 3:case 5:case 6:return"[В прошлую] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"через %s",past:"%s назад",s:"несколько секунд",m:t,mm:t,h:"час",hh:t,d:"день",dd:t,M:"месяц",MM:t,y:"год",yy:t},meridiemParse:/ночи|утра|дня|вечера/i,isPM:function(e){return/^(дня|вечера)$/.test(e)},meridiem:function(e,a,t){return e<4?"ночи":e<12?"утра":e<17?"дня":"вечера"},ordinalParse:/\d{1,2}-(й|го|я)/,ordinal:function(e,a){switch(a){case"M":case"d":case"DDD":return e+"-й";case"D":return e+"-го";case"w":case"W":return e+"-я";default:return e}},week:{dow:1,doy:7}});return r}(),e.fullCalendar.datepickerLocale("ru","ru",{closeText:"Закрыть",prevText:"<Пред",nextText:"След>",currentText:"Сегодня",monthNames:["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],monthNamesShort:["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек"],dayNames:["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"],dayNamesShort:["вск","пнд","втр","срд","чтв","птн","сбт"],dayNamesMin:["Вс","Пн","Вт","Ср","Чт","Пт","Сб"],weekHeader:"Нед",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("ru",{buttonText:{month:"Месяц",week:"Неделя",day:"День",list:"Повестка дня"},allDayText:"Весь день",eventLimitText:function(e){return"+ ещё "+e},noEventsMessage:"Нет событий для отображения"})}(),function(){!function(){function e(e){return e>1&&e<5}function t(a,t,n,r){var s=a+" ";switch(n){case"s":return t||r?"pár sekúnd":"pár sekundami";case"m":return t?"minúta":r?"minútu":"minútou";case"mm":return t||r?s+(e(a)?"minúty":"minút"):s+"minútami";case"h":return t?"hodina":r?"hodinu":"hodinou";case"hh":return t||r?s+(e(a)?"hodiny":"hodín"):s+"hodinami";case"d":return t||r?"deň":"dňom";case"dd":return t||r?s+(e(a)?"dni":"dní"):s+"dňami";case"M":return t||r?"mesiac":"mesiacom";case"MM":return t||r?s+(e(a)?"mesiace":"mesiacov"):s+"mesiacmi";case"y":return t||r?"rok":"rokom";case"yy":return t||r?s+(e(a)?"roky":"rokov"):s+"rokmi"}}var n="január_február_marec_apríl_máj_jún_júl_august_september_október_november_december".split("_"),r="jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec".split("_"),s=a.defineLocale("sk",{months:n,monthsShort:r,weekdays:"nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_št_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_št_pi_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm"},calendar:{sameDay:"[dnes o] LT",nextDay:"[zajtra o] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nedeľu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo štvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[včera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulú nedeľu o] LT";case 1:case 2:return"[minulý] dddd [o] LT";case 3:return"[minulú stredu o] LT";case 4:case 5:return"[minulý] dddd [o] LT";case 6:return"[minulú sobotu o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return s}(),e.fullCalendar.datepickerLocale("sk","sk",{closeText:"Zavrieť",prevText:"<Predchádzajúci",nextText:"Nasledujúci>",currentText:"Dnes",monthNames:["január","február","marec","apríl","máj","jún","júl","august","september","október","november","december"],monthNamesShort:["Jan","Feb","Mar","Apr","Máj","Jún","Júl","Aug","Sep","Okt","Nov","Dec"],dayNames:["nedeľa","pondelok","utorok","streda","štvrtok","piatok","sobota"],dayNamesShort:["Ned","Pon","Uto","Str","Štv","Pia","Sob"],dayNamesMin:["Ne","Po","Ut","St","Št","Pia","So"],weekHeader:"Ty",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("sk",{buttonText:{month:"Mesiac",week:"Týždeň",day:"Deň",list:"Rozvrh"},allDayText:"Celý deň",eventLimitText:function(e){return"+ďalšie: "+e},noEventsMessage:"Žiadne akcie na zobrazenie"})}(),function(){!function(){function e(e,a,t,n){var r=e+" ";switch(t){case"s":return a||n?"nekaj sekund":"nekaj sekundami";case"m":return a?"ena minuta":"eno minuto";case"mm":return r+=1===e?a?"minuta":"minuto":2===e?a||n?"minuti":"minutama":e<5?a||n?"minute":"minutami":a||n?"minut":"minutami";case"h":return a?"ena ura":"eno uro";case"hh":return r+=1===e?a?"ura":"uro":2===e?a||n?"uri":"urama":e<5?a||n?"ure":"urami":a||n?"ur":"urami";case"d":return a||n?"en dan":"enim dnem";case"dd":return r+=1===e?a||n?"dan":"dnem":2===e?a||n?"dni":"dnevoma":a||n?"dni":"dnevi";case"M":return a||n?"en mesec":"enim mesecem";case"MM":return r+=1===e?a||n?"mesec":"mesecem":2===e?a||n?"meseca":"mesecema":e<5?a||n?"mesece":"meseci":a||n?"mesecev":"meseci";case"y":return a||n?"eno leto":"enim letom";case"yy":return r+=1===e?a||n?"leto":"letom":2===e?a||n?"leti":"letoma":e<5?a||n?"leta":"leti":a||n?"let":"leti"}}var t=a.defineLocale("sl",{months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._čet._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_če_pe_so".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[včeraj ob] LT",lastWeek:function(){switch(this.day()){case 0:return"[prejšnjo] [nedeljo] [ob] LT";case 3:return"[prejšnjo] [sredo] [ob] LT";case 6:return"[prejšnjo] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[prejšnji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"čez %s",past:"pred %s",s:e,m:e,mm:e,h:e,hh:e,d:e,dd:e,M:e,MM:e,y:e,yy:e},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});return t}(),e.fullCalendar.datepickerLocale("sl","sl",{closeText:"Zapri",prevText:"<Prejšnji",nextText:"Naslednji>",currentText:"Trenutni",monthNames:["Januar","Februar","Marec","April","Maj","Junij","Julij","Avgust","September","Oktober","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec"],dayNames:["Nedelja","Ponedeljek","Torek","Sreda","Četrtek","Petek","Sobota"],dayNamesShort:["Ned","Pon","Tor","Sre","Čet","Pet","Sob"],dayNamesMin:["Ne","Po","To","Sr","Če","Pe","So"],weekHeader:"Teden",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("sl",{buttonText:{month:"Mesec",week:"Teden",day:"Dan",list:"Dnevni red"},allDayText:"Ves dan",eventLimitText:"več",noEventsMessage:"Ni dogodkov za prikaz"})}(),function(){!function(){var e={words:{m:["jedan minut","jedne minute"],mm:["minut","minute","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mesec","meseca","meseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(e,a){return 1===e?a[0]:e>=2&&e<=4?a[1]:a[2]},translate:function(a,t,n){var r=e.words[n];return 1===n.length?t?r[0]:r[1]:a+" "+e.correctGrammaticalCase(a,r)}},t=a.defineLocale("sr",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sre._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){var e=["[prošle] [nedelje] [u] LT","[prošlog] [ponedeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"];return e[this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",m:e.translate,mm:e.translate,h:e.translate,hh:e.translate,d:"dan",dd:e.translate,M:"mesec",MM:e.translate,y:"godinu",yy:e.translate},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});return t}(),e.fullCalendar.datepickerLocale("sr","sr",{closeText:"Затвори",prevText:"<",nextText:">",currentText:"Данас",monthNames:["Јануар","Фебруар","Март","Април","Мај","Јун","Јул","Август","Септембар","Октобар","Новембар","Децембар"],monthNamesShort:["Јан","Феб","Мар","Апр","Мај","Јун","Јул","Авг","Сеп","Окт","Нов","Дец"],dayNames:["Недеља","Понедељак","Уторак","Среда","Четвртак","Петак","Субота"],dayNamesShort:["Нед","Пон","Уто","Сре","Чет","Пет","Суб"],dayNamesMin:["Не","По","Ут","Ср","Че","Пе","Су"],weekHeader:"Сед",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("sr",{buttonText:{month:"Месец",week:"Недеља",day:"Дан",list:"Планер"},allDayText:"Цео дан",eventLimitText:function(e){return"+ још "+e},noEventsMessage:"Нема догађаја за приказ"})}(),function(){!function(){var e={words:{m:["један минут","једне минуте"],mm:["минут","минуте","минута"],h:["један сат","једног сата"],hh:["сат","сата","сати"],dd:["дан","дана","дана"],MM:["месец","месеца","месеци"],yy:["година","године","година"]},correctGrammaticalCase:function(e,a){return 1===e?a[0]:e>=2&&e<=4?a[1]:a[2]},translate:function(a,t,n){var r=e.words[n];return 1===n.length?t?r[0]:r[1]:a+" "+e.correctGrammaticalCase(a,r)}},t=a.defineLocale("sr-cyrl",{months:"јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар".split("_"),monthsShort:"јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.".split("_"),monthsParseExact:!0,weekdays:"недеља_понедељак_уторак_среда_четвртак_петак_субота".split("_"),weekdaysShort:"нед._пон._уто._сре._чет._пет._суб.".split("_"),weekdaysMin:"не_по_ут_ср_че_пе_су".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[данас у] LT",nextDay:"[сутра у] LT",nextWeek:function(){switch(this.day()){case 0:return"[у] [недељу] [у] LT";case 3:return"[у] [среду] [у] LT";case 6:return"[у] [суботу] [у] LT";case 1:case 2:case 4:case 5:return"[у] dddd [у] LT"}},lastDay:"[јуче у] LT",lastWeek:function(){var e=["[прошле] [недеље] [у] LT","[прошлог] [понедељка] [у] LT","[прошлог] [уторка] [у] LT","[прошле] [среде] [у] LT","[прошлог] [четвртка] [у] LT","[прошлог] [петка] [у] LT","[прошле] [суботе] [у] LT"];return e[this.day()]},sameElse:"L"},relativeTime:{future:"за %s",past:"пре %s",s:"неколико секунди",m:e.translate,mm:e.translate,h:e.translate,hh:e.translate,d:"дан",dd:e.translate,M:"месец",MM:e.translate,y:"годину",yy:e.translate},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});return t}(),e.fullCalendar.datepickerLocale("sr-cyrl","sr",{closeText:"Затвори",prevText:"<",nextText:">",currentText:"Данас",monthNames:["Јануар","Фебруар","Март","Април","Мај","Јун","Јул","Август","Септембар","Октобар","Новембар","Децембар"],monthNamesShort:["Јан","Феб","Мар","Апр","Мај","Јун","Јул","Авг","Сеп","Окт","Нов","Дец"],dayNames:["Недеља","Понедељак","Уторак","Среда","Четвртак","Петак","Субота"],dayNamesShort:["Нед","Пон","Уто","Сре","Чет","Пет","Суб"],dayNamesMin:["Не","По","Ут","Ср","Че","Пе","Су"],weekHeader:"Сед",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("sr-cyrl",{buttonText:{month:"Месец",week:"Недеља",day:"Дан",list:"Планер"},allDayText:"Цео дан",eventLimitText:function(e){return"+ још "+e},noEventsMessage:"Нема догађаја за приказ"})}(),function(){!function(){var e=a.defineLocale("sv",{months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag".split("_"),weekdaysShort:"sön_mån_tis_ons_tor_fre_lör".split("_"),weekdaysMin:"sö_må_ti_on_to_fr_lö".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [kl.] HH:mm",LLLL:"dddd D MMMM YYYY [kl.] HH:mm",lll:"D MMM YYYY HH:mm",llll:"ddd D MMM YYYY HH:mm"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[Igår] LT",nextWeek:"[På] dddd LT",lastWeek:"[I] dddd[s] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"för %s sedan",s:"några sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en månad",MM:"%d månader",y:"ett år",yy:"%d år"},ordinalParse:/\d{1,2}(e|a)/,ordinal:function(e){var a=e%10,t=1===~~(e%100/10)?"e":1===a?"a":2===a?"a":"e";return e+t},week:{dow:1,doy:4}});return e}(),e.fullCalendar.datepickerLocale("sv","sv",{closeText:"Stäng",prevText:"«Förra",nextText:"Nästa»",currentText:"Idag",monthNames:["Januari","Februari","Mars","April","Maj","Juni","Juli","Augusti","September","Oktober","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],dayNamesShort:["Sön","Mån","Tis","Ons","Tor","Fre","Lör"],dayNames:["Söndag","Måndag","Tisdag","Onsdag","Torsdag","Fredag","Lördag"],dayNamesMin:["Sö","Må","Ti","On","To","Fr","Lö"],weekHeader:"Ve",dateFormat:"yy-mm-dd",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("sv",{buttonText:{month:"Månad",week:"Vecka",day:"Dag",list:"Program"},allDayText:"Heldag",eventLimitText:"till",noEventsMessage:"Inga händelser att visa"})}(),function(){!function(){var e=a.defineLocale("th",{months:"มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม".split("_"),monthsShort:"ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.".split("_"),monthsParseExact:!0,weekdays:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์".split("_"),weekdaysShort:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์".split("_"),weekdaysMin:"อา._จ._อ._พ._พฤ._ศ._ส.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H นาฬิกา m นาที",LTS:"H นาฬิกา m นาที s วินาที",L:"YYYY/MM/DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY เวลา H นาฬิกา m นาที",LLLL:"วันddddที่ D MMMM YYYY เวลา H นาฬิกา m นาที"},meridiemParse:/ก่อนเที่ยง|หลังเที่ยง/,isPM:function(e){return"หลังเที่ยง"===e},meridiem:function(e,a,t){return e<12?"ก่อนเที่ยง":"หลังเที่ยง"},calendar:{sameDay:"[วันนี้ เวลา] LT",nextDay:"[พรุ่งนี้ เวลา] LT",nextWeek:"dddd[หน้า เวลา] LT",lastDay:"[เมื่อวานนี้ เวลา] LT",lastWeek:"[วัน]dddd[ที่แล้ว เวลา] LT",sameElse:"L"},relativeTime:{future:"อีก %s",past:"%sที่แล้ว",s:"ไม่กี่วินาที",m:"1 นาที",mm:"%d นาที",h:"1 ชั่วโมง",hh:"%d ชั่วโมง",d:"1 วัน",dd:"%d วัน",M:"1 เดือน",MM:"%d เดือน",y:"1 ปี",yy:"%d ปี"}});return e}(),e.fullCalendar.datepickerLocale("th","th",{closeText:"ปิด",prevText:"« ย้อน",nextText:"ถัดไป »",currentText:"วันนี้",monthNames:["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม"],monthNamesShort:["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค."],dayNames:["อาทิตย์","จันทร์","อังคาร","พุธ","พฤหัสบดี","ศุกร์","เสาร์"],dayNamesShort:["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],dayNamesMin:["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],weekHeader:"Wk",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("th",{buttonText:{month:"เดือน",week:"สัปดาห์",day:"วัน",list:"แผนงาน"},allDayText:"ตลอดวัน",eventLimitText:"เพิ่มเติม",noEventsMessage:"ไม่มีกิจกรรมที่จะแสดง"})}(),function(){!function(){var e={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'üncü",4:"'üncü",100:"'üncü",6:"'ncı",9:"'uncu",10:"'uncu",30:"'uncu",60:"'ıncı",90:"'ıncı"},t=a.defineLocale("tr",{months:"Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık".split("_"),monthsShort:"Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_Çar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_Ça_Pe_Cu_Ct".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[yarın saat] LT",nextWeek:"[haftaya] dddd [saat] LT",lastDay:"[dün] LT",lastWeek:"[geçen hafta] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s önce",s:"birkaç saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir yıl",yy:"%d yıl"},ordinalParse:/\d{1,2}'(inci|nci|üncü|ncı|uncu|ıncı)/,ordinal:function(a){if(0===a)return a+"'ıncı";var t=a%10,n=a%100-t,r=a>=100?100:null;return a+(e[t]||e[n]||e[r])},week:{dow:1,doy:7}});return t}(),e.fullCalendar.datepickerLocale("tr","tr",{closeText:"kapat",prevText:"<geri",nextText:"ileri>",currentText:"bugün",monthNames:["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık"],monthNamesShort:["Oca","Şub","Mar","Nis","May","Haz","Tem","Ağu","Eyl","Eki","Kas","Ara"],dayNames:["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"],dayNamesShort:["Pz","Pt","Sa","Ça","Pe","Cu","Ct"],dayNamesMin:["Pz","Pt","Sa","Ça","Pe","Cu","Ct"],weekHeader:"Hf",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("tr",{buttonText:{next:"ileri",month:"Ay",week:"Hafta",day:"Gün",list:"Ajanda"},allDayText:"Tüm gün",eventLimitText:"daha fazla",noEventsMessage:"Herhangi bir etkinlik görüntülemek için"})}(),function(){!function(){function e(e,a){var t=e.split("_");return a%10===1&&a%100!==11?t[0]:a%10>=2&&a%10<=4&&(a%100<10||a%100>=20)?t[1]:t[2]}function t(a,t,n){var r={mm:t?"хвилина_хвилини_хвилин":"хвилину_хвилини_хвилин",hh:t?"година_години_годин":"годину_години_годин",dd:"день_дні_днів",MM:"місяць_місяці_місяців",yy:"рік_роки_років"};return"m"===n?t?"хвилина":"хвилину":"h"===n?t?"година":"годину":a+" "+e(r[n],+a)}function n(e,a){var t={nominative:"неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота".split("_"),accusative:"неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу".split("_"),genitive:"неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи".split("_")},n=/(\[[ВвУу]\]) ?dddd/.test(a)?"accusative":/\[?(?:минулої|наступної)? ?\] ?dddd/.test(a)?"genitive":"nominative";return t[n][e.day()]}function r(e){return function(){return e+"о"+(11===this.hours()?"б":"")+"] LT"}}var s=a.defineLocale("uk",{months:{format:"січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня".split("_"),standalone:"січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень".split("_")},monthsShort:"січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд".split("_"),weekdays:n,weekdaysShort:"нд_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY р.",LLL:"D MMMM YYYY р., HH:mm",LLLL:"dddd, D MMMM YYYY р., HH:mm"},calendar:{sameDay:r("[Сьогодні "),nextDay:r("[Завтра "),lastDay:r("[Вчора "),nextWeek:r("[У] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return r("[Минулої] dddd [").call(this);case 1:case 2:case 4:return r("[Минулого] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"за %s",past:"%s тому",s:"декілька секунд",m:t,mm:t,h:"годину",hh:t,d:"день",dd:t,M:"місяць",MM:t,y:"рік",yy:t},meridiemParse:/ночі|ранку|дня|вечора/,isPM:function(e){return/^(дня|вечора)$/.test(e)},meridiem:function(e,a,t){return e<4?"ночі":e<12?"ранку":e<17?"дня":"вечора"},ordinalParse:/\d{1,2}-(й|го)/,ordinal:function(e,a){switch(a){case"M":case"d":case"DDD":case"w":case"W":return e+"-й";case"D":return e+"-го";default:return e}},week:{dow:1,doy:7}});return s}(),e.fullCalendar.datepickerLocale("uk","uk",{closeText:"Закрити",prevText:"<",nextText:">",currentText:"Сьогодні",monthNames:["Січень","Лютий","Березень","Квітень","Травень","Червень","Липень","Серпень","Вересень","Жовтень","Листопад","Грудень"],monthNamesShort:["Січ","Лют","Бер","Кві","Тра","Чер","Лип","Сер","Вер","Жов","Лис","Гру"],dayNames:["неділя","понеділок","вівторок","середа","четвер","п’ятниця","субота"],dayNamesShort:["нед","пнд","вів","срд","чтв","птн","сбт"],dayNamesMin:["Нд","Пн","Вт","Ср","Чт","Пт","Сб"],weekHeader:"Тиж",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("uk",{buttonText:{month:"Місяць",week:"Тиждень",day:"День",list:"Порядок денний"},allDayText:"Увесь день",eventLimitText:function(e){return"+ще "+e+"..."},noEventsMessage:"Немає подій для відображення"})}(),function(){!function(){var e=a.defineLocale("vi",{months:"tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12".split("_"),monthsShort:"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12".split("_"),monthsParseExact:!0,weekdays:"chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy".split("_"),weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysParseExact:!0,meridiemParse:/sa|ch/i,isPM:function(e){return/^ch$/i.test(e)},meridiem:function(e,a,t){return e<12?t?"sa":"SA":t?"ch":"CH"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [năm] YYYY",LLL:"D MMMM [năm] YYYY HH:mm",LLLL:"dddd, D MMMM [năm] YYYY HH:mm",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[Hôm nay lúc] LT",nextDay:"[Ngày mai lúc] LT",nextWeek:"dddd [tuần tới lúc] LT",lastDay:"[Hôm qua lúc] LT",lastWeek:"dddd [tuần rồi lúc] LT",sameElse:"L"},relativeTime:{future:"%s tới",past:"%s trước",s:"vài giây",m:"một phút",mm:"%d phút",h:"một giờ",hh:"%d giờ",d:"một ngày",dd:"%d ngày",M:"một tháng",MM:"%d tháng",y:"một năm",yy:"%d năm"},ordinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}});return e}(),e.fullCalendar.datepickerLocale("vi","vi",{closeText:"Đóng",prevText:"<Trước",nextText:"Tiếp>",currentText:"Hôm nay",monthNames:["Tháng Một","Tháng Hai","Tháng Ba","Tháng Tư","Tháng Năm","Tháng Sáu","Tháng Bảy","Tháng Tám","Tháng Chín","Tháng Mười","Tháng Mười Một","Tháng Mười Hai"],monthNamesShort:["Tháng 1","Tháng 2","Tháng 3","Tháng 4","Tháng 5","Tháng 6","Tháng 7","Tháng 8","Tháng 9","Tháng 10","Tháng 11","Tháng 12"],dayNames:["Chủ Nhật","Thứ Hai","Thứ Ba","Thứ Tư","Thứ Năm","Thứ Sáu","Thứ Bảy"],dayNamesShort:["CN","T2","T3","T4","T5","T6","T7"],dayNamesMin:["CN","T2","T3","T4","T5","T6","T7"],weekHeader:"Tu",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("vi",{buttonText:{month:"Tháng",week:"Tuần",day:"Ngày",list:"Lịch biểu"},allDayText:"Cả ngày",eventLimitText:function(e){return"+ thêm "+e},noEventsMessage:"Không có sự kiện để hiển thị"})}(),function(){!function(){var e=a.defineLocale("zh-cn",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"Ah点mm分",LTS:"Ah点m分s秒",L:"YYYY-MM-DD",LL:"YYYY年MMMD日",LLL:"YYYY年MMMD日Ah点mm分",LLLL:"YYYY年MMMD日ddddAh点mm分",l:"YYYY-MM-DD",ll:"YYYY年MMMD日",lll:"YYYY年MMMD日Ah点mm分",llll:"YYYY年MMMD日ddddAh点mm分"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,a){return 12===e&&(e=0),"凌晨"===a||"早上"===a||"上午"===a?e:"下午"===a||"晚上"===a?e+12:e>=11?e:e+12},meridiem:function(e,a,t){var n=100*e+a;return n<600?"凌晨":n<900?"早上":n<1130?"上午":n<1230?"中午":n<1800?"下午":"晚上"},calendar:{sameDay:function(){return 0===this.minutes()?"[今天]Ah[点整]":"[今天]LT"},nextDay:function(){return 0===this.minutes()?"[明天]Ah[点整]":"[明天]LT"},lastDay:function(){return 0===this.minutes()?"[昨天]Ah[点整]":"[昨天]LT"},nextWeek:function(){var e,t;return e=a().startOf("week"),t=this.diff(e,"days")>=7?"[下]":"[本]",0===this.minutes()?t+"dddAh点整":t+"dddAh点mm"},lastWeek:function(){var e,t;return e=a().startOf("week"),t=this.unix()=11?e:e+12:"下午"===a||"晚上"===a?e+12:void 0},meridiem:function(e,a,t){var n=100*e+a;return n<600?"凌晨":n<900?"早上":n<1130?"上午":n<1230?"中午":n<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},ordinalParse:/\d{1,2}(日|月|週)/,ordinal:function(e,a){switch(a){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週"; +default:return e}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}});return e}(),e.fullCalendar.datepickerLocale("zh-tw","zh-TW",{closeText:"關閉",prevText:"<上月",nextText:"下月>",currentText:"今天",monthNames:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthNamesShort:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],dayNames:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],dayNamesShort:["周日","周一","周二","周三","周四","周五","周六"],dayNamesMin:["日","一","二","三","四","五","六"],weekHeader:"周",dateFormat:"yy/mm/dd",firstDay:1,isRTL:!1,showMonthAfterYear:!0,yearSuffix:"年"}),e.fullCalendar.locale("zh-tw",{buttonText:{month:"月",week:"週",day:"天",list:"待辦事項"},allDayText:"全天",eventLimitText:"更多",noEventsMessage:"没有事件显示"})}(),a.locale("en"),e.fullCalendar.locale("en"),e.datepicker&&e.datepicker.setDefaults(e.datepicker.regional[""])}); \ No newline at end of file diff --git a/library/moment/CHANGELOG.md b/library/moment/CHANGELOG.md new file mode 100644 index 000000000..d53a56153 --- /dev/null +++ b/library/moment/CHANGELOG.md @@ -0,0 +1,694 @@ +Changelog +========= + +### 2.15.1 +* Release Sept 20, 2016 +* [3438] [bugfix] Fix locale autoload, revert #3344 + +### 2.15.0 [See full changelog](https://gist.github.com/ichernev/10e1c5bf647545c72ca30e9628a09ed3) +- Release Sept 12, 2016 + +## New Locales +* [#3255](https://github.com/moment/moment/pull/3255) [new locale] mi: Maori language +* [#3267](https://github.com/moment/moment/pull/3267) [new locale] ar-ly: Arabic (Libya) locale +* [#3333](https://github.com/moment/moment/pull/3333) [new locale] zh-hk: Chinese (Hong Kong) locale + +## Bugfixes +* [#3276](https://github.com/moment/moment/pull/3276) [bugfix] duration: parser: Support ms durations in .NET syntax +* [#3312](https://github.com/moment/moment/pull/3312) [bugfix] locales: Enable locale-data getters without moment (fixes [#3284](https://github.com/moment/moment/issues/3284)) +* [#3381](https://github.com/moment/moment/pull/3381) [bugfix] parsing: Fix parseZone without timezone in string, fixes [#3083](https://github.com/moment/moment/issues/3083) +* [#3383](https://github.com/moment/moment/pull/3383) [bugfix] toJSON: Fix isValid so that toJSON works after a moment is frozen +* [#3427](https://github.com/moment/moment/pull/3427) [bugfix] ie8: Fix IE8 (regression in 2.14.x) + +## Packaging +* [#3299](https://github.com/moment/moment/pull/3299) [pkg] npm: Do not include .npmignore in npm package +* [#3273](https://github.com/moment/moment/pull/3273) [pkg] jspm: Include moment.d.ts file in package +* [#3344](https://github.com/moment/moment/pull/3344) [pkg] exports: use module.require for nodejs + +Also some locale and typescript improvements + +### 2.14.1 +- Release July 20, 2016 +* [#3280](https://github.com/moment/moment/pull/3280) Fix typescript definitions + + +### 2.14.0 [See full changelog](https://gist.github.com/ichernev/812e79ac36a7829a22598fe964bfc18a) + +- Release July 20, 2016 + +## New Features +* [#3233](http://github.com/moment/moment/pull/3233) Introduce month.isFormat for format/standalone discovery +* [#2848](http://github.com/moment/moment/pull/2848) Allow user to get/set the rounding method used when calculating relative time +* [#3112](http://github.com/moment/moment/pull/3112) optimize configFromStringAndFormat +* [#3147](http://github.com/moment/moment/pull/3147) Call calendar format function with moment context +* [#3160](http://github.com/moment/moment/pull/3160) deprecate isDSTShifted +* [#3175](http://github.com/moment/moment/pull/3175) make moment calendar extensible with ad-hoc options +* [#3191](http://github.com/moment/moment/pull/3191) toDate returns a copy of the internal date object +* [#3192](http://github.com/moment/moment/pull/3192) Adding support for rollup import. +* [#3238](http://github.com/moment/moment/pull/3238) Handle empty object and empty array for creation as now +* [#3082](http://github.com/moment/moment/pull/3082) Use relative AMD moment dependency + +## Bugfixes +* [#3241](http://github.com/moment/moment/pull/3241) Escape all 24 mixed pieces, not only first 12 in computeMonthsParse +* [#3008](http://github.com/moment/moment/pull/3008) Object setter orders sets based on size of unit +* [#3177](http://github.com/moment/moment/pull/3177) Bug Fix [#2704](http://github.com/moment/moment/pull/2704) - isoWeekday(String) inconsistent with isoWeekday(Number) +* [#3230](http://github.com/moment/moment/pull/3230) fix passing date with format string to ignore format string +* [#3232](http://github.com/moment/moment/pull/3232) Fix negative 0 in certain diff cases +* [#3235](http://github.com/moment/moment/pull/3235) Use proper locale inheritance for the base locale, fixes [#3137](http://github.com/moment/moment/pull/3137) + +Plus es-do locale and locale bugfixes + +### 2.13.0 [See full changelog](https://gist.github.com/ichernev/0132fcf5b61f7fc140b0bb0090480d49) +- Release April 18, 2016 +## Enhancements: +* [#2982](https://github.com/moment/moment/pull/2982) Add 'date' as alias to 'day' for startOf() and endOf(). +* [#2955](https://github.com/moment/moment/pull/2955) Add parsing negative components in durations when ISO 8601 +* [#2991](https://github.com/moment/moment/pull/2991) isBetween support for both open and closed intervals +* [#3105](https://github.com/moment/moment/pull/3105) Add localeSorted argument to weekday listers +* [#3102](https://github.com/moment/moment/pull/3102) Add k and kk formatting tokens + +## Bugfixes +* [#3109](https://github.com/moment/moment/pull/3109) Fix [#1756](https://github.com/moment/moment/issues/1756) Resolved thread-safe issue on server side. +* [#3078](https://github.com/moment/moment/pull/3078) Fix parsing for months/weekdays with weird characters +* [#3098](https://github.com/moment/moment/pull/3098) Use Z suffix when in UTC mode ([#3020](https://github.com/moment/moment/issues/3020)) +* [#2995](https://github.com/moment/moment/pull/2995) Fix floating point rounding errors in durations +* [#3059](https://github.com/moment/moment/pull/3059) fix bug where diff returns -0 in month-related diffs +* [#3045](https://github.com/moment/moment/pull/3045) Fix mistaking any input for 'a' token +* [#2877](https://github.com/moment/moment/pull/2877) Use explicit .valueOf() calls instead of coercion +* [#3036](https://github.com/moment/moment/pull/3036) Year setter should keep time when DST changes + +Plus 3 new locales and locale fixes. + +### 2.12.0 [See full changelog](https://gist.github.com/ichernev/6e5bfdf8d6522fc4ac73) + +- Release March 7, 2016 + +## Enhancements: +* [#2932](https://github.com/moment/moment/pull/2932) List loaded locales +* [#2818](https://github.com/moment/moment/pull/2818) Parse ISO-8061 duration containing both day and week values +* [#2774](https://github.com/moment/moment/pull/2774) Implement locale inheritance and locale updating + +## Bugfixes: +* [#2970](https://github.com/moment/moment/pull/2970) change add subtract to handle decimal values by rounding +* [#2887](https://github.com/moment/moment/pull/2887) Fix toJSON casting of invalid moment +* [#2897](https://github.com/moment/moment/pull/2897) parse string arguments for month() correctly, closes #2884 +* [#2946](https://github.com/moment/moment/pull/2946) Fix usage suggestions for min and max + +## New locales: +* [#2917](https://github.com/moment/moment/pull/2917) Locale Punjabi(Gurmukhi) India format conversion + +And more + +### 2.11.2 (Fix ReDoS attack vector) + +- Release February 7, 2016 + +* [#2939](https://github.com/moment/moment/pull/2939) use full-string match to speed up aspnet regex match + +### 2.11.1 [See full changelog](https://gist.github.com/ichernev/8ec3ee25b749b4cff3c2) + +- Release January 9, 2016 + +## Bugfixes: +* [#2881](https://github.com/moment/moment/pull/2881) Revert "Merge pull request #2746 from mbad0la:develop" Sep->Sept +* [#2868](https://github.com/moment/moment/pull/2868) Add format and parse token Y, so it actually works +* [#2865](https://github.com/moment/moment/pull/2865) Use typeof checks for undefined for global variables +* [#2858](https://github.com/moment/moment/pull/2858) Fix Date mocking regression introduced in 2.11.0 +* [#2864](https://github.com/moment/moment/pull/2864) Include changelog in npm release +* [#2830](https://github.com/moment/moment/pull/2830) dep: add grunt-cli +* [#2869](https://github.com/moment/moment/pull/2869) Fix months parsing for some locales + +### 2.11.0 [See full changelog](https://gist.github.com/ichernev/6594bc29719dde6b2f66) + +- Release January 4, 2016 + +* [#2624](https://github.com/moment/moment/pull/2624) Proper handling of invalid moments +* [#2634](https://github.com/moment/moment/pull/2634) Fix strict month parsing issue in cs,ru,sk +* [#2735](https://github.com/moment/moment/pull/2735) Reset the locale back to 'en' after defining all locales in min/locales.js +* [#2702](https://github.com/moment/moment/pull/2702) Week rework +* [#2746](https://github.com/moment/moment/pull/2746) Changed September Abbreviation to "Sept" in locale-specific english + files and default locale file +* [#2646](https://github.com/moment/moment/pull/2646) Fix [#2645](https://github.com/moment/moment/pull/2645) - invalid dates pre-1970 + +* [#2641](https://github.com/moment/moment/pull/2641) Implement basic format and comma as ms separator in ISO 8601 +* [#2665](https://github.com/moment/moment/pull/2665) Implement stricter weekday parsing +* [#2700](https://github.com/moment/moment/pull/2700) Add [Hh]mm and [Hh]mmss formatting tokens, so you can parse 123 with + hmm for example +* [#2565](https://github.com/moment/moment/pull/2565) [#2835](https://github.com/moment/moment/pull/2835) Expose arguments used for moment creation with creationData + (fix [#2443](https://github.com/moment/moment/pull/2443)) +* [#2648](https://github.com/moment/moment/pull/2648) fix issue [#2640](https://github.com/moment/moment/pull/2640): support instanceof operator +* [#2709](https://github.com/moment/moment/pull/2709) Add isSameOrAfter and isSameOrBefore comparison methods +* [#2721](https://github.com/moment/moment/pull/2721) Fix moment creation from object with strings values +* [#2740](https://github.com/moment/moment/pull/2740) Enable 'd hh:mm:ss.sss' format for durations +* [#2766](https://github.com/moment/moment/pull/2766) [#2833](https://github.com/moment/moment/pull/2833) Alternate Clock Source Support + +### 2.10.6 + +- Release July 28, 2015 + +[#2515](https://github.com/moment/moment/pull/2515) Fix regression introduced +in `2.10.5` related to `moment.ISO_8601` parsing. + +### 2.10.5 [See full changelog](https://gist.github.com/ichernev/6ec13ac7efc396da44b2) + +- Release July 26, 2015 + +Important changes: +* [#2357](https://github.com/moment/moment/pull/2357) Improve unit bubbling for ISO dates + this fixes day to year conversions to work around end-of-year (~365 days). As + a side effect 365 days is 11 months and 30 days, and 366 days is one year. +* [#2438](https://github.com/moment/moment/pull/2438) Fix inconsistent moment.min and moment.max results + Return invalid result if any of the inputs is invalid +* [#2494](https://github.com/moment/moment/pull/2494) Fix two digit year parsing with YYYY format + This brings the benefits of YY to YYYY +* [#2368](https://github.com/moment/moment/pull/2368) perf: use faster form of copying dates, across the board improvement + + +### 2.10.3 [See full changelog](https://gist.github.com/ichernev/f264b9bed5b00f8b1b7f) + +- Release May 13, 2015 + +* add `moment.fn.to` and `moment.fn.toNow` (similar to `from` and `fromNow`) +* new locales (Sinhalese (si), Montenegrin (me), Javanese (ja)) +* performance improvements + +### 2.10.2 + +- Release April 9, 2015 + +* fixed moment-with-locales in browser env caused by esperanto change + +### 2.10.1 + +* regression: Add moment.duration.fn back + +### 2.10.0 + +Ported code to es6 modules. + +### 2.9.0 [See full changelog](https://gist.github.com/ichernev/0c9a9b49951111a27ce7) + +- Release January 8, 2015 + +languages: +* [2104](https://github.com/moment/moment/issues/2104) Frisian (fy) language file with unit test +* [2097](https://github.com/moment/moment/issues/2097) add ar-tn locale + +deprecations: +* [2074](https://github.com/moment/moment/issues/2074) Implement `moment.fn.utcOffset`, deprecate `moment.fn.zone` + +features: +* [2088](https://github.com/moment/moment/issues/2088) add moment.fn.isBetween +* [2054](https://github.com/moment/moment/issues/2054) Call updateOffset when creating moment (needed for default timezone in + moment-timezone) +* [1893](https://github.com/moment/moment/issues/1893) Add moment.isDate method +* [1825](https://github.com/moment/moment/issues/1825) Implement toJSON function on Duration +* [1809](https://github.com/moment/moment/issues/1809) Allowing moment.set() to accept a hash of units +* [2128](https://github.com/moment/moment/issues/2128) Add firstDayOfWeek, firstDayOfYear locale getters +* [2131](https://github.com/moment/moment/issues/2131) Add quarter diff support + +Some bugfixes and language improvements -- [full changelog](https://gist.github.com/ichernev/0c9a9b49951111a27ce7) + +### 2.8.4 [See full changelog](https://gist.github.com/ichernev/a4fcb0a46d74e4b9b996) + +- Release November 19, 2014 + +Features: + +* [#2000](https://github.com/moment/moment/issues/2000) Add LTS localised format that includes seconds +* [#1960](https://github.com/moment/moment/issues/1960) added formatToken 'x' for unix offset in milliseconds #1938 +* [#1965](https://github.com/moment/moment/issues/1965) Support 24:00:00.000 to mean next day, at midnight. +* [#2002](https://github.com/moment/moment/issues/2002) Accept 'date' key when creating moment with object +* [#2009](https://github.com/moment/moment/issues/2009) Use native toISOString when we can + +Some bugfixes and language improvements -- [full changelog](https://gist.github.com/ichernev/a4fcb0a46d74e4b9b996) + +### 2.8.3 + +- Release September 5, 2014 + +Bugfixes: + +* [#1801](https://github.com/moment/moment/issues/1801) proper pluralization for Arabic +* [#1833](https://github.com/moment/moment/issues/1833) improve spm integration +* [#1871](https://github.com/moment/moment/issues/1871) fix zone bug caused by Firefox 24 +* [#1882](https://github.com/moment/moment/issues/1882) Use hh:mm in Czech +* [#1883](https://github.com/moment/moment/issues/1883) Fix 2.8.0 regression in duration as conversions +* [#1890](https://github.com/moment/moment/issues/1890) Faster travis builds +* [#1892](https://github.com/moment/moment/issues/1892) Faster isBefore/After/Same +* [#1848](https://github.com/moment/moment/issues/1848) Fix flaky month diffs +* [#1895](https://github.com/moment/moment/issues/1895) Fix 2.8.0 regression in moment.utc with format array +* [#1896](https://github.com/moment/moment/issues/1896) Support setting invalid instance locale (noop) +* [#1897](https://github.com/moment/moment/issues/1897) Support moment([str]) in addition to moment([int]) + +### 2.8.2 + +- Release August 22, 2014 + +Minor bugfixes: + +* [#1874](https://github.com/moment/moment/issues/1874) use `Object.prototype.hasOwnProperty` + instead of `obj.hasOwnProperty` (ie8 bug) +* [#1873](https://github.com/moment/moment/issues/1873) add `duration#toString()` +* [#1859](https://github.com/moment/moment/issues/1859) better month/weekday names in norwegian +* [#1812](https://github.com/moment/moment/issues/1812) meridiem parsing for greek +* [#1804](https://github.com/moment/moment/issues/1804) spanish del -> de +* [#1800](https://github.com/moment/moment/issues/1800) korean LT improvement + +### 2.8.1 + +- Release August 1, 2014 + +* bugfix [#1813](https://github.com/moment/moment/issues/1813): fix moment().lang([key]) incompatibility + +### 2.8.0 [See changelog](https://gist.github.com/ichernev/ac3899324a5fa6c8c9b4) + +- Release July 31, 2014 + +* incompatible changes + * [#1761](https://github.com/moment/moment/issues/1761): moments created without a language are no longer following the global language, in case it changes. Only newly created moments take the global language by default. In case you're affected by this, wait, comment on [#1797](https://github.com/moment/moment/issues/1797) and wait for a proper reimplementation + * [#1642](https://github.com/moment/moment/issues/1642): 45 days is no longer "a month" according to humanize, cutoffs for month, and year have changed. Hopefully your code does not depend on a particular answer from humanize (which it shouldn't anyway) + * [#1784](https://github.com/moment/moment/issues/1784): if you use the human readable English datetime format in a weird way (like storing them in a database) that would break when the format changes you're at risk. + +* deprecations (old behavior will be dropped in 3.0) + * [#1761](https://github.com/moment/moment/issues/1761) `lang` is renamed to `locale`, `langData` -> `localeData`. Also there is now `defineLocale` that should be used when creating new locales + * [#1763](https://github.com/moment/moment/issues/1763) `add(unit, value)` and `subtract(unit, value)` are now deprecated. Use `add(value, unit)` and `subtract(value, unit)` instead. + * [#1759](https://github.com/moment/moment/issues/1759) rename `duration.toIsoString` to `duration.toISOString`. The js standard library and moment's `toISOString` follow that convention. + +* new locales + * [#1789](https://github.com/moment/moment/issues/1789) Tibetan (bo) + * [#1786](https://github.com/moment/moment/issues/1786) Africaans (af) + * [#1778](https://github.com/moment/moment/issues/1778) Burmese (my) + * [#1727](https://github.com/moment/moment/issues/1727) Belarusian (be) + +* bugfixes, locale bugfixes, performance improvements, features + +### 2.7.0 [See changelog](https://gist.github.com/ichernev/b0a3d456d5a84c9901d7) + +- Release June 12, 2014 + +* new languages + + * [#1678](https://github.com/moment/moment/issues/1678) Bengali (bn) + * [#1628](https://github.com/moment/moment/issues/1628) Azerbaijani (az) + * [#1633](https://github.com/moment/moment/issues/1633) Arabic, Saudi Arabia (ar-sa) + * [#1648](https://github.com/moment/moment/issues/1648) Austrian German (de-at) + +* features + + * [#1663](https://github.com/moment/moment/issues/1663) configurable relative time thresholds + * [#1554](https://github.com/moment/moment/issues/1554) support anchor time in moment.calendar + * [#1693](https://github.com/moment/moment/issues/1693) support moment.ISO_8601 as parsing format + * [#1637](https://github.com/moment/moment/issues/1637) add moment.min and moment.max and deprecate min/max instance methods + * [#1704](https://github.com/moment/moment/issues/1704) support string value in add/subtract + * [#1647](https://github.com/moment/moment/issues/1647) add spm support (package manager) + +* bugfixes + +### 2.6.0 [See changelog](https://gist.github.com/ichernev/10544682) + +- Release April 12 , 2014 + +* languages + * [#1529](https://github.com/moment/moment/issues/1529) Serbian-Cyrillic (sr-cyr) + * [#1544](https://github.com/moment/moment/issues/1544), [#1546](https://github.com/moment/moment/issues/1546) Khmer Cambodia (km) + +* features + * [#1419](https://github.com/moment/moment/issues/1419), [#1468](https://github.com/moment/moment/issues/1468), [#1467](https://github.com/moment/moment/issues/1467), [#1546](https://github.com/moment/moment/issues/1546) better handling of timezone-d moments around DST + * [#1462](https://github.com/moment/moment/issues/1462) add weeksInYear and isoWeeksInYear + * [#1475](https://github.com/moment/moment/issues/1475) support ordinal parsing + * [#1499](https://github.com/moment/moment/issues/1499) composer support + * [#1577](https://github.com/moment/moment/issues/1577), [#1604](https://github.com/moment/moment/issues/1604) put Date parsing in moment.createFromInputFallback so it can be properly deprecated and controlled in the future + * [#1545](https://github.com/moment/moment/issues/1545) extract two-digit year parsing in moment.parseTwoDigitYear, so it can be overwritten + * [#1590](https://github.com/moment/moment/issues/1590) (see [#1574](https://github.com/moment/moment/issues/1574)) set AMD global before module definition to better support non AMD module dependencies used in AMD environment + * [#1589](https://github.com/moment/moment/issues/1589) remove global in Node.JS environment (was not working before, nobody complained, was scheduled for removal anyway) + * [#1586](https://github.com/moment/moment/issues/1586) support quarter setting and parsing + +* 18 bugs fixed + +### 2.5.1 + +- Release January 22, 2014 + +* languages + * [#1392](https://github.com/moment/moment/issues/1392) Armenian (hy-am) + +* bugfixes + * [#1429](https://github.com/moment/moment/issues/1429) fixes [#1423](https://github.com/moment/moment/issues/1423) weird chrome-32 bug with js object creation + * [#1421](https://github.com/moment/moment/issues/1421) remove html entities from Welsh + * [#1418](https://github.com/moment/moment/issues/1418) fixes [#1401](https://github.com/moment/moment/issues/1401) improved non-padded tokens in strict matching + * [#1417](https://github.com/moment/moment/issues/1417) fixes [#1404](https://github.com/moment/moment/issues/1404) handle buggy moment object created by property cloning + * [#1398](https://github.com/moment/moment/issues/1398) fixes [#1397](https://github.com/moment/moment/issues/1397) fix Arabic-like week number parsing + * [#1396](https://github.com/moment/moment/issues/1396) add leftZeroFill(4) to GGGG and gggg formats + * [#1373](https://github.com/moment/moment/issues/1373) use lowercase for months and days in Catalan + +* testing + * [#1374](https://github.com/moment/moment/issues/1374) run tests on multiple browser/os combos via SauceLabs and Travis + +### 2.5.0 [See changelog](https://gist.github.com/ichernev/8104451) + +- Release Dec 24, 2013 + +* New languages + * Luxemburish (lb) [1247](https://github.com/moment/moment/issues/1247) + * Serbian (rs) [1319](https://github.com/moment/moment/issues/1319) + * Tamil (ta) [1324](https://github.com/moment/moment/issues/1324) + * Macedonian (mk) [1337](https://github.com/moment/moment/issues/1337) + +* Features + * [1311](https://github.com/moment/moment/issues/1311) Add quarter getter and format token `Q` + * [1303](https://github.com/moment/moment/issues/1303) strict parsing now respects number of digits per token (fix [1196](https://github.com/moment/moment/issues/1196)) + * 0d30bb7 add jspm support + * [1347](https://github.com/moment/moment/issues/1347) improve zone parsing + * [1362](https://github.com/moment/moment/issues/1362) support merideam parsing in Korean + +* 22 bugfixes + +### 2.4.0 + +- Release Oct 27, 2013 + +* **Deprecate** globally exported moment, will be removed in next major +* New languages + * Farose (fo) [#1206](https://github.com/moment/moment/issues/1206) + * Tagalog/Filipino (tl-ph) [#1197](https://github.com/moment/moment/issues/1197) + * Welsh (cy) [#1215](https://github.com/moment/moment/issues/1215) +* Bugfixes + * properly handle Z at the end of iso RegExp [#1187](https://github.com/moment/moment/issues/1187) + * chinese meridian time improvements [#1076](https://github.com/moment/moment/issues/1076) + * fix language tests [#1177](https://github.com/moment/moment/issues/1177) + * remove some failing tests (that should have never existed :)) + [#1185](https://github.com/moment/moment/issues/1185) + [#1183](https://github.com/moment/moment/issues/1183) + * handle russian noun cases in weird cases [#1195](https://github.com/moment/moment/issues/1195) + +### 2.3.1 + +- Release Oct 9, 2013 + +Removed a trailing comma [1169] and fixed a bug with `months`, `weekdays` getters [#1171](https://github.com/moment/moment/issues/1171). + +### 2.3.0 [See changelog](https://gist.github.com/ichernev/6864354) + +- Release Oct 7, 2013 + +Changed isValid, added strict parsing. +Week tokens parsing. + +### 2.2.1 + +- Release Sep 12, 2013 + +Fixed bug in string prototype test. +Updated authors and contributors. + +### 2.2.0 [See changelog](https://gist.github.com/ichernev/00f837a9baf46a3565e4) + +- Release Sep 11, 2013 + +Added bower support. + +Language files now use UMD. + +Creating moment defaults to current date/month/year. + +Added a bundle of moment and all language files. + +### 2.1.0 [See changelog](https://gist.github.com/timrwood/b8c2d90d528eddb53ab5) + +- Release Jul 8, 2013 + +Added better week support. + +Added ability to set offset with `moment#zone`. + +Added ability to set month or weekday from a string. + +Added `moment#min` and `moment#max` + +### 2.0.0 [See changelog](https://gist.github.com/timrwood/e72f2eef320ed9e37c51) + +- Release Feb 9, 2013 + +Added short form localized tokens. + +Added ability to define language a string should be parsed in. + +Added support for reversed add/subtract arguments. + +Added support for `endOf('week')` and `startOf('week')`. + +Fixed the logic for `moment#diff(Moment, 'months')` and `moment#diff(Moment, 'years')` + +`moment#diff` now floors instead of rounds. + +Normalized `moment#toString`. + +Added `isSame`, `isAfter`, and `isBefore` methods. + +Added better week support. + +Added `moment#toJSON` + +Bugfix: Fixed parsing of first century dates + +Bugfix: Parsing 10Sep2001 should work as expected + +Bugfix: Fixed weirdness with `moment.utc()` parsing. + +Changed language ordinal method to return the number + ordinal instead of just the ordinal. + +Changed two digit year parsing cutoff to match strptime. + +Removed `moment#sod` and `moment#eod` in favor of `moment#startOf` and `moment#endOf`. + +Removed `moment.humanizeDuration()` in favor of `moment.duration().humanize()`. + +Removed the lang data objects from the top level namespace. + +Duplicate `Date` passed to `moment()` instead of referencing it. + +### 1.7.2 [See discussion](https://github.com/timrwood/moment/issues/456) + +- Release Oct 2, 2012 + +Bugfixes + +### 1.7.1 [See discussion](https://github.com/timrwood/moment/issues/384) + +- Release Oct 1, 2012 + +Bugfixes + +### 1.7.0 [See discussion](https://github.com/timrwood/moment/issues/288) + +- Release Jul 26, 2012 + +Added `moment.fn.endOf()` and `moment.fn.startOf()`. + +Added validation via `moment.fn.isValid()`. + +Made formatting method 3x faster. http://jsperf.com/momentjs-cached-format-functions + +Add support for month/weekday callbacks in `moment.fn.format()` + +Added instance specific languages. + +Added two letter weekday abbreviations with the formatting token `dd`. + +Various language updates. + +Various bugfixes. + +### 1.6.0 [See discussion](https://github.com/timrwood/moment/pull/268) + +- Release Apr 26, 2012 + +Added Durations. + +Revamped parser to support parsing non-separated strings (YYYYMMDD vs YYYY-MM-DD). + +Added support for millisecond parsing and formatting tokens (S SS SSS) + +Added a getter for `moment.lang()` + +Various bugfixes. + +There are a few things deprecated in the 1.6.0 release. + +1. The format tokens `z` and `zz` (timezone abbreviations like EST CST MST etc) will no longer be supported. Due to inconsistent browser support, we are unable to consistently produce this value. See [this issue](https://github.com/timrwood/moment/issues/162) for more background. + +2. The method `moment.fn.native` is deprecated in favor of `moment.fn.toDate`. There continue to be issues with Google Closure Compiler throwing errors when using `native`, even in valid instances. + +3. The way to customize am/pm strings is being changed. This would only affect you if you created a custom language file. For more information, see [this issue](https://github.com/timrwood/moment/pull/222). + +### 1.5.0 [See milestone](https://github.com/timrwood/moment/issues?milestone=10&page=1&state=closed) + +- Release Mar 20, 2012 + +Added UTC mode. + +Added automatic ISO8601 parsing. + +Various bugfixes. + +### 1.4.0 [See milestone](https://github.com/timrwood/moment/issues?milestone=8&state=closed) + +- Release Feb 4, 2012 + +Added `moment.fn.toDate` as a replacement for `moment.fn.native`. + +Added `moment.fn.sod` and `moment.fn.eod` to get the start and end of day. + +Various bugfixes. + +### 1.3.0 [See milestone](https://github.com/timrwood/moment/issues?milestone=7&state=closed) + +- Release Jan 5, 2012 + +Added support for parsing month names in the current language. + +Added escape blocks for parsing tokens. + +Added `moment.fn.calendar` to format strings like 'Today 2:30 PM', 'Tomorrow 1:25 AM', and 'Last Sunday 4:30 AM'. + +Added `moment.fn.day` as a setter. + +Various bugfixes + +### 1.2.0 [See milestone](https://github.com/timrwood/moment/issues?milestone=4&state=closed) + +- Release Dec 7, 2011 + +Added timezones to parser and formatter. + +Added `moment.fn.isDST`. + +Added `moment.fn.zone` to get the timezone offset in minutes. + +### 1.1.2 [See milestone](https://github.com/timrwood/moment/issues?milestone=6&state=closed) + +- Release Nov 18, 2011 + +Various bugfixes + +### 1.1.1 [See milestone](https://github.com/timrwood/moment/issues?milestone=5&state=closed) + +- Release Nov 12, 2011 + +Added time specific diffs (months, days, hours, etc) + +### 1.1.0 + +- Release Oct 28, 2011 + +Added `moment.fn.format` localized masks. 'L LL LLL LLLL' [issue 29](https://github.com/timrwood/moment/pull/29) + +Fixed [issue 31](https://github.com/timrwood/moment/pull/31). + +### 1.0.1 + +- Release Oct 18, 2011 + +Added `moment.version` to get the current version. + +Removed `window !== undefined` when checking if module exists to support browserify. [issue 25](https://github.com/timrwood/moment/pull/25) + +### 1.0.0 + +- Release + +Added convenience methods for getting and setting date parts. + +Added better support for `moment.add()`. + +Added better lang support in NodeJS. + +Renamed library from underscore.date to Moment.js + +### 0.6.1 + +- Release Oct 12, 2011 + +Added Portuguese, Italian, and French language support + +### 0.6.0 + +- Release Sep 21, 2011 + +Added _date.lang() support. +Added support for passing multiple formats to try to parse a date. _date("07-10-1986", ["MM-DD-YYYY", "YYYY-MM-DD"]); +Made parse from string and single format 25% faster. + +### 0.5.2 + +- Release Jul 11, 2011 + +Bugfix for [issue 8](https://github.com/timrwood/underscore.date/pull/8) and [issue 9](https://github.com/timrwood/underscore.date/pull/9). + +### 0.5.1 + +- Release Jun 17, 2011 + +Bugfix for [issue 5](https://github.com/timrwood/underscore.date/pull/5). + +### 0.5.0 + +- Release Jun 13, 2011 + +Dropped the redundant `_date.date()` in favor of `_date()`. +Removed `_date.now()`, as it is a duplicate of `_date()` with no parameters. +Removed `_date.isLeapYear(yearNumber)`. Use `_date([yearNumber]).isLeapYear()` instead. +Exposed customization options through the `_date.relativeTime`, `_date.weekdays`, `_date.weekdaysShort`, `_date.months`, `_date.monthsShort`, and `_date.ordinal` variables instead of the `_date.customize()` function. + +### 0.4.1 + +- Release May 9, 2011 + +Added date input formats for input strings. + +### 0.4.0 + +- Release May 9, 2011 + +Added underscore.date to npm. Removed dependencies on underscore. + +### 0.3.2 + +- Release Apr 9, 2011 + +Added `'z'` and `'zz'` to `_.date().format()`. Cleaned up some redundant code to trim off some bytes. + +### 0.3.1 + +- Release Mar 25, 2011 + +Cleaned up the namespace. Moved all date manipulation and display functions to the _.date() object. + +### 0.3.0 + +- Release Mar 25, 2011 + +Switched to the Underscore methodology of not mucking with the native objects' prototypes. +Made chaining possible. + +### 0.2.1 + +- Release + +Changed date names to be a more pseudo standardized 'dddd, MMMM Do YYYY, h:mm:ss a'. +Added `Date.prototype` functions `add`, `subtract`, `isdst`, and `isleapyear`. + +### 0.2.0 + +- Release + +Changed function names to be more concise. +Changed date format from php date format to custom format. + +### 0.1.0 + +- Release + +Initial release + diff --git a/library/moment/LICENSE b/library/moment/LICENSE new file mode 100644 index 000000000..9ee537448 --- /dev/null +++ b/library/moment/LICENSE @@ -0,0 +1,22 @@ +Copyright (c) 2011-2016 Tim Wood, Iskren Chernev, Moment.js contributors + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. diff --git a/library/moment/README.md b/library/moment/README.md new file mode 100644 index 000000000..c45e9d624 --- /dev/null +++ b/library/moment/README.md @@ -0,0 +1,58 @@ +[![Join the chat at https://gitter.im/moment/moment](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/moment/moment?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) + +[![NPM version][npm-version-image]][npm-url] [![NPM downloads][npm-downloads-image]][npm-url] [![MIT License][license-image]][license-url] [![Build Status][travis-image]][travis-url] +[![Coverage Status](https://coveralls.io/repos/moment/moment/badge.svg?branch=develop)](https://coveralls.io/r/moment/moment?branch=develop) + +A lightweight JavaScript date library for parsing, validating, manipulating, and formatting dates. + +**[Documentation](http://momentjs.com/docs/)** + +## Port to ECMAScript 6 (version 2.10.0) + +Moment 2.10.0 does not bring any new features, but the code is now written in +ECMAScript 6 modules and placed inside `src/`. Previously `moment.js`, `locale/*.js` and +`test/moment/*.js`, `test/locale/*.js` contained the source of the project. Now +the source is in `src/`, temporary build (ECMAScript 5) files are placed under +`build/umd/` (for running tests during development), and the `moment.js` and +`locale/*.js` files are updated only on release. + +If you want to use a particular revision of the code, make sure to run +`grunt transpile update-index`, so `moment.js` and `locales/*.js` are synced +with `src/*`. We might place that in a commit hook in the future. + +## Upgrading to 2.0.0 + +There are a number of small backwards incompatible changes with version 2.0.0. [See the full descriptions here](https://gist.github.com/timrwood/e72f2eef320ed9e37c51#backwards-incompatible-changes) + + * Changed language ordinal method to return the number + ordinal instead of just the ordinal. + + * Changed two digit year parsing cutoff to match strptime. + + * Removed `moment#sod` and `moment#eod` in favor of `moment#startOf` and `moment#endOf`. + + * Removed `moment.humanizeDuration()` in favor of `moment.duration().humanize()`. + + * Removed the lang data objects from the top level namespace. + + * Duplicate `Date` passed to `moment()` instead of referencing it. + +## [Changelog](https://github.com/moment/moment/blob/develop/CHANGELOG.md) + +## [Contributing](https://github.com/moment/moment/blob/develop/CONTRIBUTING.md) + +We're looking for co-maintainers! If you want to become a master of time please +write to [ichernev](https://github.com/ichernev). + +## License + +Moment.js is freely distributable under the terms of the [MIT license](https://github.com/moment/moment/blob/develop/LICENSE). + +[license-image]: http://img.shields.io/badge/license-MIT-blue.svg?style=flat +[license-url]: LICENSE + +[npm-url]: https://npmjs.org/package/moment +[npm-version-image]: http://img.shields.io/npm/v/moment.svg?style=flat +[npm-downloads-image]: http://img.shields.io/npm/dm/moment.svg?style=flat + +[travis-url]: http://travis-ci.org/moment/moment +[travis-image]: http://img.shields.io/travis/moment/moment/develop.svg?style=flat diff --git a/library/moment/locales.min.js b/library/moment/locales.min.js new file mode 100644 index 000000000..9093a81e2 --- /dev/null +++ b/library/moment/locales.min.js @@ -0,0 +1,256 @@ +!function(a,b){"object"==typeof exports&&"undefined"!=typeof module&&"function"==typeof require?b(require("../moment")):"function"==typeof define&&define.amd?define(["../moment"],b):b(a.moment)}(this,function(a){"use strict"; +//! moment.js locale configuration +//! locale : Belarusian [be] +//! author : Dmitry Demidov : https://github.com/demidov91 +//! author: Praleska: http://praleska.pro/ +//! Author : Menelion Elensúle : https://github.com/Oire +function b(a,b){var c=a.split("_");return b%10===1&&b%100!==11?c[0]:b%10>=2&&4>=b%10&&(10>b%100||b%100>=20)?c[1]:c[2]}function c(a,c,d){var e={mm:c?"хвіліна_хвіліны_хвілін":"хвіліну_хвіліны_хвілін",hh:c?"гадзіна_гадзіны_гадзін":"гадзіну_гадзіны_гадзін",dd:"дзень_дні_дзён",MM:"месяц_месяцы_месяцаў",yy:"год_гады_гадоў"};return"m"===d?c?"хвіліна":"хвіліну":"h"===d?c?"гадзіна":"гадзіну":a+" "+b(e[d],+a)} +//! moment.js locale configuration +//! locale : Breton [br] +//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou +function d(a,b,c){var d={mm:"munutenn",MM:"miz",dd:"devezh"};return a+" "+g(d[c],a)}function e(a){switch(f(a)){case 1:case 3:case 4:case 5:case 9:return a+" bloaz";default:return a+" vloaz"}}function f(a){return a>9?f(a%10):a}function g(a,b){return 2===b?h(a):a}function h(a){var b={m:"v",b:"v",d:"z"};return void 0===b[a.charAt(0)]?a:b[a.charAt(0)]+a.substring(1)} +//! moment.js locale configuration +//! locale : Bosnian [bs] +//! author : Nedim Cholich : https://github.com/frontyard +//! based on (hr) translation by Bojan Marković +function i(a,b,c){var d=a+" ";switch(c){case"m":return b?"jedna minuta":"jedne minute";case"mm":return d+=1===a?"minuta":2===a||3===a||4===a?"minute":"minuta";case"h":return b?"jedan sat":"jednog sata";case"hh":return d+=1===a?"sat":2===a||3===a||4===a?"sata":"sati";case"dd":return d+=1===a?"dan":"dana";case"MM":return d+=1===a?"mjesec":2===a||3===a||4===a?"mjeseca":"mjeseci";case"yy":return d+=1===a?"godina":2===a||3===a||4===a?"godine":"godina"}}function j(a){return a>1&&5>a&&1!==~~(a/10)}function k(a,b,c,d){var e=a+" ";switch(c){case"s":// a few seconds / in a few seconds / a few seconds ago +return b||d?"pár sekund":"pár sekundami";case"m":// a minute / in a minute / a minute ago +return b?"minuta":d?"minutu":"minutou";case"mm":// 9 minutes / in 9 minutes / 9 minutes ago +// 9 minutes / in 9 minutes / 9 minutes ago +return b||d?e+(j(a)?"minuty":"minut"):e+"minutami";break;case"h":// an hour / in an hour / an hour ago +return b?"hodina":d?"hodinu":"hodinou";case"hh":// 9 hours / in 9 hours / 9 hours ago +// 9 hours / in 9 hours / 9 hours ago +return b||d?e+(j(a)?"hodiny":"hodin"):e+"hodinami";break;case"d":// a day / in a day / a day ago +return b||d?"den":"dnem";case"dd":// 9 days / in 9 days / 9 days ago +// 9 days / in 9 days / 9 days ago +return b||d?e+(j(a)?"dny":"dní"):e+"dny";break;case"M":// a month / in a month / a month ago +return b||d?"měsíc":"měsícem";case"MM":// 9 months / in 9 months / 9 months ago +// 9 months / in 9 months / 9 months ago +return b||d?e+(j(a)?"měsíce":"měsíců"):e+"měsíci";break;case"y":// a year / in a year / a year ago +return b||d?"rok":"rokem";case"yy":// 9 years / in 9 years / 9 years ago +// 9 years / in 9 years / 9 years ago +return b||d?e+(j(a)?"roky":"let"):e+"lety"}} +//! moment.js locale configuration +//! locale : German (Austria) [de-at] +//! author : lluchs : https://github.com/lluchs +//! author: Menelion Elensúle: https://github.com/Oire +//! author : Martin Groller : https://github.com/MadMG +//! author : Mikolaj Dadela : https://github.com/mik01aj +function l(a,b,c,d){var e={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[a+" Tage",a+" Tagen"],M:["ein Monat","einem Monat"],MM:[a+" Monate",a+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[a+" Jahre",a+" Jahren"]};return b?e[c][0]:e[c][1]} +//! moment.js locale configuration +//! locale : German [de] +//! author : lluchs : https://github.com/lluchs +//! author: Menelion Elensúle: https://github.com/Oire +//! author : Mikolaj Dadela : https://github.com/mik01aj +function m(a,b,c,d){var e={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[a+" Tage",a+" Tagen"],M:["ein Monat","einem Monat"],MM:[a+" Monate",a+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[a+" Jahre",a+" Jahren"]};return b?e[c][0]:e[c][1]}function n(a){return a instanceof Function||"[object Function]"===Object.prototype.toString.call(a)} +//! moment.js locale configuration +//! locale : Estonian [et] +//! author : Henry Kehlmann : https://github.com/madhenry +//! improvements : Illimar Tambek : https://github.com/ragulka +function o(a,b,c,d){var e={s:["mõne sekundi","mõni sekund","paar sekundit"],m:["ühe minuti","üks minut"],mm:[a+" minuti",a+" minutit"],h:["ühe tunni","tund aega","üks tund"],hh:[a+" tunni",a+" tundi"],d:["ühe päeva","üks päev"],M:["kuu aja","kuu aega","üks kuu"],MM:[a+" kuu",a+" kuud"],y:["ühe aasta","aasta","üks aasta"],yy:[a+" aasta",a+" aastat"]};return b?e[c][2]?e[c][2]:e[c][1]:d?e[c][0]:e[c][1]}function p(a,b,c,d){var e="";switch(c){case"s":return d?"muutaman sekunnin":"muutama sekunti";case"m":return d?"minuutin":"minuutti";case"mm":e=d?"minuutin":"minuuttia";break;case"h":return d?"tunnin":"tunti";case"hh":e=d?"tunnin":"tuntia";break;case"d":return d?"päivän":"päivä";case"dd":e=d?"päivän":"päivää";break;case"M":return d?"kuukauden":"kuukausi";case"MM":e=d?"kuukauden":"kuukautta";break;case"y":return d?"vuoden":"vuosi";case"yy":e=d?"vuoden":"vuotta"}return e=q(a,d)+" "+e}function q(a,b){return 10>a?b?Ca[a]:Ba[a]:a} +//! moment.js locale configuration +//! locale : Croatian [hr] +//! author : Bojan Marković : https://github.com/bmarkovic +function r(a,b,c){var d=a+" ";switch(c){case"m":return b?"jedna minuta":"jedne minute";case"mm":return d+=1===a?"minuta":2===a||3===a||4===a?"minute":"minuta";case"h":return b?"jedan sat":"jednog sata";case"hh":return d+=1===a?"sat":2===a||3===a||4===a?"sata":"sati";case"dd":return d+=1===a?"dan":"dana";case"MM":return d+=1===a?"mjesec":2===a||3===a||4===a?"mjeseca":"mjeseci";case"yy":return d+=1===a?"godina":2===a||3===a||4===a?"godine":"godina"}}function s(a,b,c,d){var e=a;switch(c){case"s":return d||b?"néhány másodperc":"néhány másodperce";case"m":return"egy"+(d||b?" perc":" perce");case"mm":return e+(d||b?" perc":" perce");case"h":return"egy"+(d||b?" óra":" órája");case"hh":return e+(d||b?" óra":" órája");case"d":return"egy"+(d||b?" nap":" napja");case"dd":return e+(d||b?" nap":" napja");case"M":return"egy"+(d||b?" hónap":" hónapja");case"MM":return e+(d||b?" hónap":" hónapja");case"y":return"egy"+(d||b?" év":" éve");case"yy":return e+(d||b?" év":" éve")}return""}function t(a){return(a?"":"[múlt] ")+"["+Ma[this.day()]+"] LT[-kor]"} +//! moment.js locale configuration +//! locale : Icelandic [is] +//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik +function u(a){return a%100===11?!0:a%10!==1}function v(a,b,c,d){var e=a+" ";switch(c){case"s":return b||d?"nokkrar sekúndur":"nokkrum sekúndum";case"m":return b?"mínúta":"mínútu";case"mm":return u(a)?e+(b||d?"mínútur":"mínútum"):b?e+"mínúta":e+"mínútu";case"hh":return u(a)?e+(b||d?"klukkustundir":"klukkustundum"):e+"klukkustund";case"d":return b?"dagur":d?"dag":"degi";case"dd":return u(a)?b?e+"dagar":e+(d?"daga":"dögum"):b?e+"dagur":e+(d?"dag":"degi");case"M":return b?"mánuður":d?"mánuð":"mánuði";case"MM":return u(a)?b?e+"mánuðir":e+(d?"mánuði":"mánuðum"):b?e+"mánuður":e+(d?"mánuð":"mánuði");case"y":return b||d?"ár":"ári";case"yy":return u(a)?e+(b||d?"ár":"árum"):e+(b||d?"ár":"ári")}} +//! moment.js locale configuration +//! locale : Luxembourgish [lb] +//! author : mweimerskirch : https://github.com/mweimerskirch +//! author : David Raison : https://github.com/kwisatz +function w(a,b,c,d){var e={m:["eng Minutt","enger Minutt"],h:["eng Stonn","enger Stonn"],d:["een Dag","engem Dag"],M:["ee Mount","engem Mount"],y:["ee Joer","engem Joer"]};return b?e[c][0]:e[c][1]}function x(a){var b=a.substr(0,a.indexOf(" "));return z(b)?"a "+a:"an "+a}function y(a){var b=a.substr(0,a.indexOf(" "));return z(b)?"viru "+a:"virun "+a}/** + * Returns true if the word before the given number loses the '-n' ending. + * e.g. 'an 10 Deeg' but 'a 5 Deeg' + * + * @param number {integer} + * @returns {boolean} + */ +function z(a){if(a=parseInt(a,10),isNaN(a))return!1;if(0>a) +// Negative Number --> always true +return!0;if(10>a) +// Only 1 digit +return a>=4&&7>=a;if(100>a){ +// 2 digits +var b=a%10,c=a/10;return z(0===b?c:b)}if(1e4>a){ +// 3 or 4 digits --> recursively check first digit +for(;a>=10;)a/=10;return z(a)} +// Anything larger than 4 digits: recursively check first n-3 digits +return a/=1e3,z(a)}function A(a,b,c,d){return b?"kelios sekundės":d?"kelių sekundžių":"kelias sekundes"}function B(a,b,c,d){return b?D(c)[0]:d?D(c)[1]:D(c)[2]}function C(a){return a%10===0||a>10&&20>a}function D(a){return Pa[a].split("_")}function E(a,b,c,d){var e=a+" ";return 1===a?e+B(a,b,c[0],d):b?e+(C(a)?D(c)[1]:D(c)[0]):d?e+D(c)[1]:e+(C(a)?D(c)[1]:D(c)[2])}/** + * @param withoutSuffix boolean true = a length of time; false = before/after a period of time. + */ +function F(a,b,c){return c?b%10===1&&b%100!==11?a[2]:a[3]:b%10===1&&b%100!==11?a[0]:a[1]}function G(a,b,c){return a+" "+F(Qa[c],a,b)}function H(a,b,c){return F(Qa[c],a,b)}function I(a,b){return b?"dažas sekundes":"dažām sekundēm"}function J(a,b,c,d){var e="";if(b)switch(c){case"s":e="काही सेकंद";break;case"m":e="एक मिनिट";break;case"mm":e="%d मिनिटे";break;case"h":e="एक तास";break;case"hh":e="%d तास";break;case"d":e="एक दिवस";break;case"dd":e="%d दिवस";break;case"M":e="एक महिना";break;case"MM":e="%d महिने";break;case"y":e="एक वर्ष";break;case"yy":e="%d वर्षे"}else switch(c){case"s":e="काही सेकंदां";break;case"m":e="एका मिनिटा";break;case"mm":e="%d मिनिटां";break;case"h":e="एका तासा";break;case"hh":e="%d तासां";break;case"d":e="एका दिवसा";break;case"dd":e="%d दिवसां";break;case"M":e="एका महिन्या";break;case"MM":e="%d महिन्यां";break;case"y":e="एका वर्षा";break;case"yy":e="%d वर्षां"}return e.replace(/%d/i,a)}function K(a){return 5>a%10&&a%10>1&&~~(a/10)%10!==1}function L(a,b,c){var d=a+" ";switch(c){case"m":return b?"minuta":"minutę";case"mm":return d+(K(a)?"minuty":"minut");case"h":return b?"godzina":"godzinę";case"hh":return d+(K(a)?"godziny":"godzin");case"MM":return d+(K(a)?"miesiące":"miesięcy");case"yy":return d+(K(a)?"lata":"lat")}} +//! moment.js locale configuration +//! locale : Romanian [ro] +//! author : Vlad Gurdiga : https://github.com/gurdiga +//! author : Valentin Agachi : https://github.com/avaly +function M(a,b,c){var d={mm:"minute",hh:"ore",dd:"zile",MM:"luni",yy:"ani"},e=" ";return(a%100>=20||a>=100&&a%100===0)&&(e=" de "),a+e+d[c]} +//! moment.js locale configuration +//! locale : Russian [ru] +//! author : Viktorminator : https://github.com/Viktorminator +//! Author : Menelion Elensúle : https://github.com/Oire +//! author : Коренберг Марк : https://github.com/socketpair +function N(a,b){var c=a.split("_");return b%10===1&&b%100!==11?c[0]:b%10>=2&&4>=b%10&&(10>b%100||b%100>=20)?c[1]:c[2]}function O(a,b,c){var d={mm:b?"минута_минуты_минут":"минуту_минуты_минут",hh:"час_часа_часов",dd:"день_дня_дней",MM:"месяц_месяца_месяцев",yy:"год_года_лет"};return"m"===c?b?"минута":"минуту":a+" "+N(d[c],+a)}function P(a){return a>1&&5>a}function Q(a,b,c,d){var e=a+" ";switch(c){case"s":// a few seconds / in a few seconds / a few seconds ago +return b||d?"pár sekúnd":"pár sekundami";case"m":// a minute / in a minute / a minute ago +return b?"minúta":d?"minútu":"minútou";case"mm":// 9 minutes / in 9 minutes / 9 minutes ago +// 9 minutes / in 9 minutes / 9 minutes ago +return b||d?e+(P(a)?"minúty":"minút"):e+"minútami";break;case"h":// an hour / in an hour / an hour ago +return b?"hodina":d?"hodinu":"hodinou";case"hh":// 9 hours / in 9 hours / 9 hours ago +// 9 hours / in 9 hours / 9 hours ago +return b||d?e+(P(a)?"hodiny":"hodín"):e+"hodinami";break;case"d":// a day / in a day / a day ago +return b||d?"deň":"dňom";case"dd":// 9 days / in 9 days / 9 days ago +// 9 days / in 9 days / 9 days ago +return b||d?e+(P(a)?"dni":"dní"):e+"dňami";break;case"M":// a month / in a month / a month ago +return b||d?"mesiac":"mesiacom";case"MM":// 9 months / in 9 months / 9 months ago +// 9 months / in 9 months / 9 months ago +return b||d?e+(P(a)?"mesiace":"mesiacov"):e+"mesiacmi";break;case"y":// a year / in a year / a year ago +return b||d?"rok":"rokom";case"yy":// 9 years / in 9 years / 9 years ago +// 9 years / in 9 years / 9 years ago +return b||d?e+(P(a)?"roky":"rokov"):e+"rokmi"}} +//! moment.js locale configuration +//! locale : Slovenian [sl] +//! author : Robert Sedovšek : https://github.com/sedovsek +function R(a,b,c,d){var e=a+" ";switch(c){case"s":return b||d?"nekaj sekund":"nekaj sekundami";case"m":return b?"ena minuta":"eno minuto";case"mm":return e+=1===a?b?"minuta":"minuto":2===a?b||d?"minuti":"minutama":5>a?b||d?"minute":"minutami":b||d?"minut":"minutami";case"h":return b?"ena ura":"eno uro";case"hh":return e+=1===a?b?"ura":"uro":2===a?b||d?"uri":"urama":5>a?b||d?"ure":"urami":b||d?"ur":"urami";case"d":return b||d?"en dan":"enim dnem";case"dd":return e+=1===a?b||d?"dan":"dnem":2===a?b||d?"dni":"dnevoma":b||d?"dni":"dnevi";case"M":return b||d?"en mesec":"enim mesecem";case"MM":return e+=1===a?b||d?"mesec":"mesecem":2===a?b||d?"meseca":"mesecema":5>a?b||d?"mesece":"meseci":b||d?"mesecev":"meseci";case"y":return b||d?"eno leto":"enim letom";case"yy":return e+=1===a?b||d?"leto":"letom":2===a?b||d?"leti":"letoma":5>a?b||d?"leta":"leti":b||d?"let":"leti"}}function S(a){var b=a;return b=-1!==a.indexOf("jaj")?b.slice(0,-3)+"leS":-1!==a.indexOf("jar")?b.slice(0,-3)+"waQ":-1!==a.indexOf("DIS")?b.slice(0,-3)+"nem":b+" pIq"}function T(a){var b=a;return b=-1!==a.indexOf("jaj")?b.slice(0,-3)+"Hu’":-1!==a.indexOf("jar")?b.slice(0,-3)+"wen":-1!==a.indexOf("DIS")?b.slice(0,-3)+"ben":b+" ret"}function U(a,b,c,d){var e=V(a);switch(c){case"mm":return e+" tup";case"hh":return e+" rep";case"dd":return e+" jaj";case"MM":return e+" jar";case"yy":return e+" DIS"}}function V(a){var b=Math.floor(a%1e3/100),c=Math.floor(a%100/10),d=a%10,e="";return b>0&&(e+=lb[b]+"vatlh"),c>0&&(e+=(""!==e?" ":"")+lb[c]+"maH"),d>0&&(e+=(""!==e?" ":"")+lb[d]),""===e?"pagh":e}function W(a,b,c,d){var e={s:["viensas secunds","'iensas secunds"],m:["'n míut","'iens míut"],mm:[a+" míuts",""+a+" míuts"],h:["'n þora","'iensa þora"],hh:[a+" þoras",""+a+" þoras"],d:["'n ziua","'iensa ziua"],dd:[a+" ziuas",""+a+" ziuas"],M:["'n mes","'iens mes"],MM:[a+" mesen",""+a+" mesen"],y:["'n ar","'iens ar"],yy:[a+" ars",""+a+" ars"]};return d?e[c][0]:b?e[c][0]:e[c][1]} +//! moment.js locale configuration +//! locale : Ukrainian [uk] +//! author : zemlanin : https://github.com/zemlanin +//! Author : Menelion Elensúle : https://github.com/Oire +function X(a,b){var c=a.split("_");return b%10===1&&b%100!==11?c[0]:b%10>=2&&4>=b%10&&(10>b%100||b%100>=20)?c[1]:c[2]}function Y(a,b,c){var d={mm:b?"хвилина_хвилини_хвилин":"хвилину_хвилини_хвилин",hh:b?"година_години_годин":"годину_години_годин",dd:"день_дні_днів",MM:"місяць_місяці_місяців",yy:"рік_роки_років"};return"m"===c?b?"хвилина":"хвилину":"h"===c?b?"година":"годину":a+" "+X(d[c],+a)}function Z(a,b){var c={nominative:"неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота".split("_"),accusative:"неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу".split("_"),genitive:"неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи".split("_")},d=/(\[[ВвУу]\]) ?dddd/.test(b)?"accusative":/\[?(?:минулої|наступної)? ?\] ?dddd/.test(b)?"genitive":"nominative";return c[d][a.day()]}function $(a){return function(){return a+"о"+(11===this.hours()?"б":"")+"] LT"}} +//! moment.js locale configuration +//! locale : Afrikaans [af] +//! author : Werner Mollentze : https://github.com/wernerm +var _=(a.defineLocale("af",{months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),meridiemParse:/vm|nm/i,isPM:function(a){return/^nm$/i.test(a)},meridiem:function(a,b,c){return 12>a?c?"vm":"VM":c?"nm":"NM"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Vandag om] LT",nextDay:"[Môre om] LT",nextWeek:"dddd [om] LT",lastDay:"[Gister om] LT",lastWeek:"[Laas] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oor %s",past:"%s gelede",s:"'n paar sekondes",m:"'n minuut",mm:"%d minute",h:"'n uur",hh:"%d ure",d:"'n dag",dd:"%d dae",M:"'n maand",MM:"%d maande",y:"'n jaar",yy:"%d jaar"},ordinalParse:/\d{1,2}(ste|de)/,ordinal:function(a){return a+(1===a||8===a||a>=20?"ste":"de")},week:{dow:1,// Maandag is die eerste dag van die week. +doy:4}}),{1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",0:"0"}),aa=function(a){return 0===a?0:1===a?1:2===a?2:a%100>=3&&10>=a%100?3:a%100>=11?4:5},ba={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},ca=function(a){return function(b,c,d,e){var f=aa(b),g=ba[a][aa(b)];return 2===f&&(g=g[c?0:1]),g.replace(/%d/i,b)}},da=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],ea=(a.defineLocale("ar-ly",{months:da,monthsShort:da,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(a){return"م"===a},meridiem:function(a,b,c){return 12>a?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:ca("s"),m:ca("m"),mm:ca("m"),h:ca("h"),hh:ca("h"),d:ca("d"),dd:ca("d"),M:ca("M"),MM:ca("M"),y:ca("y"),yy:ca("y")},preparse:function(a){return a.replace(/\u200f/g,"").replace(/،/g,",")},postformat:function(a){return a.replace(/\d/g,function(a){return _[a]}).replace(/,/g,"،")},week:{dow:6,// Saturday is the first day of the week. +doy:12}}),a.defineLocale("ar-ma",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:6,// Saturday is the first day of the week. +doy:12}}),{1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"}),fa={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},ga=(a.defineLocale("ar-sa",{months:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(a){return"م"===a},meridiem:function(a,b,c){return 12>a?"ص":"م"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},preparse:function(a){return a.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(a){return fa[a]}).replace(/،/g,",")},postformat:function(a){return a.replace(/\d/g,function(a){return ea[a]}).replace(/,/g,"،")},week:{dow:6,// Saturday is the first day of the week. +doy:12}}),a.defineLocale("ar-tn",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:1,// Monday is the first day of the week. +doy:4}}),{1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"}),ha={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},ia=function(a){return 0===a?0:1===a?1:2===a?2:a%100>=3&&10>=a%100?3:a%100>=11?4:5},ja={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},ka=function(a){return function(b,c,d,e){var f=ia(b),g=ja[a][ia(b)];return 2===f&&(g=g[c?0:1]),g.replace(/%d/i,b)}},la=["كانون الثاني يناير","شباط فبراير","آذار مارس","نيسان أبريل","أيار مايو","حزيران يونيو","تموز يوليو","آب أغسطس","أيلول سبتمبر","تشرين الأول أكتوبر","تشرين الثاني نوفمبر","كانون الأول ديسمبر"],ma=(a.defineLocale("ar",{months:la,monthsShort:la,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(a){return"م"===a},meridiem:function(a,b,c){return 12>a?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:ka("s"),m:ka("m"),mm:ka("m"),h:ka("h"),hh:ka("h"),d:ka("d"),dd:ka("d"),M:ka("M"),MM:ka("M"),y:ka("y"),yy:ka("y")},preparse:function(a){return a.replace(/\u200f/g,"").replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(a){return ha[a]}).replace(/،/g,",")},postformat:function(a){return a.replace(/\d/g,function(a){return ga[a]}).replace(/,/g,"،")},week:{dow:6,// Saturday is the first day of the week. +doy:12}}),{1:"-inci",5:"-inci",8:"-inci",70:"-inci",80:"-inci",2:"-nci",7:"-nci",20:"-nci",50:"-nci",3:"-üncü",4:"-üncü",100:"-üncü",6:"-ncı",9:"-uncu",10:"-uncu",30:"-uncu",60:"-ıncı",90:"-ıncı"}),na=(a.defineLocale("az",{months:"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),monthsShort:"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),weekdays:"Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə".split("_"),weekdaysShort:"Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən".split("_"),weekdaysMin:"Bz_BE_ÇA_Çə_CA_Cü_Şə".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[sabah saat] LT",nextWeek:"[gələn həftə] dddd [saat] LT",lastDay:"[dünən] LT",lastWeek:"[keçən həftə] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s əvvəl",s:"birneçə saniyyə",m:"bir dəqiqə",mm:"%d dəqiqə",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},meridiemParse:/gecə|səhər|gündüz|axşam/,isPM:function(a){return/^(gündüz|axşam)$/.test(a)},meridiem:function(a,b,c){return 4>a?"gecə":12>a?"səhər":17>a?"gündüz":"axşam"},ordinalParse:/\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,ordinal:function(a){if(0===a)// special case for zero +return a+"-ıncı";var b=a%10,c=a%100-b,d=a>=100?100:null;return a+(ma[b]||ma[c]||ma[d])},week:{dow:1,// Monday is the first day of the week. +doy:7}}),a.defineLocale("be",{months:{format:"студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня".split("_"),standalone:"студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань".split("_")},monthsShort:"студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж".split("_"),weekdays:{format:"нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу".split("_"),standalone:"нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота".split("_"),isFormat:/\[ ?[Вв] ?(?:мінулую|наступную)? ?\] ?dddd/},weekdaysShort:"нд_пн_ат_ср_чц_пт_сб".split("_"),weekdaysMin:"нд_пн_ат_ср_чц_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., HH:mm",LLLL:"dddd, D MMMM YYYY г., HH:mm"},calendar:{sameDay:"[Сёння ў] LT",nextDay:"[Заўтра ў] LT",lastDay:"[Учора ў] LT",nextWeek:function(){return"[У] dddd [ў] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[У мінулую] dddd [ў] LT";case 1:case 2:case 4:return"[У мінулы] dddd [ў] LT"}},sameElse:"L"},relativeTime:{future:"праз %s",past:"%s таму",s:"некалькі секунд",m:c,mm:c,h:c,hh:c,d:"дзень",dd:c,M:"месяц",MM:c,y:"год",yy:c},meridiemParse:/ночы|раніцы|дня|вечара/,isPM:function(a){return/^(дня|вечара)$/.test(a)},meridiem:function(a,b,c){return 4>a?"ночы":12>a?"раніцы":17>a?"дня":"вечара"},ordinalParse:/\d{1,2}-(і|ы|га)/,ordinal:function(a,b){switch(b){case"M":case"d":case"DDD":case"w":case"W":return a%10!==2&&a%10!==3||a%100===12||a%100===13?a+"-ы":a+"-і";case"D":return a+"-га";default:return a}},week:{dow:1,// Monday is the first day of the week. +doy:7}}),a.defineLocale("bg",{months:"януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември".split("_"),monthsShort:"янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек".split("_"),weekdays:"неделя_понеделник_вторник_сряда_четвъртък_петък_събота".split("_"),weekdaysShort:"нед_пон_вто_сря_чет_пет_съб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Днес в] LT",nextDay:"[Утре в] LT",nextWeek:"dddd [в] LT",lastDay:"[Вчера в] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[В изминалата] dddd [в] LT";case 1:case 2:case 4:case 5:return"[В изминалия] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"след %s",past:"преди %s",s:"няколко секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дни",M:"месец",MM:"%d месеца",y:"година",yy:"%d години"},ordinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(a){var b=a%10,c=a%100;return 0===a?a+"-ев":0===c?a+"-ен":c>10&&20>c?a+"-ти":1===b?a+"-ви":2===b?a+"-ри":7===b||8===b?a+"-ми":a+"-ти"},week:{dow:1,// Monday is the first day of the week. +doy:7}}),{1:"১",2:"২",3:"৩",4:"৪",5:"৫",6:"৬",7:"৭",8:"৮",9:"৯",0:"০"}),oa={"১":"1","২":"2","৩":"3","৪":"4","৫":"5","৬":"6","৭":"7","৮":"8","৯":"9","০":"0"},pa=(a.defineLocale("bn",{months:"জানুয়ারী_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর".split("_"),monthsShort:"জানু_ফেব_মার্চ_এপ্র_মে_জুন_জুল_আগ_সেপ্ট_অক্টো_নভে_ডিসে".split("_"),weekdays:"রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার".split("_"),weekdaysShort:"রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি".split("_"),weekdaysMin:"রবি_সোম_মঙ্গ_বুধ_বৃহঃ_শুক্র_শনি".split("_"),longDateFormat:{LT:"A h:mm সময়",LTS:"A h:mm:ss সময়",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm সময়",LLLL:"dddd, D MMMM YYYY, A h:mm সময়"},calendar:{sameDay:"[আজ] LT",nextDay:"[আগামীকাল] LT",nextWeek:"dddd, LT",lastDay:"[গতকাল] LT",lastWeek:"[গত] dddd, LT",sameElse:"L"},relativeTime:{future:"%s পরে",past:"%s আগে",s:"কয়েক সেকেন্ড",m:"এক মিনিট",mm:"%d মিনিট",h:"এক ঘন্টা",hh:"%d ঘন্টা",d:"এক দিন",dd:"%d দিন",M:"এক মাস",MM:"%d মাস",y:"এক বছর",yy:"%d বছর"},preparse:function(a){return a.replace(/[১২৩৪৫৬৭৮৯০]/g,function(a){return oa[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return na[a]})},meridiemParse:/রাত|সকাল|দুপুর|বিকাল|রাত/,meridiemHour:function(a,b){return 12===a&&(a=0),"রাত"===b&&a>=4||"দুপুর"===b&&5>a||"বিকাল"===b?a+12:a},meridiem:function(a,b,c){return 4>a?"রাত":10>a?"সকাল":17>a?"দুপুর":20>a?"বিকাল":"রাত"},week:{dow:0,// Sunday is the first day of the week. +doy:6}}),{1:"༡",2:"༢",3:"༣",4:"༤",5:"༥",6:"༦",7:"༧",8:"༨",9:"༩",0:"༠"}),qa={"༡":"1","༢":"2","༣":"3","༤":"4","༥":"5","༦":"6","༧":"7","༨":"8","༩":"9","༠":"0"},ra=(a.defineLocale("bo",{months:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),monthsShort:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),weekdays:"གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་".split("_"),weekdaysShort:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),weekdaysMin:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[དི་རིང] LT",nextDay:"[སང་ཉིན] LT",nextWeek:"[བདུན་ཕྲག་རྗེས་མ], LT",lastDay:"[ཁ་སང] LT",lastWeek:"[བདུན་ཕྲག་མཐའ་མ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ལ་",past:"%s སྔན་ལ",s:"ལམ་སང",m:"སྐར་མ་གཅིག",mm:"%d སྐར་མ",h:"ཆུ་ཚོད་གཅིག",hh:"%d ཆུ་ཚོད",d:"ཉིན་གཅིག",dd:"%d ཉིན་",M:"ཟླ་བ་གཅིག",MM:"%d ཟླ་བ",y:"ལོ་གཅིག",yy:"%d ལོ"},preparse:function(a){return a.replace(/[༡༢༣༤༥༦༧༨༩༠]/g,function(a){return qa[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return pa[a]})},meridiemParse:/མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,meridiemHour:function(a,b){return 12===a&&(a=0),"མཚན་མོ"===b&&a>=4||"ཉིན་གུང"===b&&5>a||"དགོང་དག"===b?a+12:a},meridiem:function(a,b,c){return 4>a?"མཚན་མོ":10>a?"ཞོགས་ཀས":17>a?"ཉིན་གུང":20>a?"དགོང་དག":"མཚན་མོ"},week:{dow:0,// Sunday is the first day of the week. +doy:6}}),a.defineLocale("br",{months:"Genver_C'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),monthsShort:"Gen_C'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),weekdays:"Sul_Lun_Meurzh_Merc'her_Yaou_Gwener_Sadorn".split("_"),weekdaysShort:"Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),weekdaysMin:"Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h[e]mm A",LTS:"h[e]mm:ss A",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY h[e]mm A",LLLL:"dddd, D [a viz] MMMM YYYY h[e]mm A"},calendar:{sameDay:"[Hiziv da] LT",nextDay:"[Warc'hoazh da] LT",nextWeek:"dddd [da] LT",lastDay:"[Dec'h da] LT",lastWeek:"dddd [paset da] LT",sameElse:"L"},relativeTime:{future:"a-benn %s",past:"%s 'zo",s:"un nebeud segondennoù",m:"ur vunutenn",mm:d,h:"un eur",hh:"%d eur",d:"un devezh",dd:d,M:"ur miz",MM:d,y:"ur bloaz",yy:e},ordinalParse:/\d{1,2}(añ|vet)/,ordinal:function(a){var b=1===a?"añ":"vet";return a+b},week:{dow:1,// Monday is the first day of the week. +doy:4}}),a.defineLocale("bs",{months:"januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",m:i,mm:i,h:i,hh:i,d:"dan",dd:i,M:"mjesec",MM:i,y:"godinu",yy:i},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week. +doy:7}}),a.defineLocale("ca",{months:"gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),monthsShort:"gen._febr._mar._abr._mai._jun._jul._ag._set._oct._nov._des.".split("_"),monthsParseExact:!0,weekdays:"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dt._dc._dj._dv._ds.".split("_"),weekdaysMin:"Dg_Dl_Dt_Dc_Dj_Dv_Ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd D MMMM YYYY H:mm"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[demà a "+(1!==this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"fa %s",s:"uns segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},ordinalParse:/\d{1,2}(r|n|t|è|a)/,ordinal:function(a,b){var c=1===a?"r":2===a?"n":3===a?"r":4===a?"t":"è";return"w"!==b&&"W"!==b||(c="a"),a+c},week:{dow:1,// Monday is the first day of the week. +doy:4}}),"leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec".split("_")),sa="led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro".split("_"),ta=(a.defineLocale("cs",{months:ra,monthsShort:sa,monthsParse:function(a,b){var c,d=[];for(c=0;12>c;c++) +// use custom parser to solve problem with July (červenec) +d[c]=new RegExp("^"+a[c]+"$|^"+b[c]+"$","i");return d}(ra,sa),shortMonthsParse:function(a){var b,c=[];for(b=0;12>b;b++)c[b]=new RegExp("^"+a[b]+"$","i");return c}(sa),longMonthsParse:function(a){var b,c=[];for(b=0;12>b;b++)c[b]=new RegExp("^"+a[b]+"$","i");return c}(ra),weekdays:"neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota".split("_"),weekdaysShort:"ne_po_út_st_čt_pá_so".split("_"),weekdaysMin:"ne_po_út_st_čt_pá_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},calendar:{sameDay:"[dnes v] LT",nextDay:"[zítra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v neděli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve středu v] LT";case 4:return"[ve čtvrtek v] LT";case 5:return"[v pátek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[včera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou neděli v] LT";case 1:case 2:return"[minulé] dddd [v] LT";case 3:return"[minulou středu v] LT";case 4:case 5:return"[minulý] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"před %s",s:k,m:k,mm:k,h:k,hh:k,d:k,dd:k,M:k,MM:k,y:k,yy:k},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week. +doy:4}}),a.defineLocale("cv",{months:"кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав".split("_"),monthsShort:"кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш".split("_"),weekdays:"вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун".split("_"),weekdaysShort:"выр_тун_ытл_юн_кӗҫ_эрн_шӑм".split("_"),weekdaysMin:"вр_тн_ыт_юн_кҫ_эр_шм".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]",LLL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm",LLLL:"dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm"},calendar:{sameDay:"[Паян] LT [сехетре]",nextDay:"[Ыран] LT [сехетре]",lastDay:"[Ӗнер] LT [сехетре]",nextWeek:"[Ҫитес] dddd LT [сехетре]",lastWeek:"[Иртнӗ] dddd LT [сехетре]",sameElse:"L"},relativeTime:{future:function(a){var b=/сехет$/i.exec(a)?"рен":/ҫул$/i.exec(a)?"тан":"ран";return a+b},past:"%s каялла",s:"пӗр-ик ҫеккунт",m:"пӗр минут",mm:"%d минут",h:"пӗр сехет",hh:"%d сехет",d:"пӗр кун",dd:"%d кун",M:"пӗр уйӑх",MM:"%d уйӑх",y:"пӗр ҫул",yy:"%d ҫул"},ordinalParse:/\d{1,2}-мӗш/,ordinal:"%d-мӗш",week:{dow:1,// Monday is the first day of the week. +doy:7}}),a.defineLocale("cy",{months:"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),monthsShort:"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),weekdays:"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),weekdaysShort:"Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),weekdaysMin:"Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),weekdaysParseExact:!0, +// time formats are the same as en-gb +longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Heddiw am] LT",nextDay:"[Yfory am] LT",nextWeek:"dddd [am] LT",lastDay:"[Ddoe am] LT",lastWeek:"dddd [diwethaf am] LT",sameElse:"L"},relativeTime:{future:"mewn %s",past:"%s yn ôl",s:"ychydig eiliadau",m:"munud",mm:"%d munud",h:"awr",hh:"%d awr",d:"diwrnod",dd:"%d diwrnod",M:"mis",MM:"%d mis",y:"blwyddyn",yy:"%d flynedd"},ordinalParse:/\d{1,2}(fed|ain|af|il|ydd|ed|eg)/, +// traditional ordinal numbers above 31 are not commonly used in colloquial Welsh +ordinal:function(a){var b=a,c="",d=["","af","il","ydd","ydd","ed","ed","ed","fed","fed","fed",// 1af to 10fed +"eg","fed","eg","eg","fed","eg","eg","fed","eg","fed"];return b>20?c=40===b||50===b||60===b||80===b||100===b?"fed":"ain":b>0&&(c=d[b]),a+c},week:{dow:1,// Monday is the first day of the week. +doy:4}}),a.defineLocale("da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"søn_man_tir_ons_tor_fre_lør".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd [d.] D. MMMM YYYY HH:mm"},calendar:{sameDay:"[I dag kl.] LT",nextDay:"[I morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[I går kl.] LT",lastWeek:"[sidste] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"få sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en måned",MM:"%d måneder",y:"et år",yy:"%d år"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week. +doy:4}}),a.defineLocale("de-at",{months:"Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jän._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",m:l,mm:"%d Minuten",h:l,hh:"%d Stunden",d:l,dd:l,M:l,MM:l,y:l,yy:l},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week. +doy:4}}),a.defineLocale("de",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",m:m,mm:"%d Minuten",h:m,hh:"%d Stunden",d:m,dd:m,M:m,MM:m,y:m,yy:m},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week. +doy:4}}),["ޖެނުއަރީ","ފެބްރުއަރީ","މާރިޗު","އޭޕްރީލު","މޭ","ޖޫން","ޖުލައި","އޯގަސްޓު","ސެޕްޓެމްބަރު","އޮކްޓޯބަރު","ނޮވެމްބަރު","ޑިސެމްބަރު"]),ua=["އާދިއްތަ","ހޯމަ","އަންގާރަ","ބުދަ","ބުރާސްފަތި","ހުކުރު","ހޮނިހިރު"],va=(a.defineLocale("dv",{months:ta,monthsShort:ta,weekdays:ua,weekdaysShort:ua,weekdaysMin:"އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/މކ|މފ/,isPM:function(a){return"މފ"===a},meridiem:function(a,b,c){return 12>a?"މކ":"މފ"},calendar:{sameDay:"[މިއަދު] LT",nextDay:"[މާދަމާ] LT",nextWeek:"dddd LT",lastDay:"[އިއްޔެ] LT",lastWeek:"[ފާއިތުވި] dddd LT",sameElse:"L"},relativeTime:{future:"ތެރޭގައި %s",past:"ކުރިން %s",s:"ސިކުންތުކޮޅެއް",m:"މިނިޓެއް",mm:"މިނިޓު %d",h:"ގަޑިއިރެއް",hh:"ގަޑިއިރު %d",d:"ދުވަހެއް",dd:"ދުވަސް %d",M:"މަހެއް",MM:"މަސް %d",y:"އަހަރެއް",yy:"އަހަރު %d"},preparse:function(a){return a.replace(/،/g,",")},postformat:function(a){return a.replace(/,/g,"،")},week:{dow:7,// Sunday is the first day of the week. +doy:12}}),a.defineLocale("el",{monthsNominativeEl:"Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος".split("_"),monthsGenitiveEl:"Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου".split("_"),months:function(a,b){return/D/.test(b.substring(0,b.indexOf("MMMM")))?this._monthsGenitiveEl[a.month()]:this._monthsNominativeEl[a.month()]},monthsShort:"Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ".split("_"),weekdays:"Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο".split("_"),weekdaysShort:"Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ".split("_"),weekdaysMin:"Κυ_Δε_Τρ_Τε_Πε_Πα_Σα".split("_"),meridiem:function(a,b,c){return a>11?c?"μμ":"ΜΜ":c?"πμ":"ΠΜ"},isPM:function(a){return"μ"===(a+"").toLowerCase()[0]},meridiemParse:/[ΠΜ]\.?Μ?\.?/i,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendarEl:{sameDay:"[Σήμερα {}] LT",nextDay:"[Αύριο {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[Χθες {}] LT",lastWeek:function(){switch(this.day()){case 6:return"[το προηγούμενο] dddd [{}] LT";default:return"[την προηγούμενη] dddd [{}] LT"}},sameElse:"L"},calendar:function(a,b){var c=this._calendarEl[a],d=b&&b.hours();return n(c)&&(c=c.apply(b)),c.replace("{}",d%12===1?"στη":"στις")},relativeTime:{future:"σε %s",past:"%s πριν",s:"λίγα δευτερόλεπτα",m:"ένα λεπτό",mm:"%d λεπτά",h:"μία ώρα",hh:"%d ώρες",d:"μία μέρα",dd:"%d μέρες",M:"ένας μήνας",MM:"%d μήνες",y:"ένας χρόνος",yy:"%d χρόνια"},ordinalParse:/\d{1,2}η/,ordinal:"%dη",week:{dow:1,// Monday is the first day of the week. +doy:4}}),a.defineLocale("en-au",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,// Monday is the first day of the week. +doy:4}}),a.defineLocale("en-ca",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"YYYY-MM-DD",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c}}),a.defineLocale("en-gb",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,// Monday is the first day of the week. +doy:4}}),a.defineLocale("en-ie",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,// Monday is the first day of the week. +doy:4}}),a.defineLocale("en-nz",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,// Monday is the first day of the week. +doy:4}}),a.defineLocale("eo",{months:"januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec".split("_"),weekdays:"Dimanĉo_Lundo_Mardo_Merkredo_Ĵaŭdo_Vendredo_Sabato".split("_"),weekdaysShort:"Dim_Lun_Mard_Merk_Ĵaŭ_Ven_Sab".split("_"),weekdaysMin:"Di_Lu_Ma_Me_Ĵa_Ve_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D[-an de] MMMM, YYYY",LLL:"D[-an de] MMMM, YYYY HH:mm",LLLL:"dddd, [la] D[-an de] MMMM, YYYY HH:mm"},meridiemParse:/[ap]\.t\.m/i,isPM:function(a){return"p"===a.charAt(0).toLowerCase()},meridiem:function(a,b,c){return a>11?c?"p.t.m.":"P.T.M.":c?"a.t.m.":"A.T.M."},calendar:{sameDay:"[Hodiaŭ je] LT",nextDay:"[Morgaŭ je] LT",nextWeek:"dddd [je] LT",lastDay:"[Hieraŭ je] LT",lastWeek:"[pasinta] dddd [je] LT",sameElse:"L"},relativeTime:{future:"je %s",past:"antaŭ %s",s:"sekundoj",m:"minuto",mm:"%d minutoj",h:"horo",hh:"%d horoj",d:"tago",//ne 'diurno', ĉar estas uzita por proksimumo +dd:"%d tagoj",M:"monato",MM:"%d monatoj",y:"jaro",yy:"%d jaroj"},ordinalParse:/\d{1,2}a/,ordinal:"%da",week:{dow:1,// Monday is the first day of the week. +doy:7}}),"ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_")),wa="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),xa=(a.defineLocale("es-do",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(a,b){return/-MMM-/.test(b)?wa[a.month()]:va[a.month()]},monthsParseExact:!0,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},ordinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,// Monday is the first day of the week. +doy:4}}),"ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_")),ya="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),za=(a.defineLocale("es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(a,b){return/-MMM-/.test(b)?ya[a.month()]:xa[a.month()]},monthsParseExact:!0,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},ordinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,// Monday is the first day of the week. +doy:4}}),a.defineLocale("et",{months:"jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),monthsShort:"jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),weekdays:"pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev".split("_"),weekdaysShort:"P_E_T_K_N_R_L".split("_"),weekdaysMin:"P_E_T_K_N_R_L".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[Täna,] LT",nextDay:"[Homme,] LT",nextWeek:"[Järgmine] dddd LT",lastDay:"[Eile,] LT",lastWeek:"[Eelmine] dddd LT",sameElse:"L"},relativeTime:{future:"%s pärast",past:"%s tagasi",s:o,m:o,mm:o,h:o,hh:o,d:o,dd:"%d päeva",M:o,MM:o,y:o,yy:o},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week. +doy:4}}),a.defineLocale("eu",{months:"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),monthsShort:"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),monthsParseExact:!0,weekdays:"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),weekdaysShort:"ig._al._ar._az._og._ol._lr.".split("_"),weekdaysMin:"ig_al_ar_az_og_ol_lr".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] HH:mm",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] HH:mm",llll:"ddd, YYYY[ko] MMM D[a] HH:mm"},calendar:{sameDay:"[gaur] LT[etan]",nextDay:"[bihar] LT[etan]",nextWeek:"dddd LT[etan]",lastDay:"[atzo] LT[etan]",lastWeek:"[aurreko] dddd LT[etan]",sameElse:"L"},relativeTime:{future:"%s barru",past:"duela %s",s:"segundo batzuk",m:"minutu bat",mm:"%d minutu",h:"ordu bat",hh:"%d ordu",d:"egun bat",dd:"%d egun",M:"hilabete bat",MM:"%d hilabete",y:"urte bat",yy:"%d urte"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week. +doy:7}}),{1:"۱",2:"۲",3:"۳",4:"۴",5:"۵",6:"۶",7:"۷",8:"۸",9:"۹",0:"۰"}),Aa={"۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","۰":"0"},Ba=(a.defineLocale("fa",{months:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),monthsShort:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),weekdays:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysShort:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysMin:"ی_د_س_چ_پ_ج_ش".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/قبل از ظهر|بعد از ظهر/,isPM:function(a){return/بعد از ظهر/.test(a)},meridiem:function(a,b,c){return 12>a?"قبل از ظهر":"بعد از ظهر"},calendar:{sameDay:"[امروز ساعت] LT",nextDay:"[فردا ساعت] LT",nextWeek:"dddd [ساعت] LT",lastDay:"[دیروز ساعت] LT",lastWeek:"dddd [پیش] [ساعت] LT",sameElse:"L"},relativeTime:{future:"در %s",past:"%s پیش",s:"چندین ثانیه",m:"یک دقیقه",mm:"%d دقیقه",h:"یک ساعت",hh:"%d ساعت",d:"یک روز",dd:"%d روز",M:"یک ماه",MM:"%d ماه",y:"یک سال",yy:"%d سال"},preparse:function(a){return a.replace(/[۰-۹]/g,function(a){return Aa[a]}).replace(/،/g,",")},postformat:function(a){return a.replace(/\d/g,function(a){return za[a]}).replace(/,/g,"،")},ordinalParse:/\d{1,2}م/,ordinal:"%dم",week:{dow:6,// Saturday is the first day of the week. +doy:12}}),"nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän".split(" ")),Ca=["nolla","yhden","kahden","kolmen","neljän","viiden","kuuden",Ba[7],Ba[8],Ba[9]],Da=(a.defineLocale("fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu".split("_"),weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] HH.mm",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] HH.mm",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] HH.mm",llll:"ddd, Do MMM YYYY, [klo] HH.mm"},calendar:{sameDay:"[tänään] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s päästä",past:"%s sitten",s:p,m:p,mm:p,h:p,hh:p,d:p,dd:p,M:p,MM:p,y:p,yy:p},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week. +doy:4}}),a.defineLocale("fo",{months:"januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur".split("_"),weekdaysShort:"sun_mán_týs_mik_hós_frí_ley".split("_"),weekdaysMin:"su_má_tý_mi_hó_fr_le".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D. MMMM, YYYY HH:mm"},calendar:{sameDay:"[Í dag kl.] LT",nextDay:"[Í morgin kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[Í gjár kl.] LT",lastWeek:"[síðstu] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"um %s",past:"%s síðani",s:"fá sekund",m:"ein minutt",mm:"%d minuttir",h:"ein tími",hh:"%d tímar",d:"ein dagur",dd:"%d dagar",M:"ein mánaði",MM:"%d mánaðir",y:"eitt ár",yy:"%d ár"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week. +doy:4}}),a.defineLocale("fr-ca",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"Di_Lu_Ma_Me_Je_Ve_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd'hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},ordinalParse:/\d{1,2}(er|e)/,ordinal:function(a){return a+(1===a?"er":"e")}}),a.defineLocale("fr-ch",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"Di_Lu_Ma_Me_Je_Ve_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd'hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},ordinalParse:/\d{1,2}(er|e)/,ordinal:function(a){return a+(1===a?"er":"e")},week:{dow:1,// Monday is the first day of the week. +doy:4}}),a.defineLocale("fr",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"Di_Lu_Ma_Me_Je_Ve_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd'hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},ordinalParse:/\d{1,2}(er|)/,ordinal:function(a){return a+(1===a?"er":"")},week:{dow:1,// Monday is the first day of the week. +doy:4}}),"jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.".split("_")),Ea="jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),Fa=(a.defineLocale("fy",{months:"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber".split("_"),monthsShort:function(a,b){return/-MMM-/.test(b)?Ea[a.month()]:Da[a.month()]},monthsParseExact:!0,weekdays:"snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon".split("_"),weekdaysShort:"si._mo._ti._wo._to._fr._so.".split("_"),weekdaysMin:"Si_Mo_Ti_Wo_To_Fr_So".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[hjoed om] LT",nextDay:"[moarn om] LT",nextWeek:"dddd [om] LT",lastDay:"[juster om] LT",lastWeek:"[ôfrûne] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oer %s",past:"%s lyn",s:"in pear sekonden",m:"ien minút",mm:"%d minuten",h:"ien oere",hh:"%d oeren",d:"ien dei",dd:"%d dagen",M:"ien moanne",MM:"%d moannen",y:"ien jier",yy:"%d jierren"},ordinalParse:/\d{1,2}(ste|de)/,ordinal:function(a){return a+(1===a||8===a||a>=20?"ste":"de")},week:{dow:1,// Monday is the first day of the week. +doy:4}}),["Am Faoilleach","An Gearran","Am Màrt","An Giblean","An Cèitean","An t-Ògmhios","An t-Iuchar","An Lùnastal","An t-Sultain","An Dàmhair","An t-Samhain","An Dùbhlachd"]),Ga=["Faoi","Gear","Màrt","Gibl","Cèit","Ògmh","Iuch","Lùn","Sult","Dàmh","Samh","Dùbh"],Ha=["Didòmhnaich","Diluain","Dimàirt","Diciadain","Diardaoin","Dihaoine","Disathairne"],Ia=["Did","Dil","Dim","Dic","Dia","Dih","Dis"],Ja=["Dò","Lu","Mà","Ci","Ar","Ha","Sa"],Ka=(a.defineLocale("gd",{months:Fa,monthsShort:Ga,monthsParseExact:!0,weekdays:Ha,weekdaysShort:Ia,weekdaysMin:Ja,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[An-diugh aig] LT",nextDay:"[A-màireach aig] LT",nextWeek:"dddd [aig] LT",lastDay:"[An-dè aig] LT",lastWeek:"dddd [seo chaidh] [aig] LT",sameElse:"L"},relativeTime:{future:"ann an %s",past:"bho chionn %s",s:"beagan diogan",m:"mionaid",mm:"%d mionaidean",h:"uair",hh:"%d uairean",d:"latha",dd:"%d latha",M:"mìos",MM:"%d mìosan",y:"bliadhna",yy:"%d bliadhna"},ordinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(a){var b=1===a?"d":a%10===2?"na":"mh";return a+b},week:{dow:1,// Monday is the first day of the week. +doy:4}}),a.defineLocale("gl",{months:"xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro".split("_"),monthsShort:"xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"domingo_luns_martes_mércores_xoves_venres_sábado".split("_"),weekdaysShort:"dom._lun._mar._mér._xov._ven._sáb.".split("_"),weekdaysMin:"do_lu_ma_mé_xo_ve_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoxe "+(1!==this.hours()?"ás":"á")+"] LT"},nextDay:function(){return"[mañá "+(1!==this.hours()?"ás":"á")+"] LT"},nextWeek:function(){return"dddd ["+(1!==this.hours()?"ás":"a")+"] LT"},lastDay:function(){return"[onte "+(1!==this.hours()?"á":"a")+"] LT"},lastWeek:function(){return"[o] dddd [pasado "+(1!==this.hours()?"ás":"a")+"] LT"},sameElse:"L"},relativeTime:{future:function(a){return 0===a.indexOf("un")?"n"+a:"en "+a},past:"hai %s",s:"uns segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"},ordinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,// Monday is the first day of the week. +doy:4}}),a.defineLocale("he",{months:"ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר".split("_"),monthsShort:"ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳".split("_"),weekdays:"ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת".split("_"),weekdaysShort:"א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳".split("_"),weekdaysMin:"א_ב_ג_ד_ה_ו_ש".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [ב]MMMM YYYY",LLL:"D [ב]MMMM YYYY HH:mm",LLLL:"dddd, D [ב]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[היום ב־]LT",nextDay:"[מחר ב־]LT",nextWeek:"dddd [בשעה] LT",lastDay:"[אתמול ב־]LT",lastWeek:"[ביום] dddd [האחרון בשעה] LT",sameElse:"L"},relativeTime:{future:"בעוד %s",past:"לפני %s",s:"מספר שניות",m:"דקה",mm:"%d דקות",h:"שעה",hh:function(a){return 2===a?"שעתיים":a+" שעות"},d:"יום",dd:function(a){return 2===a?"יומיים":a+" ימים"},M:"חודש",MM:function(a){return 2===a?"חודשיים":a+" חודשים"},y:"שנה",yy:function(a){return 2===a?"שנתיים":a%10===0&&10!==a?a+" שנה":a+" שנים"}},meridiemParse:/אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,isPM:function(a){return/^(אחה"צ|אחרי הצהריים|בערב)$/.test(a)},meridiem:function(a,b,c){return 5>a?"לפנות בוקר":10>a?"בבוקר":12>a?c?'לפנה"צ':"לפני הצהריים":18>a?c?'אחה"צ':"אחרי הצהריים":"בערב"}}),{1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"}),La={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"},Ma=(a.defineLocale("hi",{months:"जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर".split("_"),monthsShort:"जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm बजे",LTS:"A h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm बजे",LLLL:"dddd, D MMMM YYYY, A h:mm बजे"},calendar:{sameDay:"[आज] LT",nextDay:"[कल] LT",nextWeek:"dddd, LT",lastDay:"[कल] LT",lastWeek:"[पिछले] dddd, LT",sameElse:"L"},relativeTime:{future:"%s में",past:"%s पहले",s:"कुछ ही क्षण",m:"एक मिनट",mm:"%d मिनट",h:"एक घंटा",hh:"%d घंटे",d:"एक दिन",dd:"%d दिन",M:"एक महीने",MM:"%d महीने",y:"एक वर्ष",yy:"%d वर्ष"},preparse:function(a){return a.replace(/[१२३४५६७८९०]/g,function(a){return La[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return Ka[a]})}, +// Hindi notation for meridiems are quite fuzzy in practice. While there exists +// a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi. +meridiemParse:/रात|सुबह|दोपहर|शाम/,meridiemHour:function(a,b){return 12===a&&(a=0),"रात"===b?4>a?a:a+12:"सुबह"===b?a:"दोपहर"===b?a>=10?a:a+12:"शाम"===b?a+12:void 0},meridiem:function(a,b,c){return 4>a?"रात":10>a?"सुबह":17>a?"दोपहर":20>a?"शाम":"रात"},week:{dow:0,// Sunday is the first day of the week. +doy:6}}),a.defineLocale("hr",{months:{format:"siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),standalone:"siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_")},monthsShort:"sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",m:r,mm:r,h:r,hh:r,d:"dan",dd:r,M:"mjesec",MM:r,y:"godinu",yy:r},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week. +doy:7}}),"vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton".split(" ")),Na=(a.defineLocale("hu",{months:"január_február_március_április_május_június_július_augusztus_szeptember_október_november_december".split("_"),monthsShort:"jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec".split("_"),weekdays:"vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat".split("_"),weekdaysShort:"vas_hét_kedd_sze_csüt_pén_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"},meridiemParse:/de|du/i,isPM:function(a){return"u"===a.charAt(1).toLowerCase()},meridiem:function(a,b,c){return 12>a?c===!0?"de":"DE":c===!0?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return t.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return t.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s múlva",past:"%s",s:s,m:s,mm:s,h:s,hh:s,d:s,dd:s,M:s,MM:s,y:s,yy:s},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week. +doy:7}}),a.defineLocale("hy-am",{months:{format:"հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի".split("_"),standalone:"հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր".split("_")},monthsShort:"հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ".split("_"),weekdays:"կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ".split("_"),weekdaysShort:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),weekdaysMin:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY թ.",LLL:"D MMMM YYYY թ., HH:mm",LLLL:"dddd, D MMMM YYYY թ., HH:mm"},calendar:{sameDay:"[այսօր] LT",nextDay:"[վաղը] LT",lastDay:"[երեկ] LT",nextWeek:function(){return"dddd [օրը ժամը] LT"},lastWeek:function(){return"[անցած] dddd [օրը ժամը] LT"},sameElse:"L"},relativeTime:{future:"%s հետո",past:"%s առաջ",s:"մի քանի վայրկյան",m:"րոպե",mm:"%d րոպե",h:"ժամ",hh:"%d ժամ",d:"օր",dd:"%d օր",M:"ամիս",MM:"%d ամիս",y:"տարի",yy:"%d տարի"},meridiemParse:/գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,isPM:function(a){return/^(ցերեկվա|երեկոյան)$/.test(a)},meridiem:function(a){return 4>a?"գիշերվա":12>a?"առավոտվա":17>a?"ցերեկվա":"երեկոյան"},ordinalParse:/\d{1,2}|\d{1,2}-(ին|րդ)/,ordinal:function(a,b){switch(b){case"DDD":case"w":case"W":case"DDDo":return 1===a?a+"-ին":a+"-րդ";default:return a}},week:{dow:1,// Monday is the first day of the week. +doy:7}}),a.defineLocale("id",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(a,b){return 12===a&&(a=0),"pagi"===b?a:"siang"===b?a>=11?a:a+12:"sore"===b||"malam"===b?a+12:void 0},meridiem:function(a,b,c){return 11>a?"pagi":15>a?"siang":19>a?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,// Monday is the first day of the week. +doy:7}}),a.defineLocale("is",{months:"janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember".split("_"),monthsShort:"jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des".split("_"),weekdays:"sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur".split("_"),weekdaysShort:"sun_mán_þri_mið_fim_fös_lau".split("_"),weekdaysMin:"Su_Má_Þr_Mi_Fi_Fö_La".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd, D. MMMM YYYY [kl.] H:mm"},calendar:{sameDay:"[í dag kl.] LT",nextDay:"[á morgun kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[í gær kl.] LT",lastWeek:"[síðasta] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"eftir %s",past:"fyrir %s síðan",s:v,m:v,mm:v,h:"klukkustund",hh:v,d:v,dd:v,M:v,MM:v,y:v,yy:v},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week. +doy:4}}),a.defineLocale("it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"Domenica_Lunedì_Martedì_Mercoledì_Giovedì_Venerdì_Sabato".split("_"),weekdaysShort:"Dom_Lun_Mar_Mer_Gio_Ven_Sab".split("_"),weekdaysMin:"Do_Lu_Ma_Me_Gi_Ve_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(a){return(/^[0-9].+$/.test(a)?"tra":"in")+" "+a},past:"%s fa",s:"alcuni secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},ordinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,// Monday is the first day of the week. +doy:4}}),a.defineLocale("ja",{months:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"),weekdaysShort:"日_月_火_水_木_金_土".split("_"),weekdaysMin:"日_月_火_水_木_金_土".split("_"),longDateFormat:{LT:"Ah時m分",LTS:"Ah時m分s秒",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah時m分",LLLL:"YYYY年M月D日Ah時m分 dddd"},meridiemParse:/午前|午後/i,isPM:function(a){return"午後"===a},meridiem:function(a,b,c){return 12>a?"午前":"午後"},calendar:{sameDay:"[今日] LT",nextDay:"[明日] LT",nextWeek:"[来週]dddd LT",lastDay:"[昨日] LT",lastWeek:"[前週]dddd LT",sameElse:"L"},ordinalParse:/\d{1,2}日/,ordinal:function(a,b){switch(b){case"d":case"D":case"DDD":return a+"日";default:return a}},relativeTime:{future:"%s後",past:"%s前",s:"数秒",m:"1分",mm:"%d分",h:"1時間",hh:"%d時間",d:"1日",dd:"%d日",M:"1ヶ月",MM:"%dヶ月",y:"1年",yy:"%d年"}}),a.defineLocale("jv",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des".split("_"),weekdays:"Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu".split("_"),weekdaysShort:"Min_Sen_Sel_Reb_Kem_Jem_Sep".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sp".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/enjing|siyang|sonten|ndalu/,meridiemHour:function(a,b){return 12===a&&(a=0),"enjing"===b?a:"siyang"===b?a>=11?a:a+12:"sonten"===b||"ndalu"===b?a+12:void 0},meridiem:function(a,b,c){return 11>a?"enjing":15>a?"siyang":19>a?"sonten":"ndalu"},calendar:{sameDay:"[Dinten puniko pukul] LT",nextDay:"[Mbenjang pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kala wingi pukul] LT",lastWeek:"dddd [kepengker pukul] LT",sameElse:"L"},relativeTime:{future:"wonten ing %s",past:"%s ingkang kepengker",s:"sawetawis detik",m:"setunggal menit",mm:"%d menit",h:"setunggal jam",hh:"%d jam",d:"sedinten",dd:"%d dinten",M:"sewulan",MM:"%d wulan",y:"setaun",yy:"%d taun"},week:{dow:1,// Monday is the first day of the week. +doy:7}}),a.defineLocale("ka",{months:{standalone:"იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი".split("_"),format:"იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს".split("_")},monthsShort:"იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ".split("_"),weekdays:{standalone:"კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი".split("_"),format:"კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს".split("_"),isFormat:/(წინა|შემდეგ)/},weekdaysShort:"კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ".split("_"),weekdaysMin:"კვ_ორ_სა_ოთ_ხუ_პა_შა".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[დღეს] LT[-ზე]",nextDay:"[ხვალ] LT[-ზე]",lastDay:"[გუშინ] LT[-ზე]",nextWeek:"[შემდეგ] dddd LT[-ზე]",lastWeek:"[წინა] dddd LT-ზე",sameElse:"L"},relativeTime:{future:function(a){return/(წამი|წუთი|საათი|წელი)/.test(a)?a.replace(/ი$/,"ში"):a+"ში"},past:function(a){return/(წამი|წუთი|საათი|დღე|თვე)/.test(a)?a.replace(/(ი|ე)$/,"ის წინ"):/წელი/.test(a)?a.replace(/წელი$/,"წლის წინ"):void 0},s:"რამდენიმე წამი",m:"წუთი",mm:"%d წუთი",h:"საათი",hh:"%d საათი",d:"დღე",dd:"%d დღე",M:"თვე",MM:"%d თვე",y:"წელი",yy:"%d წელი"},ordinalParse:/0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/,ordinal:function(a){return 0===a?a:1===a?a+"-ლი":20>a||100>=a&&a%20===0||a%100===0?"მე-"+a:a+"-ე"},week:{dow:1,doy:7}}),{0:"-ші",1:"-ші",2:"-ші",3:"-ші",4:"-ші",5:"-ші",6:"-шы",7:"-ші",8:"-ші",9:"-шы",10:"-шы",20:"-шы",30:"-шы",40:"-шы",50:"-ші",60:"-шы",70:"-ші",80:"-ші",90:"-шы",100:"-ші"}),Oa=(a.defineLocale("kk",{months:"қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан".split("_"),monthsShort:"қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел".split("_"),weekdays:"жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі".split("_"),weekdaysShort:"жек_дүй_сей_сәр_бей_жұм_сен".split("_"),weekdaysMin:"жк_дй_сй_ср_бй_жм_сн".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Бүгін сағат] LT",nextDay:"[Ертең сағат] LT",nextWeek:"dddd [сағат] LT",lastDay:"[Кеше сағат] LT",lastWeek:"[Өткен аптаның] dddd [сағат] LT",sameElse:"L"},relativeTime:{future:"%s ішінде",past:"%s бұрын",s:"бірнеше секунд",m:"бір минут",mm:"%d минут",h:"бір сағат",hh:"%d сағат",d:"бір күн",dd:"%d күн",M:"бір ай",MM:"%d ай",y:"бір жыл",yy:"%d жыл"},ordinalParse:/\d{1,2}-(ші|шы)/,ordinal:function(a){var b=a%10,c=a>=100?100:null;return a+(Na[a]||Na[b]||Na[c])},week:{dow:1,// Monday is the first day of the week. +doy:7}}),a.defineLocale("km",{months:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),monthsShort:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),weekdays:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),weekdaysShort:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),weekdaysMin:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[ថ្ងៃនេះ ម៉ោង] LT",nextDay:"[ស្អែក ម៉ោង] LT",nextWeek:"dddd [ម៉ោង] LT",lastDay:"[ម្សិលមិញ ម៉ោង] LT",lastWeek:"dddd [សប្តាហ៍មុន] [ម៉ោង] LT",sameElse:"L"},relativeTime:{future:"%sទៀត",past:"%sមុន",s:"ប៉ុន្មានវិនាទី",m:"មួយនាទី",mm:"%d នាទី",h:"មួយម៉ោង",hh:"%d ម៉ោង",d:"មួយថ្ងៃ",dd:"%d ថ្ងៃ",M:"មួយខែ",MM:"%d ខែ",y:"មួយឆ្នាំ",yy:"%d ឆ្នាំ"},week:{dow:1,// Monday is the first day of the week. +doy:4}}),a.defineLocale("ko",{months:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),monthsShort:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),weekdays:"일요일_월요일_화요일_수요일_목요일_금요일_토요일".split("_"),weekdaysShort:"일_월_화_수_목_금_토".split("_"),weekdaysMin:"일_월_화_수_목_금_토".split("_"),longDateFormat:{LT:"A h시 m분",LTS:"A h시 m분 s초",L:"YYYY.MM.DD",LL:"YYYY년 MMMM D일",LLL:"YYYY년 MMMM D일 A h시 m분",LLLL:"YYYY년 MMMM D일 dddd A h시 m분"},calendar:{sameDay:"오늘 LT",nextDay:"내일 LT",nextWeek:"dddd LT",lastDay:"어제 LT",lastWeek:"지난주 dddd LT",sameElse:"L"},relativeTime:{future:"%s 후",past:"%s 전",s:"몇 초",ss:"%d초",m:"일분",mm:"%d분",h:"한 시간",hh:"%d시간",d:"하루",dd:"%d일",M:"한 달",MM:"%d달",y:"일 년",yy:"%d년"},ordinalParse:/\d{1,2}일/,ordinal:"%d일",meridiemParse:/오전|오후/,isPM:function(a){return"오후"===a},meridiem:function(a,b,c){return 12>a?"오전":"오후"}}),{0:"-чү",1:"-чи",2:"-чи",3:"-чү",4:"-чү",5:"-чи",6:"-чы",7:"-чи",8:"-чи",9:"-чу",10:"-чу",20:"-чы",30:"-чу",40:"-чы",50:"-чү",60:"-чы",70:"-чи",80:"-чи",90:"-чу",100:"-чү"}),Pa=(a.defineLocale("ky",{months:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),monthsShort:"янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек".split("_"),weekdays:"Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби".split("_"),weekdaysShort:"Жек_Дүй_Шей_Шар_Бей_Жум_Ише".split("_"),weekdaysMin:"Жк_Дй_Шй_Шр_Бй_Жм_Иш".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Бүгүн саат] LT",nextDay:"[Эртең саат] LT",nextWeek:"dddd [саат] LT",lastDay:"[Кече саат] LT",lastWeek:"[Өткен аптанын] dddd [күнү] [саат] LT",sameElse:"L"},relativeTime:{future:"%s ичинде",past:"%s мурун",s:"бирнече секунд",m:"бир мүнөт",mm:"%d мүнөт",h:"бир саат",hh:"%d саат",d:"бир күн",dd:"%d күн",M:"бир ай",MM:"%d ай",y:"бир жыл",yy:"%d жыл"},ordinalParse:/\d{1,2}-(чи|чы|чү|чу)/,ordinal:function(a){var b=a%10,c=a>=100?100:null;return a+(Oa[a]||Oa[b]||Oa[c])},week:{dow:1,// Monday is the first day of the week. +doy:7}}),a.defineLocale("lb",{months:"Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),weekdaysShort:"So._Mé._Dë._Më._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mé_Dë_Më_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm [Auer]",LTS:"H:mm:ss [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm [Auer]",LLLL:"dddd, D. MMMM YYYY H:mm [Auer]"},calendar:{sameDay:"[Haut um] LT",sameElse:"L",nextDay:"[Muer um] LT",nextWeek:"dddd [um] LT",lastDay:"[Gëschter um] LT",lastWeek:function(){ +// Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule +switch(this.day()){case 2:case 4:return"[Leschten] dddd [um] LT";default:return"[Leschte] dddd [um] LT"}}},relativeTime:{future:x,past:y,s:"e puer Sekonnen",m:w,mm:"%d Minutten",h:w,hh:"%d Stonnen",d:w,dd:"%d Deeg",M:w,MM:"%d Méint",y:w,yy:"%d Joer"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week. +doy:4}}),a.defineLocale("lo",{months:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),monthsShort:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),weekdays:"ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysShort:"ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysMin:"ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"ວັນdddd D MMMM YYYY HH:mm"},meridiemParse:/ຕອນເຊົ້າ|ຕອນແລງ/,isPM:function(a){return"ຕອນແລງ"===a},meridiem:function(a,b,c){return 12>a?"ຕອນເຊົ້າ":"ຕອນແລງ"},calendar:{sameDay:"[ມື້ນີ້ເວລາ] LT",nextDay:"[ມື້ອື່ນເວລາ] LT",nextWeek:"[ວັນ]dddd[ໜ້າເວລາ] LT",lastDay:"[ມື້ວານນີ້ເວລາ] LT",lastWeek:"[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT",sameElse:"L"},relativeTime:{future:"ອີກ %s",past:"%sຜ່ານມາ",s:"ບໍ່ເທົ່າໃດວິນາທີ",m:"1 ນາທີ",mm:"%d ນາທີ",h:"1 ຊົ່ວໂມງ",hh:"%d ຊົ່ວໂມງ",d:"1 ມື້",dd:"%d ມື້",M:"1 ເດືອນ",MM:"%d ເດືອນ",y:"1 ປີ",yy:"%d ປີ"},ordinalParse:/(ທີ່)\d{1,2}/,ordinal:function(a){return"ທີ່"+a}}),{m:"minutė_minutės_minutę",mm:"minutės_minučių_minutes",h:"valanda_valandos_valandą",hh:"valandos_valandų_valandas",d:"diena_dienos_dieną",dd:"dienos_dienų_dienas",M:"mėnuo_mėnesio_mėnesį",MM:"mėnesiai_mėnesių_mėnesius",y:"metai_metų_metus",yy:"metai_metų_metus"}),Qa=(a.defineLocale("lt",{months:{format:"sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio".split("_"),standalone:"sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis".split("_"),isFormat:/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?|MMMM?(\[[^\[\]]*\]|\s+)+D[oD]?/},monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:{format:"sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį".split("_"),standalone:"sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis".split("_"),isFormat:/dddd HH:mm/},weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_Šeš".split("_"),weekdaysMin:"S_P_A_T_K_Pn_Š".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},calendar:{sameDay:"[Šiandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Praėjusį] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prieš %s",s:A,m:B,mm:E,h:B,hh:E,d:B,dd:E,M:B,MM:E,y:B,yy:E},ordinalParse:/\d{1,2}-oji/,ordinal:function(a){return a+"-oji"},week:{dow:1,// Monday is the first day of the week. +doy:4}}),{m:"minūtes_minūtēm_minūte_minūtes".split("_"),mm:"minūtes_minūtēm_minūte_minūtes".split("_"),h:"stundas_stundām_stunda_stundas".split("_"),hh:"stundas_stundām_stunda_stundas".split("_"),d:"dienas_dienām_diena_dienas".split("_"),dd:"dienas_dienām_diena_dienas".split("_"),M:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),MM:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),y:"gada_gadiem_gads_gadi".split("_"),yy:"gada_gadiem_gads_gadi".split("_")}),Ra=(a.defineLocale("lv",{months:"janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris".split("_"),monthsShort:"jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec".split("_"),weekdays:"svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena".split("_"),weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY.",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, HH:mm",LLLL:"YYYY. [gada] D. MMMM, dddd, HH:mm"},calendar:{sameDay:"[Šodien pulksten] LT",nextDay:"[Rīt pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",lastWeek:"[Pagājušā] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"pēc %s",past:"pirms %s",s:I,m:H,mm:G,h:H,hh:G,d:H,dd:G,M:H,MM:G,y:H,yy:G},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week. +doy:4}}),{words:{//Different grammatical cases +m:["jedan minut","jednog minuta"],mm:["minut","minuta","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mjesec","mjeseca","mjeseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&4>=a?b[1]:b[2]},translate:function(a,b,c){var d=Ra.words[c];return 1===c.length?b?d[0]:d[1]:a+" "+Ra.correctGrammaticalCase(a,d)}}),Sa=(a.defineLocale("me",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sjutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){var a=["[prošle] [nedjelje] [u] LT","[prošlog] [ponedjeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srijede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"];return a[this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"nekoliko sekundi",m:Ra.translate,mm:Ra.translate,h:Ra.translate,hh:Ra.translate,d:"dan",dd:Ra.translate,M:"mjesec",MM:Ra.translate,y:"godinu",yy:Ra.translate},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week. +doy:7}}),a.defineLocale("mi",{months:"Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea".split("_"),monthsShort:"Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki".split("_"),monthsRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,weekdays:"Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei".split("_"),weekdaysShort:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),weekdaysMin:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [i] HH:mm",LLLL:"dddd, D MMMM YYYY [i] HH:mm"},calendar:{sameDay:"[i teie mahana, i] LT",nextDay:"[apopo i] LT",nextWeek:"dddd [i] LT",lastDay:"[inanahi i] LT",lastWeek:"dddd [whakamutunga i] LT",sameElse:"L"},relativeTime:{future:"i roto i %s",past:"%s i mua",s:"te hēkona ruarua",m:"he meneti",mm:"%d meneti",h:"te haora",hh:"%d haora",d:"he ra",dd:"%d ra",M:"he marama",MM:"%d marama",y:"he tau",yy:"%d tau"},ordinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,// Monday is the first day of the week. +doy:4}}),a.defineLocale("mk",{months:"јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември".split("_"),monthsShort:"јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек".split("_"),weekdays:"недела_понеделник_вторник_среда_четврток_петок_сабота".split("_"),weekdaysShort:"нед_пон_вто_сре_чет_пет_саб".split("_"),weekdaysMin:"нe_пo_вт_ср_че_пе_сa".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Денес во] LT",nextDay:"[Утре во] LT",nextWeek:"[Во] dddd [во] LT",lastDay:"[Вчера во] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[Изминатата] dddd [во] LT";case 1:case 2:case 4:case 5:return"[Изминатиот] dddd [во] LT"}},sameElse:"L"},relativeTime:{future:"после %s",past:"пред %s",s:"неколку секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дена",M:"месец",MM:"%d месеци",y:"година",yy:"%d години"},ordinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(a){var b=a%10,c=a%100;return 0===a?a+"-ев":0===c?a+"-ен":c>10&&20>c?a+"-ти":1===b?a+"-ви":2===b?a+"-ри":7===b||8===b?a+"-ми":a+"-ти"},week:{dow:1,// Monday is the first day of the week. +doy:7}}),a.defineLocale("ml",{months:"ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ".split("_"),monthsShort:"ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.".split("_"),monthsParseExact:!0,weekdays:"ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച".split("_"),weekdaysShort:"ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി".split("_"),weekdaysMin:"ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ".split("_"),longDateFormat:{LT:"A h:mm -നു",LTS:"A h:mm:ss -നു",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm -നു",LLLL:"dddd, D MMMM YYYY, A h:mm -നു"},calendar:{sameDay:"[ഇന്ന്] LT",nextDay:"[നാളെ] LT",nextWeek:"dddd, LT",lastDay:"[ഇന്നലെ] LT",lastWeek:"[കഴിഞ്ഞ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s കഴിഞ്ഞ്",past:"%s മുൻപ്",s:"അൽപ നിമിഷങ്ങൾ",m:"ഒരു മിനിറ്റ്",mm:"%d മിനിറ്റ്",h:"ഒരു മണിക്കൂർ",hh:"%d മണിക്കൂർ",d:"ഒരു ദിവസം",dd:"%d ദിവസം",M:"ഒരു മാസം",MM:"%d മാസം",y:"ഒരു വർഷം",yy:"%d വർഷം"},meridiemParse:/രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,meridiemHour:function(a,b){return 12===a&&(a=0),"രാത്രി"===b&&a>=4||"ഉച്ച കഴിഞ്ഞ്"===b||"വൈകുന്നേരം"===b?a+12:a},meridiem:function(a,b,c){return 4>a?"രാത്രി":12>a?"രാവിലെ":17>a?"ഉച്ച കഴിഞ്ഞ്":20>a?"വൈകുന്നേരം":"രാത്രി"}}),{1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"}),Ta={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"},Ua=(a.defineLocale("mr",{months:"जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर".split("_"),monthsShort:"जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm वाजता",LTS:"A h:mm:ss वाजता",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm वाजता",LLLL:"dddd, D MMMM YYYY, A h:mm वाजता"},calendar:{sameDay:"[आज] LT",nextDay:"[उद्या] LT",nextWeek:"dddd, LT",lastDay:"[काल] LT",lastWeek:"[मागील] dddd, LT",sameElse:"L"},relativeTime:{future:"%sमध्ये",past:"%sपूर्वी",s:J,m:J,mm:J,h:J,hh:J,d:J,dd:J,M:J,MM:J,y:J,yy:J},preparse:function(a){return a.replace(/[१२३४५६७८९०]/g,function(a){return Ta[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return Sa[a]})},meridiemParse:/रात्री|सकाळी|दुपारी|सायंकाळी/,meridiemHour:function(a,b){return 12===a&&(a=0),"रात्री"===b?4>a?a:a+12:"सकाळी"===b?a:"दुपारी"===b?a>=10?a:a+12:"सायंकाळी"===b?a+12:void 0},meridiem:function(a,b,c){return 4>a?"रात्री":10>a?"सकाळी":17>a?"दुपारी":20>a?"सायंकाळी":"रात्री"},week:{dow:0,// Sunday is the first day of the week. +doy:6}}),a.defineLocale("ms-my",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(a,b){return 12===a&&(a=0),"pagi"===b?a:"tengahari"===b?a>=11?a:a+12:"petang"===b||"malam"===b?a+12:void 0},meridiem:function(a,b,c){return 11>a?"pagi":15>a?"tengahari":19>a?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,// Monday is the first day of the week. +doy:7}}),a.defineLocale("ms",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(a,b){return 12===a&&(a=0),"pagi"===b?a:"tengahari"===b?a>=11?a:a+12:"petang"===b||"malam"===b?a+12:void 0},meridiem:function(a,b,c){return 11>a?"pagi":15>a?"tengahari":19>a?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,// Monday is the first day of the week. +doy:7}}),{1:"၁",2:"၂",3:"၃",4:"၄",5:"၅",6:"၆",7:"၇",8:"၈",9:"၉",0:"၀"}),Va={"၁":"1","၂":"2","၃":"3","၄":"4","၅":"5","၆":"6","၇":"7","၈":"8","၉":"9","၀":"0"},Wa=(a.defineLocale("my",{months:"ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ".split("_"),monthsShort:"ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ".split("_"),weekdays:"တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ".split("_"),weekdaysShort:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),weekdaysMin:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ယနေ.] LT [မှာ]",nextDay:"[မနက်ဖြန်] LT [မှာ]",nextWeek:"dddd LT [မှာ]",lastDay:"[မနေ.က] LT [မှာ]",lastWeek:"[ပြီးခဲ့သော] dddd LT [မှာ]",sameElse:"L"},relativeTime:{future:"လာမည့် %s မှာ",past:"လွန်ခဲ့သော %s က",s:"စက္ကန်.အနည်းငယ်",m:"တစ်မိနစ်",mm:"%d မိနစ်",h:"တစ်နာရီ",hh:"%d နာရီ",d:"တစ်ရက်",dd:"%d ရက်",M:"တစ်လ",MM:"%d လ",y:"တစ်နှစ်",yy:"%d နှစ်"},preparse:function(a){return a.replace(/[၁၂၃၄၅၆၇၈၉၀]/g,function(a){return Va[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return Ua[a]})},week:{dow:1,// Monday is the first day of the week. +doy:4}}),a.defineLocale("nb",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.".split("_"),monthsParseExact:!0,weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"sø._ma._ti._on._to._fr._lø.".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] HH:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[forrige] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"noen sekunder",m:"ett minutt",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dager",M:"en måned",MM:"%d måneder",y:"ett år",yy:"%d år"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week. +doy:4}}),{1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"}),Xa={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"},Ya=(a.defineLocale("ne",{months:"जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर".split("_"),monthsShort:"जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.".split("_"),monthsParseExact:!0,weekdays:"आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार".split("_"),weekdaysShort:"आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.".split("_"),weekdaysMin:"आ._सो._मं._बु._बि._शु._श.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"Aको h:mm बजे",LTS:"Aको h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, Aको h:mm बजे",LLLL:"dddd, D MMMM YYYY, Aको h:mm बजे"},preparse:function(a){return a.replace(/[१२३४५६७८९०]/g,function(a){return Xa[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return Wa[a]})},meridiemParse:/राति|बिहान|दिउँसो|साँझ/,meridiemHour:function(a,b){return 12===a&&(a=0),"राति"===b?4>a?a:a+12:"बिहान"===b?a:"दिउँसो"===b?a>=10?a:a+12:"साँझ"===b?a+12:void 0},meridiem:function(a,b,c){return 3>a?"राति":12>a?"बिहान":16>a?"दिउँसो":20>a?"साँझ":"राति"},calendar:{sameDay:"[आज] LT",nextDay:"[भोलि] LT",nextWeek:"[आउँदो] dddd[,] LT",lastDay:"[हिजो] LT",lastWeek:"[गएको] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%sमा",past:"%s अगाडि",s:"केही क्षण",m:"एक मिनेट",mm:"%d मिनेट",h:"एक घण्टा",hh:"%d घण्टा",d:"एक दिन",dd:"%d दिन",M:"एक महिना",MM:"%d महिना",y:"एक बर्ष",yy:"%d बर्ष"},week:{dow:0,// Sunday is the first day of the week. +doy:6}}),"jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_")),Za="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),$a=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],_a=/^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,ab=(a.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(a,b){return/-MMM-/.test(b)?Za[a.month()]:Ya[a.month()]},monthsRegex:_a,monthsShortRegex:_a,monthsStrictRegex:/^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:$a,longMonthsParse:$a,shortMonthsParse:$a,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"Zo_Ma_Di_Wo_Do_Vr_Za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},ordinalParse:/\d{1,2}(ste|de)/,ordinal:function(a){return a+(1===a||8===a||a>=20?"ste":"de")},week:{dow:1,// Monday is the first day of the week. +doy:4}}),a.defineLocale("nn",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),weekdaysShort:"sun_mån_tys_ons_tor_fre_lau".split("_"),weekdaysMin:"su_må_ty_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[I dag klokka] LT",nextDay:"[I morgon klokka] LT",nextWeek:"dddd [klokka] LT",lastDay:"[I går klokka] LT",lastWeek:"[Føregåande] dddd [klokka] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s sidan",s:"nokre sekund",m:"eit minutt",mm:"%d minutt",h:"ein time",hh:"%d timar",d:"ein dag",dd:"%d dagar",M:"ein månad",MM:"%d månader",y:"eit år",yy:"%d år"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week. +doy:4}}),{1:"੧",2:"੨",3:"੩",4:"੪",5:"੫",6:"੬",7:"੭",8:"੮",9:"੯",0:"੦"}),bb={"੧":"1","੨":"2","੩":"3","੪":"4","੫":"5","੬":"6","੭":"7","੮":"8","੯":"9","੦":"0"},cb=(a.defineLocale("pa-in",{ +// There are months name as per Nanakshahi Calender but they are not used as rigidly in modern Punjabi. +months:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),monthsShort:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),weekdays:"ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ".split("_"),weekdaysShort:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),weekdaysMin:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),longDateFormat:{LT:"A h:mm ਵਜੇ",LTS:"A h:mm:ss ਵਜੇ",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm ਵਜੇ",LLLL:"dddd, D MMMM YYYY, A h:mm ਵਜੇ"},calendar:{sameDay:"[ਅਜ] LT",nextDay:"[ਕਲ] LT",nextWeek:"dddd, LT",lastDay:"[ਕਲ] LT",lastWeek:"[ਪਿਛਲੇ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ਵਿੱਚ",past:"%s ਪਿਛਲੇ",s:"ਕੁਝ ਸਕਿੰਟ",m:"ਇਕ ਮਿੰਟ",mm:"%d ਮਿੰਟ",h:"ਇੱਕ ਘੰਟਾ",hh:"%d ਘੰਟੇ",d:"ਇੱਕ ਦਿਨ",dd:"%d ਦਿਨ",M:"ਇੱਕ ਮਹੀਨਾ",MM:"%d ਮਹੀਨੇ",y:"ਇੱਕ ਸਾਲ",yy:"%d ਸਾਲ"},preparse:function(a){return a.replace(/[੧੨੩੪੫੬੭੮੯੦]/g,function(a){return bb[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return ab[a]})}, +// Punjabi notation for meridiems are quite fuzzy in practice. While there exists +// a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi. +meridiemParse:/ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,meridiemHour:function(a,b){return 12===a&&(a=0),"ਰਾਤ"===b?4>a?a:a+12:"ਸਵੇਰ"===b?a:"ਦੁਪਹਿਰ"===b?a>=10?a:a+12:"ਸ਼ਾਮ"===b?a+12:void 0},meridiem:function(a,b,c){return 4>a?"ਰਾਤ":10>a?"ਸਵੇਰ":17>a?"ਦੁਪਹਿਰ":20>a?"ਸ਼ਾਮ":"ਰਾਤ"},week:{dow:0,// Sunday is the first day of the week. +doy:6}}),"styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_")),db="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_"),eb=(a.defineLocale("pl",{months:function(a,b){return""===b?"("+db[a.month()]+"|"+cb[a.month()]+")":/D MMMM/.test(b)?db[a.month()]:cb[a.month()]},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"),weekdays:"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota".split("_"),weekdaysShort:"nie_pon_wt_śr_czw_pt_sb".split("_"),weekdaysMin:"Nd_Pn_Wt_Śr_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Dziś o] LT",nextDay:"[Jutro o] LT",nextWeek:"[W] dddd [o] LT",lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zeszłą niedzielę o] LT";case 3:return"[W zeszłą środę o] LT";case 6:return"[W zeszłą sobotę o] LT";default:return"[W zeszły] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",m:L,mm:L,h:L,hh:L,d:"1 dzień",dd:"%d dni",M:"miesiąc",MM:L,y:"rok",yy:L},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week. +doy:4}}),a.defineLocale("pt-br",{months:"Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Dom_2ª_3ª_4ª_5ª_6ª_Sáb".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [às] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [às] HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){// Saturday + Sunday +return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"%s atrás",s:"poucos segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},ordinalParse:/\d{1,2}º/,ordinal:"%dº"}),a.defineLocale("pt",{months:"Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingo_Segunda-Feira_Terça-Feira_Quarta-Feira_Quinta-Feira_Sexta-Feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Dom_2ª_3ª_4ª_5ª_6ª_Sáb".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){// Saturday + Sunday +return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},ordinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,// Monday is the first day of the week. +doy:4}}),a.defineLocale("ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"duminică_luni_marți_miercuri_joi_vineri_sâmbătă".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_Sâm".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_Sâ".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[mâine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s în urmă",s:"câteva secunde",m:"un minut",mm:M,h:"o oră",hh:M,d:"o zi",dd:M,M:"o lună",MM:M,y:"un an",yy:M},week:{dow:1,// Monday is the first day of the week. +doy:7}}),[/^янв/i,/^фев/i,/^мар/i,/^апр/i,/^ма[йя]/i,/^июн/i,/^июл/i,/^авг/i,/^сен/i,/^окт/i,/^ноя/i,/^дек/i]),fb=(a.defineLocale("ru",{months:{format:"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря".split("_"),standalone:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_")},monthsShort:{ +// по CLDR именно "июл." и "июн.", но какой смысл менять букву на точку ? +format:"янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.".split("_"),standalone:"янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.".split("_")},weekdays:{standalone:"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"),format:"воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу".split("_"),isFormat:/\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\] ?dddd/},weekdaysShort:"вс_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"вс_пн_вт_ср_чт_пт_сб".split("_"),monthsParse:eb,longMonthsParse:eb,shortMonthsParse:eb, +// полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки +monthsRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i, +// копия предыдущего +monthsShortRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i, +// полные названия с падежами +monthsStrictRegex:/^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i, +// Выражение, которое соотвествует только сокращённым формам +monthsShortStrictRegex:/^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., HH:mm",LLLL:"dddd, D MMMM YYYY г., HH:mm"},calendar:{sameDay:"[Сегодня в] LT",nextDay:"[Завтра в] LT",lastDay:"[Вчера в] LT",nextWeek:function(a){if(a.week()===this.week())return 2===this.day()?"[Во] dddd [в] LT":"[В] dddd [в] LT";switch(this.day()){case 0:return"[В следующее] dddd [в] LT";case 1:case 2:case 4:return"[В следующий] dddd [в] LT";case 3:case 5:case 6:return"[В следующую] dddd [в] LT"}},lastWeek:function(a){if(a.week()===this.week())return 2===this.day()?"[Во] dddd [в] LT":"[В] dddd [в] LT";switch(this.day()){case 0:return"[В прошлое] dddd [в] LT";case 1:case 2:case 4:return"[В прошлый] dddd [в] LT";case 3:case 5:case 6:return"[В прошлую] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"через %s",past:"%s назад",s:"несколько секунд",m:O,mm:O,h:"час",hh:O,d:"день",dd:O,M:"месяц",MM:O,y:"год",yy:O},meridiemParse:/ночи|утра|дня|вечера/i,isPM:function(a){return/^(дня|вечера)$/.test(a)},meridiem:function(a,b,c){return 4>a?"ночи":12>a?"утра":17>a?"дня":"вечера"},ordinalParse:/\d{1,2}-(й|го|я)/,ordinal:function(a,b){switch(b){case"M":case"d":case"DDD":return a+"-й";case"D":return a+"-го";case"w":case"W":return a+"-я";default:return a}},week:{dow:1,// Monday is the first day of the week. +doy:7}}),a.defineLocale("se",{months:"ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu".split("_"),monthsShort:"ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov".split("_"),weekdays:"sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat".split("_"),weekdaysShort:"sotn_vuos_maŋ_gask_duor_bear_láv".split("_"),weekdaysMin:"s_v_m_g_d_b_L".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"MMMM D. [b.] YYYY",LLL:"MMMM D. [b.] YYYY [ti.] HH:mm",LLLL:"dddd, MMMM D. [b.] YYYY [ti.] HH:mm"},calendar:{sameDay:"[otne ti] LT",nextDay:"[ihttin ti] LT",nextWeek:"dddd [ti] LT",lastDay:"[ikte ti] LT",lastWeek:"[ovddit] dddd [ti] LT",sameElse:"L"},relativeTime:{future:"%s geažes",past:"maŋit %s",s:"moadde sekunddat",m:"okta minuhta",mm:"%d minuhtat",h:"okta diimmu",hh:"%d diimmut",d:"okta beaivi",dd:"%d beaivvit",M:"okta mánnu",MM:"%d mánut",y:"okta jahki",yy:"%d jagit"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week. +doy:4}}),a.defineLocale("si",{months:"ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්".split("_"),monthsShort:"ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ".split("_"),weekdays:"ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා".split("_"),weekdaysShort:"ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන".split("_"),weekdaysMin:"ඉ_ස_අ_බ_බ්‍ර_සි_සෙ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"a h:mm",LTS:"a h:mm:ss",L:"YYYY/MM/DD",LL:"YYYY MMMM D",LLL:"YYYY MMMM D, a h:mm",LLLL:"YYYY MMMM D [වැනි] dddd, a h:mm:ss"},calendar:{sameDay:"[අද] LT[ට]",nextDay:"[හෙට] LT[ට]",nextWeek:"dddd LT[ට]",lastDay:"[ඊයේ] LT[ට]",lastWeek:"[පසුගිය] dddd LT[ට]",sameElse:"L"},relativeTime:{future:"%sකින්",past:"%sකට පෙර",s:"තත්පර කිහිපය",m:"මිනිත්තුව",mm:"මිනිත්තු %d",h:"පැය",hh:"පැය %d",d:"දිනය",dd:"දින %d",M:"මාසය",MM:"මාස %d",y:"වසර",yy:"වසර %d"},ordinalParse:/\d{1,2} වැනි/,ordinal:function(a){return a+" වැනි"},meridiemParse:/පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,isPM:function(a){return"ප.ව."===a||"පස් වරු"===a},meridiem:function(a,b,c){return a>11?c?"ප.ව.":"පස් වරු":c?"පෙ.ව.":"පෙර වරු"}}),"január_február_marec_apríl_máj_jún_júl_august_september_október_november_december".split("_")),gb="jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec".split("_"),hb=(a.defineLocale("sk",{months:fb,monthsShort:gb,weekdays:"nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_št_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_št_pi_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm"},calendar:{sameDay:"[dnes o] LT",nextDay:"[zajtra o] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nedeľu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo štvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[včera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulú nedeľu o] LT";case 1:case 2:return"[minulý] dddd [o] LT";case 3:return"[minulú stredu o] LT";case 4:case 5:return"[minulý] dddd [o] LT";case 6:return"[minulú sobotu o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:Q,m:Q,mm:Q,h:Q,hh:Q,d:Q,dd:Q,M:Q,MM:Q,y:Q,yy:Q},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week. +doy:4}}),a.defineLocale("sl",{months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._čet._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_če_pe_so".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[včeraj ob] LT",lastWeek:function(){switch(this.day()){case 0:return"[prejšnjo] [nedeljo] [ob] LT";case 3:return"[prejšnjo] [sredo] [ob] LT";case 6:return"[prejšnjo] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[prejšnji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"čez %s",past:"pred %s",s:R,m:R,mm:R,h:R,hh:R,d:R,dd:R,M:R,MM:R,y:R,yy:R},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week. +doy:7}}),a.defineLocale("sq",{months:"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor".split("_"),monthsShort:"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj".split("_"),weekdays:"E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë".split("_"),weekdaysShort:"Die_Hën_Mar_Mër_Enj_Pre_Sht".split("_"),weekdaysMin:"D_H_Ma_Më_E_P_Sh".split("_"),weekdaysParseExact:!0,meridiemParse:/PD|MD/,isPM:function(a){return"M"===a.charAt(0)},meridiem:function(a,b,c){return 12>a?"PD":"MD"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Sot në] LT",nextDay:"[Nesër në] LT",nextWeek:"dddd [në] LT",lastDay:"[Dje në] LT",lastWeek:"dddd [e kaluar në] LT",sameElse:"L"},relativeTime:{future:"në %s",past:"%s më parë",s:"disa sekonda",m:"një minutë",mm:"%d minuta",h:"një orë",hh:"%d orë",d:"një ditë",dd:"%d ditë",M:"një muaj",MM:"%d muaj",y:"një vit",yy:"%d vite"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week. +doy:4}}),{words:{//Different grammatical cases +m:["један минут","једне минуте"],mm:["минут","минуте","минута"],h:["један сат","једног сата"],hh:["сат","сата","сати"],dd:["дан","дана","дана"],MM:["месец","месеца","месеци"],yy:["година","године","година"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&4>=a?b[1]:b[2]},translate:function(a,b,c){var d=hb.words[c];return 1===c.length?b?d[0]:d[1]:a+" "+hb.correctGrammaticalCase(a,d)}}),ib=(a.defineLocale("sr-cyrl",{months:"јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар".split("_"),monthsShort:"јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.".split("_"),monthsParseExact:!0,weekdays:"недеља_понедељак_уторак_среда_четвртак_петак_субота".split("_"),weekdaysShort:"нед._пон._уто._сре._чет._пет._суб.".split("_"),weekdaysMin:"не_по_ут_ср_че_пе_су".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[данас у] LT",nextDay:"[сутра у] LT",nextWeek:function(){switch(this.day()){case 0:return"[у] [недељу] [у] LT";case 3:return"[у] [среду] [у] LT";case 6:return"[у] [суботу] [у] LT";case 1:case 2:case 4:case 5:return"[у] dddd [у] LT"}},lastDay:"[јуче у] LT",lastWeek:function(){var a=["[прошле] [недеље] [у] LT","[прошлог] [понедељка] [у] LT","[прошлог] [уторка] [у] LT","[прошле] [среде] [у] LT","[прошлог] [четвртка] [у] LT","[прошлог] [петка] [у] LT","[прошле] [суботе] [у] LT"];return a[this.day()]},sameElse:"L"},relativeTime:{future:"за %s",past:"пре %s",s:"неколико секунди",m:hb.translate,mm:hb.translate,h:hb.translate,hh:hb.translate,d:"дан",dd:hb.translate,M:"месец",MM:hb.translate,y:"годину",yy:hb.translate},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week. +doy:7}}),{words:{//Different grammatical cases +m:["jedan minut","jedne minute"],mm:["minut","minute","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mesec","meseca","meseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&4>=a?b[1]:b[2]},translate:function(a,b,c){var d=ib.words[c];return 1===c.length?b?d[0]:d[1]:a+" "+ib.correctGrammaticalCase(a,d)}}),jb=(a.defineLocale("sr",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sre._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){var a=["[prošle] [nedelje] [u] LT","[prošlog] [ponedeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"];return a[this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",m:ib.translate,mm:ib.translate,h:ib.translate,hh:ib.translate,d:"dan",dd:ib.translate,M:"mesec",MM:ib.translate,y:"godinu",yy:ib.translate},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week. +doy:7}}),a.defineLocale("ss",{months:"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split("_"),monthsShort:"Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo".split("_"),weekdays:"Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo".split("_"),weekdaysShort:"Lis_Umb_Lsb_Les_Lsi_Lsh_Umg".split("_"),weekdaysMin:"Li_Us_Lb_Lt_Ls_Lh_Ug".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Namuhla nga] LT",nextDay:"[Kusasa nga] LT",nextWeek:"dddd [nga] LT",lastDay:"[Itolo nga] LT",lastWeek:"dddd [leliphelile] [nga] LT",sameElse:"L"},relativeTime:{future:"nga %s",past:"wenteka nga %s",s:"emizuzwana lomcane",m:"umzuzu",mm:"%d emizuzu",h:"lihora",hh:"%d emahora",d:"lilanga",dd:"%d emalanga",M:"inyanga",MM:"%d tinyanga",y:"umnyaka",yy:"%d iminyaka"},meridiemParse:/ekuseni|emini|entsambama|ebusuku/,meridiem:function(a,b,c){return 11>a?"ekuseni":15>a?"emini":19>a?"entsambama":"ebusuku"},meridiemHour:function(a,b){return 12===a&&(a=0),"ekuseni"===b?a:"emini"===b?a>=11?a:a+12:"entsambama"===b||"ebusuku"===b?0===a?0:a+12:void 0},ordinalParse:/\d{1,2}/,ordinal:"%d",week:{dow:1,// Monday is the first day of the week. +doy:4}}),a.defineLocale("sv",{months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag".split("_"),weekdaysShort:"sön_mån_tis_ons_tor_fre_lör".split("_"),weekdaysMin:"sö_må_ti_on_to_fr_lö".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [kl.] HH:mm",LLLL:"dddd D MMMM YYYY [kl.] HH:mm",lll:"D MMM YYYY HH:mm",llll:"ddd D MMM YYYY HH:mm"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[Igår] LT",nextWeek:"[På] dddd LT",lastWeek:"[I] dddd[s] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"för %s sedan",s:"några sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en månad",MM:"%d månader",y:"ett år",yy:"%d år"},ordinalParse:/\d{1,2}(e|a)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"e":1===b?"a":2===b?"a":"e";return a+c},week:{dow:1,// Monday is the first day of the week. +doy:4}}),a.defineLocale("sw",{months:"Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des".split("_"),weekdays:"Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi".split("_"),weekdaysShort:"Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos".split("_"),weekdaysMin:"J2_J3_J4_J5_Al_Ij_J1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[leo saa] LT",nextDay:"[kesho saa] LT",nextWeek:"[wiki ijayo] dddd [saat] LT",lastDay:"[jana] LT",lastWeek:"[wiki iliyopita] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s baadaye",past:"tokea %s",s:"hivi punde",m:"dakika moja",mm:"dakika %d",h:"saa limoja",hh:"masaa %d",d:"siku moja",dd:"masiku %d",M:"mwezi mmoja",MM:"miezi %d",y:"mwaka mmoja",yy:"miaka %d"},week:{dow:1,// Monday is the first day of the week. +doy:7}}),{1:"௧",2:"௨",3:"௩",4:"௪",5:"௫",6:"௬",7:"௭",8:"௮",9:"௯",0:"௦"}),kb={"௧":"1","௨":"2","௩":"3","௪":"4","௫":"5","௬":"6","௭":"7","௮":"8","௯":"9","௦":"0"},lb=(a.defineLocale("ta",{months:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),monthsShort:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),weekdays:"ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை".split("_"),weekdaysShort:"ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி".split("_"),weekdaysMin:"ஞா_தி_செ_பு_வி_வெ_ச".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, HH:mm",LLLL:"dddd, D MMMM YYYY, HH:mm"},calendar:{sameDay:"[இன்று] LT",nextDay:"[நாளை] LT",nextWeek:"dddd, LT",lastDay:"[நேற்று] LT",lastWeek:"[கடந்த வாரம்] dddd, LT",sameElse:"L"},relativeTime:{future:"%s இல்",past:"%s முன்",s:"ஒரு சில விநாடிகள்",m:"ஒரு நிமிடம்",mm:"%d நிமிடங்கள்",h:"ஒரு மணி நேரம்",hh:"%d மணி நேரம்",d:"ஒரு நாள்",dd:"%d நாட்கள்",M:"ஒரு மாதம்",MM:"%d மாதங்கள்",y:"ஒரு வருடம்",yy:"%d ஆண்டுகள்"},ordinalParse:/\d{1,2}வது/,ordinal:function(a){return a+"வது"},preparse:function(a){return a.replace(/[௧௨௩௪௫௬௭௮௯௦]/g,function(a){return kb[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return jb[a]})}, +// refer http://ta.wikipedia.org/s/1er1 +meridiemParse:/யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,meridiem:function(a,b,c){return 2>a?" யாமம்":6>a?" வைகறை":10>a?" காலை":14>a?" நண்பகல்":18>a?" எற்பாடு":22>a?" மாலை":" யாமம்"},meridiemHour:function(a,b){return 12===a&&(a=0),"யாமம்"===b?2>a?a:a+12:"வைகறை"===b||"காலை"===b?a:"நண்பகல்"===b&&a>=10?a:a+12},week:{dow:0,// Sunday is the first day of the week. +doy:6}}),a.defineLocale("te",{months:"జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జూలై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్".split("_"),monthsShort:"జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జూలై_ఆగ._సెప్._అక్టో._నవ._డిసె.".split("_"),monthsParseExact:!0,weekdays:"ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం".split("_"),weekdaysShort:"ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని".split("_"),weekdaysMin:"ఆ_సో_మం_బు_గు_శు_శ".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[నేడు] LT",nextDay:"[రేపు] LT",nextWeek:"dddd, LT",lastDay:"[నిన్న] LT",lastWeek:"[గత] dddd, LT",sameElse:"L"},relativeTime:{future:"%s లో",past:"%s క్రితం",s:"కొన్ని క్షణాలు",m:"ఒక నిమిషం",mm:"%d నిమిషాలు",h:"ఒక గంట",hh:"%d గంటలు",d:"ఒక రోజు",dd:"%d రోజులు",M:"ఒక నెల",MM:"%d నెలలు",y:"ఒక సంవత్సరం",yy:"%d సంవత్సరాలు"},ordinalParse:/\d{1,2}వ/,ordinal:"%dవ",meridiemParse:/రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,meridiemHour:function(a,b){return 12===a&&(a=0),"రాత్రి"===b?4>a?a:a+12:"ఉదయం"===b?a:"మధ్యాహ్నం"===b?a>=10?a:a+12:"సాయంత్రం"===b?a+12:void 0},meridiem:function(a,b,c){return 4>a?"రాత్రి":10>a?"ఉదయం":17>a?"మధ్యాహ్నం":20>a?"సాయంత్రం":"రాత్రి"},week:{dow:0,// Sunday is the first day of the week. +doy:6}}),a.defineLocale("th",{months:"มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม".split("_"),monthsShort:"ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.".split("_"),monthsParseExact:!0,weekdays:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์".split("_"),weekdaysShort:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์".split("_"),// yes, three characters difference +weekdaysMin:"อา._จ._อ._พ._พฤ._ศ._ส.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY/MM/DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY เวลา H:mm",LLLL:"วันddddที่ D MMMM YYYY เวลา H:mm"},meridiemParse:/ก่อนเที่ยง|หลังเที่ยง/,isPM:function(a){return"หลังเที่ยง"===a},meridiem:function(a,b,c){return 12>a?"ก่อนเที่ยง":"หลังเที่ยง"},calendar:{sameDay:"[วันนี้ เวลา] LT",nextDay:"[พรุ่งนี้ เวลา] LT",nextWeek:"dddd[หน้า เวลา] LT",lastDay:"[เมื่อวานนี้ เวลา] LT",lastWeek:"[วัน]dddd[ที่แล้ว เวลา] LT",sameElse:"L"},relativeTime:{future:"อีก %s",past:"%sที่แล้ว",s:"ไม่กี่วินาที",m:"1 นาที",mm:"%d นาที",h:"1 ชั่วโมง",hh:"%d ชั่วโมง",d:"1 วัน",dd:"%d วัน",M:"1 เดือน",MM:"%d เดือน",y:"1 ปี",yy:"%d ปี"}}),a.defineLocale("tl-ph",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"[Ngayon sa] LT",nextDay:"[Bukas sa] LT",nextWeek:"dddd [sa] LT",lastDay:"[Kahapon sa] LT",lastWeek:"dddd [huling linggo] LT",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},ordinalParse:/\d{1,2}/,ordinal:function(a){return a},week:{dow:1,// Monday is the first day of the week. +doy:4}}),"pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut".split("_")),mb=(a.defineLocale("tlh",{months:"tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’".split("_"),monthsShort:"jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’".split("_"),monthsParseExact:!0,weekdays:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysShort:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysMin:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[DaHjaj] LT",nextDay:"[wa’leS] LT",nextWeek:"LLL",lastDay:"[wa’Hu’] LT",lastWeek:"LLL",sameElse:"L"},relativeTime:{future:S,past:T,s:"puS lup",m:"wa’ tup",mm:U,h:"wa’ rep",hh:U,d:"wa’ jaj",dd:U,M:"wa’ jar",MM:U,y:"wa’ DIS",yy:U},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week. +doy:4}}),{1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'üncü",4:"'üncü",100:"'üncü",6:"'ncı",9:"'uncu",10:"'uncu",30:"'uncu",60:"'ıncı",90:"'ıncı"});a.defineLocale("tr",{months:"Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık".split("_"),monthsShort:"Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_Çar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_Ça_Pe_Cu_Ct".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[yarın saat] LT",nextWeek:"[haftaya] dddd [saat] LT",lastDay:"[dün] LT",lastWeek:"[geçen hafta] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s önce",s:"birkaç saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir yıl",yy:"%d yıl"},ordinalParse:/\d{1,2}'(inci|nci|üncü|ncı|uncu|ıncı)/,ordinal:function(a){if(0===a)// special case for zero +return a+"'ıncı";var b=a%10,c=a%100-b,d=a>=100?100:null;return a+(mb[b]||mb[c]||mb[d])},week:{dow:1,// Monday is the first day of the week. +doy:7}}),a.defineLocale("tzl",{months:"Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar".split("_"),monthsShort:"Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec".split("_"),weekdays:"Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi".split("_"),weekdaysShort:"Súl_Lún_Mai_Már_Xhú_Vié_Sát".split("_"),weekdaysMin:"Sú_Lú_Ma_Má_Xh_Vi_Sá".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM [dallas] YYYY",LLL:"D. MMMM [dallas] YYYY HH.mm",LLLL:"dddd, [li] D. MMMM [dallas] YYYY HH.mm"},meridiemParse:/d\'o|d\'a/i,isPM:function(a){return"d'o"===a.toLowerCase()},meridiem:function(a,b,c){return a>11?c?"d'o":"D'O":c?"d'a":"D'A"},calendar:{sameDay:"[oxhi à] LT",nextDay:"[demà à] LT",nextWeek:"dddd [à] LT",lastDay:"[ieiri à] LT",lastWeek:"[sür el] dddd [lasteu à] LT",sameElse:"L"},relativeTime:{future:"osprei %s",past:"ja%s",s:W,m:W,mm:W,h:W,hh:W,d:W,dd:W,M:W,MM:W,y:W,yy:W},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week. +doy:4}}),a.defineLocale("tzm-latn",{months:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),monthsShort:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),weekdays:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysShort:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysMin:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[asdkh g] LT",nextDay:"[aska g] LT",nextWeek:"dddd [g] LT",lastDay:"[assant g] LT",lastWeek:"dddd [g] LT",sameElse:"L"},relativeTime:{future:"dadkh s yan %s",past:"yan %s",s:"imik",m:"minuḍ",mm:"%d minuḍ",h:"saɛa",hh:"%d tassaɛin",d:"ass",dd:"%d ossan",M:"ayowr",MM:"%d iyyirn",y:"asgas",yy:"%d isgasn"},week:{dow:6,// Saturday is the first day of the week. +doy:12}}),a.defineLocale("tzm",{months:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),monthsShort:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),weekdays:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysShort:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysMin:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ⴰⵙⴷⵅ ⴴ] LT",nextDay:"[ⴰⵙⴽⴰ ⴴ] LT",nextWeek:"dddd [ⴴ] LT",lastDay:"[ⴰⵚⴰⵏⵜ ⴴ] LT",lastWeek:"dddd [ⴴ] LT",sameElse:"L"},relativeTime:{future:"ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s",past:"ⵢⴰⵏ %s",s:"ⵉⵎⵉⴽ",m:"ⵎⵉⵏⵓⴺ",mm:"%d ⵎⵉⵏⵓⴺ",h:"ⵙⴰⵄⴰ",hh:"%d ⵜⴰⵙⵙⴰⵄⵉⵏ",d:"ⴰⵙⵙ",dd:"%d oⵙⵙⴰⵏ",M:"ⴰⵢoⵓⵔ",MM:"%d ⵉⵢⵢⵉⵔⵏ",y:"ⴰⵙⴳⴰⵙ",yy:"%d ⵉⵙⴳⴰⵙⵏ"},week:{dow:6,// Saturday is the first day of the week. +doy:12}}),a.defineLocale("uk",{months:{format:"січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня".split("_"),standalone:"січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень".split("_")},monthsShort:"січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд".split("_"),weekdays:Z,weekdaysShort:"нд_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY р.",LLL:"D MMMM YYYY р., HH:mm",LLLL:"dddd, D MMMM YYYY р., HH:mm"},calendar:{sameDay:$("[Сьогодні "),nextDay:$("[Завтра "),lastDay:$("[Вчора "),nextWeek:$("[У] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return $("[Минулої] dddd [").call(this);case 1:case 2:case 4:return $("[Минулого] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"за %s",past:"%s тому",s:"декілька секунд",m:Y,mm:Y,h:"годину",hh:Y,d:"день",dd:Y,M:"місяць",MM:Y,y:"рік",yy:Y}, +// M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason +meridiemParse:/ночі|ранку|дня|вечора/,isPM:function(a){return/^(дня|вечора)$/.test(a)},meridiem:function(a,b,c){return 4>a?"ночі":12>a?"ранку":17>a?"дня":"вечора"},ordinalParse:/\d{1,2}-(й|го)/,ordinal:function(a,b){switch(b){case"M":case"d":case"DDD":case"w":case"W":return a+"-й";case"D":return a+"-го";default:return a}},week:{dow:1,// Monday is the first day of the week. +doy:7}}),a.defineLocale("uz",{months:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба".split("_"),weekdaysShort:"Якш_Душ_Сеш_Чор_Пай_Жум_Шан".split("_"),weekdaysMin:"Як_Ду_Се_Чо_Па_Жу_Ша".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Бугун соат] LT [да]",nextDay:"[Эртага] LT [да]",nextWeek:"dddd [куни соат] LT [да]",lastDay:"[Кеча соат] LT [да]",lastWeek:"[Утган] dddd [куни соат] LT [да]",sameElse:"L"},relativeTime:{future:"Якин %s ичида",past:"Бир неча %s олдин",s:"фурсат",m:"бир дакика",mm:"%d дакика",h:"бир соат",hh:"%d соат",d:"бир кун",dd:"%d кун",M:"бир ой",MM:"%d ой",y:"бир йил",yy:"%d йил"},week:{dow:1,// Monday is the first day of the week. +doy:7}}),a.defineLocale("vi",{months:"tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12".split("_"),monthsShort:"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12".split("_"),monthsParseExact:!0,weekdays:"chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy".split("_"),weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysParseExact:!0,meridiemParse:/sa|ch/i,isPM:function(a){return/^ch$/i.test(a)},meridiem:function(a,b,c){return 12>a?c?"sa":"SA":c?"ch":"CH"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [năm] YYYY",LLL:"D MMMM [năm] YYYY HH:mm",LLLL:"dddd, D MMMM [năm] YYYY HH:mm",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[Hôm nay lúc] LT",nextDay:"[Ngày mai lúc] LT",nextWeek:"dddd [tuần tới lúc] LT",lastDay:"[Hôm qua lúc] LT",lastWeek:"dddd [tuần rồi lúc] LT",sameElse:"L"},relativeTime:{future:"%s tới",past:"%s trước",s:"vài giây",m:"một phút",mm:"%d phút",h:"một giờ",hh:"%d giờ",d:"một ngày",dd:"%d ngày",M:"một tháng",MM:"%d tháng",y:"một năm",yy:"%d năm"},ordinalParse:/\d{1,2}/,ordinal:function(a){return a},week:{dow:1,// Monday is the first day of the week. +doy:4}}),a.defineLocale("x-pseudo",{months:"J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér".split("_"),monthsShort:"J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc".split("_"),monthsParseExact:!0,weekdays:"S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý".split("_"),weekdaysShort:"S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát".split("_"),weekdaysMin:"S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[T~ódá~ý át] LT",nextDay:"[T~ómó~rró~w át] LT",nextWeek:"dddd [át] LT",lastDay:"[Ý~ést~érdá~ý át] LT",lastWeek:"[L~ást] dddd [át] LT",sameElse:"L"},relativeTime:{future:"í~ñ %s",past:"%s á~gó",s:"á ~féw ~sécó~ñds",m:"á ~míñ~úté",mm:"%d m~íñú~tés",h:"á~ñ hó~úr",hh:"%d h~óúrs",d:"á ~dáý",dd:"%d d~áýs",M:"á ~móñ~th",MM:"%d m~óñt~hs",y:"á ~ýéár",yy:"%d ý~éárs"},ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,// Monday is the first day of the week. +doy:4}}),a.defineLocale("zh-cn",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"Ah点mm分",LTS:"Ah点m分s秒",L:"YYYY-MM-DD",LL:"YYYY年MMMD日",LLL:"YYYY年MMMD日Ah点mm分",LLLL:"YYYY年MMMD日ddddAh点mm分",l:"YYYY-MM-DD",ll:"YYYY年MMMD日",lll:"YYYY年MMMD日Ah点mm分",llll:"YYYY年MMMD日ddddAh点mm分"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(a,b){return 12===a&&(a=0),"凌晨"===b||"早上"===b||"上午"===b?a:"下午"===b||"晚上"===b?a+12:a>=11?a:a+12},meridiem:function(a,b,c){var d=100*a+b;return 600>d?"凌晨":900>d?"早上":1130>d?"上午":1230>d?"中午":1800>d?"下午":"晚上"},calendar:{sameDay:function(){return 0===this.minutes()?"[今天]Ah[点整]":"[今天]LT"},nextDay:function(){return 0===this.minutes()?"[明天]Ah[点整]":"[明天]LT"},lastDay:function(){return 0===this.minutes()?"[昨天]Ah[点整]":"[昨天]LT"},nextWeek:function(){var b,c;return b=a().startOf("week"),c=this.diff(b,"days")>=7?"[下]":"[本]",0===this.minutes()?c+"dddAh点整":c+"dddAh点mm"},lastWeek:function(){var b,c;return b=a().startOf("week"),c=this.unix()=11?a:a+12:"下午"===b||"晚上"===b?a+12:void 0},meridiem:function(a,b,c){var d=100*a+b;return 600>d?"凌晨":900>d?"早上":1130>d?"上午":1230>d?"中午":1800>d?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},ordinalParse:/\d{1,2}(日|月|週)/,ordinal:function(a,b){switch(b){case"d":case"D":case"DDD":return a+"日";case"M":return a+"月";case"w":case"W":return a+"週";default:return a}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}}),a.defineLocale("zh-tw",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"Ah點mm分",LTS:"Ah點m分s秒",L:"YYYY年MMMD日",LL:"YYYY年MMMD日",LLL:"YYYY年MMMD日Ah點mm分",LLLL:"YYYY年MMMD日ddddAh點mm分",l:"YYYY年MMMD日",ll:"YYYY年MMMD日",lll:"YYYY年MMMD日Ah點mm分",llll:"YYYY年MMMD日ddddAh點mm分"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(a,b){return 12===a&&(a=0),"凌晨"===b||"早上"===b||"上午"===b?a:"中午"===b?a>=11?a:a+12:"下午"===b||"晚上"===b?a+12:void 0},meridiem:function(a,b,c){var d=100*a+b;return 600>d?"凌晨":900>d?"早上":1130>d?"上午":1230>d?"中午":1800>d?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},ordinalParse:/\d{1,2}(日|月|週)/,ordinal:function(a,b){switch(b){case"d":case"D":case"DDD":return a+"日";case"M":return a+"月";case"w":case"W":return a+"週";default:return a}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}});a.locale("en")}); \ No newline at end of file diff --git a/library/moment/moment.js b/library/moment/moment.js new file mode 100644 index 000000000..b78115b54 --- /dev/null +++ b/library/moment/moment.js @@ -0,0 +1,4234 @@ +//! moment.js +//! version : 2.15.1 +//! authors : Tim Wood, Iskren Chernev, Moment.js contributors +//! license : MIT +//! momentjs.com + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + global.moment = factory() +}(this, function () { 'use strict'; + + var hookCallback; + + function utils_hooks__hooks () { + return hookCallback.apply(null, arguments); + } + + // This is done to register the method called with moment() + // without creating circular dependencies. + function setHookCallback (callback) { + hookCallback = callback; + } + + function isArray(input) { + return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]'; + } + + function isObject(input) { + // IE8 will treat undefined and null as object if it wasn't for + // input != null + return input != null && Object.prototype.toString.call(input) === '[object Object]'; + } + + function isObjectEmpty(obj) { + var k; + for (k in obj) { + // even if its not own property I'd still call it non-empty + return false; + } + return true; + } + + function isDate(input) { + return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]'; + } + + function map(arr, fn) { + var res = [], i; + for (i = 0; i < arr.length; ++i) { + res.push(fn(arr[i], i)); + } + return res; + } + + function hasOwnProp(a, b) { + return Object.prototype.hasOwnProperty.call(a, b); + } + + function extend(a, b) { + for (var i in b) { + if (hasOwnProp(b, i)) { + a[i] = b[i]; + } + } + + if (hasOwnProp(b, 'toString')) { + a.toString = b.toString; + } + + if (hasOwnProp(b, 'valueOf')) { + a.valueOf = b.valueOf; + } + + return a; + } + + function create_utc__createUTC (input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, true).utc(); + } + + function defaultParsingFlags() { + // We need to deep clone this object. + return { + empty : false, + unusedTokens : [], + unusedInput : [], + overflow : -2, + charsLeftOver : 0, + nullInput : false, + invalidMonth : null, + invalidFormat : false, + userInvalidated : false, + iso : false, + parsedDateParts : [], + meridiem : null + }; + } + + function getParsingFlags(m) { + if (m._pf == null) { + m._pf = defaultParsingFlags(); + } + return m._pf; + } + + var some; + if (Array.prototype.some) { + some = Array.prototype.some; + } else { + some = function (fun) { + var t = Object(this); + var len = t.length >>> 0; + + for (var i = 0; i < len; i++) { + if (i in t && fun.call(this, t[i], i, t)) { + return true; + } + } + + return false; + }; + } + + function valid__isValid(m) { + if (m._isValid == null) { + var flags = getParsingFlags(m); + var parsedParts = some.call(flags.parsedDateParts, function (i) { + return i != null; + }); + var isNowValid = !isNaN(m._d.getTime()) && + flags.overflow < 0 && + !flags.empty && + !flags.invalidMonth && + !flags.invalidWeekday && + !flags.nullInput && + !flags.invalidFormat && + !flags.userInvalidated && + (!flags.meridiem || (flags.meridiem && parsedParts)); + + if (m._strict) { + isNowValid = isNowValid && + flags.charsLeftOver === 0 && + flags.unusedTokens.length === 0 && + flags.bigHour === undefined; + } + + if (Object.isFrozen == null || !Object.isFrozen(m)) { + m._isValid = isNowValid; + } + else { + return isNowValid; + } + } + return m._isValid; + } + + function valid__createInvalid (flags) { + var m = create_utc__createUTC(NaN); + if (flags != null) { + extend(getParsingFlags(m), flags); + } + else { + getParsingFlags(m).userInvalidated = true; + } + + return m; + } + + function isUndefined(input) { + return input === void 0; + } + + // Plugins that add properties should also add the key here (null value), + // so we can properly clone ourselves. + var momentProperties = utils_hooks__hooks.momentProperties = []; + + function copyConfig(to, from) { + var i, prop, val; + + if (!isUndefined(from._isAMomentObject)) { + to._isAMomentObject = from._isAMomentObject; + } + if (!isUndefined(from._i)) { + to._i = from._i; + } + if (!isUndefined(from._f)) { + to._f = from._f; + } + if (!isUndefined(from._l)) { + to._l = from._l; + } + if (!isUndefined(from._strict)) { + to._strict = from._strict; + } + if (!isUndefined(from._tzm)) { + to._tzm = from._tzm; + } + if (!isUndefined(from._isUTC)) { + to._isUTC = from._isUTC; + } + if (!isUndefined(from._offset)) { + to._offset = from._offset; + } + if (!isUndefined(from._pf)) { + to._pf = getParsingFlags(from); + } + if (!isUndefined(from._locale)) { + to._locale = from._locale; + } + + if (momentProperties.length > 0) { + for (i in momentProperties) { + prop = momentProperties[i]; + val = from[prop]; + if (!isUndefined(val)) { + to[prop] = val; + } + } + } + + return to; + } + + var updateInProgress = false; + + // Moment prototype object + function Moment(config) { + copyConfig(this, config); + this._d = new Date(config._d != null ? config._d.getTime() : NaN); + // Prevent infinite loop in case updateOffset creates new moment + // objects. + if (updateInProgress === false) { + updateInProgress = true; + utils_hooks__hooks.updateOffset(this); + updateInProgress = false; + } + } + + function isMoment (obj) { + return obj instanceof Moment || (obj != null && obj._isAMomentObject != null); + } + + function absFloor (number) { + if (number < 0) { + // -0 -> 0 + return Math.ceil(number) || 0; + } else { + return Math.floor(number); + } + } + + function toInt(argumentForCoercion) { + var coercedNumber = +argumentForCoercion, + value = 0; + + if (coercedNumber !== 0 && isFinite(coercedNumber)) { + value = absFloor(coercedNumber); + } + + return value; + } + + // compare two arrays, return the number of differences + function compareArrays(array1, array2, dontConvert) { + var len = Math.min(array1.length, array2.length), + lengthDiff = Math.abs(array1.length - array2.length), + diffs = 0, + i; + for (i = 0; i < len; i++) { + if ((dontConvert && array1[i] !== array2[i]) || + (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) { + diffs++; + } + } + return diffs + lengthDiff; + } + + function warn(msg) { + if (utils_hooks__hooks.suppressDeprecationWarnings === false && + (typeof console !== 'undefined') && console.warn) { + console.warn('Deprecation warning: ' + msg); + } + } + + function deprecate(msg, fn) { + var firstTime = true; + + return extend(function () { + if (utils_hooks__hooks.deprecationHandler != null) { + utils_hooks__hooks.deprecationHandler(null, msg); + } + if (firstTime) { + var args = []; + var arg; + for (var i = 0; i < arguments.length; i++) { + arg = ''; + if (typeof arguments[i] === 'object') { + arg += '\n[' + i + '] '; + for (var key in arguments[0]) { + arg += key + ': ' + arguments[0][key] + ', '; + } + arg = arg.slice(0, -2); // Remove trailing comma and space + } else { + arg = arguments[i]; + } + args.push(arg); + } + warn(msg + '\nArguments: ' + Array.prototype.slice.call(args).join('') + '\n' + (new Error()).stack); + firstTime = false; + } + return fn.apply(this, arguments); + }, fn); + } + + var deprecations = {}; + + function deprecateSimple(name, msg) { + if (utils_hooks__hooks.deprecationHandler != null) { + utils_hooks__hooks.deprecationHandler(name, msg); + } + if (!deprecations[name]) { + warn(msg); + deprecations[name] = true; + } + } + + utils_hooks__hooks.suppressDeprecationWarnings = false; + utils_hooks__hooks.deprecationHandler = null; + + function isFunction(input) { + return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]'; + } + + function locale_set__set (config) { + var prop, i; + for (i in config) { + prop = config[i]; + if (isFunction(prop)) { + this[i] = prop; + } else { + this['_' + i] = prop; + } + } + this._config = config; + // Lenient ordinal parsing accepts just a number in addition to + // number + (possibly) stuff coming from _ordinalParseLenient. + this._ordinalParseLenient = new RegExp(this._ordinalParse.source + '|' + (/\d{1,2}/).source); + } + + function mergeConfigs(parentConfig, childConfig) { + var res = extend({}, parentConfig), prop; + for (prop in childConfig) { + if (hasOwnProp(childConfig, prop)) { + if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) { + res[prop] = {}; + extend(res[prop], parentConfig[prop]); + extend(res[prop], childConfig[prop]); + } else if (childConfig[prop] != null) { + res[prop] = childConfig[prop]; + } else { + delete res[prop]; + } + } + } + for (prop in parentConfig) { + if (hasOwnProp(parentConfig, prop) && + !hasOwnProp(childConfig, prop) && + isObject(parentConfig[prop])) { + // make sure changes to properties don't modify parent config + res[prop] = extend({}, res[prop]); + } + } + return res; + } + + function Locale(config) { + if (config != null) { + this.set(config); + } + } + + var keys; + + if (Object.keys) { + keys = Object.keys; + } else { + keys = function (obj) { + var i, res = []; + for (i in obj) { + if (hasOwnProp(obj, i)) { + res.push(i); + } + } + return res; + }; + } + + var defaultCalendar = { + sameDay : '[Today at] LT', + nextDay : '[Tomorrow at] LT', + nextWeek : 'dddd [at] LT', + lastDay : '[Yesterday at] LT', + lastWeek : '[Last] dddd [at] LT', + sameElse : 'L' + }; + + function locale_calendar__calendar (key, mom, now) { + var output = this._calendar[key] || this._calendar['sameElse']; + return isFunction(output) ? output.call(mom, now) : output; + } + + var defaultLongDateFormat = { + LTS : 'h:mm:ss A', + LT : 'h:mm A', + L : 'MM/DD/YYYY', + LL : 'MMMM D, YYYY', + LLL : 'MMMM D, YYYY h:mm A', + LLLL : 'dddd, MMMM D, YYYY h:mm A' + }; + + function longDateFormat (key) { + var format = this._longDateFormat[key], + formatUpper = this._longDateFormat[key.toUpperCase()]; + + if (format || !formatUpper) { + return format; + } + + this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) { + return val.slice(1); + }); + + return this._longDateFormat[key]; + } + + var defaultInvalidDate = 'Invalid date'; + + function invalidDate () { + return this._invalidDate; + } + + var defaultOrdinal = '%d'; + var defaultOrdinalParse = /\d{1,2}/; + + function ordinal (number) { + return this._ordinal.replace('%d', number); + } + + var defaultRelativeTime = { + future : 'in %s', + past : '%s ago', + s : 'a few seconds', + m : 'a minute', + mm : '%d minutes', + h : 'an hour', + hh : '%d hours', + d : 'a day', + dd : '%d days', + M : 'a month', + MM : '%d months', + y : 'a year', + yy : '%d years' + }; + + function relative__relativeTime (number, withoutSuffix, string, isFuture) { + var output = this._relativeTime[string]; + return (isFunction(output)) ? + output(number, withoutSuffix, string, isFuture) : + output.replace(/%d/i, number); + } + + function pastFuture (diff, output) { + var format = this._relativeTime[diff > 0 ? 'future' : 'past']; + return isFunction(format) ? format(output) : format.replace(/%s/i, output); + } + + var aliases = {}; + + function addUnitAlias (unit, shorthand) { + var lowerCase = unit.toLowerCase(); + aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit; + } + + function normalizeUnits(units) { + return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined; + } + + function normalizeObjectUnits(inputObject) { + var normalizedInput = {}, + normalizedProp, + prop; + + for (prop in inputObject) { + if (hasOwnProp(inputObject, prop)) { + normalizedProp = normalizeUnits(prop); + if (normalizedProp) { + normalizedInput[normalizedProp] = inputObject[prop]; + } + } + } + + return normalizedInput; + } + + var priorities = {}; + + function addUnitPriority(unit, priority) { + priorities[unit] = priority; + } + + function getPrioritizedUnits(unitsObj) { + var units = []; + for (var u in unitsObj) { + units.push({unit: u, priority: priorities[u]}); + } + units.sort(function (a, b) { + return a.priority - b.priority; + }); + return units; + } + + function makeGetSet (unit, keepTime) { + return function (value) { + if (value != null) { + get_set__set(this, unit, value); + utils_hooks__hooks.updateOffset(this, keepTime); + return this; + } else { + return get_set__get(this, unit); + } + }; + } + + function get_set__get (mom, unit) { + return mom.isValid() ? + mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN; + } + + function get_set__set (mom, unit, value) { + if (mom.isValid()) { + mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value); + } + } + + // MOMENTS + + function stringGet (units) { + units = normalizeUnits(units); + if (isFunction(this[units])) { + return this[units](); + } + return this; + } + + + function stringSet (units, value) { + if (typeof units === 'object') { + units = normalizeObjectUnits(units); + var prioritized = getPrioritizedUnits(units); + for (var i = 0; i < prioritized.length; i++) { + this[prioritized[i].unit](units[prioritized[i].unit]); + } + } else { + units = normalizeUnits(units); + if (isFunction(this[units])) { + return this[units](value); + } + } + return this; + } + + function zeroFill(number, targetLength, forceSign) { + var absNumber = '' + Math.abs(number), + zerosToFill = targetLength - absNumber.length, + sign = number >= 0; + return (sign ? (forceSign ? '+' : '') : '-') + + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber; + } + + var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g; + + var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g; + + var formatFunctions = {}; + + var formatTokenFunctions = {}; + + // token: 'M' + // padded: ['MM', 2] + // ordinal: 'Mo' + // callback: function () { this.month() + 1 } + function addFormatToken (token, padded, ordinal, callback) { + var func = callback; + if (typeof callback === 'string') { + func = function () { + return this[callback](); + }; + } + if (token) { + formatTokenFunctions[token] = func; + } + if (padded) { + formatTokenFunctions[padded[0]] = function () { + return zeroFill(func.apply(this, arguments), padded[1], padded[2]); + }; + } + if (ordinal) { + formatTokenFunctions[ordinal] = function () { + return this.localeData().ordinal(func.apply(this, arguments), token); + }; + } + } + + function removeFormattingTokens(input) { + if (input.match(/\[[\s\S]/)) { + return input.replace(/^\[|\]$/g, ''); + } + return input.replace(/\\/g, ''); + } + + function makeFormatFunction(format) { + var array = format.match(formattingTokens), i, length; + + for (i = 0, length = array.length; i < length; i++) { + if (formatTokenFunctions[array[i]]) { + array[i] = formatTokenFunctions[array[i]]; + } else { + array[i] = removeFormattingTokens(array[i]); + } + } + + return function (mom) { + var output = '', i; + for (i = 0; i < length; i++) { + output += array[i] instanceof Function ? array[i].call(mom, format) : array[i]; + } + return output; + }; + } + + // format date using native date object + function formatMoment(m, format) { + if (!m.isValid()) { + return m.localeData().invalidDate(); + } + + format = expandFormat(format, m.localeData()); + formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format); + + return formatFunctions[format](m); + } + + function expandFormat(format, locale) { + var i = 5; + + function replaceLongDateFormatTokens(input) { + return locale.longDateFormat(input) || input; + } + + localFormattingTokens.lastIndex = 0; + while (i >= 0 && localFormattingTokens.test(format)) { + format = format.replace(localFormattingTokens, replaceLongDateFormatTokens); + localFormattingTokens.lastIndex = 0; + i -= 1; + } + + return format; + } + + var match1 = /\d/; // 0 - 9 + var match2 = /\d\d/; // 00 - 99 + var match3 = /\d{3}/; // 000 - 999 + var match4 = /\d{4}/; // 0000 - 9999 + var match6 = /[+-]?\d{6}/; // -999999 - 999999 + var match1to2 = /\d\d?/; // 0 - 99 + var match3to4 = /\d\d\d\d?/; // 999 - 9999 + var match5to6 = /\d\d\d\d\d\d?/; // 99999 - 999999 + var match1to3 = /\d{1,3}/; // 0 - 999 + var match1to4 = /\d{1,4}/; // 0 - 9999 + var match1to6 = /[+-]?\d{1,6}/; // -999999 - 999999 + + var matchUnsigned = /\d+/; // 0 - inf + var matchSigned = /[+-]?\d+/; // -inf - inf + + var matchOffset = /Z|[+-]\d\d:?\d\d/gi; // +00:00 -00:00 +0000 -0000 or Z + var matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z + + var matchTimestamp = /[+-]?\d+(\.\d{1,3})?/; // 123456789 123456789.123 + + // any word (or two) characters or numbers including two/three word month in arabic. + // includes scottish gaelic two word and hyphenated months + var matchWord = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i; + + + var regexes = {}; + + function addRegexToken (token, regex, strictRegex) { + regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) { + return (isStrict && strictRegex) ? strictRegex : regex; + }; + } + + function getParseRegexForToken (token, config) { + if (!hasOwnProp(regexes, token)) { + return new RegExp(unescapeFormat(token)); + } + + return regexes[token](config._strict, config._locale); + } + + // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript + function unescapeFormat(s) { + return regexEscape(s.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) { + return p1 || p2 || p3 || p4; + })); + } + + function regexEscape(s) { + return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); + } + + var tokens = {}; + + function addParseToken (token, callback) { + var i, func = callback; + if (typeof token === 'string') { + token = [token]; + } + if (typeof callback === 'number') { + func = function (input, array) { + array[callback] = toInt(input); + }; + } + for (i = 0; i < token.length; i++) { + tokens[token[i]] = func; + } + } + + function addWeekParseToken (token, callback) { + addParseToken(token, function (input, array, config, token) { + config._w = config._w || {}; + callback(input, config._w, config, token); + }); + } + + function addTimeToArrayFromToken(token, input, config) { + if (input != null && hasOwnProp(tokens, token)) { + tokens[token](input, config._a, config, token); + } + } + + var YEAR = 0; + var MONTH = 1; + var DATE = 2; + var HOUR = 3; + var MINUTE = 4; + var SECOND = 5; + var MILLISECOND = 6; + var WEEK = 7; + var WEEKDAY = 8; + + var indexOf; + + if (Array.prototype.indexOf) { + indexOf = Array.prototype.indexOf; + } else { + indexOf = function (o) { + // I know + var i; + for (i = 0; i < this.length; ++i) { + if (this[i] === o) { + return i; + } + } + return -1; + }; + } + + function daysInMonth(year, month) { + return new Date(Date.UTC(year, month + 1, 0)).getUTCDate(); + } + + // FORMATTING + + addFormatToken('M', ['MM', 2], 'Mo', function () { + return this.month() + 1; + }); + + addFormatToken('MMM', 0, 0, function (format) { + return this.localeData().monthsShort(this, format); + }); + + addFormatToken('MMMM', 0, 0, function (format) { + return this.localeData().months(this, format); + }); + + // ALIASES + + addUnitAlias('month', 'M'); + + // PRIORITY + + addUnitPriority('month', 8); + + // PARSING + + addRegexToken('M', match1to2); + addRegexToken('MM', match1to2, match2); + addRegexToken('MMM', function (isStrict, locale) { + return locale.monthsShortRegex(isStrict); + }); + addRegexToken('MMMM', function (isStrict, locale) { + return locale.monthsRegex(isStrict); + }); + + addParseToken(['M', 'MM'], function (input, array) { + array[MONTH] = toInt(input) - 1; + }); + + addParseToken(['MMM', 'MMMM'], function (input, array, config, token) { + var month = config._locale.monthsParse(input, token, config._strict); + // if we didn't find a month name, mark the date as invalid. + if (month != null) { + array[MONTH] = month; + } else { + getParsingFlags(config).invalidMonth = input; + } + }); + + // LOCALES + + var MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/; + var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'); + function localeMonths (m, format) { + if (!m) { + return this._months; + } + return isArray(this._months) ? this._months[m.month()] : + this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()]; + } + + var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'); + function localeMonthsShort (m, format) { + if (!m) { + return this._monthsShort; + } + return isArray(this._monthsShort) ? this._monthsShort[m.month()] : + this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()]; + } + + function units_month__handleStrictParse(monthName, format, strict) { + var i, ii, mom, llc = monthName.toLocaleLowerCase(); + if (!this._monthsParse) { + // this is not used + this._monthsParse = []; + this._longMonthsParse = []; + this._shortMonthsParse = []; + for (i = 0; i < 12; ++i) { + mom = create_utc__createUTC([2000, i]); + this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase(); + this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase(); + } + } + + if (strict) { + if (format === 'MMM') { + ii = indexOf.call(this._shortMonthsParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._longMonthsParse, llc); + return ii !== -1 ? ii : null; + } + } else { + if (format === 'MMM') { + ii = indexOf.call(this._shortMonthsParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._longMonthsParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._longMonthsParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortMonthsParse, llc); + return ii !== -1 ? ii : null; + } + } + } + + function localeMonthsParse (monthName, format, strict) { + var i, mom, regex; + + if (this._monthsParseExact) { + return units_month__handleStrictParse.call(this, monthName, format, strict); + } + + if (!this._monthsParse) { + this._monthsParse = []; + this._longMonthsParse = []; + this._shortMonthsParse = []; + } + + // TODO: add sorting + // Sorting makes sure if one month (or abbr) is a prefix of another + // see sorting in computeMonthsParse + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + mom = create_utc__createUTC([2000, i]); + if (strict && !this._longMonthsParse[i]) { + this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i'); + this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i'); + } + if (!strict && !this._monthsParse[i]) { + regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, ''); + this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) { + return i; + } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) { + return i; + } else if (!strict && this._monthsParse[i].test(monthName)) { + return i; + } + } + } + + // MOMENTS + + function setMonth (mom, value) { + var dayOfMonth; + + if (!mom.isValid()) { + // No op + return mom; + } + + if (typeof value === 'string') { + if (/^\d+$/.test(value)) { + value = toInt(value); + } else { + value = mom.localeData().monthsParse(value); + // TODO: Another silent failure? + if (typeof value !== 'number') { + return mom; + } + } + } + + dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value)); + mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth); + return mom; + } + + function getSetMonth (value) { + if (value != null) { + setMonth(this, value); + utils_hooks__hooks.updateOffset(this, true); + return this; + } else { + return get_set__get(this, 'Month'); + } + } + + function getDaysInMonth () { + return daysInMonth(this.year(), this.month()); + } + + var defaultMonthsShortRegex = matchWord; + function monthsShortRegex (isStrict) { + if (this._monthsParseExact) { + if (!hasOwnProp(this, '_monthsRegex')) { + computeMonthsParse.call(this); + } + if (isStrict) { + return this._monthsShortStrictRegex; + } else { + return this._monthsShortRegex; + } + } else { + if (!hasOwnProp(this, '_monthsShortRegex')) { + this._monthsShortRegex = defaultMonthsShortRegex; + } + return this._monthsShortStrictRegex && isStrict ? + this._monthsShortStrictRegex : this._monthsShortRegex; + } + } + + var defaultMonthsRegex = matchWord; + function monthsRegex (isStrict) { + if (this._monthsParseExact) { + if (!hasOwnProp(this, '_monthsRegex')) { + computeMonthsParse.call(this); + } + if (isStrict) { + return this._monthsStrictRegex; + } else { + return this._monthsRegex; + } + } else { + if (!hasOwnProp(this, '_monthsRegex')) { + this._monthsRegex = defaultMonthsRegex; + } + return this._monthsStrictRegex && isStrict ? + this._monthsStrictRegex : this._monthsRegex; + } + } + + function computeMonthsParse () { + function cmpLenRev(a, b) { + return b.length - a.length; + } + + var shortPieces = [], longPieces = [], mixedPieces = [], + i, mom; + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + mom = create_utc__createUTC([2000, i]); + shortPieces.push(this.monthsShort(mom, '')); + longPieces.push(this.months(mom, '')); + mixedPieces.push(this.months(mom, '')); + mixedPieces.push(this.monthsShort(mom, '')); + } + // Sorting makes sure if one month (or abbr) is a prefix of another it + // will match the longer piece. + shortPieces.sort(cmpLenRev); + longPieces.sort(cmpLenRev); + mixedPieces.sort(cmpLenRev); + for (i = 0; i < 12; i++) { + shortPieces[i] = regexEscape(shortPieces[i]); + longPieces[i] = regexEscape(longPieces[i]); + } + for (i = 0; i < 24; i++) { + mixedPieces[i] = regexEscape(mixedPieces[i]); + } + + this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._monthsShortRegex = this._monthsRegex; + this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i'); + this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i'); + } + + // FORMATTING + + addFormatToken('Y', 0, 0, function () { + var y = this.year(); + return y <= 9999 ? '' + y : '+' + y; + }); + + addFormatToken(0, ['YY', 2], 0, function () { + return this.year() % 100; + }); + + addFormatToken(0, ['YYYY', 4], 0, 'year'); + addFormatToken(0, ['YYYYY', 5], 0, 'year'); + addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); + + // ALIASES + + addUnitAlias('year', 'y'); + + // PRIORITIES + + addUnitPriority('year', 1); + + // PARSING + + addRegexToken('Y', matchSigned); + addRegexToken('YY', match1to2, match2); + addRegexToken('YYYY', match1to4, match4); + addRegexToken('YYYYY', match1to6, match6); + addRegexToken('YYYYYY', match1to6, match6); + + addParseToken(['YYYYY', 'YYYYYY'], YEAR); + addParseToken('YYYY', function (input, array) { + array[YEAR] = input.length === 2 ? utils_hooks__hooks.parseTwoDigitYear(input) : toInt(input); + }); + addParseToken('YY', function (input, array) { + array[YEAR] = utils_hooks__hooks.parseTwoDigitYear(input); + }); + addParseToken('Y', function (input, array) { + array[YEAR] = parseInt(input, 10); + }); + + // HELPERS + + function daysInYear(year) { + return isLeapYear(year) ? 366 : 365; + } + + function isLeapYear(year) { + return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; + } + + // HOOKS + + utils_hooks__hooks.parseTwoDigitYear = function (input) { + return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); + }; + + // MOMENTS + + var getSetYear = makeGetSet('FullYear', true); + + function getIsLeapYear () { + return isLeapYear(this.year()); + } + + function createDate (y, m, d, h, M, s, ms) { + //can't just apply() to create a date: + //http://stackoverflow.com/questions/181348/instantiating-a-javascript-object-by-calling-prototype-constructor-apply + var date = new Date(y, m, d, h, M, s, ms); + + //the date constructor remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0 && isFinite(date.getFullYear())) { + date.setFullYear(y); + } + return date; + } + + function createUTCDate (y) { + var date = new Date(Date.UTC.apply(null, arguments)); + + //the Date.UTC function remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0 && isFinite(date.getUTCFullYear())) { + date.setUTCFullYear(y); + } + return date; + } + + // start-of-first-week - start-of-year + function firstWeekOffset(year, dow, doy) { + var // first-week day -- which january is always in the first week (4 for iso, 1 for other) + fwd = 7 + dow - doy, + // first-week day local weekday -- which local weekday is fwd + fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7; + + return -fwdlw + fwd - 1; + } + + //http://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday + function dayOfYearFromWeeks(year, week, weekday, dow, doy) { + var localWeekday = (7 + weekday - dow) % 7, + weekOffset = firstWeekOffset(year, dow, doy), + dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset, + resYear, resDayOfYear; + + if (dayOfYear <= 0) { + resYear = year - 1; + resDayOfYear = daysInYear(resYear) + dayOfYear; + } else if (dayOfYear > daysInYear(year)) { + resYear = year + 1; + resDayOfYear = dayOfYear - daysInYear(year); + } else { + resYear = year; + resDayOfYear = dayOfYear; + } + + return { + year: resYear, + dayOfYear: resDayOfYear + }; + } + + function weekOfYear(mom, dow, doy) { + var weekOffset = firstWeekOffset(mom.year(), dow, doy), + week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, + resWeek, resYear; + + if (week < 1) { + resYear = mom.year() - 1; + resWeek = week + weeksInYear(resYear, dow, doy); + } else if (week > weeksInYear(mom.year(), dow, doy)) { + resWeek = week - weeksInYear(mom.year(), dow, doy); + resYear = mom.year() + 1; + } else { + resYear = mom.year(); + resWeek = week; + } + + return { + week: resWeek, + year: resYear + }; + } + + function weeksInYear(year, dow, doy) { + var weekOffset = firstWeekOffset(year, dow, doy), + weekOffsetNext = firstWeekOffset(year + 1, dow, doy); + return (daysInYear(year) - weekOffset + weekOffsetNext) / 7; + } + + // FORMATTING + + addFormatToken('w', ['ww', 2], 'wo', 'week'); + addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); + + // ALIASES + + addUnitAlias('week', 'w'); + addUnitAlias('isoWeek', 'W'); + + // PRIORITIES + + addUnitPriority('week', 5); + addUnitPriority('isoWeek', 5); + + // PARSING + + addRegexToken('w', match1to2); + addRegexToken('ww', match1to2, match2); + addRegexToken('W', match1to2); + addRegexToken('WW', match1to2, match2); + + addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) { + week[token.substr(0, 1)] = toInt(input); + }); + + // HELPERS + + // LOCALES + + function localeWeek (mom) { + return weekOfYear(mom, this._week.dow, this._week.doy).week; + } + + var defaultLocaleWeek = { + dow : 0, // Sunday is the first day of the week. + doy : 6 // The week that contains Jan 1st is the first week of the year. + }; + + function localeFirstDayOfWeek () { + return this._week.dow; + } + + function localeFirstDayOfYear () { + return this._week.doy; + } + + // MOMENTS + + function getSetWeek (input) { + var week = this.localeData().week(this); + return input == null ? week : this.add((input - week) * 7, 'd'); + } + + function getSetISOWeek (input) { + var week = weekOfYear(this, 1, 4).week; + return input == null ? week : this.add((input - week) * 7, 'd'); + } + + // FORMATTING + + addFormatToken('d', 0, 'do', 'day'); + + addFormatToken('dd', 0, 0, function (format) { + return this.localeData().weekdaysMin(this, format); + }); + + addFormatToken('ddd', 0, 0, function (format) { + return this.localeData().weekdaysShort(this, format); + }); + + addFormatToken('dddd', 0, 0, function (format) { + return this.localeData().weekdays(this, format); + }); + + addFormatToken('e', 0, 0, 'weekday'); + addFormatToken('E', 0, 0, 'isoWeekday'); + + // ALIASES + + addUnitAlias('day', 'd'); + addUnitAlias('weekday', 'e'); + addUnitAlias('isoWeekday', 'E'); + + // PRIORITY + addUnitPriority('day', 11); + addUnitPriority('weekday', 11); + addUnitPriority('isoWeekday', 11); + + // PARSING + + addRegexToken('d', match1to2); + addRegexToken('e', match1to2); + addRegexToken('E', match1to2); + addRegexToken('dd', function (isStrict, locale) { + return locale.weekdaysMinRegex(isStrict); + }); + addRegexToken('ddd', function (isStrict, locale) { + return locale.weekdaysShortRegex(isStrict); + }); + addRegexToken('dddd', function (isStrict, locale) { + return locale.weekdaysRegex(isStrict); + }); + + addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) { + var weekday = config._locale.weekdaysParse(input, token, config._strict); + // if we didn't get a weekday name, mark the date as invalid + if (weekday != null) { + week.d = weekday; + } else { + getParsingFlags(config).invalidWeekday = input; + } + }); + + addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { + week[token] = toInt(input); + }); + + // HELPERS + + function parseWeekday(input, locale) { + if (typeof input !== 'string') { + return input; + } + + if (!isNaN(input)) { + return parseInt(input, 10); + } + + input = locale.weekdaysParse(input); + if (typeof input === 'number') { + return input; + } + + return null; + } + + function parseIsoWeekday(input, locale) { + if (typeof input === 'string') { + return locale.weekdaysParse(input) % 7 || 7; + } + return isNaN(input) ? null : input; + } + + // LOCALES + + var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'); + function localeWeekdays (m, format) { + if (!m) { + return this._weekdays; + } + return isArray(this._weekdays) ? this._weekdays[m.day()] : + this._weekdays[this._weekdays.isFormat.test(format) ? 'format' : 'standalone'][m.day()]; + } + + var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'); + function localeWeekdaysShort (m) { + return (m) ? this._weekdaysShort[m.day()] : this._weekdaysShort; + } + + var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'); + function localeWeekdaysMin (m) { + return (m) ? this._weekdaysMin[m.day()] : this._weekdaysMin; + } + + function day_of_week__handleStrictParse(weekdayName, format, strict) { + var i, ii, mom, llc = weekdayName.toLocaleLowerCase(); + if (!this._weekdaysParse) { + this._weekdaysParse = []; + this._shortWeekdaysParse = []; + this._minWeekdaysParse = []; + + for (i = 0; i < 7; ++i) { + mom = create_utc__createUTC([2000, 1]).day(i); + this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase(); + this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase(); + this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase(); + } + } + + if (strict) { + if (format === 'dddd') { + ii = indexOf.call(this._weekdaysParse, llc); + return ii !== -1 ? ii : null; + } else if (format === 'ddd') { + ii = indexOf.call(this._shortWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } + } else { + if (format === 'dddd') { + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else if (format === 'ddd') { + ii = indexOf.call(this._shortWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._minWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } + } + } + + function localeWeekdaysParse (weekdayName, format, strict) { + var i, mom, regex; + + if (this._weekdaysParseExact) { + return day_of_week__handleStrictParse.call(this, weekdayName, format, strict); + } + + if (!this._weekdaysParse) { + this._weekdaysParse = []; + this._minWeekdaysParse = []; + this._shortWeekdaysParse = []; + this._fullWeekdaysParse = []; + } + + for (i = 0; i < 7; i++) { + // make the regex if we don't have it already + + mom = create_utc__createUTC([2000, 1]).day(i); + if (strict && !this._fullWeekdaysParse[i]) { + this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\.?') + '$', 'i'); + this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\.?') + '$', 'i'); + this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\.?') + '$', 'i'); + } + if (!this._weekdaysParse[i]) { + regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, ''); + this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) { + return i; + } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) { + return i; + } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) { + return i; + } else if (!strict && this._weekdaysParse[i].test(weekdayName)) { + return i; + } + } + } + + // MOMENTS + + function getSetDayOfWeek (input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); + if (input != null) { + input = parseWeekday(input, this.localeData()); + return this.add(input - day, 'd'); + } else { + return day; + } + } + + function getSetLocaleDayOfWeek (input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; + return input == null ? weekday : this.add(input - weekday, 'd'); + } + + function getSetISODayOfWeek (input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + + // behaves the same as moment#day except + // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) + // as a setter, sunday should belong to the previous week. + + if (input != null) { + var weekday = parseIsoWeekday(input, this.localeData()); + return this.day(this.day() % 7 ? weekday : weekday - 7); + } else { + return this.day() || 7; + } + } + + var defaultWeekdaysRegex = matchWord; + function weekdaysRegex (isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysStrictRegex; + } else { + return this._weekdaysRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysRegex')) { + this._weekdaysRegex = defaultWeekdaysRegex; + } + return this._weekdaysStrictRegex && isStrict ? + this._weekdaysStrictRegex : this._weekdaysRegex; + } + } + + var defaultWeekdaysShortRegex = matchWord; + function weekdaysShortRegex (isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysShortStrictRegex; + } else { + return this._weekdaysShortRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysShortRegex')) { + this._weekdaysShortRegex = defaultWeekdaysShortRegex; + } + return this._weekdaysShortStrictRegex && isStrict ? + this._weekdaysShortStrictRegex : this._weekdaysShortRegex; + } + } + + var defaultWeekdaysMinRegex = matchWord; + function weekdaysMinRegex (isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysMinStrictRegex; + } else { + return this._weekdaysMinRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysMinRegex')) { + this._weekdaysMinRegex = defaultWeekdaysMinRegex; + } + return this._weekdaysMinStrictRegex && isStrict ? + this._weekdaysMinStrictRegex : this._weekdaysMinRegex; + } + } + + + function computeWeekdaysParse () { + function cmpLenRev(a, b) { + return b.length - a.length; + } + + var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [], + i, mom, minp, shortp, longp; + for (i = 0; i < 7; i++) { + // make the regex if we don't have it already + mom = create_utc__createUTC([2000, 1]).day(i); + minp = this.weekdaysMin(mom, ''); + shortp = this.weekdaysShort(mom, ''); + longp = this.weekdays(mom, ''); + minPieces.push(minp); + shortPieces.push(shortp); + longPieces.push(longp); + mixedPieces.push(minp); + mixedPieces.push(shortp); + mixedPieces.push(longp); + } + // Sorting makes sure if one weekday (or abbr) is a prefix of another it + // will match the longer piece. + minPieces.sort(cmpLenRev); + shortPieces.sort(cmpLenRev); + longPieces.sort(cmpLenRev); + mixedPieces.sort(cmpLenRev); + for (i = 0; i < 7; i++) { + shortPieces[i] = regexEscape(shortPieces[i]); + longPieces[i] = regexEscape(longPieces[i]); + mixedPieces[i] = regexEscape(mixedPieces[i]); + } + + this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._weekdaysShortRegex = this._weekdaysRegex; + this._weekdaysMinRegex = this._weekdaysRegex; + + this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i'); + this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i'); + this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i'); + } + + // FORMATTING + + function hFormat() { + return this.hours() % 12 || 12; + } + + function kFormat() { + return this.hours() || 24; + } + + addFormatToken('H', ['HH', 2], 0, 'hour'); + addFormatToken('h', ['hh', 2], 0, hFormat); + addFormatToken('k', ['kk', 2], 0, kFormat); + + addFormatToken('hmm', 0, 0, function () { + return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2); + }); + + addFormatToken('hmmss', 0, 0, function () { + return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) + + zeroFill(this.seconds(), 2); + }); + + addFormatToken('Hmm', 0, 0, function () { + return '' + this.hours() + zeroFill(this.minutes(), 2); + }); + + addFormatToken('Hmmss', 0, 0, function () { + return '' + this.hours() + zeroFill(this.minutes(), 2) + + zeroFill(this.seconds(), 2); + }); + + function meridiem (token, lowercase) { + addFormatToken(token, 0, 0, function () { + return this.localeData().meridiem(this.hours(), this.minutes(), lowercase); + }); + } + + meridiem('a', true); + meridiem('A', false); + + // ALIASES + + addUnitAlias('hour', 'h'); + + // PRIORITY + addUnitPriority('hour', 13); + + // PARSING + + function matchMeridiem (isStrict, locale) { + return locale._meridiemParse; + } + + addRegexToken('a', matchMeridiem); + addRegexToken('A', matchMeridiem); + addRegexToken('H', match1to2); + addRegexToken('h', match1to2); + addRegexToken('HH', match1to2, match2); + addRegexToken('hh', match1to2, match2); + + addRegexToken('hmm', match3to4); + addRegexToken('hmmss', match5to6); + addRegexToken('Hmm', match3to4); + addRegexToken('Hmmss', match5to6); + + addParseToken(['H', 'HH'], HOUR); + addParseToken(['a', 'A'], function (input, array, config) { + config._isPm = config._locale.isPM(input); + config._meridiem = input; + }); + addParseToken(['h', 'hh'], function (input, array, config) { + array[HOUR] = toInt(input); + getParsingFlags(config).bigHour = true; + }); + addParseToken('hmm', function (input, array, config) { + var pos = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos)); + array[MINUTE] = toInt(input.substr(pos)); + getParsingFlags(config).bigHour = true; + }); + addParseToken('hmmss', function (input, array, config) { + var pos1 = input.length - 4; + var pos2 = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos1)); + array[MINUTE] = toInt(input.substr(pos1, 2)); + array[SECOND] = toInt(input.substr(pos2)); + getParsingFlags(config).bigHour = true; + }); + addParseToken('Hmm', function (input, array, config) { + var pos = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos)); + array[MINUTE] = toInt(input.substr(pos)); + }); + addParseToken('Hmmss', function (input, array, config) { + var pos1 = input.length - 4; + var pos2 = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos1)); + array[MINUTE] = toInt(input.substr(pos1, 2)); + array[SECOND] = toInt(input.substr(pos2)); + }); + + // LOCALES + + function localeIsPM (input) { + // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays + // Using charAt should be more compatible. + return ((input + '').toLowerCase().charAt(0) === 'p'); + } + + var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i; + function localeMeridiem (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'pm' : 'PM'; + } else { + return isLower ? 'am' : 'AM'; + } + } + + + // MOMENTS + + // Setting the hour should keep the time, because the user explicitly + // specified which hour he wants. So trying to maintain the same hour (in + // a new timezone) makes sense. Adding/subtracting hours does not follow + // this rule. + var getSetHour = makeGetSet('Hours', true); + + var baseConfig = { + calendar: defaultCalendar, + longDateFormat: defaultLongDateFormat, + invalidDate: defaultInvalidDate, + ordinal: defaultOrdinal, + ordinalParse: defaultOrdinalParse, + relativeTime: defaultRelativeTime, + + months: defaultLocaleMonths, + monthsShort: defaultLocaleMonthsShort, + + week: defaultLocaleWeek, + + weekdays: defaultLocaleWeekdays, + weekdaysMin: defaultLocaleWeekdaysMin, + weekdaysShort: defaultLocaleWeekdaysShort, + + meridiemParse: defaultLocaleMeridiemParse + }; + + // internal storage for locale config files + var locales = {}; + var globalLocale; + + function normalizeLocale(key) { + return key ? key.toLowerCase().replace('_', '-') : key; + } + + // pick the locale from the array + // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each + // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root + function chooseLocale(names) { + var i = 0, j, next, locale, split; + + while (i < names.length) { + split = normalizeLocale(names[i]).split('-'); + j = split.length; + next = normalizeLocale(names[i + 1]); + next = next ? next.split('-') : null; + while (j > 0) { + locale = loadLocale(split.slice(0, j).join('-')); + if (locale) { + return locale; + } + if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) { + //the next array item is better than a shallower substring of this one + break; + } + j--; + } + i++; + } + return null; + } + + function loadLocale(name) { + var oldLocale = null; + // TODO: Find a better way to register and load all the locales in Node + if (!locales[name] && (typeof module !== 'undefined') && + module && module.exports) { + try { + oldLocale = globalLocale._abbr; + require('./locale/' + name); + // because defineLocale currently also sets the global locale, we + // want to undo that for lazy loaded locales + locale_locales__getSetGlobalLocale(oldLocale); + } catch (e) { } + } + return locales[name]; + } + + // This function will load locale and then set the global locale. If + // no arguments are passed in, it will simply return the current global + // locale key. + function locale_locales__getSetGlobalLocale (key, values) { + var data; + if (key) { + if (isUndefined(values)) { + data = locale_locales__getLocale(key); + } + else { + data = defineLocale(key, values); + } + + if (data) { + // moment.duration._locale = moment._locale = data; + globalLocale = data; + } + } + + return globalLocale._abbr; + } + + function defineLocale (name, config) { + if (config !== null) { + var parentConfig = baseConfig; + config.abbr = name; + if (locales[name] != null) { + deprecateSimple('defineLocaleOverride', + 'use moment.updateLocale(localeName, config) to change ' + + 'an existing locale. moment.defineLocale(localeName, ' + + 'config) should only be used for creating a new locale ' + + 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'); + parentConfig = locales[name]._config; + } else if (config.parentLocale != null) { + if (locales[config.parentLocale] != null) { + parentConfig = locales[config.parentLocale]._config; + } else { + // treat as if there is no base config + deprecateSimple('parentLocaleUndefined', + 'specified parentLocale is not defined yet. See http://momentjs.com/guides/#/warnings/parent-locale/'); + } + } + locales[name] = new Locale(mergeConfigs(parentConfig, config)); + + // backwards compat for now: also set the locale + locale_locales__getSetGlobalLocale(name); + + return locales[name]; + } else { + // useful for testing + delete locales[name]; + return null; + } + } + + function updateLocale(name, config) { + if (config != null) { + var locale, parentConfig = baseConfig; + // MERGE + if (locales[name] != null) { + parentConfig = locales[name]._config; + } + config = mergeConfigs(parentConfig, config); + locale = new Locale(config); + locale.parentLocale = locales[name]; + locales[name] = locale; + + // backwards compat for now: also set the locale + locale_locales__getSetGlobalLocale(name); + } else { + // pass null for config to unupdate, useful for tests + if (locales[name] != null) { + if (locales[name].parentLocale != null) { + locales[name] = locales[name].parentLocale; + } else if (locales[name] != null) { + delete locales[name]; + } + } + } + return locales[name]; + } + + // returns locale data + function locale_locales__getLocale (key) { + var locale; + + if (key && key._locale && key._locale._abbr) { + key = key._locale._abbr; + } + + if (!key) { + return globalLocale; + } + + if (!isArray(key)) { + //short-circuit everything else + locale = loadLocale(key); + if (locale) { + return locale; + } + key = [key]; + } + + return chooseLocale(key); + } + + function locale_locales__listLocales() { + return keys(locales); + } + + function checkOverflow (m) { + var overflow; + var a = m._a; + + if (a && getParsingFlags(m).overflow === -2) { + overflow = + a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : + a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : + a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR : + a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : + a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : + a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : + -1; + + if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) { + overflow = DATE; + } + if (getParsingFlags(m)._overflowWeeks && overflow === -1) { + overflow = WEEK; + } + if (getParsingFlags(m)._overflowWeekday && overflow === -1) { + overflow = WEEKDAY; + } + + getParsingFlags(m).overflow = overflow; + } + + return m; + } + + // iso 8601 regex + // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00) + var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/; + var basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/; + + var tzRegex = /Z|[+-]\d\d(?::?\d\d)?/; + + var isoDates = [ + ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/], + ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/], + ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/], + ['GGGG-[W]WW', /\d{4}-W\d\d/, false], + ['YYYY-DDD', /\d{4}-\d{3}/], + ['YYYY-MM', /\d{4}-\d\d/, false], + ['YYYYYYMMDD', /[+-]\d{10}/], + ['YYYYMMDD', /\d{8}/], + // YYYYMM is NOT allowed by the standard + ['GGGG[W]WWE', /\d{4}W\d{3}/], + ['GGGG[W]WW', /\d{4}W\d{2}/, false], + ['YYYYDDD', /\d{7}/] + ]; + + // iso time formats and regexes + var isoTimes = [ + ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/], + ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/], + ['HH:mm:ss', /\d\d:\d\d:\d\d/], + ['HH:mm', /\d\d:\d\d/], + ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/], + ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/], + ['HHmmss', /\d\d\d\d\d\d/], + ['HHmm', /\d\d\d\d/], + ['HH', /\d\d/] + ]; + + var aspNetJsonRegex = /^\/?Date\((\-?\d+)/i; + + // date from iso format + function configFromISO(config) { + var i, l, + string = config._i, + match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), + allowTime, dateFormat, timeFormat, tzFormat; + + if (match) { + getParsingFlags(config).iso = true; + + for (i = 0, l = isoDates.length; i < l; i++) { + if (isoDates[i][1].exec(match[1])) { + dateFormat = isoDates[i][0]; + allowTime = isoDates[i][2] !== false; + break; + } + } + if (dateFormat == null) { + config._isValid = false; + return; + } + if (match[3]) { + for (i = 0, l = isoTimes.length; i < l; i++) { + if (isoTimes[i][1].exec(match[3])) { + // match[2] should be 'T' or space + timeFormat = (match[2] || ' ') + isoTimes[i][0]; + break; + } + } + if (timeFormat == null) { + config._isValid = false; + return; + } + } + if (!allowTime && timeFormat != null) { + config._isValid = false; + return; + } + if (match[4]) { + if (tzRegex.exec(match[4])) { + tzFormat = 'Z'; + } else { + config._isValid = false; + return; + } + } + config._f = dateFormat + (timeFormat || '') + (tzFormat || ''); + configFromStringAndFormat(config); + } else { + config._isValid = false; + } + } + + // date from iso format or fallback + function configFromString(config) { + var matched = aspNetJsonRegex.exec(config._i); + + if (matched !== null) { + config._d = new Date(+matched[1]); + return; + } + + configFromISO(config); + if (config._isValid === false) { + delete config._isValid; + utils_hooks__hooks.createFromInputFallback(config); + } + } + + utils_hooks__hooks.createFromInputFallback = deprecate( + 'value provided is not in a recognized ISO format. moment construction falls back to js Date(), ' + + 'which is not reliable across all browsers and versions. Non ISO date formats are ' + + 'discouraged and will be removed in an upcoming major release. Please refer to ' + + 'http://momentjs.com/guides/#/warnings/js-date/ for more info.', + function (config) { + config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); + } + ); + + // Pick the first defined of two or three arguments. + function defaults(a, b, c) { + if (a != null) { + return a; + } + if (b != null) { + return b; + } + return c; + } + + function currentDateArray(config) { + // hooks is actually the exported moment object + var nowValue = new Date(utils_hooks__hooks.now()); + if (config._useUTC) { + return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()]; + } + return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()]; + } + + // convert an array to a date. + // the array should mirror the parameters below + // note: all values past the year are optional and will default to the lowest possible value. + // [year, month, day , hour, minute, second, millisecond] + function configFromArray (config) { + var i, date, input = [], currentDate, yearToUse; + + if (config._d) { + return; + } + + currentDate = currentDateArray(config); + + //compute day of the year from weeks and weekdays + if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { + dayOfYearFromWeekInfo(config); + } + + //if the day of the year is set, figure out what it is + if (config._dayOfYear) { + yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); + + if (config._dayOfYear > daysInYear(yearToUse)) { + getParsingFlags(config)._overflowDayOfYear = true; + } + + date = createUTCDate(yearToUse, 0, config._dayOfYear); + config._a[MONTH] = date.getUTCMonth(); + config._a[DATE] = date.getUTCDate(); + } + + // Default to current date. + // * if no year, month, day of month are given, default to today + // * if day of month is given, default month and year + // * if month is given, default only year + // * if year is given, don't default anything + for (i = 0; i < 3 && config._a[i] == null; ++i) { + config._a[i] = input[i] = currentDate[i]; + } + + // Zero out whatever was not defaulted, including time + for (; i < 7; i++) { + config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i]; + } + + // Check for 24:00:00.000 + if (config._a[HOUR] === 24 && + config._a[MINUTE] === 0 && + config._a[SECOND] === 0 && + config._a[MILLISECOND] === 0) { + config._nextDay = true; + config._a[HOUR] = 0; + } + + config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input); + // Apply timezone offset from input. The actual utcOffset can be changed + // with parseZone. + if (config._tzm != null) { + config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); + } + + if (config._nextDay) { + config._a[HOUR] = 24; + } + } + + function dayOfYearFromWeekInfo(config) { + var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow; + + w = config._w; + if (w.GG != null || w.W != null || w.E != null) { + dow = 1; + doy = 4; + + // TODO: We need to take the current isoWeekYear, but that depends on + // how we interpret now (local, utc, fixed offset). So create + // a now version of current config (take local/utc/offset flags, and + // create now). + weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(local__createLocal(), 1, 4).year); + week = defaults(w.W, 1); + weekday = defaults(w.E, 1); + if (weekday < 1 || weekday > 7) { + weekdayOverflow = true; + } + } else { + dow = config._locale._week.dow; + doy = config._locale._week.doy; + + weekYear = defaults(w.gg, config._a[YEAR], weekOfYear(local__createLocal(), dow, doy).year); + week = defaults(w.w, 1); + + if (w.d != null) { + // weekday -- low day numbers are considered next week + weekday = w.d; + if (weekday < 0 || weekday > 6) { + weekdayOverflow = true; + } + } else if (w.e != null) { + // local weekday -- counting starts from begining of week + weekday = w.e + dow; + if (w.e < 0 || w.e > 6) { + weekdayOverflow = true; + } + } else { + // default to begining of week + weekday = dow; + } + } + if (week < 1 || week > weeksInYear(weekYear, dow, doy)) { + getParsingFlags(config)._overflowWeeks = true; + } else if (weekdayOverflow != null) { + getParsingFlags(config)._overflowWeekday = true; + } else { + temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy); + config._a[YEAR] = temp.year; + config._dayOfYear = temp.dayOfYear; + } + } + + // constant that refers to the ISO standard + utils_hooks__hooks.ISO_8601 = function () {}; + + // date from string and format string + function configFromStringAndFormat(config) { + // TODO: Move this to another part of the creation flow to prevent circular deps + if (config._f === utils_hooks__hooks.ISO_8601) { + configFromISO(config); + return; + } + + config._a = []; + getParsingFlags(config).empty = true; + + // This array is used to make a Date, either with `new Date` or `Date.UTC` + var string = '' + config._i, + i, parsedInput, tokens, token, skipped, + stringLength = string.length, + totalParsedInputLength = 0; + + tokens = expandFormat(config._f, config._locale).match(formattingTokens) || []; + + for (i = 0; i < tokens.length; i++) { + token = tokens[i]; + parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0]; + // console.log('token', token, 'parsedInput', parsedInput, + // 'regex', getParseRegexForToken(token, config)); + if (parsedInput) { + skipped = string.substr(0, string.indexOf(parsedInput)); + if (skipped.length > 0) { + getParsingFlags(config).unusedInput.push(skipped); + } + string = string.slice(string.indexOf(parsedInput) + parsedInput.length); + totalParsedInputLength += parsedInput.length; + } + // don't parse if it's not a known token + if (formatTokenFunctions[token]) { + if (parsedInput) { + getParsingFlags(config).empty = false; + } + else { + getParsingFlags(config).unusedTokens.push(token); + } + addTimeToArrayFromToken(token, parsedInput, config); + } + else if (config._strict && !parsedInput) { + getParsingFlags(config).unusedTokens.push(token); + } + } + + // add remaining unparsed input length to the string + getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength; + if (string.length > 0) { + getParsingFlags(config).unusedInput.push(string); + } + + // clear _12h flag if hour is <= 12 + if (config._a[HOUR] <= 12 && + getParsingFlags(config).bigHour === true && + config._a[HOUR] > 0) { + getParsingFlags(config).bigHour = undefined; + } + + getParsingFlags(config).parsedDateParts = config._a.slice(0); + getParsingFlags(config).meridiem = config._meridiem; + // handle meridiem + config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem); + + configFromArray(config); + checkOverflow(config); + } + + + function meridiemFixWrap (locale, hour, meridiem) { + var isPm; + + if (meridiem == null) { + // nothing to do + return hour; + } + if (locale.meridiemHour != null) { + return locale.meridiemHour(hour, meridiem); + } else if (locale.isPM != null) { + // Fallback + isPm = locale.isPM(meridiem); + if (isPm && hour < 12) { + hour += 12; + } + if (!isPm && hour === 12) { + hour = 0; + } + return hour; + } else { + // this is not supposed to happen + return hour; + } + } + + // date from string and array of format strings + function configFromStringAndArray(config) { + var tempConfig, + bestMoment, + + scoreToBeat, + i, + currentScore; + + if (config._f.length === 0) { + getParsingFlags(config).invalidFormat = true; + config._d = new Date(NaN); + return; + } + + for (i = 0; i < config._f.length; i++) { + currentScore = 0; + tempConfig = copyConfig({}, config); + if (config._useUTC != null) { + tempConfig._useUTC = config._useUTC; + } + tempConfig._f = config._f[i]; + configFromStringAndFormat(tempConfig); + + if (!valid__isValid(tempConfig)) { + continue; + } + + // if there is any input that was not parsed add a penalty for that format + currentScore += getParsingFlags(tempConfig).charsLeftOver; + + //or tokens + currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; + + getParsingFlags(tempConfig).score = currentScore; + + if (scoreToBeat == null || currentScore < scoreToBeat) { + scoreToBeat = currentScore; + bestMoment = tempConfig; + } + } + + extend(config, bestMoment || tempConfig); + } + + function configFromObject(config) { + if (config._d) { + return; + } + + var i = normalizeObjectUnits(config._i); + config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) { + return obj && parseInt(obj, 10); + }); + + configFromArray(config); + } + + function createFromConfig (config) { + var res = new Moment(checkOverflow(prepareConfig(config))); + if (res._nextDay) { + // Adding is smart enough around DST + res.add(1, 'd'); + res._nextDay = undefined; + } + + return res; + } + + function prepareConfig (config) { + var input = config._i, + format = config._f; + + config._locale = config._locale || locale_locales__getLocale(config._l); + + if (input === null || (format === undefined && input === '')) { + return valid__createInvalid({nullInput: true}); + } + + if (typeof input === 'string') { + config._i = input = config._locale.preparse(input); + } + + if (isMoment(input)) { + return new Moment(checkOverflow(input)); + } else if (isArray(format)) { + configFromStringAndArray(config); + } else if (isDate(input)) { + config._d = input; + } else if (format) { + configFromStringAndFormat(config); + } else { + configFromInput(config); + } + + if (!valid__isValid(config)) { + config._d = null; + } + + return config; + } + + function configFromInput(config) { + var input = config._i; + if (input === undefined) { + config._d = new Date(utils_hooks__hooks.now()); + } else if (isDate(input)) { + config._d = new Date(input.valueOf()); + } else if (typeof input === 'string') { + configFromString(config); + } else if (isArray(input)) { + config._a = map(input.slice(0), function (obj) { + return parseInt(obj, 10); + }); + configFromArray(config); + } else if (typeof(input) === 'object') { + configFromObject(config); + } else if (typeof(input) === 'number') { + // from milliseconds + config._d = new Date(input); + } else { + utils_hooks__hooks.createFromInputFallback(config); + } + } + + function createLocalOrUTC (input, format, locale, strict, isUTC) { + var c = {}; + + if (typeof(locale) === 'boolean') { + strict = locale; + locale = undefined; + } + + if ((isObject(input) && isObjectEmpty(input)) || + (isArray(input) && input.length === 0)) { + input = undefined; + } + // object construction must be done this way. + // https://github.com/moment/moment/issues/1423 + c._isAMomentObject = true; + c._useUTC = c._isUTC = isUTC; + c._l = locale; + c._i = input; + c._f = format; + c._strict = strict; + + return createFromConfig(c); + } + + function local__createLocal (input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, false); + } + + var prototypeMin = deprecate( + 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', + function () { + var other = local__createLocal.apply(null, arguments); + if (this.isValid() && other.isValid()) { + return other < this ? this : other; + } else { + return valid__createInvalid(); + } + } + ); + + var prototypeMax = deprecate( + 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', + function () { + var other = local__createLocal.apply(null, arguments); + if (this.isValid() && other.isValid()) { + return other > this ? this : other; + } else { + return valid__createInvalid(); + } + } + ); + + // Pick a moment m from moments so that m[fn](other) is true for all + // other. This relies on the function fn to be transitive. + // + // moments should either be an array of moment objects or an array, whose + // first element is an array of moment objects. + function pickBy(fn, moments) { + var res, i; + if (moments.length === 1 && isArray(moments[0])) { + moments = moments[0]; + } + if (!moments.length) { + return local__createLocal(); + } + res = moments[0]; + for (i = 1; i < moments.length; ++i) { + if (!moments[i].isValid() || moments[i][fn](res)) { + res = moments[i]; + } + } + return res; + } + + // TODO: Use [].sort instead? + function min () { + var args = [].slice.call(arguments, 0); + + return pickBy('isBefore', args); + } + + function max () { + var args = [].slice.call(arguments, 0); + + return pickBy('isAfter', args); + } + + var now = function () { + return Date.now ? Date.now() : +(new Date()); + }; + + function Duration (duration) { + var normalizedInput = normalizeObjectUnits(duration), + years = normalizedInput.year || 0, + quarters = normalizedInput.quarter || 0, + months = normalizedInput.month || 0, + weeks = normalizedInput.week || 0, + days = normalizedInput.day || 0, + hours = normalizedInput.hour || 0, + minutes = normalizedInput.minute || 0, + seconds = normalizedInput.second || 0, + milliseconds = normalizedInput.millisecond || 0; + + // representation for dateAddRemove + this._milliseconds = +milliseconds + + seconds * 1e3 + // 1000 + minutes * 6e4 + // 1000 * 60 + hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978 + // Because of dateAddRemove treats 24 hours as different from a + // day when working around DST, we need to store them separately + this._days = +days + + weeks * 7; + // It is impossible translate months into days without knowing + // which months you are are talking about, so we have to store + // it separately. + this._months = +months + + quarters * 3 + + years * 12; + + this._data = {}; + + this._locale = locale_locales__getLocale(); + + this._bubble(); + } + + function isDuration (obj) { + return obj instanceof Duration; + } + + function absRound (number) { + if (number < 0) { + return Math.round(-1 * number) * -1; + } else { + return Math.round(number); + } + } + + // FORMATTING + + function offset (token, separator) { + addFormatToken(token, 0, 0, function () { + var offset = this.utcOffset(); + var sign = '+'; + if (offset < 0) { + offset = -offset; + sign = '-'; + } + return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2); + }); + } + + offset('Z', ':'); + offset('ZZ', ''); + + // PARSING + + addRegexToken('Z', matchShortOffset); + addRegexToken('ZZ', matchShortOffset); + addParseToken(['Z', 'ZZ'], function (input, array, config) { + config._useUTC = true; + config._tzm = offsetFromString(matchShortOffset, input); + }); + + // HELPERS + + // timezone chunker + // '+10:00' > ['10', '00'] + // '-1530' > ['-15', '30'] + var chunkOffset = /([\+\-]|\d\d)/gi; + + function offsetFromString(matcher, string) { + var matches = ((string || '').match(matcher) || []); + var chunk = matches[matches.length - 1] || []; + var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0]; + var minutes = +(parts[1] * 60) + toInt(parts[2]); + + return parts[0] === '+' ? minutes : -minutes; + } + + // Return a moment from input, that is local/utc/zone equivalent to model. + function cloneWithOffset(input, model) { + var res, diff; + if (model._isUTC) { + res = model.clone(); + diff = (isMoment(input) || isDate(input) ? input.valueOf() : local__createLocal(input).valueOf()) - res.valueOf(); + // Use low-level api, because this fn is low-level api. + res._d.setTime(res._d.valueOf() + diff); + utils_hooks__hooks.updateOffset(res, false); + return res; + } else { + return local__createLocal(input).local(); + } + } + + function getDateOffset (m) { + // On Firefox.24 Date#getTimezoneOffset returns a floating point. + // https://github.com/moment/moment/pull/1871 + return -Math.round(m._d.getTimezoneOffset() / 15) * 15; + } + + // HOOKS + + // This function will be called whenever a moment is mutated. + // It is intended to keep the offset in sync with the timezone. + utils_hooks__hooks.updateOffset = function () {}; + + // MOMENTS + + // keepLocalTime = true means only change the timezone, without + // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> + // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset + // +0200, so we adjust the time as needed, to be valid. + // + // Keeping the time actually adds/subtracts (one hour) + // from the actual represented time. That is why we call updateOffset + // a second time. In case it wants us to change the offset again + // _changeInProgress == true case, then we have to adjust, because + // there is no such time in the given timezone. + function getSetOffset (input, keepLocalTime) { + var offset = this._offset || 0, + localAdjust; + if (!this.isValid()) { + return input != null ? this : NaN; + } + if (input != null) { + if (typeof input === 'string') { + input = offsetFromString(matchShortOffset, input); + } else if (Math.abs(input) < 16) { + input = input * 60; + } + if (!this._isUTC && keepLocalTime) { + localAdjust = getDateOffset(this); + } + this._offset = input; + this._isUTC = true; + if (localAdjust != null) { + this.add(localAdjust, 'm'); + } + if (offset !== input) { + if (!keepLocalTime || this._changeInProgress) { + add_subtract__addSubtract(this, create__createDuration(input - offset, 'm'), 1, false); + } else if (!this._changeInProgress) { + this._changeInProgress = true; + utils_hooks__hooks.updateOffset(this, true); + this._changeInProgress = null; + } + } + return this; + } else { + return this._isUTC ? offset : getDateOffset(this); + } + } + + function getSetZone (input, keepLocalTime) { + if (input != null) { + if (typeof input !== 'string') { + input = -input; + } + + this.utcOffset(input, keepLocalTime); + + return this; + } else { + return -this.utcOffset(); + } + } + + function setOffsetToUTC (keepLocalTime) { + return this.utcOffset(0, keepLocalTime); + } + + function setOffsetToLocal (keepLocalTime) { + if (this._isUTC) { + this.utcOffset(0, keepLocalTime); + this._isUTC = false; + + if (keepLocalTime) { + this.subtract(getDateOffset(this), 'm'); + } + } + return this; + } + + function setOffsetToParsedOffset () { + if (this._tzm) { + this.utcOffset(this._tzm); + } else if (typeof this._i === 'string') { + var tZone = offsetFromString(matchOffset, this._i); + + if (tZone === 0) { + this.utcOffset(0, true); + } else { + this.utcOffset(offsetFromString(matchOffset, this._i)); + } + } + return this; + } + + function hasAlignedHourOffset (input) { + if (!this.isValid()) { + return false; + } + input = input ? local__createLocal(input).utcOffset() : 0; + + return (this.utcOffset() - input) % 60 === 0; + } + + function isDaylightSavingTime () { + return ( + this.utcOffset() > this.clone().month(0).utcOffset() || + this.utcOffset() > this.clone().month(5).utcOffset() + ); + } + + function isDaylightSavingTimeShifted () { + if (!isUndefined(this._isDSTShifted)) { + return this._isDSTShifted; + } + + var c = {}; + + copyConfig(c, this); + c = prepareConfig(c); + + if (c._a) { + var other = c._isUTC ? create_utc__createUTC(c._a) : local__createLocal(c._a); + this._isDSTShifted = this.isValid() && + compareArrays(c._a, other.toArray()) > 0; + } else { + this._isDSTShifted = false; + } + + return this._isDSTShifted; + } + + function isLocal () { + return this.isValid() ? !this._isUTC : false; + } + + function isUtcOffset () { + return this.isValid() ? this._isUTC : false; + } + + function isUtc () { + return this.isValid() ? this._isUTC && this._offset === 0 : false; + } + + // ASP.NET json date format regex + var aspNetRegex = /^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/; + + // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html + // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere + // and further modified to allow for strings containing both week and day + var isoRegex = /^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/; + + function create__createDuration (input, key) { + var duration = input, + // matching against regexp is expensive, do it on demand + match = null, + sign, + ret, + diffRes; + + if (isDuration(input)) { + duration = { + ms : input._milliseconds, + d : input._days, + M : input._months + }; + } else if (typeof input === 'number') { + duration = {}; + if (key) { + duration[key] = input; + } else { + duration.milliseconds = input; + } + } else if (!!(match = aspNetRegex.exec(input))) { + sign = (match[1] === '-') ? -1 : 1; + duration = { + y : 0, + d : toInt(match[DATE]) * sign, + h : toInt(match[HOUR]) * sign, + m : toInt(match[MINUTE]) * sign, + s : toInt(match[SECOND]) * sign, + ms : toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match + }; + } else if (!!(match = isoRegex.exec(input))) { + sign = (match[1] === '-') ? -1 : 1; + duration = { + y : parseIso(match[2], sign), + M : parseIso(match[3], sign), + w : parseIso(match[4], sign), + d : parseIso(match[5], sign), + h : parseIso(match[6], sign), + m : parseIso(match[7], sign), + s : parseIso(match[8], sign) + }; + } else if (duration == null) {// checks for null or undefined + duration = {}; + } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) { + diffRes = momentsDifference(local__createLocal(duration.from), local__createLocal(duration.to)); + + duration = {}; + duration.ms = diffRes.milliseconds; + duration.M = diffRes.months; + } + + ret = new Duration(duration); + + if (isDuration(input) && hasOwnProp(input, '_locale')) { + ret._locale = input._locale; + } + + return ret; + } + + create__createDuration.fn = Duration.prototype; + + function parseIso (inp, sign) { + // We'd normally use ~~inp for this, but unfortunately it also + // converts floats to ints. + // inp may be undefined, so careful calling replace on it. + var res = inp && parseFloat(inp.replace(',', '.')); + // apply sign while we're at it + return (isNaN(res) ? 0 : res) * sign; + } + + function positiveMomentsDifference(base, other) { + var res = {milliseconds: 0, months: 0}; + + res.months = other.month() - base.month() + + (other.year() - base.year()) * 12; + if (base.clone().add(res.months, 'M').isAfter(other)) { + --res.months; + } + + res.milliseconds = +other - +(base.clone().add(res.months, 'M')); + + return res; + } + + function momentsDifference(base, other) { + var res; + if (!(base.isValid() && other.isValid())) { + return {milliseconds: 0, months: 0}; + } + + other = cloneWithOffset(other, base); + if (base.isBefore(other)) { + res = positiveMomentsDifference(base, other); + } else { + res = positiveMomentsDifference(other, base); + res.milliseconds = -res.milliseconds; + res.months = -res.months; + } + + return res; + } + + // TODO: remove 'name' arg after deprecation is removed + function createAdder(direction, name) { + return function (val, period) { + var dur, tmp; + //invert the arguments, but complain about it + if (period !== null && !isNaN(+period)) { + deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' + + 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'); + tmp = val; val = period; period = tmp; + } + + val = typeof val === 'string' ? +val : val; + dur = create__createDuration(val, period); + add_subtract__addSubtract(this, dur, direction); + return this; + }; + } + + function add_subtract__addSubtract (mom, duration, isAdding, updateOffset) { + var milliseconds = duration._milliseconds, + days = absRound(duration._days), + months = absRound(duration._months); + + if (!mom.isValid()) { + // No op + return; + } + + updateOffset = updateOffset == null ? true : updateOffset; + + if (milliseconds) { + mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding); + } + if (days) { + get_set__set(mom, 'Date', get_set__get(mom, 'Date') + days * isAdding); + } + if (months) { + setMonth(mom, get_set__get(mom, 'Month') + months * isAdding); + } + if (updateOffset) { + utils_hooks__hooks.updateOffset(mom, days || months); + } + } + + var add_subtract__add = createAdder(1, 'add'); + var add_subtract__subtract = createAdder(-1, 'subtract'); + + function getCalendarFormat(myMoment, now) { + var diff = myMoment.diff(now, 'days', true); + return diff < -6 ? 'sameElse' : + diff < -1 ? 'lastWeek' : + diff < 0 ? 'lastDay' : + diff < 1 ? 'sameDay' : + diff < 2 ? 'nextDay' : + diff < 7 ? 'nextWeek' : 'sameElse'; + } + + function moment_calendar__calendar (time, formats) { + // We want to compare the start of today, vs this. + // Getting start-of-today depends on whether we're local/utc/offset or not. + var now = time || local__createLocal(), + sod = cloneWithOffset(now, this).startOf('day'), + format = utils_hooks__hooks.calendarFormat(this, sod) || 'sameElse'; + + var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]); + + return this.format(output || this.localeData().calendar(format, this, local__createLocal(now))); + } + + function clone () { + return new Moment(this); + } + + function isAfter (input, units) { + var localInput = isMoment(input) ? input : local__createLocal(input); + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(!isUndefined(units) ? units : 'millisecond'); + if (units === 'millisecond') { + return this.valueOf() > localInput.valueOf(); + } else { + return localInput.valueOf() < this.clone().startOf(units).valueOf(); + } + } + + function isBefore (input, units) { + var localInput = isMoment(input) ? input : local__createLocal(input); + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(!isUndefined(units) ? units : 'millisecond'); + if (units === 'millisecond') { + return this.valueOf() < localInput.valueOf(); + } else { + return this.clone().endOf(units).valueOf() < localInput.valueOf(); + } + } + + function isBetween (from, to, units, inclusivity) { + inclusivity = inclusivity || '()'; + return (inclusivity[0] === '(' ? this.isAfter(from, units) : !this.isBefore(from, units)) && + (inclusivity[1] === ')' ? this.isBefore(to, units) : !this.isAfter(to, units)); + } + + function isSame (input, units) { + var localInput = isMoment(input) ? input : local__createLocal(input), + inputMs; + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units || 'millisecond'); + if (units === 'millisecond') { + return this.valueOf() === localInput.valueOf(); + } else { + inputMs = localInput.valueOf(); + return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf(); + } + } + + function isSameOrAfter (input, units) { + return this.isSame(input, units) || this.isAfter(input,units); + } + + function isSameOrBefore (input, units) { + return this.isSame(input, units) || this.isBefore(input,units); + } + + function diff (input, units, asFloat) { + var that, + zoneDelta, + delta, output; + + if (!this.isValid()) { + return NaN; + } + + that = cloneWithOffset(input, this); + + if (!that.isValid()) { + return NaN; + } + + zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4; + + units = normalizeUnits(units); + + if (units === 'year' || units === 'month' || units === 'quarter') { + output = monthDiff(this, that); + if (units === 'quarter') { + output = output / 3; + } else if (units === 'year') { + output = output / 12; + } + } else { + delta = this - that; + output = units === 'second' ? delta / 1e3 : // 1000 + units === 'minute' ? delta / 6e4 : // 1000 * 60 + units === 'hour' ? delta / 36e5 : // 1000 * 60 * 60 + units === 'day' ? (delta - zoneDelta) / 864e5 : // 1000 * 60 * 60 * 24, negate dst + units === 'week' ? (delta - zoneDelta) / 6048e5 : // 1000 * 60 * 60 * 24 * 7, negate dst + delta; + } + return asFloat ? output : absFloor(output); + } + + function monthDiff (a, b) { + // difference in months + var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()), + // b is in (anchor - 1 month, anchor + 1 month) + anchor = a.clone().add(wholeMonthDiff, 'months'), + anchor2, adjust; + + if (b - anchor < 0) { + anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor - anchor2); + } else { + anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor2 - anchor); + } + + //check for negative zero, return zero if negative zero + return -(wholeMonthDiff + adjust) || 0; + } + + utils_hooks__hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; + utils_hooks__hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]'; + + function toString () { + return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); + } + + function moment_format__toISOString () { + var m = this.clone().utc(); + if (0 < m.year() && m.year() <= 9999) { + if (isFunction(Date.prototype.toISOString)) { + // native implementation is ~50x faster, use it when we can + return this.toDate().toISOString(); + } else { + return formatMoment(m, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); + } + } else { + return formatMoment(m, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); + } + } + + function format (inputString) { + if (!inputString) { + inputString = this.isUtc() ? utils_hooks__hooks.defaultFormatUtc : utils_hooks__hooks.defaultFormat; + } + var output = formatMoment(this, inputString); + return this.localeData().postformat(output); + } + + function from (time, withoutSuffix) { + if (this.isValid() && + ((isMoment(time) && time.isValid()) || + local__createLocal(time).isValid())) { + return create__createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix); + } else { + return this.localeData().invalidDate(); + } + } + + function fromNow (withoutSuffix) { + return this.from(local__createLocal(), withoutSuffix); + } + + function to (time, withoutSuffix) { + if (this.isValid() && + ((isMoment(time) && time.isValid()) || + local__createLocal(time).isValid())) { + return create__createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix); + } else { + return this.localeData().invalidDate(); + } + } + + function toNow (withoutSuffix) { + return this.to(local__createLocal(), withoutSuffix); + } + + // If passed a locale key, it will set the locale for this + // instance. Otherwise, it will return the locale configuration + // variables for this instance. + function locale (key) { + var newLocaleData; + + if (key === undefined) { + return this._locale._abbr; + } else { + newLocaleData = locale_locales__getLocale(key); + if (newLocaleData != null) { + this._locale = newLocaleData; + } + return this; + } + } + + var lang = deprecate( + 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', + function (key) { + if (key === undefined) { + return this.localeData(); + } else { + return this.locale(key); + } + } + ); + + function localeData () { + return this._locale; + } + + function startOf (units) { + units = normalizeUnits(units); + // the following switch intentionally omits break keywords + // to utilize falling through the cases. + switch (units) { + case 'year': + this.month(0); + /* falls through */ + case 'quarter': + case 'month': + this.date(1); + /* falls through */ + case 'week': + case 'isoWeek': + case 'day': + case 'date': + this.hours(0); + /* falls through */ + case 'hour': + this.minutes(0); + /* falls through */ + case 'minute': + this.seconds(0); + /* falls through */ + case 'second': + this.milliseconds(0); + } + + // weeks are a special case + if (units === 'week') { + this.weekday(0); + } + if (units === 'isoWeek') { + this.isoWeekday(1); + } + + // quarters are also special + if (units === 'quarter') { + this.month(Math.floor(this.month() / 3) * 3); + } + + return this; + } + + function endOf (units) { + units = normalizeUnits(units); + if (units === undefined || units === 'millisecond') { + return this; + } + + // 'date' is an alias for 'day', so it should be considered as such. + if (units === 'date') { + units = 'day'; + } + + return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms'); + } + + function to_type__valueOf () { + return this._d.valueOf() - ((this._offset || 0) * 60000); + } + + function unix () { + return Math.floor(this.valueOf() / 1000); + } + + function toDate () { + return new Date(this.valueOf()); + } + + function toArray () { + var m = this; + return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()]; + } + + function toObject () { + var m = this; + return { + years: m.year(), + months: m.month(), + date: m.date(), + hours: m.hours(), + minutes: m.minutes(), + seconds: m.seconds(), + milliseconds: m.milliseconds() + }; + } + + function toJSON () { + // new Date(NaN).toJSON() === null + return this.isValid() ? this.toISOString() : null; + } + + function moment_valid__isValid () { + return valid__isValid(this); + } + + function parsingFlags () { + return extend({}, getParsingFlags(this)); + } + + function invalidAt () { + return getParsingFlags(this).overflow; + } + + function creationData() { + return { + input: this._i, + format: this._f, + locale: this._locale, + isUTC: this._isUTC, + strict: this._strict + }; + } + + // FORMATTING + + addFormatToken(0, ['gg', 2], 0, function () { + return this.weekYear() % 100; + }); + + addFormatToken(0, ['GG', 2], 0, function () { + return this.isoWeekYear() % 100; + }); + + function addWeekYearFormatToken (token, getter) { + addFormatToken(0, [token, token.length], 0, getter); + } + + addWeekYearFormatToken('gggg', 'weekYear'); + addWeekYearFormatToken('ggggg', 'weekYear'); + addWeekYearFormatToken('GGGG', 'isoWeekYear'); + addWeekYearFormatToken('GGGGG', 'isoWeekYear'); + + // ALIASES + + addUnitAlias('weekYear', 'gg'); + addUnitAlias('isoWeekYear', 'GG'); + + // PRIORITY + + addUnitPriority('weekYear', 1); + addUnitPriority('isoWeekYear', 1); + + + // PARSING + + addRegexToken('G', matchSigned); + addRegexToken('g', matchSigned); + addRegexToken('GG', match1to2, match2); + addRegexToken('gg', match1to2, match2); + addRegexToken('GGGG', match1to4, match4); + addRegexToken('gggg', match1to4, match4); + addRegexToken('GGGGG', match1to6, match6); + addRegexToken('ggggg', match1to6, match6); + + addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) { + week[token.substr(0, 2)] = toInt(input); + }); + + addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { + week[token] = utils_hooks__hooks.parseTwoDigitYear(input); + }); + + // MOMENTS + + function getSetWeekYear (input) { + return getSetWeekYearHelper.call(this, + input, + this.week(), + this.weekday(), + this.localeData()._week.dow, + this.localeData()._week.doy); + } + + function getSetISOWeekYear (input) { + return getSetWeekYearHelper.call(this, + input, this.isoWeek(), this.isoWeekday(), 1, 4); + } + + function getISOWeeksInYear () { + return weeksInYear(this.year(), 1, 4); + } + + function getWeeksInYear () { + var weekInfo = this.localeData()._week; + return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); + } + + function getSetWeekYearHelper(input, week, weekday, dow, doy) { + var weeksTarget; + if (input == null) { + return weekOfYear(this, dow, doy).year; + } else { + weeksTarget = weeksInYear(input, dow, doy); + if (week > weeksTarget) { + week = weeksTarget; + } + return setWeekAll.call(this, input, week, weekday, dow, doy); + } + } + + function setWeekAll(weekYear, week, weekday, dow, doy) { + var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), + date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); + + this.year(date.getUTCFullYear()); + this.month(date.getUTCMonth()); + this.date(date.getUTCDate()); + return this; + } + + // FORMATTING + + addFormatToken('Q', 0, 'Qo', 'quarter'); + + // ALIASES + + addUnitAlias('quarter', 'Q'); + + // PRIORITY + + addUnitPriority('quarter', 7); + + // PARSING + + addRegexToken('Q', match1); + addParseToken('Q', function (input, array) { + array[MONTH] = (toInt(input) - 1) * 3; + }); + + // MOMENTS + + function getSetQuarter (input) { + return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3); + } + + // FORMATTING + + addFormatToken('D', ['DD', 2], 'Do', 'date'); + + // ALIASES + + addUnitAlias('date', 'D'); + + // PRIOROITY + addUnitPriority('date', 9); + + // PARSING + + addRegexToken('D', match1to2); + addRegexToken('DD', match1to2, match2); + addRegexToken('Do', function (isStrict, locale) { + return isStrict ? locale._ordinalParse : locale._ordinalParseLenient; + }); + + addParseToken(['D', 'DD'], DATE); + addParseToken('Do', function (input, array) { + array[DATE] = toInt(input.match(match1to2)[0], 10); + }); + + // MOMENTS + + var getSetDayOfMonth = makeGetSet('Date', true); + + // FORMATTING + + addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); + + // ALIASES + + addUnitAlias('dayOfYear', 'DDD'); + + // PRIORITY + addUnitPriority('dayOfYear', 4); + + // PARSING + + addRegexToken('DDD', match1to3); + addRegexToken('DDDD', match3); + addParseToken(['DDD', 'DDDD'], function (input, array, config) { + config._dayOfYear = toInt(input); + }); + + // HELPERS + + // MOMENTS + + function getSetDayOfYear (input) { + var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1; + return input == null ? dayOfYear : this.add((input - dayOfYear), 'd'); + } + + // FORMATTING + + addFormatToken('m', ['mm', 2], 0, 'minute'); + + // ALIASES + + addUnitAlias('minute', 'm'); + + // PRIORITY + + addUnitPriority('minute', 14); + + // PARSING + + addRegexToken('m', match1to2); + addRegexToken('mm', match1to2, match2); + addParseToken(['m', 'mm'], MINUTE); + + // MOMENTS + + var getSetMinute = makeGetSet('Minutes', false); + + // FORMATTING + + addFormatToken('s', ['ss', 2], 0, 'second'); + + // ALIASES + + addUnitAlias('second', 's'); + + // PRIORITY + + addUnitPriority('second', 15); + + // PARSING + + addRegexToken('s', match1to2); + addRegexToken('ss', match1to2, match2); + addParseToken(['s', 'ss'], SECOND); + + // MOMENTS + + var getSetSecond = makeGetSet('Seconds', false); + + // FORMATTING + + addFormatToken('S', 0, 0, function () { + return ~~(this.millisecond() / 100); + }); + + addFormatToken(0, ['SS', 2], 0, function () { + return ~~(this.millisecond() / 10); + }); + + addFormatToken(0, ['SSS', 3], 0, 'millisecond'); + addFormatToken(0, ['SSSS', 4], 0, function () { + return this.millisecond() * 10; + }); + addFormatToken(0, ['SSSSS', 5], 0, function () { + return this.millisecond() * 100; + }); + addFormatToken(0, ['SSSSSS', 6], 0, function () { + return this.millisecond() * 1000; + }); + addFormatToken(0, ['SSSSSSS', 7], 0, function () { + return this.millisecond() * 10000; + }); + addFormatToken(0, ['SSSSSSSS', 8], 0, function () { + return this.millisecond() * 100000; + }); + addFormatToken(0, ['SSSSSSSSS', 9], 0, function () { + return this.millisecond() * 1000000; + }); + + + // ALIASES + + addUnitAlias('millisecond', 'ms'); + + // PRIORITY + + addUnitPriority('millisecond', 16); + + // PARSING + + addRegexToken('S', match1to3, match1); + addRegexToken('SS', match1to3, match2); + addRegexToken('SSS', match1to3, match3); + + var token; + for (token = 'SSSS'; token.length <= 9; token += 'S') { + addRegexToken(token, matchUnsigned); + } + + function parseMs(input, array) { + array[MILLISECOND] = toInt(('0.' + input) * 1000); + } + + for (token = 'S'; token.length <= 9; token += 'S') { + addParseToken(token, parseMs); + } + // MOMENTS + + var getSetMillisecond = makeGetSet('Milliseconds', false); + + // FORMATTING + + addFormatToken('z', 0, 0, 'zoneAbbr'); + addFormatToken('zz', 0, 0, 'zoneName'); + + // MOMENTS + + function getZoneAbbr () { + return this._isUTC ? 'UTC' : ''; + } + + function getZoneName () { + return this._isUTC ? 'Coordinated Universal Time' : ''; + } + + var momentPrototype__proto = Moment.prototype; + + momentPrototype__proto.add = add_subtract__add; + momentPrototype__proto.calendar = moment_calendar__calendar; + momentPrototype__proto.clone = clone; + momentPrototype__proto.diff = diff; + momentPrototype__proto.endOf = endOf; + momentPrototype__proto.format = format; + momentPrototype__proto.from = from; + momentPrototype__proto.fromNow = fromNow; + momentPrototype__proto.to = to; + momentPrototype__proto.toNow = toNow; + momentPrototype__proto.get = stringGet; + momentPrototype__proto.invalidAt = invalidAt; + momentPrototype__proto.isAfter = isAfter; + momentPrototype__proto.isBefore = isBefore; + momentPrototype__proto.isBetween = isBetween; + momentPrototype__proto.isSame = isSame; + momentPrototype__proto.isSameOrAfter = isSameOrAfter; + momentPrototype__proto.isSameOrBefore = isSameOrBefore; + momentPrototype__proto.isValid = moment_valid__isValid; + momentPrototype__proto.lang = lang; + momentPrototype__proto.locale = locale; + momentPrototype__proto.localeData = localeData; + momentPrototype__proto.max = prototypeMax; + momentPrototype__proto.min = prototypeMin; + momentPrototype__proto.parsingFlags = parsingFlags; + momentPrototype__proto.set = stringSet; + momentPrototype__proto.startOf = startOf; + momentPrototype__proto.subtract = add_subtract__subtract; + momentPrototype__proto.toArray = toArray; + momentPrototype__proto.toObject = toObject; + momentPrototype__proto.toDate = toDate; + momentPrototype__proto.toISOString = moment_format__toISOString; + momentPrototype__proto.toJSON = toJSON; + momentPrototype__proto.toString = toString; + momentPrototype__proto.unix = unix; + momentPrototype__proto.valueOf = to_type__valueOf; + momentPrototype__proto.creationData = creationData; + + // Year + momentPrototype__proto.year = getSetYear; + momentPrototype__proto.isLeapYear = getIsLeapYear; + + // Week Year + momentPrototype__proto.weekYear = getSetWeekYear; + momentPrototype__proto.isoWeekYear = getSetISOWeekYear; + + // Quarter + momentPrototype__proto.quarter = momentPrototype__proto.quarters = getSetQuarter; + + // Month + momentPrototype__proto.month = getSetMonth; + momentPrototype__proto.daysInMonth = getDaysInMonth; + + // Week + momentPrototype__proto.week = momentPrototype__proto.weeks = getSetWeek; + momentPrototype__proto.isoWeek = momentPrototype__proto.isoWeeks = getSetISOWeek; + momentPrototype__proto.weeksInYear = getWeeksInYear; + momentPrototype__proto.isoWeeksInYear = getISOWeeksInYear; + + // Day + momentPrototype__proto.date = getSetDayOfMonth; + momentPrototype__proto.day = momentPrototype__proto.days = getSetDayOfWeek; + momentPrototype__proto.weekday = getSetLocaleDayOfWeek; + momentPrototype__proto.isoWeekday = getSetISODayOfWeek; + momentPrototype__proto.dayOfYear = getSetDayOfYear; + + // Hour + momentPrototype__proto.hour = momentPrototype__proto.hours = getSetHour; + + // Minute + momentPrototype__proto.minute = momentPrototype__proto.minutes = getSetMinute; + + // Second + momentPrototype__proto.second = momentPrototype__proto.seconds = getSetSecond; + + // Millisecond + momentPrototype__proto.millisecond = momentPrototype__proto.milliseconds = getSetMillisecond; + + // Offset + momentPrototype__proto.utcOffset = getSetOffset; + momentPrototype__proto.utc = setOffsetToUTC; + momentPrototype__proto.local = setOffsetToLocal; + momentPrototype__proto.parseZone = setOffsetToParsedOffset; + momentPrototype__proto.hasAlignedHourOffset = hasAlignedHourOffset; + momentPrototype__proto.isDST = isDaylightSavingTime; + momentPrototype__proto.isLocal = isLocal; + momentPrototype__proto.isUtcOffset = isUtcOffset; + momentPrototype__proto.isUtc = isUtc; + momentPrototype__proto.isUTC = isUtc; + + // Timezone + momentPrototype__proto.zoneAbbr = getZoneAbbr; + momentPrototype__proto.zoneName = getZoneName; + + // Deprecations + momentPrototype__proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth); + momentPrototype__proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth); + momentPrototype__proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear); + momentPrototype__proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone); + momentPrototype__proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted); + + var momentPrototype = momentPrototype__proto; + + function moment__createUnix (input) { + return local__createLocal(input * 1000); + } + + function moment__createInZone () { + return local__createLocal.apply(null, arguments).parseZone(); + } + + function preParsePostFormat (string) { + return string; + } + + var prototype__proto = Locale.prototype; + + prototype__proto.calendar = locale_calendar__calendar; + prototype__proto.longDateFormat = longDateFormat; + prototype__proto.invalidDate = invalidDate; + prototype__proto.ordinal = ordinal; + prototype__proto.preparse = preParsePostFormat; + prototype__proto.postformat = preParsePostFormat; + prototype__proto.relativeTime = relative__relativeTime; + prototype__proto.pastFuture = pastFuture; + prototype__proto.set = locale_set__set; + + // Month + prototype__proto.months = localeMonths; + prototype__proto.monthsShort = localeMonthsShort; + prototype__proto.monthsParse = localeMonthsParse; + prototype__proto.monthsRegex = monthsRegex; + prototype__proto.monthsShortRegex = monthsShortRegex; + + // Week + prototype__proto.week = localeWeek; + prototype__proto.firstDayOfYear = localeFirstDayOfYear; + prototype__proto.firstDayOfWeek = localeFirstDayOfWeek; + + // Day of Week + prototype__proto.weekdays = localeWeekdays; + prototype__proto.weekdaysMin = localeWeekdaysMin; + prototype__proto.weekdaysShort = localeWeekdaysShort; + prototype__proto.weekdaysParse = localeWeekdaysParse; + + prototype__proto.weekdaysRegex = weekdaysRegex; + prototype__proto.weekdaysShortRegex = weekdaysShortRegex; + prototype__proto.weekdaysMinRegex = weekdaysMinRegex; + + // Hours + prototype__proto.isPM = localeIsPM; + prototype__proto.meridiem = localeMeridiem; + + function lists__get (format, index, field, setter) { + var locale = locale_locales__getLocale(); + var utc = create_utc__createUTC().set(setter, index); + return locale[field](utc, format); + } + + function listMonthsImpl (format, index, field) { + if (typeof format === 'number') { + index = format; + format = undefined; + } + + format = format || ''; + + if (index != null) { + return lists__get(format, index, field, 'month'); + } + + var i; + var out = []; + for (i = 0; i < 12; i++) { + out[i] = lists__get(format, i, field, 'month'); + } + return out; + } + + // () + // (5) + // (fmt, 5) + // (fmt) + // (true) + // (true, 5) + // (true, fmt, 5) + // (true, fmt) + function listWeekdaysImpl (localeSorted, format, index, field) { + if (typeof localeSorted === 'boolean') { + if (typeof format === 'number') { + index = format; + format = undefined; + } + + format = format || ''; + } else { + format = localeSorted; + index = format; + localeSorted = false; + + if (typeof format === 'number') { + index = format; + format = undefined; + } + + format = format || ''; + } + + var locale = locale_locales__getLocale(), + shift = localeSorted ? locale._week.dow : 0; + + if (index != null) { + return lists__get(format, (index + shift) % 7, field, 'day'); + } + + var i; + var out = []; + for (i = 0; i < 7; i++) { + out[i] = lists__get(format, (i + shift) % 7, field, 'day'); + } + return out; + } + + function lists__listMonths (format, index) { + return listMonthsImpl(format, index, 'months'); + } + + function lists__listMonthsShort (format, index) { + return listMonthsImpl(format, index, 'monthsShort'); + } + + function lists__listWeekdays (localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdays'); + } + + function lists__listWeekdaysShort (localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort'); + } + + function lists__listWeekdaysMin (localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin'); + } + + locale_locales__getSetGlobalLocale('en', { + ordinalParse: /\d{1,2}(th|st|nd|rd)/, + ordinal : function (number) { + var b = number % 10, + output = (toInt(number % 100 / 10) === 1) ? 'th' : + (b === 1) ? 'st' : + (b === 2) ? 'nd' : + (b === 3) ? 'rd' : 'th'; + return number + output; + } + }); + + // Side effect imports + utils_hooks__hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', locale_locales__getSetGlobalLocale); + utils_hooks__hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', locale_locales__getLocale); + + var mathAbs = Math.abs; + + function duration_abs__abs () { + var data = this._data; + + this._milliseconds = mathAbs(this._milliseconds); + this._days = mathAbs(this._days); + this._months = mathAbs(this._months); + + data.milliseconds = mathAbs(data.milliseconds); + data.seconds = mathAbs(data.seconds); + data.minutes = mathAbs(data.minutes); + data.hours = mathAbs(data.hours); + data.months = mathAbs(data.months); + data.years = mathAbs(data.years); + + return this; + } + + function duration_add_subtract__addSubtract (duration, input, value, direction) { + var other = create__createDuration(input, value); + + duration._milliseconds += direction * other._milliseconds; + duration._days += direction * other._days; + duration._months += direction * other._months; + + return duration._bubble(); + } + + // supports only 2.0-style add(1, 's') or add(duration) + function duration_add_subtract__add (input, value) { + return duration_add_subtract__addSubtract(this, input, value, 1); + } + + // supports only 2.0-style subtract(1, 's') or subtract(duration) + function duration_add_subtract__subtract (input, value) { + return duration_add_subtract__addSubtract(this, input, value, -1); + } + + function absCeil (number) { + if (number < 0) { + return Math.floor(number); + } else { + return Math.ceil(number); + } + } + + function bubble () { + var milliseconds = this._milliseconds; + var days = this._days; + var months = this._months; + var data = this._data; + var seconds, minutes, hours, years, monthsFromDays; + + // if we have a mix of positive and negative values, bubble down first + // check: https://github.com/moment/moment/issues/2166 + if (!((milliseconds >= 0 && days >= 0 && months >= 0) || + (milliseconds <= 0 && days <= 0 && months <= 0))) { + milliseconds += absCeil(monthsToDays(months) + days) * 864e5; + days = 0; + months = 0; + } + + // The following code bubbles up values, see the tests for + // examples of what that means. + data.milliseconds = milliseconds % 1000; + + seconds = absFloor(milliseconds / 1000); + data.seconds = seconds % 60; + + minutes = absFloor(seconds / 60); + data.minutes = minutes % 60; + + hours = absFloor(minutes / 60); + data.hours = hours % 24; + + days += absFloor(hours / 24); + + // convert days to months + monthsFromDays = absFloor(daysToMonths(days)); + months += monthsFromDays; + days -= absCeil(monthsToDays(monthsFromDays)); + + // 12 months -> 1 year + years = absFloor(months / 12); + months %= 12; + + data.days = days; + data.months = months; + data.years = years; + + return this; + } + + function daysToMonths (days) { + // 400 years have 146097 days (taking into account leap year rules) + // 400 years have 12 months === 4800 + return days * 4800 / 146097; + } + + function monthsToDays (months) { + // the reverse of daysToMonths + return months * 146097 / 4800; + } + + function as (units) { + var days; + var months; + var milliseconds = this._milliseconds; + + units = normalizeUnits(units); + + if (units === 'month' || units === 'year') { + days = this._days + milliseconds / 864e5; + months = this._months + daysToMonths(days); + return units === 'month' ? months : months / 12; + } else { + // handle milliseconds separately because of floating point math errors (issue #1867) + days = this._days + Math.round(monthsToDays(this._months)); + switch (units) { + case 'week' : return days / 7 + milliseconds / 6048e5; + case 'day' : return days + milliseconds / 864e5; + case 'hour' : return days * 24 + milliseconds / 36e5; + case 'minute' : return days * 1440 + milliseconds / 6e4; + case 'second' : return days * 86400 + milliseconds / 1000; + // Math.floor prevents floating point math errors here + case 'millisecond': return Math.floor(days * 864e5) + milliseconds; + default: throw new Error('Unknown unit ' + units); + } + } + } + + // TODO: Use this.as('ms')? + function duration_as__valueOf () { + return ( + this._milliseconds + + this._days * 864e5 + + (this._months % 12) * 2592e6 + + toInt(this._months / 12) * 31536e6 + ); + } + + function makeAs (alias) { + return function () { + return this.as(alias); + }; + } + + var asMilliseconds = makeAs('ms'); + var asSeconds = makeAs('s'); + var asMinutes = makeAs('m'); + var asHours = makeAs('h'); + var asDays = makeAs('d'); + var asWeeks = makeAs('w'); + var asMonths = makeAs('M'); + var asYears = makeAs('y'); + + function duration_get__get (units) { + units = normalizeUnits(units); + return this[units + 's'](); + } + + function makeGetter(name) { + return function () { + return this._data[name]; + }; + } + + var milliseconds = makeGetter('milliseconds'); + var seconds = makeGetter('seconds'); + var minutes = makeGetter('minutes'); + var hours = makeGetter('hours'); + var days = makeGetter('days'); + var months = makeGetter('months'); + var years = makeGetter('years'); + + function weeks () { + return absFloor(this.days() / 7); + } + + var round = Math.round; + var thresholds = { + s: 45, // seconds to minute + m: 45, // minutes to hour + h: 22, // hours to day + d: 26, // days to month + M: 11 // months to year + }; + + // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize + function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { + return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); + } + + function duration_humanize__relativeTime (posNegDuration, withoutSuffix, locale) { + var duration = create__createDuration(posNegDuration).abs(); + var seconds = round(duration.as('s')); + var minutes = round(duration.as('m')); + var hours = round(duration.as('h')); + var days = round(duration.as('d')); + var months = round(duration.as('M')); + var years = round(duration.as('y')); + + var a = seconds < thresholds.s && ['s', seconds] || + minutes <= 1 && ['m'] || + minutes < thresholds.m && ['mm', minutes] || + hours <= 1 && ['h'] || + hours < thresholds.h && ['hh', hours] || + days <= 1 && ['d'] || + days < thresholds.d && ['dd', days] || + months <= 1 && ['M'] || + months < thresholds.M && ['MM', months] || + years <= 1 && ['y'] || ['yy', years]; + + a[2] = withoutSuffix; + a[3] = +posNegDuration > 0; + a[4] = locale; + return substituteTimeAgo.apply(null, a); + } + + // This function allows you to set the rounding function for relative time strings + function duration_humanize__getSetRelativeTimeRounding (roundingFunction) { + if (roundingFunction === undefined) { + return round; + } + if (typeof(roundingFunction) === 'function') { + round = roundingFunction; + return true; + } + return false; + } + + // This function allows you to set a threshold for relative time strings + function duration_humanize__getSetRelativeTimeThreshold (threshold, limit) { + if (thresholds[threshold] === undefined) { + return false; + } + if (limit === undefined) { + return thresholds[threshold]; + } + thresholds[threshold] = limit; + return true; + } + + function humanize (withSuffix) { + var locale = this.localeData(); + var output = duration_humanize__relativeTime(this, !withSuffix, locale); + + if (withSuffix) { + output = locale.pastFuture(+this, output); + } + + return locale.postformat(output); + } + + var iso_string__abs = Math.abs; + + function iso_string__toISOString() { + // for ISO strings we do not use the normal bubbling rules: + // * milliseconds bubble up until they become hours + // * days do not bubble at all + // * months bubble up until they become years + // This is because there is no context-free conversion between hours and days + // (think of clock changes) + // and also not between days and months (28-31 days per month) + var seconds = iso_string__abs(this._milliseconds) / 1000; + var days = iso_string__abs(this._days); + var months = iso_string__abs(this._months); + var minutes, hours, years; + + // 3600 seconds -> 60 minutes -> 1 hour + minutes = absFloor(seconds / 60); + hours = absFloor(minutes / 60); + seconds %= 60; + minutes %= 60; + + // 12 months -> 1 year + years = absFloor(months / 12); + months %= 12; + + + // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js + var Y = years; + var M = months; + var D = days; + var h = hours; + var m = minutes; + var s = seconds; + var total = this.asSeconds(); + + if (!total) { + // this is the same as C#'s (Noda) and python (isodate)... + // but not other JS (goog.date) + return 'P0D'; + } + + return (total < 0 ? '-' : '') + + 'P' + + (Y ? Y + 'Y' : '') + + (M ? M + 'M' : '') + + (D ? D + 'D' : '') + + ((h || m || s) ? 'T' : '') + + (h ? h + 'H' : '') + + (m ? m + 'M' : '') + + (s ? s + 'S' : ''); + } + + var duration_prototype__proto = Duration.prototype; + + duration_prototype__proto.abs = duration_abs__abs; + duration_prototype__proto.add = duration_add_subtract__add; + duration_prototype__proto.subtract = duration_add_subtract__subtract; + duration_prototype__proto.as = as; + duration_prototype__proto.asMilliseconds = asMilliseconds; + duration_prototype__proto.asSeconds = asSeconds; + duration_prototype__proto.asMinutes = asMinutes; + duration_prototype__proto.asHours = asHours; + duration_prototype__proto.asDays = asDays; + duration_prototype__proto.asWeeks = asWeeks; + duration_prototype__proto.asMonths = asMonths; + duration_prototype__proto.asYears = asYears; + duration_prototype__proto.valueOf = duration_as__valueOf; + duration_prototype__proto._bubble = bubble; + duration_prototype__proto.get = duration_get__get; + duration_prototype__proto.milliseconds = milliseconds; + duration_prototype__proto.seconds = seconds; + duration_prototype__proto.minutes = minutes; + duration_prototype__proto.hours = hours; + duration_prototype__proto.days = days; + duration_prototype__proto.weeks = weeks; + duration_prototype__proto.months = months; + duration_prototype__proto.years = years; + duration_prototype__proto.humanize = humanize; + duration_prototype__proto.toISOString = iso_string__toISOString; + duration_prototype__proto.toString = iso_string__toISOString; + duration_prototype__proto.toJSON = iso_string__toISOString; + duration_prototype__proto.locale = locale; + duration_prototype__proto.localeData = localeData; + + // Deprecations + duration_prototype__proto.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', iso_string__toISOString); + duration_prototype__proto.lang = lang; + + // Side effect imports + + // FORMATTING + + addFormatToken('X', 0, 0, 'unix'); + addFormatToken('x', 0, 0, 'valueOf'); + + // PARSING + + addRegexToken('x', matchSigned); + addRegexToken('X', matchTimestamp); + addParseToken('X', function (input, array, config) { + config._d = new Date(parseFloat(input, 10) * 1000); + }); + addParseToken('x', function (input, array, config) { + config._d = new Date(toInt(input)); + }); + + // Side effect imports + + + utils_hooks__hooks.version = '2.15.1'; + + setHookCallback(local__createLocal); + + utils_hooks__hooks.fn = momentPrototype; + utils_hooks__hooks.min = min; + utils_hooks__hooks.max = max; + utils_hooks__hooks.now = now; + utils_hooks__hooks.utc = create_utc__createUTC; + utils_hooks__hooks.unix = moment__createUnix; + utils_hooks__hooks.months = lists__listMonths; + utils_hooks__hooks.isDate = isDate; + utils_hooks__hooks.locale = locale_locales__getSetGlobalLocale; + utils_hooks__hooks.invalid = valid__createInvalid; + utils_hooks__hooks.duration = create__createDuration; + utils_hooks__hooks.isMoment = isMoment; + utils_hooks__hooks.weekdays = lists__listWeekdays; + utils_hooks__hooks.parseZone = moment__createInZone; + utils_hooks__hooks.localeData = locale_locales__getLocale; + utils_hooks__hooks.isDuration = isDuration; + utils_hooks__hooks.monthsShort = lists__listMonthsShort; + utils_hooks__hooks.weekdaysMin = lists__listWeekdaysMin; + utils_hooks__hooks.defineLocale = defineLocale; + utils_hooks__hooks.updateLocale = updateLocale; + utils_hooks__hooks.locales = locale_locales__listLocales; + utils_hooks__hooks.weekdaysShort = lists__listWeekdaysShort; + utils_hooks__hooks.normalizeUnits = normalizeUnits; + utils_hooks__hooks.relativeTimeRounding = duration_humanize__getSetRelativeTimeRounding; + utils_hooks__hooks.relativeTimeThreshold = duration_humanize__getSetRelativeTimeThreshold; + utils_hooks__hooks.calendarFormat = getCalendarFormat; + utils_hooks__hooks.prototype = momentPrototype; + + var _moment = utils_hooks__hooks; + + return _moment; + +})); \ No newline at end of file diff --git a/library/moment/moment.min.js b/library/moment/moment.min.js new file mode 100644 index 000000000..34129d218 --- /dev/null +++ b/library/moment/moment.min.js @@ -0,0 +1,495 @@ +//! moment.js +//! version : 2.15.1 +//! authors : Tim Wood, Iskren Chernev, Moment.js contributors +//! license : MIT +//! momentjs.com +!function(a,b){"object"==typeof exports&&"undefined"!=typeof module?module.exports=b():"function"==typeof define&&define.amd?define(b):a.moment=b()}(this,function(){"use strict";function a(){return md.apply(null,arguments)} +// This is done to register the method called with moment() +// without creating circular dependencies. +function b(a){md=a}function c(a){return a instanceof Array||"[object Array]"===Object.prototype.toString.call(a)}function d(a){ +// IE8 will treat undefined and null as object if it wasn't for +// input != null +return null!=a&&"[object Object]"===Object.prototype.toString.call(a)}function e(a){var b;for(b in a) +// even if its not own property I'd still call it non-empty +return!1;return!0}function f(a){return a instanceof Date||"[object Date]"===Object.prototype.toString.call(a)}function g(a,b){var c,d=[];for(c=0;c0)for(c in od)d=od[c],e=b[d],o(e)||(a[d]=e);return a} +// Moment prototype object +function q(b){p(this,b),this._d=new Date(null!=b._d?b._d.getTime():NaN),pd===!1&&(pd=!0,a.updateOffset(this),pd=!1)}function r(a){return a instanceof q||null!=a&&null!=a._isAMomentObject}function s(a){return 0>a?Math.ceil(a)||0:Math.floor(a)}function t(a){var b=+a,c=0;return 0!==b&&isFinite(b)&&(c=s(b)),c} +// compare two arrays, return the number of differences +function u(a,b,c){var d,e=Math.min(a.length,b.length),f=Math.abs(a.length-b.length),g=0;for(d=0;e>d;d++)(c&&a[d]!==b[d]||!c&&t(a[d])!==t(b[d]))&&g++;return g+f}function v(b){a.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+b)}function w(b,c){var d=!0;return i(function(){if(null!=a.deprecationHandler&&a.deprecationHandler(null,b),d){for(var e,f=[],g=0;g0?"future":"past"];return y(c)?c(b):c.replace(/%s/i,b)}function I(a,b){var c=a.toLowerCase();zd[c]=zd[c+"s"]=zd[b]=a}function J(a){return"string"==typeof a?zd[a]||zd[a.toLowerCase()]:void 0}function K(a){var b,c,d={};for(c in a)h(a,c)&&(b=J(c),b&&(d[b]=a[c]));return d}function L(a,b){Ad[a]=b}function M(a){var b=[];for(var c in a)b.push({unit:c,priority:Ad[c]});return b.sort(function(a,b){return a.priority-b.priority}),b}function N(b,c){return function(d){return null!=d?(P(this,b,d),a.updateOffset(this,c),this):O(this,b)}}function O(a,b){return a.isValid()?a._d["get"+(a._isUTC?"UTC":"")+b]():NaN}function P(a,b,c){a.isValid()&&a._d["set"+(a._isUTC?"UTC":"")+b](c)} +// MOMENTS +function Q(a){return a=J(a),y(this[a])?this[a]():this}function R(a,b){if("object"==typeof a){a=K(a);for(var c=M(a),d=0;d=0;return(f?c?"+":"":"-")+Math.pow(10,Math.max(0,e)).toString().substr(1)+d} +// token: 'M' +// padded: ['MM', 2] +// ordinal: 'Mo' +// callback: function () { this.month() + 1 } +function T(a,b,c,d){var e=d;"string"==typeof d&&(e=function(){return this[d]()}),a&&(Ed[a]=e),b&&(Ed[b[0]]=function(){return S(e.apply(this,arguments),b[1],b[2])}),c&&(Ed[c]=function(){return this.localeData().ordinal(e.apply(this,arguments),a)})}function U(a){return a.match(/\[[\s\S]/)?a.replace(/^\[|\]$/g,""):a.replace(/\\/g,"")}function V(a){var b,c,d=a.match(Bd);for(b=0,c=d.length;c>b;b++)Ed[d[b]]?d[b]=Ed[d[b]]:d[b]=U(d[b]);return function(b){var e,f="";for(e=0;c>e;e++)f+=d[e]instanceof Function?d[e].call(b,a):d[e];return f}} +// format date using native date object +function W(a,b){return a.isValid()?(b=X(b,a.localeData()),Dd[b]=Dd[b]||V(b),Dd[b](a)):a.localeData().invalidDate()}function X(a,b){function c(a){return b.longDateFormat(a)||a}var d=5;for(Cd.lastIndex=0;d>=0&&Cd.test(a);)a=a.replace(Cd,c),Cd.lastIndex=0,d-=1;return a}function Y(a,b,c){Wd[a]=y(b)?b:function(a,d){return a&&c?c:b}}function Z(a,b){return h(Wd,a)?Wd[a](b._strict,b._locale):new RegExp($(a))} +// Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript +function $(a){return _(a.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(a,b,c,d,e){return b||c||d||e}))}function _(a){return a.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function aa(a,b){var c,d=b;for("string"==typeof a&&(a=[a]),"number"==typeof b&&(d=function(a,c){c[b]=t(a)}),c=0;cd;++d)f=j([2e3,d]),this._shortMonthsParse[d]=this.monthsShort(f,"").toLocaleLowerCase(),this._longMonthsParse[d]=this.months(f,"").toLocaleLowerCase();return c?"MMM"===b?(e=sd.call(this._shortMonthsParse,g),-1!==e?e:null):(e=sd.call(this._longMonthsParse,g),-1!==e?e:null):"MMM"===b?(e=sd.call(this._shortMonthsParse,g),-1!==e?e:(e=sd.call(this._longMonthsParse,g),-1!==e?e:null)):(e=sd.call(this._longMonthsParse,g),-1!==e?e:(e=sd.call(this._shortMonthsParse,g),-1!==e?e:null))}function ha(a,b,c){var d,e,f;if(this._monthsParseExact)return ga.call(this,a,b,c); +// TODO: add sorting +// Sorting makes sure if one month (or abbr) is a prefix of another +// see sorting in computeMonthsParse +for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),d=0;12>d;d++){ +// test the regex +if(e=j([2e3,d]),c&&!this._longMonthsParse[d]&&(this._longMonthsParse[d]=new RegExp("^"+this.months(e,"").replace(".","")+"$","i"),this._shortMonthsParse[d]=new RegExp("^"+this.monthsShort(e,"").replace(".","")+"$","i")),c||this._monthsParse[d]||(f="^"+this.months(e,"")+"|^"+this.monthsShort(e,""),this._monthsParse[d]=new RegExp(f.replace(".",""),"i")),c&&"MMMM"===b&&this._longMonthsParse[d].test(a))return d;if(c&&"MMM"===b&&this._shortMonthsParse[d].test(a))return d;if(!c&&this._monthsParse[d].test(a))return d}} +// MOMENTS +function ia(a,b){var c;if(!a.isValid()) +// No op +return a;if("string"==typeof b)if(/^\d+$/.test(b))b=t(b);else +// TODO: Another silent failure? +if(b=a.localeData().monthsParse(b),"number"!=typeof b)return a;return c=Math.min(a.date(),da(a.year(),b)),a._d["set"+(a._isUTC?"UTC":"")+"Month"](b,c),a}function ja(b){return null!=b?(ia(this,b),a.updateOffset(this,!0),this):O(this,"Month")}function ka(){return da(this.year(),this.month())}function la(a){return this._monthsParseExact?(h(this,"_monthsRegex")||na.call(this),a?this._monthsShortStrictRegex:this._monthsShortRegex):(h(this,"_monthsShortRegex")||(this._monthsShortRegex=ie),this._monthsShortStrictRegex&&a?this._monthsShortStrictRegex:this._monthsShortRegex)}function ma(a){return this._monthsParseExact?(h(this,"_monthsRegex")||na.call(this),a?this._monthsStrictRegex:this._monthsRegex):(h(this,"_monthsRegex")||(this._monthsRegex=je),this._monthsStrictRegex&&a?this._monthsStrictRegex:this._monthsRegex)}function na(){function a(a,b){return b.length-a.length}var b,c,d=[],e=[],f=[];for(b=0;12>b;b++)c=j([2e3,b]),d.push(this.monthsShort(c,"")),e.push(this.months(c,"")),f.push(this.months(c,"")),f.push(this.monthsShort(c,""));for( +// Sorting makes sure if one month (or abbr) is a prefix of another it +// will match the longer piece. +d.sort(a),e.sort(a),f.sort(a),b=0;12>b;b++)d[b]=_(d[b]),e[b]=_(e[b]);for(b=0;24>b;b++)f[b]=_(f[b]);this._monthsRegex=new RegExp("^("+f.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+e.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+d.join("|")+")","i")} +// HELPERS +function oa(a){return pa(a)?366:365}function pa(a){return a%4===0&&a%100!==0||a%400===0}function qa(){return pa(this.year())}function ra(a,b,c,d,e,f,g){ +//can't just apply() to create a date: +//http://stackoverflow.com/questions/181348/instantiating-a-javascript-object-by-calling-prototype-constructor-apply +var h=new Date(a,b,c,d,e,f,g); +//the date constructor remaps years 0-99 to 1900-1999 +return 100>a&&a>=0&&isFinite(h.getFullYear())&&h.setFullYear(a),h}function sa(a){var b=new Date(Date.UTC.apply(null,arguments)); +//the Date.UTC function remaps years 0-99 to 1900-1999 +return 100>a&&a>=0&&isFinite(b.getUTCFullYear())&&b.setUTCFullYear(a),b} +// start-of-first-week - start-of-year +function ta(a,b,c){var// first-week day -- which january is always in the first week (4 for iso, 1 for other) +d=7+b-c, +// first-week day local weekday -- which local weekday is fwd +e=(7+sa(a,0,d).getUTCDay()-b)%7;return-e+d-1} +//http://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday +function ua(a,b,c,d,e){var f,g,h=(7+c-d)%7,i=ta(a,d,e),j=1+7*(b-1)+h+i;return 0>=j?(f=a-1,g=oa(f)+j):j>oa(a)?(f=a+1,g=j-oa(a)):(f=a,g=j),{year:f,dayOfYear:g}}function va(a,b,c){var d,e,f=ta(a.year(),b,c),g=Math.floor((a.dayOfYear()-f-1)/7)+1;return 1>g?(e=a.year()-1,d=g+wa(e,b,c)):g>wa(a.year(),b,c)?(d=g-wa(a.year(),b,c),e=a.year()+1):(e=a.year(),d=g),{week:d,year:e}}function wa(a,b,c){var d=ta(a,b,c),e=ta(a+1,b,c);return(oa(a)-d+e)/7} +// HELPERS +// LOCALES +function xa(a){return va(a,this._week.dow,this._week.doy).week}function ya(){return this._week.dow}function za(){return this._week.doy} +// MOMENTS +function Aa(a){var b=this.localeData().week(this);return null==a?b:this.add(7*(a-b),"d")}function Ba(a){var b=va(this,1,4).week;return null==a?b:this.add(7*(a-b),"d")} +// HELPERS +function Ca(a,b){return"string"!=typeof a?a:isNaN(a)?(a=b.weekdaysParse(a),"number"==typeof a?a:null):parseInt(a,10)}function Da(a,b){return"string"==typeof a?b.weekdaysParse(a)%7||7:isNaN(a)?null:a}function Ea(a,b){return a?c(this._weekdays)?this._weekdays[a.day()]:this._weekdays[this._weekdays.isFormat.test(b)?"format":"standalone"][a.day()]:this._weekdays}function Fa(a){return a?this._weekdaysShort[a.day()]:this._weekdaysShort}function Ga(a){return a?this._weekdaysMin[a.day()]:this._weekdaysMin}function Ha(a,b,c){var d,e,f,g=a.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],d=0;7>d;++d)f=j([2e3,1]).day(d),this._minWeekdaysParse[d]=this.weekdaysMin(f,"").toLocaleLowerCase(),this._shortWeekdaysParse[d]=this.weekdaysShort(f,"").toLocaleLowerCase(),this._weekdaysParse[d]=this.weekdays(f,"").toLocaleLowerCase();return c?"dddd"===b?(e=sd.call(this._weekdaysParse,g),-1!==e?e:null):"ddd"===b?(e=sd.call(this._shortWeekdaysParse,g),-1!==e?e:null):(e=sd.call(this._minWeekdaysParse,g),-1!==e?e:null):"dddd"===b?(e=sd.call(this._weekdaysParse,g),-1!==e?e:(e=sd.call(this._shortWeekdaysParse,g),-1!==e?e:(e=sd.call(this._minWeekdaysParse,g),-1!==e?e:null))):"ddd"===b?(e=sd.call(this._shortWeekdaysParse,g),-1!==e?e:(e=sd.call(this._weekdaysParse,g),-1!==e?e:(e=sd.call(this._minWeekdaysParse,g),-1!==e?e:null))):(e=sd.call(this._minWeekdaysParse,g),-1!==e?e:(e=sd.call(this._weekdaysParse,g),-1!==e?e:(e=sd.call(this._shortWeekdaysParse,g),-1!==e?e:null)))}function Ia(a,b,c){var d,e,f;if(this._weekdaysParseExact)return Ha.call(this,a,b,c);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),d=0;7>d;d++){ +// test the regex +if(e=j([2e3,1]).day(d),c&&!this._fullWeekdaysParse[d]&&(this._fullWeekdaysParse[d]=new RegExp("^"+this.weekdays(e,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[d]=new RegExp("^"+this.weekdaysShort(e,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[d]=new RegExp("^"+this.weekdaysMin(e,"").replace(".",".?")+"$","i")),this._weekdaysParse[d]||(f="^"+this.weekdays(e,"")+"|^"+this.weekdaysShort(e,"")+"|^"+this.weekdaysMin(e,""),this._weekdaysParse[d]=new RegExp(f.replace(".",""),"i")),c&&"dddd"===b&&this._fullWeekdaysParse[d].test(a))return d;if(c&&"ddd"===b&&this._shortWeekdaysParse[d].test(a))return d;if(c&&"dd"===b&&this._minWeekdaysParse[d].test(a))return d;if(!c&&this._weekdaysParse[d].test(a))return d}} +// MOMENTS +function Ja(a){if(!this.isValid())return null!=a?this:NaN;var b=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=a?(a=Ca(a,this.localeData()),this.add(a-b,"d")):b}function Ka(a){if(!this.isValid())return null!=a?this:NaN;var b=(this.day()+7-this.localeData()._week.dow)%7;return null==a?b:this.add(a-b,"d")}function La(a){if(!this.isValid())return null!=a?this:NaN; +// behaves the same as moment#day except +// as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) +// as a setter, sunday should belong to the previous week. +if(null!=a){var b=Da(a,this.localeData());return this.day(this.day()%7?b:b-7)}return this.day()||7}function Ma(a){return this._weekdaysParseExact?(h(this,"_weekdaysRegex")||Pa.call(this),a?this._weekdaysStrictRegex:this._weekdaysRegex):(h(this,"_weekdaysRegex")||(this._weekdaysRegex=pe),this._weekdaysStrictRegex&&a?this._weekdaysStrictRegex:this._weekdaysRegex)}function Na(a){return this._weekdaysParseExact?(h(this,"_weekdaysRegex")||Pa.call(this),a?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(h(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=qe),this._weekdaysShortStrictRegex&&a?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Oa(a){return this._weekdaysParseExact?(h(this,"_weekdaysRegex")||Pa.call(this),a?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(h(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=re),this._weekdaysMinStrictRegex&&a?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Pa(){function a(a,b){return b.length-a.length}var b,c,d,e,f,g=[],h=[],i=[],k=[];for(b=0;7>b;b++)c=j([2e3,1]).day(b),d=this.weekdaysMin(c,""),e=this.weekdaysShort(c,""),f=this.weekdays(c,""),g.push(d),h.push(e),i.push(f),k.push(d),k.push(e),k.push(f);for( +// Sorting makes sure if one weekday (or abbr) is a prefix of another it +// will match the longer piece. +g.sort(a),h.sort(a),i.sort(a),k.sort(a),b=0;7>b;b++)h[b]=_(h[b]),i[b]=_(i[b]),k[b]=_(k[b]);this._weekdaysRegex=new RegExp("^("+k.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+i.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+h.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+g.join("|")+")","i")} +// FORMATTING +function Qa(){return this.hours()%12||12}function Ra(){return this.hours()||24}function Sa(a,b){T(a,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),b)})} +// PARSING +function Ta(a,b){return b._meridiemParse} +// LOCALES +function Ua(a){ +// IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays +// Using charAt should be more compatible. +return"p"===(a+"").toLowerCase().charAt(0)}function Va(a,b,c){return a>11?c?"pm":"PM":c?"am":"AM"}function Wa(a){return a?a.toLowerCase().replace("_","-"):a} +// pick the locale from the array +// try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each +// substring from most specific to least, but move to the next array item if it's a more specific variant than the current root +function Xa(a){for(var b,c,d,e,f=0;f0;){if(d=Ya(e.slice(0,b).join("-")))return d;if(c&&c.length>=b&&u(e,c,!0)>=b-1) +//the next array item is better than a shallower substring of this one +break;b--}f++}return null}function Ya(a){var b=null; +// TODO: Find a better way to register and load all the locales in Node +if(!we[a]&&"undefined"!=typeof module&&module&&module.exports)try{b=se._abbr,require("./locale/"+a), +// because defineLocale currently also sets the global locale, we +// want to undo that for lazy loaded locales +Za(b)}catch(c){}return we[a]} +// This function will load locale and then set the global locale. If +// no arguments are passed in, it will simply return the current global +// locale key. +function Za(a,b){var c; +// moment.duration._locale = moment._locale = data; +return a&&(c=o(b)?ab(a):$a(a,b),c&&(se=c)),se._abbr}function $a(a,b){if(null!==b){var c=ve; +// treat as if there is no base config +// backwards compat for now: also set the locale +return b.abbr=a,null!=we[a]?(x("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),c=we[a]._config):null!=b.parentLocale&&(null!=we[b.parentLocale]?c=we[b.parentLocale]._config:x("parentLocaleUndefined","specified parentLocale is not defined yet. See http://momentjs.com/guides/#/warnings/parent-locale/")),we[a]=new B(A(c,b)),Za(a),we[a]} +// useful for testing +return delete we[a],null}function _a(a,b){if(null!=b){var c,d=ve; +// MERGE +null!=we[a]&&(d=we[a]._config),b=A(d,b),c=new B(b),c.parentLocale=we[a],we[a]=c, +// backwards compat for now: also set the locale +Za(a)}else +// pass null for config to unupdate, useful for tests +null!=we[a]&&(null!=we[a].parentLocale?we[a]=we[a].parentLocale:null!=we[a]&&delete we[a]);return we[a]} +// returns locale data +function ab(a){var b;if(a&&a._locale&&a._locale._abbr&&(a=a._locale._abbr),!a)return se;if(!c(a)){if(b=Ya(a))return b;a=[a]}return Xa(a)}function bb(){return rd(we)}function cb(a){var b,c=a._a;return c&&-2===l(a).overflow&&(b=c[Zd]<0||c[Zd]>11?Zd:c[$d]<1||c[$d]>da(c[Yd],c[Zd])?$d:c[_d]<0||c[_d]>24||24===c[_d]&&(0!==c[ae]||0!==c[be]||0!==c[ce])?_d:c[ae]<0||c[ae]>59?ae:c[be]<0||c[be]>59?be:c[ce]<0||c[ce]>999?ce:-1,l(a)._overflowDayOfYear&&(Yd>b||b>$d)&&(b=$d),l(a)._overflowWeeks&&-1===b&&(b=de),l(a)._overflowWeekday&&-1===b&&(b=ee),l(a).overflow=b),a} +// date from iso format +function db(a){var b,c,d,e,f,g,h=a._i,i=xe.exec(h)||ye.exec(h);if(i){for(l(a).iso=!0,b=0,c=Ae.length;c>b;b++)if(Ae[b][1].exec(i[1])){e=Ae[b][0],d=Ae[b][2]!==!1;break}if(null==e)return void(a._isValid=!1);if(i[3]){for(b=0,c=Be.length;c>b;b++)if(Be[b][1].exec(i[3])){ +// match[2] should be 'T' or space +f=(i[2]||" ")+Be[b][0];break}if(null==f)return void(a._isValid=!1)}if(!d&&null!=f)return void(a._isValid=!1);if(i[4]){if(!ze.exec(i[4]))return void(a._isValid=!1);g="Z"}a._f=e+(f||"")+(g||""),jb(a)}else a._isValid=!1} +// date from iso format or fallback +function eb(b){var c=Ce.exec(b._i);return null!==c?void(b._d=new Date(+c[1])):(db(b),void(b._isValid===!1&&(delete b._isValid,a.createFromInputFallback(b))))} +// Pick the first defined of two or three arguments. +function fb(a,b,c){return null!=a?a:null!=b?b:c}function gb(b){ +// hooks is actually the exported moment object +var c=new Date(a.now());return b._useUTC?[c.getUTCFullYear(),c.getUTCMonth(),c.getUTCDate()]:[c.getFullYear(),c.getMonth(),c.getDate()]} +// convert an array to a date. +// the array should mirror the parameters below +// note: all values past the year are optional and will default to the lowest possible value. +// [year, month, day , hour, minute, second, millisecond] +function hb(a){var b,c,d,e,f=[];if(!a._d){ +// Default to current date. +// * if no year, month, day of month are given, default to today +// * if day of month is given, default month and year +// * if month is given, default only year +// * if year is given, don't default anything +for(d=gb(a),a._w&&null==a._a[$d]&&null==a._a[Zd]&&ib(a),a._dayOfYear&&(e=fb(a._a[Yd],d[Yd]),a._dayOfYear>oa(e)&&(l(a)._overflowDayOfYear=!0),c=sa(e,0,a._dayOfYear),a._a[Zd]=c.getUTCMonth(),a._a[$d]=c.getUTCDate()),b=0;3>b&&null==a._a[b];++b)a._a[b]=f[b]=d[b]; +// Zero out whatever was not defaulted, including time +for(;7>b;b++)a._a[b]=f[b]=null==a._a[b]?2===b?1:0:a._a[b]; +// Check for 24:00:00.000 +24===a._a[_d]&&0===a._a[ae]&&0===a._a[be]&&0===a._a[ce]&&(a._nextDay=!0,a._a[_d]=0),a._d=(a._useUTC?sa:ra).apply(null,f), +// Apply timezone offset from input. The actual utcOffset can be changed +// with parseZone. +null!=a._tzm&&a._d.setUTCMinutes(a._d.getUTCMinutes()-a._tzm),a._nextDay&&(a._a[_d]=24)}}function ib(a){var b,c,d,e,f,g,h,i;b=a._w,null!=b.GG||null!=b.W||null!=b.E?(f=1,g=4,c=fb(b.GG,a._a[Yd],va(rb(),1,4).year),d=fb(b.W,1),e=fb(b.E,1),(1>e||e>7)&&(i=!0)):(f=a._locale._week.dow,g=a._locale._week.doy,c=fb(b.gg,a._a[Yd],va(rb(),f,g).year),d=fb(b.w,1),null!=b.d?(e=b.d,(0>e||e>6)&&(i=!0)):null!=b.e?(e=b.e+f,(b.e<0||b.e>6)&&(i=!0)):e=f),1>d||d>wa(c,f,g)?l(a)._overflowWeeks=!0:null!=i?l(a)._overflowWeekday=!0:(h=ua(c,d,e,f,g),a._a[Yd]=h.year,a._dayOfYear=h.dayOfYear)} +// date from string and format string +function jb(b){ +// TODO: Move this to another part of the creation flow to prevent circular deps +if(b._f===a.ISO_8601)return void db(b);b._a=[],l(b).empty=!0; +// This array is used to make a Date, either with `new Date` or `Date.UTC` +var c,d,e,f,g,h=""+b._i,i=h.length,j=0;for(e=X(b._f,b._locale).match(Bd)||[],c=0;c0&&l(b).unusedInput.push(g),h=h.slice(h.indexOf(d)+d.length),j+=d.length),Ed[f]?(d?l(b).empty=!1:l(b).unusedTokens.push(f),ca(f,d,b)):b._strict&&!d&&l(b).unusedTokens.push(f); +// add remaining unparsed input length to the string +l(b).charsLeftOver=i-j,h.length>0&&l(b).unusedInput.push(h), +// clear _12h flag if hour is <= 12 +b._a[_d]<=12&&l(b).bigHour===!0&&b._a[_d]>0&&(l(b).bigHour=void 0),l(b).parsedDateParts=b._a.slice(0),l(b).meridiem=b._meridiem, +// handle meridiem +b._a[_d]=kb(b._locale,b._a[_d],b._meridiem),hb(b),cb(b)}function kb(a,b,c){var d; +// Fallback +return null==c?b:null!=a.meridiemHour?a.meridiemHour(b,c):null!=a.isPM?(d=a.isPM(c),d&&12>b&&(b+=12),d||12!==b||(b=0),b):b} +// date from string and array of format strings +function lb(a){var b,c,d,e,f;if(0===a._f.length)return l(a).invalidFormat=!0,void(a._d=new Date(NaN));for(e=0;ef)&&(d=f,c=b));i(a,c||b)}function mb(a){if(!a._d){var b=K(a._i);a._a=g([b.year,b.month,b.day||b.date,b.hour,b.minute,b.second,b.millisecond],function(a){return a&&parseInt(a,10)}),hb(a)}}function nb(a){var b=new q(cb(ob(a))); +// Adding is smart enough around DST +return b._nextDay&&(b.add(1,"d"),b._nextDay=void 0),b}function ob(a){var b=a._i,d=a._f;return a._locale=a._locale||ab(a._l),null===b||void 0===d&&""===b?n({nullInput:!0}):("string"==typeof b&&(a._i=b=a._locale.preparse(b)),r(b)?new q(cb(b)):(c(d)?lb(a):f(b)?a._d=b:d?jb(a):pb(a),m(a)||(a._d=null),a))}function pb(b){var d=b._i;void 0===d?b._d=new Date(a.now()):f(d)?b._d=new Date(d.valueOf()):"string"==typeof d?eb(b):c(d)?(b._a=g(d.slice(0),function(a){return parseInt(a,10)}),hb(b)):"object"==typeof d?mb(b):"number"==typeof d? +// from milliseconds +b._d=new Date(d):a.createFromInputFallback(b)}function qb(a,b,f,g,h){var i={}; +// object construction must be done this way. +// https://github.com/moment/moment/issues/1423 +return"boolean"==typeof f&&(g=f,f=void 0),(d(a)&&e(a)||c(a)&&0===a.length)&&(a=void 0),i._isAMomentObject=!0,i._useUTC=i._isUTC=h,i._l=f,i._i=a,i._f=b,i._strict=g,nb(i)}function rb(a,b,c,d){return qb(a,b,c,d,!1)} +// Pick a moment m from moments so that m[fn](other) is true for all +// other. This relies on the function fn to be transitive. +// +// moments should either be an array of moment objects or an array, whose +// first element is an array of moment objects. +function sb(a,b){var d,e;if(1===b.length&&c(b[0])&&(b=b[0]),!b.length)return rb();for(d=b[0],e=1;ea?-1*Math.round(-1*a):Math.round(a)} +// FORMATTING +function yb(a,b){T(a,0,0,function(){var a=this.utcOffset(),c="+";return 0>a&&(a=-a,c="-"),c+S(~~(a/60),2)+b+S(~~a%60,2)})}function zb(a,b){var c=(b||"").match(a)||[],d=c[c.length-1]||[],e=(d+"").match(Ge)||["-",0,0],f=+(60*e[1])+t(e[2]);return"+"===e[0]?f:-f} +// Return a moment from input, that is local/utc/zone equivalent to model. +function Ab(b,c){var d,e; +// Use low-level api, because this fn is low-level api. +return c._isUTC?(d=c.clone(),e=(r(b)||f(b)?b.valueOf():rb(b).valueOf())-d.valueOf(),d._d.setTime(d._d.valueOf()+e),a.updateOffset(d,!1),d):rb(b).local()}function Bb(a){ +// On Firefox.24 Date#getTimezoneOffset returns a floating point. +// https://github.com/moment/moment/pull/1871 +return 15*-Math.round(a._d.getTimezoneOffset()/15)} +// MOMENTS +// keepLocalTime = true means only change the timezone, without +// affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> +// 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset +// +0200, so we adjust the time as needed, to be valid. +// +// Keeping the time actually adds/subtracts (one hour) +// from the actual represented time. That is why we call updateOffset +// a second time. In case it wants us to change the offset again +// _changeInProgress == true case, then we have to adjust, because +// there is no such time in the given timezone. +function Cb(b,c){var d,e=this._offset||0;return this.isValid()?null!=b?("string"==typeof b?b=zb(Td,b):Math.abs(b)<16&&(b=60*b),!this._isUTC&&c&&(d=Bb(this)),this._offset=b,this._isUTC=!0,null!=d&&this.add(d,"m"),e!==b&&(!c||this._changeInProgress?Sb(this,Nb(b-e,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,a.updateOffset(this,!0),this._changeInProgress=null)),this):this._isUTC?e:Bb(this):null!=b?this:NaN}function Db(a,b){return null!=a?("string"!=typeof a&&(a=-a),this.utcOffset(a,b),this):-this.utcOffset()}function Eb(a){return this.utcOffset(0,a)}function Fb(a){return this._isUTC&&(this.utcOffset(0,a),this._isUTC=!1,a&&this.subtract(Bb(this),"m")),this}function Gb(){if(this._tzm)this.utcOffset(this._tzm);else if("string"==typeof this._i){var a=zb(Sd,this._i);0===a?this.utcOffset(0,!0):this.utcOffset(zb(Sd,this._i))}return this}function Hb(a){return this.isValid()?(a=a?rb(a).utcOffset():0,(this.utcOffset()-a)%60===0):!1}function Ib(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Jb(){if(!o(this._isDSTShifted))return this._isDSTShifted;var a={};if(p(a,this),a=ob(a),a._a){var b=a._isUTC?j(a._a):rb(a._a);this._isDSTShifted=this.isValid()&&u(a._a,b.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function Kb(){return this.isValid()?!this._isUTC:!1}function Lb(){return this.isValid()?this._isUTC:!1}function Mb(){return this.isValid()?this._isUTC&&0===this._offset:!1}function Nb(a,b){var c,d,e,f=a, +// matching against regexp is expensive, do it on demand +g=null;// checks for null or undefined +return wb(a)?f={ms:a._milliseconds,d:a._days,M:a._months}:"number"==typeof a?(f={},b?f[b]=a:f.milliseconds=a):(g=He.exec(a))?(c="-"===g[1]?-1:1,f={y:0,d:t(g[$d])*c,h:t(g[_d])*c,m:t(g[ae])*c,s:t(g[be])*c,ms:t(xb(1e3*g[ce]))*c}):(g=Ie.exec(a))?(c="-"===g[1]?-1:1,f={y:Ob(g[2],c),M:Ob(g[3],c),w:Ob(g[4],c),d:Ob(g[5],c),h:Ob(g[6],c),m:Ob(g[7],c),s:Ob(g[8],c)}):null==f?f={}:"object"==typeof f&&("from"in f||"to"in f)&&(e=Qb(rb(f.from),rb(f.to)),f={},f.ms=e.milliseconds,f.M=e.months),d=new vb(f),wb(a)&&h(a,"_locale")&&(d._locale=a._locale),d}function Ob(a,b){ +// We'd normally use ~~inp for this, but unfortunately it also +// converts floats to ints. +// inp may be undefined, so careful calling replace on it. +var c=a&&parseFloat(a.replace(",",".")); +// apply sign while we're at it +return(isNaN(c)?0:c)*b}function Pb(a,b){var c={milliseconds:0,months:0};return c.months=b.month()-a.month()+12*(b.year()-a.year()),a.clone().add(c.months,"M").isAfter(b)&&--c.months,c.milliseconds=+b-+a.clone().add(c.months,"M"),c}function Qb(a,b){var c;return a.isValid()&&b.isValid()?(b=Ab(b,a),a.isBefore(b)?c=Pb(a,b):(c=Pb(b,a),c.milliseconds=-c.milliseconds,c.months=-c.months),c):{milliseconds:0,months:0}} +// TODO: remove 'name' arg after deprecation is removed +function Rb(a,b){return function(c,d){var e,f; +//invert the arguments, but complain about it +return null===d||isNaN(+d)||(x(b,"moment()."+b+"(period, number) is deprecated. Please use moment()."+b+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),f=c,c=d,d=f),c="string"==typeof c?+c:c,e=Nb(c,d),Sb(this,e,a),this}}function Sb(b,c,d,e){var f=c._milliseconds,g=xb(c._days),h=xb(c._months);b.isValid()&&(e=null==e?!0:e,f&&b._d.setTime(b._d.valueOf()+f*d),g&&P(b,"Date",O(b,"Date")+g*d),h&&ia(b,O(b,"Month")+h*d),e&&a.updateOffset(b,g||h))}function Tb(a,b){var c=a.diff(b,"days",!0);return-6>c?"sameElse":-1>c?"lastWeek":0>c?"lastDay":1>c?"sameDay":2>c?"nextDay":7>c?"nextWeek":"sameElse"}function Ub(b,c){ +// We want to compare the start of today, vs this. +// Getting start-of-today depends on whether we're local/utc/offset or not. +var d=b||rb(),e=Ab(d,this).startOf("day"),f=a.calendarFormat(this,e)||"sameElse",g=c&&(y(c[f])?c[f].call(this,d):c[f]);return this.format(g||this.localeData().calendar(f,this,rb(d)))}function Vb(){return new q(this)}function Wb(a,b){var c=r(a)?a:rb(a);return this.isValid()&&c.isValid()?(b=J(o(b)?"millisecond":b),"millisecond"===b?this.valueOf()>c.valueOf():c.valueOf()b-f?(c=a.clone().add(e-1,"months"),d=(b-f)/(f-c)):(c=a.clone().add(e+1,"months"),d=(b-f)/(c-f)),-(e+d)||0}function cc(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function dc(){var a=this.clone().utc();return 0f&&(b=f),Dc.call(this,a,b,c,d,e))}function Dc(a,b,c,d,e){var f=ua(a,b,c,d,e),g=sa(f.year,0,f.dayOfYear);return this.year(g.getUTCFullYear()),this.month(g.getUTCMonth()),this.date(g.getUTCDate()),this} +// MOMENTS +function Ec(a){return null==a?Math.ceil((this.month()+1)/3):this.month(3*(a-1)+this.month()%3)} +// HELPERS +// MOMENTS +function Fc(a){var b=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==a?b:this.add(a-b,"d")}function Gc(a,b){b[ce]=t(1e3*("0."+a))} +// MOMENTS +function Hc(){return this._isUTC?"UTC":""}function Ic(){return this._isUTC?"Coordinated Universal Time":""}function Jc(a){return rb(1e3*a)}function Kc(){return rb.apply(null,arguments).parseZone()}function Lc(a){return a}function Mc(a,b,c,d){var e=ab(),f=j().set(d,b);return e[c](f,a)}function Nc(a,b,c){if("number"==typeof a&&(b=a,a=void 0),a=a||"",null!=b)return Mc(a,b,c,"month");var d,e=[];for(d=0;12>d;d++)e[d]=Mc(a,d,c,"month");return e} +// () +// (5) +// (fmt, 5) +// (fmt) +// (true) +// (true, 5) +// (true, fmt, 5) +// (true, fmt) +function Oc(a,b,c,d){"boolean"==typeof a?("number"==typeof b&&(c=b,b=void 0),b=b||""):(b=a,c=b,a=!1,"number"==typeof b&&(c=b,b=void 0),b=b||"");var e=ab(),f=a?e._week.dow:0;if(null!=c)return Mc(b,(c+f)%7,d,"day");var g,h=[];for(g=0;7>g;g++)h[g]=Mc(b,(g+f)%7,d,"day");return h}function Pc(a,b){return Nc(a,b,"months")}function Qc(a,b){return Nc(a,b,"monthsShort")}function Rc(a,b,c){return Oc(a,b,c,"weekdays")}function Sc(a,b,c){return Oc(a,b,c,"weekdaysShort")}function Tc(a,b,c){return Oc(a,b,c,"weekdaysMin")}function Uc(){var a=this._data;return this._milliseconds=Ue(this._milliseconds),this._days=Ue(this._days),this._months=Ue(this._months),a.milliseconds=Ue(a.milliseconds),a.seconds=Ue(a.seconds),a.minutes=Ue(a.minutes),a.hours=Ue(a.hours),a.months=Ue(a.months),a.years=Ue(a.years),this}function Vc(a,b,c,d){var e=Nb(b,c);return a._milliseconds+=d*e._milliseconds,a._days+=d*e._days,a._months+=d*e._months,a._bubble()} +// supports only 2.0-style add(1, 's') or add(duration) +function Wc(a,b){return Vc(this,a,b,1)} +// supports only 2.0-style subtract(1, 's') or subtract(duration) +function Xc(a,b){return Vc(this,a,b,-1)}function Yc(a){return 0>a?Math.floor(a):Math.ceil(a)}function Zc(){var a,b,c,d,e,f=this._milliseconds,g=this._days,h=this._months,i=this._data; +// if we have a mix of positive and negative values, bubble down first +// check: https://github.com/moment/moment/issues/2166 +// The following code bubbles up values, see the tests for +// examples of what that means. +// convert days to months +// 12 months -> 1 year +return f>=0&&g>=0&&h>=0||0>=f&&0>=g&&0>=h||(f+=864e5*Yc(_c(h)+g),g=0,h=0),i.milliseconds=f%1e3,a=s(f/1e3),i.seconds=a%60,b=s(a/60),i.minutes=b%60,c=s(b/60),i.hours=c%24,g+=s(c/24),e=s($c(g)),h+=e,g-=Yc(_c(e)),d=s(h/12),h%=12,i.days=g,i.months=h,i.years=d,this}function $c(a){ +// 400 years have 146097 days (taking into account leap year rules) +// 400 years have 12 months === 4800 +return 4800*a/146097}function _c(a){ +// the reverse of daysToMonths +return 146097*a/4800}function ad(a){var b,c,d=this._milliseconds;if(a=J(a),"month"===a||"year"===a)return b=this._days+d/864e5,c=this._months+$c(b),"month"===a?c:c/12;switch(b=this._days+Math.round(_c(this._months)),a){case"week":return b/7+d/6048e5;case"day":return b+d/864e5;case"hour":return 24*b+d/36e5;case"minute":return 1440*b+d/6e4;case"second":return 86400*b+d/1e3; +// Math.floor prevents floating point math errors here +case"millisecond":return Math.floor(864e5*b)+d;default:throw new Error("Unknown unit "+a)}} +// TODO: Use this.as('ms')? +function bd(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*t(this._months/12)}function cd(a){return function(){return this.as(a)}}function dd(a){return a=J(a),this[a+"s"]()}function ed(a){return function(){return this._data[a]}}function fd(){return s(this.days()/7)} +// helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize +function gd(a,b,c,d,e){return e.relativeTime(b||1,!!c,a,d)}function hd(a,b,c){var d=Nb(a).abs(),e=jf(d.as("s")),f=jf(d.as("m")),g=jf(d.as("h")),h=jf(d.as("d")),i=jf(d.as("M")),j=jf(d.as("y")),k=e=f&&["m"]||f=g&&["h"]||g=h&&["d"]||h=i&&["M"]||i=j&&["y"]||["yy",j];return k[2]=b,k[3]=+a>0,k[4]=c,gd.apply(null,k)} +// This function allows you to set the rounding function for relative time strings +function id(a){return void 0===a?jf:"function"==typeof a?(jf=a,!0):!1} +// This function allows you to set a threshold for relative time strings +function jd(a,b){return void 0===kf[a]?!1:void 0===b?kf[a]:(kf[a]=b,!0)}function kd(a){var b=this.localeData(),c=hd(this,!a,b);return a&&(c=b.pastFuture(+this,c)),b.postformat(c)}function ld(){ +// for ISO strings we do not use the normal bubbling rules: +// * milliseconds bubble up until they become hours +// * days do not bubble at all +// * months bubble up until they become years +// This is because there is no context-free conversion between hours and days +// (think of clock changes) +// and also not between days and months (28-31 days per month) +var a,b,c,d=lf(this._milliseconds)/1e3,e=lf(this._days),f=lf(this._months);a=s(d/60),b=s(a/60),d%=60,a%=60,c=s(f/12),f%=12; +// inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js +var g=c,h=f,i=e,j=b,k=a,l=d,m=this.asSeconds();return m?(0>m?"-":"")+"P"+(g?g+"Y":"")+(h?h+"M":"")+(i?i+"D":"")+(j||k||l?"T":"")+(j?j+"H":"")+(k?k+"M":"")+(l?l+"S":""):"P0D"}var md,nd;nd=Array.prototype.some?Array.prototype.some:function(a){for(var b=Object(this),c=b.length>>>0,d=0;c>d;d++)if(d in b&&a.call(this,b[d],d,b))return!0;return!1}; +// Plugins that add properties should also add the key here (null value), +// so we can properly clone ourselves. +var od=a.momentProperties=[],pd=!1,qd={};a.suppressDeprecationWarnings=!1,a.deprecationHandler=null;var rd;rd=Object.keys?Object.keys:function(a){var b,c=[];for(b in a)h(a,b)&&c.push(b);return c};var sd,td={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},ud={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},vd="Invalid date",wd="%d",xd=/\d{1,2}/,yd={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},zd={},Ad={},Bd=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,Cd=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,Dd={},Ed={},Fd=/\d/,Gd=/\d\d/,Hd=/\d{3}/,Id=/\d{4}/,Jd=/[+-]?\d{6}/,Kd=/\d\d?/,Ld=/\d\d\d\d?/,Md=/\d\d\d\d\d\d?/,Nd=/\d{1,3}/,Od=/\d{1,4}/,Pd=/[+-]?\d{1,6}/,Qd=/\d+/,Rd=/[+-]?\d+/,Sd=/Z|[+-]\d\d:?\d\d/gi,Td=/Z|[+-]\d\d(?::?\d\d)?/gi,Ud=/[+-]?\d+(\.\d{1,3})?/,Vd=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,Wd={},Xd={},Yd=0,Zd=1,$d=2,_d=3,ae=4,be=5,ce=6,de=7,ee=8;sd=Array.prototype.indexOf?Array.prototype.indexOf:function(a){ +// I know +var b;for(b=0;b=a?""+a:"+"+a}),T(0,["YY",2],0,function(){return this.year()%100}),T(0,["YYYY",4],0,"year"),T(0,["YYYYY",5],0,"year"),T(0,["YYYYYY",6,!0],0,"year"), +// ALIASES +I("year","y"), +// PRIORITIES +L("year",1), +// PARSING +Y("Y",Rd),Y("YY",Kd,Gd),Y("YYYY",Od,Id),Y("YYYYY",Pd,Jd),Y("YYYYYY",Pd,Jd),aa(["YYYYY","YYYYYY"],Yd),aa("YYYY",function(b,c){c[Yd]=2===b.length?a.parseTwoDigitYear(b):t(b)}),aa("YY",function(b,c){c[Yd]=a.parseTwoDigitYear(b)}),aa("Y",function(a,b){b[Yd]=parseInt(a,10)}), +// HOOKS +a.parseTwoDigitYear=function(a){return t(a)+(t(a)>68?1900:2e3)}; +// MOMENTS +var ke=N("FullYear",!0); +// FORMATTING +T("w",["ww",2],"wo","week"),T("W",["WW",2],"Wo","isoWeek"), +// ALIASES +I("week","w"),I("isoWeek","W"), +// PRIORITIES +L("week",5),L("isoWeek",5), +// PARSING +Y("w",Kd),Y("ww",Kd,Gd),Y("W",Kd),Y("WW",Kd,Gd),ba(["w","ww","W","WW"],function(a,b,c,d){b[d.substr(0,1)]=t(a)});var le={dow:0,// Sunday is the first day of the week. +doy:6}; +// FORMATTING +T("d",0,"do","day"),T("dd",0,0,function(a){return this.localeData().weekdaysMin(this,a)}),T("ddd",0,0,function(a){return this.localeData().weekdaysShort(this,a)}),T("dddd",0,0,function(a){return this.localeData().weekdays(this,a)}),T("e",0,0,"weekday"),T("E",0,0,"isoWeekday"), +// ALIASES +I("day","d"),I("weekday","e"),I("isoWeekday","E"), +// PRIORITY +L("day",11),L("weekday",11),L("isoWeekday",11), +// PARSING +Y("d",Kd),Y("e",Kd),Y("E",Kd),Y("dd",function(a,b){return b.weekdaysMinRegex(a)}),Y("ddd",function(a,b){return b.weekdaysShortRegex(a)}),Y("dddd",function(a,b){return b.weekdaysRegex(a)}),ba(["dd","ddd","dddd"],function(a,b,c,d){var e=c._locale.weekdaysParse(a,d,c._strict); +// if we didn't get a weekday name, mark the date as invalid +null!=e?b.d=e:l(c).invalidWeekday=a}),ba(["d","e","E"],function(a,b,c,d){b[d]=t(a)}); +// LOCALES +var me="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),ne="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),oe="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),pe=Vd,qe=Vd,re=Vd;T("H",["HH",2],0,"hour"),T("h",["hh",2],0,Qa),T("k",["kk",2],0,Ra),T("hmm",0,0,function(){return""+Qa.apply(this)+S(this.minutes(),2)}),T("hmmss",0,0,function(){return""+Qa.apply(this)+S(this.minutes(),2)+S(this.seconds(),2)}),T("Hmm",0,0,function(){return""+this.hours()+S(this.minutes(),2)}),T("Hmmss",0,0,function(){return""+this.hours()+S(this.minutes(),2)+S(this.seconds(),2)}),Sa("a",!0),Sa("A",!1), +// ALIASES +I("hour","h"), +// PRIORITY +L("hour",13),Y("a",Ta),Y("A",Ta),Y("H",Kd),Y("h",Kd),Y("HH",Kd,Gd),Y("hh",Kd,Gd),Y("hmm",Ld),Y("hmmss",Md),Y("Hmm",Ld),Y("Hmmss",Md),aa(["H","HH"],_d),aa(["a","A"],function(a,b,c){c._isPm=c._locale.isPM(a),c._meridiem=a}),aa(["h","hh"],function(a,b,c){b[_d]=t(a),l(c).bigHour=!0}),aa("hmm",function(a,b,c){var d=a.length-2;b[_d]=t(a.substr(0,d)),b[ae]=t(a.substr(d)),l(c).bigHour=!0}),aa("hmmss",function(a,b,c){var d=a.length-4,e=a.length-2;b[_d]=t(a.substr(0,d)),b[ae]=t(a.substr(d,2)),b[be]=t(a.substr(e)),l(c).bigHour=!0}),aa("Hmm",function(a,b,c){var d=a.length-2;b[_d]=t(a.substr(0,d)),b[ae]=t(a.substr(d))}),aa("Hmmss",function(a,b,c){var d=a.length-4,e=a.length-2;b[_d]=t(a.substr(0,d)),b[ae]=t(a.substr(d,2)),b[be]=t(a.substr(e))});var se,te=/[ap]\.?m?\.?/i,ue=N("Hours",!0),ve={calendar:td,longDateFormat:ud,invalidDate:vd,ordinal:wd,ordinalParse:xd,relativeTime:yd,months:ge,monthsShort:he,week:le,weekdays:me,weekdaysMin:oe,weekdaysShort:ne,meridiemParse:te},we={},xe=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/,ye=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/,ze=/Z|[+-]\d\d(?::?\d\d)?/,Ae=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/], +// YYYYMM is NOT allowed by the standard +["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],Be=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],Ce=/^\/?Date\((\-?\d+)/i;a.createFromInputFallback=w("value provided is not in a recognized ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(a){a._d=new Date(a._i+(a._useUTC?" UTC":""))}), +// constant that refers to the ISO standard +a.ISO_8601=function(){};var De=w("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var a=rb.apply(null,arguments);return this.isValid()&&a.isValid()?this>a?this:a:n()}),Ee=w("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var a=rb.apply(null,arguments);return this.isValid()&&a.isValid()?a>this?this:a:n()}),Fe=function(){return Date.now?Date.now():+new Date};yb("Z",":"),yb("ZZ",""), +// PARSING +Y("Z",Td),Y("ZZ",Td),aa(["Z","ZZ"],function(a,b,c){c._useUTC=!0,c._tzm=zb(Td,a)}); +// HELPERS +// timezone chunker +// '+10:00' > ['10', '00'] +// '-1530' > ['-15', '30'] +var Ge=/([\+\-]|\d\d)/gi; +// HOOKS +// This function will be called whenever a moment is mutated. +// It is intended to keep the offset in sync with the timezone. +a.updateOffset=function(){}; +// ASP.NET json date format regex +var He=/^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,Ie=/^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;Nb.fn=vb.prototype;var Je=Rb(1,"add"),Ke=Rb(-1,"subtract");a.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",a.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var Le=w("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(a){return void 0===a?this.localeData():this.locale(a)}); +// FORMATTING +T(0,["gg",2],0,function(){return this.weekYear()%100}),T(0,["GG",2],0,function(){return this.isoWeekYear()%100}),xc("gggg","weekYear"),xc("ggggg","weekYear"),xc("GGGG","isoWeekYear"),xc("GGGGG","isoWeekYear"), +// ALIASES +I("weekYear","gg"),I("isoWeekYear","GG"), +// PRIORITY +L("weekYear",1),L("isoWeekYear",1), +// PARSING +Y("G",Rd),Y("g",Rd),Y("GG",Kd,Gd),Y("gg",Kd,Gd),Y("GGGG",Od,Id),Y("gggg",Od,Id),Y("GGGGG",Pd,Jd),Y("ggggg",Pd,Jd),ba(["gggg","ggggg","GGGG","GGGGG"],function(a,b,c,d){b[d.substr(0,2)]=t(a)}),ba(["gg","GG"],function(b,c,d,e){c[e]=a.parseTwoDigitYear(b)}), +// FORMATTING +T("Q",0,"Qo","quarter"), +// ALIASES +I("quarter","Q"), +// PRIORITY +L("quarter",7), +// PARSING +Y("Q",Fd),aa("Q",function(a,b){b[Zd]=3*(t(a)-1)}), +// FORMATTING +T("D",["DD",2],"Do","date"), +// ALIASES +I("date","D"), +// PRIOROITY +L("date",9), +// PARSING +Y("D",Kd),Y("DD",Kd,Gd),Y("Do",function(a,b){return a?b._ordinalParse:b._ordinalParseLenient}),aa(["D","DD"],$d),aa("Do",function(a,b){b[$d]=t(a.match(Kd)[0],10)}); +// MOMENTS +var Me=N("Date",!0); +// FORMATTING +T("DDD",["DDDD",3],"DDDo","dayOfYear"), +// ALIASES +I("dayOfYear","DDD"), +// PRIORITY +L("dayOfYear",4), +// PARSING +Y("DDD",Nd),Y("DDDD",Hd),aa(["DDD","DDDD"],function(a,b,c){c._dayOfYear=t(a)}), +// FORMATTING +T("m",["mm",2],0,"minute"), +// ALIASES +I("minute","m"), +// PRIORITY +L("minute",14), +// PARSING +Y("m",Kd),Y("mm",Kd,Gd),aa(["m","mm"],ae); +// MOMENTS +var Ne=N("Minutes",!1); +// FORMATTING +T("s",["ss",2],0,"second"), +// ALIASES +I("second","s"), +// PRIORITY +L("second",15), +// PARSING +Y("s",Kd),Y("ss",Kd,Gd),aa(["s","ss"],be); +// MOMENTS +var Oe=N("Seconds",!1); +// FORMATTING +T("S",0,0,function(){return~~(this.millisecond()/100)}),T(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),T(0,["SSS",3],0,"millisecond"),T(0,["SSSS",4],0,function(){return 10*this.millisecond()}),T(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),T(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),T(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),T(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),T(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}), +// ALIASES +I("millisecond","ms"), +// PRIORITY +L("millisecond",16), +// PARSING +Y("S",Nd,Fd),Y("SS",Nd,Gd),Y("SSS",Nd,Hd);var Pe;for(Pe="SSSS";Pe.length<=9;Pe+="S")Y(Pe,Qd);for(Pe="S";Pe.length<=9;Pe+="S")aa(Pe,Gc); +// MOMENTS +var Qe=N("Milliseconds",!1); +// FORMATTING +T("z",0,0,"zoneAbbr"),T("zz",0,0,"zoneName");var Re=q.prototype;Re.add=Je,Re.calendar=Ub,Re.clone=Vb,Re.diff=ac,Re.endOf=mc,Re.format=ec,Re.from=fc,Re.fromNow=gc,Re.to=hc,Re.toNow=ic,Re.get=Q,Re.invalidAt=vc,Re.isAfter=Wb,Re.isBefore=Xb,Re.isBetween=Yb,Re.isSame=Zb,Re.isSameOrAfter=$b,Re.isSameOrBefore=_b,Re.isValid=tc,Re.lang=Le,Re.locale=jc,Re.localeData=kc,Re.max=Ee,Re.min=De,Re.parsingFlags=uc,Re.set=R,Re.startOf=lc,Re.subtract=Ke,Re.toArray=qc,Re.toObject=rc,Re.toDate=pc,Re.toISOString=dc,Re.toJSON=sc,Re.toString=cc,Re.unix=oc,Re.valueOf=nc,Re.creationData=wc, +// Year +Re.year=ke,Re.isLeapYear=qa, +// Week Year +Re.weekYear=yc,Re.isoWeekYear=zc, +// Quarter +Re.quarter=Re.quarters=Ec, +// Month +Re.month=ja,Re.daysInMonth=ka, +// Week +Re.week=Re.weeks=Aa,Re.isoWeek=Re.isoWeeks=Ba,Re.weeksInYear=Bc,Re.isoWeeksInYear=Ac, +// Day +Re.date=Me,Re.day=Re.days=Ja,Re.weekday=Ka,Re.isoWeekday=La,Re.dayOfYear=Fc, +// Hour +Re.hour=Re.hours=ue, +// Minute +Re.minute=Re.minutes=Ne, +// Second +Re.second=Re.seconds=Oe, +// Millisecond +Re.millisecond=Re.milliseconds=Qe, +// Offset +Re.utcOffset=Cb,Re.utc=Eb,Re.local=Fb,Re.parseZone=Gb,Re.hasAlignedHourOffset=Hb,Re.isDST=Ib,Re.isLocal=Kb,Re.isUtcOffset=Lb,Re.isUtc=Mb,Re.isUTC=Mb, +// Timezone +Re.zoneAbbr=Hc,Re.zoneName=Ic, +// Deprecations +Re.dates=w("dates accessor is deprecated. Use date instead.",Me),Re.months=w("months accessor is deprecated. Use month instead",ja),Re.years=w("years accessor is deprecated. Use year instead",ke),Re.zone=w("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",Db),Re.isDSTShifted=w("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",Jb);var Se=Re,Te=B.prototype;Te.calendar=C,Te.longDateFormat=D,Te.invalidDate=E,Te.ordinal=F,Te.preparse=Lc,Te.postformat=Lc,Te.relativeTime=G,Te.pastFuture=H,Te.set=z, +// Month +Te.months=ea,Te.monthsShort=fa,Te.monthsParse=ha,Te.monthsRegex=ma,Te.monthsShortRegex=la, +// Week +Te.week=xa,Te.firstDayOfYear=za,Te.firstDayOfWeek=ya, +// Day of Week +Te.weekdays=Ea,Te.weekdaysMin=Ga,Te.weekdaysShort=Fa,Te.weekdaysParse=Ia,Te.weekdaysRegex=Ma,Te.weekdaysShortRegex=Na,Te.weekdaysMinRegex=Oa, +// Hours +Te.isPM=Ua,Te.meridiem=Va,Za("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(a){var b=a%10,c=1===t(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c}}), +// Side effect imports +a.lang=w("moment.lang is deprecated. Use moment.locale instead.",Za),a.langData=w("moment.langData is deprecated. Use moment.localeData instead.",ab);var Ue=Math.abs,Ve=cd("ms"),We=cd("s"),Xe=cd("m"),Ye=cd("h"),Ze=cd("d"),$e=cd("w"),_e=cd("M"),af=cd("y"),bf=ed("milliseconds"),cf=ed("seconds"),df=ed("minutes"),ef=ed("hours"),ff=ed("days"),gf=ed("months"),hf=ed("years"),jf=Math.round,kf={s:45,// seconds to minute +m:45,// minutes to hour +h:22,// hours to day +d:26,// days to month +M:11},lf=Math.abs,mf=vb.prototype;mf.abs=Uc,mf.add=Wc,mf.subtract=Xc,mf.as=ad,mf.asMilliseconds=Ve,mf.asSeconds=We,mf.asMinutes=Xe,mf.asHours=Ye,mf.asDays=Ze,mf.asWeeks=$e,mf.asMonths=_e,mf.asYears=af,mf.valueOf=bd,mf._bubble=Zc,mf.get=dd,mf.milliseconds=bf,mf.seconds=cf,mf.minutes=df,mf.hours=ef,mf.days=ff,mf.weeks=fd,mf.months=gf,mf.years=hf,mf.humanize=kd,mf.toISOString=ld,mf.toString=ld,mf.toJSON=ld,mf.locale=jc,mf.localeData=kc, +// Deprecations +mf.toIsoString=w("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",ld),mf.lang=Le, +// Side effect imports +// FORMATTING +T("X",0,0,"unix"),T("x",0,0,"valueOf"), +// PARSING +Y("x",Rd),Y("X",Ud),aa("X",function(a,b,c){c._d=new Date(1e3*parseFloat(a,10))}),aa("x",function(a,b,c){c._d=new Date(t(a))}), +// Side effect imports +a.version="2.15.1",b(rb),a.fn=Se,a.min=tb,a.max=ub,a.now=Fe,a.utc=j,a.unix=Jc,a.months=Pc,a.isDate=f,a.locale=Za,a.invalid=n,a.duration=Nb,a.isMoment=r,a.weekdays=Rc,a.parseZone=Kc,a.localeData=ab,a.isDuration=wb,a.monthsShort=Qc,a.weekdaysMin=Tc,a.defineLocale=$a,a.updateLocale=_a,a.locales=bb,a.weekdaysShort=Sc,a.normalizeUnits=J,a.relativeTimeRounding=id,a.relativeTimeThreshold=jd,a.calendarFormat=Tb,a.prototype=Se;var nf=a;return nf}); \ No newline at end of file diff --git a/mod/admin.php b/mod/admin.php index 547c37fb6..287eff272 100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -282,14 +282,14 @@ function admin_page_federation(&$a) { foreach ($platforms as $p) { // get a total count for the platform, the name and version of the // highest version and the protocol tpe - $c = q('SELECT COUNT(*) AS `total`, `platform`, `network`, `version` FROM `gserver` + $c = qu('SELECT COUNT(*) AS `total`, `platform`, `network`, `version` FROM `gserver` WHERE `platform` LIKE "%s" AND `last_contact` > `last_failure` AND `version` != "" ORDER BY `version` ASC;', $p); $total = $total + $c[0]['total']; // what versions for that platform do we know at all? // again only the active nodes - $v = q('SELECT COUNT(*) AS `total`, `version` FROM `gserver` + $v = qu('SELECT COUNT(*) AS `total`, `version` FROM `gserver` WHERE `last_contact` > `last_failure` AND `platform` LIKE "%s" AND `version` != "" GROUP BY `version` ORDER BY `version`;', $p); @@ -434,17 +434,17 @@ function admin_page_summary(&$a) { logger('accounts: '.print_r($accounts,true),LOGGER_DATA); - $r = q("SELECT COUNT(`id`) AS `count` FROM `register`"); + $r = qu("SELECT COUNT(`id`) AS `count` FROM `register`"); $pending = $r[0]['count']; - $r = q("SELECT COUNT(*) AS `total` FROM `deliverq` WHERE 1"); + $r = qu("SELECT COUNT(*) AS `total` FROM `deliverq` WHERE 1"); $deliverq = (($r) ? $r[0]['total'] : 0); - $r = q("SELECT COUNT(*) AS `total` FROM `queue` WHERE 1"); + $r = qu("SELECT COUNT(*) AS `total` FROM `queue` WHERE 1"); $queue = (($r) ? $r[0]['total'] : 0); if (get_config('system','worker')) { - $r = q("SELECT COUNT(*) AS `total` FROM `workerqueue` WHERE 1"); + $r = qu("SELECT COUNT(*) AS `total` FROM `workerqueue` WHERE 1"); $workerqueue = (($r) ? $r[0]['total'] : 0); } else { $workerqueue = 0; @@ -460,6 +460,7 @@ function admin_page_summary(&$a) { '$title' => t('Administration'), '$page' => t('Summary'), '$queues' => $queues, + '$workeractive' => get_config('system','worker'), '$users' => array(t('Registered users'), $users), '$accounts' => $accounts, '$pending' => array(t('Pending registrations'), $pending), @@ -549,7 +550,7 @@ function admin_page_site_post(&$a) { $users = q("SELECT `uid` FROM `user` WHERE `account_removed` = 0 AND `account_expired` = 0"); foreach ($users as $user) { - proc_run('php', 'include/notifier.php', 'relocate', $user['uid']); + proc_run(PRIORITY_HIGH, 'include/notifier.php', 'relocate', $user['uid']); } info("Relocation started. Could take a while to complete."); @@ -641,6 +642,7 @@ function admin_page_site_post(&$a) { $worker = ((x($_POST,'worker')) ? True : False); $worker_queues = ((x($_POST,'worker_queues')) ? intval($_POST['worker_queues']) : 4); $worker_dont_fork = ((x($_POST,'worker_dont_fork')) ? True : False); + $worker_fastlane = ((x($_POST,'worker_fastlane')) ? True : False); if($a->get_path() != "") $diaspora_enabled = false; @@ -790,6 +792,7 @@ function admin_page_site_post(&$a) { set_config('system','worker', $worker); set_config('system','worker_queues', $worker_queues); set_config('system','worker_dont_fork', $worker_dont_fork); + set_config('system','worker_fastlane', $worker_fastlane); if($rino==2 and !function_exists('mcrypt_create_iv')) { notice(t("RINO2 needs mcrypt php extension to work.")); @@ -817,7 +820,7 @@ function admin_page_site_post(&$a) { function admin_page_site(&$a) { /* Installed langs */ - $lang_choices = get_avaiable_languages(); + $lang_choices = get_available_languages(); if(strlen(get_config('system','directory_submit_url')) AND !strlen(get_config('system','directory'))) { @@ -1020,6 +1023,7 @@ function admin_page_site(&$a) { '$worker' => array('worker', t("Enable 'worker' background processing"), get_config('system','worker'), t("The worker background processing limits the number of parallel background jobs to a maximum number and respects the system load.")), '$worker_queues' => array('worker_queues', t("Maximum number of parallel workers"), get_config('system','worker_queues'), t("On shared hosters set this to 2. On larger systems, values of 10 are great. Default value is 4.")), '$worker_dont_fork' => array('worker_dont_fork', t("Don't use 'proc_open' with the worker"), get_config('system','worker_dont_fork'), t("Enable this if your system doesn't allow the use of 'proc_open'. This can happen on shared hosters. If this is enabled you should increase the frequency of poller calls in your crontab.")), + '$worker_fastlane' => array('worker_fastlane', t("Enable fastlane"), get_config('system','worker_fastlane'), t("When enabed, the fastlane mechanism starts an additional worker if processes with higher priority are blocked by processes of lower priority.")), '$form_security_token' => get_form_security_token("admin_site") @@ -1123,18 +1127,20 @@ function admin_page_dbsync(&$a) { * @param App $a */ function admin_page_users_post(&$a){ - $pending = (x($_POST, 'pending') ? $_POST['pending'] : array()); - $users = (x($_POST, 'user') ? $_POST['user'] : array()); - $nu_name = (x($_POST, 'new_user_name') ? $_POST['new_user_name'] : ''); - $nu_nickname = (x($_POST, 'new_user_nickname') ? $_POST['new_user_nickname'] : ''); - $nu_email = (x($_POST, 'new_user_email') ? $_POST['new_user_email'] : ''); + $pending = (x($_POST, 'pending') ? $_POST['pending'] : array()); + $users = (x($_POST, 'user') ? $_POST['user'] : array()); + $nu_name = (x($_POST, 'new_user_name') ? $_POST['new_user_name'] : ''); + $nu_nickname = (x($_POST, 'new_user_nickname') ? $_POST['new_user_nickname'] : ''); + $nu_email = (x($_POST, 'new_user_email') ? $_POST['new_user_email'] : ''); + $nu_language = get_config('system', 'language'); check_form_security_token_redirectOnErr('/admin/users', 'admin_users'); if(!($nu_name==="") && !($nu_email==="") && !($nu_nickname==="")) { require_once('include/user.php'); - $result = create_user(array('username'=>$nu_name, 'email'=>$nu_email, 'nickname'=>$nu_nickname, 'verified'=>1)); + $result = create_user(array('username'=>$nu_name, 'email'=>$nu_email, + 'nickname'=>$nu_nickname, 'verified'=>1, 'language'=>$nu_language)); if(! $result['success']) { notice($result['message']); return; @@ -1265,7 +1271,7 @@ function admin_page_users(&$a){ /* get users */ - $total = q("SELECT COUNT(*) AS `total` FROM `user` WHERE 1"); + $total = qu("SELECT COUNT(*) AS `total` FROM `user` WHERE 1"); if(count($total)) { $a->set_pager_total($total[0]['total']); $a->set_pager_itemspage(100); @@ -1273,14 +1279,14 @@ function admin_page_users(&$a){ /* ordering */ $valid_orders = array( - 'contact.name', + 'contact.name', 'user.email', 'user.register_date', 'user.login_date', - 'lastitem.lastitem_date', + 'lastitem_date', 'user.page-flags' ); - + $order = "contact.name"; $order_direction = "+"; if (x($_GET,'o')){ @@ -1289,38 +1295,28 @@ function admin_page_users(&$a){ $order_direction = "-"; $new_order = substr($new_order,1); } - + if (in_array($new_order, $valid_orders)){ $order = $new_order; } if (x($_GET,'d')){ $new_direction = $_GET['d']; - } } $sql_order = "`".str_replace('.','`.`',$order)."`"; $sql_order_direction = ($order_direction==="+")?"ASC":"DESC"; - - $users = q("SELECT `user`.* , `contact`.`name` , `contact`.`url` , `contact`.`micro`, `lastitem`.`lastitem_date`, `user`.`account_expired` - FROM - (SELECT MAX(`item`.`changed`) as `lastitem_date`, `item`.`uid` - FROM `item` - WHERE `item`.`type` = 'wall' - GROUP BY `item`.`uid`) AS `lastitem` - RIGHT OUTER JOIN `user` ON `user`.`uid` = `lastitem`.`uid`, - `contact` - WHERE - `user`.`uid` = `contact`.`uid` - AND `user`.`verified` =1 - AND `contact`.`self` =1 - ORDER BY $sql_order $sql_order_direction LIMIT %d, %d - ", + + $users = qu("SELECT `user`.*, `contact`.`name`, `contact`.`url`, `contact`.`micro`, `user`.`account_expired`, `contact`.`last-item` AS `lastitem_date` + FROM `user` + INNER JOIN `contact` ON `contact`.`uid` = `user`.`uid` AND `contact`.`self` + WHERE `user`.`verified` + ORDER BY $sql_order $sql_order_direction LIMIT %d, %d", intval($a->pager['start']), intval($a->pager['itemspage']) ); - + //echo "
      $users"; killme();
      -				
      +
       	$adminlist = explode(",", str_replace(" ", "", $a->config['admin_email']));
       	$_setup_users = function ($e) use ($adminlist){
       		$accounts = array(
      @@ -1864,6 +1860,12 @@ function admin_page_logs(&$a){
       		LOGGER_DATA	=> 'Data',
       		LOGGER_ALL	=> 'All'
       	);
      +	
      +	if (ini_get('log_errors')) {
      +		$phplogenabled = t('PHP log currently enabled.');
      +	} else {
      +		$phplogenabled = t('PHP log currently disabled.');
      +	}
       
       	$t = get_markup_template("admin_logs.tpl");
       
      @@ -1884,6 +1886,7 @@ function admin_page_logs(&$a){
       		'$phpheader' => t("PHP logging"),
       		'$phphint' => t("To enable logging of PHP errors and warnings you can add the following to the .htconfig.php file of your installation. The filename set in the 'error_log' line is relative to the friendica top-level directory and must be writeable by the web server. The option '1' for 'log_errors' and 'display_errors' is to enable these options, set to '0' to disable them."),
       		'$phplogcode' => "error_reporting(E_ERROR | E_WARNING | E_PARSE);\nini_set('error_log','php.out');\nini_set('log_errors','1');\nini_set('display_errors', '1');",
      +		'$phplogenabled' => $phplogenabled,
       	));
       }
       
      diff --git a/mod/allfriends.php b/mod/allfriends.php
      index 498b9d7db..03f78e696 100644
      --- a/mod/allfriends.php
      +++ b/mod/allfriends.php
      @@ -76,7 +76,7 @@ function allfriends_content(&$a) {
       			'details'	=> $contact_details['location'],
       			'tags'		=> $contact_details['keywords'],
       			'about'		=> $contact_details['about'],
      -			'account_type'	=> (($contact_details['community']) ? t('Forum') : ''),
      +			'account_type'	=> account_type($contact_details),
       			'network'	=> network_to_name($contact_details['network'], $contact_details['url']),
       			'photo_menu'	=> $photo_menu,
       			'conntxt'	=> t('Connect'),
      diff --git a/mod/cal.php b/mod/cal.php
      new file mode 100644
      index 000000000..3a229ebad
      --- /dev/null
      +++ b/mod/cal.php
      @@ -0,0 +1,337 @@
      +argc > 1)
      +		auto_redir($a, $a->argv[1]);
      +
      +	if((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
      +		return;
      +	}
      +
      +	nav_set_selected('events');
      +
      +	$o = '';
      +
      +	if($a->argc > 1) {
      +		$nick = $a->argv[1];
      +		$user = q("SELECT * FROM `user` WHERE `nickname` = '%s' AND `blocked` = 0 LIMIT 1",
      +			dbesc($nick)
      +		);
      +
      +		if(! count($user))
      +			return;
      +
      +		$a->data['user'] = $user[0];
      +		$a->profile_uid = $user[0]['uid'];
      +
      +		// if it's a json request abort here becaus we don't
      +		// need the widget data
      +		if ($a->argv[2] === 'json')
      +			return;
      +
      +		$profile = get_profiledata_by_nick($nick, $a->profile_uid);
      +
      +		$account_type = account_type($profile);
      +
      +		$tpl = get_markup_template("vcard-widget.tpl");
      +
      +		$vcard_widget .= replace_macros($tpl, array(
      +			'$name' => $profile['name'],
      +			'$photo' => $profile['photo'],
      +			'$addr' => (($profile['addr'] != "") ? $profile['addr'] : ""),
      +			'$account_type' => $account_type,
      +			'$pdesc' => (($profile['pdesc'] != "") ? $profile['pdesc'] : ""),
      +		));
      +
      +		$cal_widget = widget_events();
      +
      +		if(! x($a->page,'aside'))
      +			$a->page['aside'] = '';
      +
      +		$a->page['aside'] .= $vcard_widget;
      +		$a->page['aside'] .= $cal_widget;
      +	}
      +
      +	return;
      +}
      +
      +function cal_content(&$a) {
      +	nav_set_selected('events');
      +
      +	$editselect = 'none';
      +	if( feature_enabled(local_user(), 'richtext') )
      +		$editselect = 'textareas';
      +
      +	// First day of the week (0 = Sunday)
      +	$firstDay = get_pconfig(local_user(),'system','first_day_of_week');
      +	if ($firstDay === false) $firstDay=0;
      +
      +	// get the translation strings for the callendar
      +	$i18n = get_event_strings();
      +
      +	$htpl = get_markup_template('event_head.tpl');
      +	$a->page['htmlhead'] .= replace_macros($htpl,array(
      +		'$baseurl' => $a->get_baseurl(),
      +		'$module_url' => '/cal/' . $a->data['user']['nickname'],
      +		'$modparams' => 2,
      +		'$i18n' => $i18n,
      +		'$editselect' => $editselect
      +	));
      +
      +	$etpl = get_markup_template('event_end.tpl');
      +	$a->page['end'] .= replace_macros($etpl,array(
      +		'$baseurl' => $a->get_baseurl(),
      +		'$editselect' => $editselect
      +	));
      +
      +	$o ="";
      +
      +	$mode = 'view';
      +	$y = 0;
      +	$m = 0;
      +	$ignored = ((x($_REQUEST,'ignored')) ? intval($_REQUEST['ignored']) : 0);
      +
      +	if($a->argc == 4) {
      +		if($a->argv[2] == 'export') {
      +			$mode = 'export';
      +			$format = $a->argv[3];
      +		}
      +	}
      +
      +	//
      +	// Setup permissions structures
      +	//
      +
      +	$contact = null;
      +	$remote_contact = false;
      +	$contact_id = 0;
      +
      +	$owner_uid = $a->data['user']['uid'];
      +	$nick = $a->data['user']['nickname'];
      +
      +	if(is_array($_SESSION['remote'])) {
      +		foreach($_SESSION['remote'] as $v) {
      +			if($v['uid'] == $a->profile['profile_uid']) {
      +				$contact_id = $v['cid'];
      +				break;
      +			}
      +		}
      +	}
      +	if($contact_id) {
      +		$groups = init_groups_visitor($contact_id);
      +		$r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1",
      +			intval($contact_id),
      +			intval($a->profile['profile_uid'])
      +		);
      +		if(count($r)) {
      +			$contact = $r[0];
      +			$remote_contact = true;
      +		}
      +	}
      +	if(! $remote_contact) {
      +		if(local_user()) {
      +			$contact_id = $_SESSION['cid'];
      +			$contact = $a->contact;
      +		}
      +	}
      +	$is_owner = ((local_user()) && (local_user() == $a->profile['profile_uid']) ? true : false);
      +
      +	if($a->profile['hidewall'] && (! $is_owner) && (! $remote_contact)) {
      +		notice( t('Access to this profile has been restricted.') . EOL);
      +		return;
      +	}
      +
      +	// get the permissions
      +	$sql_perms = item_permissions_sql($owner_uid,$remote_contact,$groups);
      +	// we only want to have the events of the profile owner
      +	$sql_extra = " AND `event`.`cid` = 0 " . $sql_perms;
      +
      +	// get the tab navigation bar
      +	$tabs .= profile_tabs($a,false, $a->data['user']['nickname']);
      +
      +	// The view mode part is similiar to /mod/events.php
      +	if($mode == 'view') {
      +
      +
      +		$thisyear = datetime_convert('UTC',date_default_timezone_get(),'now','Y');
      +		$thismonth = datetime_convert('UTC',date_default_timezone_get(),'now','m');
      +		if(! $y)
      +			$y = intval($thisyear);
      +		if(! $m)
      +			$m = intval($thismonth);
      +
      +		// Put some limits on dates. The PHP date functions don't seem to do so well before 1900.
      +		// An upper limit was chosen to keep search engines from exploring links millions of years in the future.
      +
      +		if($y < 1901)
      +			$y = 1900;
      +		if($y > 2099)
      +			$y = 2100;
      +
      +		$nextyear = $y;
      +		$nextmonth = $m + 1;
      +		if($nextmonth > 12) {
      +				$nextmonth = 1;
      +			$nextyear ++;
      +		}
      +
      +		$prevyear = $y;
      +		if($m > 1)
      +			$prevmonth = $m - 1;
      +		else {
      +			$prevmonth = 12;
      +			$prevyear --;
      +		}
      +
      +		$dim    = get_dim($y,$m);
      +		$start  = sprintf('%d-%d-%d %d:%d:%d',$y,$m,1,0,0,0);
      +		$finish = sprintf('%d-%d-%d %d:%d:%d',$y,$m,$dim,23,59,59);
      +
      +
      +		if ($a->argv[2] === 'json'){
      +			if (x($_GET,'start'))	$start = $_GET['start'];
      +			if (x($_GET,'end'))	$finish = $_GET['end'];
      +		}
      +
      +		$start  = datetime_convert('UTC','UTC',$start);
      +		$finish = datetime_convert('UTC','UTC',$finish);
      +
      +		$adjust_start = datetime_convert('UTC', date_default_timezone_get(), $start);
      +		$adjust_finish = datetime_convert('UTC', date_default_timezone_get(), $finish);
      +
      +		// put the event parametes in an array so we can better transmit them
      +		$event_params = array(
      +			'event_id' => (x($_GET,'id') ? $_GET["id"] : 0),
      +			'start' => $start,
      +			'finish' => $finish,
      +			'adjust_start' => $adjust_start,
      +			'adjust_finish' => $adjust_finish,
      +			'ignored' => $ignored,
      +		);
      +
      +		// get events by id or by date
      +		if (x($_GET,'id')){
      +			$r = event_by_id($owner_uid, $event_params, $sql_extra);
      +		} else {
      +			$r = events_by_date($owner_uid, $event_params, $sql_extra);
      +		}
      +
      +		$links = array();
      +
      +		if(count($r)) {
      +			$r = sort_by_date($r);
      +			foreach($r as $rr) {
      +				$j = (($rr['adjust']) ? datetime_convert('UTC',date_default_timezone_get(),$rr['start'], 'j') : datetime_convert('UTC','UTC',$rr['start'],'j'));
      +				if(! x($links,$j))
      +					$links[$j] = $a->get_baseurl() . '/' . $a->cmd . '#link-' . $j;
      +			}
      +		}
      +
      +
      +		$events=array();
      +
      +		// transform the event in a usable array
      +		if(count($r))
      +			$r = sort_by_date($r);
      +			$events = process_events($r);
      +
      +		if ($a->argv[2] === 'json'){
      +			echo json_encode($events); killme();
      +		}
      +
      +		// links: array('href', 'text', 'extra css classes', 'title')
      +		if (x($_GET,'id')){
      +			$tpl =  get_markup_template("event.tpl");
      +		} else {
      +//			if (get_config('experimentals','new_calendar')==1){
      +				$tpl = get_markup_template("events_js.tpl");
      +//			} else {
      +//				$tpl = get_markup_template("events.tpl");
      +//			}
      +		}
      +
      +		// Get rid of dashes in key names, Smarty3 can't handle them
      +		foreach($events as $key => $event) {
      +			$event_item = array();
      +			foreach($event['item'] as $k => $v) {
      +				$k = str_replace('-','_',$k);
      +				$event_item[$k] = $v;
      +			}
      +			$events[$key]['item'] = $event_item;
      +		}
      +
      +		$o = replace_macros($tpl, array(
      +			'$baseurl'	=> $a->get_baseurl(),
      +			'$tabs'		=> $tabs,
      +			'$title'	=> t('Events'),
      +			'$view'		=> t('View'),
      +			'$previus'	=> array($a->get_baseurl()."/events/$prevyear/$prevmonth",t('Previous'),'',''),
      +			'$next'		=> array($a->get_baseurl()."/events/$nextyear/$nextmonth",t('Next'),'',''),
      +			'$calendar' => cal($y,$m,$links, ' eventcal'),
      +
      +			'$events'	=> $events,
      +
      +			"today" => t("today"),
      +			"month" => t("month"),
      +			"week" => t("week"),
      +			"day" => t("day"),
      +			"list" => t("list"),
      +		));
      +
      +		if (x($_GET,'id')){ echo $o; killme(); }
      +
      +		return $o;
      +	}
      +
      +	if($mode == 'export') {
      +		if(! (intval($owner_uid))) {
      +			notice( t('User not found'));
      +			return;
      +		}
      +
      +		// Test permissions
      +		// Respect the export feature setting for all other /cal pages if it's not the own profile
      +		if( ((local_user() !== intval($owner_uid))) && ! feature_enabled($owner_uid, "export_calendar")) {
      +			notice( t('Permission denied.') . EOL);
      +			goaway('cal/' . $nick);
      +		}
      +
      +		// Get the export data by uid
      +		$evexport = event_export($owner_uid, $format);
      +
      +		if (!$evexport["success"]) {
      +			if($evexport["content"])
      +				notice( t('This calendar format is not supported') );
      +			else
      +				notice( t('No exportable data found'));
      +
      +			// If it the own calendar return to the events page
      +			// otherwise to the profile calendar page
      +			if (local_user() === intval($owner_uid))
      +				$return_path = "events";
      +			else
      +				$returnpath = "cal/".$nick;
      +
      +			goaway($return_path);
      +		}
      +
      +		// If nothing went wrong we can echo the export content
      +		if ($evexport["success"]) {
      +			header('Content-type: text/calendar');
      +			header('content-disposition: attachment; filename="' . t('calendar') . '-' . $nick . '.' . $evexport["extension"] . '"' );
      +			echo $evexport["content"];
      +			killme();
      +		}
      +
      +		return;
      +	}
      +}
      diff --git a/mod/common.php b/mod/common.php
      index 9b2c69f6d..063eafe67 100644
      --- a/mod/common.php
      +++ b/mod/common.php
      @@ -120,7 +120,7 @@ function common_content(&$a) {
       			'details'	=> $contact_details['location'],
       			'tags'		=> $contact_details['keywords'],
       			'about'		=> $contact_details['about'],
      -			'account_type'	=> (($contact_details['community']) ? t('Forum') : ''),
      +			'account_type'	=> account_type($contact_details),
       			'network'	=> network_to_name($contact_details['network'], $contact_details['url']),
       			'photo_menu'	=> $photo_menu,
       			'id'		=> ++$id,
      diff --git a/mod/community.php b/mod/community.php
      index a83bd39ec..c8d1e0c9d 100644
      --- a/mod/community.php
      +++ b/mod/community.php
      @@ -49,7 +49,7 @@ function community_content(&$a, $update = 0) {
       	// OR your own posts if you are a logged in member
       
       	if(get_config('system', 'old_pager')) {
      -		$r = q("SELECT COUNT(distinct(`item`.`uri`)) AS `total`
      +		$r = qu("SELECT COUNT(distinct(`item`.`uri`)) AS `total`
       			FROM `item` INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
       			AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
       			INNER JOIN `user` ON `user`.`uid` = `item`.`uid` AND `user`.`hidewall` = 0
      @@ -120,19 +120,17 @@ function community_getitems($start, $itemspage) {
       	if (get_config('system','community_page_style') == CP_GLOBAL_COMMUNITY)
       		return(community_getpublicitems($start, $itemspage));
       
      -	$r = q("SELECT %s, %s, `user`.`nickname`
      +	$r = qu("SELECT %s
       		FROM `thread` FORCE INDEX (`wall_private_received`)
       		INNER JOIN `user` ON `user`.`uid` = `thread`.`uid` AND NOT `user`.`hidewall`
       		INNER JOIN `item` ON `item`.`id` = `thread`.`iid`
       		AND `item`.`allow_cid` = ''  AND `item`.`allow_gid` = ''
       		AND `item`.`deny_cid`  = '' AND `item`.`deny_gid`  = ''
      -		INNER JOIN `contact` ON `contact`.`id` = `thread`.`contact-id`
      -		AND %s AND `contact`.`self`
      +		%s AND `contact`.`self`
       		WHERE `thread`.`visible` AND NOT `thread`.`deleted` AND NOT `thread`.`moderated`
       		AND NOT `thread`.`private` AND `thread`.`wall`
       		ORDER BY `thread`.`received` DESC LIMIT %d, %d",
      -		item_fieldlist(), contact_fieldlist(),
      -		contact_condition(),
      +		item_fieldlists(), item_joins(),
       		intval($start), intval($itemspage)
       	);
       
      @@ -142,14 +140,13 @@ function community_getitems($start, $itemspage) {
       
       function community_getpublicitems($start, $itemspage) {
       
      -	$r = q("SELECT %s, `author-name` AS `name`, `owner-avatar` AS `photo`,
      -			`owner-link` AS `url`, `owner-avatar` AS `thumb`
      +	$r = qu("SELECT %s
       		FROM `thread`
      -		INNER JOIN `item` ON `item`.`id` = `thread`.`iid`
      +		INNER JOIN `item` ON `item`.`id` = `thread`.`iid` %s
       		WHERE `thread`.`uid` = 0
       		ORDER BY `thread`.`created` DESC LIMIT %d, %d",
      -		item_fieldlist(), intval($start),
      -		intval($itemspage)
      +		item_fieldlists(), item_joins(),
      +		intval($start), intval($itemspage)
       	);
       
       	return($r);
      diff --git a/mod/contacts.php b/mod/contacts.php
      index 3d8b44b71..23907669a 100644
      --- a/mod/contacts.php
      +++ b/mod/contacts.php
      @@ -38,7 +38,7 @@ function contacts_init(&$a) {
       
       			if (($a->data['contact']['network'] != "") AND ($a->data['contact']['network'] != NETWORK_DFRN)) {
       				$networkname = format_network_name($a->data['contact']['network'],$a->data['contact']['url']);
      -			} else 
      +			} else
       				$networkname = '';
       
       			$vcard_widget = replace_macros(get_markup_template("vcard-widget.tpl"),array(
      @@ -48,7 +48,7 @@ function contacts_init(&$a) {
       				'$addr' => (($a->data['contact']['addr'] != "") ? ($a->data['contact']['addr']) : ""),
       				'$network_name' => $networkname,
       				'$network' => t('Network:'),
      -				'account_type' => (($a->data['contact']['forum'] || $a->data['contact']['prv']) ? t('Forum') : '')
      +				'$account_type' => account_type($a->data['contact'])
       			));
       			$finpeople_widget = '';
       			$follow_widget = '';
      @@ -237,7 +237,7 @@ function _contact_update($contact_id) {
       				intval($contact_id));
       	} else
       		// pull feed and consume it, which should subscribe to the hub.
      -		proc_run('php',"include/onepoll.php","$contact_id", "force");
      +		proc_run(PRIORITY_HIGH, "include/onepoll.php", $contact_id, "force");
       }
       
       function _contact_update_profile($contact_id) {
      @@ -434,7 +434,8 @@ function contacts_content(&$a) {
       				$a->page['aside'] = '';
       
       				return replace_macros(get_markup_template('contact_drop_confirm.tpl'), array(
      -					'$contact' =>  _contact_detail_for_template($orig_record[0]),
      +					'$header' => t('Drop contact'),
      +					'$contact' => _contact_detail_for_template($orig_record[0]),
       					'$method' => 'get',
       					'$message' => t('Do you really want to delete this contact?'),
       					'$extra_inputs' => $inputs,
      @@ -571,6 +572,7 @@ function contacts_content(&$a) {
       
       		$o .= replace_macros($tpl, array(
       			//'$header' => t('Contact Editor'),
      +			'$header' => t("Contact"),
       			'$tab_str' => $tab_str,
       			'$submit' => t('Submit'),
       			'$lbl_vis1' => t('Profile Visibility'),
      @@ -604,6 +606,7 @@ function contacts_content(&$a) {
       			'$ignore_text' => (($contact['readonly']) ? t('Unignore') : t('Ignore') ),
       			'$insecure' => (($contact['network'] !== NETWORK_DFRN && $contact['network'] !== NETWORK_MAIL && $contact['network'] !== NETWORK_FACEBOOK && $contact['network'] !== NETWORK_DIASPORA) ? $insecure : ''),
       			'$info' => $contact['info'],
      +			'$cinfo' => array('info', '', $contact['info'], ''),
       			'$blocked' => (($contact['blocked']) ? t('Currently blocked') : ''),
       			'$ignored' => (($contact['readonly']) ? t('Currently ignored') : ''),
       			'$archived' => (($contact['archive']) ? t('Currently archived') : ''),
      @@ -620,8 +623,11 @@ function contacts_content(&$a) {
       			'$url' => $url,
       			'$profileurllabel' => t('Profile URL'),
       			'$profileurl' => $contact['url'],
      +			'$account_type' => account_type($contact),
       			'$location' => bbcode($contact["location"]),
       			'$location_label' => t("Location:"),
      +			'$xmpp' => bbcode($contact["xmpp"]),
      +			'$xmpp_label' => t("XMPP:"),
       			'$about' => bbcode($contact["about"], false, false),
       			'$about_label' => t("About:"),
       			'$keywords' => $contact["keywords"],
      @@ -630,6 +636,7 @@ function contacts_content(&$a) {
       			'$contact_actions' => $contact_actions,
       			'$contact_status' => t("Status"),
       			'$contact_settings_label' => t('Contact Settings'),
      +			'$contact_profile_label' => t("Profile"),
       
       		));
       
      @@ -800,6 +807,7 @@ function contacts_content(&$a) {
       			"contacts_batch_archive" => t('Archive')."/".t("Unarchive"),
       			"contacts_batch_drop" => t('Delete'),
       		),
      +		'$h_batch_actions' => t('Batch Actions'),
       		'$paginate' => paginate($a),
       
       	));
      @@ -902,8 +910,6 @@ function contact_posts($a, $contact_id) {
       
       function _contact_detail_for_template($rr){
       
      -	$community = '';
      -
       	switch($rr['rel']) {
       		case CONTACT_IS_FRIEND:
       			$dir_icon = 'images/lrarrow.gif';
      @@ -929,11 +935,6 @@ function _contact_detail_for_template($rr){
       		$sparkle = '';
       	}
       
      -	//test if contact is a forum page
      -	if (isset($rr['forum']) OR isset($rr['prv']))
      -				$community = ($rr['forum'] OR $rr['prv']);
      -
      -
       	return array(
       		'img_hover' => sprintf( t('Visit %s\'s profile [%s]'),$rr['name'],$rr['url']),
       		'edit_hover' => t('Edit contact'),
      @@ -944,7 +945,7 @@ function _contact_detail_for_template($rr){
       		'thumb' => proxy_url($rr['thumb'], false, PROXY_SIZE_THUMB),
       		'name' => htmlentities($rr['name']),
       		'username' => htmlentities($rr['name']),
      -		'account_type' => ($community ? t('Forum') : ''),
      +		'account_type' => account_type($rr),
       		'sparkle' => $sparkle,
       		'itemurl' => (($rr['addr'] != "") ? $rr['addr'] : $rr['url']),
       		'url' => $url,
      diff --git a/mod/content.php b/mod/content.php
      index 54d499d40..c4b1f2f68 100644
      --- a/mod/content.php
      +++ b/mod/content.php
      @@ -224,7 +224,7 @@ function content_content(&$a, $update = 0) {
       			$simple_update
       			AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
       			$sql_extra $sql_nets
      -			ORDER BY `item`.`received` DESC $pager_sql ",
      +			ORDER BY `item`.`id` DESC $pager_sql ",
       			intval($_SESSION['uid'])
       		);
       
      diff --git a/mod/crepair.php b/mod/crepair.php
      index 5b4db09da..3abbe343b 100644
      --- a/mod/crepair.php
      +++ b/mod/crepair.php
      @@ -24,7 +24,7 @@ function crepair_init(&$a) {
       
       	if($contact_id) {
       		$a->data['contact'] = $r[0];
      -                $contact = $r[0];
      +		$contact = $r[0];
       		profile_load($a, "", 0, get_contact_details_by_url($contact["url"]));
       	}
       }
      @@ -150,15 +150,9 @@ function crepair_content(&$a) {
       		'$return'	=> t('Return to contact editor'),
       		'$update_profile' => update_profile,
       		'$udprofilenow' => t('Refetch contact data'),
      -		'$label_name' => t('Name'),
      -		'$label_nick' => t('Account Nickname'),
      -		'$label_attag' => t('@Tagname - overrides Name/Nickname'),
      -		'$label_url' => t('Account URL'),
      -		'$label_request' => t('Friend Request URL'),
      -		'$label_confirm' => t('Friend Confirm URL'),
      -		'$label_notify' => t('Notification Endpoint URL'),
      -		'$label_poll' => t('Poll/Feed URL'),
      -		'$label_photo' => t('New photo from this URL'),
      +		'$contact_id'	=> $contact['id'],
      +		'$lbl_submit'	=> t('Submit'),
      +
       		'$label_remote_self' => t('Remote Self'),
       		'$allow_remote_self' => $allow_remote_self,
       		'$remote_self' => array('remote_self',
      @@ -167,16 +161,16 @@ function crepair_content(&$a) {
       					t('Mark this contact as remote_self, this will cause friendica to repost new entries from this contact.'),
       					$remote_self_options
       				),
      -		'$contact_name' => htmlentities($contact['name']),
      -		'$contact_nick' => htmlentities($contact['nick']),
      -		'$contact_id'   => $contact['id'],
      -		'$contact_url'  => $contact['url'],
      -		'$request'      => $contact['request'],
      -		'$confirm'      => $contact['confirm'],
      -		'$notify'       => $contact['notify'],
      -		'$poll'         => $contact['poll'],
      -		'$contact_attag'  => $contact['attag'],
      -		'$lbl_submit'   => t('Submit')
      +
      +		'$name'		=> array('name', t('Name') , htmlentities($contact['name'])),
      +		'$nick'		=> array('nick', t('Account Nickname'), htmlentities($contact['nick'])),
      +		'$attag'	=> array('attag', t('@Tagname - overrides Name/Nickname'), $contact['attag']),
      +		'$url'		=> array('url', t('Account URL'), $contact['url']),
      +		'$request'	=> array('request', t('Friend Request URL'), $contact['request']),
      +		'confirm'	=> array('confirm', t('Friend Confirm URL'), $contact['confirm']),
      +		'notify'	=> array('notify', t('Notification Endpoint URL'), $contact['notify']),
      +		'poll'		=> array('poll', t('Poll/Feed URL'), $contact['poll']),
      +		'photo'		=> array('photo', t('New photo from this URL'), ''),
       	));
       
       	return $o;
      diff --git a/mod/dfrn_confirm.php b/mod/dfrn_confirm.php
      index 9c70ba21a..51cd59c62 100644
      --- a/mod/dfrn_confirm.php
      +++ b/mod/dfrn_confirm.php
      @@ -16,6 +16,7 @@
       
       require_once('include/enotify.php');
       require_once('include/group.php');
      +require_once('include/Probe.php');
       
       function dfrn_confirm_post(&$a,$handsfree = null) {
       
      @@ -356,7 +357,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
       			$poll   = (($contact['poll']) ? $contact['poll'] : '');
       
       			if((! $contact['notify']) || (! $contact['poll'])) {
      -				$arr = lrdd($contact['url']);
      +				$arr = Probe::lrdd($contact['url']);
       				if(count($arr)) {
       					foreach($arr as $link) {
       						if($link['@attributes']['rel'] === 'salmon')
      @@ -486,7 +487,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
       
       					$i = item_store($arr);
       					if($i)
      -				    	proc_run('php',"include/notifier.php","activity","$i");
      +						proc_run(PRIORITY_HIGH, "include/notifier.php", "activity", $i);
       				}
       			}
       		}
      @@ -783,7 +784,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
       
       					$i = item_store($arr);
       					if($i)
      -				    	proc_run('php',"include/notifier.php","activity","$i");
      +						proc_run(PRIORITY_HIGH, "include/notifier.php", "activity", $i);
       
       				}
       			}
      diff --git a/mod/dfrn_request.php b/mod/dfrn_request.php
      index 32e835b71..7fe2527f3 100644
      --- a/mod/dfrn_request.php
      +++ b/mod/dfrn_request.php
      @@ -11,6 +11,7 @@
       
       require_once('include/enotify.php');
       require_once('include/Scrape.php');
      +require_once('include/Probe.php');
       require_once('include/group.php');
       
       if(! function_exists('dfrn_request_init')) {
      @@ -116,7 +117,7 @@ function dfrn_request_post(&$a) {
       					 * Scrape the other site's profile page to pick up the dfrn links, key, fn, and photo
       					 */
       
      -					$parms = scrape_dfrn($dfrn_url);
      +					$parms = Probe::profile($dfrn_url);
       
       					if(! count($parms)) {
       						notice( t('Profile location is not valid or does not contain profile information.') . EOL );
      @@ -127,7 +128,7 @@ function dfrn_request_post(&$a) {
       							notice( t('Warning: profile location has no identifiable owner name.') . EOL );
       						if(! x($parms,'photo'))
       							notice( t('Warning: profile location has no profile photo.') . EOL );
      -						$invalid = validate_dfrn($parms);
      +						$invalid = Probe::valid_dfrn($parms);
       						if($invalid) {
       							notice( sprintf( tt("%d required parameter was not found at the given location",
       												"%d required parameters were not found at the given location",
      @@ -138,6 +139,8 @@ function dfrn_request_post(&$a) {
       
       					$dfrn_request = $parms['dfrn-request'];
       
      +					$photo = $parms["photo"];
      +
       					/********* Escape the entire array ********/
       
       					dbesc_array($parms);
      @@ -185,6 +188,9 @@ function dfrn_request_post(&$a) {
       					if(intval($def_gid))
       						group_add_member(local_user(), '', $r[0]['id'], $def_gid);
       
      +					if (isset($photo))
      +						update_contact_avatar($photo, local_user(), $r[0]["id"], true);
      +
       					$forwardurl = $a->get_baseurl()."/contacts/".$r[0]['id'];
       				} else
       					$forwardurl = $a->get_baseurl()."/contacts";
      @@ -442,7 +448,7 @@ function dfrn_request_post(&$a) {
       			$network = $data["network"];
       
       			// Canonicalise email-style profile locator
      -			$url = webfinger_dfrn($url,$hcard);
      +			$url = Probe::webfinger_dfrn($url,$hcard);
       
       			if (substr($url,0,5) === 'stat:') {
       
      @@ -506,7 +512,7 @@ function dfrn_request_post(&$a) {
       
       				require_once('include/Scrape.php');
       
      -				$parms = scrape_dfrn(($hcard) ? $hcard : $url);
      +				$parms = Probe::profile(($hcard) ? $hcard : $url);
       
       				if(! count($parms)) {
       					notice( t('Profile location is not valid or does not contain profile information.') . EOL );
      @@ -517,7 +523,7 @@ function dfrn_request_post(&$a) {
       						notice( t('Warning: profile location has no identifiable owner name.') . EOL );
       					if(! x($parms,'photo'))
       						notice( t('Warning: profile location has no profile photo.') . EOL );
      -					$invalid = validate_dfrn($parms);
      +					$invalid = Probe::valid_dfrn($parms);
       					if($invalid) {
       						notice( sprintf( tt("%d required parameter was not found at the given location",
       											"%d required parameters were not found at the given location",
      @@ -530,7 +536,7 @@ function dfrn_request_post(&$a) {
       
       				$parms['url'] = $url;
       				$parms['issued-id'] = $issued_id;
      -
      +				$photo = $parms["photo"];
       
       				dbesc_array($parms);
       				$r = q("INSERT INTO `contact` ( `uid`, `created`, `url`, `nurl`, `addr`, `name`, `nick`, `issued-id`, `photo`, `site-pubkey`,
      @@ -539,7 +545,7 @@ function dfrn_request_post(&$a) {
       					intval($uid),
       					dbesc(datetime_convert()),
       					$parms['url'],
      -					dbesc(normalise_link($parms['url'])),
      +					dbesc(normalise_link($url)),
       					$parms['addr'],
       					$parms['fn'],
       					$parms['nick'],
      @@ -562,8 +568,10 @@ function dfrn_request_post(&$a) {
       						$parms['url'],
       						$parms['issued-id']
       					);
      -					if(count($r))
      +					if(count($r)) {
       						$contact_record = $r[0];
      +						update_contact_avatar($photo, $uid, $contact_record["id"], true);
      +					}
       				}
       
       			}
      diff --git a/mod/directory.php b/mod/directory.php
      index a6a9cb8ab..06aeec622 100644
      --- a/mod/directory.php
      +++ b/mod/directory.php
      @@ -99,7 +99,6 @@ function directory_content(&$a) {
       
       		foreach($r as $rr) {
       
      -			$community = '';
       			$itemurl= '';
       
       			$itemurl = (($rr['addr'] != "") ? $rr['addr'] : $rr['profile_url']);
      @@ -128,13 +127,6 @@ function directory_content(&$a) {
       //			if(strlen($rr['gender']))
       //				$details .= '
      ' . t('Gender: ') . $rr['gender']; - - // show if account is a community account - /// @TODO The other page types should be also respected, but first we need a good - /// translatiion and systemwide consistency for displaying the page type - if((intval($rr['page-flags']) == PAGE_COMMUNITY) OR (intval($rr['page-flags']) == PAGE_PRVGROUP)) - $community = true; - $profile = $rr; if((x($profile,'address') == 1) @@ -171,7 +163,7 @@ function directory_content(&$a) { 'img_hover' => $rr['name'], 'name' => $rr['name'], 'details' => $details, - 'account_type' => ($community ? t('Forum') : ''), + 'account_type' => account_type($rr), 'profile' => $profile, 'location' => $location_e, 'tags' => $rr['pub_keywords'], diff --git a/mod/dirfind.php b/mod/dirfind.php index 0638fe14f..215731978 100644 --- a/mod/dirfind.php +++ b/mod/dirfind.php @@ -156,7 +156,7 @@ function dirfind_content(&$a, $prefix = "") { } // Add found profiles from the global directory to the local directory - proc_run('php','include/discover_poco.php', "dirsearch", urlencode($search)); + proc_run(PRIORITY_LOW, 'include/discover_poco.php', "dirsearch", urlencode($search)); } else { $p = (($a->pager['page'] != 1) ? '&p=' . $a->pager['page'] : ''); @@ -220,7 +220,7 @@ function dirfind_content(&$a, $prefix = "") { 'details' => $contact_details['location'], 'tags' => $contact_details['keywords'], 'about' => $contact_details['about'], - 'account_type' => (($contact_details['community']) ? t('Forum') : ''), + 'account_type' => account_type($contact_details), 'network' => network_to_name($jj->network, $jj->url), 'id' => ++$id, ); diff --git a/mod/display.php b/mod/display.php index 4ee26b740..293156cf1 100644 --- a/mod/display.php +++ b/mod/display.php @@ -2,7 +2,7 @@ function display_init(&$a) { - if((get_config('system','block_public')) && (! local_user()) && (! remote_user())) { + if ((get_config('system','block_public')) && (! local_user()) && (! remote_user())) { return; } @@ -16,10 +16,10 @@ function display_init(&$a) { // Does the local user have this item? if (local_user()) { - $r = q("SELECT `id`, `parent`, `author-name`, `author-link`, `author-avatar`, `network`, `body`, `uid`, `owner-link` FROM `item` + $r = qu("SELECT `id`, `parent`, `author-name`, `author-link`, `author-avatar`, `network`, `body`, `uid`, `owner-link` FROM `item` WHERE `item`.`visible` AND NOT `item`.`deleted` AND NOT `item`.`moderated` AND `guid` = '%s' AND `uid` = %d", dbesc($a->argv[1]), local_user()); - if (count($r)) { + if (dbm::is_result($r)) { $nick = $a->user["nickname"]; $itemuid = local_user(); } @@ -27,16 +27,15 @@ function display_init(&$a) { // Or is it anywhere on the server? if ($nick == "") { - $r = q("SELECT `user`.`nickname`, `item`.`id`, `item`.`parent`, `item`.`author-name`, + $r = qu("SELECT `user`.`nickname`, `item`.`id`, `item`.`parent`, `item`.`author-name`, `item`.`author-link`, `item`.`author-avatar`, `item`.`network`, `item`.`uid`, `item`.`owner-link`, `item`.`body` - FROM `item` INNER JOIN `user` ON `user`.`uid` = `item`.`uid` + FROM `item` STRAIGHT_JOIN `user` ON `user`.`uid` = `item`.`uid` WHERE `item`.`visible` AND NOT `item`.`deleted` AND NOT `item`.`moderated` AND `item`.`allow_cid` = '' AND `item`.`allow_gid` = '' AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = '' AND NOT `item`.`private` AND NOT `user`.`hidewall` AND `item`.`guid` = '%s'", dbesc($a->argv[1])); - // AND NOT `item`.`private` AND `item`.`wall` - if (count($r)) { + if (dbm::is_result($r)) { $nick = $r[0]["nickname"]; $itemuid = $r[0]["uid"]; } @@ -44,33 +43,32 @@ function display_init(&$a) { // Is it an item with uid=0? if ($nick == "") { - $r = q("SELECT `item`.`id`, `item`.`parent`, `item`.`author-name`, `item`.`author-link`, + $r = qu("SELECT `item`.`id`, `item`.`parent`, `item`.`author-name`, `item`.`author-link`, `item`.`author-avatar`, `item`.`network`, `item`.`uid`, `item`.`owner-link`, `item`.`body` FROM `item` WHERE `item`.`visible` AND NOT `item`.`deleted` AND NOT `item`.`moderated` AND `item`.`allow_cid` = '' AND `item`.`allow_gid` = '' AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = '' AND NOT `item`.`private` AND `item`.`uid` = 0 AND `item`.`guid` = '%s'", dbesc($a->argv[1])); - // AND NOT `item`.`private` AND `item`.`wall` } - if (count($r)) { - if ($r[0]["id"] != $r[0]["parent"]) - $r = q("SELECT `id`, `author-name`, `author-link`, `author-avatar`, `network`, `body`, `uid`, `owner-link` FROM `item` + if (dbm::is_result($r)) { + if ($r[0]["id"] != $r[0]["parent"]) { + $r = qu("SELECT `id`, `author-name`, `author-link`, `author-avatar`, `network`, `body`, `uid`, `owner-link` FROM `item` WHERE `item`.`visible` AND NOT `item`.`deleted` AND NOT `item`.`moderated` AND `id` = %d", $r[0]["parent"]); - + } if (($itemuid != local_user()) AND local_user()) { // Do we know this contact but we haven't got this item? // Copy the wohle thread to our local storage so that we can interact. // We really should change this need for the future since it scales very bad. $contactid = get_contact($r[0]['owner-link'], local_user()); if ($contactid) { - $items = q("SELECT * FROM `item` WHERE `parent` = %d ORDER BY `id`", intval($r[0]["id"])); + $items = qu("SELECT * FROM `item` WHERE `parent` = %d ORDER BY `id`", intval($r[0]["id"])); foreach ($items AS $item) { $itemcontactid = get_contact($item['owner-link'], local_user()); - if (!$itemcontactid) + if (!$itemcontactid) { $itemcontactid = $contactid; - + } unset($item['id']); $item['uid'] = local_user(); $item['origin'] = 0; @@ -87,21 +85,22 @@ function display_init(&$a) { $nickname = str_replace(normalise_link($a->get_baseurl())."/profile/", "", normalise_link($profiledata["url"])); if (($nickname != $a->user["nickname"])) { - $r = q("SELECT `profile`.`uid` AS `profile_uid`, `profile`.* , `contact`.`avatar-date` AS picdate, `user`.* FROM `profile` + $r = qu("SELECT `profile`.`uid` AS `profile_uid`, `profile`.* , `contact`.`avatar-date` AS picdate, `user`.* FROM `profile` INNER JOIN `contact` on `contact`.`uid` = `profile`.`uid` INNER JOIN `user` ON `profile`.`uid` = `user`.`uid` WHERE `user`.`nickname` = '%s' AND `profile`.`is-default` AND `contact`.`self` LIMIT 1", dbesc($nickname) ); - if (count($r)) + if (dbm::is_result($r)) { $profiledata = $r[0]; - + } $profiledata["network"] = NETWORK_DFRN; - } else + } else { $profiledata = array(); + } } } else { $a->error = 404; - notice( t('Item not found.') . EOL); + notice(t('Item not found.') . EOL); return; } } @@ -129,48 +128,49 @@ function display_fetchauthor($a, $item) { // Skip if it isn't a pure repeated messages // Does it start with a share? - if (!$skip AND strpos($body, "[share") > 0) + if (!$skip AND strpos($body, "[share") > 0) { $skip = true; - + } // Does it end with a share? - if (!$skip AND (strlen($body) > (strrpos($body, "[/share]") + 8))) + if (!$skip AND (strlen($body) > (strrpos($body, "[/share]") + 8))) { $skip = true; - + } if (!$skip) { $attributes = preg_replace("/\[share(.*?)\]\s?(.*?)\s?\[\/share\]\s?/ism","$1",$body); // Skip if there is no shared message in there - if ($body == $attributes) + if ($body == $attributes) { $skip = true; + } } if (!$skip) { $author = ""; preg_match("/author='(.*?)'/ism", $attributes, $matches); - if ($matches[1] != "") + if ($matches[1] != "") { $profiledata["name"] = html_entity_decode($matches[1],ENT_QUOTES,'UTF-8'); - + } preg_match('/author="(.*?)"/ism', $attributes, $matches); - if ($matches[1] != "") + if ($matches[1] != "") { $profiledata["name"] = html_entity_decode($matches[1],ENT_QUOTES,'UTF-8'); - + } $profile = ""; preg_match("/profile='(.*?)'/ism", $attributes, $matches); - if ($matches[1] != "") + if ($matches[1] != "") { $profiledata["url"] = $matches[1]; - + } preg_match('/profile="(.*?)"/ism', $attributes, $matches); - if ($matches[1] != "") + if ($matches[1] != "") { $profiledata["url"] = $matches[1]; - + } $avatar = ""; preg_match("/avatar='(.*?)'/ism", $attributes, $matches); - if ($matches[1] != "") + if ($matches[1] != "") { $profiledata["photo"] = $matches[1]; - + } preg_match('/avatar="(.*?)"/ism', $attributes, $matches); - if ($matches[1] != "") + if ($matches[1] != "") { $profiledata["photo"] = $matches[1]; - + } $profiledata["nickname"] = $profiledata["name"]; $profiledata["network"] = GetProfileUsername($profiledata["url"], "", false, true); @@ -183,8 +183,9 @@ function display_fetchauthor($a, $item) { $profiledata["photo"] = App::remove_baseurl($profiledata["photo"]); if (local_user()) { - if (in_array($profiledata["network"], array(NETWORK_DFRN, NETWORK_DIASPORA, NETWORK_OSTATUS))) + if (in_array($profiledata["network"], array(NETWORK_DFRN, NETWORK_DIASPORA, NETWORK_OSTATUS))) { $profiledata["remoteconnect"] = $a->get_baseurl()."/follow?url=".urlencode($profiledata["url"]); + } } elseif ($profiledata["network"] == NETWORK_DFRN) { $connect = str_replace("/profile/", "/dfrn_request/", $profiledata["url"]); $profiledata["remoteconnect"] = $connect; @@ -195,8 +196,8 @@ function display_fetchauthor($a, $item) { function display_content(&$a, $update = 0) { - if((get_config('system','block_public')) && (! local_user()) && (! remote_user())) { - notice( t('Public access denied.') . EOL); + if ((get_config('system','block_public')) && (! local_user()) && (! remote_user())) { + notice(t('Public access denied.') . EOL); return; } @@ -210,55 +211,53 @@ function display_content(&$a, $update = 0) { $a->page['htmlhead'] .= replace_macros(get_markup_template('display-head.tpl'), array()); - if($update) { + if ($update) { $nick = $_REQUEST['nick']; - } - else { + } else { $nick = (($a->argc > 1) ? $a->argv[1] : ''); } - if($update) { + if ($update) { $item_id = $_REQUEST['item_id']; $a->profile = array('uid' => intval($update), 'profile_uid' => intval($update)); - } - else { + } else { $item_id = (($a->argc > 2) ? $a->argv[2] : 0); if ($a->argc == 2) { $nick = ""; if (local_user()) { - $r = q("SELECT `id` FROM `item` + $r = qu("SELECT `id` FROM `item` WHERE `item`.`visible` AND NOT `item`.`deleted` AND NOT `item`.`moderated` AND `guid` = '%s' AND `uid` = %d", dbesc($a->argv[1]), local_user()); - if (count($r)) { + if (dbm::is_result($r)) { $item_id = $r[0]["id"]; $nick = $a->user["nickname"]; } } if ($nick == "") { - $r = q("SELECT `user`.`nickname`, `item`.`id` FROM `item` INNER JOIN `user` ON `user`.`uid` = `item`.`uid` + $r = qu("SELECT `user`.`nickname`, `item`.`id` FROM `item` STRAIGHT_JOIN `user` ON `user`.`uid` = `item`.`uid` WHERE `item`.`visible` AND NOT `item`.`deleted` AND NOT `item`.`moderated` AND `item`.`allow_cid` = '' AND `item`.`allow_gid` = '' AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = '' AND NOT `item`.`private` AND NOT `user`.`hidewall` AND `item`.`guid` = '%s'", dbesc($a->argv[1])); // AND NOT `item`.`private` AND `item`.`wall` - if (count($r)) { + if (dbm::is_result($r)) { $item_id = $r[0]["id"]; $nick = $r[0]["nickname"]; } } if ($nick == "") { - $r = q("SELECT `item`.`id` FROM `item` + $r = qu("SELECT `item`.`id` FROM `item` WHERE `item`.`visible` AND NOT `item`.`deleted` AND NOT `item`.`moderated` AND `item`.`allow_cid` = '' AND `item`.`allow_gid` = '' AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = '' AND NOT `item`.`private` AND `item`.`uid` = 0 AND `item`.`guid` = '%s'", dbesc($a->argv[1])); // AND NOT `item`.`private` AND `item`.`wall` - if (count($r)) { + if (dbm::is_result($r)) { $item_id = $r[0]["id"]; } } @@ -266,12 +265,13 @@ function display_content(&$a, $update = 0) { } if ($item_id AND !is_numeric($item_id)) { - $r = q("SELECT `id` FROM `item` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1", + $r = qu("SELECT `id` FROM `item` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1", dbesc($item_id), intval($a->profile['uid'])); - if ($r) + if (dbm::is_result($r)) { $item_id = $r[0]["id"]; - else + } else { $item_id = false; + } } if (!$item_id) { @@ -288,44 +288,44 @@ function display_content(&$a, $update = 0) { $contact_id = 0; - if(is_array($_SESSION['remote'])) { - foreach($_SESSION['remote'] as $v) { - if($v['uid'] == $a->profile['uid']) { + if (is_array($_SESSION['remote'])) { + foreach ($_SESSION['remote'] as $v) { + if ($v['uid'] == $a->profile['uid']) { $contact_id = $v['cid']; break; } } } - if($contact_id) { + if ($contact_id) { $groups = init_groups_visitor($contact_id); - $r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1", + $r = qu("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1", intval($contact_id), intval($a->profile['uid']) ); - if(count($r)) { + if (dbm::is_result($r)) { $contact = $r[0]; $remote_contact = true; } } - if(! $remote_contact) { - if(local_user()) { + if (!$remote_contact) { + if (local_user()) { $contact_id = $_SESSION['cid']; $contact = $a->contact; } } - $r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `self` LIMIT 1", + $r = qu("SELECT * FROM `contact` WHERE `uid` = %d AND `self` LIMIT 1", intval($a->profile['uid']) ); - if(count($r)) + if (dbm::is_result($r)) { $a->page_contact = $r[0]; - + } $is_owner = ((local_user()) && (local_user() == $a->profile['profile_uid']) ? true : false); - if($a->profile['hidewall'] && (! $is_owner) && (! $remote_contact)) { - notice( t('Access to this profile has been restricted.') . EOL); + if ($a->profile['hidewall'] && (! $is_owner) && (! $remote_contact)) { + notice(t('Access to this profile has been restricted.') . EOL); return; } @@ -349,49 +349,43 @@ function display_content(&$a, $update = 0) { $sql_extra = item_permissions_sql($a->profile['uid'],$remote_contact,$groups); - if($update) { + if ($update) { - $r = q("SELECT `id` FROM `item` WHERE `item`.`uid` = %d + $r = qu("SELECT `id` FROM `item` WHERE `item`.`uid` = %d AND `item`.`parent` = (SELECT `parent` FROM `item` WHERE `id` = %d) $sql_extra AND `unseen`", intval($a->profile['uid']), intval($item_id) ); - if(!$r) + if (!$r) { return ''; + } } - $r = q("SELECT %s, %s FROM `item` - INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND %s - WHERE %s AND `item`.`uid` = %d + $r = qu(item_query()." AND `item`.`uid` = %d AND `item`.`parent` = (SELECT `parent` FROM `item` WHERE `id` = %d) $sql_extra ORDER BY `parent` DESC, `gravity` ASC, `id` ASC", - item_fieldlist(), contact_fieldlist(), - contact_condition(), item_condition(), intval($a->profile['uid']), intval($item_id) ); - if(!$r && local_user()) { + + if (!$r && local_user()) { // Check if this is another person's link to a post that we have - $r = q("SELECT `item`.uri FROM `item` + $r = qu("SELECT `item`.uri FROM `item` WHERE (`item`.`id` = %d OR `item`.`uri` = '%s') LIMIT 1", intval($item_id), dbesc($item_id) ); - if($r) { + if (dbm::is_result($r)) { $item_uri = $r[0]['uri']; - $r = q("SELECT %s, %s FROM `item` - INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND %s - WHERE %s AND `item`.`uid` = %d + $r = qu(item_query()." AND `item`.`uid` = %d AND `item`.`parent` = (SELECT `parent` FROM `item` WHERE `uri` = '%s' AND uid = %d) ORDER BY `parent` DESC, `gravity` ASC, `id` ASC ", - item_fieldlist(), contact_fieldlist(), - contact_condition(), item_condition(), intval(local_user()), dbesc($item_uri), intval(local_user()) @@ -399,24 +393,24 @@ function display_content(&$a, $update = 0) { } } + if ($r) { - if($r) { - - if((local_user()) && (local_user() == $a->profile['uid'])) { + if ((local_user()) && (local_user() == $a->profile['uid'])) { $unseen = q("SELECT `id` FROM `item` WHERE `unseen` AND `parent` = %d", intval($r[0]['parent'])); - if ($unseen) - q("UPDATE `item` SET `unseen` = 0 - WHERE `parent` = %d AND `unseen`", + if ($unseen) { + q("UPDATE `item` SET `unseen` = 0 WHERE `parent` = %d AND `unseen`", intval($r[0]['parent']) ); + } } $items = conv_sort($r,"`commented`"); - if(!$update) + if (!$update) { $o .= ""; + } $o .= conversation($a,$items,'display', $update); // Preparing the meta header @@ -428,9 +422,9 @@ function display_content(&$a, $update = 0) { $image = $a->remove_baseurl($r[0]["thumb"]); - if ($title == "") + if ($title == "") { $title = $author_name; - + } $description = htmlspecialchars($description, ENT_COMPAT, 'UTF-8', true); // allow double encoding here $title = htmlspecialchars($title, ENT_COMPAT, 'UTF-8', true); // allow double encoding here $author_name = htmlspecialchars($author_name, ENT_COMPAT, 'UTF-8', true); // allow double encoding here @@ -470,20 +464,18 @@ function display_content(&$a, $update = 0) { return $o; } - $r = q("SELECT `id`,`deleted` FROM `item` WHERE `id` = '%s' OR `uri` = '%s' LIMIT 1", + $r = qu("SELECT `id`,`deleted` FROM `item` WHERE `id` = '%s' OR `uri` = '%s' LIMIT 1", dbesc($item_id), dbesc($item_id) ); - if($r) { - if($r[0]['deleted']) { - notice( t('Item has been removed.') . EOL ); + if ($r) { + if ($r[0]['deleted']) { + notice(t('Item has been removed.') . EOL ); + } else { + notice(t('Permission denied.') . EOL ); } - else { - notice( t('Permission denied.') . EOL ); - } - } - else { - notice( t('Item not found.') . EOL ); + } else { + notice(t('Item not found.') . EOL ); } return $o; diff --git a/mod/editpost.php b/mod/editpost.php index 9a80d0b2f..46a530dce 100644 --- a/mod/editpost.php +++ b/mod/editpost.php @@ -146,7 +146,12 @@ function editpost_content(&$a) { '$jotplugins' => $jotplugins, '$sourceapp' => t($a->sourcename), '$cancel' => t('Cancel'), - '$rand_num' => random_digits(12) + '$rand_num' => random_digits(12), + + //jot nav tab (used in some themes) + '$message' => t('Message'), + '$browser' => t('Browser'), + '$shortpermset' => t('permissions'), )); return $o; diff --git a/mod/events.php b/mod/events.php index 633aaf0c1..16679ff7e 100644 --- a/mod/events.php +++ b/mod/events.php @@ -1,10 +1,34 @@ argc == 1) { + // if it's a json request abort here becaus we don't + // need the widget data + if($a->argv[1] === 'json') + return; + + $cal_widget = widget_events(); + + if(! x($a->page,'aside')) + $a->page['aside'] = ''; + + $a->page['aside'] .= $cal_widget; + } + + return; +} + function events_post(&$a) { logger('post: ' . print_r($_REQUEST,true)); @@ -67,9 +91,9 @@ function events_post(&$a) { $action = ($event_id == '') ? 'new' : "event/" . $event_id; $onerror_url = $a->get_baseurl() . "/events/" . $action . "?summary=$summary&description=$desc&location=$location&start=$start_text&finish=$finish_text&adjust=$adjust&nofinish=$nofinish"; - if(strcmp($finish,$start) < 0 && !$nofinish) { + if(strcmp($finish,$start) < 0 && !$nofinish) { notice( t('Event can not end before it has started.') . EOL); - if(intval($_REQUEST['preview'])) { + if(intval($_REQUEST['preview'])) { echo( t('Event can not end before it has started.')); killme(); } @@ -153,7 +177,7 @@ function events_post(&$a) { $item_id = event_store($datarray); if(! $cid) - proc_run('php',"include/notifier.php","event","$item_id"); + proc_run(PRIORITY_HIGH, "include/notifier.php", "event", $item_id); goaway($_SESSION['return_url']); } @@ -193,59 +217,14 @@ function events_content(&$a) { if( feature_enabled(local_user(), 'richtext') ) $editselect = 'textareas'; - // First day of the week (0 = Sunday) - $firstDay = get_pconfig(local_user(),'system','first_day_of_week'); - if ($firstDay === false) $firstDay=0; - - $i18n = array( - "firstDay" => $firstDay, - "Sun" => t("Sun"), - "Mon" => t("Mon"), - "Tue" => t("Tue"), - "Wed" => t("Wed"), - "Thu" => t("Thu"), - "Fri" => t("Fri"), - "Sat" => t("Sat"), - "Sunday" => t("Sunday"), - "Monday" => t("Monday"), - "Tuesday" => t("Tuesday"), - "Wednesday" => t("Wednesday"), - "Thursday" => t("Thursday"), - "Friday" => t("Friday"), - "Saturday" => t("Saturday"), - "Jan" => t("Jan"), - "Feb" => t("Feb"), - "Mar" => t("Mar"), - "Apr" => t("Apr"), - "May" => t("May"), - "Jun" => t("Jun"), - "Jul" => t("Jul"), - "Aug" => t("Aug"), - "Sep" => t("Sept"), - "Oct" => t("Oct"), - "Nov" => t("Nov"), - "Dec" => t("Dec"), - "January" => t("January"), - "February" => t("February"), - "March" => t("March"), - "April" => t("April"), - "May" => t("May"), - "June" => t("June"), - "July" => t("July"), - "August" => t("August"), - "September" => t("September"), - "October" => t("October"), - "November" => t("November"), - "December" => t("December"), - "today" => t("today"), - "month" => t("month"), - "week" => t("week"), - "day" => t("day"), - ); + // get the translation strings for the callendar + $i18n = get_event_strings(); $htpl = get_markup_template('event_head.tpl'); $a->page['htmlhead'] .= replace_macros($htpl,array( '$baseurl' => $a->get_baseurl(), + '$module_url' => '/events', + '$modparams' => 1, '$i18n' => $i18n, '$editselect' => $editselect )); @@ -284,6 +263,7 @@ function events_content(&$a) { } } + // The view mode part is similiar to /mod/cal.php if($mode == 'view') { @@ -323,8 +303,8 @@ function events_content(&$a) { if ($a->argv[1] === 'json'){ - if (x($_GET,'start')) $start = date("Y-m-d h:i:s", $_GET['start']); - if (x($_GET,'end')) $finish = date("Y-m-d h:i:s", $_GET['end']); + if (x($_GET,'start')) $start = $_GET['start']; + if (x($_GET,'end')) $finish = $_GET['end']; } $start = datetime_convert('UTC','UTC',$start); @@ -333,31 +313,21 @@ function events_content(&$a) { $adjust_start = datetime_convert('UTC', date_default_timezone_get(), $start); $adjust_finish = datetime_convert('UTC', date_default_timezone_get(), $finish); + // put the event parametes in an array so we can better transmit them + $event_params = array( + 'event_id' => (x($_GET,'id') ? $_GET["id"] : 0), + 'start' => $start, + 'finish' => $finish, + 'adjust_start' => $adjust_start, + 'adjust_finish' => $adjust_finish, + 'ignored' => $ignored, + ); + // get events by id or by date if (x($_GET,'id')){ - $r = q("SELECT `event`.*, `item`.`id` AS `itemid`,`item`.`plink`, - `item`.`author-name`, `item`.`author-avatar`, `item`.`author-link` FROM `event` - LEFT JOIN `item` ON `item`.`event-id` = `event`.`id` AND `item`.`uid` = `event`.`uid` - WHERE `event`.`uid` = %d AND `event`.`id` = %d", - intval(local_user()), - intval($_GET['id']) - ); + $r = event_by_id(local_user(), $event_params); } else { - $r = q("SELECT `event`.*, `item`.`id` AS `itemid`,`item`.`plink`, - `item`.`author-name`, `item`.`author-avatar`, `item`.`author-link` FROM `event` - LEFT JOIN `item` ON `item`.`event-id` = `event`.`id` AND `item`.`uid` = `event`.`uid` - WHERE `event`.`uid` = %d and event.ignore = %d - AND ((`adjust` = 0 AND (`finish` >= '%s' OR (nofinish AND start >= '%s')) AND `start` <= '%s') - OR (`adjust` = 1 AND (`finish` >= '%s' OR (nofinish AND start >= '%s')) AND `start` <= '%s')) ", - intval(local_user()), - intval($ignored), - dbesc($start), - dbesc($start), - dbesc($finish), - dbesc($adjust_start), - dbesc($adjust_start), - dbesc($adjust_finish) - ); + $r = events_by_date(local_user(), $event_params); } $links = array(); @@ -371,60 +341,12 @@ function events_content(&$a) { } } - $events=array(); - $last_date = ''; - $fmt = t('l, F j'); - - if(count($r)) { + // transform the event in a usable array + if(count($r)) $r = sort_by_date($r); - foreach($r as $rr) { - - - $j = (($rr['adjust']) ? datetime_convert('UTC',date_default_timezone_get(),$rr['start'], 'j') : datetime_convert('UTC','UTC',$rr['start'],'j')); - $d = (($rr['adjust']) ? datetime_convert('UTC',date_default_timezone_get(),$rr['start'], $fmt) : datetime_convert('UTC','UTC',$rr['start'],$fmt)); - $d = day_translate($d); - - $start = (($rr['adjust']) ? datetime_convert('UTC',date_default_timezone_get(),$rr['start'], 'c') : datetime_convert('UTC','UTC',$rr['start'],'c')); - if ($rr['nofinish']){ - $end = null; - } else { - $end = (($rr['adjust']) ? datetime_convert('UTC',date_default_timezone_get(),$rr['finish'], 'c') : datetime_convert('UTC','UTC',$rr['finish'],'c')); - } - - - $is_first = ($d !== $last_date); - - $last_date = $d; - $edit = ((! $rr['cid']) ? array($a->get_baseurl().'/events/event/'.$rr['id'],t('Edit event'),'','') : null); - $title = strip_tags(html_entity_decode(bbcode($rr['summary']),ENT_QUOTES,'UTF-8')); - if(! $title) { - list($title, $_trash) = explode("$rr['id'], - 'start'=> $start, - 'end' => $end, - 'allDay' => false, - 'title' => $title, - - 'j' => $j, - 'd' => $d, - 'edit' => $edit, - 'is_first'=>$is_first, - 'item'=>$rr, - 'html'=>$html, - 'plink' => array($rr['plink'],t('link to source'),'',''), - ); - - - } - } + $events = process_events($r); if ($a->argv[1] === 'json'){ echo json_encode($events); killme(); @@ -435,7 +357,7 @@ function events_content(&$a) { $tpl = get_markup_template("event.tpl"); } else { // if (get_config('experimentals','new_calendar')==1){ - $tpl = get_markup_template("events-js.tpl"); + $tpl = get_markup_template("events_js.tpl"); // } else { // $tpl = get_markup_template("events.tpl"); // } @@ -455,14 +377,19 @@ function events_content(&$a) { '$baseurl' => $a->get_baseurl(), '$tabs' => $tabs, '$title' => t('Events'), - '$new_event'=> array($a->get_baseurl().'/events/new',t('Create New Event'),'',''), + '$view' => t('View'), + '$new_event' => array($a->get_baseurl().'/events/new',t('Create New Event'),'',''), '$previus' => array($a->get_baseurl()."/events/$prevyear/$prevmonth",t('Previous'),'',''), '$next' => array($a->get_baseurl()."/events/$nextyear/$nextmonth",t('Next'),'',''), - '$calendar' => cal($y,$m,$links, ' eventcal'), + '$calendar' => cal($y,$m,$links, ' eventcal'), '$events' => $events, - + "today" => t("today"), + "month" => t("month"), + "week" => t("week"), + "day" => t("day"), + "list" => t("list"), )); if (x($_GET,'id')){ echo $o; killme(); } @@ -555,11 +482,11 @@ function events_content(&$a) { '$title' => t('Event details'), '$desc' => t('Starting date and Title are required.'), '$s_text' => t('Event Starts:') . ' *', - '$s_dsel' => datetimesel($f,new DateTime(),DateTime::createFromFormat('Y',$syear+5),DateTime::createFromFormat('Y-m-d H:i',"$syear-$smonth-$sday $shour:$sminute"),'start_text',true,true,'','',true), + '$s_dsel' => datetimesel($f,new DateTime(),DateTime::createFromFormat('Y',$syear+5),DateTime::createFromFormat('Y-m-d H:i',"$syear-$smonth-$sday $shour:$sminute"),t('Event Starts:'),'start_text',true,true,'','',true), '$n_text' => t('Finish date/time is not known or not relevant'), '$n_checked' => $n_checked, '$f_text' => t('Event Finishes:'), - '$f_dsel' => datetimesel($f,new DateTime(),DateTime::createFromFormat('Y',$fyear+5),DateTime::createFromFormat('Y-m-d H:i',"$fyear-$fmonth-$fday $fhour:$fminute"),'finish_text',true,true,'start_text'), + '$f_dsel' => datetimesel($f,new DateTime(),DateTime::createFromFormat('Y',$fyear+5),DateTime::createFromFormat('Y-m-d H:i',"$fyear-$fmonth-$fday $fhour:$fminute"),t('Event Finishes:'),'finish_text',true,true,'start_text'), '$a_text' => t('Adjust for viewer timezone'), '$a_checked' => $a_checked, '$d_text' => t('Description:'), @@ -568,11 +495,18 @@ function events_content(&$a) { '$l_orig' => $l_orig, '$t_text' => t('Title:') . ' *', '$t_orig' => $t_orig, + '$summary' => array('summary', t('Title:'), $t_orig, '', '*'), '$sh_text' => t('Share this event'), + '$share' => array('share', t('Share this event'), $sh_checked, ''), '$sh_checked' => $sh_checked, + '$nofinish' => array('nofinish', t('Finish date/time is not known or not relevant'), $n_checked), + '$adjust' => array('adjust', t('Adjust for viewer timezone'), $a_checked), '$preview' => t('Preview'), '$acl' => $acl, - '$submit' => t('Submit') + '$submit' => t('Submit'), + '$basic' => t("Basic"), + '$advanced' => t("Advanced"), + '$permissions' => t('Permissions'), )); diff --git a/mod/fetch.php b/mod/fetch.php new file mode 100644 index 000000000..1c73ad371 --- /dev/null +++ b/mod/fetch.php @@ -0,0 +1,61 @@ +argc != 3) OR (!in_array($a->argv[1], array("post", "status_message", "reshare")))) { + header($_SERVER["SERVER_PROTOCOL"].' 404 '.t('Not Found')); + killme(); + } + + $guid = $a->argv[2]; + + // Fetch the item + $item = q("SELECT `uid`, `title`, `body`, `guid`, `contact-id`, `private`, `created`, `app`, `location`, `coord` + FROM `item` WHERE `wall` AND NOT `private` AND `guid` = '%s' AND `network` IN ('%s', '%s') AND `id` = `parent` LIMIT 1", + dbesc($guid), NETWORK_DFRN, NETWORK_DIASPORA); + if (!$item) { + $r = q("SELECT `author-link` + FROM `item` WHERE `uid` = 0 AND `guid` = '%s' AND `network` IN ('%s', '%s') AND `id` = `parent` LIMIT 1", + dbesc($guid), NETWORK_DFRN, NETWORK_DIASPORA); + if ($r) { + $parts = parse_url($r[0]["author-link"]); + $host = $parts["scheme"]."://".$parts["host"]; + + if (normalise_link($host) != normalise_link(App::get_baseurl())) { + $location = $host."/fetch/".$a->argv[1]."/".urlencode($guid); + + header("HTTP/1.1 301 Moved Permanently"); + header("Location:".$location); + killme(); + } + } + + header($_SERVER["SERVER_PROTOCOL"].' 404 '.t('Not Found')); + killme(); + } + + // Fetch some data from the author (We could combine both queries - but I think this is more readable) + $r = q("SELECT `user`.`prvkey`, `contact`.`addr`, `user`.`nickname`, `contact`.`nick` FROM `user` + INNER JOIN `contact` ON `contact`.`uid` = `user`.`uid` + WHERE `user`.`uid` = %d", intval($item[0]["uid"])); + if (!$r) { + header($_SERVER["SERVER_PROTOCOL"].' 404 '.t('Not Found')); + killme(); + } + $user = $r[0]; + + $status = diaspora::build_status($item[0], $user); + $xml = diaspora::build_post_xml($status["type"], $status["message"]); + + // Send the envelope + header("Content-Type: application/magic-envelope+xml; charset=utf-8"); + echo diaspora::build_magic_envelope($xml, $user); + + killme(); +} diff --git a/mod/fsuggest.php b/mod/fsuggest.php index 6b1cbd753..ad407d5f3 100644 --- a/mod/fsuggest.php +++ b/mod/fsuggest.php @@ -57,7 +57,7 @@ function fsuggest_post(&$a) { intval($fsuggest_id), intval(local_user()) ); - proc_run('php', 'include/notifier.php', 'suggest' , $fsuggest_id); + proc_run(PRIORITY_HIGH, 'include/notifier.php', 'suggest', $fsuggest_id); } info( t('Friend suggestion sent.') . EOL); diff --git a/mod/hostxrd.php b/mod/hostxrd.php index 4121764f1..647073b05 100644 --- a/mod/hostxrd.php +++ b/mod/hostxrd.php @@ -25,7 +25,6 @@ function hostxrd_init(&$a) { '$zot_post' => z_root() . '/post', '$bigkey' => salmon_key(get_config('system','site_pubkey')), )); - session_write_close(); exit(); } diff --git a/mod/hovercard.php b/mod/hovercard.php index 4a6619b78..65b75b321 100644 --- a/mod/hovercard.php +++ b/mod/hovercard.php @@ -72,15 +72,14 @@ function hovercard_content() { 'gender' => $contact["gender"], 'about' => $contact["about"], 'network' => format_network_name($contact["network"], $contact["url"]), - 'tags' => intval($contact["keywords"]), + 'tags' => $contact["keywords"], // 'nsfw' => intval($contact["nsfw"]), // 'server_url' => $contact["server_url"], 'bd' => (($contact["birthday"] == "0000-00-00") ? "" : $contact["birthday"]), // 'generation' => $contact["generation"], - 'account_type' => ($contact['community'] ? t("Forum") : ""), + 'account_type' => account_type($contact), 'actions' => $actions, ); - if($datatype == "html") { $t = get_markup_template("hovercard.tpl"); diff --git a/mod/install.php b/mod/install.php index f36c91ef2..d18d4ac3e 100755 --- a/mod/install.php +++ b/mod/install.php @@ -285,7 +285,7 @@ function install_content(&$a) { $adminmail = notags(trim($_POST['adminmail'])); $timezone = ((x($_POST,'timezone')) ? ($_POST['timezone']) : 'America/Los_Angeles'); /* Installed langs */ - $lang_choices = get_avaiable_languages(); + $lang_choices = get_available_languages(); $tpl = get_markup_template('install_settings.tpl'); $o .= replace_macros($tpl, array( @@ -418,6 +418,7 @@ function check_funcs(&$checks) { check_add($ck_funcs, t('mb_string PHP module'), true, true, ""); check_add($ck_funcs, t('mcrypt PHP module'), true, true, ""); check_add($ck_funcs, t('XML PHP module'), true, true, ""); + check_add($ck_funcs, t('iconv module'), true, true, ""); if(function_exists('apache_get_modules')){ if (! in_array('mod_rewrite',apache_get_modules())) { @@ -451,6 +452,10 @@ function check_funcs(&$checks) { $ck_funcs[5]['status']= false; $ck_funcs[5]['help']= t('Error: mcrypt PHP module required but not installed.'); } + if(! function_exists('iconv_strlen')){ + $ck_funcs[7]['status']= false; + $ck_funcs[7]['help']= t('Error: iconv PHP module required but not installed.'); + } $checks = array_merge($checks, $ck_funcs); diff --git a/mod/item.php b/mod/item.php index d0e1ffed5..23bc2d0bb 100644 --- a/mod/item.php +++ b/mod/item.php @@ -25,6 +25,7 @@ require_once('include/text.php'); require_once('include/items.php'); require_once('include/Scrape.php'); require_once('include/diaspora.php'); +require_once('include/Contact.php'); function item_post(&$a) { @@ -114,7 +115,7 @@ function item_post(&$a) { if(($r === false) || (! count($r))) { notice( t('Unable to locate original post.') . EOL); if(x($_REQUEST,'return')) - goaway($a->get_baseurl() . "/" . $return_path ); + goaway($return_path); killme(); } $parent_item = $r[0]; @@ -129,7 +130,7 @@ function item_post(&$a) { intval($parent_item['contact-id']), intval($uid) ); - if(count($r)) + if (dbm::is_result($r)) $parent_contact = $r[0]; // If the contact id doesn't fit with the contact, then set the contact to null @@ -174,6 +175,19 @@ function item_post(&$a) { $app = ((x($_REQUEST,'source')) ? strip_tags($_REQUEST['source']) : ''); $extid = ((x($_REQUEST,'extid')) ? strip_tags($_REQUEST['extid']) : ''); + // Check for multiple posts with the same message id (when the post was created via API) + if (($message_id != '') AND ($profile_uid != 0)) { + $r = q("SELECT * FROM `item` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1", + dbesc($message_id), + intval($profile_uid) + ); + + if (dbm::is_result($r)) { + logger("Message with URI ".$message_id." already exists for user ".$profile_uid, LOGGER_DEBUG); + return; + } + } + $allow_moderated = false; // here is where we are going to check for permission to post a moderated comment. @@ -183,7 +197,7 @@ function item_post(&$a) { if((x($_REQUEST,'commenter')) && ((! $parent) || (! $parent_item['wall']))) { notice( t('Permission denied.') . EOL) ; if(x($_REQUEST,'return')) - goaway($a->get_baseurl() . "/" . $return_path ); + goaway($return_path); killme(); } @@ -195,7 +209,7 @@ function item_post(&$a) { if((! can_write_wall($a,$profile_uid)) && (! $allow_moderated)) { notice( t('Permission denied.') . EOL) ; if(x($_REQUEST,'return')) - goaway($a->get_baseurl() . "/" . $return_path ); + goaway($return_path); killme(); } @@ -219,7 +233,7 @@ function item_post(&$a) { $r = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1", intval($profile_uid) ); - if(count($r)) + if (dbm::is_result($r)) $user = $r[0]; if($orig_post) { @@ -291,7 +305,6 @@ function item_post(&$a) { // If this is a comment, set the permissions from the parent. if($parent_item) { - $private = 0; // for non native networks use the network of the original post as network of the item if (($parent_item['network'] != NETWORK_DIASPORA) @@ -299,19 +312,13 @@ function item_post(&$a) { AND ($network == "")) $network = $parent_item['network']; - if(($parent_item['private']) - || strlen($parent_item['allow_cid']) - || strlen($parent_item['allow_gid']) - || strlen($parent_item['deny_cid']) - || strlen($parent_item['deny_gid'])) { - $private = (($parent_item['private']) ? $parent_item['private'] : 1); - } - $str_contact_allow = $parent_item['allow_cid']; $str_group_allow = $parent_item['allow_gid']; $str_contact_deny = $parent_item['deny_cid']; $str_group_deny = $parent_item['deny_gid']; + $private = $parent_item['private']; } + $pubmail_enable = ((x($_REQUEST,'pubmail_enable') && intval($_REQUEST['pubmail_enable']) && (! $private)) ? 1 : 0); // if using the API, we won't see pubmail_enable - figure out if it should be set @@ -332,7 +339,7 @@ function item_post(&$a) { killme(); info( t('Empty post discarded.') . EOL ); if(x($_REQUEST,'return')) - goaway($a->get_baseurl() . "/" . $return_path ); + goaway($return_path); killme(); } } @@ -391,7 +398,7 @@ function item_post(&$a) { } } - if(count($r)) { + if (dbm::is_result($r)) { $author = $r[0]; $contact_id = $author['id']; } @@ -405,7 +412,7 @@ function item_post(&$a) { $r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `self` = 1 LIMIT 1", intval($profile_uid) ); - if(count($r)) + if (dbm::is_result($r)) $contact_record = $r[0]; } @@ -459,7 +466,6 @@ function item_post(&$a) { if(! count($r)) continue; - $r = q("UPDATE `photo` SET `allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s' WHERE `resource-id` = '%s' AND `uid` = %d AND `album` = '%s' ", dbesc($str_contact_allow), @@ -470,7 +476,6 @@ function item_post(&$a) { intval($profile_uid), dbesc( t('Wall Photos')) ); - } } } @@ -490,7 +495,7 @@ function item_post(&$a) { intval($profile_uid), intval($attach) ); - if(count($r)) { + if (dbm::is_result($r)) { $r = q("UPDATE `attach` SET `allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s' WHERE `uid` = %d AND `id` = %d", dbesc($str_contact_allow), @@ -631,7 +636,7 @@ function item_post(&$a) { intval($profile_uid), intval($mtch) ); - if(count($r)) { + if (dbm::is_result($r)) { if(strlen($attachments)) $attachments .= ','; $attachments .= '[attach]href="' . $a->get_baseurl() . '/attach/' . $r[0]['id'] . '" length="' . $r[0]['filesize'] . '" type="' . $r[0]['filetype'] . '" title="' . (($r[0]['filename']) ? $r[0]['filename'] : '') . '"[/attach]'; @@ -676,9 +681,11 @@ function item_post(&$a) { $datarray['owner-name'] = $contact_record['name']; $datarray['owner-link'] = $contact_record['url']; $datarray['owner-avatar'] = $contact_record['thumb']; + $datarray["owner-id"] = get_contact($datarray["owner-link"], 0); $datarray['author-name'] = $author['name']; $datarray['author-link'] = $author['url']; $datarray['author-avatar'] = $author['thumb']; + $datarray["author-id"] = get_contact($datarray["author-link"], 0); $datarray['created'] = datetime_convert(); $datarray['edited'] = datetime_convert(); $datarray['commented'] = datetime_convert(); @@ -711,6 +718,7 @@ function item_post(&$a) { $datarray['moderated'] = $allow_moderated; $datarray['gcontact-id'] = get_gcontact_id(array("url" => $datarray['author-link'], "network" => $datarray['network'], "photo" => $datarray['author-avatar'], "name" => $datarray['author-name'])); + /** * These fields are for the convenience of plugins... * 'self' if true indicates the owner is posting on their own wall @@ -721,6 +729,11 @@ function item_post(&$a) { $datarray['self'] = $self; // $datarray['prvnets'] = $user['prvnets']; + $datarray['parent-uri'] = ($parent == 0) ? $uri : $parent_item['uri']; + $datarray['plink'] = $a->get_baseurl().'/display/'.urlencode($datarray['guid']); + $datarray['last-child'] = 1; + $datarray['visible'] = 1; + if($orig_post) $datarray['edit'] = true; @@ -743,7 +756,7 @@ function item_post(&$a) { if(x($datarray,'cancel')) { logger('mod_item: post cancelled by plugin.'); if($return_path) { - goaway($a->get_baseurl() . "/" . $return_path); + goaway($return_path); } $json = array('cancel' => 1); @@ -779,21 +792,38 @@ function item_post(&$a) { // update filetags in pconfig file_tag_update_pconfig($uid,$categories_old,$categories_new,'category'); - proc_run('php', "include/notifier.php", 'edit_post', "$post_id"); + proc_run(PRIORITY_HIGH, "include/notifier.php", 'edit_post', $post_id); if((x($_REQUEST,'return')) && strlen($return_path)) { logger('return: ' . $return_path); - goaway($a->get_baseurl() . "/" . $return_path ); + goaway($return_path); } killme(); - } - else + } else $post_id = 0; + q("COMMIT"); + q("START TRANSACTION;"); - $r = q("INSERT INTO `item` (`guid`, `extid`, `uid`,`type`,`wall`,`gravity`, `network`, `contact-id`,`owner-name`,`owner-link`,`owner-avatar`, `author-name`, `author-link`, `author-avatar`, - `created`, `edited`, `commented`, `received`, `changed`, `uri`, `thr-parent`, `title`, `body`, `app`, `location`, `coord`, `tag`, `inform`, `verb`, `object-type`, `postopts`, - `allow_cid`, `allow_gid`, `deny_cid`, `deny_gid`, `private`, `pubmail`, `attach`, `bookmark`,`origin`, `moderated`, `file`, `rendered-html`, `rendered-hash`) - VALUES( '%s', '%s', %d, '%s', %d, %d, '%s', %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', %d, %d, %d, '%s', '%s', '%s')", + $r = q("INSERT INTO `item` (`guid`, `extid`, `uid`,`type`,`wall`,`gravity`, `network`, `contact-id`, + `owner-name`,`owner-link`,`owner-avatar`, `owner-id`, + `author-name`, `author-link`, `author-avatar`, `author-id`, + `created`, `edited`, `commented`, `received`, `changed`, + `uri`, `thr-parent`, `title`, `body`, `app`, `location`, `coord`, + `tag`, `inform`, `verb`, `object-type`, `postopts`, + `allow_cid`, `allow_gid`, `deny_cid`, `deny_gid`, `private`, + `pubmail`, `attach`, `bookmark`,`origin`, `moderated`, `file`, + `rendered-html`, `rendered-hash`, + `parent`, `parent-uri`, `plink`, `last-child`, `visible`) + VALUES('%s', '%s', %d, '%s', %d, %d, '%s', %d, + '%s', '%s', '%s', %d, + '%s', '%s', '%s', %d, + '%s', '%s', '%s', '%s', '%s', + '%s', '%s', '%s', '%s', '%s', '%s', '%s', + '%s', '%s', '%s', '%s', '%s', + '%s', '%s', '%s', '%s', %d, + %d, '%s', %d, %d, %d, '%s', + '%s', '%s', + %d, '%s', '%s', %d, %d)", dbesc($datarray['guid']), dbesc($datarray['extid']), intval($datarray['uid']), @@ -805,9 +835,11 @@ function item_post(&$a) { dbesc($datarray['owner-name']), dbesc($datarray['owner-link']), dbesc($datarray['owner-avatar']), + intval($datarray['owner-id']), dbesc($datarray['author-name']), dbesc($datarray['author-link']), dbesc($datarray['author-avatar']), + intval($datarray['author-id']), dbesc($datarray['created']), dbesc($datarray['edited']), dbesc($datarray['commented']), @@ -837,23 +869,39 @@ function item_post(&$a) { intval($datarray['moderated']), dbesc($datarray['file']), dbesc($datarray['rendered-html']), - dbesc($datarray['rendered-hash']) + dbesc($datarray['rendered-hash']), + intval($datarray['parent']), + dbesc($datarray['parent-uri']), + dbesc($datarray['plink']), + intval($datarray['last-child']), + intval($datarray['visible']) ); - $r = q("SELECT `id` FROM `item` WHERE `uri` = '%s' LIMIT 1", - dbesc($datarray['uri'])); - if(!count($r)) { + if (dbm::is_result($r)) { + $r = q("SELECT LAST_INSERT_ID() AS `item-id`"); + if (dbm::is_result($r)) { + $post_id = $r[0]['item-id']; + } else { + $post_id = 0; + } + } else { + logger('mod_item: unable to create post.'); + $post_id = 0; + } + + if ($post_id == 0) { + q("COMMIT"); logger('mod_item: unable to retrieve post that was just stored.'); - notice( t('System error. Post not saved.') . EOL); - goaway($a->get_baseurl() . "/" . $return_path ); + notice(t('System error. Post not saved.') . EOL); + goaway($return_path); // NOTREACHED } - $post_id = $r[0]['id']; logger('mod_item: saved item ' . $post_id); $datarray["id"] = $post_id; - $datarray["plink"] = $a->get_baseurl().'/display/'.urlencode($datarray["guid"]); + + item_set_last_item($datarray); // update filetags in pconfig file_tag_update_pconfig($uid,$categories_old,$categories_new,'category'); @@ -861,23 +909,18 @@ function item_post(&$a) { if($parent) { // This item is the last leaf and gets the comment box, clear any ancestors - $r = q("UPDATE `item` SET `last-child` = 0, `changed` = '%s' WHERE `parent` = %d ", + $r = q("UPDATE `item` SET `last-child` = 0, `changed` = '%s' WHERE `parent` = %d AND `last-child` AND `id` != %d", + dbesc(datetime_convert()), + intval($parent), + intval($post_id) + ); + + // update the commented timestamp on the parent + q("UPDATE `item` SET `visible` = 1, `commented` = '%s', `changed` = '%s' WHERE `id` = %d", + dbesc(datetime_convert()), dbesc(datetime_convert()), intval($parent) ); - update_thread($parent, true); - - // Inherit ACLs from the parent item. - - $r = q("UPDATE `item` SET `allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s', `private` = %d - WHERE `id` = %d", - dbesc($parent_item['allow_cid']), - dbesc($parent_item['allow_gid']), - dbesc($parent_item['deny_cid']), - dbesc($parent_item['deny_gid']), - intval($parent_item['private']), - intval($post_id) - ); if($contact_record != $author) { notification(array( @@ -907,6 +950,10 @@ function item_post(&$a) { } else { $parent = $post_id; + $r = q("UPDATE `item` SET `parent` = %d WHERE `id` = %d", + intval($parent), + intval($post_id)); + if($contact_record != $author) { notification(array( 'type' => NOTIFY_WALL, @@ -926,41 +973,6 @@ function item_post(&$a) { } } - // fallback so that parent always gets set to non-zero. - - if(! $parent) - $parent = $post_id; - - $r = q("UPDATE `item` SET `parent` = %d, `parent-uri` = '%s', `plink` = '%s', `changed` = '%s', `last-child` = 1, `visible` = 1 - WHERE `id` = %d", - intval($parent), - dbesc(($parent == $post_id) ? $uri : $parent_item['uri']), - dbesc($a->get_baseurl().'/display/'.urlencode($datarray['guid'])), - dbesc(datetime_convert()), - intval($post_id) - ); - - // photo comments turn the corresponding item visible to the profile wall - // This way we don't see every picture in your new photo album posted to your wall at once. - // They will show up as people comment on them. - - if(! $parent_item['visible']) { - $r = q("UPDATE `item` SET `visible` = 1 WHERE `id` = %d", - intval($parent_item['id']) - ); - update_thread($parent_item['id']); - } - - // update the commented timestamp on the parent - - q("UPDATE `item` set `commented` = '%s', `changed` = '%s' WHERE `id` = %d", - dbesc(datetime_convert()), - dbesc(datetime_convert()), - intval($parent) - ); - if ($post_id != $parent) - update_thread($parent); - call_hooks('post_local_end', $datarray); if(strlen($emailcc) && $profile_uid == local_user()) { @@ -997,11 +1009,23 @@ function item_post(&$a) { } } + if ($post_id == $parent) { + add_thread($post_id); + } else { + update_thread($parent, true); + } + + q("COMMIT"); + create_tags_from_item($post_id); create_files_from_item($post_id); - if ($post_id == $parent) - add_thread($post_id); + // Insert an item entry for UID=0 for global entries + if ($post_id != $parent) { + add_shadow_thread($post_id); + } else { + add_shadow_entry($post_id); + } // This is a real juggling act on shared hosting services which kill your processes // e.g. dreamhost. We used to start delivery to our native delivery agents in the background @@ -1012,7 +1036,7 @@ function item_post(&$a) { // Currently the only realistic fixes are to use a reliable server - which precludes shared hosting, // or cut back on plugins which do remote deliveries. - proc_run('php', "include/notifier.php", $notify_type, "$post_id"); + proc_run(PRIORITY_HIGH, "include/notifier.php", $notify_type, $post_id); logger('post_complete'); @@ -1027,7 +1051,7 @@ function item_post_return($baseurl, $api_source, $return_path) { return; if($return_path) { - goaway($baseurl . "/" . $return_path); + goaway($return_path); } $json = array('success' => 1); diff --git a/mod/maintenance.php b/mod/maintenance.php index b50c94c9b..3d21ce40b 100644 --- a/mod/maintenance.php +++ b/mod/maintenance.php @@ -1,6 +1,10 @@ t('System down for maintenance') )); diff --git a/mod/match.php b/mod/match.php index 834191157..33e07c91c 100644 --- a/mod/match.php +++ b/mod/match.php @@ -81,7 +81,7 @@ function match_content(&$a) { 'details' => $contact_details['location'], 'tags' => $contact_details['keywords'], 'about' => $contact_details['about'], - 'account_type' => (($contact_details['community']) ? t('Forum') : ''), + 'account_type' => account_type($contact_details), 'thumb' => proxy_url($jj->photo, false, PROXY_SIZE_THUMB), 'inttxt' => ' ' . t('is interested in:'), 'conntxt' => t('Connect'), diff --git a/mod/message.php b/mod/message.php index ef5dce826..4bd73d0ce 100644 --- a/mod/message.php +++ b/mod/message.php @@ -9,7 +9,7 @@ function message_init(&$a) { $tabs = ''; if ($a->argc >1 && is_numeric($a->argv[1])) { - $tabs = render_messages(get_messages(local_user(),0,5), 'mail_list.tpl'); + $tabs = render_messages(get_messages(local_user(),0,5), 'mail_list.tpl'); } $new = array( @@ -373,11 +373,13 @@ function message_content(&$a) { intval(local_user()) ); - if(count($r)) $a->set_pager_total($r[0]['total']); + if (dbm::is_result($r)) { + $a->set_pager_total($r[0]['total']); + } $r = get_messages(local_user(), $a->pager['start'], $a->pager['itemspage']); - if(! count($r)) { + if(! dbm::is_result($r)) { info( t('No messages.') . EOL); return $o; } @@ -562,7 +564,7 @@ function get_messages($user, $lstart, $lend) { ); } -function render_messages($msg, $t) { +function render_messages(array $msg, $t) { $a = get_app(); diff --git a/mod/mood.php b/mod/mood.php index 5e6ca0fcf..f804af0c0 100644 --- a/mod/mood.php +++ b/mod/mood.php @@ -95,13 +95,13 @@ function mood_init(&$a) { intval($uid), intval($item_id) ); - proc_run('php',"include/notifier.php","tag","$item_id"); + proc_run(PRIORITY_HIGH, "include/notifier.php", "tag", $item_id); } call_hooks('post_local_end', $arr); - proc_run('php',"include/notifier.php","like","$post_id"); + proc_run(PRIORITY_HIGH, "include/notifier.php", "like", $post_id); return; } diff --git a/mod/network.php b/mod/network.php index ba97b4a4c..559bad0a3 100644 --- a/mod/network.php +++ b/mod/network.php @@ -122,7 +122,7 @@ function network_init(&$a) { $search = ((x($_GET,'search')) ? escape_tags($_GET['search']) : ''); if(x($_GET,'save')) { - $r = q("SELECT * FROM `search` WHERE `uid` = %d AND `term` = '%s' LIMIT 1", + $r = qu("SELECT * FROM `search` WHERE `uid` = %d AND `term` = '%s' LIMIT 1", intval(local_user()), dbesc($search) ); @@ -176,7 +176,7 @@ function saved_searches($search) { $o = ''; - $r = q("SELECT `id`,`term` FROM `search` WHERE `uid` = %d", + $r = qu("SELECT `id`,`term` FROM `search` WHERE `uid` = %d", intval(local_user()) ); @@ -280,7 +280,8 @@ function network_query_get_sel_tab($a) { } /** - * Return selected network from query + * @brief Return selected network from query + * @return string Name of the selected network */ function network_query_get_sel_net() { $network = false; @@ -348,6 +349,466 @@ function network_content(&$a, $update = 0) { $o = ''; + + + $contact_id = $a->cid; + + require_once('include/acl_selectors.php'); + + $cid = ((x($_GET,'cid')) ? intval($_GET['cid']) : 0); + $star = ((x($_GET,'star')) ? intval($_GET['star']) : 0); + $bmark = ((x($_GET,'bmark')) ? intval($_GET['bmark']) : 0); + $order = ((x($_GET,'order')) ? notags($_GET['order']) : 'comment'); + $liked = ((x($_GET,'liked')) ? intval($_GET['liked']) : 0); + $conv = ((x($_GET,'conv')) ? intval($_GET['conv']) : 0); + $spam = ((x($_GET,'spam')) ? intval($_GET['spam']) : 0); + $nets = ((x($_GET,'nets')) ? $_GET['nets'] : ''); + $cmin = ((x($_GET,'cmin')) ? intval($_GET['cmin']) : 0); + $cmax = ((x($_GET,'cmax')) ? intval($_GET['cmax']) : 99); + $file = ((x($_GET,'file')) ? $_GET['file'] : ''); + + + + if(x($_GET,'search') || x($_GET,'file')) + $nouveau = true; + if($cid) + $def_acl = array('allow_cid' => '<' . intval($cid) . '>'); + + if($nets) { + $r = qu("SELECT `id` FROM `contact` WHERE `uid` = %d AND network = '%s' AND `self` = 0", + intval(local_user()), + dbesc($nets) + ); + + $str = ''; + if(count($r)) + foreach($r as $rr) + $str .= '<' . $rr['id'] . '>'; + if(strlen($str)) + $def_acl = array('allow_cid' => $str); + } + set_pconfig(local_user(), 'network.view', 'net.selected', ($nets ? $nets : 'all')); + + if(!$update AND !$rawmode) { + $tabs = network_tabs($a); + $o .= $tabs; + + if($group) { + if(($t = group_public_members($group)) && (! get_pconfig(local_user(),'system','nowarn_insecure'))) { + notice( sprintf( tt('Warning: This group contains %s member from an insecure network.', + 'Warning: This group contains %s members from an insecure network.', + $t), $t ) . EOL); + notice( t('Private messages to this group are at risk of public disclosure.') . EOL); + } + } + + nav_set_selected('network'); + + $content = ""; + + if ($cid) { + // If $cid belongs to a communitity forum or a privat goup,.add a mention to the status editor + $contact = qu("SELECT `nick` FROM `contact` WHERE `id` = %d AND `uid` = %d AND (`forum` OR `prv`) ", + intval($cid), + intval(local_user()) + ); + if ($contact) + $content = "@".$contact[0]["nick"]."+".$cid; + } + + $x = array( + 'is_owner' => true, + 'allow_location' => $a->user['allow_location'], + 'default_location' => $a->user['default-location'], + 'nickname' => $a->user['nickname'], + 'lockstate'=> ((($group) || ($cid) || ($nets) || (is_array($a->user) && + ((strlen($a->user['allow_cid'])) || (strlen($a->user['allow_gid'])) || + (strlen($a->user['deny_cid'])) || (strlen($a->user['deny_gid']))))) ? 'lock' : 'unlock'), + 'default_perms' => get_acl_permissions($a->user), + 'acl' => populate_acl((($group || $cid || $nets) ? $def_acl : $a->user), true), + 'bang' => (($group || $cid || $nets) ? '!' : ''), + 'visitor' => 'block', + 'profile_uid' => local_user(), + 'acl_data' => construct_acl_data($a, $a->user), // For non-Javascript ACL selector + 'content' => $content, + ); + + $o .= status_editor($a,$x); + + } + + // We don't have to deal with ACLs on this page. You're looking at everything + // that belongs to you, hence you can see all of it. We will filter by group if + // desired. + + $sql_post_table = ""; + $sql_options = (($star) ? " and starred = 1 " : ''); + $sql_options .= (($bmark) ? " and bookmark = 1 " : ''); + $sql_extra = $sql_options; + $sql_extra2 = ""; + $sql_extra3 = ""; + $sql_table = "`thread`"; + $sql_parent = "`iid`"; + + if ($nouveau OR strlen($file) OR $update) { + $sql_table = "`item`"; + $sql_parent = "`parent`"; + } + + $sql_nets = (($nets) ? sprintf(" and $sql_table.`network` = '%s' ", dbesc($nets)) : ''); + + if($group) { + $r = qu("SELECT `name`, `id` FROM `group` WHERE `id` = %d AND `uid` = %d LIMIT 1", + intval($group), + intval($_SESSION['uid']) + ); + if(! count($r)) { + if($update) + killme(); + notice( t('No such group') . EOL ); + goaway('network/0'); + // NOTREACHED + } + + $contacts = expand_groups(array($group)); + $gcontacts = expand_groups(array($group), false, true); + + if((is_array($contacts)) && count($contacts)) { + $contact_str_self = ""; + $gcontact_str_self = ""; + + $contact_str = implode(',',$contacts); + $gcontact_str = implode(',',$gcontacts); + $self = qu("SELECT `contact`.`id`, `gcontact`.`id` AS `gid` FROM `contact` + INNER JOIN `gcontact` ON `gcontact`.`nurl` = `contact`.`nurl` + WHERE `uid` = %d AND `self`", intval($_SESSION['uid'])); + if (count($self)) { + $contact_str_self = $self[0]["id"]; + $gcontact_str_self = $self[0]["gid"]; + } + + $sql_post_table = " INNER JOIN `item` AS `temp1` ON `temp1`.`id` = ".$sql_table.".".$sql_parent; + $sql_extra3 .= " AND ($sql_table.`contact-id` IN ($contact_str) "; + $sql_extra3 .= " OR ($sql_table.`contact-id` = '$contact_str_self' AND `temp1`.`allow_gid` LIKE '".protect_sprintf('%<'.intval($group).'>%')."' AND `temp1`.`private`))"; + } else { + $sql_extra3 .= " AND false "; + info( t('Group is empty')); + } + + $o = replace_macros(get_markup_template("section_title.tpl"),array( + '$title' => sprintf( t('Group: %s'), $r[0]['name']) + )) . $o; + + } + elseif($cid) { + + $r = qu("SELECT `id`,`name`,`network`,`writable`,`nurl`, `forum`, `prv`, `contact-type`, `addr`, `thumb`, `location` FROM `contact` WHERE `id` = %d + AND `blocked` = 0 AND `pending` = 0 LIMIT 1", + intval($cid) + ); + if(count($r)) { + $sql_extra = " AND ".$sql_table.".`contact-id` = ".intval($cid); + + $entries[0] = array( + 'id' => 'network', + 'name' => htmlentities($r[0]['name']), + 'itemurl' => (($r[0]['addr']) ? ($r[0]['addr']) : ($r[0]['nurl'])), + 'thumb' => proxy_url($r[0]['thumb'], false, PROXY_SIZE_THUMB), + 'details' => $r[0]['location'], + ); + + $entries[0]["account_type"] = account_type($r[0]); + + $o = replace_macros(get_markup_template("viewcontact_template.tpl"),array( + 'contacts' => $entries, + 'id' => 'network', + )) . $o; + + if($r[0]['network'] === NETWORK_OSTATUS && $r[0]['writable'] && (! get_pconfig(local_user(),'system','nowarn_insecure'))) { + notice( t('Private messages to this person are at risk of public disclosure.') . EOL); + } + + } + else { + notice( t('Invalid contact.') . EOL); + goaway('network'); + // NOTREACHED + } + } + + if((! $group) && (! $cid) && (! $update) && (! get_config('theme','hide_eventlist'))) { + $o .= get_birthdays(); + $o .= get_events(); + } + + if($datequery) { + $sql_extra3 .= protect_sprintf(sprintf(" AND $sql_table.created <= '%s' ", dbesc(datetime_convert(date_default_timezone_get(),'',$datequery)))); + } + if($datequery2) { + $sql_extra3 .= protect_sprintf(sprintf(" AND $sql_table.created >= '%s' ", dbesc(datetime_convert(date_default_timezone_get(),'',$datequery2)))); + } + + //$sql_extra2 = (($nouveau) ? '' : " AND `item`.`parent` = `item`.`id` "); + $sql_extra2 = (($nouveau) ? '' : $sql_extra2); + $sql_extra3 = (($nouveau) ? '' : $sql_extra3); + $sql_order = ""; + $order_mode = "received"; + $tag = false; + + if(x($_GET,'search')) { + $search = escape_tags($_GET['search']); + + if(strpos($search,'#') === 0) { + $tag = true; + $search = substr($search,1); + } + + if (get_config('system','only_tag_search')) + $tag = true; + + if($tag) { + $sql_extra = ""; + + $sql_post_table = sprintf("INNER JOIN (SELECT `oid` FROM `term` WHERE `term` = '%s' AND `otype` = %d AND `type` = %d AND `uid` = %d ORDER BY `tid` DESC) AS `term` ON `item`.`id` = `term`.`oid` ", + dbesc(protect_sprintf($search)), intval(TERM_OBJ_POST), intval(TERM_HASHTAG), intval(local_user())); + $sql_order = "`item`.`id`"; + $order_mode = "id"; + } else { + if (get_config('system','use_fulltext_engine')) + $sql_extra = sprintf(" AND MATCH (`item`.`body`, `item`.`title`) AGAINST ('%s' in boolean mode) ", dbesc(protect_sprintf($search))); + else + $sql_extra = sprintf(" AND `item`.`body` REGEXP '%s' ", dbesc(protect_sprintf(preg_quote($search)))); + $sql_order = "`item`.`received`"; + $order_mode = "received"; + } + } + if(strlen($file)) { + $sql_post_table = sprintf("INNER JOIN (SELECT `oid` FROM `term` WHERE `term` = '%s' AND `otype` = %d AND `type` = %d AND `uid` = %d ORDER BY `tid` DESC) AS `term` ON `item`.`id` = `term`.`oid` ", + dbesc(protect_sprintf($file)), intval(TERM_OBJ_POST), intval(TERM_FILE), intval(local_user())); + $sql_order = "`item`.`id`"; + $order_mode = "id"; + } + + if($conv) + $sql_extra3 .= " AND $sql_table.`mention`"; + + if($update) { + + // only setup pagination on initial page view + $pager_sql = ''; + + } + else { + if(get_config('system', 'old_pager')) { + $r = qu("SELECT COUNT(*) AS `total` + FROM $sql_table $sql_post_table INNER JOIN `contact` ON `contact`.`id` = $sql_table.`contact-id` + AND NOT `contact`.`blocked` AND NOT `contact`.`pending` + WHERE $sql_table.`uid` = %d AND $sql_table.`visible` AND NOT $sql_table.`deleted` + $sql_extra2 $sql_extra3 + $sql_extra $sql_nets ", + intval($_SESSION['uid']) + ); + + if(count($r)) { + $a->set_pager_total($r[0]['total']); + } + } + + // check if we serve a mobile device and get the user settings + // accordingly + if ($a->is_mobile) { + $itemspage_network = get_pconfig(local_user(),'system','itemspage_mobile_network'); + $itemspage_network = ((intval($itemspage_network)) ? $itemspage_network : 20); + } else { + $itemspage_network = get_pconfig(local_user(),'system','itemspage_network'); + $itemspage_network = ((intval($itemspage_network)) ? $itemspage_network : 40); + } + + // now that we have the user settings, see if the theme forces + // a maximum item number which is lower then the user choice + if(($a->force_max_items > 0) && ($a->force_max_items < $itemspage_network)) + $itemspage_network = $a->force_max_items; + + $a->set_pager_itemspage($itemspage_network); + $pager_sql = sprintf(" LIMIT %d, %d ",intval($a->pager['start']), intval($a->pager['itemspage'])); + } + + if($nouveau) { + $simple_update = (($update) ? " AND `item`.`unseen` " : ''); + + if ($sql_order == "") + $sql_order = "`item`.`received`"; + + // "New Item View" - show all items unthreaded in reverse created date order + $items = qu("SELECT %s FROM $sql_table $sql_post_table %s + WHERE %s AND `item`.`uid` = %d + $simple_update + $sql_extra $sql_nets + ORDER BY $sql_order DESC $pager_sql ", + item_fieldlists(), item_joins(), item_condition(), + intval($_SESSION['uid']) + ); + + $update_unseen = ' WHERE uid = ' . intval($_SESSION['uid']) . " AND unseen = 1 $sql_extra $sql_nets"; + } else { + + // Normal conversation view + + + if($order === 'post') { + $ordering = "`created`"; + if ($sql_order == "") + $order_mode = "created"; + } else { + $ordering = "`commented`"; + if ($sql_order == "") + $order_mode = "commented"; + } + + if ($sql_order == "") + $sql_order = "$sql_table.$ordering"; + + if (($_GET["offset"] != "")) + $sql_extra3 .= sprintf(" AND $sql_order <= '%s'", dbesc($_GET["offset"])); + + // Fetch a page full of parent items for this page + if($update) { + if (get_config("system", "like_no_comment")) + $sql_extra4 = " AND `item`.`verb` = '".ACTIVITY_POST."'"; + else + $sql_extra4 = ""; + + $r = qu("SELECT `item`.`parent` AS `item_id`, `item`.`network` AS `item_network`, `contact`.`uid` AS `contact_uid` + FROM $sql_table $sql_post_table INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id` + AND NOT `contact`.`blocked` AND NOT `contact`.`pending` + WHERE `item`.`uid` = %d AND `item`.`visible` AND NOT `item`.`deleted` $sql_extra4 + AND NOT `item`.`moderated` AND `item`.`unseen` + $sql_extra3 $sql_extra $sql_nets + ORDER BY `item_id` DESC LIMIT 100", + intval(local_user()) + ); + } else { + $r = qu("SELECT `thread`.`iid` AS `item_id`, `thread`.`network` AS `item_network`, `contact`.`uid` AS `contact_uid` + FROM $sql_table $sql_post_table STRAIGHT_JOIN `contact` ON `contact`.`id` = `thread`.`contact-id` + AND NOT `contact`.`blocked` AND NOT `contact`.`pending` + WHERE `thread`.`uid` = %d AND `thread`.`visible` AND NOT `thread`.`deleted` + AND NOT `thread`.`moderated` + $sql_extra2 $sql_extra3 $sql_extra $sql_nets + ORDER BY $sql_order DESC $pager_sql ", + intval(local_user()) + ); + } + + // Then fetch all the children of the parents that are on this page + + $parents_arr = array(); + $parents_str = ''; + $date_offset = ""; + + if(dbm::is_result($r)) { + foreach($r as $rr) + if(! in_array($rr['item_id'],$parents_arr)) + $parents_arr[] = $rr['item_id']; + + $parents_str = implode(", ", $parents_arr); + + // splitted into separate queries to avoid the problem with very long threads + // so always the last X comments are loaded + // This problem can occur expecially with imported facebook posts + $max_comments = get_config("system", "max_comments"); + if ($max_comments == 0) + $max_comments = 100; + + $items = array(); + + foreach ($parents_arr AS $parents) { + $thread_items = qu(item_query()." AND `item`.`uid` = %d + AND `item`.`parent` = %d + ORDER BY `item`.`commented` DESC LIMIT %d", + intval(local_user()), + intval($parents), + intval($max_comments + 1) + ); + $items = array_merge($items, $thread_items); + } + $items = conv_sort($items,$ordering); + } else { + $items = array(); + } + + if ($_GET["offset"] == "") + $date_offset = $items[0][$order_mode]; + else + $date_offset = $_GET["offset"]; + + $a->page_offset = $date_offset; + + if($parents_str) + $update_unseen = ' WHERE uid = ' . intval(local_user()) . ' AND unseen = 1 AND parent IN ( ' . dbesc($parents_str) . ' )'; + } + + // We aren't going to try and 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 top level network page just mark everything seen. + + +// The $update_unseen is a bit unreliable if you have stuff coming into your stream from a new contact - +// and other feeds that bring in stuff from the past. One can't find it all. +// I'm reviving this block to mark everything seen on page 1 of the network as a temporary measure. +// The correct solution is to implement a network notifications box just like the system notifications popup +// with the ability in the popup to "mark all seen". +// Several people are complaining because there are unseen messages they can't find and as time goes +// on they just get buried deeper. It has happened to me a couple of times also. + + + if((! $group) && (! $cid) && (! $star)) { + + $unseen = q("SELECT `id` FROM `item` WHERE `unseen` AND `uid` = %d", + intval(local_user())); + + if ($unseen) + $r = q("UPDATE `item` SET `unseen` = 0 + WHERE `unseen` = 1 AND `uid` = %d", + intval(local_user()) + ); + } + else { + if($update_unseen) { + + $unseen = q("SELECT `id` FROM `item` ".$update_unseen); + + if ($unseen) + $r = q("UPDATE `item` SET `unseen` = 0 $update_unseen"); + } + } + + // Set this so that the conversation function can find out contact info for our wall-wall items + $a->page_contact = $a->contact; + + $mode = (($nouveau) ? 'network-new' : 'network'); + + $o .= conversation($a,$items,$mode,$update); + + if(!$update) { + if(get_pconfig(local_user(),'system','infinite_scroll')) { + $o .= scroll_loader(); + } elseif(!get_config('system', 'old_pager')) { + $o .= alt_pager($a,count($items)); + } else { + $o .= paginate($a); + } + } + + return $o; +} + +/** + * @brief Get the network tabs menu + * + * @param app $a The global App + * @return string Html of the networktab + */ +function network_tabs($a) { // item filter tabs /// @TODO fix this logic, reduce duplication /// $a->page['content'] .= '
      '; @@ -430,464 +891,10 @@ function network_content(&$a, $update = 0) { $arr = array('tabs' => $tabs); call_hooks('network_tabs', $arr); + + $tpl = get_markup_template('common_tabs.tpl'); - $o .= replace_macros(get_markup_template('common_tabs.tpl'), array('$tabs'=> $arr['tabs'])); + return replace_macros($tpl, array('$tabs' => $arr['tabs'])); // --- end item filter tabs - - $contact_id = $a->cid; - - require_once('include/acl_selectors.php'); - - $cid = ((x($_GET,'cid')) ? intval($_GET['cid']) : 0); - $star = ((x($_GET,'star')) ? intval($_GET['star']) : 0); - $bmark = ((x($_GET,'bmark')) ? intval($_GET['bmark']) : 0); - $order = ((x($_GET,'order')) ? notags($_GET['order']) : 'comment'); - $liked = ((x($_GET,'liked')) ? intval($_GET['liked']) : 0); - $conv = ((x($_GET,'conv')) ? intval($_GET['conv']) : 0); - $spam = ((x($_GET,'spam')) ? intval($_GET['spam']) : 0); - $nets = ((x($_GET,'nets')) ? $_GET['nets'] : ''); - $cmin = ((x($_GET,'cmin')) ? intval($_GET['cmin']) : 0); - $cmax = ((x($_GET,'cmax')) ? intval($_GET['cmax']) : 99); - $file = ((x($_GET,'file')) ? $_GET['file'] : ''); - - - - if(x($_GET,'search') || x($_GET,'file')) - $nouveau = true; - if($cid) - $def_acl = array('allow_cid' => '<' . intval($cid) . '>'); - - if($nets) { - $r = q("SELECT `id` FROM `contact` WHERE `uid` = %d AND network = '%s' AND `self` = 0", - intval(local_user()), - dbesc($nets) - ); - - $str = ''; - if(count($r)) - foreach($r as $rr) - $str .= '<' . $rr['id'] . '>'; - if(strlen($str)) - $def_acl = array('allow_cid' => $str); - } - set_pconfig(local_user(), 'network.view', 'net.selected', ($nets ? $nets : 'all')); - - if(!$update AND !$rawmode) { - if($group) { - if(($t = group_public_members($group)) && (! get_pconfig(local_user(),'system','nowarn_insecure'))) { - notice( sprintf( tt('Warning: This group contains %s member from an insecure network.', - 'Warning: This group contains %s members from an insecure network.', - $t), $t ) . EOL); - notice( t('Private messages to this group are at risk of public disclosure.') . EOL); - } - } - - nav_set_selected('network'); - - $content = ""; - - if ($cid) { - // If $cid belongs to a communitity forum or a privat goup,.add a mention to the status editor - $contact = q("SELECT `nick` FROM `contact` WHERE `id` = %d AND `uid` = %d AND (`forum` OR `prv`) ", - intval($cid), - intval(local_user()) - ); - if ($contact) - $content = "@".$contact[0]["nick"]."+".$cid; - } - - $x = array( - 'is_owner' => true, - 'allow_location' => $a->user['allow_location'], - 'default_location' => $a->user['default-location'], - 'nickname' => $a->user['nickname'], - 'lockstate'=> ((($group) || ($cid) || ($nets) || (is_array($a->user) && - ((strlen($a->user['allow_cid'])) || (strlen($a->user['allow_gid'])) || - (strlen($a->user['deny_cid'])) || (strlen($a->user['deny_gid']))))) ? 'lock' : 'unlock'), - 'default_perms' => get_acl_permissions($a->user), - 'acl' => populate_acl((($group || $cid || $nets) ? $def_acl : $a->user), true), - 'bang' => (($group || $cid || $nets) ? '!' : ''), - 'visitor' => 'block', - 'profile_uid' => local_user(), - 'acl_data' => construct_acl_data($a, $a->user), // For non-Javascript ACL selector - 'content' => $content, - ); - - $o .= status_editor($a,$x); - - } - - // We don't have to deal with ACLs on this page. You're looking at everything - // that belongs to you, hence you can see all of it. We will filter by group if - // desired. - - $sql_post_table = ""; - $sql_options = (($star) ? " and starred = 1 " : ''); - $sql_options .= (($bmark) ? " and bookmark = 1 " : ''); - $sql_extra = $sql_options; - $sql_extra2 = ""; - $sql_extra3 = ""; - $sql_table = "`thread`"; - $sql_parent = "`iid`"; - - if ($nouveau OR strlen($file) OR $update) { - $sql_table = "`item`"; - $sql_parent = "`parent`"; - } - - $sql_nets = (($nets) ? sprintf(" and $sql_table.`network` = '%s' ", dbesc($nets)) : ''); - - if($group) { - $r = q("SELECT `name`, `id` FROM `group` WHERE `id` = %d AND `uid` = %d LIMIT 1", - intval($group), - intval($_SESSION['uid']) - ); - if(! count($r)) { - if($update) - killme(); - notice( t('No such group') . EOL ); - goaway('network/0'); - // NOTREACHED - } - - $contacts = expand_groups(array($group)); - $gcontacts = expand_groups(array($group), false, true); - - if((is_array($contacts)) && count($contacts)) { - $contact_str_self = ""; - $gcontact_str_self = ""; - - $contact_str = implode(',',$contacts); - $gcontact_str = implode(',',$gcontacts); - $self = q("SELECT `contact`.`id`, `gcontact`.`id` AS `gid` FROM `contact` - INNER JOIN `gcontact` ON `gcontact`.`nurl` = `contact`.`nurl` - WHERE `uid` = %d AND `self`", intval($_SESSION['uid'])); - if (count($self)) { - $contact_str_self = $self[0]["id"]; - $gcontact_str_self = $self[0]["gid"]; - } - - $sql_post_table = " INNER JOIN `item` AS `temp1` ON `temp1`.`id` = ".$sql_table.".".$sql_parent; - $sql_extra3 .= " AND ($sql_table.`contact-id` IN ($contact_str) "; - $sql_extra3 .= " OR ($sql_table.`contact-id` = '$contact_str_self' AND `temp1`.`allow_gid` LIKE '".protect_sprintf('%<'.intval($group).'>%')."' AND `temp1`.`private`))"; - } else { - $sql_extra3 .= " AND false "; - info( t('Group is empty')); - } - - $o = replace_macros(get_markup_template("section_title.tpl"),array( - '$title' => sprintf( t('Group: %s'), $r[0]['name']) - )) . $o; - - } - elseif($cid) { - - $r = q("SELECT `id`,`name`,`network`,`writable`,`nurl`, `forum`, `prv`, `addr`, `thumb`, `location` FROM `contact` WHERE `id` = %d - AND `blocked` = 0 AND `pending` = 0 LIMIT 1", - intval($cid) - ); - if(count($r)) { - $sql_extra = " AND ".$sql_table.".`contact-id` = ".intval($cid); - - $entries[0] = array( - 'id' => 'network', - 'name' => htmlentities($r[0]['name']), - 'itemurl' => (($r[0]['addr']) ? ($r[0]['addr']) : ($r[0]['nurl'])), - 'thumb' => proxy_url($r[0]['thumb'], false, PROXY_SIZE_THUMB), - 'account_type' => (($r[0]['forum']) || ($r[0]['prv']) ? t('Forum') : ''), - 'details' => $r[0]['location'], - ); - - $o = replace_macros(get_markup_template("viewcontact_template.tpl"),array( - 'contacts' => $entries, - 'id' => 'network', - )) . $o; - - if($r[0]['network'] === NETWORK_OSTATUS && $r[0]['writable'] && (! get_pconfig(local_user(),'system','nowarn_insecure'))) { - notice( t('Private messages to this person are at risk of public disclosure.') . EOL); - } - - } - else { - notice( t('Invalid contact.') . EOL); - goaway('network'); - // NOTREACHED - } - } - - if((! $group) && (! $cid) && (! $update) && (! get_config('theme','hide_eventlist'))) { - $o .= get_birthdays(); - $o .= get_events(); - } - - if($datequery) { - $sql_extra3 .= protect_sprintf(sprintf(" AND $sql_table.created <= '%s' ", dbesc(datetime_convert(date_default_timezone_get(),'',$datequery)))); - } - if($datequery2) { - $sql_extra3 .= protect_sprintf(sprintf(" AND $sql_table.created >= '%s' ", dbesc(datetime_convert(date_default_timezone_get(),'',$datequery2)))); - } - - //$sql_extra2 = (($nouveau) ? '' : " AND `item`.`parent` = `item`.`id` "); - $sql_extra2 = (($nouveau) ? '' : $sql_extra2); - $sql_extra3 = (($nouveau) ? '' : $sql_extra3); - $sql_order = ""; - $order_mode = "received"; - $tag = false; - - if(x($_GET,'search')) { - $search = escape_tags($_GET['search']); - - if(strpos($search,'#') === 0) { - $tag = true; - $search = substr($search,1); - } - - if (get_config('system','only_tag_search')) - $tag = true; - - if($tag) { - $sql_extra = ""; - - $sql_post_table = sprintf("INNER JOIN (SELECT `oid` FROM `term` WHERE `term` = '%s' AND `otype` = %d AND `type` = %d AND `uid` = %d ORDER BY `tid` DESC) AS `term` ON `item`.`id` = `term`.`oid` ", - dbesc(protect_sprintf($search)), intval(TERM_OBJ_POST), intval(TERM_HASHTAG), intval(local_user())); - $sql_order = "`item`.`id`"; - $order_mode = "id"; - } else { - if (get_config('system','use_fulltext_engine')) - $sql_extra = sprintf(" AND MATCH (`item`.`body`, `item`.`title`) AGAINST ('%s' in boolean mode) ", dbesc(protect_sprintf($search))); - else - $sql_extra = sprintf(" AND `item`.`body` REGEXP '%s' ", dbesc(protect_sprintf(preg_quote($search)))); - $sql_order = "`item`.`received`"; - $order_mode = "received"; - } - } - if(strlen($file)) { - $sql_post_table = sprintf("INNER JOIN (SELECT `oid` FROM `term` WHERE `term` = '%s' AND `otype` = %d AND `type` = %d AND `uid` = %d ORDER BY `tid` DESC) AS `term` ON `item`.`id` = `term`.`oid` ", - dbesc(protect_sprintf($file)), intval(TERM_OBJ_POST), intval(TERM_FILE), intval(local_user())); - $sql_order = "`item`.`id`"; - $order_mode = "id"; - } - - if($conv) - $sql_extra3 .= " AND $sql_table.`mention`"; - - if($update) { - - // only setup pagination on initial page view - $pager_sql = ''; - - } - else { - if(get_config('system', 'old_pager')) { - $r = q("SELECT COUNT(*) AS `total` - FROM $sql_table $sql_post_table INNER JOIN `contact` ON `contact`.`id` = $sql_table.`contact-id` - AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 - WHERE $sql_table.`uid` = %d AND $sql_table.`visible` = 1 AND $sql_table.`deleted` = 0 - $sql_extra2 $sql_extra3 - $sql_extra $sql_nets ", - intval($_SESSION['uid']) - ); - - if(count($r)) { - $a->set_pager_total($r[0]['total']); - } - } - - // check if we serve a mobile device and get the user settings - // accordingly - if ($a->is_mobile) { - $itemspage_network = get_pconfig(local_user(),'system','itemspage_mobile_network'); - $itemspage_network = ((intval($itemspage_network)) ? $itemspage_network : 20); - } else { - $itemspage_network = get_pconfig(local_user(),'system','itemspage_network'); - $itemspage_network = ((intval($itemspage_network)) ? $itemspage_network : 40); - } - - // now that we have the user settings, see if the theme forces - // a maximum item number which is lower then the user choice - if(($a->force_max_items > 0) && ($a->force_max_items < $itemspage_network)) - $itemspage_network = $a->force_max_items; - - $a->set_pager_itemspage($itemspage_network); - $pager_sql = sprintf(" LIMIT %d, %d ",intval($a->pager['start']), intval($a->pager['itemspage'])); - } - - if($nouveau) { - $simple_update = (($update) ? " AND `item`.`unseen` = 1 " : ''); - - if ($sql_order == "") - $sql_order = "`item`.`received`"; - - // "New Item View" - show all items unthreaded in reverse created date order - $items = q("SELECT %s, %s FROM $sql_table $sql_post_table - INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND %s - WHERE %s AND `item`.`uid` = %d - $simple_update - $sql_extra $sql_nets - ORDER BY $sql_order DESC $pager_sql ", - item_fieldlist(), contact_fieldlist(), - contact_condition(), item_condition(), - intval($_SESSION['uid']) - ); - - $update_unseen = ' WHERE uid = ' . intval($_SESSION['uid']) . " AND unseen = 1 $sql_extra $sql_nets"; - } else { - - // Normal conversation view - - - if($order === 'post') { - $ordering = "`created`"; - if ($sql_order == "") - $order_mode = "created"; - } else { - $ordering = "`commented`"; - if ($sql_order == "") - $order_mode = "commented"; - } - - if ($sql_order == "") - $sql_order = "$sql_table.$ordering"; - - if (($_GET["offset"] != "")) - $sql_extra3 .= sprintf(" AND $sql_order <= '%s'", dbesc($_GET["offset"])); - - // Fetch a page full of parent items for this page - if($update) { - if (!get_config("system", "like_no_comment")) - $sql_extra4 = "(`item`.`deleted` = 0 - OR `item`.`verb` = '".ACTIVITY_LIKE."' OR `item`.`verb` = '".ACTIVITY_DISLIKE."' - OR `item`.`verb` = '".ACTIVITY_ATTEND."' OR `item`.`verb` = '".ACTIVITY_ATTENDNO."' - OR `item`.`verb` = '".ACTIVITY_ATTENDMAYBE."')"; - else - $sql_extra4 = "`item`.`deleted` = 0 AND `item`.`verb` = '".ACTIVITY_POST."'"; - - $r = q("SELECT `item`.`parent` AS `item_id`, `item`.`network` AS `item_network`, `contact`.`uid` AS `contact_uid` - FROM $sql_table $sql_post_table INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id` - AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 - WHERE `item`.`uid` = %d AND `item`.`visible` = 1 AND $sql_extra4 - AND `item`.`moderated` = 0 AND `item`.`unseen` = 1 - $sql_extra3 $sql_extra $sql_nets ORDER BY `item_id` DESC LIMIT 100", - intval(local_user()) - ); - } else { - $r = q("SELECT `thread`.`iid` AS `item_id`, `thread`.`network` AS `item_network`, `contact`.`uid` AS `contact_uid` - FROM $sql_table $sql_post_table STRAIGHT_JOIN `contact` ON `contact`.`id` = `thread`.`contact-id` - AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 - WHERE `thread`.`uid` = %d AND `thread`.`visible` = 1 AND `thread`.`deleted` = 0 - AND `thread`.`moderated` = 0 - $sql_extra2 $sql_extra3 $sql_extra $sql_nets - ORDER BY $sql_order DESC $pager_sql ", - intval(local_user()) - ); - } - - // Then fetch all the children of the parents that are on this page - - $parents_arr = array(); - $parents_str = ''; - $date_offset = ""; - - if(count($r)) { - foreach($r as $rr) - if(! in_array($rr['item_id'],$parents_arr)) - $parents_arr[] = $rr['item_id']; - - $parents_str = implode(", ", $parents_arr); - - // splitted into separate queries to avoid the problem with very long threads - // so always the last X comments are loaded - // This problem can occur expecially with imported facebook posts - $max_comments = get_config("system", "max_comments"); - if ($max_comments == 0) - $max_comments = 100; - - $items = array(); - - foreach ($parents_arr AS $parents) { -// $sql_extra ORDER BY `item`.`commented` DESC LIMIT %d", - $thread_items = q("SELECT %s, %s FROM `item` - INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND %s - WHERE %s AND `item`.`uid` = %d - AND `item`.`parent` = %d - ORDER BY `item`.`commented` DESC LIMIT %d", - item_fieldlist(), contact_fieldlist(), - contact_condition(), item_condition(), - intval(local_user()), - intval($parents), - intval($max_comments + 1) - ); - $items = array_merge($items, $thread_items); - } - $items = conv_sort($items,$ordering); - } else { - $items = array(); - } - - if ($_GET["offset"] == "") - $date_offset = $items[0][$order_mode]; - else - $date_offset = $_GET["offset"]; - - $a->page_offset = $date_offset; - - if($parents_str) - $update_unseen = ' WHERE uid = ' . intval(local_user()) . ' AND unseen = 1 AND parent IN ( ' . dbesc($parents_str) . ' )'; - } - - // We aren't going to try and 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 top level network page just mark everything seen. - - -// The $update_unseen is a bit unreliable if you have stuff coming into your stream from a new contact - -// and other feeds that bring in stuff from the past. One can't find it all. -// I'm reviving this block to mark everything seen on page 1 of the network as a temporary measure. -// The correct solution is to implement a network notifications box just like the system notifications popup -// with the ability in the popup to "mark all seen". -// Several people are complaining because there are unseen messages they can't find and as time goes -// on they just get buried deeper. It has happened to me a couple of times also. - - - if((! $group) && (! $cid) && (! $star)) { - - $unseen = q("SELECT `id` FROM `item` WHERE `unseen` AND `uid` = %d", - intval(local_user())); - - if ($unseen) - $r = q("UPDATE `item` SET `unseen` = 0 - WHERE `unseen` = 1 AND `uid` = %d", - intval(local_user()) - ); - } - else { - if($update_unseen) { - - $unseen = q("SELECT `id` FROM `item` ".$update_unseen); - - if ($unseen) - $r = q("UPDATE `item` SET `unseen` = 0 $update_unseen"); - } - } - - // Set this so that the conversation function can find out contact info for our wall-wall items - $a->page_contact = $a->contact; - - $mode = (($nouveau) ? 'network-new' : 'network'); - - $o .= conversation($a,$items,$mode,$update); - - if(!$update) { - if(get_pconfig(local_user(),'system','infinite_scroll')) { - $o .= scroll_loader(); - } elseif(!get_config('system', 'old_pager')) { - $o .= alt_pager($a,count($items)); - } else { - $o .= paginate($a); - } - } - - return $o; } - diff --git a/mod/nodeinfo.php b/mod/nodeinfo.php index ba310a105..40094ee6e 100644 --- a/mod/nodeinfo.php +++ b/mod/nodeinfo.php @@ -185,20 +185,13 @@ function nodeinfo_cron() { } logger("cron_start"); - $users = q("SELECT profile.*, `user`.`login_date`, `lastitem`.`lastitem_date` - FROM (SELECT MAX(`item`.`changed`) as `lastitem_date`, `item`.`uid` - FROM `item` - WHERE `item`.`type` = 'wall' - GROUP BY `item`.`uid`) AS `lastitem` - RIGHT OUTER JOIN `user` ON `user`.`uid` = `lastitem`.`uid`, `contact`, `profile` - WHERE - `user`.`uid` = `contact`.`uid` AND `profile`.`uid` = `user`.`uid` - AND `profile`.`is-default` AND (`profile`.`publish` OR `profile`.`net-publish`) - AND `user`.`verified` AND `contact`.`self` - AND NOT `user`.`blocked` - AND NOT `user`.`account_removed` - AND NOT `user`.`account_expired`"); - + $users = qu("SELECT `user`.`uid`, `user`.`login_date`, `contact`.`last-item` + FROM `user` + INNER JOIN `profile` ON `profile`.`uid` = `user`.`uid` AND `profile`.`is-default` + INNER JOIN `contact` ON `contact`.`uid` = `user`.`uid` AND `contact`.`self` + WHERE (`profile`.`publish` OR `profile`.`net-publish`) AND `user`.`verified` + AND NOT `user`.`blocked` AND NOT `user`.`account_removed` + AND NOT `user`.`account_expired`"); if (is_array($users)) { $total_users = count($users); $active_users_halfyear = 0; @@ -209,11 +202,11 @@ function nodeinfo_cron() { foreach ($users AS $user) { if ((strtotime($user['login_date']) > $halfyear) OR - (strtotime($user['lastitem_date']) > $halfyear)) + (strtotime($user['last-item']) > $halfyear)) ++$active_users_halfyear; if ((strtotime($user['login_date']) > $month) OR - (strtotime($user['lastitem_date']) > $month)) + (strtotime($user['last-item']) > $month)) ++$active_users_monthly; } @@ -224,8 +217,7 @@ function nodeinfo_cron() { set_config('nodeinfo','active_users_monthly', $active_users_monthly); } - //$posts = q("SELECT COUNT(*) AS local_posts FROM `item` WHERE `wall` AND `uid` != 0 AND `id` = `parent` AND left(body, 6) != '[share'"); - $posts = q("SELECT COUNT(*) AS `local_posts` FROM `item` + $posts = qu("SELECT COUNT(*) AS `local_posts` FROM `item` INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id` WHERE `contact`.`self` and `item`.`id` = `item`.`parent` AND left(body, 6) != '[share' AND `item`.`network` IN ('%s', '%s', '%s')", dbesc(NETWORK_OSTATUS), dbesc(NETWORK_DIASPORA), dbesc(NETWORK_DFRN)); @@ -239,7 +231,7 @@ function nodeinfo_cron() { logger("local_posts: ".$local_posts, LOGGER_DEBUG); - $posts = q("SELECT COUNT(*) AS `local_comments` FROM `item` + $posts = qu("SELECT COUNT(*) AS `local_comments` FROM `item` INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id` WHERE `contact`.`self` and `item`.`id` != `item`.`parent` AND `item`.`network` IN ('%s', '%s', '%s')", dbesc(NETWORK_OSTATUS), dbesc(NETWORK_DIASPORA), dbesc(NETWORK_DFRN)); diff --git a/mod/notes.php b/mod/notes.php index 8d93fc13d..a25d090ed 100644 --- a/mod/notes.php +++ b/mod/notes.php @@ -73,11 +73,11 @@ function notes_content(&$a,$update = false) { $sql_extra = " AND `allow_cid` = '<" . $a->contact['id'] . ">' "; $r = q("SELECT COUNT(*) AS `total` - FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND %s + FROM `item` %s WHERE %s AND `item`.`uid` = %d AND `item`.`type` = 'note' AND `contact`.`self` AND `item`.`id` = `item`.`parent` AND NOT `item`.`wall` $sql_extra ", - contact_condition(), item_condition(), + item_joins(), item_condition(), intval(local_user()) ); @@ -87,13 +87,12 @@ function notes_content(&$a,$update = false) { $a->set_pager_itemspage(40); } - $r = q("SELECT `item`.`id` AS `item_id` FROM `item` - LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND %s AND `contact`.`self` + $r = q("SELECT `item`.`id` AS `item_id` FROM `item` %s WHERE %s AND `item`.`uid` = %d AND `item`.`type` = 'note' AND `item`.`id` = `item`.`parent` AND NOT `item`.`wall` $sql_extra ORDER BY `item`.`created` DESC LIMIT %d ,%d ", - contact_condition(), item_condition(), + item_joins(), item_condition(), intval(local_user()), intval($a->pager['start']), intval($a->pager['itemspage']) @@ -108,13 +107,11 @@ function notes_content(&$a,$update = false) { $parents_arr[] = $rr['item_id']; $parents_str = implode(', ', $parents_arr); - $r = q("SELECT %s, %s FROM `item` - LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND %s + $r = q("SELECT %s FROM `item` %s WHERE %s AND `item`.`uid` = %d AND `item`.`parent` IN (%s) $sql_extra ORDER BY `parent` DESC, `gravity` ASC, `item`.`id` ASC ", - item_fieldlist(), contact_fieldlist(), - contact_condition(), item_condition(), + item_fieldlists(), item_joins(), item_condition(), intval(local_user()), dbesc($parents_str) ); diff --git a/mod/notifications.php b/mod/notifications.php index f6c4e8f51..af44097c1 100644 --- a/mod/notifications.php +++ b/mod/notifications.php @@ -1,7 +1,13 @@ argc > 1 && $a->argv[$a->argc - 1] === 'json') ? true : false); + $nm = new NotificationsManager(); $o = ''; - $tabs = array( - array( - 'label' => t('System'), - 'url'=>'notifications/system', - 'sel'=> (($a->argv[1] == 'system') ? 'active' : ''), - 'accesskey' => 'y', - ), - array( - 'label' => t('Network'), - 'url'=>'notifications/network', - 'sel'=> (($a->argv[1] == 'network') ? 'active' : ''), - 'accesskey' => 'w', - ), - array( - 'label' => t('Personal'), - 'url'=>'notifications/personal', - 'sel'=> (($a->argv[1] == 'personal') ? 'active' : ''), - 'accesskey' => 'r', - ), - array( - 'label' => t('Home'), - 'url' => 'notifications/home', - 'sel'=> (($a->argv[1] == 'home') ? 'active' : ''), - 'accesskey' => 'h', - ), - array( - 'label' => t('Introductions'), - 'url' => 'notifications/intros', - 'sel'=> (($a->argv[1] == 'intros') ? 'active' : ''), - 'accesskey' => 'i', - ), - /*array( - 'label' => t('Messages'), - 'url' => 'message', - 'sel'=> '', - ),*/ /*while I can have notifications for messages, this tablist is not place for message page link */ - ); - - $o = ""; + // Get the nav tabs for the notification pages + $tabs = $nm->getTabs(); + $notif_content = array(); + // Notification results per page + $perpage = 20; + $startrec = ($page * $perpage) - $perpage; + // Get introductions if( (($a->argc > 1) && ($a->argv[1] == 'intros')) || (($a->argc == 1))) { nav_set_selected('introductions'); - if(($a->argc > 2) && ($a->argv[2] == 'all')) - $sql_extra = ''; - else - $sql_extra = " AND `ignore` = 0 "; + $notif_header = t('Notifications'); - $notif_tpl = get_markup_template('notifications.tpl'); + $all = (($a->argc > 2) && ($a->argv[2] == 'all')); - $notif_content .= '' - . ((strlen($sql_extra)) ? t('Show Ignored Requests') : t('Hide Ignored Requests')) . '
      ' . "\r\n"; + $notifs = $nm->introNotifs($all, $startrec, $perpage); - $r = q("SELECT COUNT(*) AS `total` FROM `intro` - WHERE `intro`.`uid` = %d $sql_extra AND `intro`.`blocked` = 0 ", - intval($_SESSION['uid']) + // Get the network notifications + } else if (($a->argc > 1) && ($a->argv[1] == 'network')) { + + $notif_header = t('Network Notifications'); + $notifs = $nm->networkNotifs($show, $startrec, $perpage); + + // Get the system notifications + } else if (($a->argc > 1) && ($a->argv[1] == 'system')) { + + $notif_header = t('System Notifications'); + $notifs = $nm->systemNotifs($show, $startrec, $perpage); + + // Get the personal notifications + } else if (($a->argc > 1) && ($a->argv[1] == 'personal')) { + + $notif_header = t('Personal Notifications'); + $notifs = $nm->personalNotifs($show, $startrec, $perpage); + + // Get the home notifications + } else if (($a->argc > 1) && ($a->argv[1] == 'home')) { + + $notif_header = t('Home Notifications'); + $notifs = $nm->homeNotifs($show, $startrec, $perpage); + + } + + + // Set the pager + $a->set_pager_total($notifs['total']); + $a->set_pager_itemspage($perpage); + + // Add additional informations (needed for json output) + $notifs['items_page'] = $a->pager['itemspage']; + $notifs['page'] = $a->pager['page']; + + // Json output + if(intval($json) === 1) + json_return_and_die($notifs); + + $notif_tpl = get_markup_template('notifications.tpl'); + + // Process the data for template creation + if($notifs['ident'] === 'introductions') { + + $sugg = get_markup_template('suggestions.tpl'); + $tpl = get_markup_template("intros.tpl"); + + // The link to switch between ignored and normal connection requests + $notif_show_lnk = array( + 'href' => (!$all ? 'notifications/intros/all' : 'notifications/intros' ), + 'text' => (!$all ? t('Show Ignored Requests') : t('Hide Ignored Requests')) ); - if($r && count($r)) { - $a->set_pager_total($r[0]['total']); - $a->set_pager_itemspage(20); - } - $r = q("SELECT `intro`.`id` AS `intro_id`, `intro`.*, `contact`.*, `fcontact`.`name` AS `fname`,`fcontact`.`url` AS `furl`,`fcontact`.`photo` AS `fphoto`,`fcontact`.`request` AS `frequest`, - `gcontact`.`location` AS `glocation`, `gcontact`.`about` AS `gabout`, - `gcontact`.`keywords` AS `gkeywords`, `gcontact`.`gender` AS `ggender`, - `gcontact`.`network` AS `gnetwork` - FROM `intro` - LEFT JOIN `contact` ON `contact`.`id` = `intro`.`contact-id` - LEFT JOIN `gcontact` ON `gcontact`.`nurl` = `contact`.`nurl` - LEFT JOIN `fcontact` ON `intro`.`fid` = `fcontact`.`id` - WHERE `intro`.`uid` = %d $sql_extra AND `intro`.`blocked` = 0 ", - intval($_SESSION['uid'])); + // Loop through all introduction notifications.This creates an array with the output html for each + // introduction + foreach ($notifs['notifications'] as $it) { - if(($r !== false) && (count($r))) { - - $sugg = get_markup_template('suggestions.tpl'); - $tpl = get_markup_template("intros.tpl"); - - foreach($r as $rr) { - - if($rr['fid']) { - - $return_addr = bin2hex($a->user['nickname'] . '@' . $a->get_hostname() . (($a->path) ? '/' . $a->path : '')); - - $notif_content .= replace_macros($sugg, array( + // There are two kind of introduction. Contacts suggested by other contacts and normal connection requests. + // We have to distinguish between these two because they use different data. + switch ($it['label']) { + case 'friend_suggestion': + $notif_content[] = replace_macros($sugg, array( '$str_notifytype' => t('Notification type: '), - '$notify_type' => t('Friend Suggestion'), - '$intro_id' => $rr['intro_id'], - '$madeby' => sprintf( t('suggested by %s'),$rr['name']), - '$contact_id' => $rr['contact-id'], - '$photo' => ((x($rr,'fphoto')) ? proxy_url($rr['fphoto'], false, PROXY_SIZE_SMALL) : "images/person-175.jpg"), - '$fullname' => $rr['fname'], - '$url' => zrl($rr['furl']), - '$hidden' => array('hidden', t('Hide this contact from others'), ($rr['hidden'] == 1), ''), - '$activity' => array('activity', t('Post a new friend activity'), (intval(get_pconfig(local_user(),'system','post_newfriend')) ? '1' : 0), t('if applicable')), + '$notify_type' => $it['notify_type'], + '$intro_id' => $it['intro_id'], + '$madeby' => sprintf( t('suggested by %s'),$it['madeby']), + '$contact_id' => $it['contact-id'], + '$photo' => $it['photo'], + '$fullname' => $it['name'], + '$url' => $it['url'], + '$hidden' => array('hidden', t('Hide this contact from others'), ($it['hidden'] == 1), ''), + '$activity' => array('activity', t('Post a new friend activity'), $it['post_newfriend'], t('if applicable')), - '$knowyou' => $knowyou, + '$knowyou' => $it['knowyou'], '$approve' => t('Approve'), - '$note' => $rr['note'], - '$request' => $rr['frequest'] . '?addr=' . $return_addr, + '$note' => $it['note'], + '$request' => $it['request'], '$ignore' => t('Ignore'), '$discard' => t('Discard'), - )); + break; - continue; + // Normal connection requests + default: + $friend_selected = (($it['network'] !== NETWORK_OSTATUS) ? ' checked="checked" ' : ' disabled '); + $fan_selected = (($it['network'] === NETWORK_OSTATUS) ? ' checked="checked" disabled ' : ''); + $dfrn_tpl = get_markup_template('netfriend.tpl'); - } - $friend_selected = (($rr['network'] !== NETWORK_OSTATUS) ? ' checked="checked" ' : ' disabled '); - $fan_selected = (($rr['network'] === NETWORK_OSTATUS) ? ' checked="checked" disabled ' : ''); - $dfrn_tpl = get_markup_template('netfriend.tpl'); + $knowyou = ''; + $dfrn_text = ''; - $knowyou = ''; - $dfrn_text = ''; - - if($rr['network'] === NETWORK_DFRN || $rr['network'] === NETWORK_DIASPORA) { - if($rr['network'] === NETWORK_DFRN) { - $knowyou = t('Claims to be known to you: ') . (($rr['knowyou']) ? t('yes') : t('no')); - $helptext = t('Shall your connection be bidirectional or not? "Friend" implies that you allow to read and you subscribe to their posts. "Fan/Admirer" means that you allow to read but you do not want to read theirs. Approve as: '); - } else { - $knowyou = ''; - $helptext = t('Shall your connection be bidirectional or not? "Friend" implies that you allow to read and you subscribe to their posts. "Sharer" means that you allow to read but you do not want to read theirs. Approve as: '); + if($it['network'] === NETWORK_DFRN || $it['network'] === NETWORK_DIASPORA) { + if($it['network'] === NETWORK_DFRN) { + $lbl_knowyou = t('Claims to be known to you: '); + $knowyou = (($it['knowyou']) ? t('yes') : t('no')); + $helptext = t('Shall your connection be bidirectional or not? "Friend" implies that you allow to read and you subscribe to their posts. "Fan/Admirer" means that you allow to read but you do not want to read theirs. Approve as: '); + } else { + $knowyou = ''; + $helptext = t('Shall your connection be bidirectional or not? "Friend" implies that you allow to read and you subscribe to their posts. "Sharer" means that you allow to read but you do not want to read theirs. Approve as: '); + } } $dfrn_text = replace_macros($dfrn_tpl,array( - '$intro_id' => $rr['intro_id'], + '$intro_id' => $it['intro_id'], '$friend_selected' => $friend_selected, '$fan_selected' => $fan_selected, '$approve_as' => $helptext, '$as_friend' => t('Friend'), - '$as_fan' => (($rr['network'] == NETWORK_DIASPORA) ? t('Sharer') : t('Fan/Admirer')) + '$as_fan' => (($it['network'] == NETWORK_DIASPORA) ? t('Sharer') : t('Fan/Admirer')) )); - } - $header = $rr["name"]; + $header = $it["name"]; - $ret = probe_url($rr["url"]); + if ($it["addr"] != "") + $header .= " <".$it["addr"].">"; - if ($rr['gnetwork'] == "") - $rr['gnetwork'] = $ret["network"]; + $header .= " (".network_to_name($it['network'], $it['url']).")"; - if ($ret["addr"] != "") - $header .= " <".$ret["addr"].">"; + $notif_content[] = replace_macros($tpl, array( + '$header' => htmlentities($header), + '$str_notifytype' => t('Notification type: '), + '$notify_type' => $it['notify_type'], + '$dfrn_text' => $dfrn_text, + '$dfrn_id' => $it['dfrn_id'], + '$uid' => $it['uid'], + '$intro_id' => $it['intro_id'], + '$contact_id' => $it['contact_id'], + '$photo' => $it['photo'], + '$fullname' => $it['name'], + '$location' => $it['location'], + '$lbl_location' => t('Location:'), + '$about' => $it['about'], + '$lbl_about' => t('About:'), + '$keywords' => $it['keywords'], + '$lbl_keywords' => t('Tags:'), + '$gender' => $it['gender'], + '$lbl_gender' => t('Gender:'), + '$hidden' => array('hidden', t('Hide this contact from others'), ($it['hidden'] == 1), ''), + '$activity' => array('activity', t('Post a new friend activity'), $it['post_newfriend'], t('if applicable')), + '$url' => $it['url'], + '$zrl' => $it['zrl'], + '$lbl_url' => t('Profile URL'), + '$addr' => $it['addr'], + '$lbl_knowyou' => $lbl_knowyou, + '$lbl_network' => t('Network:'), + '$network' => network_to_name($it['network'], $it['url']), + '$knowyou' => $knowyou, + '$approve' => t('Approve'), + '$note' => $it['note'], + '$ignore' => t('Ignore'), + '$discard' => t('Discard'), - $header .= " (".network_to_name($rr['gnetwork'], $rr['url']).")"; - - // Don't show these data until you are connected. Diaspora is doing the same. - if($rr['gnetwork'] === NETWORK_DIASPORA) { - $rr['glocation'] = ""; - $rr['gabout'] = ""; - $rr['ggender'] = ""; - } - - $notif_content .= replace_macros($tpl, array( - '$header' => htmlentities($header), - '$str_notifytype' => t('Notification type: '), - '$notify_type' => (($rr['network'] !== NETWORK_OSTATUS) ? t('Friend/Connect Request') : t('New Follower')), - '$dfrn_text' => $dfrn_text, - '$dfrn_id' => $rr['issued-id'], - '$uid' => $_SESSION['uid'], - '$intro_id' => $rr['intro_id'], - '$contact_id' => $rr['contact-id'], - '$photo' => ((x($rr,'photo')) ? proxy_url($rr['photo'], false, PROXY_SIZE_SMALL) : "images/person-175.jpg"), - '$fullname' => $rr['name'], - '$location' => bbcode($rr['glocation'], false, false), - '$location_label' => t('Location:'), - '$about' => bbcode($rr['gabout'], false, false), - '$about_label' => t('About:'), - '$keywords' => $rr['gkeywords'], - '$keywords_label' => t('Tags:'), - '$gender' => $rr['ggender'], - '$gender_label' => t('Gender:'), - '$hidden' => array('hidden', t('Hide this contact from others'), ($rr['hidden'] == 1), ''), - '$activity' => array('activity', t('Post a new friend activity'), (intval(get_pconfig(local_user(),'system','post_newfriend')) ? '1' : 0), t('if applicable')), - '$url' => $rr['url'], - '$zrl' => zrl($rr['url']), - '$url_label' => t('Profile URL'), - '$knowyou' => $knowyou, - '$approve' => t('Approve'), - '$note' => $rr['note'], - '$ignore' => t('Ignore'), - '$discard' => t('Discard'), - - )); + )); + break; } } - else + + if($notifs['total'] == 0) info( t('No introductions.') . EOL); - $o .= replace_macros($notif_tpl, array( - '$notif_header' => t('Notifications'), - '$tabs' => $tabs, - '$notif_content' => $notif_content, - )); + // Normal notifications (no introductions) + } else { - $o .= paginate($a); - return $o; + // The template files we need in different cases for formatting the content + $tpl_item_like = 'notifications_likes_item.tpl'; + $tpl_item_dislike = 'notifications_dislikes_item.tpl'; + $tpl_item_attend = 'notifications_attend_item.tpl'; + $tpl_item_attendno = 'notifications_attend_item.tpl'; + $tpl_item_attendmaybe = 'notifications_attend_item.tpl'; + $tpl_item_friend = 'notifications_friends_item.tpl'; + $tpl_item_comment = 'notifications_comments_item.tpl'; + $tpl_item_post = 'notifications_posts_item.tpl'; + $tpl_item_notify = 'notify.tpl'; - } else if (($a->argc > 1) && ($a->argv[1] == 'network')) { + // Loop trough ever notification This creates an array with the output html for each + // notification and apply the correct template according to the notificationtype (label). + foreach ($notifs['notifications'] as $it) { - $notif_tpl = get_markup_template('notifications.tpl'); + // We use the notification label to get the correct template file + $tpl_var_name = 'tpl_item_'.$it['label']; + $tpl_notif = get_markup_template($$tpl_var_name); - $r = q("SELECT `item`.`id`,`item`.`parent`, `item`.`verb`, `item`.`author-name`, - `item`.`author-link`, `item`.`author-avatar`, `item`.`created`, `item`.`object` as `object`, - `pitem`.`author-name` as `pname`, `pitem`.`author-link` as `plink`, `pitem`.`guid` as `pguid` - FROM `item` INNER JOIN `item` as `pitem` ON `pitem`.`id`=`item`.`parent` - WHERE `item`.`unseen` = 1 AND `item`.`visible` = 1 AND `pitem`.`parent` != 0 AND - `item`.`deleted` = 0 AND `item`.`uid` = %d AND `item`.`wall` = 0 ORDER BY `item`.`created` DESC" , - intval(local_user()) - ); - - $tpl_item_likes = get_markup_template('notifications_likes_item.tpl'); - $tpl_item_dislikes = get_markup_template('notifications_dislikes_item.tpl'); - $tpl_item_friends = get_markup_template('notifications_friends_item.tpl'); - $tpl_item_comments = get_markup_template('notifications_comments_item.tpl'); - $tpl_item_posts = get_markup_template('notifications_posts_item.tpl'); - - $notif_content = ''; - - if ($r) { - - foreach ($r as $it) { - switch($it['verb']){ - case ACTIVITY_LIKE: - $notif_content .= replace_macros($tpl_item_likes,array( - //'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'], - '$item_link' => $a->get_baseurl(true).'/display/'.$it['pguid'], - '$item_image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO), - '$item_text' => sprintf( t("%s liked %s's post"), $it['author-name'], $it['pname']), - '$item_when' => relative_date($it['created']) - )); - break; - - case ACTIVITY_DISLIKE: - $notif_content .= replace_macros($tpl_item_dislikes,array( - //'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'], - '$item_link' => $a->get_baseurl(true).'/display/'.$it['pguid'], - '$item_image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO), - '$item_text' => sprintf( t("%s disliked %s's post"), $it['author-name'], $it['pname']), - '$item_when' => relative_date($it['created']) - )); - break; - - case ACTIVITY_FRIEND: - - $xmlhead="<"."?xml version='1.0' encoding='UTF-8' ?".">"; - $obj = parse_xml_string($xmlhead.$it['object']); - $it['fname'] = $obj->title; - - $notif_content .= replace_macros($tpl_item_friends,array( - //'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'], - '$item_link' => $a->get_baseurl(true).'/display/'.$it['pguid'], - '$item_image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO), - '$item_text' => sprintf( t("%s is now friends with %s"), $it['author-name'], $it['fname']), - '$item_when' => relative_date($it['created']) - )); - break; - - default: - $item_text = (($it['id'] == $it['parent']) - ? sprintf( t("%s created a new post"), $it['author-name']) - : sprintf( t("%s commented on %s's post"), $it['author-name'], $it['pname'])); - $tpl = (($it['id'] == $it['parent']) ? $tpl_item_posts : $tpl_item_comments); - - $notif_content .= replace_macros($tpl,array( - //'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'], - '$item_link' => $a->get_baseurl(true).'/display/'.$it['pguid'], - '$item_image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO), - '$item_text' => $item_text, - '$item_when' => relative_date($it['created']) - )); - } - } - - } else { - - $notif_content = t('No more network notifications.'); + $notif_content[] = replace_macros($tpl_notif,array( + '$item_label' => $it['label'], + '$item_link' => $it['link'], + '$item_image' => $it['image'], + '$item_text' => htmlentities($it['text']), + '$item_when' => $it['when'], + '$item_seen' => $it['seen'], + )); } - $o .= replace_macros($notif_tpl, array( - '$notif_header' => t('Network Notifications'), - '$tabs' => $tabs, - '$notif_content' => $notif_content, - )); - - } else if (($a->argc > 1) && ($a->argv[1] == 'system')) { - - $notif_tpl = get_markup_template('notifications.tpl'); - - $not_tpl = get_markup_template('notify.tpl'); - require_once('include/bbcode.php'); - - $r = q("SELECT * from notify where uid = %d and seen = 0 order by date desc", - intval(local_user()) - ); - - if (count($r) > 0) { - foreach ($r as $it) { - $notif_content .= replace_macros($not_tpl,array( - '$item_link' => $a->get_baseurl(true).'/notify/view/'. $it['id'], - '$item_image' => proxy_url($it['photo'], false, PROXY_SIZE_MICRO), - '$item_text' => strip_tags(bbcode($it['msg'])), - '$item_when' => relative_date($it['date']) - )); - } - } else { - $notif_content .= t('No more system notifications.'); + // It doesn't make sense to show the Show unread / Show all link visible if the user is on the + // "Show all" page and there are no notifications. So we will hide it. + if($show == 0 || intval($show) && $notifs['total'] > 0) { + $notif_show_lnk = array( + 'href' => ($show ? 'notifications/'.$notifs['ident'] : 'notifications/'.$notifs['ident'].'?show=all' ), + 'text' => ($show ? t('Show unread') : t('Show all')), + ); } - $o .= replace_macros($notif_tpl, array( - '$notif_header' => t('System Notifications'), - '$tabs' => $tabs, - '$notif_content' => $notif_content, - )); - - } else if (($a->argc > 1) && ($a->argv[1] == 'personal')) { - - $notif_tpl = get_markup_template('notifications.tpl'); - - $myurl = $a->get_baseurl(true) . '/profile/'. $a->user['nickname']; - $myurl = substr($myurl,strpos($myurl,'://')+3); - $myurl = str_replace(array('www.','.'),array('','\\.'),$myurl); - $diasp_url = str_replace('/profile/','/u/',$myurl); - $sql_extra .= sprintf(" AND ( `item`.`author-link` regexp '%s' or `item`.`tag` regexp '%s' or `item`.`tag` regexp '%s' ) ", - dbesc($myurl . '$'), - dbesc($myurl . '\\]'), - dbesc($diasp_url . '\\]') - ); - - - $r = q("SELECT `item`.`id`,`item`.`parent`, `item`.`verb`, `item`.`author-name`, - `item`.`author-link`, `item`.`author-avatar`, `item`.`created`, `item`.`object` as `object`, - `pitem`.`author-name` as `pname`, `pitem`.`author-link` as `plink`, `pitem`.`guid` as `pguid` - FROM `item` INNER JOIN `item` as `pitem` ON `pitem`.`id`=`item`.`parent` - WHERE `item`.`unseen` = 1 AND `item`.`visible` = 1 - $sql_extra - AND `item`.`deleted` = 0 AND `item`.`uid` = %d AND `item`.`wall` = 0 ORDER BY `item`.`created` DESC" , - intval(local_user()) - ); - - $tpl_item_likes = get_markup_template('notifications_likes_item.tpl'); - $tpl_item_dislikes = get_markup_template('notifications_dislikes_item.tpl'); - $tpl_item_friends = get_markup_template('notifications_friends_item.tpl'); - $tpl_item_comments = get_markup_template('notifications_comments_item.tpl'); - $tpl_item_posts = get_markup_template('notifications_posts_item.tpl'); - - $notif_content = ''; - - if (count($r) > 0) { - - foreach ($r as $it) { - switch($it['verb']){ - case ACTIVITY_LIKE: - $notif_content .= replace_macros($tpl_item_likes,array( - //'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'], - '$item_link' => $a->get_baseurl(true).'/display/'.$it['pguid'], - '$item_image' => $it['author-avatar'], - '$item_text' => sprintf( t("%s liked %s's post"), $it['author-name'], $it['pname']), - '$item_when' => relative_date($it['created']) - )); - break; - - case ACTIVITY_DISLIKE: - $notif_content .= replace_macros($tpl_item_dislikes,array( - //'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'], - '$item_link' => $a->get_baseurl(true).'/display/'.$it['pguid'], - '$item_image' => $it['author-avatar'], - '$item_text' => sprintf( t("%s disliked %s's post"), $it['author-name'], $it['pname']), - '$item_when' => relative_date($it['created']) - )); - break; - - case ACTIVITY_FRIEND: - - $xmlhead="<"."?xml version='1.0' encoding='UTF-8' ?".">"; - $obj = parse_xml_string($xmlhead.$it['object']); - $it['fname'] = $obj->title; - - $notif_content .= replace_macros($tpl_item_friends,array( - //'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'], - '$item_link' => $a->get_baseurl(true).'/display/'.$it['pguid'], - '$item_image' => $it['author-avatar'], - '$item_text' => sprintf( t("%s is now friends with %s"), $it['author-name'], $it['fname']), - '$item_when' => relative_date($it['created']) - )); - break; - - default: - $item_text = (($it['id'] == $it['parent']) - ? sprintf( t("%s created a new post"), $it['author-name']) - : sprintf( t("%s commented on %s's post"), $it['author-name'], $it['pname'])); - $tpl = (($it['id'] == $it['parent']) ? $tpl_item_posts : $tpl_item_comments); - - $notif_content .= replace_macros($tpl,array( - //'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'], - '$item_link' => $a->get_baseurl(true).'/display/'.$it['pguid'], - '$item_image' => $it['author-avatar'], - '$item_text' => $item_text, - '$item_when' => relative_date($it['created']) - )); - } - } - - } else { - - $notif_content = t('No more personal notifications.'); - } - - $o .= replace_macros($notif_tpl, array( - '$notif_header' => t('Personal Notifications'), - '$tabs' => $tabs, - '$notif_content' => $notif_content, - )); - - - - - - - } else if (($a->argc > 1) && ($a->argv[1] == 'home')) { - - $notif_tpl = get_markup_template('notifications.tpl'); - - $r = q("SELECT `item`.`id`,`item`.`parent`, `item`.`verb`, `item`.`author-name`, - `item`.`author-link`, `item`.`author-avatar`, `item`.`created`, `item`.`object` as `object`, - `pitem`.`author-name` as `pname`, `pitem`.`author-link` as `plink`, `pitem`.`guid` as `pguid` - FROM `item` INNER JOIN `item` as `pitem` ON `pitem`.`id`=`item`.`parent` - WHERE `item`.`unseen` = 1 AND `item`.`visible` = 1 AND - `item`.`deleted` = 0 AND `item`.`uid` = %d AND `item`.`wall` = 1 ORDER BY `item`.`created` DESC", - intval(local_user()) - ); - - $tpl_item_likes = get_markup_template('notifications_likes_item.tpl'); - $tpl_item_dislikes = get_markup_template('notifications_dislikes_item.tpl'); - $tpl_item_friends = get_markup_template('notifications_friends_item.tpl'); - $tpl_item_comments = get_markup_template('notifications_comments_item.tpl'); - - $notif_content = ''; - - if (count($r) > 0) { - - foreach ($r as $it) { - switch($it['verb']){ - case ACTIVITY_LIKE: - $notif_content .= replace_macros($tpl_item_likes,array( - //'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'], - '$item_link' => $a->get_baseurl(true).'/display/'.$it['pguid'], - '$item_image' => $it['author-avatar'], - '$item_text' => sprintf( t("%s liked %s's post"), $it['author-name'], $it['pname']), - '$item_when' => relative_date($it['created']) - )); - - break; - case ACTIVITY_DISLIKE: - $notif_content .= replace_macros($tpl_item_dislikes,array( - //'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'], - '$item_link' => $a->get_baseurl(true).'/display/'.$it['pguid'], - '$item_image' => $it['author-avatar'], - '$item_text' => sprintf( t("%s disliked %s's post"), $it['author-name'], $it['pname']), - '$item_when' => relative_date($it['created']) - )); - - break; - case ACTIVITY_FRIEND: - - $xmlhead="<"."?xml version='1.0' encoding='UTF-8' ?".">"; - $obj = parse_xml_string($xmlhead.$it['object']); - $it['fname'] = $obj->title; - - $notif_content .= replace_macros($tpl_item_friends,array( - //'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'], - '$item_link' => $a->get_baseurl(true).'/display/'.$it['pguid'], - '$item_image' => $it['author-avatar'], - '$item_text' => sprintf( t("%s is now friends with %s"), $it['author-name'], $it['fname']), - '$item_when' => relative_date($it['created']) - )); - - break; - default: - $notif_content .= replace_macros($tpl_item_comments,array( - //'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'], - '$item_link' => $a->get_baseurl(true).'/display/'.$it['pguid'], - '$item_image' => $it['author-avatar'], - '$item_text' => sprintf( t("%s commented on %s's post"), $it['author-name'], $it['pname']), - '$item_when' => relative_date($it['created']) - )); - } - } - - } else { - $notif_content = t('No more home notifications.'); - } - - $o .= replace_macros($notif_tpl, array( - '$notif_header' => t('Home Notifications'), - '$tabs' => $tabs, - '$notif_content' => $notif_content, - )); + // Output if there aren't any notifications available + if($notifs['total'] == 0) + $notif_nocontent = sprintf( t('No more %s notifications.'), $notifs['ident']); } - $o .= paginate($a); + + $o .= replace_macros($notif_tpl, array( + '$notif_header' => $notif_header, + '$tabs' => $tabs, + '$notif_content' => $notif_content, + '$notif_nocontent' => $notif_nocontent, + '$notif_show_lnk' => $notif_show_lnk, + '$notif_paginate' => paginate($a) + )); + return $o; } diff --git a/mod/p.php b/mod/p.php index 20d6cfdba..8da044e93 100644 --- a/mod/p.php +++ b/mod/p.php @@ -19,62 +19,45 @@ function p_init($a){ $guid = strtolower(substr($guid, 0, -4)); - $item = q("SELECT `title`, `body`, `guid`, `contact-id`, `private`, `created`, `app` FROM `item` WHERE `uid` = 0 AND `guid` = '%s' AND `network` IN ('%s', '%s') AND `id` = `parent` LIMIT 1", + // Fetch the item + $item = q("SELECT `uid`, `title`, `body`, `guid`, `contact-id`, `private`, `created`, `app`, `location`, `coord` + FROM `item` WHERE `wall` AND NOT `private` AND `guid` = '%s' AND `network` IN ('%s', '%s') AND `id` = `parent` LIMIT 1", dbesc($guid), NETWORK_DFRN, NETWORK_DIASPORA); if (!$item) { + $r = q("SELECT `author-link` + FROM `item` WHERE `uid` = 0 AND `guid` = '%s' AND `network` IN ('%s', '%s') AND `id` = `parent` LIMIT 1", + dbesc($guid), NETWORK_DFRN, NETWORK_DIASPORA); + if ($r) { + $parts = parse_url($r[0]["author-link"]); + $host = $parts["scheme"]."://".$parts["host"]; + + if (normalise_link($host) != normalise_link(App::get_baseurl())) { + $location = $host."/p/".urlencode($guid).".xml"; + + header("HTTP/1.1 301 Moved Permanently"); + header("Location:".$location); + killme(); + } + } + header($_SERVER["SERVER_PROTOCOL"].' 404 '.t('Not Found')); killme(); } - $post = array(); - - $reshared = diaspora::is_reshare($item[0]["body"]); - - if ($reshared) { - $nodename = "reshare"; - $post["root_diaspora_id"] = $reshared["root_handle"]; - $post["root_guid"] = $reshared["root_guid"]; - $post["guid"] = $item[0]["guid"]; - $post["diaspora_handle"] = diaspora::handle_from_contact($item[0]["contact-id"]); - $post["public"] = (!$item[0]["private"] ? 'true':'false'); - $post["created_at"] = datetime_convert('UTC','UTC',$item[0]["created"]); - } else { - - $body = bb2diaspora($item[0]["body"]); - - if(strlen($item[0]["title"])) - $body = "## ".html_entity_decode($item[0]["title"])."\n\n".$body; - - $nodename = "status_message"; - $post["raw_message"] = str_replace("&", "&", $body); - $post["guid"] = $item[0]["guid"]; - $post["diaspora_handle"] = diaspora::handle_from_contact($item[0]["contact-id"]); - $post["public"] = (!$item[0]["private"] ? 'true':'false'); - $post["created_at"] = datetime_convert('UTC','UTC',$item[0]["created"]); - $post["provider_display_name"] = $item[0]["app"]; + // Fetch some data from the author (We could combine both queries - but I think this is more readable) + $r = q("SELECT `user`.`prvkey`, `contact`.`addr`, `user`.`nickname`, `contact`.`nick` FROM `user` + INNER JOIN `contact` ON `contact`.`uid` = `user`.`uid` + WHERE `user`.`uid` = %d", intval($item[0]["uid"])); + if (!$r) { + header($_SERVER["SERVER_PROTOCOL"].' 404 '.t('Not Found')); + killme(); } + $user = $r[0]; - $dom = new DOMDocument("1.0"); - $root = $dom->createElement("XML"); - $dom->appendChild($root); - $postelement = $dom->createElement("post"); - $root->appendChild($postelement); - $statuselement = $dom->createElement($nodename); - $postelement->appendChild($statuselement); - - foreach($post AS $index => $value) { - $postnode = $dom->createElement($index, $value); - $statuselement->appendChild($postnode); - } + $status = diaspora::build_status($item[0], $user); + $xml = diaspora::build_post_xml($status["type"], $status["message"]); header("Content-Type: application/xml; charset=utf-8"); - $xml = $dom->saveXML(); - - // Diaspora doesn't send the XML header, so we remove them as well. - // So we avoid possible compatibility problems. - if (substr($xml, 0, 21) == '') - $xml = trim(substr($xml, 21)); - echo $xml; killme(); diff --git a/mod/parse_url.php b/mod/parse_url.php index df5436b62..baf867750 100644 --- a/mod/parse_url.php +++ b/mod/parse_url.php @@ -235,10 +235,9 @@ function parseurl_getsiteinfo($url, $no_guessing = false, $do_oembed = true, $co } } - //$list = $xpath->query("head/title"); $list = $xpath->query("//title"); - foreach ($list as $node) - $siteinfo["title"] = html_entity_decode($node->nodeValue, ENT_QUOTES, "UTF-8"); + if ($list->length > 0) + $siteinfo["title"] = $list->item(0)->nodeValue; //$list = $xpath->query("head/meta[@name]"); $list = $xpath->query("//meta[@name]"); diff --git a/mod/photo.php b/mod/photo.php index 4166b4d53..0d60282d5 100644 --- a/mod/photo.php +++ b/mod/photo.php @@ -72,7 +72,7 @@ function photo_init(&$a) { $uid = str_replace(array('.jpg','.png'),array('',''), $person); - $r = q("SELECT * FROM `photo` WHERE `scale` = %d AND `uid` = %d AND `profile` = 1 LIMIT 1", + $r = qu("SELECT * FROM `photo` WHERE `scale` = %d AND `uid` = %d AND `profile` = 1 LIMIT 1", intval($resolution), intval($uid) ); @@ -102,7 +102,7 @@ function photo_init(&$a) { } // check if the photo exists and get the owner of the photo - $r = q("SELECT `uid` FROM `photo` WHERE `resource-id` = '%s' LIMIT 1", + $r = qu("SELECT `uid` FROM `photo` WHERE `resource-id` = '%s' LIMIT 1", dbesc($photo), intval($resolution) ); @@ -112,7 +112,7 @@ function photo_init(&$a) { // Now we'll see if we can access the photo - $r = q("SELECT * FROM `photo` WHERE `resource-id` = '%s' AND `scale` <= %d $sql_extra ORDER BY scale DESC LIMIT 1", + $r = qu("SELECT * FROM `photo` WHERE `resource-id` = '%s' AND `scale` <= %d $sql_extra ORDER BY scale DESC LIMIT 1", dbesc($photo), intval($resolution) ); diff --git a/mod/photos.php b/mod/photos.php index 4761b627d..1730a9b60 100644 --- a/mod/photos.php +++ b/mod/photos.php @@ -8,27 +8,26 @@ require_once('include/security.php'); require_once('include/redir.php'); require_once('include/tags.php'); require_once('include/threads.php'); +require_once('include/Probe.php'); function photos_init(&$a) { - if($a->argc > 1) + if ($a->argc > 1) auto_redir($a, $a->argv[1]); - if((get_config('system','block_public')) && (! local_user()) && (! remote_user())) { + if ((get_config('system','block_public')) && (! local_user()) && (! remote_user())) { return; } nav_set_selected('home'); - $o = ''; - - if($a->argc > 1) { + if ($a->argc > 1) { $nick = $a->argv[1]; - $user = q("SELECT * FROM `user` WHERE `nickname` = '%s' AND `blocked` = 0 LIMIT 1", + $user = qu("SELECT * FROM `user` WHERE `nickname` = '%s' AND `blocked` = 0 LIMIT 1", dbesc($nick) ); - if(! count($user)) + if (! count($user)) return; $a->data['user'] = $user[0]; @@ -37,10 +36,7 @@ function photos_init(&$a) { $profile = get_profiledata_by_nick($nick, $a->profile_uid); - if((intval($profile['page-flags']) == PAGE_COMMUNITY) || (intval($profile['page-flags']) == PAGE_PRVGROUP)) - $account_type = t('Forum'); - else - $account_type = ""; + $account_type = account_type($profile); $tpl = get_markup_template("vcard-widget.tpl"); @@ -52,30 +48,22 @@ function photos_init(&$a) { '$pdesc' => (($profile['pdesc'] != "") ? $profile['pdesc'] : ""), )); - - $sql_extra = permissions_sql($a->data['user']['uid']); - - $albums = q("SELECT count(distinct `resource-id`) AS `total`, `album` FROM `photo` WHERE `uid` = %d AND `album` != '%s' AND `album` != '%s' - $sql_extra group by album order by created desc", - intval($a->data['user']['uid']), - dbesc('Contact Photos'), - dbesc( t('Contact Photos')) - ); + $albums = photo_albums($a->data['user']['uid']); $albums_visible = ((intval($a->data['user']['hidewall']) && (! local_user()) && (! remote_user())) ? false : true); // add various encodings to the array so we can just loop through and pick them out in a template $ret = array('success' => false); - if($albums) { + if ($albums) { $a->data['albums'] = $albums; if ($albums_visible) $ret['success'] = true; $ret['albums'] = array(); - foreach($albums as $k => $album) { + foreach ($albums as $k => $album) { //hide profile photos to others - if((! $is_owner) && (! remote_user()) && ($album['album'] == t('Profile Photos'))) + if ((! $is_owner) && (! remote_user()) && ($album['album'] == t('Profile Photos'))) continue; $entry = array( 'text' => $album['album'], @@ -90,10 +78,10 @@ function photos_init(&$a) { $albums = $ret; - if(local_user() && $a->data['user']['uid'] == local_user()) + if (local_user() && $a->data['user']['uid'] == local_user()) $can_post = true; - if($albums['success']) { + if ($albums['success']) { $photo_albums_widget = replace_macros(get_markup_template('photo_albums.tpl'),array( '$nick' => $a->data['user']['nickname'], '$title' => t('Photo Albums'), @@ -106,7 +94,7 @@ function photos_init(&$a) { } - if(! x($a->page,'aside')) + if (! x($a->page,'aside')) $a->page['aside'] = ''; $a->page['aside'] .= $vcard_widget; $a->page['aside'] .= $photo_albums_widget; @@ -140,26 +128,26 @@ function photos_post(&$a) { $page_owner_uid = $a->data['user']['uid']; $community_page = (($a->data['user']['page-flags'] == PAGE_COMMUNITY) ? true : false); - if((local_user()) && (local_user() == $page_owner_uid)) + if ((local_user()) && (local_user() == $page_owner_uid)) $can_post = true; else { - if($community_page && remote_user()) { + if ($community_page && remote_user()) { $cid = 0; - if(is_array($_SESSION['remote'])) { - foreach($_SESSION['remote'] as $v) { - if($v['uid'] == $page_owner_uid) { + if (is_array($_SESSION['remote'])) { + foreach ($_SESSION['remote'] as $v) { + if ($v['uid'] == $page_owner_uid) { $cid = $v['cid']; break; } } } - if($cid) { + if ($cid) { - $r = q("SELECT `uid` FROM `contact` WHERE `blocked` = 0 AND `pending` = 0 AND `id` = %d AND `uid` = %d LIMIT 1", + $r = qu("SELECT `uid` FROM `contact` WHERE `blocked` = 0 AND `pending` = 0 AND `id` = %d AND `uid` = %d LIMIT 1", intval($cid), intval($page_owner_uid) ); - if(count($r)) { + if (dbm::is_result($r)) { $can_post = true; $visitor = $cid; } @@ -167,17 +155,17 @@ function photos_post(&$a) { } } - if(! $can_post) { + if (! $can_post) { notice( t('Permission denied.') . EOL ); killme(); } - $r = q("SELECT `contact`.*, `user`.`nickname` FROM `contact` LEFT JOIN `user` ON `user`.`uid` = `contact`.`uid` + $r = qu("SELECT `contact`.*, `user`.`nickname` FROM `contact` LEFT JOIN `user` ON `user`.`uid` = `contact`.`uid` WHERE `user`.`uid` = %d AND `self` = 1 LIMIT 1", intval($page_owner_uid) ); - if(! count($r)) { + if (! count($r)) { notice( t('Contact information unavailable') . EOL); logger('photos_post: unable to locate contact record for page owner. uid=' . $page_owner_uid); killme(); @@ -186,26 +174,26 @@ function photos_post(&$a) { $owner_record = $r[0]; - if(($a->argc > 3) && ($a->argv[2] === 'album')) { + if (($a->argc > 3) && ($a->argv[2] === 'album')) { $album = hex2bin($a->argv[3]); - if($album === t('Profile Photos') || $album === 'Contact Photos' || $album === t('Contact Photos')) { + if ($album === t('Profile Photos') || $album === 'Contact Photos' || $album === t('Contact Photos')) { goaway($_SESSION['photo_return']); return; // NOTREACHED } - $r = q("SELECT count(*) FROM `photo` WHERE `album` = '%s' AND `uid` = %d", + $r = qu("SELECT count(*) FROM `photo` WHERE `album` = '%s' AND `uid` = %d", dbesc($album), intval($page_owner_uid) ); - if(! count($r)) { + if (! count($r)) { notice( t('Album not found.') . EOL); goaway($_SESSION['photo_return']); return; // NOTREACHED } // Check if the user has responded to a delete confirmation query - if($_REQUEST['canceled']) { + if ($_REQUEST['canceled']) { goaway($_SESSION['photo_return']); } @@ -214,7 +202,7 @@ function photos_post(&$a) { */ $newalbum = notags(trim($_POST['albumname'])); - if($newalbum != $album) { + if ($newalbum != $album) { q("UPDATE `photo` SET `album` = '%s' WHERE `album` = '%s' AND `uid` = %d", dbesc($newalbum), dbesc($album), @@ -229,10 +217,10 @@ function photos_post(&$a) { * DELETE photo album and all its photos */ - if($_POST['dropalbum'] == t('Delete Album')) { + if ($_POST['dropalbum'] == t('Delete Album')) { // Check if we should do HTML-based delete confirmation - if($_REQUEST['confirm']) { + if ($_REQUEST['confirm']) { $drop_url = $a->query_string; $extra_inputs = array( array('name' => 'albumname', 'value' => $_POST['albumname']), @@ -254,25 +242,23 @@ function photos_post(&$a) { // get the list of photos we are about to delete - if($visitor) { + if ($visitor) { $r = q("SELECT distinct(`resource-id`) as `rid` FROM `photo` WHERE `contact-id` = %d AND `uid` = %d AND `album` = '%s'", intval($visitor), intval($page_owner_uid), dbesc($album) ); - } - else { + } else { $r = q("SELECT distinct(`resource-id`) as `rid` FROM `photo` WHERE `uid` = %d AND `album` = '%s'", intval(local_user()), dbesc($album) ); } - if(count($r)) { - foreach($r as $rr) { + if (dbm::is_result($r)) { + foreach ($r as $rr) { $res[] = "'" . dbesc($rr['rid']) . "'" ; } - } - else { + } else { goaway($_SESSION['photo_return']); return; // NOTREACHED } @@ -290,8 +276,8 @@ function photos_post(&$a) { $r = q("SELECT `parent-uri` FROM `item` WHERE `resource-id` IN ( $str_res ) AND `uid` = %d", intval($page_owner_uid) ); - if(count($r)) { - foreach($r as $rr) { + if (dbm::is_result($r)) { + foreach ($r as $rr) { q("UPDATE `item` SET `deleted` = 1, `changed` = '%s' WHERE `parent-uri` = '%s' AND `uid` = %d", dbesc(datetime_convert()), dbesc($rr['parent-uri']), @@ -304,8 +290,8 @@ function photos_post(&$a) { // send the notification upstream/downstream as the case may be - if($rr['visible']) - proc_run('php',"include/notifier.php","drop","$drop_id"); + if ($rr['visible']) + proc_run(PRIORITY_HIGH, "include/notifier.php", "drop", $drop_id); } } } @@ -315,16 +301,16 @@ function photos_post(&$a) { // Check if the user has responded to a delete confirmation query for a single photo - if(($a->argc > 2) && $_REQUEST['canceled']) { + if (($a->argc > 2) && $_REQUEST['canceled']) { goaway($_SESSION['photo_return']); } - if(($a->argc > 2) && (x($_POST,'delete')) && ($_POST['delete'] == t('Delete Photo'))) { + if (($a->argc > 2) && (x($_POST,'delete')) && ($_POST['delete'] == t('Delete Photo'))) { // same as above but remove single photo // Check if we should do HTML-based delete confirmation - if($_REQUEST['confirm']) { + if ($_REQUEST['confirm']) { $drop_url = $a->query_string; $a->page['content'] = replace_macros(get_markup_template('confirm.tpl'), array( '$method' => 'post', @@ -339,20 +325,19 @@ function photos_post(&$a) { return; } - if($visitor) { + if ($visitor) { $r = q("SELECT `id`, `resource-id` FROM `photo` WHERE `contact-id` = %d AND `uid` = %d AND `resource-id` = '%s' LIMIT 1", intval($visitor), intval($page_owner_uid), dbesc($a->argv[2]) ); - } - else { + } else { $r = q("SELECT `id`, `resource-id` FROM `photo` WHERE `uid` = %d AND `resource-id` = '%s' LIMIT 1", intval(local_user()), dbesc($a->argv[2]) ); } - if(count($r)) { + if (dbm::is_result($r)) { q("DELETE FROM `photo` WHERE `uid` = %d AND `resource-id` = '%s'", intval($page_owner_uid), dbesc($r[0]['resource-id']) @@ -361,7 +346,7 @@ function photos_post(&$a) { dbesc($r[0]['resource-id']), intval($page_owner_uid) ); - if(count($i)) { + if (count($i)) { q("UPDATE `item` SET `deleted` = 1, `edited` = '%s', `changed` = '%s' WHERE `parent-uri` = '%s' AND `uid` = %d", dbesc(datetime_convert()), dbesc(datetime_convert()), @@ -374,8 +359,8 @@ function photos_post(&$a) { $url = $a->get_baseurl(); $drop_id = intval($i[0]['id']); - if($i[0]['visible']) - proc_run('php',"include/notifier.php","drop","$drop_id"); + if ($i[0]['visible']) + proc_run(PRIORITY_HIGH, "include/notifier.php", "drop", $drop_id); } } @@ -383,7 +368,7 @@ function photos_post(&$a) { return; // NOTREACHED } - if(($a->argc > 2) && ((x($_POST,'desc') !== false) || (x($_POST,'newtag') !== false)) || (x($_POST,'albname') !== false)) { + if (($a->argc > 2) && ((x($_POST,'desc') !== false) || (x($_POST,'newtag') !== false)) || (x($_POST,'albname') !== false)) { $desc = ((x($_POST,'desc')) ? notags(trim($_POST['desc'])) : ''); $rawtags = ((x($_POST,'newtag')) ? notags(trim($_POST['newtag'])) : ''); @@ -396,11 +381,11 @@ function photos_post(&$a) { $resource_id = $a->argv[2]; - if(! strlen($albname)) + if (! strlen($albname)) $albname = datetime_convert('UTC',date_default_timezone_get(),'now', 'Y'); - if((x($_POST,'rotate') !== false) && + if ((x($_POST,'rotate') !== false) && ( (intval($_POST['rotate']) == 1) || (intval($_POST['rotate']) == 2) )) { logger('rotate'); @@ -408,9 +393,9 @@ function photos_post(&$a) { dbesc($resource_id), intval($page_owner_uid) ); - if(count($r)) { + if (dbm::is_result($r)) { $ph = new Photo($r[0]['data'], $r[0]['type']); - if($ph->is_valid()) { + if ($ph->is_valid()) { $rotate_deg = ( (intval($_POST['rotate']) == 1) ? 270 : 90 ); $ph->rotate($rotate_deg); @@ -425,7 +410,7 @@ function photos_post(&$a) { intval($page_owner_uid) ); - if($width > 640 || $height > 640) { + if ($width > 640 || $height > 640) { $ph->scaleImage(640); $width = $ph->getWidth(); $height = $ph->getHeight(); @@ -439,7 +424,7 @@ function photos_post(&$a) { ); } - if($width > 320 || $height > 320) { + if ($width > 320 || $height > 320) { $ph->scaleImage(320); $width = $ph->getWidth(); $height = $ph->getHeight(); @@ -460,7 +445,7 @@ function photos_post(&$a) { dbesc($resource_id), intval($page_owner_uid) ); - if(count($p)) { + if (count($p)) { $ext = $phototypes[$p[0]['type']]; $r = q("UPDATE `photo` SET `desc` = '%s', `album` = '%s', `allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s' WHERE `resource-id` = '%s' AND `uid` = %d", dbesc($desc), @@ -477,10 +462,10 @@ function photos_post(&$a) { /* Don't make the item visible if the only change was the album name */ $visibility = 0; - if($p[0]['desc'] !== $desc || strlen($rawtags)) + if ($p[0]['desc'] !== $desc || strlen($rawtags)) $visibility = 1; - if(! $item_id) { + if (! $item_id) { // Create item container @@ -519,18 +504,18 @@ function photos_post(&$a) { } - if($item_id) { + if ($item_id) { $r = q("SELECT * FROM `item` WHERE `id` = %d AND `uid` = %d LIMIT 1", intval($item_id), intval($page_owner_uid) ); } - if(count($r)) { + if (dbm::is_result($r)) { $old_tag = $r[0]['tag']; $old_inform = $r[0]['inform']; } - if(strlen($rawtags)) { + if (strlen($rawtags)) { $str_tags = ''; $inform = ''; @@ -538,49 +523,47 @@ function photos_post(&$a) { // if the new tag doesn't have a namespace specifier (@foo or #foo) give it a hashtag $x = substr($rawtags,0,1); - if($x !== '@' && $x !== '#') + if ($x !== '@' && $x !== '#') $rawtags = '#' . $rawtags; $taginfo = array(); $tags = get_tags($rawtags); - if(count($tags)) { - foreach($tags as $tag) { - if(isset($profile)) + if (count($tags)) { + foreach ($tags as $tag) { + if (isset($profile)) unset($profile); - if(strpos($tag,'@') === 0) { + if (strpos($tag,'@') === 0) { $name = substr($tag,1); - if((strpos($name,'@')) || (strpos($name,'http://'))) { + if ((strpos($name,'@')) || (strpos($name,'http://'))) { $newname = $name; - $links = @lrdd($name); - if(count($links)) { - foreach($links as $link) { - if($link['@attributes']['rel'] === 'http://webfinger.net/rel/profile-page') + $links = @Probe::lrdd($name); + if (count($links)) { + foreach ($links as $link) { + if ($link['@attributes']['rel'] === 'http://webfinger.net/rel/profile-page') $profile = $link['@attributes']['href']; - if($link['@attributes']['rel'] === 'salmon') { + if ($link['@attributes']['rel'] === 'salmon') { $salmon = '$url:' . str_replace(',','%sc',$link['@attributes']['href']); - if(strlen($inform)) + if (strlen($inform)) $inform .= ','; $inform .= $salmon; } } } $taginfo[] = array($newname,$profile,$salmon); - } - else { + } else { $newname = $name; $alias = ''; $tagcid = 0; - if(strrpos($newname,'+')) + if (strrpos($newname,'+')) $tagcid = intval(substr($newname,strrpos($newname,'+') + 1)); - if($tagcid) { + if ($tagcid) { $r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1", intval($tagcid), intval($profile_uid) ); - } - else { + } else { $newname = str_replace('_',' ',$name); //select someone from this user's contacts by name @@ -589,7 +572,7 @@ function photos_post(&$a) { intval($page_owner_uid) ); - if(! $r) { + if (! $r) { //select someone by attag or nick and the name passed in $r = q("SELECT * FROM `contact` WHERE `attag` = '%s' OR `nick` = '%s' AND `uid` = %d ORDER BY `attag` DESC LIMIT 1", dbesc($name), @@ -598,35 +581,34 @@ function photos_post(&$a) { ); } } -/* elseif(strstr($name,'_') || strstr($name,' ')) { +/* elseif (strstr($name,'_') || strstr($name,' ')) { $newname = str_replace('_',' ',$name); $r = q("SELECT * FROM `contact` WHERE `name` = '%s' AND `uid` = %d LIMIT 1", dbesc($newname), intval($page_owner_uid) ); - } - else { + } else { $r = q("SELECT * FROM `contact` WHERE `attag` = '%s' OR `nick` = '%s' AND `uid` = %d ORDER BY `attag` DESC LIMIT 1", dbesc($name), dbesc($name), intval($page_owner_uid) ); }*/ - if(count($r)) { + if (dbm::is_result($r)) { $newname = $r[0]['name']; $profile = $r[0]['url']; $notify = 'cid:' . $r[0]['id']; - if(strlen($inform)) + if (strlen($inform)) $inform .= ','; $inform .= $notify; } } - if($profile) { - if(substr($notify,0,4) === 'cid:') + if ($profile) { + if (substr($notify,0,4) === 'cid:') $taginfo[] = array($newname,$profile,$notify,$r[0],'@[url=' . str_replace(',','%2c',$profile) . ']' . $newname . '[/url]'); else $taginfo[] = array($newname,$profile,$notify,null,$str_tags .= '@[url=' . $profile . ']' . $newname . '[/url]'); - if(strlen($str_tags)) + if (strlen($str_tags)) $str_tags .= ','; $profile = str_replace(',','%2c',$profile); $str_tags .= '@[url='.$profile.']'.$newname.'[/url]'; @@ -639,12 +621,12 @@ function photos_post(&$a) { } $newtag = $old_tag; - if(strlen($newtag) && strlen($str_tags)) + if (strlen($newtag) && strlen($str_tags)) $newtag .= ','; $newtag .= $str_tags; $newinform = $old_inform; - if(strlen($newinform) && strlen($inform)) + if (strlen($newinform) && strlen($inform)) $newinform .= ','; $newinform .= $inform; @@ -660,19 +642,19 @@ function photos_post(&$a) { update_thread($item_id); $best = 0; - foreach($p as $scales) { - if(intval($scales['scale']) == 2) { + foreach ($p as $scales) { + if (intval($scales['scale']) == 2) { $best = 2; break; } - if(intval($scales['scale']) == 4) { + if (intval($scales['scale']) == 4) { $best = 4; break; } } - if(count($taginfo)) { - foreach($taginfo as $tagged) { + if (count($taginfo)) { + foreach ($taginfo as $tagged) { $uri = item_new_uri($a->get_hostname(),$page_owner_uid); @@ -708,7 +690,7 @@ function photos_post(&$a) { $arr['object'] = '' . ACTIVITY_OBJ_PERSON . '' . $tagged[0] . '' . $tagged[1] . '/' . $tagged[0] . ''; $arr['object'] .= '' . xmlify('' . "\n"); - if($tagged[3]) + if ($tagged[3]) $arr['object'] .= xmlify('' . "\n"); $arr['object'] .= '' . "\n"; @@ -717,8 +699,8 @@ function photos_post(&$a) { $arr['target'] .= '' . xmlify('' . "\n" . '') . ''; $item_id = item_store($arr); - if($item_id) { - proc_run('php',"include/notifier.php","tag","$item_id"); + if ($item_id) { + proc_run(PRIORITY_HIGH, "include/notifier.php", "tag", $item_id); } } @@ -745,8 +727,8 @@ function photos_post(&$a) { logger('mod/photos.php: photos_post(): album= ' . $album . ' newalbum= ' . $newalbum , LOGGER_DEBUG); - if(! strlen($album)) { - if(strlen($newalbum)) + if (! strlen($album)) { + if (strlen($newalbum)) $album = $newalbum; else $album = datetime_convert('UTC',date_default_timezone_get(),'now', 'Y'); @@ -766,12 +748,12 @@ function photos_post(&$a) { dbesc($album), intval($page_owner_uid) ); - if((! count($r)) || ($album == t('Profile Photos'))) + if ((! count($r)) || ($album == t('Profile Photos'))) $visible = 1; else $visible = 0; - if(intval($_REQUEST['not_visible']) || $_REQUEST['not_visible'] === 'true') + if (intval($_REQUEST['not_visible']) || $_REQUEST['not_visible'] === 'true') $visible = 0; $str_group_allow = perms2str(((is_array($_REQUEST['group_allow'])) ? $_REQUEST['group_allow'] : explode(',',$_REQUEST['group_allow']))); @@ -783,13 +765,12 @@ function photos_post(&$a) { call_hooks('photo_post_file',$ret); - if(x($ret,'src') && x($ret,'filesize')) { + if (x($ret,'src') && x($ret,'filesize')) { $src = $ret['src']; $filename = $ret['filename']; $filesize = $ret['filesize']; $type = $ret['type']; - } - else { + } else { $src = $_FILES['userfile']['tmp_name']; $filename = basename($_FILES['userfile']['name']); $filesize = intval($_FILES['userfile']['size']); @@ -801,7 +782,7 @@ function photos_post(&$a) { $maximagesize = get_config('system','maximagesize'); - if(($maximagesize) && ($filesize > $maximagesize)) { + if (($maximagesize) && ($filesize > $maximagesize)) { notice( sprintf(t('Image exceeds size limit of %s'), formatBytes($maximagesize)) . EOL); @unlink($src); $foo = 0; @@ -809,7 +790,7 @@ function photos_post(&$a) { return; } - if(! $filesize) { + if (! $filesize) { notice( t('Image file is empty.') . EOL); @unlink($src); $foo = 0; @@ -829,7 +810,7 @@ function photos_post(&$a) { $limit = service_class_fetch($a->data['user']['uid'],'photo_upload_limit'); - if(($limit !== false) && (($r[0]['total'] + strlen($imagedata)) > $limit)) { + if (($limit !== false) && (($r[0]['total'] + strlen($imagedata)) > $limit)) { notice( upgrade_message() . EOL ); @unlink($src); $foo = 0; @@ -840,7 +821,7 @@ function photos_post(&$a) { $ph = new Photo($imagedata, $type); - if(! $ph->is_valid()) { + if (! $ph->is_valid()) { logger('mod/photos.php: photos_post(): unable to process image' , LOGGER_DEBUG); notice( t('Unable to process image.') . EOL ); @unlink($src); @@ -853,9 +834,9 @@ function photos_post(&$a) { @unlink($src); $max_length = get_config('system','max_image_length'); - if(! $max_length) + if (! $max_length) $max_length = MAX_IMAGE_LENGTH; - if($max_length > 0) + if ($max_length > 0) $ph->scaleImage($max_length); $width = $ph->getWidth(); @@ -867,19 +848,19 @@ function photos_post(&$a) { $r = $ph->store($page_owner_uid, $visitor, $photo_hash, $filename, $album, 0 , 0, $str_contact_allow, $str_group_allow, $str_contact_deny, $str_group_deny); - if(! $r) { + if (! $r) { logger('mod/photos.php: photos_post(): image store failed' , LOGGER_DEBUG); notice( t('Image upload failed.') . EOL ); killme(); } - if($width > 640 || $height > 640) { + if ($width > 640 || $height > 640) { $ph->scaleImage(640); $ph->store($page_owner_uid, $visitor, $photo_hash, $filename, $album, 1, 0, $str_contact_allow, $str_group_allow, $str_contact_deny, $str_group_deny); $smallest = 1; } - if($width > 320 || $height > 320) { + if ($width > 320 || $height > 320) { $ph->scaleImage(320); $ph->store($page_owner_uid, $visitor, $photo_hash, $filename, $album, 2, 0, $str_contact_allow, $str_group_allow, $str_contact_deny, $str_group_deny); $smallest = 2; @@ -892,8 +873,8 @@ function photos_post(&$a) { $lat = $lon = null; - if($exif && $exif['GPS']) { - if(feature_enabled($channel_id,'photo_location')) { + if ($exif && $exif['GPS']) { + if (feature_enabled($channel_id,'photo_location')) { $lat = getGps($exif['GPS']['GPSLatitude'], $exif['GPS']['GPSLatitudeRef']); $lon = getGps($exif['GPS']['GPSLongitude'], $exif['GPS']['GPSLongitudeRef']); } @@ -901,7 +882,7 @@ function photos_post(&$a) { $arr = array(); - if($lat && $lon) + if ($lat && $lon) $arr['coord'] = $lat . ' ' . $lon; $arr['guid'] = get_guid(32); @@ -933,8 +914,8 @@ function photos_post(&$a) { $item_id = item_store($arr); - if($visible) - proc_run('php', "include/notifier.php", 'wall-new', $item_id); + if ($visible) + proc_run(PRIORITY_HIGH, "include/notifier.php", 'wall-new', $item_id); call_hooks('photo_post_end',intval($item_id)); @@ -959,7 +940,7 @@ function photos_content(&$a) { // photos/name/image/xxxxx/edit - if((get_config('system','block_public')) && (! local_user()) && (! remote_user())) { + if ((get_config('system','block_public')) && (! local_user()) && (! remote_user())) { notice( t('Public access denied.') . EOL); return; } @@ -969,7 +950,7 @@ function photos_content(&$a) { require_once('include/security.php'); require_once('include/conversation.php'); - if(! x($a->data,'user')) { + if (! x($a->data,'user')) { notice( t('No photos selected') . EOL ); return; } @@ -982,16 +963,15 @@ function photos_content(&$a) { // Parse arguments // - if($a->argc > 3) { + if ($a->argc > 3) { $datatype = $a->argv[2]; $datum = $a->argv[3]; - } - elseif(($a->argc > 2) && ($a->argv[2] === 'upload')) + } elseif (($a->argc > 2) && ($a->argv[2] === 'upload')) $datatype = 'upload'; else $datatype = 'summary'; - if($a->argc > 4) + if ($a->argc > 4) $cmd = $a->argv[4]; else $cmd = 'view'; @@ -1010,25 +990,25 @@ function photos_content(&$a) { $community_page = (($a->data['user']['page-flags'] == PAGE_COMMUNITY) ? true : false); - if((local_user()) && (local_user() == $owner_uid)) + if ((local_user()) && (local_user() == $owner_uid)) $can_post = true; else { - if($community_page && remote_user()) { - if(is_array($_SESSION['remote'])) { - foreach($_SESSION['remote'] as $v) { - if($v['uid'] == $owner_uid) { + if ($community_page && remote_user()) { + if (is_array($_SESSION['remote'])) { + foreach ($_SESSION['remote'] as $v) { + if ($v['uid'] == $owner_uid) { $contact_id = $v['cid']; break; } } } - if($contact_id) { + if ($contact_id) { $r = q("SELECT `uid` FROM `contact` WHERE `blocked` = 0 AND `pending` = 0 AND `id` = %d AND `uid` = %d LIMIT 1", intval($contact_id), intval($owner_uid) ); - if(count($r)) { + if (dbm::is_result($r)) { $can_post = true; $contact = $r[0]; $remote_contact = true; @@ -1040,37 +1020,37 @@ function photos_content(&$a) { // perhaps they're visiting - but not a community page, so they wouldn't have write access - if(remote_user() && (! $visitor)) { + if (remote_user() && (! $visitor)) { $contact_id = 0; - if(is_array($_SESSION['remote'])) { - foreach($_SESSION['remote'] as $v) { - if($v['uid'] == $owner_uid) { + if (is_array($_SESSION['remote'])) { + foreach ($_SESSION['remote'] as $v) { + if ($v['uid'] == $owner_uid) { $contact_id = $v['cid']; break; } } } - if($contact_id) { + if ($contact_id) { $groups = init_groups_visitor($contact_id); $r = q("SELECT * FROM `contact` WHERE `blocked` = 0 AND `pending` = 0 AND `id` = %d AND `uid` = %d LIMIT 1", intval($contact_id), intval($owner_uid) ); - if(count($r)) { + if (dbm::is_result($r)) { $contact = $r[0]; $remote_contact = true; } } } - if(! $remote_contact) { - if(local_user()) { + if (! $remote_contact) { + if (local_user()) { $contact_id = $_SESSION['cid']; $contact = $a->contact; } } - if($a->data['user']['hidewall'] && (local_user() != $owner_uid) && (! $remote_contact)) { + if ($a->data['user']['hidewall'] && (local_user() != $owner_uid) && (! $remote_contact)) { notice( t('Access to this item is restricted.') . EOL); return; } @@ -1087,8 +1067,8 @@ function photos_content(&$a) { * Display upload form */ - if($datatype === 'upload') { - if(! ($can_post)) { + if ($datatype === 'upload') { + if (! ($can_post)) { notice( t('Permission denied.')); return; } @@ -1101,9 +1081,9 @@ function photos_content(&$a) { $albumselect .= ''; - if(count($a->data['albums'])) { - foreach($a->data['albums'] as $album) { - if(($album['album'] === '') || ($album['album'] === 'Contact Photos') || ($album['album'] === t('Contact Photos'))) + if (count($a->data['albums'])) { + foreach ($a->data['albums'] as $album) { + if (($album['album'] === '') || ($album['album'] === 'Contact Photos') || ($album['album'] === t('Contact Photos'))) continue; $selected = (($selname === $album['album']) ? ' selected="selected" ' : ''); $albumselect .= ''; @@ -1126,7 +1106,7 @@ function photos_content(&$a) { $usage_message = ''; $limit = service_class_fetch($a->data['user']['uid'],'photo_upload_limit'); - if($limit !== false) { + if ($limit !== false) { $r = q("select sum(datasize) as total from photo where uid = %d and scale = 0 and album != 'Contact Photos' ", intval($a->data['user']['uid']) @@ -1137,17 +1117,17 @@ function photos_content(&$a) { // Private/public post links for the non-JS ACL form $private_post = 1; - if($_REQUEST['public']) + if ($_REQUEST['public']) $private_post = 0; $query_str = $a->query_string; - if(strpos($query_str, 'public=1') !== false) + if (strpos($query_str, 'public=1') !== false) $query_str = str_replace(array('?public=1', '&public=1'), array('', ''), $query_str); // I think $a->query_string may never have ? in it, but I could be wrong // It looks like it's from the index.php?q=[etc] rewrite that the web // server does, which converts any ? to &, e.g. suggest&ignore=61 for suggest?ignore=61 - if(strpos($query_str, '?') === false) + if (strpos($query_str, '?') === false) $public_post_link = '?public=1'; else $public_post_link = '&public=1'; @@ -1156,11 +1136,10 @@ function photos_content(&$a) { $tpl = get_markup_template('photos_upload.tpl'); - if($a->theme['template_engine'] === 'internal') { + if ($a->theme['template_engine'] === 'internal') { $albumselect_e = template_escape($albumselect); $aclselect_e = (($visitor) ? '' : template_escape(populate_acl($a->user))); - } - else { + } else { $albumselect_e = $albumselect; $aclselect_e = (($visitor) ? '' : populate_acl($a->user)); } @@ -1200,7 +1179,7 @@ function photos_content(&$a) { * Display a single photo album */ - if($datatype === 'album') { + if ($datatype === 'album') { $album = hex2bin($datum); @@ -1209,12 +1188,12 @@ function photos_content(&$a) { intval($owner_uid), dbesc($album) ); - if(count($r)) { + if (dbm::is_result($r)) { $a->set_pager_total(count($r)); $a->set_pager_itemspage(20); } - if($_GET['order'] === 'posted') + if ($_GET['order'] === 'posted') $order = 'ASC'; else $order = 'DESC'; @@ -1228,15 +1207,14 @@ function photos_content(&$a) { ); //edit album name - if($cmd === 'edit') { - if(($album !== t('Profile Photos')) && ($album !== 'Contact Photos') && ($album !== t('Contact Photos'))) { - if($can_post) { + if ($cmd === 'edit') { + if (($album !== t('Profile Photos')) && ($album !== 'Contact Photos') && ($album !== t('Contact Photos'))) { + if ($can_post) { $edit_tpl = get_markup_template('album_edit.tpl'); - if($a->theme['template_engine'] === 'internal') { + if ($a->theme['template_engine'] === 'internal') { $album_e = template_escape($album); - } - else { + } else { $album_e = $album; } @@ -1250,37 +1228,35 @@ function photos_content(&$a) { )); } } - } - else { - if(($album !== t('Profile Photos')) && ($album !== 'Contact Photos') && ($album !== t('Contact Photos'))) { - if($can_post) { + } else { + if (($album !== t('Profile Photos')) && ($album !== 'Contact Photos') && ($album !== t('Contact Photos'))) { + if ($can_post) { $edit = array(t('Edit Album'), 'photos/' . $a->data['user']['nickname'] . '/album/' . bin2hex($album) . '/edit'); } } } - if($_GET['order'] === 'posted') + if ($_GET['order'] === 'posted') $order = array(t('Show Newest First'), 'photos/' . $a->data['user']['nickname'] . '/album/' . bin2hex($album)); else $order = array(t('Show Oldest First'), 'photos/' . $a->data['user']['nickname'] . '/album/' . bin2hex($album) . '?f=&order=posted'); $photos = array(); - if(count($r)) + if (dbm::is_result($r)) $twist = 'rotright'; - foreach($r as $rr) { - if($twist == 'rotright') + foreach ($r as $rr) { + if ($twist == 'rotright') $twist = 'rotleft'; else $twist = 'rotright'; $ext = $phototypes[$rr['type']]; - if($a->theme['template_engine'] === 'internal') { + if ($a->theme['template_engine'] === 'internal') { $imgalt_e = template_escape($rr['filename']); $desc_e = template_escape($rr['desc']); - } - else { + } else { $imgalt_e = $rr['filename']; $desc_e = $rr['desc']; } @@ -1306,11 +1282,10 @@ function photos_content(&$a) { '$can_post' => $can_post, '$upload' => array(t('Upload New Photos'), 'photos/' . $a->data['user']['nickname'] . '/upload/' . bin2hex($album)), '$order' => $order, - '$edit' => $edit + '$edit' => $edit, + '$paginate' => paginate($a), )); - $o .= paginate($a); - return $o; } @@ -1319,7 +1294,7 @@ function photos_content(&$a) { * Display one photo */ - if($datatype === 'image') { + if ($datatype === 'image') { //$o = ''; // fetch image, item containing image, then comments @@ -1330,13 +1305,13 @@ function photos_content(&$a) { dbesc($datum) ); - if(! count($ph)) { + if (! count($ph)) { $ph = q("SELECT `id` FROM `photo` WHERE `uid` = %d AND `resource-id` = '%s' LIMIT 1", intval($owner_uid), dbesc($datum) ); - if(count($ph)) + if (count($ph)) notice( t('Permission denied. Access to this item may be restricted.')); else notice( t('Photo not available') . EOL ); @@ -1346,26 +1321,26 @@ function photos_content(&$a) { $prevlink = ''; $nextlink = ''; - if($_GET['order'] === 'posted') + if ($_GET['order'] === 'posted') $order = 'ASC'; else $order = 'DESC'; - $prvnxt = q("SELECT `resource-id` FROM `photo` WHERE `album` = '%s' AND `uid` = %d AND `scale` = 0 + $prvnxt = qu("SELECT `resource-id` FROM `photo` WHERE `album` = '%s' AND `uid` = %d AND `scale` = 0 $sql_extra ORDER BY `created` $order ", dbesc($ph[0]['album']), intval($owner_uid) ); - if(count($prvnxt)) { + if (count($prvnxt)) { for($z = 0; $z < count($prvnxt); $z++) { - if($prvnxt[$z]['resource-id'] == $ph[0]['resource-id']) { + if ($prvnxt[$z]['resource-id'] == $ph[0]['resource-id']) { $prv = $z - 1; $nxt = $z + 1; - if($prv < 0) + if ($prv < 0) $prv = count($prvnxt) - 1; - if($nxt >= count($prvnxt)) + if ($nxt >= count($prvnxt)) $nxt = 0; break; } @@ -1376,16 +1351,15 @@ function photos_content(&$a) { } - if(count($ph) == 1) + if (count($ph) == 1) $hires = $lores = $ph[0]; - if(count($ph) > 1) { - if($ph[1]['scale'] == 2) { + if (count($ph) > 1) { + if ($ph[1]['scale'] == 2) { // original is 640 or less, we can display it directly $hires = $lores = $ph[0]; - } - else { - $hires = $ph[0]; - $lores = $ph[1]; + } else { + $hires = $ph[0]; + $lores = $ph[1]; } } @@ -1393,7 +1367,7 @@ function photos_content(&$a) { $tools = Null; $lock = Null; - if($can_post && ($ph[0]['uid'] == $owner_uid)) { + if ($can_post && ($ph[0]['uid'] == $owner_uid)) { $tools = array( 'edit' => array('photos/' . $a->data['user']['nickname'] . '/image/' . $datum . (($cmd === 'edit') ? '' : '/edit'), (($cmd === 'edit') ? t('View photo') : t('Edit photo'))), 'profile'=>array('profile_photo/use/'.$ph[0]['resource-id'], t('Use as profile photo')), @@ -1408,7 +1382,7 @@ function photos_content(&$a) { } - if( $cmd === 'edit') { + if ( $cmd === 'edit') { $tpl = get_markup_template('photo_edit_head.tpl'); $a->page['htmlhead'] .= replace_macros($tpl,array( '$prevlink' => $prevlink, @@ -1416,7 +1390,7 @@ function photos_content(&$a) { )); } - if($prevlink) + if ($prevlink) $prevlink = array($prevlink, '') ; $photo = array( @@ -1429,7 +1403,7 @@ function photos_content(&$a) { 'filename' => $hires['filename'], ); - if($nextlink) + if ($nextlink) $nextlink = array($nextlink, ''); @@ -1447,9 +1421,9 @@ function photos_content(&$a) { $map = null; - if(count($linked_items)) { + if (count($linked_items)) { $link_item = $linked_items[0]; - $r = q("SELECT COUNT(*) AS `total` + $r = qu("SELECT COUNT(*) AS `total` FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id` WHERE `parent-uri` = '%s' AND `uri` != '%s' AND `item`.`deleted` = 0 and `item`.`moderated` = 0 AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 @@ -1461,11 +1435,11 @@ function photos_content(&$a) { ); - if(count($r)) + if (dbm::is_result($r)) $a->set_pager_total($r[0]['total']); - $r = q("SELECT `item`.*, `item`.`id` AS `item_id`, + $r = qu("SELECT `item`.*, `item`.`id` AS `item_id`, `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`network`, `contact`.`rel`, `contact`.`thumb`, `contact`.`self`, `contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid` @@ -1483,7 +1457,7 @@ function photos_content(&$a) { ); - if((local_user()) && (local_user() == $link_item['uid'])) { + if ((local_user()) && (local_user() == $link_item['uid'])) { q("UPDATE `item` SET `unseen` = 0 WHERE `parent` = %d and `uid` = %d", intval($link_item['parent']), intval(local_user()) @@ -1491,24 +1465,24 @@ function photos_content(&$a) { update_thread($link_item['parent']); } - if($link_item['coord']) { + if ($link_item['coord']) { $map = generate_map($link_item['coord']); } } $tags=Null; - if(count($linked_items) && strlen($link_item['tag'])) { + if (count($linked_items) && strlen($link_item['tag'])) { $arr = explode(',',$link_item['tag']); // parse tags and add links $tag_str = ''; - foreach($arr as $t) { - if(strlen($tag_str)) + foreach ($arr as $t) { + if (strlen($tag_str)) $tag_str .= ', '; $tag_str .= bbcode($t); } $tags = array(t('Tags: '), $tag_str); - if($cmd === 'edit') { + if ($cmd === 'edit') { $tags[] = 'tagrm/' . $link_item['id']; $tags[] = t('[Remove any tag]'); } @@ -1516,33 +1490,32 @@ function photos_content(&$a) { $edit = Null; - if(($cmd === 'edit') && ($can_post)) { + if (($cmd === 'edit') && ($can_post)) { $edit_tpl = get_markup_template('photo_edit.tpl'); // Private/public post links for the non-JS ACL form $private_post = 1; - if($_REQUEST['public']) + if ($_REQUEST['public']) $private_post = 0; $query_str = $a->query_string; - if(strpos($query_str, 'public=1') !== false) + if (strpos($query_str, 'public=1') !== false) $query_str = str_replace(array('?public=1', '&public=1'), array('', ''), $query_str); // I think $a->query_string may never have ? in it, but I could be wrong // It looks like it's from the index.php?q=[etc] rewrite that the web // server does, which converts any ? to &, e.g. suggest&ignore=61 for suggest?ignore=61 - if(strpos($query_str, '?') === false) + if (strpos($query_str, '?') === false) $public_post_link = '?public=1'; else $public_post_link = '&public=1'; - if($a->theme['template_engine'] === 'internal') { + if ($a->theme['template_engine'] === 'internal') { $album_e = template_escape($ph[0]['album']); $caption_e = template_escape($ph[0]['desc']); $aclselect_e = template_escape(populate_acl($ph[0])); - } - else { + } else { $album_e = $ph[0]['album']; $caption_e = $ph[0]['desc']; $aclselect_e = populate_acl($ph[0]); @@ -1578,7 +1551,7 @@ function photos_content(&$a) { )); } - if(count($linked_items)) { + if (count($linked_items)) { $cmnt_tpl = get_markup_template('comment_item.tpl'); $tpl = get_markup_template('photo_item.tpl'); @@ -1588,7 +1561,7 @@ function photos_content(&$a) { $likebuttons = ''; - if($can_post || can_write_wall($a,$owner_uid)) { + if ($can_post || can_write_wall($a,$owner_uid)) { $likebuttons = replace_macros($like_tpl,array( '$id' => $link_item['id'], '$likethis' => t("I like this \x28toggle\x29"), @@ -1600,9 +1573,9 @@ function photos_content(&$a) { } $comments = ''; - if(! count($r)) { - if($can_post || can_write_wall($a,$owner_uid)) { - if($link_item['last-child']) { + if (! count($r)) { + if ($can_post || can_write_wall($a,$owner_uid)) { + if ($link_item['last-child']) { $comments .= replace_macros($cmnt_tpl,array( '$return_path' => '', '$jsreload' => $return_url, @@ -1638,9 +1611,9 @@ function photos_content(&$a) { // display comments - if(count($r)) { + if (dbm::is_result($r)) { - foreach($r as $item) { + foreach ($r as $item) { builtin_activity_puller($item, $conv_responses); } @@ -1649,8 +1622,8 @@ function photos_content(&$a) { - if($can_post || can_write_wall($a,$owner_uid)) { - if($link_item['last-child']) { + if ($can_post || can_write_wall($a,$owner_uid)) { + if ($link_item['last-child']) { $comments .= replace_macros($cmnt_tpl,array( '$return_path' => '', '$jsreload' => $return_url, @@ -1672,23 +1645,22 @@ function photos_content(&$a) { } - foreach($r as $item) { + foreach ($r as $item) { $comment = ''; $template = $tpl; $sparkle = ''; - if(((activity_match($item['verb'],ACTIVITY_LIKE)) || (activity_match($item['verb'],ACTIVITY_DISLIKE))) && ($item['id'] != $item['parent'])) + if (((activity_match($item['verb'],ACTIVITY_LIKE)) || (activity_match($item['verb'],ACTIVITY_DISLIKE))) && ($item['id'] != $item['parent'])) continue; $redirect_url = 'redir/' . $item['cid'] ; - if(local_user() && ($item['contact-uid'] == local_user()) + if (local_user() && ($item['contact-uid'] == local_user()) && ($item['network'] == NETWORK_DFRN) && (! $item['self'] )) { $profile_url = $redirect_url; $sparkle = ' sparkle'; - } - else { + } else { $profile_url = $item['url']; $sparkle = ''; } @@ -1711,12 +1683,11 @@ function photos_content(&$a) { ); - if($a->theme['template_engine'] === 'internal') { + if ($a->theme['template_engine'] === 'internal') { $name_e = template_escape($profile_name); $title_e = template_escape($item['title']); $body_e = template_escape(bbcode($item['body'])); - } - else { + } else { $name_e = $profile_name; $title_e = $item['title']; $body_e = bbcode($item['body']); @@ -1736,9 +1707,9 @@ function photos_content(&$a) { '$comment' => $comment )); - if($can_post || can_write_wall($a,$owner_uid)) { + if ($can_post || can_write_wall($a,$owner_uid)) { - if($item['last-child']) { + if ($item['last-child']) { $comments .= replace_macros($cmnt_tpl,array( '$return_path' => '', '$jsreload' => $return_url, @@ -1766,19 +1737,18 @@ function photos_content(&$a) { $response_verbs = array('like'); - if(feature_enabled($owner_uid,'dislike')) + if (feature_enabled($owner_uid,'dislike')) $response_verbs[] = 'dislike'; $responses = get_responses($conv_responses,$response_verbs,'',$link_item); $photo_tpl = get_markup_template('photo_view.tpl'); - if($a->theme['template_engine'] === 'internal') { + if ($a->theme['template_engine'] === 'internal') { $album_e = array($album_link,template_escape($ph[0]['album'])); $tags_e = template_escape($tags); $like_e = template_escape($like); $dislike_e = template_escape($dislike); - } - else { + } else { $album_e = array($album_link,$ph[0]['album']); $tags_e = $tags; $like_e = $like; @@ -1818,18 +1788,18 @@ function photos_content(&$a) { // Default - show recent photos with upload link (if applicable) //$o = ''; - $r = q("SELECT `resource-id`, max(`scale`) AS `scale` FROM `photo` WHERE `uid` = %d AND `album` != '%s' AND `album` != '%s' + $r = qu("SELECT `resource-id`, max(`scale`) AS `scale` FROM `photo` WHERE `uid` = %d AND `album` != '%s' AND `album` != '%s' $sql_extra GROUP BY `resource-id`", intval($a->data['user']['uid']), dbesc('Contact Photos'), dbesc( t('Contact Photos')) ); - if(count($r)) { + if (dbm::is_result($r)) { $a->set_pager_total(count($r)); $a->set_pager_itemspage(20); } - $r = q("SELECT `resource-id`, `id`, `filename`, type, `album`, max(`scale`) AS `scale` FROM `photo` + $r = qu("SELECT `resource-id`, `id`, `filename`, type, `album`, max(`scale`) AS `scale` FROM `photo` WHERE `uid` = %d AND `album` != '%s' AND `album` != '%s' $sql_extra GROUP BY `resource-id` ORDER BY `created` DESC LIMIT %d , %d", intval($a->data['user']['uid']), @@ -1842,24 +1812,24 @@ function photos_content(&$a) { $photos = array(); - if(count($r)) { + if (dbm::is_result($r)) { $twist = 'rotright'; - foreach($r as $rr) { + foreach ($r as $rr) { //hide profile photos to others - if((! $is_owner) && (! remote_user()) && ($rr['album'] == t('Profile Photos'))) + if ((! $is_owner) && (! remote_user()) && ($rr['album'] == t('Profile Photos'))) continue; - - if($twist == 'rotright') + + if ($twist == 'rotright') $twist = 'rotleft'; else $twist = 'rotright'; + $ext = $phototypes[$rr['type']]; - if($a->theme['template_engine'] === 'internal') { + if ($a->theme['template_engine'] === 'internal') { $alt_e = template_escape($rr['filename']); $name_e = template_escape($rr['album']); - } - else { + } else { $alt_e = $rr['filename']; $name_e = $rr['album']; } @@ -1887,10 +1857,8 @@ function photos_content(&$a) { '$can_post' => $can_post, '$upload' => array(t('Upload New Photos'), 'photos/'.$a->data['user']['nickname'].'/upload'), '$photos' => $photos, + '$paginate' => paginate($a), )); - - $o .= paginate($a); return $o; } - diff --git a/mod/ping.php b/mod/ping.php index c12da5613..0ed7eb3fe 100644 --- a/mod/ping.php +++ b/mod/ping.php @@ -4,22 +4,18 @@ require_once('include/bbcode.php'); require_once('include/ForumManager.php'); require_once('include/group.php'); require_once("mod/proxy.php"); +require_once('include/xml.php'); function ping_init(&$a) { - header("Content-type: text/xml"); - - echo " - "; - - $xmlhead="<"."?xml version='1.0' encoding='UTF-8' ?".">"; - - if(local_user()){ + $xmlhead = "<"."?xml version='1.0' encoding='UTF-8' ?".">"; + if (local_user()){ // Different login session than the page that is calling us. - - if(intval($_GET['uid']) && intval($_GET['uid']) != local_user()) { - echo '1'; + if (intval($_GET['uid']) && intval($_GET['uid']) != local_user()) { + $data = array("invalid" => 1); + header("Content-type: text/xml"); + echo xml::from_array(array("result" => $data), $xml); killme(); } @@ -32,6 +28,8 @@ function ping_init(&$a) { $dislikes = array(); $friends = array(); $posts = array(); + $regs = array(); + $mails = array(); $home = 0; $network = 0; @@ -49,14 +47,14 @@ function ping_init(&$a) { intval(local_user()), intval(local_user()) ); - if(count($r)) { + if (dbm::is_result($r)) { $arr = array('items' => $r); call_hooks('network_ping', $arr); foreach ($r as $it) { - if($it['wall']) + if ($it['wall']) $home ++; else $network ++; @@ -82,20 +80,20 @@ function ping_init(&$a) { if ($it['parent']!=$it['id']) { $comments[] = $it; } else { - if(! $it['wall']) + if (!$it['wall']) $posts[] = $it; } } } } - if($network) { - if(intval(feature_enabled(local_user(),'groups'))) { + if ($network) { + if (intval(feature_enabled(local_user(),'groups'))) { // Find out how unseen network posts are spread across groups $groups_unseen = groups_count_unseen(); } - if(intval(feature_enabled(local_user(),'forumlist_widget'))) { + if (intval(feature_enabled(local_user(),'forumlist_widget'))) { $forums_unseen = ForumManager::count_unseen_items(); } } @@ -116,8 +114,6 @@ function ping_init(&$a) { $intro = count($intros1) + count($intros2); $intros = $intros1+$intros2; - - $myurl = $a->get_baseurl() . '/profile/' . $a->user['nickname'] ; $mails = q("SELECT * FROM `mail` WHERE `uid` = %d AND `seen` = 0 AND `from-url` != '%s' ", @@ -128,7 +124,7 @@ function ping_init(&$a) { if ($a->config['register_policy'] == REGISTER_APPROVE && is_site_admin()){ $regs = q("SELECT `contact`.`name`, `contact`.`url`, `contact`.`micro`, `register`.`created`, COUNT(*) as `total` FROM `contact` RIGHT JOIN `register` ON `register`.`uid`=`contact`.`uid` WHERE `contact`.`self`=1"); - if($regs) + if ($regs) $register = $regs[0]['total']; } else { $register = "0"; @@ -150,23 +146,23 @@ function ping_init(&$a) { dbesc(datetime_convert('UTC','UTC','now')) ); - if($ev && count($ev)) { + if (dbm::is_result($ev)) { $all_events = intval($ev[0]['total']); - if($all_events) { + if ($all_events) { $str_now = datetime_convert('UTC',$a->timezone,'now','Y-m-d'); foreach($ev as $x) { $bd = false; - if($x['type'] === 'birthday') { + if ($x['type'] === 'birthday') { $birthdays ++; $bd = true; } else { $events ++; } - if(datetime_convert('UTC',((intval($x['adjust'])) ? $a->timezone : 'UTC'), $x['start'],'Y-m-d') === $str_now) { + if (datetime_convert('UTC',((intval($x['adjust'])) ? $a->timezone : 'UTC'), $x['start'],'Y-m-d') === $str_now) { $all_events_today ++; - if($bd) + if ($bd) $birthdays_today ++; else $events_today ++; @@ -175,92 +171,58 @@ function ping_init(&$a) { } } + $data = array(); + $data["intro"] = $intro; + $data["mail"] = $mail; + $data["net"] = $network; + $data["home"] = $home; - /** - * return xml from notification array - * - * @param array $n Notification array: - * 'href' => notification link - * 'name' => subject name - * 'url' => subject url - * 'photo' => subject photo - * 'date' => notification date - * 'seen' => bool true/false - * 'message' => notification message. "{0}" will be replaced by subject name - **/ - function xmlize($n){ + if ($register!=0) + $data["register"] = $register; - $contact = get_contact_details_by_url($n['url']); - if (isset($contact["thumb"])) - $n['photo'] = proxy_url($contact["thumb"], false, PROXY_SIZE_MICRO); - else - $n['photo'] = proxy_url($n['photo'], false, PROXY_SIZE_MICRO); + $groups = array(); - $n['message'] = html_entity_decode($n['message'], ENT_COMPAT | ENT_HTML401, "UTF-8"); - $n['name'] = html_entity_decode($n['name'], ENT_COMPAT | ENT_HTML401, "UTF-8"); - - // Are the nofications calles from the regular process or via the friendica app? - $regularnotifications = (intval($_GET['uid']) AND intval($_GET['_'])); - - $a = get_app(); - - if ($a->is_friendica_app() OR !$regularnotifications) - $n['message'] = str_replace("{0}", $n['name'], $n['message']); - - $local_time = datetime_convert('UTC',date_default_timezone_get(),$n['date']); - - call_hooks('ping_xmlize', $n); - $notsxml = '%s'."\n"; - return sprintf ( $notsxml, intval($n['id']), - xmlify($n['href']), xmlify(xmlify($n['name'])), xmlify($n['url']), xmlify($n['photo']), - xmlify(relative_date($n['date'])), xmlify($n['seen']), xmlify(strtotime($local_time)), - xmlify($n['message']) - ); - } - - echo "$intro - $mail - $network - $home\r\n"; - if ($register!=0) echo "$register"; - - if (count($groups_unseen)) { - echo ''; + if (dbm::is_result($groups_unseen)) { + $count = 0; foreach ($groups_unseen as $it) - if ($it['count'] > 0) - echo ''.$it['count'].""; - - echo ""; + if ($it['count'] > 0) { + $count++; + $groups[$count.":group"] = $it['count']; + $groups[$count.":@attributes"] = array("id" => $it['id']); + } + $data["groups"] = $groups; } - if (count($forums_unseen)) { - echo ''; + $forums = array(); + + if (dbm::is_result($forums_unseen)) { + $count = 0; foreach ($forums_unseen as $it) - if ($it['count'] > 0) - echo ''.$it['count'].""; - - echo ""; + if ($it['count'] > 0) { + $count++; + $forums[$count.":forum"] = $it['count']; + $forums[$count.":@attributes"] = array("id" => $it['id']); + } + $data["forums"] = $forums; } - echo "$all_events - $all_events_today - $events - $events_today - $birthdays - $birthdays_today\r\n"; + $data["all-events"] = $all_events; + $data["all-events-today"] = $all_events_today; + $data["events"] = $events; + $data["events-today"] = $events_today; + $data["birthdays"] = $birthdays; + $data["birthdays-today"] = $birthdays_today; - if(count($notifs) && (! $sysnotify)) { - foreach($notifs as $zz) { - if($zz['seen'] == 0) + if (dbm::is_result($notifs) && !$sysnotify) { + foreach ($notifs as $zz) { + if ($zz['seen'] == 0) $sysnotify ++; } } - echo ' '; - // merge all notification types in one array - if ($intro>0){ + if (dbm::is_result($intros)) { foreach ($intros as $i) { $n = array( 'href' => $a->get_baseurl().'/notifications/intros/'.$i['id'], @@ -275,7 +237,7 @@ function ping_init(&$a) { } } - if ($mail>0){ + if (dbm::is_result($mails)) { foreach ($mails as $i) { $n = array( 'href' => $a->get_baseurl().'/message/'.$i['id'], @@ -290,7 +252,7 @@ function ping_init(&$a) { } } - if ($register>0){ + if (dbm::is_result($regs)) { foreach ($regs as $i) { $n = array( 'href' => $a->get_baseurl().'/admin/users/', @@ -304,6 +266,7 @@ function ping_init(&$a) { $notifs[] = $n; } } + // sort notifications by $[]['date'] $sort_function = function($a, $b) { $adate = date($a['date']); @@ -315,37 +278,78 @@ function ping_init(&$a) { }; usort($notifs, $sort_function); - if(count($notifs)) { + if (dbm::is_result($notifs)) { + + // Are the nofications calles from the regular process or via the friendica app? + $regularnotifications = (intval($_GET['uid']) AND intval($_GET['_'])); + + $count = 0; foreach($notifs as $n) { - echo xmlize($n); + $count++; + if ($a->is_friendica_app() OR !$regularnotifications) + $n['message'] = str_replace("{0}", $n['name'], $n['message']); + + $notifications[$count.":note"] = $n['message']; + + $contact = get_contact_details_by_url($n['url']); + if (isset($contact["micro"])) + $n['photo'] = proxy_url($contact["micro"], false, PROXY_SIZE_MICRO); + else + $n['photo'] = proxy_url($n['photo'], false, PROXY_SIZE_MICRO); + + $local_time = datetime_convert('UTC',date_default_timezone_get(),$n['date']); + + call_hooks('ping_xmlize', $n); + + $notifications[$count.":@attributes"] = array("id" => $n["id"], + "href" => $n['href'], + "name" => $n['name'], + "url" => $n['url'], + "photo" => $n['photo'], + "date" => relative_date($n['date']), + "seen" => $n['seen'], + "timestamp" => strtotime($local_time)); + } } - - echo " "; + $data["notif"] = $notifications; + $data["@attributes"] = array("count" => $sysnotify + $intro + $mail + $register); } - echo " "; - if(x($_SESSION,'sysmsg')){ + $sysmsg = array(); + + if (x($_SESSION,'sysmsg')){ + $count = 0; foreach ($_SESSION['sysmsg'] as $m){ - echo "".xmlify($m).""; + $count++; + $sysmsg[$count.":notice"] = $m; } unset($_SESSION['sysmsg']); } - if(x($_SESSION,'sysmsg_info')){ + + if (x($_SESSION,'sysmsg_info')){ + $count = 0; foreach ($_SESSION['sysmsg_info'] as $m){ - echo "".xmlify($m).""; + $count++; + $sysmsg[$count.":info"] = $m; } unset($_SESSION['sysmsg_info']); } - echo " "; - echo" - "; + $data["sysmsgs"] = $sysmsg; + header("Content-type: text/xml"); + echo xml::from_array(array("result" => $data), $xml); killme(); } +/** + * @brief Retrieves the notifications array for the given user ID + * + * @param int $uid User id + * @return array Associative array of notifications + */ function ping_get_notifications($uid) { $result = array(); @@ -374,46 +378,47 @@ function ping_get_notifications($uid) { $seensql = ""; $order = "DESC"; $offset = 0; - } elseif (!$r) + } elseif (!$r) { $quit = true; - else + } else { $offset += 50; - + } foreach ($r AS $notification) { - if (is_null($notification["visible"])) + if (is_null($notification["visible"])) { $notification["visible"] = true; + } - if (is_null($notification["spam"])) + if (is_null($notification["spam"])) { $notification["spam"] = 0; + } - if (is_null($notification["deleted"])) + if (is_null($notification["deleted"])) { $notification["deleted"] = 0; + } - $notification["message"] = strip_tags(bbcode($notification["msg"])); - $notification["name"] = strip_tags(bbcode($notification["name"])); + if ($notification["msg_cache"]) { + $notification["name"] = $notification["name_cache"]; + $notification["message"] = $notification["msg_cache"]; + } else { + $notification["name"] = strip_tags(bbcode($notification["name"])); + $notification["message"] = format_notification_message($notification["name"], strip_tags(bbcode($notification["msg"]))); - // Replace the name with {0} but ensure to make that only once - // The {0} is used later and prints the name in bold. + q("UPDATE `notify` SET `name_cache` = '%s', `msg_cache` = '%s' WHERE `id` = %d", + dbesc($notification["name"]), + dbesc($notification["message"]), + intval($notification["id"]) + ); + } - if ($notification['name'] != "") - $pos = strpos($notification["message"],$notification['name']); - else - $pos = false; - - if ($pos !== false) - $notification["message"] = substr_replace($notification["message"],"{0}",$pos,strlen($notification["name"])); - - $notification['href'] = $a->get_baseurl() . '/notify/view/' . $notification['id']; + $notification["href"] = $a->get_baseurl() . "/notify/view/" . $notification["id"]; if ($notification["visible"] AND !$notification["spam"] AND !$notification["deleted"] AND !is_array($result[$notification["parent"]])) { $result[$notification["parent"]] = $notification; } } - } while ((count($result) < 50) AND !$quit); - return($result); } diff --git a/mod/poco.php b/mod/poco.php index 0a1b39216..1ec5b2d4e 100644 --- a/mod/poco.php +++ b/mod/poco.php @@ -1,4 +1,6 @@ false, 'tags' => false, 'address' => false, + 'contactType' => false, 'generation' => false ); @@ -207,6 +212,9 @@ function poco_init(&$a) { if (($rr['keywords'] == "") AND isset($rr['pub_keywords'])) $rr['keywords'] = $rr['pub_keywords']; + if (isset($rr['account-type'])) + $rr['contact-type'] = $rr['account-type']; + $about = Cache::get("about:".$rr['updated'].":".$rr['nurl']); if (is_null($about)) { $about = bbcode($rr['about'], false, false); @@ -300,6 +308,9 @@ function poco_init(&$a) { $entry['address']['country'] = $rr['pcountry']; } + if($fields_ret['contactType']) + $entry['contactType'] = intval($rr['contact-type']); + $ret['entry'][] = $entry; } } diff --git a/mod/poke.php b/mod/poke.php index 4a643435b..435da4dcd 100644 --- a/mod/poke.php +++ b/mod/poke.php @@ -131,13 +131,13 @@ function poke_init(&$a) { // intval($uid), // intval($item_id) //); - proc_run('php',"include/notifier.php","tag","$item_id"); + proc_run(PRIORITY_HIGH, "include/notifier.php", "tag", $item_id); } call_hooks('post_local_end', $arr); - proc_run('php',"include/notifier.php","like","$post_id"); + proc_run(PRIORITY_HIGH, "include/notifier.php", "like", $post_id); return; } diff --git a/mod/profile.php b/mod/profile.php index 88de0227b..279f86352 100644 --- a/mod/profile.php +++ b/mod/profile.php @@ -10,7 +10,7 @@ function profile_init(&$a) { $a->page['aside'] = ''; if($a->argc > 1) - $which = $a->argv[1]; + $which = htmlspecialchars($a->argv[1]); else { $r = q("select nickname from user where blocked = 0 and account_expired = 0 and account_removed = 0 and verified = 1 order by rand() limit 1"); if(count($r)) { @@ -27,7 +27,7 @@ function profile_init(&$a) { $profile = 0; if((local_user()) && ($a->argc > 2) && ($a->argv[2] === 'view')) { $which = $a->user['nickname']; - $profile = $a->argv[1]; + $profile = htmlspecialchars($a->argv[1]); } else { auto_redir($a, $which); @@ -282,34 +282,34 @@ function profile_content(&$a, $update = 0) { $pager_sql = sprintf(" LIMIT %d, %d ",intval($a->pager['start']), intval($a->pager['itemspage'])); $r = q("SELECT `thread`.`iid` AS `item_id`, `thread`.`network` AS `item_network` - FROM `thread` FORCE INDEX (`uid_created`) INNER JOIN `item` ON `item`.`id` = `thread`.`iid` - $sql_post_table INNER JOIN `contact` ON `contact`.`id` = `thread`.`contact-id` - AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 - WHERE `thread`.`uid` = %d AND `thread`.`visible` = 1 AND `thread`.`deleted` = 0 - and `thread`.`moderated` = 0 - AND `thread`.`wall` = 1 - $sql_extra $sql_extra2 - ORDER BY `thread`.`created` DESC $pager_sql ", - intval($a->profile['profile_uid']) - + FROM `thread` + STRAIGHT_JOIN `item` ON `item`.`id` = `thread`.`iid` + $sql_post_table + STRAIGHT_JOIN `contact` ON `contact`.`id` = `thread`.`contact-id` + AND NOT `contact`.`blocked` AND NOT `contact`.`pending` + WHERE `thread`.`uid` = %d AND `thread`.`visible` + AND `thread`.`contact-id` = %d + AND NOT `thread`.`deleted` + AND NOT `thread`.`moderated` + AND `thread`.`wall` + $sql_extra $sql_extra2 + ORDER BY `thread`.`created` DESC $pager_sql", + intval($a->profile['profile_uid']), + intval($a->profile['contact_id']) ); } $parents_arr = array(); $parents_str = ''; - if(count($r)) { + if (dbm::is_result($r)) { foreach($r as $rr) $parents_arr[] = $rr['item_id']; $parents_str = implode(', ', $parents_arr); - $items = q("SELECT %s, %s FROM `item` - INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND %s - WHERE %s AND `item`.`uid` = %d + $items = q(item_query()." AND `item`.`uid` = %d AND `item`.`parent` IN (%s) $sql_extra ", - item_fieldlist(), contact_fieldlist(), - contact_condition(), item_condition(), intval($a->profile['profile_uid']), dbesc($parents_str) ); diff --git a/mod/profile_photo.php b/mod/profile_photo.php index 4e8d279a9..11e671afc 100644 --- a/mod/profile_photo.php +++ b/mod/profile_photo.php @@ -125,7 +125,7 @@ function profile_photo_post(&$a) { // Update global directory in background $url = $a->get_baseurl() . '/profile/' . $a->user['nickname']; if($url && strlen(get_config('system','directory'))) - proc_run('php',"include/directory.php","$url"); + proc_run(PRIORITY_LOW, "include/directory.php", $url); require_once('include/profile_update.php'); profile_change(); @@ -224,7 +224,7 @@ function profile_photo_content(&$a) { // Update global directory in background $url = $_SESSION['my_url']; if($url && strlen(get_config('system','directory'))) - proc_run('php',"include/directory.php","$url"); + proc_run(PRIORITY_LOW, "include/directory.php", $url); goaway($a->get_baseurl() . '/profiles'); return; // NOTREACHED diff --git a/mod/profiles.php b/mod/profiles.php index 9cd1ed8a0..943742e3a 100644 --- a/mod/profiles.php +++ b/mod/profiles.php @@ -1,5 +1,6 @@ user['deny_gid']; $i = item_store($arr); - if($i) { - proc_run('php',"include/notifier.php","activity","$i"); - } + if($i) + proc_run(PRIORITY_HIGH, "include/notifier.php", "activity", $i); } @@ -725,6 +732,7 @@ function profiles_content(&$a) { '$howlong' => array('howlong', t('Since [date]:'), ($r[0]['howlong'] === '0000-00-00 00:00:00' ? '' : datetime_convert('UTC',date_default_timezone_get(),$r[0]['howlong']))), '$sexual' => sexpref_selector($r[0]['sexual']), '$about' => array('about', t('Tell us about yourself...'), $r[0]['about']), + '$xmpp' => array('xmpp', t('XMPP (Jabber) address:'), $r[0]['xmpp'], t("The XMPP address will be propagated to your contacts so that they can follow you.")), '$homepage' => array('homepage', t('Homepage URL:'), $r[0]['homepage']), '$hometown' => array('hometown', t('Hometown:'), $r[0]['hometown']), '$politic' => array('politic', t('Political Views:'), $r[0]['politic']), diff --git a/mod/proxy.php b/mod/proxy.php index abcaf4912..a4fbdd244 100644 --- a/mod/proxy.php +++ b/mod/proxy.php @@ -135,7 +135,7 @@ function proxy_init() { $valid = true; if (!$direct_cache AND ($cachefile == "")) { - $r = q("SELECT * FROM `photo` WHERE `resource-id` = '%s' LIMIT 1", $urlhash); + $r = qu("SELECT * FROM `photo` WHERE `resource-id` = '%s' LIMIT 1", $urlhash); if (count($r)) { $img_str = $r[0]['data']; $mime = $r[0]["desc"]; diff --git a/mod/register.php b/mod/register.php index 4c4fcc2af..3e124bd5b 100644 --- a/mod/register.php +++ b/mod/register.php @@ -52,6 +52,7 @@ function register_post(&$a) { $arr['blocked'] = $blocked; $arr['verified'] = $verified; + $arr['language'] = get_browser_language(); $result = create_user($arr); @@ -64,7 +65,7 @@ function register_post(&$a) { if($netpublish && $a->config['register_policy'] != REGISTER_APPROVE) { $url = $a->get_baseurl() . '/profile/' . $user['nickname']; - proc_run('php',"include/directory.php","$url"); + proc_run(PRIORITY_LOW, "include/directory.php", $url); } $using_invites = get_config('system','invitation_only'); @@ -132,7 +133,6 @@ function register_post(&$a) { $admin_mail_list ); - foreach ($adminlist as $admin) { notification(array( 'type' => NOTIFY_SYSTEM, @@ -145,11 +145,11 @@ function register_post(&$a) { 'source_photo' => $a->get_baseurl() . "/photo/avatar/".$user['uid'].".jpg", 'to_email' => $admin['email'], 'uid' => $admin['uid'], - 'language' => ($admin['language']?$admin['language']:'en')) - ); + 'language' => ($admin['language']?$admin['language']:'en'), + 'show_in_notification_page' => false + )); } - info( t('Your registration is pending approval by the site owner.') . EOL ) ; goaway(z_root()); diff --git a/mod/regmod.php b/mod/regmod.php index 5a90db1f9..bbe733003 100644 --- a/mod/regmod.php +++ b/mod/regmod.php @@ -37,7 +37,7 @@ function user_allow($hash) { if(count($r) && $r[0]['net-publish']) { $url = $a->get_baseurl() . '/profile/' . $user[0]['nickname']; if($url && strlen(get_config('system','directory'))) - proc_run('php',"include/directory.php","$url"); + proc_run(PRIORITY_LOW, "include/directory.php", $url); } push_lang($register[0]['language']); diff --git a/mod/search.php b/mod/search.php index 99ec6c5f7..a83725999 100644 --- a/mod/search.php +++ b/mod/search.php @@ -191,14 +191,12 @@ function search_content(&$a) { if($tag) { logger("Start tag search for '".$search."'", LOGGER_DEBUG); - $r = q("SELECT STRAIGHT_JOIN %s, %s + $r = q("SELECT %s FROM `term` - INNER JOIN `item` ON `item`.`id`=`term`.`oid` - INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND %s + STRAIGHT_JOIN `item` ON `item`.`id`=`term`.`oid` %s WHERE %s AND (`term`.`uid` = 0 OR (`term`.`uid` = %d AND NOT `term`.`global`)) AND `term`.`otype` = %d AND `term`.`type` = %d AND `term`.`term` = '%s' ORDER BY term.created DESC LIMIT %d , %d ", - item_fieldlist(), contact_fieldlist(), - contact_condition(), item_condition(), + item_fieldlists(), item_joins(), item_condition(), intval(local_user()), intval(TERM_OBJ_POST), intval(TERM_HASHTAG), dbesc(protect_sprintf($search)), intval($a->pager['start']), intval($a->pager['itemspage'])); @@ -211,14 +209,13 @@ function search_content(&$a) { $sql_extra = sprintf(" AND `item`.`body` REGEXP '%s' ", dbesc(protect_sprintf(preg_quote($search)))); } - $r = q("SELECT STRAIGHT_JOIN %s, %s - FROM `item` - INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND %s + + $r = q("SELECT %s + FROM `item` %s WHERE %s AND (`item`.`uid` = 0 OR (`item`.`uid` = %s AND NOT `item`.`global`)) $sql_extra GROUP BY `item`.`uri` ORDER BY `item`.`id` DESC LIMIT %d , %d", - item_fieldlist(), contact_fieldlist(), - contact_condition(), item_condition(), + item_fieldlists(), item_joins(), item_condition(), intval(local_user()), intval($a->pager['start']), intval($a->pager['itemspage'])); } diff --git a/mod/settings.php b/mod/settings.php index 89406b707..a20b999ed 100644 --- a/mod/settings.php +++ b/mod/settings.php @@ -279,7 +279,7 @@ function settings_post(&$a) { return; } - if(($a->argc > 1) && ($a->argv[1] === 'features')) { + if (($a->argc > 1) && ($a->argv[1] === 'features')) { check_form_security_token_redirectOnErr('/settings/features', 'settings_features'); foreach($_POST as $k => $v) { if(strpos($k,'feature_') === 0) { @@ -290,49 +290,50 @@ function settings_post(&$a) { return; } - if(($a->argc > 1) && ($a->argv[1] === 'display')) { - + if (($a->argc > 1) && ($a->argv[1] === 'display')) { check_form_security_token_redirectOnErr('/settings/display', 'settings_display'); - $theme = ((x($_POST,'theme')) ? notags(trim($_POST['theme'])) : $a->user['theme']); - $mobile_theme = ((x($_POST,'mobile_theme')) ? notags(trim($_POST['mobile_theme'])) : ''); - $nosmile = ((x($_POST,'nosmile')) ? intval($_POST['nosmile']) : 0); - $first_day_of_week = ((x($_POST,'first_day_of_week')) ? intval($_POST['first_day_of_week']) : 0); - $noinfo = ((x($_POST,'noinfo')) ? intval($_POST['noinfo']) : 0); - $infinite_scroll = ((x($_POST,'infinite_scroll')) ? intval($_POST['infinite_scroll']) : 0); - $no_auto_update = ((x($_POST,'no_auto_update')) ? intval($_POST['no_auto_update']) : 0); - $browser_update = ((x($_POST,'browser_update')) ? intval($_POST['browser_update']) : 0); + $theme = x($_POST, 'theme') ? notags(trim($_POST['theme'])) : $a->user['theme']; + $mobile_theme = x($_POST, 'mobile_theme') ? notags(trim($_POST['mobile_theme'])) : ''; + $nosmile = x($_POST, 'nosmile') ? intval($_POST['nosmile']) : 0; + $first_day_of_week = x($_POST, 'first_day_of_week') ? intval($_POST['first_day_of_week']) : 0; + $noinfo = x($_POST, 'noinfo') ? intval($_POST['noinfo']) : 0; + $infinite_scroll = x($_POST, 'infinite_scroll') ? intval($_POST['infinite_scroll']) : 0; + $no_auto_update = x($_POST, 'no_auto_update') ? intval($_POST['no_auto_update']) : 0; + $bandwidth_saver = x($_POST, 'bandwidth_saver') ? intval($_POST['bandwidth_saver']) : 0; + $browser_update = x($_POST, 'browser_update') ? intval($_POST['browser_update']) : 0; if ($browser_update != -1) { - $browser_update = $browser_update * 1000; + $browser_update = $browser_update * 1000; if ($browser_update < 10000) $browser_update = 10000; } - $itemspage_network = ((x($_POST,'itemspage_network')) ? intval($_POST['itemspage_network']) : 40); - if($itemspage_network > 100) + $itemspage_network = x($_POST,'itemspage_network') ? intval($_POST['itemspage_network']) : 40; + if ($itemspage_network > 100) { $itemspage_network = 100; - $itemspage_mobile_network = ((x($_POST,'itemspage_mobile_network')) ? intval($_POST['itemspage_mobile_network']) : 20); - if($itemspage_mobile_network > 100) + } + $itemspage_mobile_network = x($_POST,'itemspage_mobile_network') ? intval($_POST['itemspage_mobile_network']) : 20; + if ($itemspage_mobile_network > 100) { $itemspage_mobile_network = 100; - + } if($mobile_theme !== '') { set_pconfig(local_user(),'system','mobile_theme',$mobile_theme); } - set_pconfig(local_user(),'system','update_interval', $browser_update); - set_pconfig(local_user(),'system','itemspage_network', $itemspage_network); - set_pconfig(local_user(),'system','itemspage_mobile_network', $itemspage_mobile_network); - set_pconfig(local_user(),'system','no_smilies',$nosmile); - set_pconfig(local_user(),'system','first_day_of_week',$first_day_of_week); - set_pconfig(local_user(),'system','ignore_info',$noinfo); - set_pconfig(local_user(),'system','infinite_scroll',$infinite_scroll); - set_pconfig(local_user(),'system','no_auto_update',$no_auto_update); + set_pconfig(local_user(), 'system', 'update_interval' , $browser_update); + set_pconfig(local_user(), 'system', 'itemspage_network' , $itemspage_network); + set_pconfig(local_user(), 'system', 'itemspage_mobile_network', $itemspage_mobile_network); + set_pconfig(local_user(), 'system', 'no_smilies' , $nosmile); + set_pconfig(local_user(), 'system', 'first_day_of_week' , $first_day_of_week); + set_pconfig(local_user(), 'system', 'ignore_info' , $noinfo); + set_pconfig(local_user(), 'system', 'infinite_scroll' , $infinite_scroll); + set_pconfig(local_user(), 'system', 'no_auto_update' , $no_auto_update); + set_pconfig(local_user(), 'system', 'bandwidth_saver' , $bandwidth_saver); - - if ($theme == $a->user['theme']){ + if ($theme == $a->user['theme']) { // call theme_post only if theme has not been changed - if( ($themeconfigfile = get_theme_config_file($theme)) != null){ + if (($themeconfigfile = get_theme_config_file($theme)) != null) { require_once($themeconfigfile); theme_post($a); } @@ -352,7 +353,7 @@ function settings_post(&$a) { check_form_security_token_redirectOnErr('/settings', 'settings'); if (x($_POST,'resend_relocate')) { - proc_run('php', 'include/notifier.php', 'relocate', local_user()); + proc_run(PRIORITY_HIGH, 'include/notifier.php', 'relocate', local_user()); info(t("Relocate message has been send to your contacts")); goaway('settings'); } @@ -420,6 +421,7 @@ function settings_post(&$a) { $publish = (((x($_POST,'profile_in_directory')) && (intval($_POST['profile_in_directory']) == 1)) ? 1: 0); $net_publish = (((x($_POST,'profile_in_netdirectory')) && (intval($_POST['profile_in_netdirectory']) == 1)) ? 1: 0); $old_visibility = (((x($_POST,'visibility')) && (intval($_POST['visibility']) == 1)) ? 1 : 0); + $account_type = (((x($_POST,'account-type')) && (intval($_POST['account-type']))) ? intval($_POST['account-type']) : 0); $page_flags = (((x($_POST,'page-flags')) && (intval($_POST['page-flags']))) ? intval($_POST['page-flags']) : 0); $blockwall = (((x($_POST,'blockwall')) && (intval($_POST['blockwall']) == 1)) ? 0: 1); // this setting is inverted! $blocktags = (((x($_POST,'blocktags')) && (intval($_POST['blocktags']) == 1)) ? 0: 1); // this setting is inverted! @@ -453,6 +455,16 @@ function settings_post(&$a) { if(x($_POST,'notify8')) $notify += intval($_POST['notify8']); + // Adjust the page flag if the account type doesn't fit to the page flag. + if (($account_type == ACCOUNT_TYPE_PERSON) AND !in_array($page_flags, array(PAGE_NORMAL, PAGE_SOAPBOX, PAGE_FREELOVE))) + $page_flags = PAGE_NORMAL; + elseif (($account_type == ACCOUNT_TYPE_ORGANISATION) AND !in_array($page_flags, array(PAGE_SOAPBOX))) + $page_flags = PAGE_SOAPBOX; + elseif (($account_type == ACCOUNT_TYPE_NEWS) AND !in_array($page_flags, array(PAGE_SOAPBOX))) + $page_flags = PAGE_SOAPBOX; + elseif (($account_type == ACCOUNT_TYPE_COMMUNITY) AND !in_array($page_flags, array(PAGE_COMMUNITY, PAGE_PRVGROUP))) + $page_flags = PAGE_COMMUNITY; + $email_changed = false; $err = ''; @@ -553,7 +565,7 @@ function settings_post(&$a) { $r = q("UPDATE `user` SET `username` = '%s', `email` = '%s', `openid` = '%s', `timezone` = '%s', `allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s', - `notify-flags` = %d, `page-flags` = %d, `default-location` = '%s', + `notify-flags` = %d, `page-flags` = %d, `account-type` = %d, `default-location` = '%s', `allow_location` = %d, `maxreq` = %d, `expire` = %d, `openidserver` = '%s', `def_gid` = %d, `blockwall` = %d, `hidewall` = %d, `blocktags` = %d, `unkmail` = %d, `cntunkmail` = %d, `language` = '%s' @@ -568,6 +580,7 @@ function settings_post(&$a) { dbesc($str_group_deny), intval($notify), intval($page_flags), + intval($account_type), dbesc($defloc), intval($allow_location), intval($maxreq), @@ -614,7 +627,7 @@ function settings_post(&$a) { // Update global directory in background $url = $_SESSION['my_url']; if($url && strlen(get_config('system','directory'))) - proc_run('php',"include/directory.php","$url"); + proc_run(PRIORITY_LOW, "include/directory.php", $url); } require_once('include/profile_update.php'); @@ -963,8 +976,11 @@ function settings_content(&$a) { $no_auto_update = get_pconfig(local_user(),'system','no_auto_update'); $no_auto_update = (($no_auto_update===false)? '0': $no_auto_update); // default if not set: 0 + $bandwidth_saver = get_pconfig(local_user(), 'system', 'bandwidth_saver'); + $bandwidth_saver = (($bandwidth_saver === false) ? '0' : $bandwidth_saver); // default if not set: 0 + $theme_config = ""; - if( ($themeconfigfile = get_theme_config_file($theme_selected)) != null){ + if (($themeconfigfile = get_theme_config_file($theme_selected)) != null) { require_once($themeconfigfile); $theme_config = theme_content($a); } @@ -988,6 +1004,7 @@ function settings_content(&$a) { '$noinfo' => array('noinfo', t("Don't show notices"), $noinfo, ''), '$infinite_scroll' => array('infinite_scroll', t("Infinite scroll"), $infinite_scroll, ''), '$no_auto_update' => array('no_auto_update', t("Automatic updates only at the top of the network page"), $no_auto_update, 'When disabled, the network page is updated all the time, which could be confusing while reading.'), + '$bandwidth_saver' => array('bandwidth_saver', t('Bandwith Saver Mode'), $bandwidth_saver, t('When enabled, embedded content is not displayed on automatic updates, they only show on page reload.')), '$d_tset' => t('General Theme Settings'), '$d_ctset' => t('Custom Theme Settings'), @@ -1065,13 +1082,41 @@ function settings_content(&$a) { if(! strlen($a->user['timezone'])) $timezone = date_default_timezone_get(); + // Set the account type to "Community" when the page is a community page but the account type doesn't fit + // This is only happening on the first visit after the update + if (in_array($a->user['page-flags'], array(PAGE_COMMUNITY, PAGE_PRVGROUP)) AND + ($a->user['account-type'] != ACCOUNT_TYPE_COMMUNITY)) + $a->user['account-type'] = ACCOUNT_TYPE_COMMUNITY; + $pageset_tpl = get_markup_template('settings_pagetypes.tpl'); - $pageset_tpl = get_markup_template('pagetypes.tpl'); $pagetype = replace_macros($pageset_tpl, array( - '$user' => t("User Types"), - '$community' => t("Community Types"), - '$page_normal' => array('page-flags', t('Normal Account Page'), PAGE_NORMAL, + '$account_types' => t("Account Types"), + '$user' => t("Personal Page Subtypes"), + '$community' => t("Community Forum Subtypes"), + '$account_type' => $a->user['account-type'], + '$type_person' => ACCOUNT_TYPE_PERSON, + '$type_organisation' => ACCOUNT_TYPE_ORGANISATION, + '$type_news' => ACCOUNT_TYPE_NEWS, + '$type_community' => ACCOUNT_TYPE_COMMUNITY, + + '$account_person' => array('account-type', t('Personal Page'), ACCOUNT_TYPE_PERSON, + t('This account is a regular personal profile'), + ($a->user['account-type'] == ACCOUNT_TYPE_PERSON)), + + '$account_organisation' => array('account-type', t('Organisation Page'), ACCOUNT_TYPE_ORGANISATION, + t('This account is a profile for an organisation'), + ($a->user['account-type'] == ACCOUNT_TYPE_ORGANISATION)), + + '$account_news' => array('account-type', t('News Page'), ACCOUNT_TYPE_NEWS, + t('This account is a news account/reflector'), + ($a->user['account-type'] == ACCOUNT_TYPE_NEWS)), + + '$account_community' => array('account-type', t('Community Forum'), ACCOUNT_TYPE_COMMUNITY, + t('This account is a community forum where people can discuss with each other'), + ($a->user['account-type'] == ACCOUNT_TYPE_COMMUNITY)), + + '$page_normal' => array('page-flags', t('Normal Account Page'), PAGE_NORMAL, t('This account is a normal personal profile'), ($a->user['page-flags'] == PAGE_NORMAL)), @@ -1079,8 +1124,8 @@ function settings_content(&$a) { t('Automatically approve all connection/friend requests as read-only fans'), ($a->user['page-flags'] == PAGE_SOAPBOX)), - '$page_community' => array('page-flags', t('Community Forum/Celebrity Account'), PAGE_COMMUNITY, - t('Automatically approve all connection/friend requests as read-write fans'), + '$page_community' => array('page-flags', t('Public Forum'), PAGE_COMMUNITY, + t('Automatically approve all contact requests'), ($a->user['page-flags'] == PAGE_COMMUNITY)), '$page_freelove' => array('page-flags', t('Automatic Friend Page'), PAGE_FREELOVE, @@ -1206,7 +1251,7 @@ function settings_content(&$a) { $public_post_link = '&public=1'; /* Installed langs */ - $lang_choices = get_avaiable_languages(); + $lang_choices = get_available_languages(); $o .= replace_macros($stpl, array( '$ptitle' => t('Account Settings'), @@ -1307,4 +1352,3 @@ function settings_content(&$a) { return $o; } - diff --git a/mod/suggest.php b/mod/suggest.php index 00033b2d2..4399450ec 100644 --- a/mod/suggest.php +++ b/mod/suggest.php @@ -95,7 +95,7 @@ function suggest_content(&$a) { 'details' => $contact_details['location'], 'tags' => $contact_details['keywords'], 'about' => $contact_details['about'], - 'account_type' => (($contact_details['community']) ? t('Forum') : ''), + 'account_type' => account_type($contact_details), 'ignlnk' => $ignlnk, 'ignid' => $rr['id'], 'conntxt' => t('Connect'), @@ -113,7 +113,6 @@ function suggest_content(&$a) { $o .= replace_macros($tpl,array( '$title' => t('Friend Suggestions'), '$contacts' => $entries, - )); return $o; diff --git a/mod/tagger.php b/mod/tagger.php index 26166a3cc..e0ef1ceb0 100644 --- a/mod/tagger.php +++ b/mod/tagger.php @@ -211,7 +211,7 @@ EOT; call_hooks('post_local_end', $arr); - proc_run('php',"include/notifier.php","tag","$post_id"); + proc_run(PRIORITY_HIGH, "include/notifier.php", "tag", $post_id); killme(); diff --git a/mod/update_community.php b/mod/update_community.php index 512629b00..d5df7ba3b 100644 --- a/mod/update_community.php +++ b/mod/update_community.php @@ -2,7 +2,7 @@ // See update_profile.php for documentation -require_once('mod/community.php'); +require_once("mod/community.php"); function update_community_content(&$a) { @@ -10,24 +10,25 @@ function update_community_content(&$a) { echo "\r\n"; echo "
      "; - $text = community_content($a,true); - $pattern = "/]*) src=\"([^\"]*)\"/"; - $replace = "'; - $pattern = "/<\s*audio[^>]*>(.*?)<\s*\/\s*audio>/i"; - $text = preg_replace($pattern, $replace, $text); - $pattern = "/<\s*video[^>]*>(.*?)<\s*\/\s*video>/i"; - $text = preg_replace($pattern, $replace, $text); - $pattern = "/<\s*embed[^>]*>(.*?)<\s*\/\s*embed>/i"; - $text = preg_replace($pattern, $replace, $text); - $pattern = "/<\s*iframe[^>]*>(.*?)<\s*\/\s*iframe>/i"; - $text = preg_replace($pattern, $replace, $text); + if (get_pconfig(local_user(), "system", "bandwith_saver")) { + $replace = "
      ".t("[Embedded content - reload page to view]")."
      "; + $pattern = "/<\s*audio[^>]*>(.*?)<\s*\/\s*audio>/i"; + $text = preg_replace($pattern, $replace, $text); + $pattern = "/<\s*video[^>]*>(.*?)<\s*\/\s*video>/i"; + $text = preg_replace($pattern, $replace, $text); + $pattern = "/<\s*embed[^>]*>(.*?)<\s*\/\s*embed>/i"; + $text = preg_replace($pattern, $replace, $text); + $pattern = "/<\s*iframe[^>]*>(.*?)<\s*\/\s*iframe>/i"; + $text = preg_replace($pattern, $replace, $text); + } - echo str_replace("\t",' ',$text); + echo str_replace("\t", " ", $text); echo "
      "; echo "\r\n"; killme(); - } \ No newline at end of file diff --git a/mod/update_display.php b/mod/update_display.php index 25b0f7792..bd2a52934 100644 --- a/mod/update_display.php +++ b/mod/update_display.php @@ -2,12 +2,12 @@ // See update_profile.php for documentation -require_once('mod/display.php'); -require_once('include/group.php'); +require_once("mod/display.php"); +require_once("include/group.php"); function update_display_content(&$a) { - $profile_uid = intval($_GET['p']); + $profile_uid = intval($_GET["p"]); header("Content-type: text/html"); echo "\r\n"; @@ -19,20 +19,20 @@ function update_display_content(&$a) { $replace = "'; - $pattern = "/<\s*audio[^>]*>(.*?)<\s*\/\s*audio>/i"; - $text = preg_replace($pattern, $replace, $text); - $pattern = "/<\s*video[^>]*>(.*?)<\s*\/\s*video>/i"; - $text = preg_replace($pattern, $replace, $text); - $pattern = "/<\s*embed[^>]*>(.*?)<\s*\/\s*embed>/i"; - $text = preg_replace($pattern, $replace, $text); - $pattern = "/<\s*iframe[^>]*>(.*?)<\s*\/\s*iframe>/i"; - $text = preg_replace($pattern, $replace, $text); + if (get_pconfig(local_user(), "system", "bandwith_saver")) { + $replace = "
      ".t("[Embedded content - reload page to view]")."
      "; + $pattern = "/<\s*audio[^>]*>(.*?)<\s*\/\s*audio>/i"; + $text = preg_replace($pattern, $replace, $text); + $pattern = "/<\s*video[^>]*>(.*?)<\s*\/\s*video>/i"; + $text = preg_replace($pattern, $replace, $text); + $pattern = "/<\s*embed[^>]*>(.*?)<\s*\/\s*embed>/i"; + $text = preg_replace($pattern, $replace, $text); + $pattern = "/<\s*iframe[^>]*>(.*?)<\s*\/\s*iframe>/i"; + $text = preg_replace($pattern, $replace, $text); + } - - echo str_replace("\t",' ',$text); + echo str_replace("\t", " ", $text); echo ""; echo "\r\n"; killme(); - } diff --git a/mod/update_network.php b/mod/update_network.php index 1bf374657..258d03e32 100644 --- a/mod/update_network.php +++ b/mod/update_network.php @@ -2,40 +2,41 @@ // See update_profile.php for documentation -require_once('mod/network.php'); -require_once('include/group.php'); +require_once("mod/network.php"); +require_once("include/group.php"); function update_network_content(&$a) { - $profile_uid = intval($_GET['p']); + $profile_uid = intval($_GET["p"]); header("Content-type: text/html"); echo "\r\n"; echo "
      "; - if (!get_pconfig($profile_uid, "system", "no_auto_update") OR ($_GET['force'] == 1)) - $text = network_content($a,$profile_uid); - else + if (!get_pconfig($profile_uid, "system", "no_auto_update") OR ($_GET["force"] == 1)) { + $text = network_content($a, $profile_uid); + } else { $text = ""; + } $pattern = "/]*) src=\"([^\"]*)\"/"; $replace = "'; - $pattern = "/<\s*audio[^>]*>(.*?)<\s*\/\s*audio>/i"; - $text = preg_replace($pattern, $replace, $text); - $pattern = "/<\s*video[^>]*>(.*?)<\s*\/\s*video>/i"; - $text = preg_replace($pattern, $replace, $text); - $pattern = "/<\s*embed[^>]*>(.*?)<\s*\/\s*embed>/i"; - $text = preg_replace($pattern, $replace, $text); - $pattern = "/<\s*iframe[^>]*>(.*?)<\s*\/\s*iframe>/i"; - $text = preg_replace($pattern, $replace, $text); + if (get_pconfig(local_user(), "system", "bandwith_saver")) { + $replace = "
      ".t("[Embedded content - reload page to view]")."
      "; + $pattern = "/<\s*audio[^>]*>(.*?)<\s*\/\s*audio>/i"; + $text = preg_replace($pattern, $replace, $text); + $pattern = "/<\s*video[^>]*>(.*?)<\s*\/\s*video>/i"; + $text = preg_replace($pattern, $replace, $text); + $pattern = "/<\s*embed[^>]*>(.*?)<\s*\/\s*embed>/i"; + $text = preg_replace($pattern, $replace, $text); + $pattern = "/<\s*iframe[^>]*>(.*?)<\s*\/\s*iframe>/i"; + $text = preg_replace($pattern, $replace, $text); + } - - echo str_replace("\t",' ',$text); + echo str_replace("\t", " ", $text); echo "
      "; echo "\r\n"; killme(); - } diff --git a/mod/update_notes.php b/mod/update_notes.php index 6b8fff511..ee9d1d71f 100644 --- a/mod/update_notes.php +++ b/mod/update_notes.php @@ -1,17 +1,15 @@ \r\n"; @@ -20,37 +18,35 @@ function update_notes_content(&$a) { /** * - * Grab the page inner contents by calling the content function from the profile module directly, - * but move any image src attributes to another attribute name. This is because + * Grab the page inner contents by calling the content function from the profile module directly, + * but move any image src attributes to another attribute name. This is because * some browsers will prefetch all the images for the page even if we don't need them. * The only ones we need to fetch are those for new page additions, which we'll discover * on the client side and then swap the image back. * */ - $text = notes_content($a,$profile_uid); + $text = notes_content($a, $profile_uid); $pattern = "/]*) src=\"([^\"]*)\"/"; $replace = "'; - $pattern = "/<\s*audio[^>]*>(.*?)<\s*\/\s*audio>/i"; - $text = preg_replace($pattern, $replace, $text); - $pattern = "/<\s*video[^>]*>(.*?)<\s*\/\s*video>/i"; - $text = preg_replace($pattern, $replace, $text); - $pattern = "/<\s*embed[^>]*>(.*?)<\s*\/\s*embed>/i"; - $text = preg_replace($pattern, $replace, $text); - $pattern = "/<\s*iframe[^>]*>(.*?)<\s*\/\s*iframe>/i"; - $text = preg_replace($pattern, $replace, $text); + if (get_pconfig(local_user(), "system", "bandwith_saver")) { + $replace = "
      ".t("[Embedded content - reload page to view]")."
      "; + $pattern = "/<\s*audio[^>]*>(.*?)<\s*\/\s*audio>/i"; + $text = preg_replace($pattern, $replace, $text); + $pattern = "/<\s*video[^>]*>(.*?)<\s*\/\s*video>/i"; + $text = preg_replace($pattern, $replace, $text); + $pattern = "/<\s*embed[^>]*>(.*?)<\s*\/\s*embed>/i"; + $text = preg_replace($pattern, $replace, $text); + $pattern = "/<\s*iframe[^>]*>(.*?)<\s*\/\s*iframe>/i"; + $text = preg_replace($pattern, $replace, $text); + } - /** - * reportedly some versions of MSIE don't handle tabs in XMLHttpRequest documents very well - */ - - echo str_replace("\t",' ',$text); + // reportedly some versions of MSIE don't handle tabs in XMLHttpRequest documents very well + echo str_replace("\t", " ", $text); echo ""; echo "\r\n"; killme(); - } \ No newline at end of file diff --git a/mod/update_profile.php b/mod/update_profile.php index 2492a48ee..1bc29d82c 100644 --- a/mod/update_profile.php +++ b/mod/update_profile.php @@ -3,58 +3,49 @@ /** * Module: update_profile * Purpose: AJAX synchronisation of profile page - * */ - -require_once('mod/profile.php'); +require_once("mod/profile.php"); function update_profile_content(&$a) { - $profile_uid = intval($_GET['p']); + $profile_uid = intval($_GET["p"]); header("Content-type: text/html"); echo "\r\n"; - /** - * We can remove this hack once Internet Explorer recognises HTML5 natively - */ - + // We can remove this hack once Internet Explorer recognises HTML5 natively echo "
      "; /** - * - * Grab the page inner contents by calling the content function from the profile module directly, - * but move any image src attributes to another attribute name. This is because + * Grab the page inner contents by calling the content function from the profile module directly, + * but move any image src attributes to another attribute name. This is because * some browsers will prefetch all the images for the page even if we don't need them. * The only ones we need to fetch are those for new page additions, which we'll discover * on the client side and then swap the image back. - * */ - $text = profile_content($a,$profile_uid); + $text = profile_content($a, $profile_uid); $pattern = "/]*) src=\"([^\"]*)\"/"; $replace = "'; - $pattern = "/<\s*audio[^>]*>(.*?)<\s*\/\s*audio>/i"; - $text = preg_replace($pattern, $replace, $text); - $pattern = "/<\s*video[^>]*>(.*?)<\s*\/\s*video>/i"; - $text = preg_replace($pattern, $replace, $text); - $pattern = "/<\s*embed[^>]*>(.*?)<\s*\/\s*embed>/i"; - $text = preg_replace($pattern, $replace, $text); - $pattern = "/<\s*iframe[^>]*>(.*?)<\s*\/\s*iframe>/i"; - $text = preg_replace($pattern, $replace, $text); + if (get_pconfig(local_user(), "system", "bandwith_saver")) { + $replace = "
      ".t("[Embedded content - reload page to view]")."
      "; + $pattern = "/<\s*audio[^>]*>(.*?)<\s*\/\s*audio>/i"; + $text = preg_replace($pattern, $replace, $text); + $pattern = "/<\s*video[^>]*>(.*?)<\s*\/\s*video>/i"; + $text = preg_replace($pattern, $replace, $text); + $pattern = "/<\s*embed[^>]*>(.*?)<\s*\/\s*embed>/i"; + $text = preg_replace($pattern, $replace, $text); + $pattern = "/<\s*iframe[^>]*>(.*?)<\s*\/\s*iframe>/i"; + $text = preg_replace($pattern, $replace, $text); + } - /** - * reportedly some versions of MSIE don't handle tabs in XMLHttpRequest documents very well - */ - - echo str_replace("\t",' ',$text); + // reportedly some versions of MSIE don't handle tabs in XMLHttpRequest documents very well + echo str_replace("\t", " ", $text); echo "
      "; echo "\r\n"; killme(); - } \ No newline at end of file diff --git a/mod/videos.php b/mod/videos.php index bf8d696b6..fb742eb01 100644 --- a/mod/videos.php +++ b/mod/videos.php @@ -33,10 +33,7 @@ function videos_init(&$a) { $profile = get_profiledata_by_nick($nick, $a->profile_uid); - if((intval($profile['page-flags']) == PAGE_COMMUNITY) || (intval($profile['page-flags']) == PAGE_PRVGROUP)) - $account_type = t('Forum'); - else - $account_type = ""; + $account_type = account_type($profile); $tpl = get_markup_template("vcard-widget.tpl"); @@ -167,7 +164,7 @@ function videos_post(&$a) { $drop_id = intval($i[0]['id']); if($i[0]['visible']) - proc_run('php',"include/notifier.php","drop","$drop_id"); + proc_run(PRIORITY_HIGH, "include/notifier.php", "drop", $drop_id); } } diff --git a/mod/viewcontacts.php b/mod/viewcontacts.php index 2e36a3bd7..19dd8b7f9 100644 --- a/mod/viewcontacts.php +++ b/mod/viewcontacts.php @@ -36,16 +36,16 @@ function viewcontacts_content(&$a) { return; } - if(((! count($a->profile)) || ($a->profile['hide-friends']))) { - notice( t('Permission denied.') . EOL); - return; - } - $o = ""; // tabs $o .= profile_tabs($a,$is_owner, $a->data['user']['nickname']); + if(((! count($a->profile)) || ($a->profile['hide-friends']))) { + notice( t('Permission denied.') . EOL); + return $o; + } + $r = q("SELECT COUNT(*) AS `total` FROM `contact` WHERE `uid` = %d AND `blocked` = 0 AND `pending` = 0 AND `hidden` = 0 AND `archive` = 0 AND `network` IN ('%s', '%s', '%s')", @@ -102,7 +102,7 @@ function viewcontacts_content(&$a) { 'details' => $contact_details['location'], 'tags' => $contact_details['keywords'], 'about' => $contact_details['about'], - 'account_type' => (($contact_details['community']) ? t('Forum') : ''), + 'account_type' => account_type($contact_details), 'url' => $url, 'sparkle' => '', 'itemurl' => (($contact_details['addr'] != "") ? $contact_details['addr'] : $rr['url']), diff --git a/mod/webfinger.php b/mod/webfinger.php index 74bd2c954..e1e5b367b 100644 --- a/mod/webfinger.php +++ b/mod/webfinger.php @@ -1,6 +1,5 @@ '; $o .= 'Lookup address: '; - $o .= ''; + $o .= ''; $o .= '

      '; if(x($_GET,'addr')) { $addr = trim($_GET['addr']); - if(strpos($addr,'@' !== false)) - $res = webfinger($addr); - else - $res = lrdd($addr); + $res = Probe::lrdd($addr); $o .= '
      ';
       		$o .= str_replace("\n",'
      ',print_r($res,true)); $o .= '
      '; diff --git a/mods/sample-Lighttpd.config b/mods/sample-Lighttpd.config index 422c71006..1c8370060 100644 --- a/mods/sample-Lighttpd.config +++ b/mods/sample-Lighttpd.config @@ -1,4 +1,4 @@ -Below is a sample config for Lighttpd that +Below is a sample config for Lighttpd that seems to work well on Debian Squeeze, with "lighttpd/1.4.28 (ssl)" The idea is: if someone enters the bare URL for my site, 'example.com', @@ -21,6 +21,18 @@ the requested URL. Enjoy! +On Debian Jessie with lighttpd 1.4.35-4 there was a problem encountered +between curl (which is used by Friendica in the background) and lighttp. +This problem caused requests being served with an error code of 417 in +the logs and no delivery of postings from the contacts. + +One can solve the issue by adding + + server.reject-expect-100-with-417 = "disable" + +to the lighttpd configuratiion file (e.g. in the beginning with the +other 'server.xxx' settings. + ---------------( config starts )----------------- debug.log-request-handling = "disable" @@ -50,21 +62,16 @@ ssl.ca-file = "/etc/lighttpd/ssl/ca.pem" # fix for problem between curl and lighttpd server.reject-expect-100-with-417 = "disable" -# Send everybody to landing -page: +# Send everybody to landing page: $SERVER["socket"] == ":80" { $HTTP["scheme"] == "http" { $HTTP["host"] =~ ".*" { - # This next redirect doesn't appear to ever execute in -Firefox - # (sometimes, anyway -- caching issue?), but it does seem -to - # reliably in Google's Chromium browser. If I change it -here - # and restart Lighty, Firefox still goes to the URL in -the - # last 'else' below. Or something. + # This next redirect doesn't appear to ever execute in Firefox + # (sometimes, anyway -- caching issue?), but it does seem to + # reliably in Google's Chromium browser. If I change it here + # and restart Lighty, Firefox still goes to the URL in the + # last 'else' below. Or something. Sometimes. server.document-root = "/var/www" url.redirect = (".*" => "https://example.com") @@ -79,8 +86,7 @@ $HTTP["scheme"] == "https" { $HTTP["host"] == "wordpress.example.com" { server.document-root = "/var/www/wordpress" ssl.pemfile = "/etc/lighttpd/ssl/wordpress.pem" - # include -"wpmu-rewrites.conf" + # include "wpmu-rewrites.conf" url.rewrite-if-not-file = ( "^/(.*/)?files/$" => "/index.php", "^/(.*/)?files/(.*)" => "/wp-includes/ms-files.php?file=$2", @@ -93,10 +99,8 @@ $HTTP["scheme"] == "https" { else $HTTP["host"] == "friendica.example.com" { server.document-root = "/var/www/friendica" ssl.pemfile = "/etc/lighttpd/ssl/friendica.pem" - # Got the following 'Drupal Clean URL'after Mike suggested -trying - # something along those lines, from -http://drupal.org/node/1414950 + # Got the following 'Drupal Clean URL'after Mike suggested trying + # something along those lines, from http://drupal.org/node/1414950 url.rewrite-if-not-file = ( "^\/([^\?]*)\?(.*)$" => "/index.php?q=$1&$2", "^\/(.*)$" => "/index.php?q=$1" @@ -124,12 +128,8 @@ include_shell "/usr/share/lighttpd/use-ipv6.pl" dir-listing.encoding = "utf-8" server.dir-listing = "disable" -#compress.cache-dir = -"/var/cache/lighttpd/compress/" -#compress.filetype = ( "application/x-javascript", "text/css", -"text/html", "text/p\ -lain" -) +#compress.cache-dir = "/var/cache/lighttpd/compress/" +#compress.filetype = ( "application/x-javascript", "text/css", "text/html", "text/p\lain" ) include_shell "/usr/share/lighttpd/create-mime.assign.pl" diff --git a/object/Conversation.php b/object/Conversation.php index 94eed94d5..36c06c6d6 100644 --- a/object/Conversation.php +++ b/object/Conversation.php @@ -145,7 +145,6 @@ class Conversation extends BaseObject { $result[] = $item_data; } - //$a->mark_timestamp(); return $result; } diff --git a/object/Item.php b/object/Item.php index ad3da4701..9f01ac59b 100644 --- a/object/Item.php +++ b/object/Item.php @@ -89,14 +89,14 @@ class Item extends BaseObject { $a = $this->get_app(); $item = $this->get_data(); - $edited = false; - if (strcmp($item['created'], $item['edited'])<>0) { - $edited = array( - 'label' => t('This entry was edited'), - 'date' => datetime_convert('UTC', date_default_timezone_get(), $item['edited'], 'r'), - 'relative' => relative_date($item['edited']) - ); - } + $edited = false; + if (strcmp($item['created'], $item['edited'])<>0) { + $edited = array( + 'label' => t('This entry was edited'), + 'date' => datetime_convert('UTC', date_default_timezone_get(), $item['edited'], 'r'), + 'relative' => relative_date($item['edited']) + ); + } $commentww = ''; $sparkle = ''; $buttons = ''; @@ -150,12 +150,21 @@ class Item extends BaseObject { else $profile_link = zrl($profile_link); - // Don't rely on the author-avatar. It is better to use the data from the contact table - $author_contact = get_contact_details_by_url($item['author-link'], $conv->get_profile_owner()); - if ($author_contact["thumb"]) - $profile_avatar = $author_contact["thumb"]; - else - $profile_avatar = $item['author-avatar']; + if (!isset($item['author-thumb']) OR ($item['author-thumb'] == "")) { + $author_contact = get_contact_details_by_url($item['author-link'], $conv->get_profile_owner()); + if ($author_contact["thumb"]) + $item['author-thumb'] = $author_contact["thumb"]; + else + $item['author-thumb'] = $item['author-avatar']; + } + + if (!isset($item['owner-thumb']) OR ($item['owner-thumb'] == "")) { + $owner_contact = get_contact_details_by_url($item['owner-link'], $conv->get_profile_owner()); + if ($owner_contact["thumb"]) + $item['owner-thumb'] = $owner_contact["thumb"]; + else + $item['owner-thumb'] = $item['owner-avatar']; + } $locate = array('location' => $item['location'], 'coord' => $item['coord'], 'html' => ''); call_hooks('render_location',$locate); @@ -364,7 +373,7 @@ class Item extends BaseObject { 'profile_url' => $profile_link, 'item_photo_menu' => item_photo_menu($item), 'name' => $name_e, - 'thumb' => $a->remove_baseurl(proxy_url($profile_avatar, false, PROXY_SIZE_THUMB)), + 'thumb' => $a->remove_baseurl(proxy_url($item['author-thumb'], false, PROXY_SIZE_THUMB)), 'osparkle' => $osparkle, 'sparkle' => $sparkle, 'title' => $title_e, @@ -377,7 +386,7 @@ class Item extends BaseObject { 'indent' => $indent, 'shiny' => $shiny, 'owner_url' => $this->get_owner_url(), - 'owner_photo' => proxy_url($this->get_owner_photo(), false, PROXY_SIZE_THUMB), + 'owner_photo' => $a->remove_baseurl(proxy_url($item['owner-thumb'], false, PROXY_SIZE_THUMB)), 'owner_name' => htmlentities($owner_name_e), 'plink' => get_plink($item), 'edpost' => ((feature_enabled($conv->get_profile_owner(),'edit_posts')) ? $edpost : ''), @@ -430,10 +439,10 @@ class Item extends BaseObject { } } - if ($this->is_toplevel()) { - $result['total_comments_num'] = "$total_children"; - $result['total_comments_text'] = tt('comment', 'comments', $total_children); - } + if ($this->is_toplevel()) { + $result['total_comments_num'] = "$total_children"; + $result['total_comments_text'] = tt('comment', 'comments', $total_children); + } $result['private'] = $item['private']; $result['toplevel'] = ($this->is_toplevel() ? 'toplevel_item' : ''); diff --git a/update.php b/update.php index 1189ac4a9..fa03ddd1a 100644 --- a/update.php +++ b/update.php @@ -1,6 +1,6 @@ + #Apache 2.4 + Require all denied + + + #Apache 2.2 + Deny from all + diff --git a/util/README b/util/README index fad1270d4..836c43fb3 100644 --- a/util/README +++ b/util/README @@ -1,47 +1,47 @@ Utilities -typo.php - is a crude syntax checker to avoid checking in files with simple -typos. It basically just loads each of our project files at once. Run from +typo.php - is a crude syntax checker to avoid checking in files with simple +typos. It basically just loads each of our project files at once. Run from cmdline and see if any parsing errors are reported. Internationalisation -extract.php - extracts translatable strings from our project files. It -currently doesn't pick up strings in other libraries we might be using such as +extract.php - extracts translatable strings from our project files. It +currently doesn't pick up strings in other libraries we might be using such as tinymce and the HTML parsers. -In order for extract to do its job, every use of the t() translation function +In order for extract to do its job, every use of the t() translation function must be preceded by one space. The string also can not contain parentheses. If parens are required in a string which requires translation, please use hex escapes. \x28 = ( \x29 = ) -This only applies to English. Other languages may use parens in strings +This only applies to English. Other languages may use parens in strings because they don't require extraction. - + strings.php - a recent run of the strings program. This provides output that -is suitable for direct inclusion in the program. +is suitable for direct inclusion in the program. -There are also translatable strings in the various files in the view/en -directory. By setting $lang = 'something' in .htconfig.php, the application -will search for view/something/filename prior to the English version in -view/en/filename when loading templates and view files. +There are also translatable strings in the various files in the view/lang/en +directory. By setting $lang = 'something' in .htconfig.php, the application +will search for view/lang/something/filename prior to the English version in +view/lang/en/filename when loading templates and view files. -The translated string table should be placed in view/$lang/strings.php for +The translated string table should be placed in view/lang/$lang/strings.php for automatic inclusion. You are not restricted to using known languages. You may also use this to translate the software into "pirate", "surfer" or merely to replace certain -text which you don't care for. +text which you don't care for. -Note: The view/en directory contains many HTML template files, some of which +Note: The view/lang/en directory contains many HTML template files, some of which only have a few words of English text amongst the HTML. Over time we will move -the translation to the replace_macros() function which calls these files and -then relocate the files to the view directory. The files in the top-level view -directory are template files which do not require translation. +the translation to the replace_macros() function which calls these files and +then relocate the files to the view directory. The files in the top-level view +directory are template files which do not require translation. Placeholders @@ -61,7 +61,7 @@ e.g. Plural -The tt() function supports plural form. Script extract.php write this in +The tt() function supports plural form. Script extract.php write this in strings.php as an array, one string for every plural form language supports: $a->string["%d message sent"] = Array( @@ -82,12 +82,12 @@ Xgettext and .po workflow This script runs xgettext on source tree, extracting strings from t() and tt() functions, and creates a util/messages.po file. - $ cd util; ./run_xgettext.sh + $ cd util; ./run_xgettext.sh -2. copy util/messages.po to view//messages.po - Replace with the language you are working on - e.g. 'es', 'fr', 'de', etc. +2. copy util/messages.po to view/lang//messages.po + Replace with the language you are working on - e.g. 'es', 'fr', 'de', etc. -3. open view//messages.po with a text editor and fill in infos in +3. open view/lang//messages.po with a text editor and fill in infos in "Last-Translator: FULL NAME " "Language-Team: LANGUAGE \n" "Language: \n" @@ -97,30 +97,30 @@ Xgettext and .po workflow "Language-Team: Pirate Friendika \n" "Language: pi\n" ) - + For the line "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" - read GNU gettext manual at + read GNU gettext manual at http://www.gnu.org/software/hello/manual/gettext/Plural-forms.html - + 4. You could then translate the strings in text editor, but I suggest to use one of the many .po editors out there, like QtLinguist - -5. run - $ php util/po2php.php view//messages.po + +5. run + $ php util/po2php.php view/lang//messages.po to create the strings.php file - + When strings are added or modified in source, you could run - $ cd util; ./run_xgettext.sh ../view//messages.po + $ cd util; ./run_xgettext.sh ../view/lang//messages.po to extract strings from source files and join them with the existing .po file: new strings are added, the existing are not overwritten. - + If you already translated Friendica using strings.php, you could import your old translation to messages.po. Run: -$ php util/php2po.php view//strings.php +$ php util/php2po.php view/lang//strings.php + + +You may also use the util/string_translator.php web interface to translate the string file, but it is disabled for website security reasons. The web server will need write permission to your language directories and the "Deny ..." line in util/.htaccess will need to be modified or commented to use the utility. -You may also use the util/string_translator.php web interface to translate the string file, but it is disabled for website security reasons. The web server will need write permission to your language directories and the "Deny ..." line in util/.htaccess will need to be modified or commented to use the utility. - - diff --git a/util/credits.txt b/util/credits.txt index ec040e14a..d3c7c14f1 100644 --- a/util/credits.txt +++ b/util/credits.txt @@ -5,8 +5,11 @@ Adam Jurkiewicz Alex Alexander Kampmann AlfredSK +Aliaksei Sakalou Andi Stadler Andreas H. +Andrej Stieben +André Alves André Lohan Anthronaut Arian - Cazare Muncitori @@ -14,12 +17,16 @@ aweiher axelt balderino Beanow +Beatriz Vital +Ben Roberts +ben-utzer bufalo1973 Calango Jr Carlos Solís Carsten Pfeiffer Cat Gray Chris Case +Christian González Christian M. Grube Christian Vogeley Cohan Robinson @@ -31,6 +38,7 @@ Daniel Dupriest Daria Początek David David Martín Miranda +David Rabel Devlon Duthie Diego Souza Domovoy @@ -53,6 +61,7 @@ foss Francesco Apruzzese Frank Dieckmann Frederico Gonçalves Guimarães +Gerhard Seeber gerhard6380 Gert Cauwenberg greeneyedred @@ -66,6 +75,7 @@ Hubert Kościański Jak Jakob jensp +Jeroen S jeroenpraat Johannes Schwab John Brazil @@ -106,7 +116,9 @@ Nicola Spanti Olaf Conradi Oliver Olivier +Olivier Mehani Olivier Migeot +Paolo Wave Pavel Morozov Perig Gouanvic peturisfeld @@ -121,7 +133,9 @@ rcmaniac rebeka-catalina repat Ricardo Pereira +Roland Haeder Rui Andrada +Sakałoŭ Alaksiej Sam Sandro Santilli Sebastian Egbers @@ -150,10 +164,10 @@ tomamplius tomtom84 Tony Baldwin TORminator +trebor tschlotfeldt Tubuntu -tupambae -tuscanhobbit +Tupambae.org U-SOUND\mike ufic Vasudev Kamath diff --git a/util/make_credits.py b/util/make_credits.py index eacb8707f..9575f10ff 100755 --- a/util/make_credits.py +++ b/util/make_credits.py @@ -23,7 +23,7 @@ import os, glob, subprocess # not work in some cases. dontinclude = ['root', 'friendica', 'bavatar', 'tony baldwin', 'Taek', 'silke m', 'leberwurscht', 'abinoam', 'fabrixxm', 'FULL NAME', 'Hauke Zuehl', - 'Michal Supler', 'michal_s', 'Manuel Pérez'] + 'Michal Supler', 'michal_s', 'Manuel Pérez', 'rabuzarus'] # this script is in the /util sub-directory of the friendica installation @@ -67,7 +67,7 @@ os.chdir(path) # get the translators print('> getting translators') intrans = False -for f in glob.glob(path+'/view/*/messages.po'): +for f in glob.glob(path+'/view/lang/*/messages.po'): i = open(f, 'r') l = i.readlines() i.close() diff --git a/util/messages.po b/util/messages.po index 3e714d524..3eab98882 100644 --- a/util/messages.po +++ b/util/messages.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-18 22:41+0200\n" +"POT-Creation-Date: 2016-11-10 15:43+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,173 +18,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" -#: boot.php:873 -msgid "Delete this item?" -msgstr "" - -#: boot.php:874 mod/content.php:711 mod/photos.php:1616 mod/photos.php:1664 -#: mod/photos.php:1752 object/Item.php:393 object/Item.php:709 -msgid "Comment" -msgstr "" - -#: boot.php:875 include/contact_widgets.php:242 include/ForumManager.php:117 -#: include/items.php:2117 mod/content.php:608 object/Item.php:422 -#: view/theme/vier/theme.php:260 -msgid "show more" -msgstr "" - -#: boot.php:876 -msgid "show fewer" -msgstr "" - -#: boot.php:1386 -#, php-format -msgid "Update %s failed. See error logs." -msgstr "" - -#: boot.php:1498 -msgid "Create a New Account" -msgstr "" - -#: boot.php:1499 include/nav.php:111 mod/register.php:280 -msgid "Register" -msgstr "" - -#: boot.php:1523 include/nav.php:75 -msgid "Logout" -msgstr "" - -#: boot.php:1524 include/nav.php:94 mod/bookmarklet.php:12 -msgid "Login" -msgstr "" - -#: boot.php:1526 -msgid "Nickname or Email address: " -msgstr "" - -#: boot.php:1527 -msgid "Password: " -msgstr "" - -#: boot.php:1528 -msgid "Remember me" -msgstr "" - -#: boot.php:1531 -msgid "Or login using OpenID: " -msgstr "" - -#: boot.php:1537 -msgid "Forgot your password?" -msgstr "" - -#: boot.php:1538 mod/lostpass.php:109 -msgid "Password Reset" -msgstr "" - -#: boot.php:1540 -msgid "Website Terms of Service" -msgstr "" - -#: boot.php:1541 -msgid "terms of service" -msgstr "" - -#: boot.php:1543 -msgid "Website Privacy Policy" -msgstr "" - -#: boot.php:1544 -msgid "privacy policy" -msgstr "" - -#: include/datetime.php:57 include/datetime.php:59 -msgid "Miscellaneous" -msgstr "" - -#: include/datetime.php:178 -msgid "YYYY-MM-DD or MM-DD" -msgstr "" - -#: include/datetime.php:327 -msgid "never" -msgstr "" - -#: include/datetime.php:333 -msgid "less than a second ago" -msgstr "" - -#: include/datetime.php:343 -msgid "year" -msgstr "" - -#: include/datetime.php:343 -msgid "years" -msgstr "" - -#: include/datetime.php:344 mod/events.php:240 -msgid "month" -msgstr "" - -#: include/datetime.php:344 -msgid "months" -msgstr "" - -#: include/datetime.php:345 mod/events.php:241 -msgid "week" -msgstr "" - -#: include/datetime.php:345 -msgid "weeks" -msgstr "" - -#: include/datetime.php:346 mod/events.php:242 -msgid "day" -msgstr "" - -#: include/datetime.php:346 -msgid "days" -msgstr "" - -#: include/datetime.php:347 -msgid "hour" -msgstr "" - -#: include/datetime.php:347 -msgid "hours" -msgstr "" - -#: include/datetime.php:348 -msgid "minute" -msgstr "" - -#: include/datetime.php:348 -msgid "minutes" -msgstr "" - -#: include/datetime.php:349 -msgid "second" -msgstr "" - -#: include/datetime.php:349 -msgid "seconds" -msgstr "" - -#: include/datetime.php:358 -#, php-format -msgid "%1$d %2$s ago" -msgstr "" - -#: include/datetime.php:564 -#, php-format -msgid "%s's birthday" -msgstr "" - -#: include/datetime.php:565 include/dfrn.php:1110 -#, php-format -msgid "Happy Birthday %s" -msgstr "" - #: include/contact_widgets.php:6 msgid "Add New Contact" msgstr "" @@ -197,8 +30,9 @@ msgstr "" msgid "Example: bob@example.com, http://example.com/barbara" msgstr "" -#: include/contact_widgets.php:10 include/identity.php:212 mod/dirfind.php:196 -#: mod/match.php:85 mod/allfriends.php:80 mod/suggest.php:98 +#: include/contact_widgets.php:10 include/identity.php:218 +#: mod/allfriends.php:82 mod/dirfind.php:201 mod/match.php:87 +#: mod/suggest.php:101 msgid "Connect" msgstr "" @@ -217,10 +51,10 @@ msgstr "" msgid "Enter name or interest" msgstr "" -#: include/contact_widgets.php:32 include/conversation.php:924 -#: include/Contact.php:299 mod/dirfind.php:198 mod/match.php:71 -#: mod/allfriends.php:65 mod/contacts.php:600 mod/follow.php:103 -#: mod/suggest.php:82 +#: include/contact_widgets.php:32 include/conversation.php:981 +#: include/Contact.php:347 mod/follow.php:103 mod/allfriends.php:66 +#: mod/contacts.php:602 mod/dirfind.php:204 mod/match.php:72 +#: mod/suggest.php:83 msgid "Connect/Follow" msgstr "" @@ -228,11 +62,11 @@ msgstr "" msgid "Examples: Robert Morgenstein, Fishing" msgstr "" -#: include/contact_widgets.php:34 mod/directory.php:210 mod/contacts.php:791 +#: include/contact_widgets.php:34 mod/contacts.php:798 mod/directory.php:204 msgid "Find" msgstr "" -#: include/contact_widgets.php:35 mod/suggest.php:111 +#: include/contact_widgets.php:35 mod/suggest.php:114 #: view/theme/vier/theme.php:203 view/theme/diabook/theme.php:527 msgid "Friend Suggestions" msgstr "" @@ -259,7 +93,7 @@ msgstr "" msgid "All Networks" msgstr "" -#: include/contact_widgets.php:141 include/features.php:102 +#: include/contact_widgets.php:141 include/features.php:103 msgid "Saved Folders" msgstr "" @@ -278,423 +112,21 @@ msgid_plural "%d contacts in common" msgstr[0] "" msgstr[1] "" -#: include/enotify.php:18 -msgid "Friendica Notification" +#: include/contact_widgets.php:242 include/ForumManager.php:119 +#: include/items.php:2188 mod/content.php:624 object/Item.php:432 +#: view/theme/vier/theme.php:260 boot.php:970 +msgid "show more" msgstr "" -#: include/enotify.php:21 -msgid "Thank You," -msgstr "" - -#: include/enotify.php:24 -#, php-format -msgid "%s Administrator" -msgstr "" - -#: include/enotify.php:26 -#, php-format -msgid "%1$s, %2$s Administrator" -msgstr "" - -#: include/enotify.php:37 include/delivery.php:450 -msgid "noreply" -msgstr "" - -#: include/enotify.php:68 -#, php-format -msgid "%s " -msgstr "" - -#: include/enotify.php:82 -#, php-format -msgid "[Friendica:Notify] New mail received at %s" -msgstr "" - -#: include/enotify.php:84 -#, php-format -msgid "%1$s sent you a new private message at %2$s." -msgstr "" - -#: include/enotify.php:85 -#, php-format -msgid "%1$s sent you %2$s." -msgstr "" - -#: include/enotify.php:85 -msgid "a private message" -msgstr "" - -#: include/enotify.php:86 -#, php-format -msgid "Please visit %s to view and/or reply to your private messages." -msgstr "" - -#: include/enotify.php:138 -#, php-format -msgid "%1$s commented on [url=%2$s]a %3$s[/url]" -msgstr "" - -#: include/enotify.php:145 -#, php-format -msgid "%1$s commented on [url=%2$s]%3$s's %4$s[/url]" -msgstr "" - -#: include/enotify.php:153 -#, php-format -msgid "%1$s commented on [url=%2$s]your %3$s[/url]" -msgstr "" - -#: include/enotify.php:163 -#, php-format -msgid "[Friendica:Notify] Comment to conversation #%1$d by %2$s" -msgstr "" - -#: include/enotify.php:164 -#, php-format -msgid "%s commented on an item/conversation you have been following." -msgstr "" - -#: include/enotify.php:167 include/enotify.php:182 include/enotify.php:195 -#: include/enotify.php:208 include/enotify.php:226 include/enotify.php:239 -#, php-format -msgid "Please visit %s to view and/or reply to the conversation." -msgstr "" - -#: include/enotify.php:174 -#, php-format -msgid "[Friendica:Notify] %s posted to your profile wall" -msgstr "" - -#: include/enotify.php:176 -#, php-format -msgid "%1$s posted to your profile wall at %2$s" -msgstr "" - -#: include/enotify.php:178 -#, php-format -msgid "%1$s posted to [url=%2$s]your wall[/url]" -msgstr "" - -#: include/enotify.php:189 -#, php-format -msgid "[Friendica:Notify] %s tagged you" -msgstr "" - -#: include/enotify.php:190 -#, php-format -msgid "%1$s tagged you at %2$s" -msgstr "" - -#: include/enotify.php:191 -#, php-format -msgid "%1$s [url=%2$s]tagged you[/url]." -msgstr "" - -#: include/enotify.php:202 -#, php-format -msgid "[Friendica:Notify] %s shared a new post" -msgstr "" - -#: include/enotify.php:203 -#, php-format -msgid "%1$s shared a new post at %2$s" -msgstr "" - -#: include/enotify.php:204 -#, php-format -msgid "%1$s [url=%2$s]shared a post[/url]." -msgstr "" - -#: include/enotify.php:216 -#, php-format -msgid "[Friendica:Notify] %1$s poked you" -msgstr "" - -#: include/enotify.php:217 -#, php-format -msgid "%1$s poked you at %2$s" -msgstr "" - -#: include/enotify.php:218 -#, php-format -msgid "%1$s [url=%2$s]poked you[/url]." -msgstr "" - -#: include/enotify.php:233 -#, php-format -msgid "[Friendica:Notify] %s tagged your post" -msgstr "" - -#: include/enotify.php:234 -#, php-format -msgid "%1$s tagged your post at %2$s" -msgstr "" - -#: include/enotify.php:235 -#, php-format -msgid "%1$s tagged [url=%2$s]your post[/url]" -msgstr "" - -#: include/enotify.php:246 -msgid "[Friendica:Notify] Introduction received" -msgstr "" - -#: include/enotify.php:247 -#, php-format -msgid "You've received an introduction from '%1$s' at %2$s" -msgstr "" - -#: include/enotify.php:248 -#, php-format -msgid "You've received [url=%1$s]an introduction[/url] from %2$s." -msgstr "" - -#: include/enotify.php:251 include/enotify.php:293 -#, php-format -msgid "You may visit their profile at %s" -msgstr "" - -#: include/enotify.php:253 -#, php-format -msgid "Please visit %s to approve or reject the introduction." -msgstr "" - -#: include/enotify.php:261 -msgid "[Friendica:Notify] A new person is sharing with you" -msgstr "" - -#: include/enotify.php:262 include/enotify.php:263 -#, php-format -msgid "%1$s is sharing with you at %2$s" -msgstr "" - -#: include/enotify.php:269 -msgid "[Friendica:Notify] You have a new follower" -msgstr "" - -#: include/enotify.php:270 include/enotify.php:271 -#, php-format -msgid "You have a new follower at %2$s : %1$s" -msgstr "" - -#: include/enotify.php:284 -msgid "[Friendica:Notify] Friend suggestion received" -msgstr "" - -#: include/enotify.php:285 -#, php-format -msgid "You've received a friend suggestion from '%1$s' at %2$s" -msgstr "" - -#: include/enotify.php:286 -#, php-format -msgid "You've received [url=%1$s]a friend suggestion[/url] for %2$s from %3$s." -msgstr "" - -#: include/enotify.php:291 -msgid "Name:" -msgstr "" - -#: include/enotify.php:292 -msgid "Photo:" -msgstr "" - -#: include/enotify.php:295 -#, php-format -msgid "Please visit %s to approve or reject the suggestion." -msgstr "" - -#: include/enotify.php:303 include/enotify.php:316 -msgid "[Friendica:Notify] Connection accepted" -msgstr "" - -#: include/enotify.php:304 include/enotify.php:317 -#, php-format -msgid "'%1$s' has accepted your connection request at %2$s" -msgstr "" - -#: include/enotify.php:305 include/enotify.php:318 -#, php-format -msgid "%2$s has accepted your [url=%1$s]connection request[/url]." -msgstr "" - -#: include/enotify.php:308 -msgid "" -"You are now mutual friends and may exchange status updates, photos, and " -"email\n" -"\twithout restriction." -msgstr "" - -#: include/enotify.php:311 include/enotify.php:325 -#, php-format -msgid "Please visit %s if you wish to make any changes to this relationship." -msgstr "" - -#: include/enotify.php:321 -#, php-format -msgid "" -"'%1$s' has chosen to accept you a \"fan\", which restricts some forms of " -"communication - such as private messaging and some profile interactions. If " -"this is a celebrity or community page, these settings were applied " -"automatically." -msgstr "" - -#: include/enotify.php:323 -#, php-format -msgid "" -"'%1$s' may choose to extend this into a two-way or more permissive " -"relationship in the future. " -msgstr "" - -#: include/enotify.php:336 -msgid "[Friendica System:Notify] registration request" -msgstr "" - -#: include/enotify.php:337 -#, php-format -msgid "You've received a registration request from '%1$s' at %2$s" -msgstr "" - -#: include/enotify.php:338 -#, php-format -msgid "You've received a [url=%1$s]registration request[/url] from %2$s." -msgstr "" - -#: include/enotify.php:341 -#, php-format -msgid "Full Name:\t%1$s\\nSite Location:\t%2$s\\nLogin Name:\t%3$s (%4$s)" -msgstr "" - -#: include/enotify.php:344 -#, php-format -msgid "Please visit %s to approve or reject the request." -msgstr "" - -#: include/plugin.php:522 include/plugin.php:524 -msgid "Click here to upgrade." -msgstr "" - -#: include/plugin.php:530 -msgid "This action exceeds the limits set by your subscription plan." -msgstr "" - -#: include/plugin.php:535 -msgid "This action is not available under your subscription plan." -msgstr "" - -#: include/ForumManager.php:112 include/text.php:987 include/nav.php:130 +#: include/ForumManager.php:114 include/nav.php:131 include/text.php:1025 #: view/theme/vier/theme.php:255 msgid "Forums" msgstr "" -#: include/ForumManager.php:114 view/theme/vier/theme.php:257 +#: include/ForumManager.php:116 view/theme/vier/theme.php:257 msgid "External link to forum" msgstr "" -#: include/diaspora.php:1277 include/conversation.php:141 include/like.php:182 -#: view/theme/diabook/theme.php:480 -#, php-format -msgid "%1$s likes %2$s's %3$s" -msgstr "" - -#: include/diaspora.php:1281 include/conversation.php:125 -#: include/conversation.php:134 include/conversation.php:261 -#: include/conversation.php:270 include/like.php:163 mod/tagger.php:62 -#: mod/subthread.php:87 view/theme/diabook/theme.php:466 -#: view/theme/diabook/theme.php:475 -msgid "status" -msgstr "" - -#: include/diaspora.php:1805 -msgid "Sharing notification from Diaspora network" -msgstr "" - -#: include/diaspora.php:2663 -msgid "Attachments:" -msgstr "" - -#: include/dfrn.php:1109 -#, php-format -msgid "%s\\'s birthday" -msgstr "" - -#: include/uimport.php:94 -msgid "Error decoding account file" -msgstr "" - -#: include/uimport.php:100 -msgid "Error! No version data in file! This is not a Friendica account file?" -msgstr "" - -#: include/uimport.php:116 include/uimport.php:127 -msgid "Error! Cannot check nickname" -msgstr "" - -#: include/uimport.php:120 include/uimport.php:131 -#, php-format -msgid "User '%s' already exists on this server!" -msgstr "" - -#: include/uimport.php:153 -msgid "User creation error" -msgstr "" - -#: include/uimport.php:173 -msgid "User profile creation error" -msgstr "" - -#: include/uimport.php:222 -#, php-format -msgid "%d contact not imported" -msgid_plural "%d contacts not imported" -msgstr[0] "" -msgstr[1] "" - -#: include/uimport.php:292 -msgid "Done. You can now login with your username and password" -msgstr "" - -#: include/dba.php:55 include/dba_pdo.php:72 -#, php-format -msgid "Cannot locate DNS info for database server '%s'" -msgstr "" - -#: include/event.php:13 include/bb2diaspora.php:148 mod/localtime.php:12 -msgid "l F d, Y \\@ g:i A" -msgstr "" - -#: include/event.php:30 include/event.php:48 include/bb2diaspora.php:154 -msgid "Starts:" -msgstr "" - -#: include/event.php:33 include/event.php:54 include/bb2diaspora.php:162 -msgid "Finishes:" -msgstr "" - -#: include/event.php:36 include/event.php:60 include/identity.php:309 -#: include/bb2diaspora.php:170 mod/notifications.php:244 mod/events.php:566 -#: mod/directory.php:145 mod/contacts.php:624 -msgid "Location:" -msgstr "" - -#: include/security.php:22 -msgid "Welcome " -msgstr "" - -#: include/security.php:23 -msgid "Please upload a profile photo." -msgstr "" - -#: include/security.php:26 -msgid "Welcome back " -msgstr "" - -#: include/security.php:375 -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/profile_selectors.php:6 msgid "Male" msgstr "" @@ -747,7 +179,7 @@ msgstr "" msgid "Other" msgstr "" -#: include/profile_selectors.php:6 include/conversation.php:1419 +#: include/profile_selectors.php:6 include/conversation.php:1483 msgid "Undecided" msgid_plural "Undecided" msgstr[0] "" @@ -929,1298 +361,36 @@ msgstr "" msgid "Ask me" msgstr "" -#: include/items.php:1442 mod/dfrn_confirm.php:725 mod/dfrn_request.php:737 -msgid "[Name Withheld]" +#: include/bb2diaspora.php:148 include/event.php:16 mod/localtime.php:12 +msgid "l F d, Y \\@ g:i A" msgstr "" -#: include/items.php:1800 mod/viewsrc.php:15 mod/admin.php:234 -#: mod/admin.php:1435 mod/admin.php:1669 mod/display.php:104 -#: mod/display.php:329 mod/display.php:544 mod/notice.php:15 -msgid "Item not found." +#: include/bb2diaspora.php:154 include/event.php:33 include/event.php:51 +#: include/event.php:487 +msgid "Starts:" msgstr "" -#: include/items.php:1839 -msgid "Do you really want to delete this item?" +#: include/bb2diaspora.php:162 include/event.php:36 include/event.php:57 +#: include/event.php:488 +msgid "Finishes:" msgstr "" -#: include/items.php:1841 mod/profiles.php:641 mod/profiles.php:644 -#: mod/profiles.php:670 mod/contacts.php:441 mod/follow.php:110 -#: mod/suggest.php:29 mod/dfrn_request.php:853 mod/register.php:238 -#: mod/settings.php:1110 mod/settings.php:1116 mod/settings.php:1124 -#: mod/settings.php:1128 mod/settings.php:1133 mod/settings.php:1139 -#: mod/settings.php:1145 mod/settings.php:1151 mod/settings.php:1177 -#: mod/settings.php:1178 mod/settings.php:1179 mod/settings.php:1180 -#: mod/settings.php:1181 mod/api.php:105 mod/message.php:217 -msgid "Yes" +#: include/bb2diaspora.php:170 include/event.php:39 include/event.php:63 +#: include/event.php:489 include/identity.php:328 mod/notifications.php:232 +#: mod/contacts.php:628 mod/directory.php:137 mod/events.php:494 +msgid "Location:" msgstr "" -#: include/items.php:1844 include/conversation.php:1220 mod/fbrowser.php:101 -#: mod/fbrowser.php:136 mod/tagrm.php:11 mod/tagrm.php:94 mod/videos.php:131 -#: mod/photos.php:247 mod/photos.php:336 mod/contacts.php:444 -#: mod/follow.php:121 mod/suggest.php:32 mod/editpost.php:148 -#: mod/dfrn_request.php:867 mod/settings.php:664 mod/settings.php:690 -#: mod/message.php:220 -msgid "Cancel" -msgstr "" - -#: include/items.php:2006 index.php:396 mod/regmod.php:110 mod/dirfind.php:11 -#: mod/notifications.php:69 mod/dfrn_confirm.php:56 mod/wall_upload.php:77 -#: mod/wall_upload.php:80 mod/fsuggest.php:78 mod/notes.php:22 -#: mod/events.php:165 mod/uimport.php:23 mod/nogroup.php:25 mod/invite.php:15 -#: mod/invite.php:101 mod/viewcontacts.php:40 mod/crepair.php:100 -#: mod/wall_attach.php:67 mod/wall_attach.php:70 mod/allfriends.php:12 -#: mod/repair_ostatus.php:9 mod/delegate.php:12 mod/profiles.php:165 -#: mod/profiles.php:598 mod/poke.php:150 mod/photos.php:171 -#: mod/photos.php:1092 mod/attach.php:33 mod/contacts.php:350 -#: mod/follow.php:11 mod/follow.php:73 mod/follow.php:155 mod/suggest.php:58 -#: mod/display.php:540 mod/common.php:18 mod/mood.php:114 mod/editpost.php:10 -#: mod/network.php:4 mod/group.php:19 mod/profile_photo.php:19 -#: mod/profile_photo.php:175 mod/profile_photo.php:186 -#: mod/profile_photo.php:199 mod/register.php:42 mod/settings.php:22 -#: mod/settings.php:128 mod/settings.php:650 mod/wallmessage.php:9 -#: mod/wallmessage.php:33 mod/wallmessage.php:79 mod/wallmessage.php:103 -#: mod/api.php:26 mod/api.php:31 mod/item.php:184 mod/item.php:196 -#: mod/ostatus_subscribe.php:9 mod/message.php:46 mod/message.php:182 -#: mod/manage.php:96 -msgid "Permission denied." -msgstr "" - -#: include/items.php:2111 -msgid "Archives" -msgstr "" - -#: include/text.php:304 -msgid "newer" -msgstr "" - -#: include/text.php:306 -msgid "older" -msgstr "" - -#: include/text.php:311 -msgid "prev" -msgstr "" - -#: include/text.php:313 -msgid "first" -msgstr "" - -#: include/text.php:345 -msgid "last" -msgstr "" - -#: include/text.php:348 -msgid "next" -msgstr "" - -#: include/text.php:403 -msgid "Loading more entries..." -msgstr "" - -#: include/text.php:404 -msgid "The end" -msgstr "" - -#: include/text.php:866 -msgid "No contacts" -msgstr "" - -#: include/text.php:881 +#: include/dba_pdo.php:72 include/dba.php:56 #, php-format -msgid "%d Contact" -msgid_plural "%d Contacts" -msgstr[0] "" -msgstr[1] "" - -#: include/text.php:893 -msgid "View Contacts" -msgstr "" - -#: include/text.php:975 include/nav.php:122 mod/search.php:136 -msgid "Search" -msgstr "" - -#: include/text.php:976 mod/notes.php:61 mod/filer.php:31 mod/editpost.php:109 -msgid "Save" -msgstr "" - -#: include/text.php:982 include/nav.php:125 -msgid "Full Text" -msgstr "" - -#: include/text.php:983 include/nav.php:126 -msgid "Tags" -msgstr "" - -#: include/text.php:984 include/identity.php:742 include/identity.php:745 -#: include/nav.php:127 include/nav.php:193 mod/viewcontacts.php:116 -#: mod/contacts.php:785 mod/contacts.php:845 view/theme/diabook/theme.php:125 -msgid "Contacts" -msgstr "" - -#: include/text.php:1038 -msgid "poke" -msgstr "" - -#: include/text.php:1038 -msgid "poked" -msgstr "" - -#: include/text.php:1039 -msgid "ping" -msgstr "" - -#: include/text.php:1039 -msgid "pinged" -msgstr "" - -#: include/text.php:1040 -msgid "prod" -msgstr "" - -#: include/text.php:1040 -msgid "prodded" -msgstr "" - -#: include/text.php:1041 -msgid "slap" -msgstr "" - -#: include/text.php:1041 -msgid "slapped" -msgstr "" - -#: include/text.php:1042 -msgid "finger" -msgstr "" - -#: include/text.php:1042 -msgid "fingered" -msgstr "" - -#: include/text.php:1043 -msgid "rebuff" -msgstr "" - -#: include/text.php:1043 -msgid "rebuffed" -msgstr "" - -#: include/text.php:1057 -msgid "happy" -msgstr "" - -#: include/text.php:1058 -msgid "sad" -msgstr "" - -#: include/text.php:1059 -msgid "mellow" -msgstr "" - -#: include/text.php:1060 -msgid "tired" -msgstr "" - -#: include/text.php:1061 -msgid "perky" -msgstr "" - -#: include/text.php:1062 -msgid "angry" -msgstr "" - -#: include/text.php:1063 -msgid "stupified" -msgstr "" - -#: include/text.php:1064 -msgid "puzzled" -msgstr "" - -#: include/text.php:1065 -msgid "interested" -msgstr "" - -#: include/text.php:1066 -msgid "bitter" -msgstr "" - -#: include/text.php:1067 -msgid "cheerful" -msgstr "" - -#: include/text.php:1068 -msgid "alive" -msgstr "" - -#: include/text.php:1069 -msgid "annoyed" -msgstr "" - -#: include/text.php:1070 -msgid "anxious" -msgstr "" - -#: include/text.php:1071 -msgid "cranky" -msgstr "" - -#: include/text.php:1072 -msgid "disturbed" -msgstr "" - -#: include/text.php:1073 -msgid "frustrated" -msgstr "" - -#: include/text.php:1074 -msgid "motivated" -msgstr "" - -#: include/text.php:1075 -msgid "relaxed" -msgstr "" - -#: include/text.php:1076 -msgid "surprised" -msgstr "" - -#: include/text.php:1092 mod/events.php:209 mod/settings.php:955 -msgid "Monday" -msgstr "" - -#: include/text.php:1092 mod/events.php:210 -msgid "Tuesday" -msgstr "" - -#: include/text.php:1092 mod/events.php:211 -msgid "Wednesday" -msgstr "" - -#: include/text.php:1092 mod/events.php:212 -msgid "Thursday" -msgstr "" - -#: include/text.php:1092 mod/events.php:213 -msgid "Friday" -msgstr "" - -#: include/text.php:1092 mod/events.php:214 -msgid "Saturday" -msgstr "" - -#: include/text.php:1092 mod/events.php:208 mod/settings.php:955 -msgid "Sunday" -msgstr "" - -#: include/text.php:1096 mod/events.php:227 -msgid "January" -msgstr "" - -#: include/text.php:1096 mod/events.php:228 -msgid "February" -msgstr "" - -#: include/text.php:1096 mod/events.php:229 -msgid "March" -msgstr "" - -#: include/text.php:1096 mod/events.php:230 -msgid "April" -msgstr "" - -#: include/text.php:1096 mod/events.php:219 mod/events.php:231 -msgid "May" -msgstr "" - -#: include/text.php:1096 mod/events.php:232 -msgid "June" -msgstr "" - -#: include/text.php:1096 mod/events.php:233 -msgid "July" -msgstr "" - -#: include/text.php:1096 mod/events.php:234 -msgid "August" -msgstr "" - -#: include/text.php:1096 mod/events.php:235 -msgid "September" -msgstr "" - -#: include/text.php:1096 mod/events.php:236 -msgid "October" -msgstr "" - -#: include/text.php:1096 mod/events.php:237 -msgid "November" -msgstr "" - -#: include/text.php:1096 mod/events.php:238 -msgid "December" -msgstr "" - -#: include/text.php:1290 mod/videos.php:383 -msgid "View Video" -msgstr "" - -#: include/text.php:1322 -msgid "bytes" -msgstr "" - -#: include/text.php:1354 include/text.php:1366 -msgid "Click to open/close" -msgstr "" - -#: include/text.php:1492 -msgid "View on separate page" -msgstr "" - -#: include/text.php:1493 -msgid "view on separate page" -msgstr "" - -#: include/text.php:1498 include/text.php:1505 mod/events.php:421 -msgid "link to source" -msgstr "" - -#: include/text.php:1768 include/conversation.php:122 -#: include/conversation.php:258 include/like.php:165 -#: view/theme/diabook/theme.php:463 -msgid "event" -msgstr "" - -#: include/text.php:1770 include/conversation.php:130 -#: include/conversation.php:266 include/like.php:163 mod/tagger.php:62 -#: mod/subthread.php:87 view/theme/diabook/theme.php:471 -msgid "photo" -msgstr "" - -#: include/text.php:1772 -msgid "activity" -msgstr "" - -#: include/text.php:1774 mod/content.php:607 object/Item.php:421 -#: object/Item.php:434 -msgid "comment" -msgid_plural "comments" -msgstr[0] "" -msgstr[1] "" - -#: include/text.php:1775 -msgid "post" -msgstr "" - -#: include/text.php:1943 -msgid "Item filed" -msgstr "" - -#: include/conversation.php:144 include/like.php:184 -#, php-format -msgid "%1$s doesn't like %2$s's %3$s" -msgstr "" - -#: include/conversation.php:147 -#, php-format -msgid "%1$s attends %2$s's %3$s" -msgstr "" - -#: include/conversation.php:150 -#, php-format -msgid "%1$s doesn't attend %2$s's %3$s" -msgstr "" - -#: include/conversation.php:153 -#, php-format -msgid "%1$s attends maybe %2$s's %3$s" -msgstr "" - -#: include/conversation.php:185 mod/dfrn_confirm.php:472 -#, php-format -msgid "%1$s is now friends with %2$s" -msgstr "" - -#: include/conversation.php:219 -#, php-format -msgid "%1$s poked %2$s" -msgstr "" - -#: include/conversation.php:239 mod/mood.php:62 -#, php-format -msgid "%1$s is currently %2$s" -msgstr "" - -#: include/conversation.php:278 mod/tagger.php:95 -#, php-format -msgid "%1$s tagged %2$s's %3$s with %4$s" -msgstr "" - -#: include/conversation.php:303 -msgid "post/item" -msgstr "" - -#: include/conversation.php:304 -#, php-format -msgid "%1$s marked %2$s's %3$s as favorite" -msgstr "" - -#: include/conversation.php:508 mod/profiles.php:344 mod/photos.php:1634 -msgid "Likes" -msgstr "" - -#: include/conversation.php:508 mod/profiles.php:348 mod/photos.php:1634 -msgid "Dislikes" -msgstr "" - -#: include/conversation.php:509 include/conversation.php:1413 -#: mod/photos.php:1635 -msgid "Attending" -msgid_plural "Attending" -msgstr[0] "" -msgstr[1] "" - -#: include/conversation.php:509 mod/photos.php:1635 -msgid "Not attending" -msgstr "" - -#: include/conversation.php:509 mod/photos.php:1635 -msgid "Might attend" -msgstr "" - -#: include/conversation.php:634 mod/content.php:439 mod/content.php:742 -#: mod/photos.php:1709 object/Item.php:133 -msgid "Select" -msgstr "" - -#: include/conversation.php:635 mod/admin.php:1378 mod/content.php:440 -#: mod/content.php:743 mod/photos.php:1710 mod/contacts.php:801 -#: mod/contacts.php:1015 mod/group.php:171 mod/settings.php:726 -#: object/Item.php:134 -msgid "Delete" -msgstr "" - -#: include/conversation.php:675 mod/content.php:473 mod/content.php:854 -#: mod/content.php:855 object/Item.php:357 object/Item.php:358 -#, php-format -msgid "View %s's profile @ %s" -msgstr "" - -#: include/conversation.php:687 object/Item.php:345 -msgid "Categories:" -msgstr "" - -#: include/conversation.php:688 object/Item.php:346 -msgid "Filed under:" -msgstr "" - -#: include/conversation.php:695 mod/content.php:483 mod/content.php:866 -#: object/Item.php:371 -#, php-format -msgid "%s from %s" -msgstr "" - -#: include/conversation.php:711 mod/content.php:499 -msgid "View in context" -msgstr "" - -#: include/conversation.php:713 include/conversation.php:1201 -#: mod/content.php:501 mod/content.php:885 mod/photos.php:1597 -#: mod/editpost.php:124 mod/wallmessage.php:156 mod/message.php:342 -#: mod/message.php:526 object/Item.php:396 -msgid "Please wait" -msgstr "" - -#: include/conversation.php:792 -msgid "remove" -msgstr "" - -#: include/conversation.php:796 -msgid "Delete Selected Items" -msgstr "" - -#: include/conversation.php:910 -msgid "Follow Thread" -msgstr "" - -#: include/conversation.php:911 include/Contact.php:339 -msgid "View Status" -msgstr "" - -#: include/conversation.php:912 include/conversation.php:926 -#: include/Contact.php:285 include/Contact.php:298 include/Contact.php:340 -#: mod/dirfind.php:197 mod/directory.php:162 mod/match.php:70 -#: mod/allfriends.php:64 mod/suggest.php:81 -msgid "View Profile" -msgstr "" - -#: include/conversation.php:913 include/Contact.php:341 -msgid "View Photos" -msgstr "" - -#: include/conversation.php:914 include/Contact.php:342 -msgid "Network Posts" -msgstr "" - -#: include/conversation.php:915 include/Contact.php:343 -msgid "Edit Contact" -msgstr "" - -#: include/conversation.php:916 include/Contact.php:345 -msgid "Send PM" -msgstr "" - -#: include/conversation.php:920 include/Contact.php:346 -msgid "Poke" -msgstr "" - -#: include/conversation.php:1034 -#, php-format -msgid "%s likes this." -msgstr "" - -#: include/conversation.php:1037 -#, php-format -msgid "%s doesn't like this." -msgstr "" - -#: include/conversation.php:1040 -#, php-format -msgid "%s attends." -msgstr "" - -#: include/conversation.php:1043 -#, php-format -msgid "%s doesn't attend." -msgstr "" - -#: include/conversation.php:1046 -#, php-format -msgid "%s attends maybe." -msgstr "" - -#: include/conversation.php:1056 -msgid "and" -msgstr "" - -#: include/conversation.php:1062 -#, php-format -msgid ", and %d other people" -msgstr "" - -#: include/conversation.php:1071 -#, php-format -msgid "%2$d people like this" -msgstr "" - -#: include/conversation.php:1072 -#, php-format -msgid "%s like this." -msgstr "" - -#: include/conversation.php:1075 -#, php-format -msgid "%2$d people don't like this" -msgstr "" - -#: include/conversation.php:1076 -#, php-format -msgid "%s don't like this." -msgstr "" - -#: include/conversation.php:1079 -#, php-format -msgid "%2$d people attend" -msgstr "" - -#: include/conversation.php:1080 -#, php-format -msgid "%s attend." -msgstr "" - -#: include/conversation.php:1083 -#, php-format -msgid "%2$d people don't attend" -msgstr "" - -#: include/conversation.php:1084 -#, php-format -msgid "%s don't attend." -msgstr "" - -#: include/conversation.php:1087 -#, php-format -msgid "%2$d people anttend maybe" -msgstr "" - -#: include/conversation.php:1088 -#, php-format -msgid "%s anttend maybe." -msgstr "" - -#: include/conversation.php:1127 include/conversation.php:1145 -msgid "Visible to everybody" -msgstr "" - -#: include/conversation.php:1128 include/conversation.php:1146 -#: mod/wallmessage.php:127 mod/wallmessage.php:135 mod/message.php:291 -#: mod/message.php:299 mod/message.php:427 mod/message.php:435 -msgid "Please enter a link URL:" -msgstr "" - -#: include/conversation.php:1129 include/conversation.php:1147 -msgid "Please enter a video link/URL:" -msgstr "" - -#: include/conversation.php:1130 include/conversation.php:1148 -msgid "Please enter an audio link/URL:" -msgstr "" - -#: include/conversation.php:1131 include/conversation.php:1149 -msgid "Tag term:" -msgstr "" - -#: include/conversation.php:1132 include/conversation.php:1150 -#: mod/filer.php:30 -msgid "Save to Folder:" -msgstr "" - -#: include/conversation.php:1133 include/conversation.php:1151 -msgid "Where are you right now?" -msgstr "" - -#: include/conversation.php:1134 -msgid "Delete item(s)?" -msgstr "" - -#: include/conversation.php:1182 mod/photos.php:1596 -msgid "Share" -msgstr "" - -#: include/conversation.php:1183 mod/editpost.php:110 mod/wallmessage.php:154 -#: mod/message.php:340 mod/message.php:523 -msgid "Upload photo" -msgstr "" - -#: include/conversation.php:1184 mod/editpost.php:111 -msgid "upload photo" -msgstr "" - -#: include/conversation.php:1185 mod/editpost.php:112 -msgid "Attach file" -msgstr "" - -#: include/conversation.php:1186 mod/editpost.php:113 -msgid "attach file" -msgstr "" - -#: include/conversation.php:1187 mod/editpost.php:114 mod/wallmessage.php:155 -#: mod/message.php:341 mod/message.php:524 -msgid "Insert web link" -msgstr "" - -#: include/conversation.php:1188 mod/editpost.php:115 -msgid "web link" -msgstr "" - -#: include/conversation.php:1189 mod/editpost.php:116 -msgid "Insert video link" -msgstr "" - -#: include/conversation.php:1190 mod/editpost.php:117 -msgid "video link" -msgstr "" - -#: include/conversation.php:1191 mod/editpost.php:118 -msgid "Insert audio link" -msgstr "" - -#: include/conversation.php:1192 mod/editpost.php:119 -msgid "audio link" -msgstr "" - -#: include/conversation.php:1193 mod/editpost.php:120 -msgid "Set your location" -msgstr "" - -#: include/conversation.php:1194 mod/editpost.php:121 -msgid "set location" -msgstr "" - -#: include/conversation.php:1195 mod/editpost.php:122 -msgid "Clear browser location" -msgstr "" - -#: include/conversation.php:1196 mod/editpost.php:123 -msgid "clear location" -msgstr "" - -#: include/conversation.php:1198 mod/editpost.php:137 -msgid "Set title" -msgstr "" - -#: include/conversation.php:1200 mod/editpost.php:139 -msgid "Categories (comma-separated list)" -msgstr "" - -#: include/conversation.php:1202 mod/editpost.php:125 -msgid "Permission settings" -msgstr "" - -#: include/conversation.php:1203 -msgid "permissions" -msgstr "" - -#: include/conversation.php:1211 mod/editpost.php:134 -msgid "Public post" -msgstr "" - -#: include/conversation.php:1216 mod/events.php:572 mod/content.php:721 -#: mod/photos.php:1618 mod/photos.php:1666 mod/photos.php:1754 -#: mod/editpost.php:145 object/Item.php:719 -msgid "Preview" -msgstr "" - -#: include/conversation.php:1226 -msgid "Post to Groups" -msgstr "" - -#: include/conversation.php:1227 -msgid "Post to Contacts" -msgstr "" - -#: include/conversation.php:1228 -msgid "Private post" -msgstr "" - -#: include/conversation.php:1385 -msgid "View all" -msgstr "" - -#: include/conversation.php:1407 -msgid "Like" -msgid_plural "Likes" -msgstr[0] "" -msgstr[1] "" - -#: include/conversation.php:1410 -msgid "Dislike" -msgid_plural "Dislikes" -msgstr[0] "" -msgstr[1] "" - -#: include/conversation.php:1416 -msgid "Not Attending" -msgid_plural "Not Attending" -msgstr[0] "" -msgstr[1] "" - -#: include/identity.php:42 -msgid "Requested account is not available." -msgstr "" - -#: include/identity.php:51 mod/profile.php:21 -msgid "Requested profile is not available." -msgstr "" - -#: include/identity.php:95 include/identity.php:285 include/identity.php:663 -msgid "Edit profile" -msgstr "" - -#: include/identity.php:245 -msgid "Atom feed" -msgstr "" - -#: include/identity.php:250 -msgid "Message" -msgstr "" - -#: include/identity.php:256 include/nav.php:191 -msgid "Profiles" -msgstr "" - -#: include/identity.php:256 -msgid "Manage/edit profiles" -msgstr "" - -#: include/identity.php:261 include/identity.php:287 mod/profiles.php:797 -msgid "Change profile photo" -msgstr "" - -#: include/identity.php:262 mod/profiles.php:798 -msgid "Create New Profile" -msgstr "" - -#: include/identity.php:272 mod/profiles.php:809 -msgid "Profile Image" -msgstr "" - -#: include/identity.php:275 mod/profiles.php:811 -msgid "visible to everybody" -msgstr "" - -#: include/identity.php:276 mod/profiles.php:812 -msgid "Edit visibility" -msgstr "" - -#: include/identity.php:299 mod/dirfind.php:216 mod/directory.php:172 -#: mod/match.php:82 mod/viewcontacts.php:105 mod/allfriends.php:77 -#: mod/videos.php:37 mod/photos.php:41 mod/contacts.php:51 -#: mod/contacts.php:947 mod/suggest.php:95 mod/common.php:123 -#: mod/network.php:598 -msgid "Forum" -msgstr "" - -#: include/identity.php:311 include/identity.php:591 mod/notifications.php:250 -#: mod/directory.php:147 -msgid "Gender:" -msgstr "" - -#: include/identity.php:314 include/identity.php:611 mod/directory.php:149 -msgid "Status:" -msgstr "" - -#: include/identity.php:316 include/identity.php:622 mod/directory.php:151 -msgid "Homepage:" -msgstr "" - -#: include/identity.php:318 include/identity.php:632 mod/notifications.php:246 -#: mod/directory.php:153 mod/contacts.php:626 -msgid "About:" -msgstr "" - -#: include/identity.php:396 mod/contacts.php:50 -msgid "Network:" -msgstr "" - -#: include/identity.php:426 include/identity.php:510 -msgid "g A l F d" -msgstr "" - -#: include/identity.php:427 include/identity.php:511 -msgid "F d" -msgstr "" - -#: include/identity.php:472 include/identity.php:557 -msgid "[today]" -msgstr "" - -#: include/identity.php:484 -msgid "Birthday Reminders" -msgstr "" - -#: include/identity.php:485 -msgid "Birthdays this week:" -msgstr "" - -#: include/identity.php:544 -msgid "[No description]" -msgstr "" - -#: include/identity.php:568 -msgid "Event Reminders" -msgstr "" - -#: include/identity.php:569 -msgid "Events this week:" -msgstr "" - -#: include/identity.php:580 include/identity.php:666 include/identity.php:695 -#: include/nav.php:79 mod/profperm.php:104 mod/contacts.php:833 -#: mod/newmember.php:32 view/theme/diabook/theme.php:124 -msgid "Profile" -msgstr "" - -#: include/identity.php:589 mod/settings.php:1226 -msgid "Full Name:" -msgstr "" - -#: include/identity.php:596 -msgid "j F, Y" -msgstr "" - -#: include/identity.php:597 -msgid "j F" -msgstr "" - -#: include/identity.php:604 -msgid "Birthday:" -msgstr "" - -#: include/identity.php:608 -msgid "Age:" -msgstr "" - -#: include/identity.php:617 -#, php-format -msgid "for %1$d %2$s" -msgstr "" - -#: include/identity.php:620 mod/profiles.php:707 -msgid "Sexual Preference:" -msgstr "" - -#: include/identity.php:624 mod/profiles.php:709 -msgid "Hometown:" -msgstr "" - -#: include/identity.php:626 mod/notifications.php:248 mod/contacts.php:628 -#: mod/follow.php:134 -msgid "Tags:" -msgstr "" - -#: include/identity.php:628 mod/profiles.php:710 -msgid "Political Views:" -msgstr "" - -#: include/identity.php:630 -msgid "Religion:" -msgstr "" - -#: include/identity.php:634 -msgid "Hobbies/Interests:" -msgstr "" - -#: include/identity.php:636 mod/profiles.php:714 -msgid "Likes:" -msgstr "" - -#: include/identity.php:638 mod/profiles.php:715 -msgid "Dislikes:" -msgstr "" - -#: include/identity.php:641 -msgid "Contact information and Social Networks:" -msgstr "" - -#: include/identity.php:643 -msgid "Musical interests:" -msgstr "" - -#: include/identity.php:645 -msgid "Books, literature:" -msgstr "" - -#: include/identity.php:647 -msgid "Television:" -msgstr "" - -#: include/identity.php:649 -msgid "Film/dance/culture/entertainment:" -msgstr "" - -#: include/identity.php:651 -msgid "Love/Romance:" -msgstr "" - -#: include/identity.php:653 -msgid "Work/employment:" -msgstr "" - -#: include/identity.php:655 -msgid "School/education:" -msgstr "" - -#: include/identity.php:659 -msgid "Forums:" -msgstr "" - -#: include/identity.php:687 include/nav.php:78 mod/contacts.php:631 -#: mod/contacts.php:825 -msgid "Status" -msgstr "" - -#: include/identity.php:690 mod/contacts.php:828 mod/follow.php:143 -msgid "Status Messages and Posts" -msgstr "" - -#: include/identity.php:698 mod/contacts.php:836 -msgid "Profile Details" -msgstr "" - -#: include/identity.php:703 include/nav.php:80 mod/fbrowser.php:32 -#: view/theme/diabook/theme.php:126 -msgid "Photos" -msgstr "" - -#: include/identity.php:706 mod/photos.php:99 -msgid "Photo Albums" -msgstr "" - -#: include/identity.php:711 include/identity.php:714 include/nav.php:81 -msgid "Videos" -msgstr "" - -#: include/identity.php:723 include/nav.php:82 include/nav.php:146 -#: mod/events.php:456 view/theme/diabook/theme.php:127 -msgid "Events" -msgstr "" - -#: include/identity.php:726 include/nav.php:146 -msgid "Events and Calendar" -msgstr "" - -#: include/identity.php:731 mod/notes.php:46 -msgid "Personal Notes" -msgstr "" - -#: include/identity.php:734 -msgid "Only You Can See This" -msgstr "" - -#: include/Scrape.php:643 -msgid " on Last.fm" -msgstr "" - -#: include/follow.php:77 mod/dfrn_request.php:501 -msgid "Disallowed profile URL." -msgstr "" - -#: include/follow.php:82 -msgid "Connect URL missing." -msgstr "" - -#: include/follow.php:109 -msgid "" -"This site is not configured to allow communications with other networks." -msgstr "" - -#: include/follow.php:110 include/follow.php:130 -msgid "No compatible communication protocols or feeds were discovered." -msgstr "" - -#: include/follow.php:128 -msgid "The profile address specified does not provide adequate information." -msgstr "" - -#: include/follow.php:132 -msgid "An author or name was not found." -msgstr "" - -#: include/follow.php:134 -msgid "No browser URL could be matched to this address." -msgstr "" - -#: include/follow.php:136 -msgid "" -"Unable to match @-style Identity Address with a known protocol or email " -"contact." -msgstr "" - -#: include/follow.php:137 -msgid "Use mailto: in front of address to force email check." -msgstr "" - -#: include/follow.php:143 -msgid "" -"The profile address specified belongs to a network which has been disabled " -"on this site." -msgstr "" - -#: include/follow.php:153 -msgid "" -"Limited profile. This person will be unable to receive direct/personal " -"notifications from you." -msgstr "" - -#: include/follow.php:254 -msgid "Unable to retrieve contact information." -msgstr "" - -#: include/follow.php:287 -msgid "following" -msgstr "" - -#: include/Contact.php:119 -msgid "stopped following" -msgstr "" - -#: include/Contact.php:344 -msgid "Drop Contact" -msgstr "" - -#: include/oembed.php:229 -msgid "Embedded content" -msgstr "" - -#: include/oembed.php:238 -msgid "Embedding disabled" -msgstr "" - -#: include/bbcode.php:349 include/bbcode.php:1023 include/bbcode.php:1024 -msgid "Image/photo" -msgstr "" - -#: include/bbcode.php:462 -#, php-format -msgid "%2$s %3$s" -msgstr "" - -#: include/bbcode.php:496 -#, php-format -msgid "" -"%s wrote the following post" -msgstr "" - -#: include/bbcode.php:983 include/bbcode.php:1003 -msgid "$1 wrote:" -msgstr "" - -#: include/bbcode.php:1032 include/bbcode.php:1033 -msgid "Encrypted content" -msgstr "" - -#: include/contact_selectors.php:32 -msgid "Unknown | Not categorised" -msgstr "" - -#: include/contact_selectors.php:33 -msgid "Block immediately" -msgstr "" - -#: include/contact_selectors.php:34 -msgid "Shady, spammer, self-marketer" -msgstr "" - -#: include/contact_selectors.php:35 -msgid "Known to me, but no opinion" -msgstr "" - -#: include/contact_selectors.php:36 -msgid "OK, probably harmless" -msgstr "" - -#: include/contact_selectors.php:37 -msgid "Reputable, has my trust" -msgstr "" - -#: include/contact_selectors.php:56 mod/admin.php:849 -msgid "Frequently" -msgstr "" - -#: include/contact_selectors.php:57 mod/admin.php:850 -msgid "Hourly" -msgstr "" - -#: include/contact_selectors.php:58 mod/admin.php:851 -msgid "Twice daily" -msgstr "" - -#: include/contact_selectors.php:59 mod/admin.php:852 -msgid "Daily" -msgstr "" - -#: include/contact_selectors.php:60 -msgid "Weekly" -msgstr "" - -#: include/contact_selectors.php:61 -msgid "Monthly" -msgstr "" - -#: include/contact_selectors.php:76 mod/dfrn_request.php:859 -msgid "Friendica" -msgstr "" - -#: include/contact_selectors.php:77 -msgid "OStatus" -msgstr "" - -#: include/contact_selectors.php:78 -msgid "RSS/Atom" -msgstr "" - -#: include/contact_selectors.php:79 include/contact_selectors.php:86 -#: mod/admin.php:1361 mod/admin.php:1374 mod/admin.php:1386 mod/admin.php:1404 -msgid "Email" -msgstr "" - -#: include/contact_selectors.php:80 mod/dfrn_request.php:861 -#: mod/settings.php:827 -msgid "Diaspora" -msgstr "" - -#: include/contact_selectors.php:81 -msgid "Facebook" -msgstr "" - -#: include/contact_selectors.php:82 -msgid "Zot!" -msgstr "" - -#: include/contact_selectors.php:83 -msgid "LinkedIn" -msgstr "" - -#: include/contact_selectors.php:84 -msgid "XMPP/IM" -msgstr "" - -#: include/contact_selectors.php:85 -msgid "MySpace" -msgstr "" - -#: include/contact_selectors.php:87 -msgid "Google+" -msgstr "" - -#: include/contact_selectors.php:88 -msgid "pump.io" -msgstr "" - -#: include/contact_selectors.php:89 -msgid "Twitter" -msgstr "" - -#: include/contact_selectors.php:90 -msgid "Diaspora Connector" -msgstr "" - -#: include/contact_selectors.php:91 -msgid "GNU Social" -msgstr "" - -#: include/contact_selectors.php:92 -msgid "App.net" -msgstr "" - -#: include/contact_selectors.php:103 -msgid "Hubzilla/Redmatrix" -msgstr "" - -#: include/dbstructure.php:26 -#, php-format -msgid "" -"\n" -"\t\t\tThe friendica developers released update %s recently,\n" -"\t\t\tbut when I tried to install it, something went terribly wrong.\n" -"\t\t\tThis needs to be fixed soon and I can't do it alone. Please contact a\n" -"\t\t\tfriendica developer if you can not help me on your own. My database " -"might be invalid." -msgstr "" - -#: include/dbstructure.php:31 -#, php-format -msgid "" -"The error message is\n" -"[pre]%s[/pre]" -msgstr "" - -#: include/dbstructure.php:153 -msgid "Errors encountered creating database tables." -msgstr "" - -#: include/dbstructure.php:230 -msgid "Errors encountered performing database changes." +msgid "Cannot locate DNS info for database server '%s'" msgstr "" #: include/auth.php:45 msgid "Logged out." msgstr "" -#: include/auth.php:116 include/auth.php:178 mod/openid.php:93 +#: include/auth.php:116 include/auth.php:178 mod/openid.php:100 msgid "Login failed." msgstr "" @@ -2234,10 +404,6 @@ msgstr "" msgid "The error message was:" msgstr "" -#: include/network.php:913 -msgid "view full size" -msgstr "" - #: include/group.php:25 msgid "" "A deleted group with this name was revived. Existing item permissions " @@ -2285,17 +451,7 @@ msgstr "" msgid "add" msgstr "" -#: include/Photo.php:994 include/Photo.php:1009 include/Photo.php:1016 -#: include/Photo.php:1038 include/message.php:145 mod/wall_upload.php:218 -#: mod/wall_upload.php:232 mod/wall_upload.php:239 mod/item.php:471 -msgid "Wall Photos" -msgstr "" - -#: include/delivery.php:439 -msgid "(no subject)" -msgstr "" - -#: include/user.php:39 mod/settings.php:370 +#: include/user.php:39 mod/settings.php:371 msgid "Passwords do not match. Password unchanged." msgstr "" @@ -2370,11 +526,11 @@ msgid "An error occurred creating your default profile. Please try again." msgstr "" #: include/user.php:345 include/user.php:352 include/user.php:359 -#: mod/photos.php:78 mod/photos.php:192 mod/photos.php:769 mod/photos.php:1232 -#: mod/photos.php:1255 mod/photos.php:1849 mod/profile_photo.php:74 -#: mod/profile_photo.php:81 mod/profile_photo.php:88 mod/profile_photo.php:210 -#: mod/profile_photo.php:302 mod/profile_photo.php:311 -#: view/theme/diabook/theme.php:500 +#: mod/profile_photo.php:74 mod/profile_photo.php:81 mod/profile_photo.php:88 +#: mod/profile_photo.php:210 mod/profile_photo.php:302 +#: mod/profile_photo.php:311 mod/photos.php:66 mod/photos.php:180 +#: mod/photos.php:751 mod/photos.php:1211 mod/photos.php:1232 +#: mod/photos.php:1819 view/theme/diabook/theme.php:500 msgid "Profile Photos" msgstr "" @@ -2422,450 +578,131 @@ msgid "" "\t\tThank you and welcome to %2$s." msgstr "" -#: include/user.php:423 mod/admin.php:1168 +#: include/user.php:423 mod/admin.php:1184 #, php-format msgid "Registration details for %s" msgstr "" -#: include/api.php:907 -#, php-format -msgid "Daily posting limit of %d posts reached. The post was rejected." +#: include/contact_selectors.php:32 +msgid "Unknown | Not categorised" msgstr "" -#: include/api.php:927 -#, php-format -msgid "Weekly posting limit of %d posts reached. The post was rejected." +#: include/contact_selectors.php:33 +msgid "Block immediately" msgstr "" -#: include/api.php:948 -#, php-format -msgid "Monthly posting limit of %d posts reached. The post was rejected." +#: include/contact_selectors.php:34 +msgid "Shady, spammer, self-marketer" msgstr "" -#: include/features.php:63 -msgid "General Features" +#: include/contact_selectors.php:35 +msgid "Known to me, but no opinion" msgstr "" -#: include/features.php:65 -msgid "Multiple Profiles" +#: include/contact_selectors.php:36 +msgid "OK, probably harmless" msgstr "" -#: include/features.php:65 -msgid "Ability to create multiple profiles" +#: include/contact_selectors.php:37 +msgid "Reputable, has my trust" msgstr "" -#: include/features.php:66 -msgid "Photo Location" +#: include/contact_selectors.php:56 mod/admin.php:862 +msgid "Frequently" msgstr "" -#: include/features.php:66 -msgid "" -"Photo metadata is normally stripped. This extracts the location (if present) " -"prior to stripping metadata and links it to a map." +#: include/contact_selectors.php:57 mod/admin.php:863 +msgid "Hourly" msgstr "" -#: include/features.php:71 -msgid "Post Composition Features" +#: include/contact_selectors.php:58 mod/admin.php:864 +msgid "Twice daily" msgstr "" -#: include/features.php:72 -msgid "Richtext Editor" +#: include/contact_selectors.php:59 mod/admin.php:865 +msgid "Daily" msgstr "" -#: include/features.php:72 -msgid "Enable richtext editor" +#: include/contact_selectors.php:60 +msgid "Weekly" msgstr "" -#: include/features.php:73 -msgid "Post Preview" +#: include/contact_selectors.php:61 +msgid "Monthly" msgstr "" -#: include/features.php:73 -msgid "Allow previewing posts and comments before publishing them" +#: include/contact_selectors.php:76 mod/dfrn_request.php:867 +msgid "Friendica" msgstr "" -#: include/features.php:74 -msgid "Auto-mention Forums" +#: include/contact_selectors.php:77 +msgid "OStatus" msgstr "" -#: include/features.php:74 -msgid "" -"Add/remove mention when a fourm page is selected/deselected in ACL window." +#: include/contact_selectors.php:78 +msgid "RSS/Atom" msgstr "" -#: include/features.php:79 -msgid "Network Sidebar Widgets" +#: include/contact_selectors.php:79 include/contact_selectors.php:86 +#: mod/admin.php:1367 mod/admin.php:1380 mod/admin.php:1392 mod/admin.php:1410 +msgid "Email" msgstr "" -#: include/features.php:80 -msgid "Search by Date" +#: include/contact_selectors.php:80 mod/dfrn_request.php:869 +#: mod/settings.php:840 +msgid "Diaspora" msgstr "" -#: include/features.php:80 -msgid "Ability to select posts by date ranges" +#: include/contact_selectors.php:81 +msgid "Facebook" msgstr "" -#: include/features.php:81 include/features.php:111 -msgid "List Forums" +#: include/contact_selectors.php:82 +msgid "Zot!" msgstr "" -#: include/features.php:81 -msgid "Enable widget to display the forums your are connected with" +#: include/contact_selectors.php:83 +msgid "LinkedIn" msgstr "" -#: include/features.php:82 -msgid "Group Filter" +#: include/contact_selectors.php:84 +msgid "XMPP/IM" msgstr "" -#: include/features.php:82 -msgid "Enable widget to display Network posts only from selected group" +#: include/contact_selectors.php:85 +msgid "MySpace" msgstr "" -#: include/features.php:83 -msgid "Network Filter" +#: include/contact_selectors.php:87 +msgid "Google+" msgstr "" -#: include/features.php:83 -msgid "Enable widget to display Network posts only from selected network" +#: include/contact_selectors.php:88 +msgid "pump.io" msgstr "" -#: include/features.php:84 mod/search.php:34 mod/network.php:200 -msgid "Saved Searches" +#: include/contact_selectors.php:89 +msgid "Twitter" msgstr "" -#: include/features.php:84 -msgid "Save search terms for re-use" +#: include/contact_selectors.php:90 +msgid "Diaspora Connector" msgstr "" -#: include/features.php:89 -msgid "Network Tabs" +#: include/contact_selectors.php:91 +msgid "GNU Social" msgstr "" -#: include/features.php:90 -msgid "Network Personal Tab" +#: include/contact_selectors.php:92 +msgid "App.net" msgstr "" -#: include/features.php:90 -msgid "Enable tab to display only Network posts that you've interacted on" +#: include/contact_selectors.php:103 +msgid "Hubzilla/Redmatrix" msgstr "" -#: include/features.php:91 -msgid "Network New Tab" -msgstr "" - -#: include/features.php:91 -msgid "Enable tab to display only new Network posts (from the last 12 hours)" -msgstr "" - -#: include/features.php:92 -msgid "Network Shared Links Tab" -msgstr "" - -#: include/features.php:92 -msgid "Enable tab to display only Network posts with links in them" -msgstr "" - -#: include/features.php:97 -msgid "Post/Comment Tools" -msgstr "" - -#: include/features.php:98 -msgid "Multiple Deletion" -msgstr "" - -#: include/features.php:98 -msgid "Select and delete multiple posts/comments at once" -msgstr "" - -#: include/features.php:99 -msgid "Edit Sent Posts" -msgstr "" - -#: include/features.php:99 -msgid "Edit and correct posts and comments after sending" -msgstr "" - -#: include/features.php:100 -msgid "Tagging" -msgstr "" - -#: include/features.php:100 -msgid "Ability to tag existing posts" -msgstr "" - -#: include/features.php:101 -msgid "Post Categories" -msgstr "" - -#: include/features.php:101 -msgid "Add categories to your posts" -msgstr "" - -#: include/features.php:102 -msgid "Ability to file posts under folders" -msgstr "" - -#: include/features.php:103 -msgid "Dislike Posts" -msgstr "" - -#: include/features.php:103 -msgid "Ability to dislike posts/comments" -msgstr "" - -#: include/features.php:104 -msgid "Star Posts" -msgstr "" - -#: include/features.php:104 -msgid "Ability to mark special posts with a star indicator" -msgstr "" - -#: include/features.php:105 -msgid "Mute Post Notifications" -msgstr "" - -#: include/features.php:105 -msgid "Ability to mute notifications for a thread" -msgstr "" - -#: include/features.php:110 -msgid "Advanced Profile Settings" -msgstr "" - -#: include/features.php:111 -msgid "Show visitors public community forums at the Advanced Profile Page" -msgstr "" - -#: include/nav.php:35 mod/navigation.php:19 -msgid "Nothing new here" -msgstr "" - -#: include/nav.php:39 mod/navigation.php:23 -msgid "Clear notifications" -msgstr "" - -#: include/nav.php:40 -msgid "@name, !forum, #tags, content" -msgstr "" - -#: include/nav.php:75 -msgid "End this session" -msgstr "" - -#: include/nav.php:78 include/nav.php:163 view/theme/diabook/theme.php:123 -msgid "Your posts and conversations" -msgstr "" - -#: include/nav.php:79 view/theme/diabook/theme.php:124 -msgid "Your profile page" -msgstr "" - -#: include/nav.php:80 view/theme/diabook/theme.php:126 -msgid "Your photos" -msgstr "" - -#: include/nav.php:81 -msgid "Your videos" -msgstr "" - -#: include/nav.php:82 view/theme/diabook/theme.php:127 -msgid "Your events" -msgstr "" - -#: include/nav.php:83 view/theme/diabook/theme.php:128 -msgid "Personal notes" -msgstr "" - -#: include/nav.php:83 -msgid "Your personal notes" -msgstr "" - -#: include/nav.php:94 -msgid "Sign in" -msgstr "" - -#: include/nav.php:107 include/nav.php:163 mod/notifications.php:99 -#: view/theme/diabook/theme.php:123 -msgid "Home" -msgstr "" - -#: include/nav.php:107 -msgid "Home Page" -msgstr "" - -#: include/nav.php:111 -msgid "Create an account" -msgstr "" - -#: include/nav.php:116 mod/help.php:47 view/theme/vier/theme.php:298 -msgid "Help" -msgstr "" - -#: include/nav.php:116 -msgid "Help and documentation" -msgstr "" - -#: include/nav.php:119 -msgid "Apps" -msgstr "" - -#: include/nav.php:119 -msgid "Addon applications, utilities, games" -msgstr "" - -#: include/nav.php:122 -msgid "Search site content" -msgstr "" - -#: include/nav.php:141 include/nav.php:143 mod/community.php:36 -#: view/theme/diabook/theme.php:129 -msgid "Community" -msgstr "" - -#: include/nav.php:141 -msgid "Conversations on this site" -msgstr "" - -#: include/nav.php:143 -msgid "Conversations on the network" -msgstr "" - -#: include/nav.php:148 -msgid "Directory" -msgstr "" - -#: include/nav.php:148 -msgid "People directory" -msgstr "" - -#: include/nav.php:150 -msgid "Information" -msgstr "" - -#: include/nav.php:150 -msgid "Information about this friendica instance" -msgstr "" - -#: include/nav.php:160 mod/notifications.php:87 mod/admin.php:399 -msgid "Network" -msgstr "" - -#: include/nav.php:160 -msgid "Conversations from your friends" -msgstr "" - -#: include/nav.php:161 -msgid "Network Reset" -msgstr "" - -#: include/nav.php:161 -msgid "Load Network page with no filters" -msgstr "" - -#: include/nav.php:168 mod/notifications.php:105 -msgid "Introductions" -msgstr "" - -#: include/nav.php:168 -msgid "Friend Requests" -msgstr "" - -#: include/nav.php:171 mod/notifications.php:269 -msgid "Notifications" -msgstr "" - -#: include/nav.php:172 -msgid "See all notifications" -msgstr "" - -#: include/nav.php:173 -msgid "Mark all system notifications seen" -msgstr "" - -#: include/nav.php:177 mod/message.php:190 -msgid "Messages" -msgstr "" - -#: include/nav.php:177 -msgid "Private mail" -msgstr "" - -#: include/nav.php:178 -msgid "Inbox" -msgstr "" - -#: include/nav.php:179 -msgid "Outbox" -msgstr "" - -#: include/nav.php:180 mod/message.php:16 -msgid "New Message" -msgstr "" - -#: include/nav.php:183 -msgid "Manage" -msgstr "" - -#: include/nav.php:183 -msgid "Manage other pages" -msgstr "" - -#: include/nav.php:186 mod/settings.php:81 -msgid "Delegations" -msgstr "" - -#: include/nav.php:186 mod/delegate.php:130 -msgid "Delegate Page Management" -msgstr "" - -#: include/nav.php:188 mod/admin.php:1488 mod/admin.php:1746 -#: mod/newmember.php:22 mod/settings.php:111 view/theme/diabook/theme.php:544 -#: view/theme/diabook/theme.php:648 -msgid "Settings" -msgstr "" - -#: include/nav.php:188 -msgid "Account settings" -msgstr "" - -#: include/nav.php:191 -msgid "Manage/Edit Profiles" -msgstr "" - -#: include/nav.php:193 -msgid "Manage/edit friends and contacts" -msgstr "" - -#: include/nav.php:200 mod/admin.php:186 -msgid "Admin" -msgstr "" - -#: include/nav.php:200 -msgid "Site setup and configuration" -msgstr "" - -#: include/nav.php:204 -msgid "Navigation" -msgstr "" - -#: include/nav.php:204 -msgid "Site map" -msgstr "" - -#: include/like.php:186 -#, php-format -msgid "%1$s is attending %2$s's %3$s" -msgstr "" - -#: include/like.php:188 -#, php-format -msgid "%1$s is not attending %2$s's %3$s" -msgstr "" - -#: include/like.php:190 -#, php-format -msgid "%1$s may attend %2$s's %3$s" +#: include/network.php:595 +msgid "view full size" msgstr "" #: include/acl_selectors.php:327 @@ -2877,7 +714,7 @@ msgstr "" msgid "Connectors disabled, since \"%s\" is enabled." msgstr "" -#: include/acl_selectors.php:333 mod/settings.php:1128 +#: include/acl_selectors.php:333 mod/settings.php:1176 msgid "Hide your profile details from unknown viewers?" msgstr "" @@ -2903,7 +740,8 @@ msgstr "" msgid "Example: bob@example.com, mary@example.com" msgstr "" -#: include/acl_selectors.php:349 mod/photos.php:1177 mod/photos.php:1562 +#: include/acl_selectors.php:349 mod/events.php:509 mod/photos.php:1156 +#: mod/photos.php:1535 msgid "Permissions" msgstr "" @@ -2911,62 +749,2336 @@ msgstr "" msgid "Close" msgstr "" +#: include/like.php:163 include/conversation.php:130 +#: include/conversation.php:266 include/text.php:1808 mod/subthread.php:87 +#: mod/tagger.php:62 view/theme/diabook/theme.php:471 +msgid "photo" +msgstr "" + +#: include/like.php:163 include/diaspora.php:1402 include/conversation.php:125 +#: include/conversation.php:134 include/conversation.php:261 +#: include/conversation.php:270 mod/subthread.php:87 mod/tagger.php:62 +#: view/theme/diabook/theme.php:466 view/theme/diabook/theme.php:475 +msgid "status" +msgstr "" + +#: include/like.php:165 include/conversation.php:122 +#: include/conversation.php:258 include/text.php:1806 +#: view/theme/diabook/theme.php:463 +msgid "event" +msgstr "" + +#: include/like.php:182 include/diaspora.php:1398 include/conversation.php:141 +#: view/theme/diabook/theme.php:480 +#, php-format +msgid "%1$s likes %2$s's %3$s" +msgstr "" + +#: include/like.php:184 include/conversation.php:144 +#, php-format +msgid "%1$s doesn't like %2$s's %3$s" +msgstr "" + +#: include/like.php:186 +#, php-format +msgid "%1$s is attending %2$s's %3$s" +msgstr "" + +#: include/like.php:188 +#, php-format +msgid "%1$s is not attending %2$s's %3$s" +msgstr "" + +#: include/like.php:190 +#, php-format +msgid "%1$s may attend %2$s's %3$s" +msgstr "" + #: include/message.php:15 include/message.php:173 msgid "[no subject]" msgstr "" -#: index.php:239 mod/apps.php:7 -msgid "You must be logged in to use addons. " +#: include/message.php:145 include/Photo.php:1045 include/Photo.php:1061 +#: include/Photo.php:1069 include/Photo.php:1094 mod/wall_upload.php:218 +#: mod/wall_upload.php:232 mod/wall_upload.php:239 mod/item.php:477 +msgid "Wall Photos" msgstr "" -#: index.php:283 mod/help.php:53 mod/p.php:16 mod/p.php:25 -msgid "Not Found" +#: include/plugin.php:526 include/plugin.php:528 +msgid "Click here to upgrade." msgstr "" -#: index.php:286 mod/help.php:56 -msgid "Page not found." +#: include/plugin.php:534 +msgid "This action exceeds the limits set by your subscription plan." msgstr "" -#: index.php:395 mod/profperm.php:19 mod/group.php:72 -msgid "Permission denied" +#: include/plugin.php:539 +msgid "This action is not available under your subscription plan." msgstr "" -#: index.php:446 -msgid "toggle mobile" +#: include/uimport.php:94 +msgid "Error decoding account file" msgstr "" -#: mod/regmod.php:55 -msgid "Account approved." +#: include/uimport.php:100 +msgid "Error! No version data in file! This is not a Friendica account file?" msgstr "" -#: mod/regmod.php:92 +#: include/uimport.php:116 include/uimport.php:127 +msgid "Error! Cannot check nickname" +msgstr "" + +#: include/uimport.php:120 include/uimport.php:131 #, php-format -msgid "Registration revoked for %s" +msgid "User '%s' already exists on this server!" msgstr "" -#: mod/regmod.php:104 -msgid "Please login." +#: include/uimport.php:153 +msgid "User creation error" +msgstr "" + +#: include/uimport.php:173 +msgid "User profile creation error" +msgstr "" + +#: include/uimport.php:222 +#, php-format +msgid "%d contact not imported" +msgid_plural "%d contacts not imported" +msgstr[0] "" +msgstr[1] "" + +#: include/uimport.php:292 +msgid "Done. You can now login with your username and password" +msgstr "" + +#: include/NotificationsManager.php:153 +msgid "System" +msgstr "" + +#: include/NotificationsManager.php:160 include/nav.php:158 mod/admin.php:402 +#: view/theme/frio/theme.php:253 +msgid "Network" +msgstr "" + +#: include/NotificationsManager.php:167 mod/profiles.php:703 +#: mod/network.php:845 +msgid "Personal" +msgstr "" + +#: include/NotificationsManager.php:174 include/nav.php:105 +#: include/nav.php:161 view/theme/diabook/theme.php:123 +msgid "Home" +msgstr "" + +#: include/NotificationsManager.php:181 include/nav.php:166 +msgid "Introductions" +msgstr "" + +#: include/NotificationsManager.php:234 include/NotificationsManager.php:245 +#, php-format +msgid "%s commented on %s's post" +msgstr "" + +#: include/NotificationsManager.php:244 +#, php-format +msgid "%s created a new post" +msgstr "" + +#: include/NotificationsManager.php:258 +#, php-format +msgid "%s liked %s's post" +msgstr "" + +#: include/NotificationsManager.php:269 +#, php-format +msgid "%s disliked %s's post" +msgstr "" + +#: include/NotificationsManager.php:280 +#, php-format +msgid "%s is attending %s's event" +msgstr "" + +#: include/NotificationsManager.php:291 +#, php-format +msgid "%s is not attending %s's event" +msgstr "" + +#: include/NotificationsManager.php:302 +#, php-format +msgid "%s may attend %s's event" +msgstr "" + +#: include/NotificationsManager.php:317 +#, php-format +msgid "%s is now friends with %s" +msgstr "" + +#: include/NotificationsManager.php:750 +msgid "Friend Suggestion" +msgstr "" + +#: include/NotificationsManager.php:783 +msgid "Friend/Connect Request" +msgstr "" + +#: include/NotificationsManager.php:783 +msgid "New Follower" +msgstr "" + +#: include/diaspora.php:1954 +msgid "Sharing notification from Diaspora network" +msgstr "" + +#: include/diaspora.php:2854 +msgid "Attachments:" +msgstr "" + +#: include/features.php:63 +msgid "General Features" +msgstr "" + +#: include/features.php:65 +msgid "Multiple Profiles" +msgstr "" + +#: include/features.php:65 +msgid "Ability to create multiple profiles" +msgstr "" + +#: include/features.php:66 +msgid "Photo Location" +msgstr "" + +#: include/features.php:66 +msgid "" +"Photo metadata is normally stripped. This extracts the location (if present) " +"prior to stripping metadata and links it to a map." +msgstr "" + +#: include/features.php:67 +msgid "Export Public Calendar" +msgstr "" + +#: include/features.php:67 +msgid "Ability for visitors to download the public calendar" +msgstr "" + +#: include/features.php:72 +msgid "Post Composition Features" +msgstr "" + +#: include/features.php:73 +msgid "Richtext Editor" +msgstr "" + +#: include/features.php:73 +msgid "Enable richtext editor" +msgstr "" + +#: include/features.php:74 +msgid "Post Preview" +msgstr "" + +#: include/features.php:74 +msgid "Allow previewing posts and comments before publishing them" +msgstr "" + +#: include/features.php:75 +msgid "Auto-mention Forums" +msgstr "" + +#: include/features.php:75 +msgid "" +"Add/remove mention when a forum page is selected/deselected in ACL window." +msgstr "" + +#: include/features.php:80 +msgid "Network Sidebar Widgets" +msgstr "" + +#: include/features.php:81 +msgid "Search by Date" +msgstr "" + +#: include/features.php:81 +msgid "Ability to select posts by date ranges" +msgstr "" + +#: include/features.php:82 include/features.php:112 +msgid "List Forums" +msgstr "" + +#: include/features.php:82 +msgid "Enable widget to display the forums your are connected with" +msgstr "" + +#: include/features.php:83 +msgid "Group Filter" +msgstr "" + +#: include/features.php:83 +msgid "Enable widget to display Network posts only from selected group" +msgstr "" + +#: include/features.php:84 +msgid "Network Filter" +msgstr "" + +#: include/features.php:84 +msgid "Enable widget to display Network posts only from selected network" +msgstr "" + +#: include/features.php:85 mod/search.php:34 mod/network.php:200 +msgid "Saved Searches" +msgstr "" + +#: include/features.php:85 +msgid "Save search terms for re-use" +msgstr "" + +#: include/features.php:90 +msgid "Network Tabs" +msgstr "" + +#: include/features.php:91 +msgid "Network Personal Tab" +msgstr "" + +#: include/features.php:91 +msgid "Enable tab to display only Network posts that you've interacted on" +msgstr "" + +#: include/features.php:92 +msgid "Network New Tab" +msgstr "" + +#: include/features.php:92 +msgid "Enable tab to display only new Network posts (from the last 12 hours)" +msgstr "" + +#: include/features.php:93 +msgid "Network Shared Links Tab" +msgstr "" + +#: include/features.php:93 +msgid "Enable tab to display only Network posts with links in them" +msgstr "" + +#: include/features.php:98 +msgid "Post/Comment Tools" +msgstr "" + +#: include/features.php:99 +msgid "Multiple Deletion" +msgstr "" + +#: include/features.php:99 +msgid "Select and delete multiple posts/comments at once" +msgstr "" + +#: include/features.php:100 +msgid "Edit Sent Posts" +msgstr "" + +#: include/features.php:100 +msgid "Edit and correct posts and comments after sending" +msgstr "" + +#: include/features.php:101 +msgid "Tagging" +msgstr "" + +#: include/features.php:101 +msgid "Ability to tag existing posts" +msgstr "" + +#: include/features.php:102 +msgid "Post Categories" +msgstr "" + +#: include/features.php:102 +msgid "Add categories to your posts" +msgstr "" + +#: include/features.php:103 +msgid "Ability to file posts under folders" +msgstr "" + +#: include/features.php:104 +msgid "Dislike Posts" +msgstr "" + +#: include/features.php:104 +msgid "Ability to dislike posts/comments" +msgstr "" + +#: include/features.php:105 +msgid "Star Posts" +msgstr "" + +#: include/features.php:105 +msgid "Ability to mark special posts with a star indicator" +msgstr "" + +#: include/features.php:106 +msgid "Mute Post Notifications" +msgstr "" + +#: include/features.php:106 +msgid "Ability to mute notifications for a thread" +msgstr "" + +#: include/features.php:111 +msgid "Advanced Profile Settings" +msgstr "" + +#: include/features.php:112 +msgid "Show visitors public community forums at the Advanced Profile Page" +msgstr "" + +#: include/delivery.php:439 +msgid "(no subject)" +msgstr "" + +#: include/delivery.php:450 include/enotify.php:43 +msgid "noreply" +msgstr "" + +#: include/api.php:1019 +#, php-format +msgid "Daily posting limit of %d posts reached. The post was rejected." +msgstr "" + +#: include/api.php:1039 +#, php-format +msgid "Weekly posting limit of %d posts reached. The post was rejected." +msgstr "" + +#: include/api.php:1060 +#, php-format +msgid "Monthly posting limit of %d posts reached. The post was rejected." +msgstr "" + +#: include/bbcode.php:348 include/bbcode.php:1055 include/bbcode.php:1056 +msgid "Image/photo" +msgstr "" + +#: include/bbcode.php:465 +#, php-format +msgid "%2$s %3$s" +msgstr "" + +#: include/bbcode.php:1015 include/bbcode.php:1035 +msgid "$1 wrote:" +msgstr "" + +#: include/bbcode.php:1064 include/bbcode.php:1065 +msgid "Encrypted content" +msgstr "" + +#: include/conversation.php:147 +#, php-format +msgid "%1$s attends %2$s's %3$s" +msgstr "" + +#: include/conversation.php:150 +#, php-format +msgid "%1$s doesn't attend %2$s's %3$s" +msgstr "" + +#: include/conversation.php:153 +#, php-format +msgid "%1$s attends maybe %2$s's %3$s" +msgstr "" + +#: include/conversation.php:185 mod/dfrn_confirm.php:473 +#, php-format +msgid "%1$s is now friends with %2$s" +msgstr "" + +#: include/conversation.php:219 +#, php-format +msgid "%1$s poked %2$s" +msgstr "" + +#: include/conversation.php:239 mod/mood.php:62 +#, php-format +msgid "%1$s is currently %2$s" +msgstr "" + +#: include/conversation.php:278 mod/tagger.php:95 +#, php-format +msgid "%1$s tagged %2$s's %3$s with %4$s" +msgstr "" + +#: include/conversation.php:303 +msgid "post/item" +msgstr "" + +#: include/conversation.php:304 +#, php-format +msgid "%1$s marked %2$s's %3$s as favorite" +msgstr "" + +#: include/conversation.php:585 mod/content.php:372 mod/profiles.php:346 +#: mod/photos.php:1607 +msgid "Likes" +msgstr "" + +#: include/conversation.php:585 mod/content.php:372 mod/profiles.php:350 +#: mod/photos.php:1607 +msgid "Dislikes" +msgstr "" + +#: include/conversation.php:586 include/conversation.php:1477 +#: mod/content.php:373 mod/photos.php:1608 +msgid "Attending" +msgid_plural "Attending" +msgstr[0] "" +msgstr[1] "" + +#: include/conversation.php:586 mod/content.php:373 mod/photos.php:1608 +msgid "Not attending" +msgstr "" + +#: include/conversation.php:586 mod/content.php:373 mod/photos.php:1608 +msgid "Might attend" +msgstr "" + +#: include/conversation.php:708 mod/content.php:453 mod/content.php:758 +#: mod/photos.php:1681 object/Item.php:133 +msgid "Select" +msgstr "" + +#: include/conversation.php:709 mod/group.php:171 mod/content.php:454 +#: mod/content.php:759 mod/admin.php:1384 mod/contacts.php:808 +#: mod/contacts.php:1016 mod/photos.php:1682 mod/settings.php:739 +#: object/Item.php:134 +msgid "Delete" +msgstr "" + +#: include/conversation.php:753 mod/content.php:487 mod/content.php:910 +#: mod/content.php:911 object/Item.php:367 object/Item.php:368 +#, php-format +msgid "View %s's profile @ %s" +msgstr "" + +#: include/conversation.php:765 object/Item.php:355 +msgid "Categories:" +msgstr "" + +#: include/conversation.php:766 object/Item.php:356 +msgid "Filed under:" +msgstr "" + +#: include/conversation.php:773 mod/content.php:497 mod/content.php:923 +#: object/Item.php:381 +#, php-format +msgid "%s from %s" +msgstr "" + +#: include/conversation.php:789 mod/content.php:513 +msgid "View in context" +msgstr "" + +#: include/conversation.php:791 include/conversation.php:1261 +#: mod/editpost.php:124 mod/wallmessage.php:156 mod/message.php:356 +#: mod/message.php:548 mod/content.php:515 mod/content.php:948 +#: mod/photos.php:1570 object/Item.php:406 +msgid "Please wait" +msgstr "" + +#: include/conversation.php:870 +msgid "remove" +msgstr "" + +#: include/conversation.php:874 +msgid "Delete Selected Items" +msgstr "" + +#: include/conversation.php:966 +msgid "Follow Thread" +msgstr "" + +#: include/conversation.php:967 include/Contact.php:390 +msgid "View Status" +msgstr "" + +#: include/conversation.php:968 include/conversation.php:984 +#: include/Contact.php:333 include/Contact.php:346 include/Contact.php:391 +#: mod/allfriends.php:65 mod/directory.php:155 mod/dirfind.php:203 +#: mod/match.php:71 mod/suggest.php:82 +msgid "View Profile" +msgstr "" + +#: include/conversation.php:969 include/Contact.php:392 +msgid "View Photos" +msgstr "" + +#: include/conversation.php:970 include/Contact.php:393 +msgid "Network Posts" +msgstr "" + +#: include/conversation.php:971 include/Contact.php:394 +msgid "View Contact" +msgstr "" + +#: include/conversation.php:972 include/Contact.php:396 +msgid "Send PM" +msgstr "" + +#: include/conversation.php:976 include/Contact.php:397 +msgid "Poke" +msgstr "" + +#: include/conversation.php:1094 +#, php-format +msgid "%s likes this." +msgstr "" + +#: include/conversation.php:1097 +#, php-format +msgid "%s doesn't like this." +msgstr "" + +#: include/conversation.php:1100 +#, php-format +msgid "%s attends." +msgstr "" + +#: include/conversation.php:1103 +#, php-format +msgid "%s doesn't attend." +msgstr "" + +#: include/conversation.php:1106 +#, php-format +msgid "%s attends maybe." +msgstr "" + +#: include/conversation.php:1116 +msgid "and" +msgstr "" + +#: include/conversation.php:1122 +#, php-format +msgid ", and %d other people" +msgstr "" + +#: include/conversation.php:1131 +#, php-format +msgid "%2$d people like this" +msgstr "" + +#: include/conversation.php:1132 +#, php-format +msgid "%s like this." +msgstr "" + +#: include/conversation.php:1135 +#, php-format +msgid "%2$d people don't like this" +msgstr "" + +#: include/conversation.php:1136 +#, php-format +msgid "%s don't like this." +msgstr "" + +#: include/conversation.php:1139 +#, php-format +msgid "%2$d people attend" +msgstr "" + +#: include/conversation.php:1140 +#, php-format +msgid "%s attend." +msgstr "" + +#: include/conversation.php:1143 +#, php-format +msgid "%2$d people don't attend" +msgstr "" + +#: include/conversation.php:1144 +#, php-format +msgid "%s don't attend." +msgstr "" + +#: include/conversation.php:1147 +#, php-format +msgid "%2$d people attend maybe" +msgstr "" + +#: include/conversation.php:1148 +#, php-format +msgid "%s anttend maybe." +msgstr "" + +#: include/conversation.php:1187 include/conversation.php:1205 +msgid "Visible to everybody" +msgstr "" + +#: include/conversation.php:1188 include/conversation.php:1206 +#: mod/wallmessage.php:127 mod/wallmessage.php:135 mod/message.php:291 +#: mod/message.php:299 mod/message.php:442 mod/message.php:450 +msgid "Please enter a link URL:" +msgstr "" + +#: include/conversation.php:1189 include/conversation.php:1207 +msgid "Please enter a video link/URL:" +msgstr "" + +#: include/conversation.php:1190 include/conversation.php:1208 +msgid "Please enter an audio link/URL:" +msgstr "" + +#: include/conversation.php:1191 include/conversation.php:1209 +msgid "Tag term:" +msgstr "" + +#: include/conversation.php:1192 include/conversation.php:1210 +#: mod/filer.php:30 +msgid "Save to Folder:" +msgstr "" + +#: include/conversation.php:1193 include/conversation.php:1211 +msgid "Where are you right now?" +msgstr "" + +#: include/conversation.php:1194 +msgid "Delete item(s)?" +msgstr "" + +#: include/conversation.php:1242 mod/photos.php:1569 +msgid "Share" +msgstr "" + +#: include/conversation.php:1243 mod/editpost.php:110 mod/wallmessage.php:154 +#: mod/message.php:354 mod/message.php:545 +msgid "Upload photo" +msgstr "" + +#: include/conversation.php:1244 mod/editpost.php:111 +msgid "upload photo" +msgstr "" + +#: include/conversation.php:1245 mod/editpost.php:112 +msgid "Attach file" +msgstr "" + +#: include/conversation.php:1246 mod/editpost.php:113 +msgid "attach file" +msgstr "" + +#: include/conversation.php:1247 mod/editpost.php:114 mod/wallmessage.php:155 +#: mod/message.php:355 mod/message.php:546 +msgid "Insert web link" +msgstr "" + +#: include/conversation.php:1248 mod/editpost.php:115 +msgid "web link" +msgstr "" + +#: include/conversation.php:1249 mod/editpost.php:116 +msgid "Insert video link" +msgstr "" + +#: include/conversation.php:1250 mod/editpost.php:117 +msgid "video link" +msgstr "" + +#: include/conversation.php:1251 mod/editpost.php:118 +msgid "Insert audio link" +msgstr "" + +#: include/conversation.php:1252 mod/editpost.php:119 +msgid "audio link" +msgstr "" + +#: include/conversation.php:1253 mod/editpost.php:120 +msgid "Set your location" +msgstr "" + +#: include/conversation.php:1254 mod/editpost.php:121 +msgid "set location" +msgstr "" + +#: include/conversation.php:1255 mod/editpost.php:122 +msgid "Clear browser location" +msgstr "" + +#: include/conversation.php:1256 mod/editpost.php:123 +msgid "clear location" +msgstr "" + +#: include/conversation.php:1258 mod/editpost.php:137 +msgid "Set title" +msgstr "" + +#: include/conversation.php:1260 mod/editpost.php:139 +msgid "Categories (comma-separated list)" +msgstr "" + +#: include/conversation.php:1262 mod/editpost.php:125 +msgid "Permission settings" +msgstr "" + +#: include/conversation.php:1263 mod/editpost.php:154 +msgid "permissions" +msgstr "" + +#: include/conversation.php:1271 mod/editpost.php:134 +msgid "Public post" +msgstr "" + +#: include/conversation.php:1276 mod/editpost.php:145 mod/content.php:737 +#: mod/events.php:504 mod/photos.php:1591 mod/photos.php:1639 +#: mod/photos.php:1725 object/Item.php:729 +msgid "Preview" +msgstr "" + +#: include/conversation.php:1280 include/items.php:1917 mod/fbrowser.php:101 +#: mod/fbrowser.php:136 mod/tagrm.php:11 mod/tagrm.php:94 mod/follow.php:121 +#: mod/editpost.php:148 mod/message.php:220 mod/dfrn_request.php:875 +#: mod/contacts.php:445 mod/photos.php:235 mod/photos.php:322 +#: mod/suggest.php:32 mod/videos.php:128 mod/settings.php:677 +#: mod/settings.php:703 +msgid "Cancel" +msgstr "" + +#: include/conversation.php:1286 +msgid "Post to Groups" +msgstr "" + +#: include/conversation.php:1287 +msgid "Post to Contacts" +msgstr "" + +#: include/conversation.php:1288 +msgid "Private post" +msgstr "" + +#: include/conversation.php:1293 include/identity.php:256 mod/editpost.php:152 +msgid "Message" +msgstr "" + +#: include/conversation.php:1294 mod/editpost.php:153 +msgid "Browser" +msgstr "" + +#: include/conversation.php:1449 +msgid "View all" +msgstr "" + +#: include/conversation.php:1471 +msgid "Like" +msgid_plural "Likes" +msgstr[0] "" +msgstr[1] "" + +#: include/conversation.php:1474 +msgid "Dislike" +msgid_plural "Dislikes" +msgstr[0] "" +msgstr[1] "" + +#: include/conversation.php:1480 +msgid "Not Attending" +msgid_plural "Not Attending" +msgstr[0] "" +msgstr[1] "" + +#: include/datetime.php:57 include/datetime.php:59 mod/profiles.php:705 +msgid "Miscellaneous" +msgstr "" + +#: include/datetime.php:183 include/identity.php:629 +msgid "Birthday:" +msgstr "" + +#: include/datetime.php:185 mod/profiles.php:728 +msgid "Age: " +msgstr "" + +#: include/datetime.php:187 +msgid "YYYY-MM-DD or MM-DD" +msgstr "" + +#: include/datetime.php:341 +msgid "never" +msgstr "" + +#: include/datetime.php:347 +msgid "less than a second ago" +msgstr "" + +#: include/datetime.php:350 +msgid "year" +msgstr "" + +#: include/datetime.php:350 +msgid "years" +msgstr "" + +#: include/datetime.php:351 include/event.php:480 mod/cal.php:284 +#: mod/events.php:389 +msgid "month" +msgstr "" + +#: include/datetime.php:351 +msgid "months" +msgstr "" + +#: include/datetime.php:352 include/event.php:481 mod/cal.php:285 +#: mod/events.php:390 +msgid "week" +msgstr "" + +#: include/datetime.php:352 +msgid "weeks" +msgstr "" + +#: include/datetime.php:353 include/event.php:482 mod/cal.php:286 +#: mod/events.php:391 +msgid "day" +msgstr "" + +#: include/datetime.php:353 +msgid "days" +msgstr "" + +#: include/datetime.php:354 +msgid "hour" +msgstr "" + +#: include/datetime.php:354 +msgid "hours" +msgstr "" + +#: include/datetime.php:355 +msgid "minute" +msgstr "" + +#: include/datetime.php:355 +msgid "minutes" +msgstr "" + +#: include/datetime.php:356 +msgid "second" +msgstr "" + +#: include/datetime.php:356 +msgid "seconds" +msgstr "" + +#: include/datetime.php:365 +#, php-format +msgid "%1$d %2$s ago" +msgstr "" + +#: include/datetime.php:572 +#, php-format +msgid "%s's birthday" +msgstr "" + +#: include/datetime.php:573 include/dfrn.php:1108 +#, php-format +msgid "Happy Birthday %s" +msgstr "" + +#: include/dbstructure.php:26 +#, php-format +msgid "" +"\n" +"\t\t\tThe friendica developers released update %s recently,\n" +"\t\t\tbut when I tried to install it, something went terribly wrong.\n" +"\t\t\tThis needs to be fixed soon and I can't do it alone. Please contact a\n" +"\t\t\tfriendica developer if you can not help me on your own. My database " +"might be invalid." +msgstr "" + +#: include/dbstructure.php:31 +#, php-format +msgid "" +"The error message is\n" +"[pre]%s[/pre]" +msgstr "" + +#: include/dbstructure.php:183 +msgid "Errors encountered creating database tables." +msgstr "" + +#: include/dbstructure.php:260 +msgid "Errors encountered performing database changes." +msgstr "" + +#: include/dfrn.php:1107 +#, php-format +msgid "%s\\'s birthday" +msgstr "" + +#: include/enotify.php:24 +msgid "Friendica Notification" +msgstr "" + +#: include/enotify.php:27 +msgid "Thank You," +msgstr "" + +#: include/enotify.php:30 +#, php-format +msgid "%s Administrator" +msgstr "" + +#: include/enotify.php:32 +#, php-format +msgid "%1$s, %2$s Administrator" +msgstr "" + +#: include/enotify.php:70 +#, php-format +msgid "%s " +msgstr "" + +#: include/enotify.php:83 +#, php-format +msgid "[Friendica:Notify] New mail received at %s" +msgstr "" + +#: include/enotify.php:85 +#, php-format +msgid "%1$s sent you a new private message at %2$s." +msgstr "" + +#: include/enotify.php:86 +#, php-format +msgid "%1$s sent you %2$s." +msgstr "" + +#: include/enotify.php:86 +msgid "a private message" +msgstr "" + +#: include/enotify.php:88 +#, php-format +msgid "Please visit %s to view and/or reply to your private messages." +msgstr "" + +#: include/enotify.php:134 +#, php-format +msgid "%1$s commented on [url=%2$s]a %3$s[/url]" +msgstr "" + +#: include/enotify.php:141 +#, php-format +msgid "%1$s commented on [url=%2$s]%3$s's %4$s[/url]" +msgstr "" + +#: include/enotify.php:149 +#, php-format +msgid "%1$s commented on [url=%2$s]your %3$s[/url]" +msgstr "" + +#: include/enotify.php:159 +#, php-format +msgid "[Friendica:Notify] Comment to conversation #%1$d by %2$s" +msgstr "" + +#: include/enotify.php:161 +#, php-format +msgid "%s commented on an item/conversation you have been following." +msgstr "" + +#: include/enotify.php:164 include/enotify.php:178 include/enotify.php:192 +#: include/enotify.php:206 include/enotify.php:224 include/enotify.php:238 +#, php-format +msgid "Please visit %s to view and/or reply to the conversation." +msgstr "" + +#: include/enotify.php:171 +#, php-format +msgid "[Friendica:Notify] %s posted to your profile wall" +msgstr "" + +#: include/enotify.php:173 +#, php-format +msgid "%1$s posted to your profile wall at %2$s" +msgstr "" + +#: include/enotify.php:174 +#, php-format +msgid "%1$s posted to [url=%2$s]your wall[/url]" +msgstr "" + +#: include/enotify.php:185 +#, php-format +msgid "[Friendica:Notify] %s tagged you" +msgstr "" + +#: include/enotify.php:187 +#, php-format +msgid "%1$s tagged you at %2$s" +msgstr "" + +#: include/enotify.php:188 +#, php-format +msgid "%1$s [url=%2$s]tagged you[/url]." +msgstr "" + +#: include/enotify.php:199 +#, php-format +msgid "[Friendica:Notify] %s shared a new post" +msgstr "" + +#: include/enotify.php:201 +#, php-format +msgid "%1$s shared a new post at %2$s" +msgstr "" + +#: include/enotify.php:202 +#, php-format +msgid "%1$s [url=%2$s]shared a post[/url]." +msgstr "" + +#: include/enotify.php:213 +#, php-format +msgid "[Friendica:Notify] %1$s poked you" +msgstr "" + +#: include/enotify.php:215 +#, php-format +msgid "%1$s poked you at %2$s" +msgstr "" + +#: include/enotify.php:216 +#, php-format +msgid "%1$s [url=%2$s]poked you[/url]." +msgstr "" + +#: include/enotify.php:231 +#, php-format +msgid "[Friendica:Notify] %s tagged your post" +msgstr "" + +#: include/enotify.php:233 +#, php-format +msgid "%1$s tagged your post at %2$s" +msgstr "" + +#: include/enotify.php:234 +#, php-format +msgid "%1$s tagged [url=%2$s]your post[/url]" +msgstr "" + +#: include/enotify.php:245 +msgid "[Friendica:Notify] Introduction received" +msgstr "" + +#: include/enotify.php:247 +#, php-format +msgid "You've received an introduction from '%1$s' at %2$s" +msgstr "" + +#: include/enotify.php:248 +#, php-format +msgid "You've received [url=%1$s]an introduction[/url] from %2$s." +msgstr "" + +#: include/enotify.php:252 include/enotify.php:295 +#, php-format +msgid "You may visit their profile at %s" +msgstr "" + +#: include/enotify.php:254 +#, php-format +msgid "Please visit %s to approve or reject the introduction." +msgstr "" + +#: include/enotify.php:262 +msgid "[Friendica:Notify] A new person is sharing with you" +msgstr "" + +#: include/enotify.php:264 include/enotify.php:265 +#, php-format +msgid "%1$s is sharing with you at %2$s" +msgstr "" + +#: include/enotify.php:271 +msgid "[Friendica:Notify] You have a new follower" +msgstr "" + +#: include/enotify.php:273 include/enotify.php:274 +#, php-format +msgid "You have a new follower at %2$s : %1$s" +msgstr "" + +#: include/enotify.php:285 +msgid "[Friendica:Notify] Friend suggestion received" +msgstr "" + +#: include/enotify.php:287 +#, php-format +msgid "You've received a friend suggestion from '%1$s' at %2$s" +msgstr "" + +#: include/enotify.php:288 +#, php-format +msgid "You've received [url=%1$s]a friend suggestion[/url] for %2$s from %3$s." +msgstr "" + +#: include/enotify.php:293 +msgid "Name:" +msgstr "" + +#: include/enotify.php:294 +msgid "Photo:" +msgstr "" + +#: include/enotify.php:297 +#, php-format +msgid "Please visit %s to approve or reject the suggestion." +msgstr "" + +#: include/enotify.php:305 include/enotify.php:319 +msgid "[Friendica:Notify] Connection accepted" +msgstr "" + +#: include/enotify.php:307 include/enotify.php:321 +#, php-format +msgid "'%1$s' has accepted your connection request at %2$s" +msgstr "" + +#: include/enotify.php:308 include/enotify.php:322 +#, php-format +msgid "%2$s has accepted your [url=%1$s]connection request[/url]." +msgstr "" + +#: include/enotify.php:312 +msgid "" +"You are now mutual friends and may exchange status updates, photos, and " +"email without restriction." +msgstr "" + +#: include/enotify.php:314 +#, php-format +msgid "Please visit %s if you wish to make any changes to this relationship." +msgstr "" + +#: include/enotify.php:326 +#, php-format +msgid "" +"'%1$s' has chosen to accept you a \"fan\", which restricts some forms of " +"communication - such as private messaging and some profile interactions. If " +"this is a celebrity or community page, these settings were applied " +"automatically." +msgstr "" + +#: include/enotify.php:328 +#, php-format +msgid "" +"'%1$s' may choose to extend this into a two-way or more permissive " +"relationship in the future." +msgstr "" + +#: include/enotify.php:330 +#, php-format +msgid "Please visit %s if you wish to make any changes to this relationship." +msgstr "" + +#: include/enotify.php:340 +msgid "[Friendica System:Notify] registration request" +msgstr "" + +#: include/enotify.php:342 +#, php-format +msgid "You've received a registration request from '%1$s' at %2$s" +msgstr "" + +#: include/enotify.php:343 +#, php-format +msgid "You've received a [url=%1$s]registration request[/url] from %2$s." +msgstr "" + +#: include/enotify.php:347 +#, php-format +msgid "Full Name:\t%1$s\\nSite Location:\t%2$s\\nLogin Name:\t%3$s (%4$s)" +msgstr "" + +#: include/enotify.php:350 +#, php-format +msgid "Please visit %s to approve or reject the request." +msgstr "" + +#: include/event.php:441 +msgid "Sun" +msgstr "" + +#: include/event.php:442 +msgid "Mon" +msgstr "" + +#: include/event.php:443 +msgid "Tue" +msgstr "" + +#: include/event.php:444 +msgid "Wed" +msgstr "" + +#: include/event.php:445 +msgid "Thu" +msgstr "" + +#: include/event.php:446 +msgid "Fri" +msgstr "" + +#: include/event.php:447 +msgid "Sat" +msgstr "" + +#: include/event.php:448 include/text.php:1130 mod/settings.php:968 +msgid "Sunday" +msgstr "" + +#: include/event.php:449 include/text.php:1130 mod/settings.php:968 +msgid "Monday" +msgstr "" + +#: include/event.php:450 include/text.php:1130 +msgid "Tuesday" +msgstr "" + +#: include/event.php:451 include/text.php:1130 +msgid "Wednesday" +msgstr "" + +#: include/event.php:452 include/text.php:1130 +msgid "Thursday" +msgstr "" + +#: include/event.php:453 include/text.php:1130 +msgid "Friday" +msgstr "" + +#: include/event.php:454 include/text.php:1130 +msgid "Saturday" +msgstr "" + +#: include/event.php:455 +msgid "Jan" +msgstr "" + +#: include/event.php:456 +msgid "Feb" +msgstr "" + +#: include/event.php:457 +msgid "Mar" +msgstr "" + +#: include/event.php:458 +msgid "Apr" +msgstr "" + +#: include/event.php:459 include/event.php:471 include/text.php:1134 +msgid "May" +msgstr "" + +#: include/event.php:460 +msgid "Jun" +msgstr "" + +#: include/event.php:461 +msgid "Jul" +msgstr "" + +#: include/event.php:462 +msgid "Aug" +msgstr "" + +#: include/event.php:463 +msgid "Sept" +msgstr "" + +#: include/event.php:464 +msgid "Oct" +msgstr "" + +#: include/event.php:465 +msgid "Nov" +msgstr "" + +#: include/event.php:466 +msgid "Dec" +msgstr "" + +#: include/event.php:467 include/text.php:1134 +msgid "January" +msgstr "" + +#: include/event.php:468 include/text.php:1134 +msgid "February" +msgstr "" + +#: include/event.php:469 include/text.php:1134 +msgid "March" +msgstr "" + +#: include/event.php:470 include/text.php:1134 +msgid "April" +msgstr "" + +#: include/event.php:472 include/text.php:1134 +msgid "June" +msgstr "" + +#: include/event.php:473 include/text.php:1134 +msgid "July" +msgstr "" + +#: include/event.php:474 include/text.php:1134 +msgid "August" +msgstr "" + +#: include/event.php:475 include/text.php:1134 +msgid "September" +msgstr "" + +#: include/event.php:476 include/text.php:1134 +msgid "October" +msgstr "" + +#: include/event.php:477 include/text.php:1134 +msgid "November" +msgstr "" + +#: include/event.php:478 include/text.php:1134 +msgid "December" +msgstr "" + +#: include/event.php:479 mod/cal.php:283 mod/events.php:388 +msgid "today" +msgstr "" + +#: include/event.php:483 +msgid "all-day" +msgstr "" + +#: include/event.php:485 +msgid "No events to display" +msgstr "" + +#: include/event.php:574 +msgid "l, F j" +msgstr "" + +#: include/event.php:593 +msgid "Edit event" +msgstr "" + +#: include/event.php:615 include/text.php:1536 include/text.php:1543 +msgid "link to source" +msgstr "" + +#: include/event.php:850 +msgid "Export" +msgstr "" + +#: include/event.php:851 +msgid "Export calendar as ical" +msgstr "" + +#: include/event.php:852 +msgid "Export calendar as csv" +msgstr "" + +#: include/follow.php:77 mod/dfrn_request.php:507 +msgid "Disallowed profile URL." +msgstr "" + +#: include/follow.php:82 +msgid "Connect URL missing." +msgstr "" + +#: include/follow.php:109 +msgid "" +"This site is not configured to allow communications with other networks." +msgstr "" + +#: include/follow.php:110 include/follow.php:130 +msgid "No compatible communication protocols or feeds were discovered." +msgstr "" + +#: include/follow.php:128 +msgid "The profile address specified does not provide adequate information." +msgstr "" + +#: include/follow.php:132 +msgid "An author or name was not found." +msgstr "" + +#: include/follow.php:134 +msgid "No browser URL could be matched to this address." +msgstr "" + +#: include/follow.php:136 +msgid "" +"Unable to match @-style Identity Address with a known protocol or email " +"contact." +msgstr "" + +#: include/follow.php:137 +msgid "Use mailto: in front of address to force email check." +msgstr "" + +#: include/follow.php:143 +msgid "" +"The profile address specified belongs to a network which has been disabled " +"on this site." +msgstr "" + +#: include/follow.php:153 +msgid "" +"Limited profile. This person will be unable to receive direct/personal " +"notifications from you." +msgstr "" + +#: include/follow.php:254 +msgid "Unable to retrieve contact information." +msgstr "" + +#: include/follow.php:287 +msgid "following" +msgstr "" + +#: include/identity.php:42 +msgid "Requested account is not available." +msgstr "" + +#: include/identity.php:51 mod/profile.php:21 +msgid "Requested profile is not available." +msgstr "" + +#: include/identity.php:95 include/identity.php:311 include/identity.php:688 +msgid "Edit profile" +msgstr "" + +#: include/identity.php:251 +msgid "Atom feed" +msgstr "" + +#: include/identity.php:282 include/nav.php:189 +msgid "Profiles" +msgstr "" + +#: include/identity.php:282 +msgid "Manage/edit profiles" +msgstr "" + +#: include/identity.php:287 include/identity.php:313 mod/profiles.php:795 +msgid "Change profile photo" +msgstr "" + +#: include/identity.php:288 mod/profiles.php:796 +msgid "Create New Profile" +msgstr "" + +#: include/identity.php:298 mod/profiles.php:785 +msgid "Profile Image" +msgstr "" + +#: include/identity.php:301 mod/profiles.php:787 +msgid "visible to everybody" +msgstr "" + +#: include/identity.php:302 mod/profiles.php:691 mod/profiles.php:788 +msgid "Edit visibility" +msgstr "" + +#: include/identity.php:330 include/identity.php:616 mod/notifications.php:238 +#: mod/directory.php:139 +msgid "Gender:" +msgstr "" + +#: include/identity.php:333 include/identity.php:636 mod/directory.php:141 +msgid "Status:" +msgstr "" + +#: include/identity.php:335 include/identity.php:647 mod/directory.php:143 +msgid "Homepage:" +msgstr "" + +#: include/identity.php:337 include/identity.php:657 mod/notifications.php:234 +#: mod/contacts.php:632 mod/directory.php:145 +msgid "About:" +msgstr "" + +#: include/identity.php:339 mod/contacts.php:630 +msgid "XMPP:" +msgstr "" + +#: include/identity.php:422 mod/notifications.php:246 mod/contacts.php:50 +msgid "Network:" +msgstr "" + +#: include/identity.php:451 include/identity.php:535 +msgid "g A l F d" +msgstr "" + +#: include/identity.php:452 include/identity.php:536 +msgid "F d" +msgstr "" + +#: include/identity.php:497 include/identity.php:582 +msgid "[today]" +msgstr "" + +#: include/identity.php:509 +msgid "Birthday Reminders" +msgstr "" + +#: include/identity.php:510 +msgid "Birthdays this week:" +msgstr "" + +#: include/identity.php:569 +msgid "[No description]" +msgstr "" + +#: include/identity.php:593 +msgid "Event Reminders" +msgstr "" + +#: include/identity.php:594 +msgid "Events this week:" +msgstr "" + +#: include/identity.php:605 include/identity.php:691 include/identity.php:722 +#: include/nav.php:82 mod/profperm.php:104 mod/newmember.php:32 +#: mod/contacts.php:639 mod/contacts.php:841 view/theme/frio/theme.php:247 +#: view/theme/diabook/theme.php:124 +msgid "Profile" +msgstr "" + +#: include/identity.php:614 mod/settings.php:1274 +msgid "Full Name:" +msgstr "" + +#: include/identity.php:621 +msgid "j F, Y" +msgstr "" + +#: include/identity.php:622 +msgid "j F" +msgstr "" + +#: include/identity.php:633 +msgid "Age:" +msgstr "" + +#: include/identity.php:642 +#, php-format +msgid "for %1$d %2$s" +msgstr "" + +#: include/identity.php:645 mod/profiles.php:710 +msgid "Sexual Preference:" +msgstr "" + +#: include/identity.php:649 mod/profiles.php:737 +msgid "Hometown:" +msgstr "" + +#: include/identity.php:651 mod/follow.php:134 mod/notifications.php:236 +#: mod/contacts.php:634 +msgid "Tags:" +msgstr "" + +#: include/identity.php:653 mod/profiles.php:738 +msgid "Political Views:" +msgstr "" + +#: include/identity.php:655 +msgid "Religion:" +msgstr "" + +#: include/identity.php:659 +msgid "Hobbies/Interests:" +msgstr "" + +#: include/identity.php:661 mod/profiles.php:742 +msgid "Likes:" +msgstr "" + +#: include/identity.php:663 mod/profiles.php:743 +msgid "Dislikes:" +msgstr "" + +#: include/identity.php:666 +msgid "Contact information and Social Networks:" +msgstr "" + +#: include/identity.php:668 +msgid "Musical interests:" +msgstr "" + +#: include/identity.php:670 +msgid "Books, literature:" +msgstr "" + +#: include/identity.php:672 +msgid "Television:" +msgstr "" + +#: include/identity.php:674 +msgid "Film/dance/culture/entertainment:" +msgstr "" + +#: include/identity.php:676 +msgid "Love/Romance:" +msgstr "" + +#: include/identity.php:678 +msgid "Work/employment:" +msgstr "" + +#: include/identity.php:680 +msgid "School/education:" +msgstr "" + +#: include/identity.php:684 +msgid "Forums:" +msgstr "" + +#: include/identity.php:692 mod/events.php:507 +msgid "Basic" +msgstr "" + +#: include/identity.php:693 mod/admin.php:931 mod/contacts.php:870 +#: mod/events.php:508 +msgid "Advanced" +msgstr "" + +#: include/identity.php:714 include/nav.php:81 mod/contacts.php:637 +#: mod/contacts.php:833 view/theme/frio/theme.php:246 +msgid "Status" +msgstr "" + +#: include/identity.php:717 mod/follow.php:143 mod/contacts.php:836 +msgid "Status Messages and Posts" +msgstr "" + +#: include/identity.php:725 mod/contacts.php:844 +msgid "Profile Details" +msgstr "" + +#: include/identity.php:730 include/nav.php:83 mod/fbrowser.php:32 +#: view/theme/frio/theme.php:248 view/theme/diabook/theme.php:126 +msgid "Photos" +msgstr "" + +#: include/identity.php:733 mod/photos.php:87 +msgid "Photo Albums" +msgstr "" + +#: include/identity.php:738 include/identity.php:741 include/nav.php:84 +#: view/theme/frio/theme.php:249 +msgid "Videos" +msgstr "" + +#: include/identity.php:750 include/identity.php:761 include/nav.php:85 +#: include/nav.php:149 mod/cal.php:275 mod/events.php:379 +#: view/theme/frio/theme.php:250 view/theme/frio/theme.php:254 +#: view/theme/diabook/theme.php:127 +msgid "Events" +msgstr "" + +#: include/identity.php:753 include/identity.php:764 include/nav.php:149 +#: view/theme/frio/theme.php:254 +msgid "Events and Calendar" +msgstr "" + +#: include/identity.php:772 mod/notes.php:46 +msgid "Personal Notes" +msgstr "" + +#: include/identity.php:775 +msgid "Only You Can See This" +msgstr "" + +#: include/identity.php:783 include/identity.php:786 include/nav.php:128 +#: include/nav.php:192 include/text.php:1022 mod/contacts.php:792 +#: mod/contacts.php:853 mod/viewcontacts.php:116 view/theme/frio/theme.php:257 +#: view/theme/diabook/theme.php:125 +msgid "Contacts" +msgstr "" + +#: include/items.php:1518 mod/dfrn_request.php:745 mod/dfrn_confirm.php:726 +msgid "[Name Withheld]" +msgstr "" + +#: include/items.php:1873 mod/viewsrc.php:15 mod/notice.php:15 +#: mod/admin.php:234 mod/admin.php:1441 mod/admin.php:1675 mod/display.php:103 +#: mod/display.php:279 mod/display.php:478 +msgid "Item not found." +msgstr "" + +#: include/items.php:1912 +msgid "Do you really want to delete this item?" +msgstr "" + +#: include/items.php:1914 mod/follow.php:110 mod/api.php:105 +#: mod/message.php:217 mod/dfrn_request.php:861 mod/profiles.php:648 +#: mod/profiles.php:651 mod/profiles.php:677 mod/contacts.php:442 +#: mod/register.php:238 mod/suggest.php:29 mod/settings.php:1158 +#: mod/settings.php:1164 mod/settings.php:1172 mod/settings.php:1176 +#: mod/settings.php:1181 mod/settings.php:1187 mod/settings.php:1193 +#: mod/settings.php:1199 mod/settings.php:1225 mod/settings.php:1226 +#: mod/settings.php:1227 mod/settings.php:1228 mod/settings.php:1229 +msgid "Yes" +msgstr "" + +#: include/items.php:2077 mod/wall_upload.php:77 mod/wall_upload.php:80 +#: mod/notes.php:22 mod/uimport.php:23 mod/nogroup.php:25 mod/invite.php:15 +#: mod/invite.php:101 mod/wall_attach.php:67 mod/wall_attach.php:70 +#: mod/repair_ostatus.php:9 mod/delegate.php:12 mod/attach.php:33 +#: mod/follow.php:11 mod/follow.php:73 mod/follow.php:155 mod/editpost.php:10 +#: mod/group.php:19 mod/wallmessage.php:9 mod/wallmessage.php:33 +#: mod/wallmessage.php:79 mod/wallmessage.php:103 mod/api.php:26 +#: mod/api.php:31 mod/ostatus_subscribe.php:9 mod/message.php:46 +#: mod/message.php:182 mod/manage.php:96 mod/crepair.php:100 +#: mod/dfrn_confirm.php:57 mod/fsuggest.php:78 mod/mood.php:114 +#: mod/poke.php:150 mod/profile_photo.php:19 mod/profile_photo.php:175 +#: mod/profile_photo.php:186 mod/profile_photo.php:199 mod/regmod.php:110 +#: mod/notifications.php:71 mod/profiles.php:166 mod/profiles.php:605 +#: mod/allfriends.php:12 mod/cal.php:304 mod/common.php:18 +#: mod/contacts.php:350 mod/dirfind.php:11 mod/display.php:475 +#: mod/events.php:190 mod/item.php:198 mod/item.php:210 mod/network.php:4 +#: mod/photos.php:159 mod/photos.php:1072 mod/register.php:42 +#: mod/suggest.php:58 mod/viewcontacts.php:45 mod/settings.php:22 +#: mod/settings.php:128 mod/settings.php:663 index.php:397 +msgid "Permission denied." +msgstr "" + +#: include/items.php:2182 +msgid "Archives" +msgstr "" + +#: include/nav.php:35 mod/navigation.php:19 +msgid "Nothing new here" +msgstr "" + +#: include/nav.php:39 mod/navigation.php:23 +msgid "Clear notifications" +msgstr "" + +#: include/nav.php:40 include/text.php:1015 +msgid "@name, !forum, #tags, content" +msgstr "" + +#: include/nav.php:78 view/theme/frio/theme.php:243 boot.php:1778 +msgid "Logout" +msgstr "" + +#: include/nav.php:78 view/theme/frio/theme.php:243 +msgid "End this session" +msgstr "" + +#: include/nav.php:81 include/nav.php:161 view/theme/frio/theme.php:246 +#: view/theme/diabook/theme.php:123 +msgid "Your posts and conversations" +msgstr "" + +#: include/nav.php:82 view/theme/frio/theme.php:247 +#: view/theme/diabook/theme.php:124 +msgid "Your profile page" +msgstr "" + +#: include/nav.php:83 view/theme/frio/theme.php:248 +#: view/theme/diabook/theme.php:126 +msgid "Your photos" +msgstr "" + +#: include/nav.php:84 view/theme/frio/theme.php:249 +msgid "Your videos" +msgstr "" + +#: include/nav.php:85 view/theme/frio/theme.php:250 +#: view/theme/diabook/theme.php:127 +msgid "Your events" +msgstr "" + +#: include/nav.php:86 view/theme/diabook/theme.php:128 +msgid "Personal notes" +msgstr "" + +#: include/nav.php:86 +msgid "Your personal notes" +msgstr "" + +#: include/nav.php:95 mod/bookmarklet.php:12 boot.php:1779 +msgid "Login" +msgstr "" + +#: include/nav.php:95 +msgid "Sign in" +msgstr "" + +#: include/nav.php:105 +msgid "Home Page" +msgstr "" + +#: include/nav.php:109 mod/register.php:280 boot.php:1754 +msgid "Register" +msgstr "" + +#: include/nav.php:109 +msgid "Create an account" +msgstr "" + +#: include/nav.php:115 mod/help.php:47 view/theme/vier/theme.php:298 +msgid "Help" +msgstr "" + +#: include/nav.php:115 +msgid "Help and documentation" +msgstr "" + +#: include/nav.php:119 +msgid "Apps" +msgstr "" + +#: include/nav.php:119 +msgid "Addon applications, utilities, games" +msgstr "" + +#: include/nav.php:123 include/text.php:1012 mod/search.php:149 +msgid "Search" +msgstr "" + +#: include/nav.php:123 +msgid "Search site content" +msgstr "" + +#: include/nav.php:126 include/text.php:1020 +msgid "Full Text" +msgstr "" + +#: include/nav.php:127 include/text.php:1021 +msgid "Tags" +msgstr "" + +#: include/nav.php:143 include/nav.php:145 mod/community.php:36 +#: view/theme/diabook/theme.php:129 +msgid "Community" +msgstr "" + +#: include/nav.php:143 +msgid "Conversations on this site" +msgstr "" + +#: include/nav.php:145 +msgid "Conversations on the network" +msgstr "" + +#: include/nav.php:152 +msgid "Directory" +msgstr "" + +#: include/nav.php:152 +msgid "People directory" +msgstr "" + +#: include/nav.php:154 +msgid "Information" +msgstr "" + +#: include/nav.php:154 +msgid "Information about this friendica instance" +msgstr "" + +#: include/nav.php:158 view/theme/frio/theme.php:253 +msgid "Conversations from your friends" +msgstr "" + +#: include/nav.php:159 +msgid "Network Reset" +msgstr "" + +#: include/nav.php:159 +msgid "Load Network page with no filters" +msgstr "" + +#: include/nav.php:166 +msgid "Friend Requests" +msgstr "" + +#: include/nav.php:169 mod/notifications.php:96 +msgid "Notifications" +msgstr "" + +#: include/nav.php:170 +msgid "See all notifications" +msgstr "" + +#: include/nav.php:171 mod/settings.php:900 +msgid "Mark as seen" +msgstr "" + +#: include/nav.php:171 +msgid "Mark all system notifications seen" +msgstr "" + +#: include/nav.php:175 mod/message.php:190 view/theme/frio/theme.php:255 +msgid "Messages" +msgstr "" + +#: include/nav.php:175 view/theme/frio/theme.php:255 +msgid "Private mail" +msgstr "" + +#: include/nav.php:176 +msgid "Inbox" +msgstr "" + +#: include/nav.php:177 +msgid "Outbox" +msgstr "" + +#: include/nav.php:178 mod/message.php:16 +msgid "New Message" +msgstr "" + +#: include/nav.php:181 +msgid "Manage" +msgstr "" + +#: include/nav.php:181 +msgid "Manage other pages" +msgstr "" + +#: include/nav.php:184 mod/settings.php:81 +msgid "Delegations" +msgstr "" + +#: include/nav.php:184 mod/delegate.php:130 +msgid "Delegate Page Management" +msgstr "" + +#: include/nav.php:186 mod/newmember.php:22 mod/admin.php:1494 +#: mod/admin.php:1752 mod/settings.php:111 view/theme/frio/theme.php:256 +#: view/theme/diabook/theme.php:544 view/theme/diabook/theme.php:648 +msgid "Settings" +msgstr "" + +#: include/nav.php:186 view/theme/frio/theme.php:256 +msgid "Account settings" +msgstr "" + +#: include/nav.php:189 +msgid "Manage/Edit Profiles" +msgstr "" + +#: include/nav.php:192 view/theme/frio/theme.php:257 +msgid "Manage/edit friends and contacts" +msgstr "" + +#: include/nav.php:197 mod/admin.php:186 +msgid "Admin" +msgstr "" + +#: include/nav.php:197 +msgid "Site setup and configuration" +msgstr "" + +#: include/nav.php:200 +msgid "Navigation" +msgstr "" + +#: include/nav.php:200 +msgid "Site map" +msgstr "" + +#: include/oembed.php:252 +msgid "Embedded content" +msgstr "" + +#: include/oembed.php:260 +msgid "Embedding disabled" +msgstr "" + +#: include/photos.php:53 mod/fbrowser.php:41 mod/fbrowser.php:62 +#: mod/photos.php:180 mod/photos.php:1086 mod/photos.php:1211 +#: mod/photos.php:1232 mod/photos.php:1795 mod/photos.php:1807 +#: view/theme/diabook/theme.php:499 +msgid "Contact Photos" +msgstr "" + +#: include/security.php:22 +msgid "Welcome " +msgstr "" + +#: include/security.php:23 +msgid "Please upload a profile photo." +msgstr "" + +#: include/security.php:26 +msgid "Welcome back " +msgstr "" + +#: include/security.php:373 +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/text.php:304 +msgid "newer" +msgstr "" + +#: include/text.php:306 +msgid "older" +msgstr "" + +#: include/text.php:311 +msgid "prev" +msgstr "" + +#: include/text.php:313 +msgid "first" +msgstr "" + +#: include/text.php:345 +msgid "last" +msgstr "" + +#: include/text.php:348 +msgid "next" +msgstr "" + +#: include/text.php:403 +msgid "Loading more entries..." +msgstr "" + +#: include/text.php:404 +msgid "The end" +msgstr "" + +#: include/text.php:889 +msgid "No contacts" +msgstr "" + +#: include/text.php:912 +#, php-format +msgid "%d Contact" +msgid_plural "%d Contacts" +msgstr[0] "" +msgstr[1] "" + +#: include/text.php:925 +msgid "View Contacts" +msgstr "" + +#: include/text.php:1013 mod/notes.php:61 mod/filer.php:31 +#: mod/editpost.php:109 +msgid "Save" +msgstr "" + +#: include/text.php:1076 +msgid "poke" +msgstr "" + +#: include/text.php:1076 +msgid "poked" +msgstr "" + +#: include/text.php:1077 +msgid "ping" +msgstr "" + +#: include/text.php:1077 +msgid "pinged" +msgstr "" + +#: include/text.php:1078 +msgid "prod" +msgstr "" + +#: include/text.php:1078 +msgid "prodded" +msgstr "" + +#: include/text.php:1079 +msgid "slap" +msgstr "" + +#: include/text.php:1079 +msgid "slapped" +msgstr "" + +#: include/text.php:1080 +msgid "finger" +msgstr "" + +#: include/text.php:1080 +msgid "fingered" +msgstr "" + +#: include/text.php:1081 +msgid "rebuff" +msgstr "" + +#: include/text.php:1081 +msgid "rebuffed" +msgstr "" + +#: include/text.php:1095 +msgid "happy" +msgstr "" + +#: include/text.php:1096 +msgid "sad" +msgstr "" + +#: include/text.php:1097 +msgid "mellow" +msgstr "" + +#: include/text.php:1098 +msgid "tired" +msgstr "" + +#: include/text.php:1099 +msgid "perky" +msgstr "" + +#: include/text.php:1100 +msgid "angry" +msgstr "" + +#: include/text.php:1101 +msgid "stupified" +msgstr "" + +#: include/text.php:1102 +msgid "puzzled" +msgstr "" + +#: include/text.php:1103 +msgid "interested" +msgstr "" + +#: include/text.php:1104 +msgid "bitter" +msgstr "" + +#: include/text.php:1105 +msgid "cheerful" +msgstr "" + +#: include/text.php:1106 +msgid "alive" +msgstr "" + +#: include/text.php:1107 +msgid "annoyed" +msgstr "" + +#: include/text.php:1108 +msgid "anxious" +msgstr "" + +#: include/text.php:1109 +msgid "cranky" +msgstr "" + +#: include/text.php:1110 +msgid "disturbed" +msgstr "" + +#: include/text.php:1111 +msgid "frustrated" +msgstr "" + +#: include/text.php:1112 +msgid "motivated" +msgstr "" + +#: include/text.php:1113 +msgid "relaxed" +msgstr "" + +#: include/text.php:1114 +msgid "surprised" +msgstr "" + +#: include/text.php:1328 mod/videos.php:380 +msgid "View Video" +msgstr "" + +#: include/text.php:1360 +msgid "bytes" +msgstr "" + +#: include/text.php:1392 include/text.php:1404 +msgid "Click to open/close" +msgstr "" + +#: include/text.php:1530 +msgid "View on separate page" +msgstr "" + +#: include/text.php:1531 +msgid "view on separate page" +msgstr "" + +#: include/text.php:1810 +msgid "activity" +msgstr "" + +#: include/text.php:1812 mod/content.php:623 object/Item.php:431 +#: object/Item.php:444 +msgid "comment" +msgid_plural "comments" +msgstr[0] "" +msgstr[1] "" + +#: include/text.php:1813 +msgid "post" +msgstr "" + +#: include/text.php:1981 +msgid "Item filed" +msgstr "" + +#: include/Contact.php:119 +msgid "stopped following" +msgstr "" + +#: include/Contact.php:395 +msgid "Drop Contact" +msgstr "" + +#: include/Contact.php:770 +msgid "Organisation" +msgstr "" + +#: include/Contact.php:773 +msgid "News" +msgstr "" + +#: include/Contact.php:776 +msgid "Forum" msgstr "" #: mod/oexchange.php:25 msgid "Post successful." msgstr "" -#: mod/update_community.php:18 mod/update_notes.php:37 -#: mod/update_display.php:22 mod/update_profile.php:41 -#: mod/update_network.php:25 -msgid "[Embedded content - reload page to view]" -msgstr "" - -#: mod/dirfind.php:226 -#, php-format -msgid "People Search - %s" -msgstr "" - -#: mod/dirfind.php:233 mod/match.php:105 -msgid "No matches" -msgstr "" - #: mod/viewsrc.php:7 msgid "Access denied." msgstr "" @@ -2976,11 +3088,11 @@ msgstr "" msgid "Welcome to %s" msgstr "" -#: mod/notify.php:60 mod/notifications.php:385 +#: mod/notify.php:60 msgid "No more system notifications." msgstr "" -#: mod/notify.php:64 mod/notifications.php:389 +#: mod/notify.php:64 mod/notifications.php:111 msgid "System Notifications" msgstr "" @@ -2988,9 +3100,9 @@ msgstr "" msgid "Remove term" msgstr "" -#: mod/search.php:93 mod/search.php:99 mod/directory.php:37 -#: mod/viewcontacts.php:35 mod/videos.php:197 mod/photos.php:963 -#: mod/display.php:249 mod/community.php:22 mod/dfrn_request.php:782 +#: mod/search.php:93 mod/search.php:99 mod/dfrn_request.php:790 +#: mod/community.php:22 mod/directory.php:37 mod/display.php:200 +#: mod/photos.php:944 mod/videos.php:194 mod/viewcontacts.php:35 msgid "Public access denied." msgstr "" @@ -3006,270 +3118,18 @@ msgstr "" msgid "Only one search per minute is permitted for not logged in users." msgstr "" -#: mod/search.php:227 mod/community.php:66 mod/community.php:75 +#: mod/search.php:224 mod/community.php:66 mod/community.php:75 msgid "No results." msgstr "" -#: mod/search.php:233 +#: mod/search.php:230 #, php-format msgid "Items tagged with: %s" msgstr "" -#: mod/search.php:235 +#: mod/search.php:232 mod/contacts.php:797 mod/network.php:146 #, php-format -msgid "Search results for: %s" -msgstr "" - -#: mod/notifications.php:29 -msgid "Invalid request identifier." -msgstr "" - -#: mod/notifications.php:38 mod/notifications.php:180 -#: mod/notifications.php:260 -msgid "Discard" -msgstr "" - -#: mod/notifications.php:54 mod/notifications.php:179 -#: mod/notifications.php:259 mod/contacts.php:604 mod/contacts.php:799 -#: mod/contacts.php:999 -msgid "Ignore" -msgstr "" - -#: mod/notifications.php:81 -msgid "System" -msgstr "" - -#: mod/notifications.php:93 mod/network.php:384 -msgid "Personal" -msgstr "" - -#: mod/notifications.php:130 -msgid "Show Ignored Requests" -msgstr "" - -#: mod/notifications.php:130 -msgid "Hide Ignored Requests" -msgstr "" - -#: mod/notifications.php:164 mod/notifications.php:234 -msgid "Notification type: " -msgstr "" - -#: mod/notifications.php:165 -msgid "Friend Suggestion" -msgstr "" - -#: mod/notifications.php:167 -#, php-format -msgid "suggested by %s" -msgstr "" - -#: mod/notifications.php:172 mod/notifications.php:251 mod/contacts.php:610 -msgid "Hide this contact from others" -msgstr "" - -#: mod/notifications.php:173 mod/notifications.php:252 -msgid "Post a new friend activity" -msgstr "" - -#: mod/notifications.php:173 mod/notifications.php:252 -msgid "if applicable" -msgstr "" - -#: mod/notifications.php:176 mod/notifications.php:257 mod/admin.php:1376 -msgid "Approve" -msgstr "" - -#: mod/notifications.php:196 -msgid "Claims to be known to you: " -msgstr "" - -#: mod/notifications.php:196 -msgid "yes" -msgstr "" - -#: mod/notifications.php:196 -msgid "no" -msgstr "" - -#: mod/notifications.php:197 -msgid "" -"Shall your connection be bidirectional or not? \"Friend\" implies that you " -"allow to read and you subscribe to their posts. \"Fan/Admirer\" means that " -"you allow to read but you do not want to read theirs. Approve as: " -msgstr "" - -#: mod/notifications.php:200 -msgid "" -"Shall your connection be bidirectional or not? \"Friend\" implies that you " -"allow to read and you subscribe to their posts. \"Sharer\" means that you " -"allow to read but you do not want to read theirs. Approve as: " -msgstr "" - -#: mod/notifications.php:208 -msgid "Friend" -msgstr "" - -#: mod/notifications.php:209 -msgid "Sharer" -msgstr "" - -#: mod/notifications.php:209 -msgid "Fan/Admirer" -msgstr "" - -#: mod/notifications.php:235 -msgid "Friend/Connect Request" -msgstr "" - -#: mod/notifications.php:235 -msgid "New Follower" -msgstr "" - -#: mod/notifications.php:255 mod/contacts.php:621 mod/follow.php:126 -msgid "Profile URL" -msgstr "" - -#: mod/notifications.php:266 -msgid "No introductions." -msgstr "" - -#: mod/notifications.php:307 mod/notifications.php:436 -#: mod/notifications.php:527 -#, php-format -msgid "%s liked %s's post" -msgstr "" - -#: mod/notifications.php:317 mod/notifications.php:446 -#: mod/notifications.php:537 -#, php-format -msgid "%s disliked %s's post" -msgstr "" - -#: mod/notifications.php:332 mod/notifications.php:461 -#: mod/notifications.php:552 -#, php-format -msgid "%s is now friends with %s" -msgstr "" - -#: mod/notifications.php:339 mod/notifications.php:468 -#, php-format -msgid "%s created a new post" -msgstr "" - -#: mod/notifications.php:340 mod/notifications.php:469 -#: mod/notifications.php:562 -#, php-format -msgid "%s commented on %s's post" -msgstr "" - -#: mod/notifications.php:355 -msgid "No more network notifications." -msgstr "" - -#: mod/notifications.php:359 -msgid "Network Notifications" -msgstr "" - -#: mod/notifications.php:484 -msgid "No more personal notifications." -msgstr "" - -#: mod/notifications.php:488 -msgid "Personal Notifications" -msgstr "" - -#: mod/notifications.php:569 -msgid "No more home notifications." -msgstr "" - -#: mod/notifications.php:573 -msgid "Home Notifications" -msgstr "" - -#: mod/dfrn_confirm.php:65 mod/profiles.php:18 mod/profiles.php:133 -#: mod/profiles.php:179 mod/profiles.php:610 -msgid "Profile not found." -msgstr "" - -#: mod/dfrn_confirm.php:121 mod/fsuggest.php:20 mod/fsuggest.php:92 -#: mod/crepair.php:114 -msgid "Contact not found." -msgstr "" - -#: mod/dfrn_confirm.php:122 -msgid "" -"This may occasionally happen if contact was requested by both persons and it " -"has already been approved." -msgstr "" - -#: mod/dfrn_confirm.php:241 -msgid "Response from remote site was not understood." -msgstr "" - -#: mod/dfrn_confirm.php:250 mod/dfrn_confirm.php:255 -msgid "Unexpected response from remote site: " -msgstr "" - -#: mod/dfrn_confirm.php:264 -msgid "Confirmation completed successfully." -msgstr "" - -#: mod/dfrn_confirm.php:266 mod/dfrn_confirm.php:280 mod/dfrn_confirm.php:287 -msgid "Remote site reported: " -msgstr "" - -#: mod/dfrn_confirm.php:278 -msgid "Temporary failure. Please wait and try again." -msgstr "" - -#: mod/dfrn_confirm.php:285 -msgid "Introduction failed or was revoked." -msgstr "" - -#: mod/dfrn_confirm.php:414 -msgid "Unable to set contact photo." -msgstr "" - -#: mod/dfrn_confirm.php:552 -#, php-format -msgid "No user record found for '%s' " -msgstr "" - -#: mod/dfrn_confirm.php:562 -msgid "Our site encryption key is apparently messed up." -msgstr "" - -#: mod/dfrn_confirm.php:573 -msgid "Empty site URL was provided or URL could not be decrypted by us." -msgstr "" - -#: mod/dfrn_confirm.php:594 -msgid "Contact record was not found for you on our site." -msgstr "" - -#: mod/dfrn_confirm.php:608 -#, php-format -msgid "Site public key not available in contact record for URL %s." -msgstr "" - -#: mod/dfrn_confirm.php:628 -msgid "" -"The ID provided by your system is a duplicate on our system. It should work " -"if you try again." -msgstr "" - -#: mod/dfrn_confirm.php:639 -msgid "Unable to set your contact credentials on our system." -msgstr "" - -#: mod/dfrn_confirm.php:698 -msgid "Unable to update your contact profile details on our system" -msgstr "" - -#: mod/dfrn_confirm.php:770 -#, php-format -msgid "%1$s has joined %2$s" +msgid "Results for: %s" msgstr "" #: mod/friendica.php:70 @@ -3362,6 +3222,10 @@ msgid "" "Password reset failed." msgstr "" +#: mod/lostpass.php:109 boot.php:1793 +msgid "Password Reset" +msgstr "" + #: mod/lostpass.php:110 msgid "Your password has been reset as requested." msgstr "" @@ -3426,7 +3290,7 @@ msgid "" "your email for further instructions." msgstr "" -#: mod/lostpass.php:161 +#: mod/lostpass.php:161 boot.php:1781 msgid "Nickname or Email: " msgstr "" @@ -3442,52 +3306,34 @@ msgstr "" msgid "Help:" msgstr "" +#: mod/help.php:53 mod/p.php:16 mod/p.php:43 mod/p.php:52 mod/fetch.php:12 +#: mod/fetch.php:39 mod/fetch.php:48 index.php:284 +msgid "Not Found" +msgstr "" + +#: mod/help.php:56 index.php:287 +msgid "Page not found." +msgstr "" + #: mod/wall_upload.php:20 mod/wall_upload.php:33 mod/wall_upload.php:86 #: mod/wall_upload.php:122 mod/wall_upload.php:125 mod/wall_attach.php:17 #: mod/wall_attach.php:25 mod/wall_attach.php:76 msgid "Invalid request." msgstr "" -#: mod/wall_upload.php:151 mod/photos.php:805 mod/profile_photo.php:150 +#: mod/wall_upload.php:151 mod/profile_photo.php:150 mod/photos.php:786 #, php-format msgid "Image exceeds size limit of %s" msgstr "" -#: mod/wall_upload.php:188 mod/photos.php:845 mod/profile_photo.php:159 +#: mod/wall_upload.php:188 mod/profile_photo.php:159 mod/photos.php:826 msgid "Unable to process image." msgstr "" -#: mod/wall_upload.php:221 mod/photos.php:872 mod/profile_photo.php:307 +#: mod/wall_upload.php:221 mod/profile_photo.php:307 mod/photos.php:853 msgid "Image upload failed." msgstr "" -#: mod/fsuggest.php:63 -msgid "Friend suggestion sent." -msgstr "" - -#: mod/fsuggest.php:97 -msgid "Suggest Friends" -msgstr "" - -#: mod/fsuggest.php:99 -#, php-format -msgid "Suggest a friend for %s" -msgstr "" - -#: mod/fsuggest.php:107 mod/events.php:574 mod/invite.php:140 -#: mod/crepair.php:179 mod/content.php:712 mod/profiles.php:679 -#: mod/poke.php:199 mod/photos.php:1124 mod/photos.php:1248 -#: mod/photos.php:1566 mod/photos.php:1617 mod/photos.php:1665 -#: mod/photos.php:1753 mod/install.php:272 mod/install.php:312 -#: mod/contacts.php:575 mod/mood.php:137 mod/localtime.php:45 -#: mod/message.php:343 mod/message.php:525 mod/manage.php:143 -#: object/Item.php:710 view/theme/cleanzero/config.php:80 -#: view/theme/quattro/config.php:64 view/theme/dispy/config.php:70 -#: view/theme/vier/config.php:107 view/theme/diabook/theme.php:633 -#: view/theme/diabook/config.php:148 view/theme/duepuntozero/config.php:59 -msgid "Submit" -msgstr "" - #: mod/lockview.php:31 mod/lockview.php:39 msgid "Remote privacy information not available." msgstr "" @@ -3496,176 +3342,11 @@ msgstr "" msgid "Visible to:" msgstr "" -#: mod/events.php:71 mod/events.php:73 -msgid "Event can not end before it has started." -msgstr "" - -#: mod/events.php:80 mod/events.php:82 -msgid "Event title and start time are required." -msgstr "" - -#: mod/events.php:201 -msgid "Sun" -msgstr "" - -#: mod/events.php:202 -msgid "Mon" -msgstr "" - -#: mod/events.php:203 -msgid "Tue" -msgstr "" - -#: mod/events.php:204 -msgid "Wed" -msgstr "" - -#: mod/events.php:205 -msgid "Thu" -msgstr "" - -#: mod/events.php:206 -msgid "Fri" -msgstr "" - -#: mod/events.php:207 -msgid "Sat" -msgstr "" - -#: mod/events.php:215 -msgid "Jan" -msgstr "" - -#: mod/events.php:216 -msgid "Feb" -msgstr "" - -#: mod/events.php:217 -msgid "Mar" -msgstr "" - -#: mod/events.php:218 -msgid "Apr" -msgstr "" - -#: mod/events.php:220 -msgid "Jun" -msgstr "" - -#: mod/events.php:221 -msgid "Jul" -msgstr "" - -#: mod/events.php:222 -msgid "Aug" -msgstr "" - -#: mod/events.php:223 -msgid "Sept" -msgstr "" - -#: mod/events.php:224 -msgid "Oct" -msgstr "" - -#: mod/events.php:225 -msgid "Nov" -msgstr "" - -#: mod/events.php:226 -msgid "Dec" -msgstr "" - -#: mod/events.php:239 -msgid "today" -msgstr "" - -#: mod/events.php:377 -msgid "l, F j" -msgstr "" - -#: mod/events.php:399 -msgid "Edit event" -msgstr "" - -#: mod/events.php:457 -msgid "Create New Event" -msgstr "" - -#: mod/events.php:458 -msgid "Previous" -msgstr "" - -#: mod/events.php:459 mod/install.php:231 -msgid "Next" -msgstr "" - -#: mod/events.php:554 -msgid "Event details" -msgstr "" - -#: mod/events.php:555 -msgid "Starting date and Title are required." -msgstr "" - -#: mod/events.php:556 -msgid "Event Starts:" -msgstr "" - -#: mod/events.php:556 mod/events.php:568 -msgid "Required" -msgstr "" - -#: mod/events.php:558 -msgid "Finish date/time is not known or not relevant" -msgstr "" - -#: mod/events.php:560 -msgid "Event Finishes:" -msgstr "" - -#: mod/events.php:562 -msgid "Adjust for viewer timezone" -msgstr "" - -#: mod/events.php:564 -msgid "Description:" -msgstr "" - -#: mod/events.php:568 -msgid "Title:" -msgstr "" - -#: mod/events.php:570 -msgid "Share this event" -msgstr "" - -#: mod/directory.php:203 view/theme/vier/theme.php:201 -#: view/theme/diabook/theme.php:525 -msgid "Global Directory" -msgstr "" - -#: mod/directory.php:205 -msgid "Find on this site" -msgstr "" - -#: mod/directory.php:207 -msgid "Finding:" -msgstr "" - -#: mod/directory.php:209 -msgid "Site Directory" -msgstr "" - -#: mod/directory.php:216 -msgid "No entries (some entries may be hidden)." -msgstr "" - #: mod/openid.php:24 msgid "OpenID protocol error. No ID returned." msgstr "" -#: mod/openid.php:53 +#: mod/openid.php:60 msgid "" "Account not found and OpenID registration is not permitted on this site." msgstr "" @@ -3711,13 +3392,13 @@ msgid "" "select \"Export account\"" msgstr "" -#: mod/nogroup.php:41 mod/viewcontacts.php:97 mod/contacts.php:584 -#: mod/contacts.php:938 +#: mod/nogroup.php:41 mod/contacts.php:586 mod/contacts.php:939 +#: mod/viewcontacts.php:97 #, php-format msgid "Visit %s's profile [%s]" msgstr "" -#: mod/nogroup.php:42 mod/contacts.php:939 +#: mod/nogroup.php:42 mod/contacts.php:940 msgid "Edit contact" msgstr "" @@ -3725,18 +3406,6 @@ msgstr "" msgid "Contacts who are not members of a group" msgstr "" -#: mod/match.php:33 -msgid "No keywords to match. Please add keywords to your default profile." -msgstr "" - -#: mod/match.php:84 -msgid "is interested in:" -msgstr "" - -#: mod/match.php:98 -msgid "Profile Match" -msgstr "" - #: mod/uexport.php:29 msgid "Export account" msgstr "" @@ -3833,8 +3502,8 @@ msgstr "" msgid "Enter email addresses, one per line:" msgstr "" -#: mod/invite.php:134 mod/wallmessage.php:151 mod/message.php:337 -#: mod/message.php:519 +#: mod/invite.php:134 mod/wallmessage.php:151 mod/message.php:351 +#: mod/message.php:541 msgid "Your message:" msgstr "" @@ -3859,19 +3528,26 @@ msgid "" "important, please visit http://friendica.com" msgstr "" -#: mod/fbrowser.php:41 mod/fbrowser.php:62 mod/photos.php:62 -#: mod/photos.php:192 mod/photos.php:1106 mod/photos.php:1232 -#: mod/photos.php:1255 mod/photos.php:1825 mod/photos.php:1837 -#: view/theme/diabook/theme.php:499 -msgid "Contact Photos" +#: mod/invite.php:140 mod/localtime.php:45 mod/message.php:357 +#: mod/message.php:547 mod/manage.php:143 mod/crepair.php:154 +#: mod/content.php:728 mod/fsuggest.php:107 mod/mood.php:137 mod/poke.php:199 +#: mod/profiles.php:688 mod/contacts.php:577 mod/events.php:506 +#: mod/install.php:272 mod/install.php:312 mod/photos.php:1104 +#: mod/photos.php:1226 mod/photos.php:1539 mod/photos.php:1590 +#: mod/photos.php:1638 mod/photos.php:1724 object/Item.php:720 +#: view/theme/frio/config.php:59 view/theme/cleanzero/config.php:80 +#: view/theme/quattro/config.php:64 view/theme/dispy/config.php:70 +#: view/theme/vier/config.php:107 view/theme/diabook/theme.php:633 +#: view/theme/diabook/config.php:148 view/theme/duepuntozero/config.php:59 +msgid "Submit" msgstr "" #: mod/fbrowser.php:133 msgid "Files" msgstr "" -#: mod/maintenance.php:5 -msgid "System down for maintenance" +#: mod/profperm.php:19 mod/group.php:72 index.php:396 +msgid "Permission denied" msgstr "" #: mod/profperm.php:25 mod/profperm.php:56 @@ -3894,102 +3570,6 @@ msgstr "" msgid "All Contacts (with secure profile access)" msgstr "" -#: mod/viewcontacts.php:72 -msgid "No contacts." -msgstr "" - -#: mod/crepair.php:87 -msgid "Contact settings applied." -msgstr "" - -#: mod/crepair.php:89 -msgid "Contact update failed." -msgstr "" - -#: mod/crepair.php:120 -msgid "" -"WARNING: This is highly advanced and if you enter incorrect " -"information your communications with this contact may stop working." -msgstr "" - -#: mod/crepair.php:121 -msgid "" -"Please use your browser 'Back' button now if you are " -"uncertain what to do on this page." -msgstr "" - -#: mod/crepair.php:134 mod/crepair.php:136 -msgid "No mirroring" -msgstr "" - -#: mod/crepair.php:134 -msgid "Mirror as forwarded posting" -msgstr "" - -#: mod/crepair.php:134 mod/crepair.php:136 -msgid "Mirror as my own posting" -msgstr "" - -#: mod/crepair.php:150 -msgid "Return to contact editor" -msgstr "" - -#: mod/crepair.php:152 -msgid "Refetch contact data" -msgstr "" - -#: mod/crepair.php:153 mod/admin.php:1361 mod/admin.php:1374 -#: mod/admin.php:1386 mod/admin.php:1402 mod/settings.php:665 -#: mod/settings.php:691 -msgid "Name" -msgstr "" - -#: mod/crepair.php:154 -msgid "Account Nickname" -msgstr "" - -#: mod/crepair.php:155 -msgid "@Tagname - overrides Name/Nickname" -msgstr "" - -#: mod/crepair.php:156 -msgid "Account URL" -msgstr "" - -#: mod/crepair.php:157 -msgid "Friend Request URL" -msgstr "" - -#: mod/crepair.php:158 -msgid "Friend Confirm URL" -msgstr "" - -#: mod/crepair.php:159 -msgid "Notification Endpoint URL" -msgstr "" - -#: mod/crepair.php:160 -msgid "Poll/Feed URL" -msgstr "" - -#: mod/crepair.php:161 -msgid "New photo from this URL" -msgstr "" - -#: mod/crepair.php:162 -msgid "Remote Self" -msgstr "" - -#: mod/crepair.php:165 -msgid "Mirror postings from this contact" -msgstr "" - -#: mod/crepair.php:167 -msgid "" -"Mark this contact as remote_self, this will cause friendica to repost new " -"entries from this contact." -msgstr "" - #: mod/tagrm.php:41 msgid "Tag removed" msgstr "" @@ -4006,1386 +3586,6 @@ msgstr "" msgid "Remove" msgstr "" -#: mod/ping.php:267 -msgid "{0} wants to be your friend" -msgstr "" - -#: mod/ping.php:282 -msgid "{0} sent you a message" -msgstr "" - -#: mod/ping.php:297 -msgid "{0} requested registration" -msgstr "" - -#: mod/admin.php:92 -msgid "Theme settings updated." -msgstr "" - -#: mod/admin.php:156 mod/admin.php:913 -msgid "Site" -msgstr "" - -#: mod/admin.php:157 mod/admin.php:857 mod/admin.php:1369 mod/admin.php:1384 -msgid "Users" -msgstr "" - -#: mod/admin.php:158 mod/admin.php:1486 mod/admin.php:1546 mod/settings.php:74 -msgid "Plugins" -msgstr "" - -#: mod/admin.php:159 mod/admin.php:1744 mod/admin.php:1794 -msgid "Themes" -msgstr "" - -#: mod/admin.php:160 mod/settings.php:52 -msgid "Additional features" -msgstr "" - -#: mod/admin.php:161 -msgid "DB updates" -msgstr "" - -#: mod/admin.php:162 mod/admin.php:394 -msgid "Inspect Queue" -msgstr "" - -#: mod/admin.php:163 mod/admin.php:363 -msgid "Federation Statistics" -msgstr "" - -#: mod/admin.php:177 mod/admin.php:188 mod/admin.php:1862 -msgid "Logs" -msgstr "" - -#: mod/admin.php:178 mod/admin.php:1929 -msgid "View Logs" -msgstr "" - -#: mod/admin.php:179 -msgid "probe address" -msgstr "" - -#: mod/admin.php:180 -msgid "check webfinger" -msgstr "" - -#: mod/admin.php:187 -msgid "Plugin Features" -msgstr "" - -#: mod/admin.php:189 -msgid "diagnostics" -msgstr "" - -#: mod/admin.php:190 -msgid "User registrations waiting for confirmation" -msgstr "" - -#: mod/admin.php:356 -msgid "" -"This page offers you some numbers to the known part of the federated social " -"network your Friendica node is part of. These numbers are not complete but " -"only reflect the part of the network your node is aware of." -msgstr "" - -#: mod/admin.php:357 -msgid "" -"The Auto Discovered Contact Directory feature is not enabled, it " -"will improve the data displayed here." -msgstr "" - -#: mod/admin.php:362 mod/admin.php:393 mod/admin.php:450 mod/admin.php:912 -#: mod/admin.php:1368 mod/admin.php:1485 mod/admin.php:1545 mod/admin.php:1743 -#: mod/admin.php:1793 mod/admin.php:1861 mod/admin.php:1928 -msgid "Administration" -msgstr "" - -#: mod/admin.php:369 -#, php-format -msgid "Currently this node is aware of %d nodes from the following platforms:" -msgstr "" - -#: mod/admin.php:396 -msgid "ID" -msgstr "" - -#: mod/admin.php:397 -msgid "Recipient Name" -msgstr "" - -#: mod/admin.php:398 -msgid "Recipient Profile" -msgstr "" - -#: mod/admin.php:400 -msgid "Created" -msgstr "" - -#: mod/admin.php:401 -msgid "Last Tried" -msgstr "" - -#: mod/admin.php:402 -msgid "" -"This page lists the content of the queue for outgoing postings. These are " -"postings the initial delivery failed for. They will be resend later and " -"eventually deleted if the delivery fails permanently." -msgstr "" - -#: mod/admin.php:421 mod/admin.php:1317 -msgid "Normal Account" -msgstr "" - -#: mod/admin.php:422 mod/admin.php:1318 -msgid "Soapbox Account" -msgstr "" - -#: mod/admin.php:423 mod/admin.php:1319 -msgid "Community/Celebrity Account" -msgstr "" - -#: mod/admin.php:424 mod/admin.php:1320 -msgid "Automatic Friend Account" -msgstr "" - -#: mod/admin.php:425 -msgid "Blog Account" -msgstr "" - -#: mod/admin.php:426 -msgid "Private Forum" -msgstr "" - -#: mod/admin.php:445 -msgid "Message queues" -msgstr "" - -#: mod/admin.php:451 -msgid "Summary" -msgstr "" - -#: mod/admin.php:453 -msgid "Registered users" -msgstr "" - -#: mod/admin.php:455 -msgid "Pending registrations" -msgstr "" - -#: mod/admin.php:456 -msgid "Version" -msgstr "" - -#: mod/admin.php:461 -msgid "Active plugins" -msgstr "" - -#: mod/admin.php:484 -msgid "Can not parse base url. Must have at least ://" -msgstr "" - -#: mod/admin.php:785 -msgid "RINO2 needs mcrypt php extension to work." -msgstr "" - -#: mod/admin.php:793 -msgid "Site settings updated." -msgstr "" - -#: mod/admin.php:821 mod/settings.php:919 -msgid "No special theme for mobile devices" -msgstr "" - -#: mod/admin.php:840 -msgid "No community page" -msgstr "" - -#: mod/admin.php:841 -msgid "Public postings from users of this site" -msgstr "" - -#: mod/admin.php:842 -msgid "Global community page" -msgstr "" - -#: mod/admin.php:847 mod/contacts.php:529 -msgid "Never" -msgstr "" - -#: mod/admin.php:848 -msgid "At post arrival" -msgstr "" - -#: mod/admin.php:856 mod/contacts.php:556 -msgid "Disabled" -msgstr "" - -#: mod/admin.php:858 -msgid "Users, Global Contacts" -msgstr "" - -#: mod/admin.php:859 -msgid "Users, Global Contacts/fallback" -msgstr "" - -#: mod/admin.php:863 -msgid "One month" -msgstr "" - -#: mod/admin.php:864 -msgid "Three months" -msgstr "" - -#: mod/admin.php:865 -msgid "Half a year" -msgstr "" - -#: mod/admin.php:866 -msgid "One year" -msgstr "" - -#: mod/admin.php:871 -msgid "Multi user instance" -msgstr "" - -#: mod/admin.php:894 -msgid "Closed" -msgstr "" - -#: mod/admin.php:895 -msgid "Requires approval" -msgstr "" - -#: mod/admin.php:896 -msgid "Open" -msgstr "" - -#: mod/admin.php:900 -msgid "No SSL policy, links will track page SSL state" -msgstr "" - -#: mod/admin.php:901 -msgid "Force all links to use SSL" -msgstr "" - -#: mod/admin.php:902 -msgid "Self-signed certificate, use SSL for local links only (discouraged)" -msgstr "" - -#: mod/admin.php:914 mod/admin.php:1547 mod/admin.php:1795 mod/admin.php:1863 -#: mod/admin.php:2012 mod/settings.php:663 mod/settings.php:773 -#: mod/settings.php:820 mod/settings.php:889 mod/settings.php:976 -#: mod/settings.php:1211 -msgid "Save Settings" -msgstr "" - -#: mod/admin.php:915 mod/register.php:263 -msgid "Registration" -msgstr "" - -#: mod/admin.php:916 -msgid "File upload" -msgstr "" - -#: mod/admin.php:917 -msgid "Policies" -msgstr "" - -#: mod/admin.php:918 mod/contacts.php:862 -msgid "Advanced" -msgstr "" - -#: mod/admin.php:919 -msgid "Auto Discovered Contact Directory" -msgstr "" - -#: mod/admin.php:920 -msgid "Performance" -msgstr "" - -#: mod/admin.php:921 -msgid "Worker" -msgstr "" - -#: mod/admin.php:922 -msgid "" -"Relocate - WARNING: advanced function. Could make this server unreachable." -msgstr "" - -#: mod/admin.php:925 -msgid "Site name" -msgstr "" - -#: mod/admin.php:926 -msgid "Host name" -msgstr "" - -#: mod/admin.php:927 -msgid "Sender Email" -msgstr "" - -#: mod/admin.php:927 -msgid "" -"The email address your server shall use to send notification emails from." -msgstr "" - -#: mod/admin.php:928 -msgid "Banner/Logo" -msgstr "" - -#: mod/admin.php:929 -msgid "Shortcut icon" -msgstr "" - -#: mod/admin.php:929 -msgid "Link to an icon that will be used for browsers." -msgstr "" - -#: mod/admin.php:930 -msgid "Touch icon" -msgstr "" - -#: mod/admin.php:930 -msgid "Link to an icon that will be used for tablets and mobiles." -msgstr "" - -#: mod/admin.php:931 -msgid "Additional Info" -msgstr "" - -#: mod/admin.php:931 -#, php-format -msgid "" -"For public servers: you can add additional information here that will be " -"listed at %s/siteinfo." -msgstr "" - -#: mod/admin.php:932 -msgid "System language" -msgstr "" - -#: mod/admin.php:933 -msgid "System theme" -msgstr "" - -#: mod/admin.php:933 -msgid "" -"Default system theme - may be over-ridden by user profiles - change theme settings" -msgstr "" - -#: mod/admin.php:934 -msgid "Mobile system theme" -msgstr "" - -#: mod/admin.php:934 -msgid "Theme for mobile devices" -msgstr "" - -#: mod/admin.php:935 -msgid "SSL link policy" -msgstr "" - -#: mod/admin.php:935 -msgid "Determines whether generated links should be forced to use SSL" -msgstr "" - -#: mod/admin.php:936 -msgid "Force SSL" -msgstr "" - -#: mod/admin.php:936 -msgid "" -"Force all Non-SSL requests to SSL - Attention: on some systems it could lead " -"to endless loops." -msgstr "" - -#: mod/admin.php:937 -msgid "Old style 'Share'" -msgstr "" - -#: mod/admin.php:937 -msgid "Deactivates the bbcode element 'share' for repeating items." -msgstr "" - -#: mod/admin.php:938 -msgid "Hide help entry from navigation menu" -msgstr "" - -#: mod/admin.php:938 -msgid "" -"Hides the menu entry for the Help pages from the navigation menu. You can " -"still access it calling /help directly." -msgstr "" - -#: mod/admin.php:939 -msgid "Single user instance" -msgstr "" - -#: mod/admin.php:939 -msgid "Make this instance multi-user or single-user for the named user" -msgstr "" - -#: mod/admin.php:940 -msgid "Maximum image size" -msgstr "" - -#: mod/admin.php:940 -msgid "" -"Maximum size in bytes of uploaded images. Default is 0, which means no " -"limits." -msgstr "" - -#: mod/admin.php:941 -msgid "Maximum image length" -msgstr "" - -#: mod/admin.php:941 -msgid "" -"Maximum length in pixels of the longest side of uploaded images. Default is " -"-1, which means no limits." -msgstr "" - -#: mod/admin.php:942 -msgid "JPEG image quality" -msgstr "" - -#: mod/admin.php:942 -msgid "" -"Uploaded JPEGS will be saved at this quality setting [0-100]. Default is " -"100, which is full quality." -msgstr "" - -#: mod/admin.php:944 -msgid "Register policy" -msgstr "" - -#: mod/admin.php:945 -msgid "Maximum Daily Registrations" -msgstr "" - -#: mod/admin.php:945 -msgid "" -"If registration is permitted above, this sets the maximum number of new user " -"registrations to accept per day. If register is set to closed, this setting " -"has no effect." -msgstr "" - -#: mod/admin.php:946 -msgid "Register text" -msgstr "" - -#: mod/admin.php:946 -msgid "Will be displayed prominently on the registration page." -msgstr "" - -#: mod/admin.php:947 -msgid "Accounts abandoned after x days" -msgstr "" - -#: mod/admin.php:947 -msgid "" -"Will not waste system resources polling external sites for abandonded " -"accounts. Enter 0 for no time limit." -msgstr "" - -#: mod/admin.php:948 -msgid "Allowed friend domains" -msgstr "" - -#: mod/admin.php:948 -msgid "" -"Comma separated list of domains which are allowed to establish friendships " -"with this site. Wildcards are accepted. Empty to allow any domains" -msgstr "" - -#: mod/admin.php:949 -msgid "Allowed email domains" -msgstr "" - -#: mod/admin.php:949 -msgid "" -"Comma separated list of domains which are allowed in email addresses for " -"registrations to this site. Wildcards are accepted. Empty to allow any " -"domains" -msgstr "" - -#: mod/admin.php:950 -msgid "Block public" -msgstr "" - -#: mod/admin.php:950 -msgid "" -"Check to block public access to all otherwise public personal pages on this " -"site unless you are currently logged in." -msgstr "" - -#: mod/admin.php:951 -msgid "Force publish" -msgstr "" - -#: mod/admin.php:951 -msgid "" -"Check to force all profiles on this site to be listed in the site directory." -msgstr "" - -#: mod/admin.php:952 -msgid "Global directory URL" -msgstr "" - -#: mod/admin.php:952 -msgid "" -"URL to the global directory. If this is not set, the global directory is " -"completely unavailable to the application." -msgstr "" - -#: mod/admin.php:953 -msgid "Allow threaded items" -msgstr "" - -#: mod/admin.php:953 -msgid "Allow infinite level threading for items on this site." -msgstr "" - -#: mod/admin.php:954 -msgid "Private posts by default for new users" -msgstr "" - -#: mod/admin.php:954 -msgid "" -"Set default post permissions for all new members to the default privacy " -"group rather than public." -msgstr "" - -#: mod/admin.php:955 -msgid "Don't include post content in email notifications" -msgstr "" - -#: mod/admin.php:955 -msgid "" -"Don't include the content of a post/comment/private message/etc. in the " -"email notifications that are sent out from this site, as a privacy measure." -msgstr "" - -#: mod/admin.php:956 -msgid "Disallow public access to addons listed in the apps menu." -msgstr "" - -#: mod/admin.php:956 -msgid "" -"Checking this box will restrict addons listed in the apps menu to members " -"only." -msgstr "" - -#: mod/admin.php:957 -msgid "Don't embed private images in posts" -msgstr "" - -#: mod/admin.php:957 -msgid "" -"Don't replace locally-hosted private photos in posts with an embedded copy " -"of the image. This means that contacts who receive posts containing private " -"photos will have to authenticate and load each image, which may take a while." -msgstr "" - -#: mod/admin.php:958 -msgid "Allow Users to set remote_self" -msgstr "" - -#: mod/admin.php:958 -msgid "" -"With checking this, every user is allowed to mark every contact as a " -"remote_self in the repair contact dialog. Setting this flag on a contact " -"causes mirroring every posting of that contact in the users stream." -msgstr "" - -#: mod/admin.php:959 -msgid "Block multiple registrations" -msgstr "" - -#: mod/admin.php:959 -msgid "Disallow users to register additional accounts for use as pages." -msgstr "" - -#: mod/admin.php:960 -msgid "OpenID support" -msgstr "" - -#: mod/admin.php:960 -msgid "OpenID support for registration and logins." -msgstr "" - -#: mod/admin.php:961 -msgid "Fullname check" -msgstr "" - -#: mod/admin.php:961 -msgid "" -"Force users to register with a space between firstname and lastname in Full " -"name, as an antispam measure" -msgstr "" - -#: mod/admin.php:962 -msgid "UTF-8 Regular expressions" -msgstr "" - -#: mod/admin.php:962 -msgid "Use PHP UTF8 regular expressions" -msgstr "" - -#: mod/admin.php:963 -msgid "Community Page Style" -msgstr "" - -#: mod/admin.php:963 -msgid "" -"Type of community page to show. 'Global community' shows every public " -"posting from an open distributed network that arrived on this server." -msgstr "" - -#: mod/admin.php:964 -msgid "Posts per user on community page" -msgstr "" - -#: mod/admin.php:964 -msgid "" -"The maximum number of posts per user on the community page. (Not valid for " -"'Global Community')" -msgstr "" - -#: mod/admin.php:965 -msgid "Enable OStatus support" -msgstr "" - -#: mod/admin.php:965 -msgid "" -"Provide built-in OStatus (StatusNet, GNU Social etc.) compatibility. All " -"communications in OStatus are public, so privacy warnings will be " -"occasionally displayed." -msgstr "" - -#: mod/admin.php:966 -msgid "OStatus conversation completion interval" -msgstr "" - -#: mod/admin.php:966 -msgid "" -"How often shall the poller check for new entries in OStatus conversations? " -"This can be a very ressource task." -msgstr "" - -#: mod/admin.php:967 -msgid "Only import OStatus threads from our contacts" -msgstr "" - -#: mod/admin.php:967 -msgid "" -"Normally we import every content from our OStatus contacts. With this option " -"we only store threads that are started by a contact that is known on our " -"system." -msgstr "" - -#: mod/admin.php:968 -msgid "OStatus support can only be enabled if threading is enabled." -msgstr "" - -#: mod/admin.php:970 -msgid "" -"Diaspora support can't be enabled because Friendica was installed into a sub " -"directory." -msgstr "" - -#: mod/admin.php:971 -msgid "Enable Diaspora support" -msgstr "" - -#: mod/admin.php:971 -msgid "Provide built-in Diaspora network compatibility." -msgstr "" - -#: mod/admin.php:972 -msgid "Only allow Friendica contacts" -msgstr "" - -#: mod/admin.php:972 -msgid "" -"All contacts must use Friendica protocols. All other built-in communication " -"protocols disabled." -msgstr "" - -#: mod/admin.php:973 -msgid "Verify SSL" -msgstr "" - -#: mod/admin.php:973 -msgid "" -"If you wish, you can turn on strict certificate checking. This will mean you " -"cannot connect (at all) to self-signed SSL sites." -msgstr "" - -#: mod/admin.php:974 -msgid "Proxy user" -msgstr "" - -#: mod/admin.php:975 -msgid "Proxy URL" -msgstr "" - -#: mod/admin.php:976 -msgid "Network timeout" -msgstr "" - -#: mod/admin.php:976 -msgid "Value is in seconds. Set to 0 for unlimited (not recommended)." -msgstr "" - -#: mod/admin.php:977 -msgid "Delivery interval" -msgstr "" - -#: mod/admin.php:977 -msgid "" -"Delay background delivery processes by this many seconds to reduce system " -"load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 " -"for large dedicated servers." -msgstr "" - -#: mod/admin.php:978 -msgid "Poll interval" -msgstr "" - -#: mod/admin.php:978 -msgid "" -"Delay background polling processes by this many seconds to reduce system " -"load. If 0, use delivery interval." -msgstr "" - -#: mod/admin.php:979 -msgid "Maximum Load Average" -msgstr "" - -#: mod/admin.php:979 -msgid "" -"Maximum system load before delivery and poll processes are deferred - " -"default 50." -msgstr "" - -#: mod/admin.php:980 -msgid "Maximum Load Average (Frontend)" -msgstr "" - -#: mod/admin.php:980 -msgid "Maximum system load before the frontend quits service - default 50." -msgstr "" - -#: mod/admin.php:981 -msgid "Maximum table size for optimization" -msgstr "" - -#: mod/admin.php:981 -msgid "" -"Maximum table size (in MB) for the automatic optimization - default 100 MB. " -"Enter -1 to disable it." -msgstr "" - -#: mod/admin.php:982 -msgid "Minimum level of fragmentation" -msgstr "" - -#: mod/admin.php:982 -msgid "" -"Minimum fragmenation level to start the automatic optimization - default " -"value is 30%." -msgstr "" - -#: mod/admin.php:984 -msgid "Periodical check of global contacts" -msgstr "" - -#: mod/admin.php:984 -msgid "" -"If enabled, the global contacts are checked periodically for missing or " -"outdated data and the vitality of the contacts and servers." -msgstr "" - -#: mod/admin.php:985 -msgid "Days between requery" -msgstr "" - -#: mod/admin.php:985 -msgid "Number of days after which a server is requeried for his contacts." -msgstr "" - -#: mod/admin.php:986 -msgid "Discover contacts from other servers" -msgstr "" - -#: mod/admin.php:986 -msgid "" -"Periodically query other servers for contacts. You can choose between " -"'users': the users on the remote system, 'Global Contacts': active contacts " -"that are known on the system. The fallback is meant for Redmatrix servers " -"and older friendica servers, where global contacts weren't available. The " -"fallback increases the server load, so the recommened setting is 'Users, " -"Global Contacts'." -msgstr "" - -#: mod/admin.php:987 -msgid "Timeframe for fetching global contacts" -msgstr "" - -#: mod/admin.php:987 -msgid "" -"When the discovery is activated, this value defines the timeframe for the " -"activity of the global contacts that are fetched from other servers." -msgstr "" - -#: mod/admin.php:988 -msgid "Search the local directory" -msgstr "" - -#: mod/admin.php:988 -msgid "" -"Search the local directory instead of the global directory. When searching " -"locally, every search will be executed on the global directory in the " -"background. This improves the search results when the search is repeated." -msgstr "" - -#: mod/admin.php:990 -msgid "Publish server information" -msgstr "" - -#: mod/admin.php:990 -msgid "" -"If enabled, general server and usage data will be published. The data " -"contains the name and version of the server, number of users with public " -"profiles, number of posts and the activated protocols and connectors. See the-federation.info for details." -msgstr "" - -#: mod/admin.php:992 -msgid "Use MySQL full text engine" -msgstr "" - -#: mod/admin.php:992 -msgid "" -"Activates the full text engine. Speeds up search - but can only search for " -"four and more characters." -msgstr "" - -#: mod/admin.php:993 -msgid "Suppress Language" -msgstr "" - -#: mod/admin.php:993 -msgid "Suppress language information in meta information about a posting." -msgstr "" - -#: mod/admin.php:994 -msgid "Suppress Tags" -msgstr "" - -#: mod/admin.php:994 -msgid "Suppress showing a list of hashtags at the end of the posting." -msgstr "" - -#: mod/admin.php:995 -msgid "Path to item cache" -msgstr "" - -#: mod/admin.php:995 -msgid "The item caches buffers generated bbcode and external images." -msgstr "" - -#: mod/admin.php:996 -msgid "Cache duration in seconds" -msgstr "" - -#: mod/admin.php:996 -msgid "" -"How long should the cache files be hold? Default value is 86400 seconds (One " -"day). To disable the item cache, set the value to -1." -msgstr "" - -#: mod/admin.php:997 -msgid "Maximum numbers of comments per post" -msgstr "" - -#: mod/admin.php:997 -msgid "How much comments should be shown for each post? Default value is 100." -msgstr "" - -#: mod/admin.php:998 -msgid "Path for lock file" -msgstr "" - -#: mod/admin.php:998 -msgid "" -"The lock file is used to avoid multiple pollers at one time. Only define a " -"folder here." -msgstr "" - -#: mod/admin.php:999 -msgid "Temp path" -msgstr "" - -#: mod/admin.php:999 -msgid "" -"If you have a restricted system where the webserver can't access the system " -"temp path, enter another path here." -msgstr "" - -#: mod/admin.php:1000 -msgid "Base path to installation" -msgstr "" - -#: mod/admin.php:1000 -msgid "" -"If the system cannot detect the correct path to your installation, enter the " -"correct path here. This setting should only be set if you are using a " -"restricted system and symbolic links to your webroot." -msgstr "" - -#: mod/admin.php:1001 -msgid "Disable picture proxy" -msgstr "" - -#: mod/admin.php:1001 -msgid "" -"The picture proxy increases performance and privacy. It shouldn't be used on " -"systems with very low bandwith." -msgstr "" - -#: mod/admin.php:1002 -msgid "Enable old style pager" -msgstr "" - -#: mod/admin.php:1002 -msgid "" -"The old style pager has page numbers but slows down massively the page speed." -msgstr "" - -#: mod/admin.php:1003 -msgid "Only search in tags" -msgstr "" - -#: mod/admin.php:1003 -msgid "On large systems the text search can slow down the system extremely." -msgstr "" - -#: mod/admin.php:1005 -msgid "New base url" -msgstr "" - -#: mod/admin.php:1005 -msgid "" -"Change base url for this server. Sends relocate message to all DFRN contacts " -"of all users." -msgstr "" - -#: mod/admin.php:1007 -msgid "RINO Encryption" -msgstr "" - -#: mod/admin.php:1007 -msgid "Encryption layer between nodes." -msgstr "" - -#: mod/admin.php:1008 -msgid "Embedly API key" -msgstr "" - -#: mod/admin.php:1008 -msgid "" -"Embedly is used to fetch additional data for " -"web pages. This is an optional parameter." -msgstr "" - -#: mod/admin.php:1010 -msgid "Enable 'worker' background processing" -msgstr "" - -#: mod/admin.php:1010 -msgid "" -"The worker background processing limits the number of parallel background " -"jobs to a maximum number and respects the system load." -msgstr "" - -#: mod/admin.php:1011 -msgid "Maximum number of parallel workers" -msgstr "" - -#: mod/admin.php:1011 -msgid "" -"On shared hosters set this to 2. On larger systems, values of 10 are great. " -"Default value is 4." -msgstr "" - -#: mod/admin.php:1012 -msgid "Don't use 'proc_open' with the worker" -msgstr "" - -#: mod/admin.php:1012 -msgid "" -"Enable this if your system doesn't allow the use of 'proc_open'. This can " -"happen on shared hosters. If this is enabled you should increase the " -"frequency of poller calls in your crontab." -msgstr "" - -#: mod/admin.php:1041 -msgid "Update has been marked successful" -msgstr "" - -#: mod/admin.php:1049 -#, php-format -msgid "Database structure update %s was successfully applied." -msgstr "" - -#: mod/admin.php:1052 -#, php-format -msgid "Executing of database structure update %s failed with error: %s" -msgstr "" - -#: mod/admin.php:1064 -#, php-format -msgid "Executing %s failed with error: %s" -msgstr "" - -#: mod/admin.php:1067 -#, php-format -msgid "Update %s was successfully applied." -msgstr "" - -#: mod/admin.php:1071 -#, php-format -msgid "Update %s did not return a status. Unknown if it succeeded." -msgstr "" - -#: mod/admin.php:1073 -#, php-format -msgid "There was no additional update function %s that needed to be called." -msgstr "" - -#: mod/admin.php:1092 -msgid "No failed updates." -msgstr "" - -#: mod/admin.php:1093 -msgid "Check database structure" -msgstr "" - -#: mod/admin.php:1098 -msgid "Failed Updates" -msgstr "" - -#: mod/admin.php:1099 -msgid "" -"This does not include updates prior to 1139, which did not return a status." -msgstr "" - -#: mod/admin.php:1100 -msgid "Mark success (if update was manually applied)" -msgstr "" - -#: mod/admin.php:1101 -msgid "Attempt to execute this update step automatically" -msgstr "" - -#: mod/admin.php:1133 -#, php-format -msgid "" -"\n" -"\t\t\tDear %1$s,\n" -"\t\t\t\tthe administrator of %2$s has set up an account for you." -msgstr "" - -#: mod/admin.php:1136 -#, php-format -msgid "" -"\n" -"\t\t\tThe login details are as follows:\n" -"\n" -"\t\t\tSite Location:\t%1$s\n" -"\t\t\tLogin Name:\t\t%2$s\n" -"\t\t\tPassword:\t\t%3$s\n" -"\n" -"\t\t\tYou may change your password from your account \"Settings\" page after " -"logging\n" -"\t\t\tin.\n" -"\n" -"\t\t\tPlease take a few moments to review the other account settings on that " -"page.\n" -"\n" -"\t\t\tYou may also wish to add some basic information to your default " -"profile\n" -"\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n" -"\n" -"\t\t\tWe recommend setting your full name, adding a profile photo,\n" -"\t\t\tadding some profile \"keywords\" (very useful in making new friends) - " -"and\n" -"\t\t\tperhaps what country you live in; if you do not wish to be more " -"specific\n" -"\t\t\tthan that.\n" -"\n" -"\t\t\tWe fully respect your right to privacy, and none of these items are " -"necessary.\n" -"\t\t\tIf you are new and do not know anybody here, they may help\n" -"\t\t\tyou to make some new and interesting friends.\n" -"\n" -"\t\t\tThank you and welcome to %4$s." -msgstr "" - -#: mod/admin.php:1180 -#, php-format -msgid "%s user blocked/unblocked" -msgid_plural "%s users blocked/unblocked" -msgstr[0] "" -msgstr[1] "" - -#: mod/admin.php:1187 -#, php-format -msgid "%s user deleted" -msgid_plural "%s users deleted" -msgstr[0] "" -msgstr[1] "" - -#: mod/admin.php:1234 -#, php-format -msgid "User '%s' deleted" -msgstr "" - -#: mod/admin.php:1242 -#, php-format -msgid "User '%s' unblocked" -msgstr "" - -#: mod/admin.php:1242 -#, php-format -msgid "User '%s' blocked" -msgstr "" - -#: mod/admin.php:1361 mod/admin.php:1386 -msgid "Register date" -msgstr "" - -#: mod/admin.php:1361 mod/admin.php:1386 -msgid "Last login" -msgstr "" - -#: mod/admin.php:1361 mod/admin.php:1386 -msgid "Last item" -msgstr "" - -#: mod/admin.php:1361 mod/settings.php:43 -msgid "Account" -msgstr "" - -#: mod/admin.php:1370 -msgid "Add User" -msgstr "" - -#: mod/admin.php:1371 -msgid "select all" -msgstr "" - -#: mod/admin.php:1372 -msgid "User registrations waiting for confirm" -msgstr "" - -#: mod/admin.php:1373 -msgid "User waiting for permanent deletion" -msgstr "" - -#: mod/admin.php:1374 -msgid "Request date" -msgstr "" - -#: mod/admin.php:1375 -msgid "No registrations." -msgstr "" - -#: mod/admin.php:1377 -msgid "Deny" -msgstr "" - -#: mod/admin.php:1379 mod/contacts.php:603 mod/contacts.php:798 -#: mod/contacts.php:991 -msgid "Block" -msgstr "" - -#: mod/admin.php:1380 mod/contacts.php:603 mod/contacts.php:798 -#: mod/contacts.php:991 -msgid "Unblock" -msgstr "" - -#: mod/admin.php:1381 -msgid "Site admin" -msgstr "" - -#: mod/admin.php:1382 -msgid "Account expired" -msgstr "" - -#: mod/admin.php:1385 -msgid "New User" -msgstr "" - -#: mod/admin.php:1386 -msgid "Deleted since" -msgstr "" - -#: mod/admin.php:1391 -msgid "" -"Selected users will be deleted!\\n\\nEverything these users had posted on " -"this site will be permanently deleted!\\n\\nAre you sure?" -msgstr "" - -#: mod/admin.php:1392 -msgid "" -"The user {0} will be deleted!\\n\\nEverything this user has posted on this " -"site will be permanently deleted!\\n\\nAre you sure?" -msgstr "" - -#: mod/admin.php:1402 -msgid "Name of the new user." -msgstr "" - -#: mod/admin.php:1403 -msgid "Nickname" -msgstr "" - -#: mod/admin.php:1403 -msgid "Nickname of the new user." -msgstr "" - -#: mod/admin.php:1404 -msgid "Email address of the new user." -msgstr "" - -#: mod/admin.php:1447 -#, php-format -msgid "Plugin %s disabled." -msgstr "" - -#: mod/admin.php:1451 -#, php-format -msgid "Plugin %s enabled." -msgstr "" - -#: mod/admin.php:1462 mod/admin.php:1698 -msgid "Disable" -msgstr "" - -#: mod/admin.php:1464 mod/admin.php:1700 -msgid "Enable" -msgstr "" - -#: mod/admin.php:1487 mod/admin.php:1745 -msgid "Toggle" -msgstr "" - -#: mod/admin.php:1495 mod/admin.php:1754 -msgid "Author: " -msgstr "" - -#: mod/admin.php:1496 mod/admin.php:1755 -msgid "Maintainer: " -msgstr "" - -#: mod/admin.php:1548 -msgid "Reload active plugins" -msgstr "" - -#: mod/admin.php:1553 -#, php-format -msgid "" -"There are currently no plugins available on your node. You can find the " -"official plugin repository at %1$s and might find other interesting plugins " -"in the open plugin registry at %2$s" -msgstr "" - -#: mod/admin.php:1658 -msgid "No themes found." -msgstr "" - -#: mod/admin.php:1736 -msgid "Screenshot" -msgstr "" - -#: mod/admin.php:1796 -msgid "Reload active themes" -msgstr "" - -#: mod/admin.php:1801 -#, php-format -msgid "No themes found on the system. They should be paced in %1$s" -msgstr "" - -#: mod/admin.php:1802 -msgid "[Experimental]" -msgstr "" - -#: mod/admin.php:1803 -msgid "[Unsupported]" -msgstr "" - -#: mod/admin.php:1827 -msgid "Log settings updated." -msgstr "" - -#: mod/admin.php:1864 -msgid "Clear" -msgstr "" - -#: mod/admin.php:1869 -msgid "Enable Debugging" -msgstr "" - -#: mod/admin.php:1870 -msgid "Log file" -msgstr "" - -#: mod/admin.php:1870 -msgid "" -"Must be writable by web server. Relative to your Friendica top-level " -"directory." -msgstr "" - -#: mod/admin.php:1871 -msgid "Log level" -msgstr "" - -#: mod/admin.php:1874 -msgid "PHP logging" -msgstr "" - -#: mod/admin.php:1875 -msgid "" -"To enable logging of PHP errors and warnings you can add the following to " -"the .htconfig.php file of your installation. The filename set in the " -"'error_log' line is relative to the friendica top-level directory and must " -"be writeable by the web server. The option '1' for 'log_errors' and " -"'display_errors' is to enable these options, set to '0' to disable them." -msgstr "" - -#: mod/admin.php:2001 mod/admin.php:2002 mod/settings.php:763 -msgid "Off" -msgstr "" - -#: mod/admin.php:2001 mod/admin.php:2002 mod/settings.php:763 -msgid "On" -msgstr "" - -#: mod/admin.php:2002 -#, php-format -msgid "Lock feature %s" -msgstr "" - -#: mod/admin.php:2010 -msgid "Manage Additional Features" -msgstr "" - #: mod/wall_attach.php:94 msgid "Sorry, maybe your upload is bigger than the PHP configuration allows" msgstr "" @@ -5403,136 +3603,6 @@ msgstr "" msgid "File upload failed." msgstr "" -#: mod/allfriends.php:43 -msgid "No friends to display." -msgstr "" - -#: mod/content.php:119 mod/network.php:549 -msgid "No such group" -msgstr "" - -#: mod/content.php:130 mod/network.php:576 mod/group.php:193 -msgid "Group is empty" -msgstr "" - -#: mod/content.php:135 mod/network.php:580 -#, php-format -msgid "Group: %s" -msgstr "" - -#: mod/content.php:605 object/Item.php:419 -#, php-format -msgid "%d comment" -msgid_plural "%d comments" -msgstr[0] "" -msgstr[1] "" - -#: mod/content.php:622 mod/photos.php:1405 object/Item.php:117 -msgid "Private Message" -msgstr "" - -#: mod/content.php:686 mod/photos.php:1594 object/Item.php:253 -msgid "I like this (toggle)" -msgstr "" - -#: mod/content.php:686 object/Item.php:253 -msgid "like" -msgstr "" - -#: mod/content.php:687 mod/photos.php:1595 object/Item.php:254 -msgid "I don't like this (toggle)" -msgstr "" - -#: mod/content.php:687 object/Item.php:254 -msgid "dislike" -msgstr "" - -#: mod/content.php:689 object/Item.php:256 -msgid "Share this" -msgstr "" - -#: mod/content.php:689 object/Item.php:256 -msgid "share" -msgstr "" - -#: mod/content.php:709 mod/photos.php:1614 mod/photos.php:1662 -#: mod/photos.php:1750 object/Item.php:707 -msgid "This is you" -msgstr "" - -#: mod/content.php:713 object/Item.php:711 -msgid "Bold" -msgstr "" - -#: mod/content.php:714 object/Item.php:712 -msgid "Italic" -msgstr "" - -#: mod/content.php:715 object/Item.php:713 -msgid "Underline" -msgstr "" - -#: mod/content.php:716 object/Item.php:714 -msgid "Quote" -msgstr "" - -#: mod/content.php:717 object/Item.php:715 -msgid "Code" -msgstr "" - -#: mod/content.php:718 object/Item.php:716 -msgid "Image" -msgstr "" - -#: mod/content.php:719 object/Item.php:717 -msgid "Link" -msgstr "" - -#: mod/content.php:720 object/Item.php:718 -msgid "Video" -msgstr "" - -#: mod/content.php:730 mod/settings.php:725 object/Item.php:122 -#: object/Item.php:124 -msgid "Edit" -msgstr "" - -#: mod/content.php:755 object/Item.php:217 -msgid "add star" -msgstr "" - -#: mod/content.php:756 object/Item.php:218 -msgid "remove star" -msgstr "" - -#: mod/content.php:757 object/Item.php:219 -msgid "toggle star status" -msgstr "" - -#: mod/content.php:760 object/Item.php:222 -msgid "starred" -msgstr "" - -#: mod/content.php:761 object/Item.php:242 -msgid "add tag" -msgstr "" - -#: mod/content.php:765 object/Item.php:137 -msgid "save to folder" -msgstr "" - -#: mod/content.php:856 object/Item.php:359 -msgid "to" -msgstr "" - -#: mod/content.php:857 object/Item.php:361 -msgid "Wall-to-Wall" -msgstr "" - -#: mod/content.php:858 object/Item.php:362 -msgid "via Wall-To-Wall:" -msgstr "" - #: mod/repair_ostatus.php:14 msgid "Resubscribing to OStatus contacts" msgstr "" @@ -5580,333 +3650,6 @@ msgstr "" msgid "No entries." msgstr "" -#: mod/videos.php:123 -msgid "Do you really want to delete this video?" -msgstr "" - -#: mod/videos.php:128 -msgid "Delete Video" -msgstr "" - -#: mod/videos.php:207 -msgid "No videos selected" -msgstr "" - -#: mod/videos.php:308 mod/photos.php:1074 -msgid "Access to this item is restricted." -msgstr "" - -#: mod/videos.php:390 mod/photos.php:1877 -msgid "View Album" -msgstr "" - -#: mod/videos.php:399 -msgid "Recent Videos" -msgstr "" - -#: mod/videos.php:401 -msgid "Upload New Videos" -msgstr "" - -#: mod/profiles.php:37 -msgid "Profile deleted." -msgstr "" - -#: mod/profiles.php:55 mod/profiles.php:89 -msgid "Profile-" -msgstr "" - -#: mod/profiles.php:74 mod/profiles.php:117 -msgid "New profile created." -msgstr "" - -#: mod/profiles.php:95 -msgid "Profile unavailable to clone." -msgstr "" - -#: mod/profiles.php:189 -msgid "Profile Name is required." -msgstr "" - -#: mod/profiles.php:336 -msgid "Marital Status" -msgstr "" - -#: mod/profiles.php:340 -msgid "Romantic Partner" -msgstr "" - -#: mod/profiles.php:352 -msgid "Work/Employment" -msgstr "" - -#: mod/profiles.php:355 -msgid "Religion" -msgstr "" - -#: mod/profiles.php:359 -msgid "Political Views" -msgstr "" - -#: mod/profiles.php:363 -msgid "Gender" -msgstr "" - -#: mod/profiles.php:367 -msgid "Sexual Preference" -msgstr "" - -#: mod/profiles.php:371 -msgid "Homepage" -msgstr "" - -#: mod/profiles.php:375 mod/profiles.php:691 -msgid "Interests" -msgstr "" - -#: mod/profiles.php:379 -msgid "Address" -msgstr "" - -#: mod/profiles.php:386 mod/profiles.php:687 -msgid "Location" -msgstr "" - -#: mod/profiles.php:469 -msgid "Profile updated." -msgstr "" - -#: mod/profiles.php:556 -msgid " and " -msgstr "" - -#: mod/profiles.php:564 -msgid "public profile" -msgstr "" - -#: mod/profiles.php:567 -#, php-format -msgid "%1$s changed %2$s to “%3$s”" -msgstr "" - -#: mod/profiles.php:568 -#, php-format -msgid " - Visit %1$s's %2$s" -msgstr "" - -#: mod/profiles.php:571 -#, php-format -msgid "%1$s has an updated %2$s, changing %3$s." -msgstr "" - -#: mod/profiles.php:638 -msgid "Hide contacts and friends:" -msgstr "" - -#: mod/profiles.php:641 mod/profiles.php:645 mod/profiles.php:670 -#: mod/follow.php:110 mod/dfrn_request.php:853 mod/register.php:239 -#: mod/settings.php:1110 mod/settings.php:1116 mod/settings.php:1124 -#: mod/settings.php:1128 mod/settings.php:1133 mod/settings.php:1139 -#: mod/settings.php:1145 mod/settings.php:1151 mod/settings.php:1177 -#: mod/settings.php:1178 mod/settings.php:1179 mod/settings.php:1180 -#: mod/settings.php:1181 mod/api.php:106 -msgid "No" -msgstr "" - -#: mod/profiles.php:643 -msgid "Hide your contact/friend list from viewers of this profile?" -msgstr "" - -#: mod/profiles.php:667 -msgid "Show more profile fields:" -msgstr "" - -#: mod/profiles.php:678 -msgid "Edit Profile Details" -msgstr "" - -#: mod/profiles.php:680 -msgid "Change Profile Photo" -msgstr "" - -#: mod/profiles.php:681 -msgid "View this profile" -msgstr "" - -#: mod/profiles.php:682 -msgid "Create a new profile using these settings" -msgstr "" - -#: mod/profiles.php:683 -msgid "Clone this profile" -msgstr "" - -#: mod/profiles.php:684 -msgid "Delete this profile" -msgstr "" - -#: mod/profiles.php:685 -msgid "Basic information" -msgstr "" - -#: mod/profiles.php:686 -msgid "Profile picture" -msgstr "" - -#: mod/profiles.php:688 -msgid "Preferences" -msgstr "" - -#: mod/profiles.php:689 -msgid "Status information" -msgstr "" - -#: mod/profiles.php:690 -msgid "Additional information" -msgstr "" - -#: mod/profiles.php:692 mod/newmember.php:36 mod/profile_photo.php:250 -msgid "Upload Profile Photo" -msgstr "" - -#: mod/profiles.php:693 -msgid "Profile Name:" -msgstr "" - -#: mod/profiles.php:694 -msgid "Your Full Name:" -msgstr "" - -#: mod/profiles.php:695 -msgid "Title/Description:" -msgstr "" - -#: mod/profiles.php:696 -msgid "Your Gender:" -msgstr "" - -#: mod/profiles.php:697 -msgid "Birthday :" -msgstr "" - -#: mod/profiles.php:698 -msgid "Street Address:" -msgstr "" - -#: mod/profiles.php:699 -msgid "Locality/City:" -msgstr "" - -#: mod/profiles.php:700 -msgid "Postal/Zip Code:" -msgstr "" - -#: mod/profiles.php:701 -msgid "Country:" -msgstr "" - -#: mod/profiles.php:702 -msgid "Region/State:" -msgstr "" - -#: mod/profiles.php:703 -msgid " Marital Status:" -msgstr "" - -#: mod/profiles.php:704 -msgid "Who: (if applicable)" -msgstr "" - -#: mod/profiles.php:705 -msgid "Examples: cathy123, Cathy Williams, cathy@example.com" -msgstr "" - -#: mod/profiles.php:706 -msgid "Since [date]:" -msgstr "" - -#: mod/profiles.php:708 -msgid "Homepage URL:" -msgstr "" - -#: mod/profiles.php:711 -msgid "Religious Views:" -msgstr "" - -#: mod/profiles.php:712 -msgid "Public Keywords:" -msgstr "" - -#: mod/profiles.php:713 -msgid "Private Keywords:" -msgstr "" - -#: mod/profiles.php:716 -msgid "Example: fishing photography software" -msgstr "" - -#: mod/profiles.php:717 -msgid "(Used for suggesting potential friends, can be seen by others)" -msgstr "" - -#: mod/profiles.php:718 -msgid "(Used for searching profiles, never shown to others)" -msgstr "" - -#: mod/profiles.php:719 -msgid "Tell us about yourself..." -msgstr "" - -#: mod/profiles.php:720 -msgid "Hobbies/Interests" -msgstr "" - -#: mod/profiles.php:721 -msgid "Contact information and Social Networks" -msgstr "" - -#: mod/profiles.php:722 -msgid "Musical interests" -msgstr "" - -#: mod/profiles.php:723 -msgid "Books, literature" -msgstr "" - -#: mod/profiles.php:724 -msgid "Television" -msgstr "" - -#: mod/profiles.php:725 -msgid "Film/dance/culture/entertainment" -msgstr "" - -#: mod/profiles.php:726 -msgid "Love/romance" -msgstr "" - -#: mod/profiles.php:727 -msgid "Work/employment" -msgstr "" - -#: mod/profiles.php:728 -msgid "School/education" -msgstr "" - -#: mod/profiles.php:733 -msgid "" -"This is your public profile.
      It may " -"be visible to anybody using the internet." -msgstr "" - -#: mod/profiles.php:743 -msgid "Age: " -msgstr "" - -#: mod/profiles.php:796 -msgid "Edit/Manage Profiles" -msgstr "" - #: mod/credits.php:16 msgid "Credits" msgstr "" @@ -5922,6 +3665,1098 @@ msgstr "" msgid "- select -" msgstr "" +#: mod/subthread.php:103 +#, php-format +msgid "%1$s is following %2$s's %3$s" +msgstr "" + +#: mod/attach.php:8 +msgid "Item not available." +msgstr "" + +#: mod/attach.php:20 +msgid "Item was not found." +msgstr "" + +#: mod/follow.php:19 mod/dfrn_request.php:874 +msgid "Submit Request" +msgstr "" + +#: mod/follow.php:30 +msgid "You already added this contact." +msgstr "" + +#: mod/follow.php:39 +msgid "Diaspora support isn't enabled. Contact can't be added." +msgstr "" + +#: mod/follow.php:46 +msgid "OStatus support is disabled. Contact can't be added." +msgstr "" + +#: mod/follow.php:53 +msgid "The network type couldn't be detected. Contact can't be added." +msgstr "" + +#: mod/follow.php:109 mod/dfrn_request.php:860 +msgid "Please answer the following:" +msgstr "" + +#: mod/follow.php:110 mod/dfrn_request.php:861 +#, php-format +msgid "Does %s know you?" +msgstr "" + +#: mod/follow.php:110 mod/api.php:106 mod/dfrn_request.php:861 +#: mod/profiles.php:648 mod/profiles.php:652 mod/profiles.php:677 +#: mod/register.php:239 mod/settings.php:1158 mod/settings.php:1164 +#: mod/settings.php:1172 mod/settings.php:1176 mod/settings.php:1181 +#: mod/settings.php:1187 mod/settings.php:1193 mod/settings.php:1199 +#: mod/settings.php:1225 mod/settings.php:1226 mod/settings.php:1227 +#: mod/settings.php:1228 mod/settings.php:1229 +msgid "No" +msgstr "" + +#: mod/follow.php:111 mod/dfrn_request.php:865 +msgid "Add a personal note:" +msgstr "" + +#: mod/follow.php:117 mod/dfrn_request.php:871 +msgid "Your Identity Address:" +msgstr "" + +#: mod/follow.php:126 mod/notifications.php:243 mod/contacts.php:624 +msgid "Profile URL" +msgstr "" + +#: mod/follow.php:180 +msgid "Contact added" +msgstr "" + +#: mod/apps.php:7 index.php:240 +msgid "You must be logged in to use addons. " +msgstr "" + +#: mod/apps.php:11 +msgid "Applications" +msgstr "" + +#: mod/apps.php:14 +msgid "No installed applications." +msgstr "" + +#: mod/p.php:9 +msgid "Not Extended" +msgstr "" + +#: mod/newmember.php:6 +msgid "Welcome to Friendica" +msgstr "" + +#: mod/newmember.php:8 +msgid "New Member Checklist" +msgstr "" + +#: mod/newmember.php:12 +msgid "" +"We would like to offer some tips and links to help make your experience " +"enjoyable. Click any item to visit the relevant page. A link to this page " +"will be visible from your home page for two weeks after your initial " +"registration and then will quietly disappear." +msgstr "" + +#: mod/newmember.php:14 +msgid "Getting Started" +msgstr "" + +#: mod/newmember.php:18 +msgid "Friendica Walk-Through" +msgstr "" + +#: mod/newmember.php:18 +msgid "" +"On your Quick Start page - find a brief introduction to your " +"profile and network tabs, make some new connections, and find some groups to " +"join." +msgstr "" + +#: mod/newmember.php:26 +msgid "Go to Your Settings" +msgstr "" + +#: mod/newmember.php:26 +msgid "" +"On your Settings page - change your initial password. Also make a " +"note of your Identity Address. This looks just like an email address - and " +"will be useful in making friends on the free social web." +msgstr "" + +#: mod/newmember.php:28 +msgid "" +"Review the other settings, particularly the privacy settings. An unpublished " +"directory listing is like having an unlisted phone number. In general, you " +"should probably publish your listing - unless all of your friends and " +"potential friends know exactly how to find you." +msgstr "" + +#: mod/newmember.php:36 mod/profile_photo.php:250 mod/profiles.php:707 +msgid "Upload Profile Photo" +msgstr "" + +#: mod/newmember.php:36 +msgid "" +"Upload a profile photo if you have not done so already. Studies have shown " +"that people with real photos of themselves are ten times more likely to make " +"friends than people who do not." +msgstr "" + +#: mod/newmember.php:38 +msgid "Edit Your Profile" +msgstr "" + +#: mod/newmember.php:38 +msgid "" +"Edit your default profile to your liking. Review the " +"settings for hiding your list of friends and hiding the profile from unknown " +"visitors." +msgstr "" + +#: mod/newmember.php:40 +msgid "Profile Keywords" +msgstr "" + +#: mod/newmember.php:40 +msgid "" +"Set some public keywords for your default profile which describe your " +"interests. We may be able to find other people with similar interests and " +"suggest friendships." +msgstr "" + +#: mod/newmember.php:44 +msgid "Connecting" +msgstr "" + +#: mod/newmember.php:51 +msgid "Importing Emails" +msgstr "" + +#: mod/newmember.php:51 +msgid "" +"Enter your email access information on your Connector Settings page if you " +"wish to import and interact with friends or mailing lists from your email " +"INBOX" +msgstr "" + +#: mod/newmember.php:53 +msgid "Go to Your Contacts Page" +msgstr "" + +#: mod/newmember.php:53 +msgid "" +"Your Contacts page is your gateway to managing friendships and connecting " +"with friends on other networks. Typically you enter their address or site " +"URL in the Add New Contact dialog." +msgstr "" + +#: mod/newmember.php:55 +msgid "Go to Your Site's Directory" +msgstr "" + +#: mod/newmember.php:55 +msgid "" +"The Directory page lets you find other people in this network or other " +"federated sites. Look for a Connect or Follow link on " +"their profile page. Provide your own Identity Address if requested." +msgstr "" + +#: mod/newmember.php:57 +msgid "Finding New People" +msgstr "" + +#: mod/newmember.php:57 +msgid "" +"On the side panel of the Contacts page are several tools to find new " +"friends. We can match people by interest, look up people by name or " +"interest, and provide suggestions based on network relationships. On a brand " +"new site, friend suggestions will usually begin to be populated within 24 " +"hours." +msgstr "" + +#: mod/newmember.php:65 +msgid "Group Your Contacts" +msgstr "" + +#: mod/newmember.php:65 +msgid "" +"Once you have made some friends, organize them into private conversation " +"groups from the sidebar of your Contacts page and then you can interact with " +"each group privately on your Network page." +msgstr "" + +#: mod/newmember.php:68 +msgid "Why Aren't My Posts Public?" +msgstr "" + +#: mod/newmember.php:68 +msgid "" +"Friendica respects your privacy. By default, your posts will only show up to " +"people you've added as friends. For more information, see the help section " +"from the link above." +msgstr "" + +#: mod/newmember.php:73 +msgid "Getting Help" +msgstr "" + +#: mod/newmember.php:77 +msgid "Go to the Help Section" +msgstr "" + +#: mod/newmember.php:77 +msgid "" +"Our help pages may be consulted for detail on other program " +"features and resources." +msgstr "" + +#: mod/removeme.php:46 mod/removeme.php:49 +msgid "Remove My Account" +msgstr "" + +#: mod/removeme.php:47 +msgid "" +"This will completely remove your account. Once this has been done it is not " +"recoverable." +msgstr "" + +#: mod/removeme.php:48 +msgid "Please enter your password for verification:" +msgstr "" + +#: mod/editpost.php:17 mod/editpost.php:27 +msgid "Item not found" +msgstr "" + +#: mod/editpost.php:40 +msgid "Edit post" +msgstr "" + +#: mod/localtime.php:24 +msgid "Time Conversion" +msgstr "" + +#: mod/localtime.php:26 +msgid "" +"Friendica provides this service for sharing events with other networks and " +"friends in unknown timezones." +msgstr "" + +#: mod/localtime.php:30 +#, php-format +msgid "UTC time: %s" +msgstr "" + +#: mod/localtime.php:33 +#, php-format +msgid "Current timezone: %s" +msgstr "" + +#: mod/localtime.php:36 +#, php-format +msgid "Converted localtime: %s" +msgstr "" + +#: mod/localtime.php:41 +msgid "Please select your timezone:" +msgstr "" + +#: mod/bookmarklet.php:41 +msgid "The post was created" +msgstr "" + +#: mod/group.php:29 +msgid "Group created." +msgstr "" + +#: mod/group.php:35 +msgid "Could not create group." +msgstr "" + +#: mod/group.php:47 mod/group.php:140 +msgid "Group not found." +msgstr "" + +#: mod/group.php:60 +msgid "Group name changed." +msgstr "" + +#: mod/group.php:87 +msgid "Save Group" +msgstr "" + +#: mod/group.php:93 +msgid "Create a group of contacts/friends." +msgstr "" + +#: mod/group.php:113 +msgid "Group removed." +msgstr "" + +#: mod/group.php:115 +msgid "Unable to remove group." +msgstr "" + +#: mod/group.php:177 +msgid "Group Editor" +msgstr "" + +#: mod/group.php:190 +msgid "Members" +msgstr "" + +#: mod/group.php:192 mod/contacts.php:692 +msgid "All Contacts" +msgstr "" + +#: mod/group.php:193 mod/content.php:130 mod/network.php:495 +msgid "Group is empty" +msgstr "" + +#: mod/wallmessage.php:42 mod/wallmessage.php:112 +#, php-format +msgid "Number of daily wall messages for %s exceeded. Message failed." +msgstr "" + +#: mod/wallmessage.php:56 mod/message.php:71 +msgid "No recipient selected." +msgstr "" + +#: mod/wallmessage.php:59 +msgid "Unable to check your home location." +msgstr "" + +#: mod/wallmessage.php:62 mod/message.php:78 +msgid "Message could not be sent." +msgstr "" + +#: mod/wallmessage.php:65 mod/message.php:81 +msgid "Message collection failure." +msgstr "" + +#: mod/wallmessage.php:68 mod/message.php:84 +msgid "Message sent." +msgstr "" + +#: mod/wallmessage.php:86 mod/wallmessage.php:95 +msgid "No recipient." +msgstr "" + +#: mod/wallmessage.php:142 mod/message.php:341 +msgid "Send Private Message" +msgstr "" + +#: mod/wallmessage.php:143 +#, php-format +msgid "" +"If you wish for %s to respond, please check that the privacy settings on " +"your site allow private mail from unknown senders." +msgstr "" + +#: mod/wallmessage.php:144 mod/message.php:342 mod/message.php:536 +msgid "To:" +msgstr "" + +#: mod/wallmessage.php:145 mod/message.php:347 mod/message.php:538 +msgid "Subject:" +msgstr "" + +#: mod/share.php:38 +msgid "link" +msgstr "" + +#: mod/api.php:76 mod/api.php:102 +msgid "Authorize application connection" +msgstr "" + +#: mod/api.php:77 +msgid "Return to your app and insert this Securty Code:" +msgstr "" + +#: mod/api.php:89 +msgid "Please login to continue." +msgstr "" + +#: mod/api.php:104 +msgid "" +"Do you want to authorize this application to access your posts and contacts, " +"and/or create new posts for you?" +msgstr "" + +#: mod/babel.php:17 +msgid "Source (bbcode) text:" +msgstr "" + +#: mod/babel.php:23 +msgid "Source (Diaspora) text to convert to BBcode:" +msgstr "" + +#: mod/babel.php:31 +msgid "Source input: " +msgstr "" + +#: mod/babel.php:35 +msgid "bb2html (raw HTML): " +msgstr "" + +#: mod/babel.php:39 +msgid "bb2html: " +msgstr "" + +#: mod/babel.php:43 +msgid "bb2html2bb: " +msgstr "" + +#: mod/babel.php:47 +msgid "bb2md: " +msgstr "" + +#: mod/babel.php:51 +msgid "bb2md2html: " +msgstr "" + +#: mod/babel.php:55 +msgid "bb2dia2bb: " +msgstr "" + +#: mod/babel.php:59 +msgid "bb2md2html2bb: " +msgstr "" + +#: mod/babel.php:69 +msgid "Source input (Diaspora format): " +msgstr "" + +#: mod/babel.php:74 +msgid "diaspora2bb: " +msgstr "" + +#: mod/ostatus_subscribe.php:14 +msgid "Subscribing to OStatus contacts" +msgstr "" + +#: mod/ostatus_subscribe.php:25 +msgid "No contact provided." +msgstr "" + +#: mod/ostatus_subscribe.php:30 +msgid "Couldn't fetch information for contact." +msgstr "" + +#: mod/ostatus_subscribe.php:38 +msgid "Couldn't fetch friends for contact." +msgstr "" + +#: mod/ostatus_subscribe.php:65 +msgid "success" +msgstr "" + +#: mod/ostatus_subscribe.php:67 +msgid "failed" +msgstr "" + +#: mod/ostatus_subscribe.php:69 mod/content.php:792 object/Item.php:245 +msgid "ignored" +msgstr "" + +#: mod/dfrn_poll.php:104 mod/dfrn_poll.php:537 +#, php-format +msgid "%1$s welcomes %2$s" +msgstr "" + +#: mod/message.php:75 +msgid "Unable to locate contact information." +msgstr "" + +#: mod/message.php:215 +msgid "Do you really want to delete this message?" +msgstr "" + +#: mod/message.php:235 +msgid "Message deleted." +msgstr "" + +#: mod/message.php:266 +msgid "Conversation removed." +msgstr "" + +#: mod/message.php:383 +msgid "No messages." +msgstr "" + +#: mod/message.php:426 +msgid "Message not available." +msgstr "" + +#: mod/message.php:503 +msgid "Delete message" +msgstr "" + +#: mod/message.php:529 mod/message.php:609 +msgid "Delete conversation" +msgstr "" + +#: mod/message.php:531 +msgid "" +"No secure communications available. You may be able to " +"respond from the sender's profile page." +msgstr "" + +#: mod/message.php:535 +msgid "Send Reply" +msgstr "" + +#: mod/message.php:579 +#, php-format +msgid "Unknown sender - %s" +msgstr "" + +#: mod/message.php:581 +#, php-format +msgid "You and %s" +msgstr "" + +#: mod/message.php:583 +#, php-format +msgid "%s and You" +msgstr "" + +#: mod/message.php:612 +msgid "D, d M Y - g:i A" +msgstr "" + +#: mod/message.php:615 +#, php-format +msgid "%d message" +msgid_plural "%d messages" +msgstr[0] "" +msgstr[1] "" + +#: mod/manage.php:139 +msgid "Manage Identities and/or Pages" +msgstr "" + +#: mod/manage.php:140 +msgid "" +"Toggle between different identities or community/group pages which share " +"your account details or which you have been granted \"manage\" permissions" +msgstr "" + +#: mod/manage.php:141 +msgid "Select an identity to manage: " +msgstr "" + +#: mod/crepair.php:87 +msgid "Contact settings applied." +msgstr "" + +#: mod/crepair.php:89 +msgid "Contact update failed." +msgstr "" + +#: mod/crepair.php:114 mod/dfrn_confirm.php:122 mod/fsuggest.php:20 +#: mod/fsuggest.php:92 +msgid "Contact not found." +msgstr "" + +#: mod/crepair.php:120 +msgid "" +"WARNING: This is highly advanced and if you enter incorrect " +"information your communications with this contact may stop working." +msgstr "" + +#: mod/crepair.php:121 +msgid "" +"Please use your browser 'Back' button now if you are " +"uncertain what to do on this page." +msgstr "" + +#: mod/crepair.php:134 mod/crepair.php:136 +msgid "No mirroring" +msgstr "" + +#: mod/crepair.php:134 +msgid "Mirror as forwarded posting" +msgstr "" + +#: mod/crepair.php:134 mod/crepair.php:136 +msgid "Mirror as my own posting" +msgstr "" + +#: mod/crepair.php:150 +msgid "Return to contact editor" +msgstr "" + +#: mod/crepair.php:152 +msgid "Refetch contact data" +msgstr "" + +#: mod/crepair.php:156 +msgid "Remote Self" +msgstr "" + +#: mod/crepair.php:159 +msgid "Mirror postings from this contact" +msgstr "" + +#: mod/crepair.php:161 +msgid "" +"Mark this contact as remote_self, this will cause friendica to repost new " +"entries from this contact." +msgstr "" + +#: mod/crepair.php:165 mod/admin.php:1367 mod/admin.php:1380 +#: mod/admin.php:1392 mod/admin.php:1408 mod/settings.php:678 +#: mod/settings.php:704 +msgid "Name" +msgstr "" + +#: mod/crepair.php:166 +msgid "Account Nickname" +msgstr "" + +#: mod/crepair.php:167 +msgid "@Tagname - overrides Name/Nickname" +msgstr "" + +#: mod/crepair.php:168 +msgid "Account URL" +msgstr "" + +#: mod/crepair.php:169 +msgid "Friend Request URL" +msgstr "" + +#: mod/crepair.php:170 +msgid "Friend Confirm URL" +msgstr "" + +#: mod/crepair.php:171 +msgid "Notification Endpoint URL" +msgstr "" + +#: mod/crepair.php:172 +msgid "Poll/Feed URL" +msgstr "" + +#: mod/crepair.php:173 +msgid "New photo from this URL" +msgstr "" + +#: mod/dfrn_request.php:100 +msgid "This introduction has already been accepted." +msgstr "" + +#: mod/dfrn_request.php:123 mod/dfrn_request.php:518 +msgid "Profile location is not valid or does not contain profile information." +msgstr "" + +#: mod/dfrn_request.php:128 mod/dfrn_request.php:523 +msgid "Warning: profile location has no identifiable owner name." +msgstr "" + +#: mod/dfrn_request.php:130 mod/dfrn_request.php:525 +msgid "Warning: profile location has no profile photo." +msgstr "" + +#: mod/dfrn_request.php:133 mod/dfrn_request.php:528 +#, 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] "" + +#: mod/dfrn_request.php:178 +msgid "Introduction complete." +msgstr "" + +#: mod/dfrn_request.php:220 +msgid "Unrecoverable protocol error." +msgstr "" + +#: mod/dfrn_request.php:248 +msgid "Profile unavailable." +msgstr "" + +#: mod/dfrn_request.php:273 +#, php-format +msgid "%s has received too many connection requests today." +msgstr "" + +#: mod/dfrn_request.php:274 +msgid "Spam protection measures have been invoked." +msgstr "" + +#: mod/dfrn_request.php:275 +msgid "Friends are advised to please try again in 24 hours." +msgstr "" + +#: mod/dfrn_request.php:337 +msgid "Invalid locator" +msgstr "" + +#: mod/dfrn_request.php:346 +msgid "Invalid email address." +msgstr "" + +#: mod/dfrn_request.php:373 +msgid "This account has not been configured for email. Request failed." +msgstr "" + +#: mod/dfrn_request.php:476 +msgid "You have already introduced yourself here." +msgstr "" + +#: mod/dfrn_request.php:480 +#, php-format +msgid "Apparently you are already friends with %s." +msgstr "" + +#: mod/dfrn_request.php:501 +msgid "Invalid profile URL." +msgstr "" + +#: mod/dfrn_request.php:579 mod/contacts.php:208 +msgid "Failed to update contact record." +msgstr "" + +#: mod/dfrn_request.php:600 +msgid "Your introduction has been sent." +msgstr "" + +#: mod/dfrn_request.php:640 +msgid "" +"Remote subscription can't be done for your network. Please subscribe " +"directly on your system." +msgstr "" + +#: mod/dfrn_request.php:663 +msgid "Please login to confirm introduction." +msgstr "" + +#: mod/dfrn_request.php:673 +msgid "" +"Incorrect identity currently logged in. Please login to this profile." +msgstr "" + +#: mod/dfrn_request.php:687 mod/dfrn_request.php:704 +msgid "Confirm" +msgstr "" + +#: mod/dfrn_request.php:699 +msgid "Hide this contact" +msgstr "" + +#: mod/dfrn_request.php:702 +#, php-format +msgid "Welcome home %s." +msgstr "" + +#: mod/dfrn_request.php:703 +#, php-format +msgid "Please confirm your introduction/connection request to %s." +msgstr "" + +#: mod/dfrn_request.php:832 +msgid "" +"Please enter your 'Identity Address' from one of the following supported " +"communications networks:" +msgstr "" + +#: mod/dfrn_request.php:853 +#, 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 "" + +#: mod/dfrn_request.php:858 +msgid "Friend/Connection Request" +msgstr "" + +#: mod/dfrn_request.php:859 +msgid "" +"Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, " +"testuser@identi.ca" +msgstr "" + +#: mod/dfrn_request.php:868 +msgid "StatusNet/Federated Social Web" +msgstr "" + +#: mod/dfrn_request.php:870 +#, php-format +msgid "" +" - please do not use this form. Instead, enter %s into your Diaspora search " +"bar." +msgstr "" + +#: mod/content.php:119 mod/network.php:468 +msgid "No such group" +msgstr "" + +#: mod/content.php:135 mod/network.php:499 +#, php-format +msgid "Group: %s" +msgstr "" + +#: mod/content.php:325 object/Item.php:95 +msgid "This entry was edited" +msgstr "" + +#: mod/content.php:621 object/Item.php:429 +#, php-format +msgid "%d comment" +msgid_plural "%d comments" +msgstr[0] "" +msgstr[1] "" + +#: mod/content.php:638 mod/photos.php:1379 object/Item.php:117 +msgid "Private Message" +msgstr "" + +#: mod/content.php:702 mod/photos.php:1567 object/Item.php:263 +msgid "I like this (toggle)" +msgstr "" + +#: mod/content.php:702 object/Item.php:263 +msgid "like" +msgstr "" + +#: mod/content.php:703 mod/photos.php:1568 object/Item.php:264 +msgid "I don't like this (toggle)" +msgstr "" + +#: mod/content.php:703 object/Item.php:264 +msgid "dislike" +msgstr "" + +#: mod/content.php:705 object/Item.php:266 +msgid "Share this" +msgstr "" + +#: mod/content.php:705 object/Item.php:266 +msgid "share" +msgstr "" + +#: mod/content.php:725 mod/photos.php:1587 mod/photos.php:1635 +#: mod/photos.php:1721 object/Item.php:717 +msgid "This is you" +msgstr "" + +#: mod/content.php:727 mod/content.php:945 mod/photos.php:1589 +#: mod/photos.php:1637 mod/photos.php:1723 object/Item.php:403 +#: object/Item.php:719 boot.php:969 +msgid "Comment" +msgstr "" + +#: mod/content.php:729 object/Item.php:721 +msgid "Bold" +msgstr "" + +#: mod/content.php:730 object/Item.php:722 +msgid "Italic" +msgstr "" + +#: mod/content.php:731 object/Item.php:723 +msgid "Underline" +msgstr "" + +#: mod/content.php:732 object/Item.php:724 +msgid "Quote" +msgstr "" + +#: mod/content.php:733 object/Item.php:725 +msgid "Code" +msgstr "" + +#: mod/content.php:734 object/Item.php:726 +msgid "Image" +msgstr "" + +#: mod/content.php:735 object/Item.php:727 +msgid "Link" +msgstr "" + +#: mod/content.php:736 object/Item.php:728 +msgid "Video" +msgstr "" + +#: mod/content.php:746 mod/settings.php:738 object/Item.php:122 +#: object/Item.php:124 +msgid "Edit" +msgstr "" + +#: mod/content.php:771 object/Item.php:227 +msgid "add star" +msgstr "" + +#: mod/content.php:772 object/Item.php:228 +msgid "remove star" +msgstr "" + +#: mod/content.php:773 object/Item.php:229 +msgid "toggle star status" +msgstr "" + +#: mod/content.php:776 object/Item.php:232 +msgid "starred" +msgstr "" + +#: mod/content.php:777 mod/content.php:798 object/Item.php:252 +msgid "add tag" +msgstr "" + +#: mod/content.php:787 object/Item.php:240 +msgid "ignore thread" +msgstr "" + +#: mod/content.php:788 object/Item.php:241 +msgid "unignore thread" +msgstr "" + +#: mod/content.php:789 object/Item.php:242 +msgid "toggle ignore status" +msgstr "" + +#: mod/content.php:803 object/Item.php:137 +msgid "save to folder" +msgstr "" + +#: mod/content.php:848 object/Item.php:201 +msgid "I will attend" +msgstr "" + +#: mod/content.php:848 object/Item.php:201 +msgid "I will not attend" +msgstr "" + +#: mod/content.php:848 object/Item.php:201 +msgid "I might attend" +msgstr "" + +#: mod/content.php:912 object/Item.php:369 +msgid "to" +msgstr "" + +#: mod/content.php:913 object/Item.php:371 +msgid "Wall-to-Wall" +msgstr "" + +#: mod/content.php:914 object/Item.php:372 +msgid "via Wall-To-Wall:" +msgstr "" + +#: mod/dfrn_confirm.php:66 mod/profiles.php:19 mod/profiles.php:134 +#: mod/profiles.php:180 mod/profiles.php:617 +msgid "Profile not found." +msgstr "" + +#: mod/dfrn_confirm.php:123 +msgid "" +"This may occasionally happen if contact was requested by both persons and it " +"has already been approved." +msgstr "" + +#: mod/dfrn_confirm.php:242 +msgid "Response from remote site was not understood." +msgstr "" + +#: mod/dfrn_confirm.php:251 mod/dfrn_confirm.php:256 +msgid "Unexpected response from remote site: " +msgstr "" + +#: mod/dfrn_confirm.php:265 +msgid "Confirmation completed successfully." +msgstr "" + +#: mod/dfrn_confirm.php:267 mod/dfrn_confirm.php:281 mod/dfrn_confirm.php:288 +msgid "Remote site reported: " +msgstr "" + +#: mod/dfrn_confirm.php:279 +msgid "Temporary failure. Please wait and try again." +msgstr "" + +#: mod/dfrn_confirm.php:286 +msgid "Introduction failed or was revoked." +msgstr "" + +#: mod/dfrn_confirm.php:415 +msgid "Unable to set contact photo." +msgstr "" + +#: mod/dfrn_confirm.php:553 +#, php-format +msgid "No user record found for '%s' " +msgstr "" + +#: mod/dfrn_confirm.php:563 +msgid "Our site encryption key is apparently messed up." +msgstr "" + +#: mod/dfrn_confirm.php:574 +msgid "Empty site URL was provided or URL could not be decrypted by us." +msgstr "" + +#: mod/dfrn_confirm.php:595 +msgid "Contact record was not found for you on our site." +msgstr "" + +#: mod/dfrn_confirm.php:609 +#, php-format +msgid "Site public key not available in contact record for URL %s." +msgstr "" + +#: mod/dfrn_confirm.php:629 +msgid "" +"The ID provided by your system is a duplicate on our system. It should work " +"if you try again." +msgstr "" + +#: mod/dfrn_confirm.php:640 +msgid "Unable to set your contact credentials on our system." +msgstr "" + +#: mod/dfrn_confirm.php:699 +msgid "Unable to update your contact profile details on our system" +msgstr "" + +#: mod/dfrn_confirm.php:771 +#, php-format +msgid "%1$s has joined %2$s" +msgstr "" + +#: mod/fsuggest.php:63 +msgid "Friend suggestion sent." +msgstr "" + +#: mod/fsuggest.php:97 +msgid "Suggest Friends" +msgstr "" + +#: mod/fsuggest.php:99 +#, php-format +msgid "Suggest a friend for %s" +msgstr "" + +#: mod/mood.php:133 +msgid "Mood" +msgstr "" + +#: mod/mood.php:134 +msgid "Set your current mood and tell your friends" +msgstr "" + #: mod/poke.php:192 msgid "Poke/Prod" msgstr "" @@ -5942,182 +4777,2333 @@ msgstr "" msgid "Make this post private" msgstr "" -#: mod/photos.php:100 mod/photos.php:1886 -msgid "Recent Photos" +#: mod/profile_photo.php:44 +msgid "Image uploaded but image cropping failed." msgstr "" -#: mod/photos.php:103 mod/photos.php:1307 mod/photos.php:1888 -msgid "Upload New Photos" -msgstr "" - -#: mod/photos.php:117 mod/settings.php:36 -msgid "everybody" -msgstr "" - -#: mod/photos.php:181 -msgid "Contact information unavailable" -msgstr "" - -#: mod/photos.php:202 -msgid "Album not found." -msgstr "" - -#: mod/photos.php:232 mod/photos.php:244 mod/photos.php:1249 -msgid "Delete Album" -msgstr "" - -#: mod/photos.php:242 -msgid "Do you really want to delete this photo album and all its photos?" -msgstr "" - -#: mod/photos.php:322 mod/photos.php:333 mod/photos.php:1567 -msgid "Delete Photo" -msgstr "" - -#: mod/photos.php:331 -msgid "Do you really want to delete this photo?" -msgstr "" - -#: mod/photos.php:706 +#: mod/profile_photo.php:77 mod/profile_photo.php:84 mod/profile_photo.php:91 +#: mod/profile_photo.php:314 #, php-format -msgid "%1$s was tagged in %2$s by %3$s" +msgid "Image size reduction [%s] failed." msgstr "" -#: mod/photos.php:706 -msgid "a photo" +#: mod/profile_photo.php:124 +msgid "" +"Shift-reload the page or clear browser cache if the new photo does not " +"display immediately." msgstr "" -#: mod/photos.php:813 -msgid "Image file is empty." +#: mod/profile_photo.php:134 +msgid "Unable to process image" msgstr "" -#: mod/photos.php:973 -msgid "No photos selected" +#: mod/profile_photo.php:248 +msgid "Upload File:" msgstr "" -#: mod/photos.php:1134 +#: mod/profile_photo.php:249 +msgid "Select a profile:" +msgstr "" + +#: mod/profile_photo.php:251 +msgid "Upload" +msgstr "" + +#: mod/profile_photo.php:254 +msgid "or" +msgstr "" + +#: mod/profile_photo.php:254 +msgid "skip this step" +msgstr "" + +#: mod/profile_photo.php:254 +msgid "select a photo from your photo albums" +msgstr "" + +#: mod/profile_photo.php:268 +msgid "Crop Image" +msgstr "" + +#: mod/profile_photo.php:269 +msgid "Please adjust the image cropping for optimum viewing." +msgstr "" + +#: mod/profile_photo.php:271 +msgid "Done Editing" +msgstr "" + +#: mod/profile_photo.php:305 +msgid "Image uploaded successfully." +msgstr "" + +#: mod/regmod.php:55 +msgid "Account approved." +msgstr "" + +#: mod/regmod.php:92 #, php-format -msgid "You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage." +msgid "Registration revoked for %s" msgstr "" -#: mod/photos.php:1169 -msgid "Upload Photos" +#: mod/regmod.php:104 +msgid "Please login." msgstr "" -#: mod/photos.php:1173 mod/photos.php:1244 -msgid "New album name: " +#: mod/notifications.php:35 +msgid "Invalid request identifier." msgstr "" -#: mod/photos.php:1174 -msgid "or existing album name: " +#: mod/notifications.php:44 mod/notifications.php:180 +#: mod/notifications.php:252 +msgid "Discard" msgstr "" -#: mod/photos.php:1175 -msgid "Do not show a status post for this upload" +#: mod/notifications.php:60 mod/notifications.php:179 +#: mod/notifications.php:251 mod/contacts.php:606 mod/contacts.php:806 +#: mod/contacts.php:1000 +msgid "Ignore" msgstr "" -#: mod/photos.php:1186 mod/photos.php:1571 mod/settings.php:1247 -msgid "Show to Groups" +#: mod/notifications.php:105 +msgid "Network Notifications" msgstr "" -#: mod/photos.php:1187 mod/photos.php:1572 mod/settings.php:1248 -msgid "Show to Contacts" +#: mod/notifications.php:117 +msgid "Personal Notifications" msgstr "" -#: mod/photos.php:1188 -msgid "Private Photo" +#: mod/notifications.php:123 +msgid "Home Notifications" msgstr "" -#: mod/photos.php:1189 -msgid "Public Photo" +#: mod/notifications.php:152 +msgid "Show Ignored Requests" msgstr "" -#: mod/photos.php:1257 -msgid "Edit Album" +#: mod/notifications.php:152 +msgid "Hide Ignored Requests" msgstr "" -#: mod/photos.php:1263 -msgid "Show Newest First" +#: mod/notifications.php:164 mod/notifications.php:222 +msgid "Notification type: " msgstr "" -#: mod/photos.php:1265 -msgid "Show Oldest First" +#: mod/notifications.php:167 +#, php-format +msgid "suggested by %s" msgstr "" -#: mod/photos.php:1293 mod/photos.php:1871 -msgid "View Photo" +#: mod/notifications.php:172 mod/notifications.php:239 mod/contacts.php:613 +msgid "Hide this contact from others" msgstr "" -#: mod/photos.php:1340 -msgid "Permission denied. Access to this item may be restricted." +#: mod/notifications.php:173 mod/notifications.php:240 +msgid "Post a new friend activity" msgstr "" -#: mod/photos.php:1342 -msgid "Photo not available" +#: mod/notifications.php:173 mod/notifications.php:240 +msgid "if applicable" msgstr "" -#: mod/photos.php:1398 -msgid "View photo" +#: mod/notifications.php:176 mod/notifications.php:249 mod/admin.php:1382 +msgid "Approve" msgstr "" -#: mod/photos.php:1398 -msgid "Edit photo" +#: mod/notifications.php:195 +msgid "Claims to be known to you: " msgstr "" -#: mod/photos.php:1399 -msgid "Use as profile photo" +#: mod/notifications.php:196 +msgid "yes" msgstr "" -#: mod/photos.php:1424 -msgid "View Full Size" +#: mod/notifications.php:196 +msgid "no" msgstr "" -#: mod/photos.php:1510 -msgid "Tags: " +#: mod/notifications.php:197 +msgid "" +"Shall your connection be bidirectional or not? \"Friend\" implies that you " +"allow to read and you subscribe to their posts. \"Fan/Admirer\" means that " +"you allow to read but you do not want to read theirs. Approve as: " msgstr "" -#: mod/photos.php:1513 -msgid "[Remove any tag]" +#: mod/notifications.php:200 +msgid "" +"Shall your connection be bidirectional or not? \"Friend\" implies that you " +"allow to read and you subscribe to their posts. \"Sharer\" means that you " +"allow to read but you do not want to read theirs. Approve as: " msgstr "" -#: mod/photos.php:1553 -msgid "New album name" +#: mod/notifications.php:209 +msgid "Friend" msgstr "" -#: mod/photos.php:1554 -msgid "Caption" +#: mod/notifications.php:210 +msgid "Sharer" msgstr "" -#: mod/photos.php:1555 -msgid "Add a Tag" +#: mod/notifications.php:210 +msgid "Fan/Admirer" msgstr "" -#: mod/photos.php:1555 -msgid "Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping" +#: mod/notifications.php:260 +msgid "No introductions." msgstr "" -#: mod/photos.php:1556 -msgid "Do not rotate" +#: mod/notifications.php:299 +msgid "Show unread" msgstr "" -#: mod/photos.php:1557 -msgid "Rotate CW (right)" +#: mod/notifications.php:299 +msgid "Show all" msgstr "" -#: mod/photos.php:1558 -msgid "Rotate CCW (left)" +#: mod/notifications.php:305 +#, php-format +msgid "No more %s notifications." msgstr "" -#: mod/photos.php:1573 -msgid "Private photo" +#: mod/profiles.php:38 +msgid "Profile deleted." msgstr "" -#: mod/photos.php:1574 -msgid "Public photo" +#: mod/profiles.php:56 mod/profiles.php:90 +msgid "Profile-" msgstr "" -#: mod/photos.php:1800 -msgid "Map" +#: mod/profiles.php:75 mod/profiles.php:118 +msgid "New profile created." +msgstr "" + +#: mod/profiles.php:96 +msgid "Profile unavailable to clone." +msgstr "" + +#: mod/profiles.php:190 +msgid "Profile Name is required." +msgstr "" + +#: mod/profiles.php:338 +msgid "Marital Status" +msgstr "" + +#: mod/profiles.php:342 +msgid "Romantic Partner" +msgstr "" + +#: mod/profiles.php:354 +msgid "Work/Employment" +msgstr "" + +#: mod/profiles.php:357 +msgid "Religion" +msgstr "" + +#: mod/profiles.php:361 +msgid "Political Views" +msgstr "" + +#: mod/profiles.php:365 +msgid "Gender" +msgstr "" + +#: mod/profiles.php:369 +msgid "Sexual Preference" +msgstr "" + +#: mod/profiles.php:373 +msgid "XMPP" +msgstr "" + +#: mod/profiles.php:377 +msgid "Homepage" +msgstr "" + +#: mod/profiles.php:381 mod/profiles.php:702 +msgid "Interests" +msgstr "" + +#: mod/profiles.php:385 +msgid "Address" +msgstr "" + +#: mod/profiles.php:392 mod/profiles.php:698 +msgid "Location" +msgstr "" + +#: mod/profiles.php:477 +msgid "Profile updated." +msgstr "" + +#: mod/profiles.php:564 +msgid " and " +msgstr "" + +#: mod/profiles.php:572 +msgid "public profile" +msgstr "" + +#: mod/profiles.php:575 +#, php-format +msgid "%1$s changed %2$s to “%3$s”" +msgstr "" + +#: mod/profiles.php:576 +#, php-format +msgid " - Visit %1$s's %2$s" +msgstr "" + +#: mod/profiles.php:579 +#, php-format +msgid "%1$s has an updated %2$s, changing %3$s." +msgstr "" + +#: mod/profiles.php:645 +msgid "Hide contacts and friends:" +msgstr "" + +#: mod/profiles.php:650 +msgid "Hide your contact/friend list from viewers of this profile?" +msgstr "" + +#: mod/profiles.php:674 +msgid "Show more profile fields:" +msgstr "" + +#: mod/profiles.php:686 +msgid "Profile Actions" +msgstr "" + +#: mod/profiles.php:687 +msgid "Edit Profile Details" +msgstr "" + +#: mod/profiles.php:689 +msgid "Change Profile Photo" +msgstr "" + +#: mod/profiles.php:690 +msgid "View this profile" +msgstr "" + +#: mod/profiles.php:692 +msgid "Create a new profile using these settings" +msgstr "" + +#: mod/profiles.php:693 +msgid "Clone this profile" +msgstr "" + +#: mod/profiles.php:694 +msgid "Delete this profile" +msgstr "" + +#: mod/profiles.php:696 +msgid "Basic information" +msgstr "" + +#: mod/profiles.php:697 +msgid "Profile picture" +msgstr "" + +#: mod/profiles.php:699 +msgid "Preferences" +msgstr "" + +#: mod/profiles.php:700 +msgid "Status information" +msgstr "" + +#: mod/profiles.php:701 +msgid "Additional information" +msgstr "" + +#: mod/profiles.php:704 +msgid "Relation" +msgstr "" + +#: mod/profiles.php:708 +msgid "Your Gender:" +msgstr "" + +#: mod/profiles.php:709 +msgid " Marital Status:" +msgstr "" + +#: mod/profiles.php:711 +msgid "Example: fishing photography software" +msgstr "" + +#: mod/profiles.php:716 +msgid "Profile Name:" +msgstr "" + +#: mod/profiles.php:716 mod/events.php:484 mod/events.php:496 +msgid "Required" +msgstr "" + +#: mod/profiles.php:718 +msgid "" +"This is your public profile.
      It may " +"be visible to anybody using the internet." +msgstr "" + +#: mod/profiles.php:719 +msgid "Your Full Name:" +msgstr "" + +#: mod/profiles.php:720 +msgid "Title/Description:" +msgstr "" + +#: mod/profiles.php:723 +msgid "Street Address:" +msgstr "" + +#: mod/profiles.php:724 +msgid "Locality/City:" +msgstr "" + +#: mod/profiles.php:725 +msgid "Region/State:" +msgstr "" + +#: mod/profiles.php:726 +msgid "Postal/Zip Code:" +msgstr "" + +#: mod/profiles.php:727 +msgid "Country:" +msgstr "" + +#: mod/profiles.php:731 +msgid "Who: (if applicable)" +msgstr "" + +#: mod/profiles.php:731 +msgid "Examples: cathy123, Cathy Williams, cathy@example.com" +msgstr "" + +#: mod/profiles.php:732 +msgid "Since [date]:" +msgstr "" + +#: mod/profiles.php:734 +msgid "Tell us about yourself..." +msgstr "" + +#: mod/profiles.php:735 +msgid "XMPP (Jabber) address:" +msgstr "" + +#: mod/profiles.php:735 +msgid "" +"The XMPP address will be propagated to your contacts so that they can follow " +"you." +msgstr "" + +#: mod/profiles.php:736 +msgid "Homepage URL:" +msgstr "" + +#: mod/profiles.php:739 +msgid "Religious Views:" +msgstr "" + +#: mod/profiles.php:740 +msgid "Public Keywords:" +msgstr "" + +#: mod/profiles.php:740 +msgid "(Used for suggesting potential friends, can be seen by others)" +msgstr "" + +#: mod/profiles.php:741 +msgid "Private Keywords:" +msgstr "" + +#: mod/profiles.php:741 +msgid "(Used for searching profiles, never shown to others)" +msgstr "" + +#: mod/profiles.php:744 +msgid "Musical interests" +msgstr "" + +#: mod/profiles.php:745 +msgid "Books, literature" +msgstr "" + +#: mod/profiles.php:746 +msgid "Television" +msgstr "" + +#: mod/profiles.php:747 +msgid "Film/dance/culture/entertainment" +msgstr "" + +#: mod/profiles.php:748 +msgid "Hobbies/Interests" +msgstr "" + +#: mod/profiles.php:749 +msgid "Love/romance" +msgstr "" + +#: mod/profiles.php:750 +msgid "Work/employment" +msgstr "" + +#: mod/profiles.php:751 +msgid "School/education" +msgstr "" + +#: mod/profiles.php:752 +msgid "Contact information and Social Networks" +msgstr "" + +#: mod/profiles.php:794 +msgid "Edit/Manage Profiles" +msgstr "" + +#: mod/admin.php:92 +msgid "Theme settings updated." +msgstr "" + +#: mod/admin.php:156 mod/admin.php:926 +msgid "Site" +msgstr "" + +#: mod/admin.php:157 mod/admin.php:870 mod/admin.php:1375 mod/admin.php:1390 +msgid "Users" +msgstr "" + +#: mod/admin.php:158 mod/admin.php:1492 mod/admin.php:1552 mod/settings.php:74 +msgid "Plugins" +msgstr "" + +#: mod/admin.php:159 mod/admin.php:1750 mod/admin.php:1800 +msgid "Themes" +msgstr "" + +#: mod/admin.php:160 mod/settings.php:52 +msgid "Additional features" +msgstr "" + +#: mod/admin.php:161 +msgid "DB updates" +msgstr "" + +#: mod/admin.php:162 mod/admin.php:397 +msgid "Inspect Queue" +msgstr "" + +#: mod/admin.php:163 mod/admin.php:363 +msgid "Federation Statistics" +msgstr "" + +#: mod/admin.php:177 mod/admin.php:188 mod/admin.php:1874 +msgid "Logs" +msgstr "" + +#: mod/admin.php:178 mod/admin.php:1942 +msgid "View Logs" +msgstr "" + +#: mod/admin.php:179 +msgid "probe address" +msgstr "" + +#: mod/admin.php:180 +msgid "check webfinger" +msgstr "" + +#: mod/admin.php:187 +msgid "Plugin Features" +msgstr "" + +#: mod/admin.php:189 +msgid "diagnostics" +msgstr "" + +#: mod/admin.php:190 +msgid "User registrations waiting for confirmation" +msgstr "" + +#: mod/admin.php:356 +msgid "" +"This page offers you some numbers to the known part of the federated social " +"network your Friendica node is part of. These numbers are not complete but " +"only reflect the part of the network your node is aware of." +msgstr "" + +#: mod/admin.php:357 +msgid "" +"The Auto Discovered Contact Directory feature is not enabled, it " +"will improve the data displayed here." +msgstr "" + +#: mod/admin.php:362 mod/admin.php:396 mod/admin.php:460 mod/admin.php:925 +#: mod/admin.php:1374 mod/admin.php:1491 mod/admin.php:1551 mod/admin.php:1749 +#: mod/admin.php:1799 mod/admin.php:1873 mod/admin.php:1941 +msgid "Administration" +msgstr "" + +#: mod/admin.php:369 +#, php-format +msgid "Currently this node is aware of %d nodes from the following platforms:" +msgstr "" + +#: mod/admin.php:399 +msgid "ID" +msgstr "" + +#: mod/admin.php:400 +msgid "Recipient Name" +msgstr "" + +#: mod/admin.php:401 +msgid "Recipient Profile" +msgstr "" + +#: mod/admin.php:403 +msgid "Created" +msgstr "" + +#: mod/admin.php:404 +msgid "Last Tried" +msgstr "" + +#: mod/admin.php:405 +msgid "" +"This page lists the content of the queue for outgoing postings. These are " +"postings the initial delivery failed for. They will be resend later and " +"eventually deleted if the delivery fails permanently." +msgstr "" + +#: mod/admin.php:424 mod/admin.php:1323 +msgid "Normal Account" +msgstr "" + +#: mod/admin.php:425 mod/admin.php:1324 +msgid "Soapbox Account" +msgstr "" + +#: mod/admin.php:426 mod/admin.php:1325 +msgid "Community/Celebrity Account" +msgstr "" + +#: mod/admin.php:427 mod/admin.php:1326 +msgid "Automatic Friend Account" +msgstr "" + +#: mod/admin.php:428 +msgid "Blog Account" +msgstr "" + +#: mod/admin.php:429 +msgid "Private Forum" +msgstr "" + +#: mod/admin.php:455 +msgid "Message queues" +msgstr "" + +#: mod/admin.php:461 +msgid "Summary" +msgstr "" + +#: mod/admin.php:464 +msgid "Registered users" +msgstr "" + +#: mod/admin.php:466 +msgid "Pending registrations" +msgstr "" + +#: mod/admin.php:467 +msgid "Version" +msgstr "" + +#: mod/admin.php:472 +msgid "Active plugins" +msgstr "" + +#: mod/admin.php:495 +msgid "Can not parse base url. Must have at least ://" +msgstr "" + +#: mod/admin.php:798 +msgid "RINO2 needs mcrypt php extension to work." +msgstr "" + +#: mod/admin.php:806 +msgid "Site settings updated." +msgstr "" + +#: mod/admin.php:834 mod/settings.php:932 +msgid "No special theme for mobile devices" +msgstr "" + +#: mod/admin.php:853 +msgid "No community page" +msgstr "" + +#: mod/admin.php:854 +msgid "Public postings from users of this site" +msgstr "" + +#: mod/admin.php:855 +msgid "Global community page" +msgstr "" + +#: mod/admin.php:860 mod/contacts.php:530 +msgid "Never" +msgstr "" + +#: mod/admin.php:861 +msgid "At post arrival" +msgstr "" + +#: mod/admin.php:869 mod/contacts.php:557 +msgid "Disabled" +msgstr "" + +#: mod/admin.php:871 +msgid "Users, Global Contacts" +msgstr "" + +#: mod/admin.php:872 +msgid "Users, Global Contacts/fallback" +msgstr "" + +#: mod/admin.php:876 +msgid "One month" +msgstr "" + +#: mod/admin.php:877 +msgid "Three months" +msgstr "" + +#: mod/admin.php:878 +msgid "Half a year" +msgstr "" + +#: mod/admin.php:879 +msgid "One year" +msgstr "" + +#: mod/admin.php:884 +msgid "Multi user instance" +msgstr "" + +#: mod/admin.php:907 +msgid "Closed" +msgstr "" + +#: mod/admin.php:908 +msgid "Requires approval" +msgstr "" + +#: mod/admin.php:909 +msgid "Open" +msgstr "" + +#: mod/admin.php:913 +msgid "No SSL policy, links will track page SSL state" +msgstr "" + +#: mod/admin.php:914 +msgid "Force all links to use SSL" +msgstr "" + +#: mod/admin.php:915 +msgid "Self-signed certificate, use SSL for local links only (discouraged)" +msgstr "" + +#: mod/admin.php:927 mod/admin.php:1553 mod/admin.php:1801 mod/admin.php:1875 +#: mod/admin.php:2025 mod/settings.php:676 mod/settings.php:786 +#: mod/settings.php:833 mod/settings.php:902 mod/settings.php:992 +#: mod/settings.php:1259 +msgid "Save Settings" +msgstr "" + +#: mod/admin.php:928 mod/register.php:263 +msgid "Registration" +msgstr "" + +#: mod/admin.php:929 +msgid "File upload" +msgstr "" + +#: mod/admin.php:930 +msgid "Policies" +msgstr "" + +#: mod/admin.php:932 +msgid "Auto Discovered Contact Directory" +msgstr "" + +#: mod/admin.php:933 +msgid "Performance" +msgstr "" + +#: mod/admin.php:934 +msgid "Worker" +msgstr "" + +#: mod/admin.php:935 +msgid "" +"Relocate - WARNING: advanced function. Could make this server unreachable." +msgstr "" + +#: mod/admin.php:938 +msgid "Site name" +msgstr "" + +#: mod/admin.php:939 +msgid "Host name" +msgstr "" + +#: mod/admin.php:940 +msgid "Sender Email" +msgstr "" + +#: mod/admin.php:940 +msgid "" +"The email address your server shall use to send notification emails from." +msgstr "" + +#: mod/admin.php:941 +msgid "Banner/Logo" +msgstr "" + +#: mod/admin.php:942 +msgid "Shortcut icon" +msgstr "" + +#: mod/admin.php:942 +msgid "Link to an icon that will be used for browsers." +msgstr "" + +#: mod/admin.php:943 +msgid "Touch icon" +msgstr "" + +#: mod/admin.php:943 +msgid "Link to an icon that will be used for tablets and mobiles." +msgstr "" + +#: mod/admin.php:944 +msgid "Additional Info" +msgstr "" + +#: mod/admin.php:944 +#, php-format +msgid "" +"For public servers: you can add additional information here that will be " +"listed at %s/siteinfo." +msgstr "" + +#: mod/admin.php:945 +msgid "System language" +msgstr "" + +#: mod/admin.php:946 +msgid "System theme" +msgstr "" + +#: mod/admin.php:946 +msgid "" +"Default system theme - may be over-ridden by user profiles - change theme settings" +msgstr "" + +#: mod/admin.php:947 +msgid "Mobile system theme" +msgstr "" + +#: mod/admin.php:947 +msgid "Theme for mobile devices" +msgstr "" + +#: mod/admin.php:948 +msgid "SSL link policy" +msgstr "" + +#: mod/admin.php:948 +msgid "Determines whether generated links should be forced to use SSL" +msgstr "" + +#: mod/admin.php:949 +msgid "Force SSL" +msgstr "" + +#: mod/admin.php:949 +msgid "" +"Force all Non-SSL requests to SSL - Attention: on some systems it could lead " +"to endless loops." +msgstr "" + +#: mod/admin.php:950 +msgid "Old style 'Share'" +msgstr "" + +#: mod/admin.php:950 +msgid "Deactivates the bbcode element 'share' for repeating items." +msgstr "" + +#: mod/admin.php:951 +msgid "Hide help entry from navigation menu" +msgstr "" + +#: mod/admin.php:951 +msgid "" +"Hides the menu entry for the Help pages from the navigation menu. You can " +"still access it calling /help directly." +msgstr "" + +#: mod/admin.php:952 +msgid "Single user instance" +msgstr "" + +#: mod/admin.php:952 +msgid "Make this instance multi-user or single-user for the named user" +msgstr "" + +#: mod/admin.php:953 +msgid "Maximum image size" +msgstr "" + +#: mod/admin.php:953 +msgid "" +"Maximum size in bytes of uploaded images. Default is 0, which means no " +"limits." +msgstr "" + +#: mod/admin.php:954 +msgid "Maximum image length" +msgstr "" + +#: mod/admin.php:954 +msgid "" +"Maximum length in pixels of the longest side of uploaded images. Default is " +"-1, which means no limits." +msgstr "" + +#: mod/admin.php:955 +msgid "JPEG image quality" +msgstr "" + +#: mod/admin.php:955 +msgid "" +"Uploaded JPEGS will be saved at this quality setting [0-100]. Default is " +"100, which is full quality." +msgstr "" + +#: mod/admin.php:957 +msgid "Register policy" +msgstr "" + +#: mod/admin.php:958 +msgid "Maximum Daily Registrations" +msgstr "" + +#: mod/admin.php:958 +msgid "" +"If registration is permitted above, this sets the maximum number of new user " +"registrations to accept per day. If register is set to closed, this setting " +"has no effect." +msgstr "" + +#: mod/admin.php:959 +msgid "Register text" +msgstr "" + +#: mod/admin.php:959 +msgid "Will be displayed prominently on the registration page." +msgstr "" + +#: mod/admin.php:960 +msgid "Accounts abandoned after x days" +msgstr "" + +#: mod/admin.php:960 +msgid "" +"Will not waste system resources polling external sites for abandonded " +"accounts. Enter 0 for no time limit." +msgstr "" + +#: mod/admin.php:961 +msgid "Allowed friend domains" +msgstr "" + +#: mod/admin.php:961 +msgid "" +"Comma separated list of domains which are allowed to establish friendships " +"with this site. Wildcards are accepted. Empty to allow any domains" +msgstr "" + +#: mod/admin.php:962 +msgid "Allowed email domains" +msgstr "" + +#: mod/admin.php:962 +msgid "" +"Comma separated list of domains which are allowed in email addresses for " +"registrations to this site. Wildcards are accepted. Empty to allow any " +"domains" +msgstr "" + +#: mod/admin.php:963 +msgid "Block public" +msgstr "" + +#: mod/admin.php:963 +msgid "" +"Check to block public access to all otherwise public personal pages on this " +"site unless you are currently logged in." +msgstr "" + +#: mod/admin.php:964 +msgid "Force publish" +msgstr "" + +#: mod/admin.php:964 +msgid "" +"Check to force all profiles on this site to be listed in the site directory." +msgstr "" + +#: mod/admin.php:965 +msgid "Global directory URL" +msgstr "" + +#: mod/admin.php:965 +msgid "" +"URL to the global directory. If this is not set, the global directory is " +"completely unavailable to the application." +msgstr "" + +#: mod/admin.php:966 +msgid "Allow threaded items" +msgstr "" + +#: mod/admin.php:966 +msgid "Allow infinite level threading for items on this site." +msgstr "" + +#: mod/admin.php:967 +msgid "Private posts by default for new users" +msgstr "" + +#: mod/admin.php:967 +msgid "" +"Set default post permissions for all new members to the default privacy " +"group rather than public." +msgstr "" + +#: mod/admin.php:968 +msgid "Don't include post content in email notifications" +msgstr "" + +#: mod/admin.php:968 +msgid "" +"Don't include the content of a post/comment/private message/etc. in the " +"email notifications that are sent out from this site, as a privacy measure." +msgstr "" + +#: mod/admin.php:969 +msgid "Disallow public access to addons listed in the apps menu." +msgstr "" + +#: mod/admin.php:969 +msgid "" +"Checking this box will restrict addons listed in the apps menu to members " +"only." +msgstr "" + +#: mod/admin.php:970 +msgid "Don't embed private images in posts" +msgstr "" + +#: mod/admin.php:970 +msgid "" +"Don't replace locally-hosted private photos in posts with an embedded copy " +"of the image. This means that contacts who receive posts containing private " +"photos will have to authenticate and load each image, which may take a while." +msgstr "" + +#: mod/admin.php:971 +msgid "Allow Users to set remote_self" +msgstr "" + +#: mod/admin.php:971 +msgid "" +"With checking this, every user is allowed to mark every contact as a " +"remote_self in the repair contact dialog. Setting this flag on a contact " +"causes mirroring every posting of that contact in the users stream." +msgstr "" + +#: mod/admin.php:972 +msgid "Block multiple registrations" +msgstr "" + +#: mod/admin.php:972 +msgid "Disallow users to register additional accounts for use as pages." +msgstr "" + +#: mod/admin.php:973 +msgid "OpenID support" +msgstr "" + +#: mod/admin.php:973 +msgid "OpenID support for registration and logins." +msgstr "" + +#: mod/admin.php:974 +msgid "Fullname check" +msgstr "" + +#: mod/admin.php:974 +msgid "" +"Force users to register with a space between firstname and lastname in Full " +"name, as an antispam measure" +msgstr "" + +#: mod/admin.php:975 +msgid "UTF-8 Regular expressions" +msgstr "" + +#: mod/admin.php:975 +msgid "Use PHP UTF8 regular expressions" +msgstr "" + +#: mod/admin.php:976 +msgid "Community Page Style" +msgstr "" + +#: mod/admin.php:976 +msgid "" +"Type of community page to show. 'Global community' shows every public " +"posting from an open distributed network that arrived on this server." +msgstr "" + +#: mod/admin.php:977 +msgid "Posts per user on community page" +msgstr "" + +#: mod/admin.php:977 +msgid "" +"The maximum number of posts per user on the community page. (Not valid for " +"'Global Community')" +msgstr "" + +#: mod/admin.php:978 +msgid "Enable OStatus support" +msgstr "" + +#: mod/admin.php:978 +msgid "" +"Provide built-in OStatus (StatusNet, GNU Social etc.) compatibility. All " +"communications in OStatus are public, so privacy warnings will be " +"occasionally displayed." +msgstr "" + +#: mod/admin.php:979 +msgid "OStatus conversation completion interval" +msgstr "" + +#: mod/admin.php:979 +msgid "" +"How often shall the poller check for new entries in OStatus conversations? " +"This can be a very ressource task." +msgstr "" + +#: mod/admin.php:980 +msgid "Only import OStatus threads from our contacts" +msgstr "" + +#: mod/admin.php:980 +msgid "" +"Normally we import every content from our OStatus contacts. With this option " +"we only store threads that are started by a contact that is known on our " +"system." +msgstr "" + +#: mod/admin.php:981 +msgid "OStatus support can only be enabled if threading is enabled." +msgstr "" + +#: mod/admin.php:983 +msgid "" +"Diaspora support can't be enabled because Friendica was installed into a sub " +"directory." +msgstr "" + +#: mod/admin.php:984 +msgid "Enable Diaspora support" +msgstr "" + +#: mod/admin.php:984 +msgid "Provide built-in Diaspora network compatibility." +msgstr "" + +#: mod/admin.php:985 +msgid "Only allow Friendica contacts" +msgstr "" + +#: mod/admin.php:985 +msgid "" +"All contacts must use Friendica protocols. All other built-in communication " +"protocols disabled." +msgstr "" + +#: mod/admin.php:986 +msgid "Verify SSL" +msgstr "" + +#: mod/admin.php:986 +msgid "" +"If you wish, you can turn on strict certificate checking. This will mean you " +"cannot connect (at all) to self-signed SSL sites." +msgstr "" + +#: mod/admin.php:987 +msgid "Proxy user" +msgstr "" + +#: mod/admin.php:988 +msgid "Proxy URL" +msgstr "" + +#: mod/admin.php:989 +msgid "Network timeout" +msgstr "" + +#: mod/admin.php:989 +msgid "Value is in seconds. Set to 0 for unlimited (not recommended)." +msgstr "" + +#: mod/admin.php:990 +msgid "Delivery interval" +msgstr "" + +#: mod/admin.php:990 +msgid "" +"Delay background delivery processes by this many seconds to reduce system " +"load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 " +"for large dedicated servers." +msgstr "" + +#: mod/admin.php:991 +msgid "Poll interval" +msgstr "" + +#: mod/admin.php:991 +msgid "" +"Delay background polling processes by this many seconds to reduce system " +"load. If 0, use delivery interval." +msgstr "" + +#: mod/admin.php:992 +msgid "Maximum Load Average" +msgstr "" + +#: mod/admin.php:992 +msgid "" +"Maximum system load before delivery and poll processes are deferred - " +"default 50." +msgstr "" + +#: mod/admin.php:993 +msgid "Maximum Load Average (Frontend)" +msgstr "" + +#: mod/admin.php:993 +msgid "Maximum system load before the frontend quits service - default 50." +msgstr "" + +#: mod/admin.php:994 +msgid "Maximum table size for optimization" +msgstr "" + +#: mod/admin.php:994 +msgid "" +"Maximum table size (in MB) for the automatic optimization - default 100 MB. " +"Enter -1 to disable it." +msgstr "" + +#: mod/admin.php:995 +msgid "Minimum level of fragmentation" +msgstr "" + +#: mod/admin.php:995 +msgid "" +"Minimum fragmenation level to start the automatic optimization - default " +"value is 30%." +msgstr "" + +#: mod/admin.php:997 +msgid "Periodical check of global contacts" +msgstr "" + +#: mod/admin.php:997 +msgid "" +"If enabled, the global contacts are checked periodically for missing or " +"outdated data and the vitality of the contacts and servers." +msgstr "" + +#: mod/admin.php:998 +msgid "Days between requery" +msgstr "" + +#: mod/admin.php:998 +msgid "Number of days after which a server is requeried for his contacts." +msgstr "" + +#: mod/admin.php:999 +msgid "Discover contacts from other servers" +msgstr "" + +#: mod/admin.php:999 +msgid "" +"Periodically query other servers for contacts. You can choose between " +"'users': the users on the remote system, 'Global Contacts': active contacts " +"that are known on the system. The fallback is meant for Redmatrix servers " +"and older friendica servers, where global contacts weren't available. The " +"fallback increases the server load, so the recommened setting is 'Users, " +"Global Contacts'." +msgstr "" + +#: mod/admin.php:1000 +msgid "Timeframe for fetching global contacts" +msgstr "" + +#: mod/admin.php:1000 +msgid "" +"When the discovery is activated, this value defines the timeframe for the " +"activity of the global contacts that are fetched from other servers." +msgstr "" + +#: mod/admin.php:1001 +msgid "Search the local directory" +msgstr "" + +#: mod/admin.php:1001 +msgid "" +"Search the local directory instead of the global directory. When searching " +"locally, every search will be executed on the global directory in the " +"background. This improves the search results when the search is repeated." +msgstr "" + +#: mod/admin.php:1003 +msgid "Publish server information" +msgstr "" + +#: mod/admin.php:1003 +msgid "" +"If enabled, general server and usage data will be published. The data " +"contains the name and version of the server, number of users with public " +"profiles, number of posts and the activated protocols and connectors. See the-federation.info for details." +msgstr "" + +#: mod/admin.php:1005 +msgid "Use MySQL full text engine" +msgstr "" + +#: mod/admin.php:1005 +msgid "" +"Activates the full text engine. Speeds up search - but can only search for " +"four and more characters." +msgstr "" + +#: mod/admin.php:1006 +msgid "Suppress Language" +msgstr "" + +#: mod/admin.php:1006 +msgid "Suppress language information in meta information about a posting." +msgstr "" + +#: mod/admin.php:1007 +msgid "Suppress Tags" +msgstr "" + +#: mod/admin.php:1007 +msgid "Suppress showing a list of hashtags at the end of the posting." +msgstr "" + +#: mod/admin.php:1008 +msgid "Path to item cache" +msgstr "" + +#: mod/admin.php:1008 +msgid "The item caches buffers generated bbcode and external images." +msgstr "" + +#: mod/admin.php:1009 +msgid "Cache duration in seconds" +msgstr "" + +#: mod/admin.php:1009 +msgid "" +"How long should the cache files be hold? Default value is 86400 seconds (One " +"day). To disable the item cache, set the value to -1." +msgstr "" + +#: mod/admin.php:1010 +msgid "Maximum numbers of comments per post" +msgstr "" + +#: mod/admin.php:1010 +msgid "How much comments should be shown for each post? Default value is 100." +msgstr "" + +#: mod/admin.php:1011 +msgid "Path for lock file" +msgstr "" + +#: mod/admin.php:1011 +msgid "" +"The lock file is used to avoid multiple pollers at one time. Only define a " +"folder here." +msgstr "" + +#: mod/admin.php:1012 +msgid "Temp path" +msgstr "" + +#: mod/admin.php:1012 +msgid "" +"If you have a restricted system where the webserver can't access the system " +"temp path, enter another path here." +msgstr "" + +#: mod/admin.php:1013 +msgid "Base path to installation" +msgstr "" + +#: mod/admin.php:1013 +msgid "" +"If the system cannot detect the correct path to your installation, enter the " +"correct path here. This setting should only be set if you are using a " +"restricted system and symbolic links to your webroot." +msgstr "" + +#: mod/admin.php:1014 +msgid "Disable picture proxy" +msgstr "" + +#: mod/admin.php:1014 +msgid "" +"The picture proxy increases performance and privacy. It shouldn't be used on " +"systems with very low bandwith." +msgstr "" + +#: mod/admin.php:1015 +msgid "Enable old style pager" +msgstr "" + +#: mod/admin.php:1015 +msgid "" +"The old style pager has page numbers but slows down massively the page speed." +msgstr "" + +#: mod/admin.php:1016 +msgid "Only search in tags" +msgstr "" + +#: mod/admin.php:1016 +msgid "On large systems the text search can slow down the system extremely." +msgstr "" + +#: mod/admin.php:1018 +msgid "New base url" +msgstr "" + +#: mod/admin.php:1018 +msgid "" +"Change base url for this server. Sends relocate message to all DFRN contacts " +"of all users." +msgstr "" + +#: mod/admin.php:1020 +msgid "RINO Encryption" +msgstr "" + +#: mod/admin.php:1020 +msgid "Encryption layer between nodes." +msgstr "" + +#: mod/admin.php:1021 +msgid "Embedly API key" +msgstr "" + +#: mod/admin.php:1021 +msgid "" +"Embedly is used to fetch additional data for " +"web pages. This is an optional parameter." +msgstr "" + +#: mod/admin.php:1023 +msgid "Enable 'worker' background processing" +msgstr "" + +#: mod/admin.php:1023 +msgid "" +"The worker background processing limits the number of parallel background " +"jobs to a maximum number and respects the system load." +msgstr "" + +#: mod/admin.php:1024 +msgid "Maximum number of parallel workers" +msgstr "" + +#: mod/admin.php:1024 +msgid "" +"On shared hosters set this to 2. On larger systems, values of 10 are great. " +"Default value is 4." +msgstr "" + +#: mod/admin.php:1025 +msgid "Don't use 'proc_open' with the worker" +msgstr "" + +#: mod/admin.php:1025 +msgid "" +"Enable this if your system doesn't allow the use of 'proc_open'. This can " +"happen on shared hosters. If this is enabled you should increase the " +"frequency of poller calls in your crontab." +msgstr "" + +#: mod/admin.php:1026 +msgid "Enable fastlane" +msgstr "" + +#: mod/admin.php:1026 +msgid "" +"When enabed, the fastlane mechanism starts an additional worker if processes " +"with higher priority are blocked by processes of lower priority." +msgstr "" + +#: mod/admin.php:1055 +msgid "Update has been marked successful" +msgstr "" + +#: mod/admin.php:1063 +#, php-format +msgid "Database structure update %s was successfully applied." +msgstr "" + +#: mod/admin.php:1066 +#, php-format +msgid "Executing of database structure update %s failed with error: %s" +msgstr "" + +#: mod/admin.php:1078 +#, php-format +msgid "Executing %s failed with error: %s" +msgstr "" + +#: mod/admin.php:1081 +#, php-format +msgid "Update %s was successfully applied." +msgstr "" + +#: mod/admin.php:1085 +#, php-format +msgid "Update %s did not return a status. Unknown if it succeeded." +msgstr "" + +#: mod/admin.php:1087 +#, php-format +msgid "There was no additional update function %s that needed to be called." +msgstr "" + +#: mod/admin.php:1106 +msgid "No failed updates." +msgstr "" + +#: mod/admin.php:1107 +msgid "Check database structure" +msgstr "" + +#: mod/admin.php:1112 +msgid "Failed Updates" +msgstr "" + +#: mod/admin.php:1113 +msgid "" +"This does not include updates prior to 1139, which did not return a status." +msgstr "" + +#: mod/admin.php:1114 +msgid "Mark success (if update was manually applied)" +msgstr "" + +#: mod/admin.php:1115 +msgid "Attempt to execute this update step automatically" +msgstr "" + +#: mod/admin.php:1149 +#, php-format +msgid "" +"\n" +"\t\t\tDear %1$s,\n" +"\t\t\t\tthe administrator of %2$s has set up an account for you." +msgstr "" + +#: mod/admin.php:1152 +#, php-format +msgid "" +"\n" +"\t\t\tThe login details are as follows:\n" +"\n" +"\t\t\tSite Location:\t%1$s\n" +"\t\t\tLogin Name:\t\t%2$s\n" +"\t\t\tPassword:\t\t%3$s\n" +"\n" +"\t\t\tYou may change your password from your account \"Settings\" page after " +"logging\n" +"\t\t\tin.\n" +"\n" +"\t\t\tPlease take a few moments to review the other account settings on that " +"page.\n" +"\n" +"\t\t\tYou may also wish to add some basic information to your default " +"profile\n" +"\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n" +"\n" +"\t\t\tWe recommend setting your full name, adding a profile photo,\n" +"\t\t\tadding some profile \"keywords\" (very useful in making new friends) - " +"and\n" +"\t\t\tperhaps what country you live in; if you do not wish to be more " +"specific\n" +"\t\t\tthan that.\n" +"\n" +"\t\t\tWe fully respect your right to privacy, and none of these items are " +"necessary.\n" +"\t\t\tIf you are new and do not know anybody here, they may help\n" +"\t\t\tyou to make some new and interesting friends.\n" +"\n" +"\t\t\tThank you and welcome to %4$s." +msgstr "" + +#: mod/admin.php:1196 +#, php-format +msgid "%s user blocked/unblocked" +msgid_plural "%s users blocked/unblocked" +msgstr[0] "" +msgstr[1] "" + +#: mod/admin.php:1203 +#, php-format +msgid "%s user deleted" +msgid_plural "%s users deleted" +msgstr[0] "" +msgstr[1] "" + +#: mod/admin.php:1250 +#, php-format +msgid "User '%s' deleted" +msgstr "" + +#: mod/admin.php:1258 +#, php-format +msgid "User '%s' unblocked" +msgstr "" + +#: mod/admin.php:1258 +#, php-format +msgid "User '%s' blocked" +msgstr "" + +#: mod/admin.php:1367 mod/admin.php:1392 +msgid "Register date" +msgstr "" + +#: mod/admin.php:1367 mod/admin.php:1392 +msgid "Last login" +msgstr "" + +#: mod/admin.php:1367 mod/admin.php:1392 +msgid "Last item" +msgstr "" + +#: mod/admin.php:1367 mod/settings.php:43 +msgid "Account" +msgstr "" + +#: mod/admin.php:1376 +msgid "Add User" +msgstr "" + +#: mod/admin.php:1377 +msgid "select all" +msgstr "" + +#: mod/admin.php:1378 +msgid "User registrations waiting for confirm" +msgstr "" + +#: mod/admin.php:1379 +msgid "User waiting for permanent deletion" +msgstr "" + +#: mod/admin.php:1380 +msgid "Request date" +msgstr "" + +#: mod/admin.php:1381 +msgid "No registrations." +msgstr "" + +#: mod/admin.php:1383 +msgid "Deny" +msgstr "" + +#: mod/admin.php:1385 mod/contacts.php:605 mod/contacts.php:805 +#: mod/contacts.php:992 +msgid "Block" +msgstr "" + +#: mod/admin.php:1386 mod/contacts.php:605 mod/contacts.php:805 +#: mod/contacts.php:992 +msgid "Unblock" +msgstr "" + +#: mod/admin.php:1387 +msgid "Site admin" +msgstr "" + +#: mod/admin.php:1388 +msgid "Account expired" +msgstr "" + +#: mod/admin.php:1391 +msgid "New User" +msgstr "" + +#: mod/admin.php:1392 +msgid "Deleted since" +msgstr "" + +#: mod/admin.php:1397 +msgid "" +"Selected users will be deleted!\\n\\nEverything these users had posted on " +"this site will be permanently deleted!\\n\\nAre you sure?" +msgstr "" + +#: mod/admin.php:1398 +msgid "" +"The user {0} will be deleted!\\n\\nEverything this user has posted on this " +"site will be permanently deleted!\\n\\nAre you sure?" +msgstr "" + +#: mod/admin.php:1408 +msgid "Name of the new user." +msgstr "" + +#: mod/admin.php:1409 +msgid "Nickname" +msgstr "" + +#: mod/admin.php:1409 +msgid "Nickname of the new user." +msgstr "" + +#: mod/admin.php:1410 +msgid "Email address of the new user." +msgstr "" + +#: mod/admin.php:1453 +#, php-format +msgid "Plugin %s disabled." +msgstr "" + +#: mod/admin.php:1457 +#, php-format +msgid "Plugin %s enabled." +msgstr "" + +#: mod/admin.php:1468 mod/admin.php:1704 +msgid "Disable" +msgstr "" + +#: mod/admin.php:1470 mod/admin.php:1706 +msgid "Enable" +msgstr "" + +#: mod/admin.php:1493 mod/admin.php:1751 +msgid "Toggle" +msgstr "" + +#: mod/admin.php:1501 mod/admin.php:1760 +msgid "Author: " +msgstr "" + +#: mod/admin.php:1502 mod/admin.php:1761 +msgid "Maintainer: " +msgstr "" + +#: mod/admin.php:1554 +msgid "Reload active plugins" +msgstr "" + +#: mod/admin.php:1559 +#, php-format +msgid "" +"There are currently no plugins available on your node. You can find the " +"official plugin repository at %1$s and might find other interesting plugins " +"in the open plugin registry at %2$s" +msgstr "" + +#: mod/admin.php:1664 +msgid "No themes found." +msgstr "" + +#: mod/admin.php:1742 +msgid "Screenshot" +msgstr "" + +#: mod/admin.php:1802 +msgid "Reload active themes" +msgstr "" + +#: mod/admin.php:1807 +#, php-format +msgid "No themes found on the system. They should be paced in %1$s" +msgstr "" + +#: mod/admin.php:1808 +msgid "[Experimental]" +msgstr "" + +#: mod/admin.php:1809 +msgid "[Unsupported]" +msgstr "" + +#: mod/admin.php:1833 +msgid "Log settings updated." +msgstr "" + +#: mod/admin.php:1865 +msgid "PHP log currently enabled." +msgstr "" + +#: mod/admin.php:1867 +msgid "PHP log currently disabled." +msgstr "" + +#: mod/admin.php:1876 +msgid "Clear" +msgstr "" + +#: mod/admin.php:1881 +msgid "Enable Debugging" +msgstr "" + +#: mod/admin.php:1882 +msgid "Log file" +msgstr "" + +#: mod/admin.php:1882 +msgid "" +"Must be writable by web server. Relative to your Friendica top-level " +"directory." +msgstr "" + +#: mod/admin.php:1883 +msgid "Log level" +msgstr "" + +#: mod/admin.php:1886 +msgid "PHP logging" +msgstr "" + +#: mod/admin.php:1887 +msgid "" +"To enable logging of PHP errors and warnings you can add the following to " +"the .htconfig.php file of your installation. The filename set in the " +"'error_log' line is relative to the friendica top-level directory and must " +"be writeable by the web server. The option '1' for 'log_errors' and " +"'display_errors' is to enable these options, set to '0' to disable them." +msgstr "" + +#: mod/admin.php:2014 mod/admin.php:2015 mod/settings.php:776 +msgid "Off" +msgstr "" + +#: mod/admin.php:2014 mod/admin.php:2015 mod/settings.php:776 +msgid "On" +msgstr "" + +#: mod/admin.php:2015 +#, php-format +msgid "Lock feature %s" +msgstr "" + +#: mod/admin.php:2023 +msgid "Manage Additional Features" +msgstr "" + +#: mod/allfriends.php:43 +msgid "No friends to display." +msgstr "" + +#: mod/cal.php:149 mod/display.php:328 mod/profile.php:155 +msgid "Access to this profile has been restricted." +msgstr "" + +#: mod/cal.php:276 mod/events.php:380 +msgid "View" +msgstr "" + +#: mod/cal.php:277 mod/events.php:382 +msgid "Previous" +msgstr "" + +#: mod/cal.php:278 mod/events.php:383 mod/install.php:231 +msgid "Next" +msgstr "" + +#: mod/cal.php:287 mod/events.php:392 +msgid "list" +msgstr "" + +#: mod/cal.php:297 +msgid "User not found" +msgstr "" + +#: mod/cal.php:313 +msgid "This calendar format is not supported" +msgstr "" + +#: mod/cal.php:315 +msgid "No exportable data found" +msgstr "" + +#: mod/cal.php:330 +msgid "calendar" +msgstr "" + +#: mod/common.php:86 +msgid "No contacts in common." +msgstr "" + +#: mod/common.php:134 mod/contacts.php:863 +msgid "Common Friends" +msgstr "" + +#: mod/community.php:27 +msgid "Not available." +msgstr "" + +#: mod/contacts.php:128 +#, php-format +msgid "%d contact edited." +msgid_plural "%d contacts edited." +msgstr[0] "" +msgstr[1] "" + +#: mod/contacts.php:159 mod/contacts.php:368 +msgid "Could not access contact record." +msgstr "" + +#: mod/contacts.php:173 +msgid "Could not locate selected profile." +msgstr "" + +#: mod/contacts.php:206 +msgid "Contact updated." +msgstr "" + +#: mod/contacts.php:389 +msgid "Contact has been blocked" +msgstr "" + +#: mod/contacts.php:389 +msgid "Contact has been unblocked" +msgstr "" + +#: mod/contacts.php:400 +msgid "Contact has been ignored" +msgstr "" + +#: mod/contacts.php:400 +msgid "Contact has been unignored" +msgstr "" + +#: mod/contacts.php:412 +msgid "Contact has been archived" +msgstr "" + +#: mod/contacts.php:412 +msgid "Contact has been unarchived" +msgstr "" + +#: mod/contacts.php:437 +msgid "Drop contact" +msgstr "" + +#: mod/contacts.php:440 mod/contacts.php:801 +msgid "Do you really want to delete this contact?" +msgstr "" + +#: mod/contacts.php:457 +msgid "Contact has been removed." +msgstr "" + +#: mod/contacts.php:498 +#, php-format +msgid "You are mutual friends with %s" +msgstr "" + +#: mod/contacts.php:502 +#, php-format +msgid "You are sharing with %s" +msgstr "" + +#: mod/contacts.php:507 +#, php-format +msgid "%s is sharing with you" +msgstr "" + +#: mod/contacts.php:527 +msgid "Private communications are not available for this contact." +msgstr "" + +#: mod/contacts.php:534 +msgid "(Update was successful)" +msgstr "" + +#: mod/contacts.php:534 +msgid "(Update was not successful)" +msgstr "" + +#: mod/contacts.php:536 mod/contacts.php:973 +msgid "Suggest friends" +msgstr "" + +#: mod/contacts.php:540 +#, php-format +msgid "Network type: %s" +msgstr "" + +#: mod/contacts.php:553 +msgid "Communications lost with this contact!" +msgstr "" + +#: mod/contacts.php:556 +msgid "Fetch further information for feeds" +msgstr "" + +#: mod/contacts.php:557 +msgid "Fetch information" +msgstr "" + +#: mod/contacts.php:557 +msgid "Fetch information and keywords" +msgstr "" + +#: mod/contacts.php:575 +msgid "Contact" +msgstr "" + +#: mod/contacts.php:578 +msgid "Profile Visibility" +msgstr "" + +#: mod/contacts.php:579 +#, php-format +msgid "" +"Please choose the profile you would like to display to %s when viewing your " +"profile securely." +msgstr "" + +#: mod/contacts.php:580 +msgid "Contact Information / Notes" +msgstr "" + +#: mod/contacts.php:581 +msgid "Edit contact notes" +msgstr "" + +#: mod/contacts.php:587 +msgid "Block/Unblock contact" +msgstr "" + +#: mod/contacts.php:588 +msgid "Ignore contact" +msgstr "" + +#: mod/contacts.php:589 +msgid "Repair URL settings" +msgstr "" + +#: mod/contacts.php:590 +msgid "View conversations" +msgstr "" + +#: mod/contacts.php:596 +msgid "Last update:" +msgstr "" + +#: mod/contacts.php:598 +msgid "Update public posts" +msgstr "" + +#: mod/contacts.php:600 mod/contacts.php:983 +msgid "Update now" +msgstr "" + +#: mod/contacts.php:606 mod/contacts.php:806 mod/contacts.php:1000 +msgid "Unignore" +msgstr "" + +#: mod/contacts.php:610 +msgid "Currently blocked" +msgstr "" + +#: mod/contacts.php:611 +msgid "Currently ignored" +msgstr "" + +#: mod/contacts.php:612 +msgid "Currently archived" +msgstr "" + +#: mod/contacts.php:613 +msgid "" +"Replies/likes to your public posts may still be visible" +msgstr "" + +#: mod/contacts.php:614 +msgid "Notification for new posts" +msgstr "" + +#: mod/contacts.php:614 +msgid "Send a notification of every new post of this contact" +msgstr "" + +#: mod/contacts.php:617 +msgid "Blacklisted keywords" +msgstr "" + +#: mod/contacts.php:617 +msgid "" +"Comma separated list of keywords that should not be converted to hashtags, " +"when \"Fetch information and keywords\" is selected" +msgstr "" + +#: mod/contacts.php:635 +msgid "Actions" +msgstr "" + +#: mod/contacts.php:638 +msgid "Contact Settings" +msgstr "" + +#: mod/contacts.php:684 +msgid "Suggestions" +msgstr "" + +#: mod/contacts.php:687 +msgid "Suggest potential friends" +msgstr "" + +#: mod/contacts.php:695 +msgid "Show all contacts" +msgstr "" + +#: mod/contacts.php:700 +msgid "Unblocked" +msgstr "" + +#: mod/contacts.php:703 +msgid "Only show unblocked contacts" +msgstr "" + +#: mod/contacts.php:709 +msgid "Blocked" +msgstr "" + +#: mod/contacts.php:712 +msgid "Only show blocked contacts" +msgstr "" + +#: mod/contacts.php:718 +msgid "Ignored" +msgstr "" + +#: mod/contacts.php:721 +msgid "Only show ignored contacts" +msgstr "" + +#: mod/contacts.php:727 +msgid "Archived" +msgstr "" + +#: mod/contacts.php:730 +msgid "Only show archived contacts" +msgstr "" + +#: mod/contacts.php:736 +msgid "Hidden" +msgstr "" + +#: mod/contacts.php:739 +msgid "Only show hidden contacts" +msgstr "" + +#: mod/contacts.php:796 +msgid "Search your contacts" +msgstr "" + +#: mod/contacts.php:804 mod/settings.php:158 mod/settings.php:702 +msgid "Update" +msgstr "" + +#: mod/contacts.php:807 mod/contacts.php:1008 +msgid "Archive" +msgstr "" + +#: mod/contacts.php:807 mod/contacts.php:1008 +msgid "Unarchive" +msgstr "" + +#: mod/contacts.php:810 +msgid "Batch Actions" +msgstr "" + +#: mod/contacts.php:856 +msgid "View all contacts" +msgstr "" + +#: mod/contacts.php:866 +msgid "View all common friends" +msgstr "" + +#: mod/contacts.php:873 +msgid "Advanced Contact Settings" +msgstr "" + +#: mod/contacts.php:916 +msgid "Mutual Friendship" +msgstr "" + +#: mod/contacts.php:920 +msgid "is a fan of yours" +msgstr "" + +#: mod/contacts.php:924 +msgid "you are a fan of" +msgstr "" + +#: mod/contacts.php:994 +msgid "Toggle Blocked status" +msgstr "" + +#: mod/contacts.php:1002 +msgid "Toggle Ignored status" +msgstr "" + +#: mod/contacts.php:1010 +msgid "Toggle Archive status" +msgstr "" + +#: mod/contacts.php:1018 +msgid "Delete contact" +msgstr "" + +#: mod/directory.php:197 view/theme/vier/theme.php:201 +#: view/theme/diabook/theme.php:525 +msgid "Global Directory" +msgstr "" + +#: mod/directory.php:199 +msgid "Find on this site" +msgstr "" + +#: mod/directory.php:201 +msgid "Results for:" +msgstr "" + +#: mod/directory.php:203 +msgid "Site Directory" +msgstr "" + +#: mod/directory.php:210 +msgid "No entries (some entries may be hidden)." +msgstr "" + +#: mod/dirfind.php:36 +#, php-format +msgid "People Search - %s" +msgstr "" + +#: mod/dirfind.php:47 +#, php-format +msgid "Forum Search - %s" +msgstr "" + +#: mod/dirfind.php:240 mod/match.php:107 +msgid "No matches" +msgstr "" + +#: mod/display.php:473 +msgid "Item has been removed." +msgstr "" + +#: mod/events.php:95 mod/events.php:97 +msgid "Event can not end before it has started." +msgstr "" + +#: mod/events.php:104 mod/events.php:106 +msgid "Event title and start time are required." +msgstr "" + +#: mod/events.php:381 +msgid "Create New Event" +msgstr "" + +#: mod/events.php:482 +msgid "Event details" +msgstr "" + +#: mod/events.php:483 +msgid "Starting date and Title are required." +msgstr "" + +#: mod/events.php:484 mod/events.php:485 +msgid "Event Starts:" +msgstr "" + +#: mod/events.php:486 mod/events.php:502 +msgid "Finish date/time is not known or not relevant" +msgstr "" + +#: mod/events.php:488 mod/events.php:489 +msgid "Event Finishes:" +msgstr "" + +#: mod/events.php:490 mod/events.php:503 +msgid "Adjust for viewer timezone" +msgstr "" + +#: mod/events.php:492 +msgid "Description:" +msgstr "" + +#: mod/events.php:496 mod/events.php:498 +msgid "Title:" +msgstr "" + +#: mod/events.php:499 mod/events.php:500 +msgid "Share this event" msgstr "" #: mod/install.php:139 @@ -6142,7 +7128,7 @@ msgid "" "or mysql." msgstr "" -#: mod/install.php:161 mod/install.php:230 mod/install.php:597 +#: mod/install.php:161 mod/install.php:230 mod/install.php:602 msgid "Please see the file \"INSTALL.txt\"." msgstr "" @@ -6320,808 +7306,209 @@ msgstr "" msgid "XML PHP module" msgstr "" -#: mod/install.php:424 mod/install.php:426 +#: mod/install.php:421 +msgid "iconv module" +msgstr "" + +#: mod/install.php:425 mod/install.php:427 msgid "Apache mod_rewrite module" msgstr "" -#: mod/install.php:424 +#: mod/install.php:425 msgid "" "Error: Apache webserver mod-rewrite module is required but not installed." msgstr "" -#: mod/install.php:432 +#: mod/install.php:433 msgid "Error: libCURL PHP module required but not installed." msgstr "" -#: mod/install.php:436 +#: mod/install.php:437 msgid "" "Error: GD graphics PHP module with JPEG support required but not installed." msgstr "" -#: mod/install.php:440 +#: mod/install.php:441 msgid "Error: openssl PHP module required but not installed." msgstr "" -#: mod/install.php:444 +#: mod/install.php:445 msgid "Error: mysqli PHP module required but not installed." msgstr "" -#: mod/install.php:448 +#: mod/install.php:449 msgid "Error: mb_string PHP module required but not installed." msgstr "" -#: mod/install.php:452 +#: mod/install.php:453 msgid "Error: mcrypt PHP module required but not installed." msgstr "" -#: mod/install.php:461 +#: mod/install.php:457 +msgid "Error: iconv PHP module required but not installed." +msgstr "" + +#: mod/install.php:466 msgid "" "If you are using php_cli, please make sure that mcrypt module is enabled in " "its config file" msgstr "" -#: mod/install.php:464 +#: mod/install.php:469 msgid "" "Function mcrypt_create_iv() is not defined. This is needed to enable RINO2 " "encryption layer." msgstr "" -#: mod/install.php:466 +#: mod/install.php:471 msgid "mcrypt_create_iv() function" msgstr "" -#: mod/install.php:474 +#: mod/install.php:479 msgid "Error, XML PHP module required but not installed." msgstr "" -#: mod/install.php:489 +#: mod/install.php:494 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 "" -#: mod/install.php:490 +#: mod/install.php:495 msgid "" "This is most often a permission setting, as the web server may not be able " "to write files in your folder - even if you can." msgstr "" -#: mod/install.php:491 +#: mod/install.php:496 msgid "" "At the end of this procedure, we will give you a text to save in a file " "named .htconfig.php in your Friendica top folder." msgstr "" -#: mod/install.php:492 +#: mod/install.php:497 msgid "" "You can alternatively skip this procedure and perform a manual installation. " "Please see the file \"INSTALL.txt\" for instructions." msgstr "" -#: mod/install.php:495 +#: mod/install.php:500 msgid ".htconfig.php is writable" msgstr "" -#: mod/install.php:505 +#: mod/install.php:510 msgid "" "Friendica uses the Smarty3 template engine to render its web views. Smarty3 " "compiles templates to PHP to speed up rendering." msgstr "" -#: mod/install.php:506 +#: mod/install.php:511 msgid "" "In order to store these compiled templates, the web server needs to have " "write access to the directory view/smarty3/ under the Friendica top level " "folder." msgstr "" -#: mod/install.php:507 +#: mod/install.php:512 msgid "" "Please ensure that the user that your web server runs as (e.g. www-data) has " "write access to this folder." msgstr "" -#: mod/install.php:508 +#: mod/install.php:513 msgid "" "Note: as a security measure, you should give the web server write access to " "view/smarty3/ only--not the template files (.tpl) that it contains." msgstr "" -#: mod/install.php:511 +#: mod/install.php:516 msgid "view/smarty3 is writable" msgstr "" -#: mod/install.php:527 +#: mod/install.php:532 msgid "" "Url rewrite in .htaccess is not working. Check your server configuration." msgstr "" -#: mod/install.php:529 +#: mod/install.php:534 msgid "Url rewrite is working" msgstr "" -#: mod/install.php:546 +#: mod/install.php:551 msgid "ImageMagick PHP extension is installed" msgstr "" -#: mod/install.php:548 +#: mod/install.php:553 msgid "ImageMagick supports GIF" msgstr "" -#: mod/install.php:556 +#: mod/install.php:561 msgid "" "The database configuration file \".htconfig.php\" could not be written. " "Please use the enclosed text to create a configuration file in your web " "server root." msgstr "" -#: mod/install.php:595 +#: mod/install.php:600 msgid "

      What next

      " msgstr "" -#: mod/install.php:596 +#: mod/install.php:601 msgid "" "IMPORTANT: You will need to [manually] setup a scheduled task for the poller." msgstr "" -#: mod/subthread.php:103 -#, php-format -msgid "%1$s is following %2$s's %3$s" +#: mod/item.php:116 +msgid "Unable to locate original post." msgstr "" -#: mod/attach.php:8 -msgid "Item not available." +#: mod/item.php:340 +msgid "Empty post discarded." msgstr "" -#: mod/attach.php:20 -msgid "Item was not found." +#: mod/item.php:895 +msgid "System error. Post not saved." msgstr "" -#: mod/contacts.php:128 -#, php-format -msgid "%d contact edited." -msgid_plural "%d contacts edited." -msgstr[0] "" -msgstr[1] "" - -#: mod/contacts.php:159 mod/contacts.php:368 -msgid "Could not access contact record." -msgstr "" - -#: mod/contacts.php:173 -msgid "Could not locate selected profile." -msgstr "" - -#: mod/contacts.php:206 -msgid "Contact updated." -msgstr "" - -#: mod/contacts.php:208 mod/dfrn_request.php:571 -msgid "Failed to update contact record." -msgstr "" - -#: mod/contacts.php:389 -msgid "Contact has been blocked" -msgstr "" - -#: mod/contacts.php:389 -msgid "Contact has been unblocked" -msgstr "" - -#: mod/contacts.php:400 -msgid "Contact has been ignored" -msgstr "" - -#: mod/contacts.php:400 -msgid "Contact has been unignored" -msgstr "" - -#: mod/contacts.php:412 -msgid "Contact has been archived" -msgstr "" - -#: mod/contacts.php:412 -msgid "Contact has been unarchived" -msgstr "" - -#: mod/contacts.php:439 mod/contacts.php:794 -msgid "Do you really want to delete this contact?" -msgstr "" - -#: mod/contacts.php:456 -msgid "Contact has been removed." -msgstr "" - -#: mod/contacts.php:497 -#, php-format -msgid "You are mutual friends with %s" -msgstr "" - -#: mod/contacts.php:501 -#, php-format -msgid "You are sharing with %s" -msgstr "" - -#: mod/contacts.php:506 -#, php-format -msgid "%s is sharing with you" -msgstr "" - -#: mod/contacts.php:526 -msgid "Private communications are not available for this contact." -msgstr "" - -#: mod/contacts.php:533 -msgid "(Update was successful)" -msgstr "" - -#: mod/contacts.php:533 -msgid "(Update was not successful)" -msgstr "" - -#: mod/contacts.php:535 mod/contacts.php:972 -msgid "Suggest friends" -msgstr "" - -#: mod/contacts.php:539 -#, php-format -msgid "Network type: %s" -msgstr "" - -#: mod/contacts.php:552 -msgid "Communications lost with this contact!" -msgstr "" - -#: mod/contacts.php:555 -msgid "Fetch further information for feeds" -msgstr "" - -#: mod/contacts.php:556 -msgid "Fetch information" -msgstr "" - -#: mod/contacts.php:556 -msgid "Fetch information and keywords" -msgstr "" - -#: mod/contacts.php:576 -msgid "Profile Visibility" -msgstr "" - -#: mod/contacts.php:577 +#: mod/item.php:985 #, php-format msgid "" -"Please choose the profile you would like to display to %s when viewing your " -"profile securely." +"This message was sent to you by %s, a member of the Friendica social network." msgstr "" -#: mod/contacts.php:578 -msgid "Contact Information / Notes" -msgstr "" - -#: mod/contacts.php:579 -msgid "Edit contact notes" -msgstr "" - -#: mod/contacts.php:585 -msgid "Block/Unblock contact" -msgstr "" - -#: mod/contacts.php:586 -msgid "Ignore contact" -msgstr "" - -#: mod/contacts.php:587 -msgid "Repair URL settings" -msgstr "" - -#: mod/contacts.php:588 -msgid "View conversations" -msgstr "" - -#: mod/contacts.php:594 -msgid "Last update:" -msgstr "" - -#: mod/contacts.php:596 -msgid "Update public posts" -msgstr "" - -#: mod/contacts.php:598 mod/contacts.php:982 -msgid "Update now" -msgstr "" - -#: mod/contacts.php:604 mod/contacts.php:799 mod/contacts.php:999 -msgid "Unignore" -msgstr "" - -#: mod/contacts.php:607 -msgid "Currently blocked" -msgstr "" - -#: mod/contacts.php:608 -msgid "Currently ignored" -msgstr "" - -#: mod/contacts.php:609 -msgid "Currently archived" -msgstr "" - -#: mod/contacts.php:610 -msgid "" -"Replies/likes to your public posts may still be visible" -msgstr "" - -#: mod/contacts.php:611 -msgid "Notification for new posts" -msgstr "" - -#: mod/contacts.php:611 -msgid "Send a notification of every new post of this contact" -msgstr "" - -#: mod/contacts.php:614 -msgid "Blacklisted keywords" -msgstr "" - -#: mod/contacts.php:614 -msgid "" -"Comma separated list of keywords that should not be converted to hashtags, " -"when \"Fetch information and keywords\" is selected" -msgstr "" - -#: mod/contacts.php:629 -msgid "Actions" -msgstr "" - -#: mod/contacts.php:632 -msgid "Contact Settings" -msgstr "" - -#: mod/contacts.php:677 -msgid "Suggestions" -msgstr "" - -#: mod/contacts.php:680 -msgid "Suggest potential friends" -msgstr "" - -#: mod/contacts.php:685 mod/group.php:192 -msgid "All Contacts" -msgstr "" - -#: mod/contacts.php:688 -msgid "Show all contacts" -msgstr "" - -#: mod/contacts.php:693 -msgid "Unblocked" -msgstr "" - -#: mod/contacts.php:696 -msgid "Only show unblocked contacts" -msgstr "" - -#: mod/contacts.php:702 -msgid "Blocked" -msgstr "" - -#: mod/contacts.php:705 -msgid "Only show blocked contacts" -msgstr "" - -#: mod/contacts.php:711 -msgid "Ignored" -msgstr "" - -#: mod/contacts.php:714 -msgid "Only show ignored contacts" -msgstr "" - -#: mod/contacts.php:720 -msgid "Archived" -msgstr "" - -#: mod/contacts.php:723 -msgid "Only show archived contacts" -msgstr "" - -#: mod/contacts.php:729 -msgid "Hidden" -msgstr "" - -#: mod/contacts.php:732 -msgid "Only show hidden contacts" -msgstr "" - -#: mod/contacts.php:789 -msgid "Search your contacts" -msgstr "" - -#: mod/contacts.php:790 -msgid "Finding: " -msgstr "" - -#: mod/contacts.php:797 mod/settings.php:158 mod/settings.php:689 -msgid "Update" -msgstr "" - -#: mod/contacts.php:800 mod/contacts.php:1007 -msgid "Archive" -msgstr "" - -#: mod/contacts.php:800 mod/contacts.php:1007 -msgid "Unarchive" -msgstr "" - -#: mod/contacts.php:848 -msgid "View all contacts" -msgstr "" - -#: mod/contacts.php:855 mod/common.php:134 -msgid "Common Friends" -msgstr "" - -#: mod/contacts.php:858 -msgid "View all common friends" -msgstr "" - -#: mod/contacts.php:865 -msgid "Advanced Contact Settings" -msgstr "" - -#: mod/contacts.php:910 -msgid "Mutual Friendship" -msgstr "" - -#: mod/contacts.php:914 -msgid "is a fan of yours" -msgstr "" - -#: mod/contacts.php:918 -msgid "you are a fan of" -msgstr "" - -#: mod/contacts.php:993 -msgid "Toggle Blocked status" -msgstr "" - -#: mod/contacts.php:1001 -msgid "Toggle Ignored status" -msgstr "" - -#: mod/contacts.php:1009 -msgid "Toggle Archive status" -msgstr "" - -#: mod/contacts.php:1017 -msgid "Delete contact" -msgstr "" - -#: mod/follow.php:19 mod/dfrn_request.php:866 -msgid "Submit Request" -msgstr "" - -#: mod/follow.php:30 -msgid "You already added this contact." -msgstr "" - -#: mod/follow.php:39 -msgid "Diaspora support isn't enabled. Contact can't be added." -msgstr "" - -#: mod/follow.php:46 -msgid "OStatus support is disabled. Contact can't be added." -msgstr "" - -#: mod/follow.php:53 -msgid "The network type couldn't be detected. Contact can't be added." -msgstr "" - -#: mod/follow.php:109 mod/dfrn_request.php:852 -msgid "Please answer the following:" -msgstr "" - -#: mod/follow.php:110 mod/dfrn_request.php:853 +#: mod/item.php:987 #, php-format -msgid "Does %s know you?" +msgid "You may visit them online at %s" msgstr "" -#: mod/follow.php:111 mod/dfrn_request.php:857 -msgid "Add a personal note:" -msgstr "" - -#: mod/follow.php:117 mod/dfrn_request.php:863 -msgid "Your Identity Address:" -msgstr "" - -#: mod/follow.php:180 -msgid "Contact added" -msgstr "" - -#: mod/apps.php:11 -msgid "Applications" -msgstr "" - -#: mod/apps.php:14 -msgid "No installed applications." -msgstr "" - -#: mod/suggest.php:27 -msgid "Do you really want to delete this suggestion?" -msgstr "" - -#: mod/suggest.php:71 +#: mod/item.php:988 msgid "" -"No suggestions available. If this is a new site, please try again in 24 " -"hours." +"Please contact the sender by replying to this post if you do not wish to " +"receive these messages." msgstr "" -#: mod/suggest.php:83 mod/suggest.php:101 -msgid "Ignore/Hide" -msgstr "" - -#: mod/p.php:9 -msgid "Not Extended" -msgstr "" - -#: mod/display.php:378 mod/profile.php:155 -msgid "Access to this profile has been restricted." -msgstr "" - -#: mod/display.php:537 -msgid "Item has been removed." -msgstr "" - -#: mod/common.php:86 -msgid "No contacts in common." -msgstr "" - -#: mod/newmember.php:6 -msgid "Welcome to Friendica" -msgstr "" - -#: mod/newmember.php:8 -msgid "New Member Checklist" -msgstr "" - -#: mod/newmember.php:12 -msgid "" -"We would like to offer some tips and links to help make your experience " -"enjoyable. Click any item to visit the relevant page. A link to this page " -"will be visible from your home page for two weeks after your initial " -"registration and then will quietly disappear." -msgstr "" - -#: mod/newmember.php:14 -msgid "Getting Started" -msgstr "" - -#: mod/newmember.php:18 -msgid "Friendica Walk-Through" -msgstr "" - -#: mod/newmember.php:18 -msgid "" -"On your Quick Start page - find a brief introduction to your " -"profile and network tabs, make some new connections, and find some groups to " -"join." -msgstr "" - -#: mod/newmember.php:26 -msgid "Go to Your Settings" -msgstr "" - -#: mod/newmember.php:26 -msgid "" -"On your Settings page - change your initial password. Also make a " -"note of your Identity Address. This looks just like an email address - and " -"will be useful in making friends on the free social web." -msgstr "" - -#: mod/newmember.php:28 -msgid "" -"Review the other settings, particularly the privacy settings. An unpublished " -"directory listing is like having an unlisted phone number. In general, you " -"should probably publish your listing - unless all of your friends and " -"potential friends know exactly how to find you." -msgstr "" - -#: mod/newmember.php:36 -msgid "" -"Upload a profile photo if you have not done so already. Studies have shown " -"that people with real photos of themselves are ten times more likely to make " -"friends than people who do not." -msgstr "" - -#: mod/newmember.php:38 -msgid "Edit Your Profile" -msgstr "" - -#: mod/newmember.php:38 -msgid "" -"Edit your default profile to your liking. Review the " -"settings for hiding your list of friends and hiding the profile from unknown " -"visitors." -msgstr "" - -#: mod/newmember.php:40 -msgid "Profile Keywords" -msgstr "" - -#: mod/newmember.php:40 -msgid "" -"Set some public keywords for your default profile which describe your " -"interests. We may be able to find other people with similar interests and " -"suggest friendships." -msgstr "" - -#: mod/newmember.php:44 -msgid "Connecting" -msgstr "" - -#: mod/newmember.php:51 -msgid "Importing Emails" -msgstr "" - -#: mod/newmember.php:51 -msgid "" -"Enter your email access information on your Connector Settings page if you " -"wish to import and interact with friends or mailing lists from your email " -"INBOX" -msgstr "" - -#: mod/newmember.php:53 -msgid "Go to Your Contacts Page" -msgstr "" - -#: mod/newmember.php:53 -msgid "" -"Your Contacts page is your gateway to managing friendships and connecting " -"with friends on other networks. Typically you enter their address or site " -"URL in the Add New Contact dialog." -msgstr "" - -#: mod/newmember.php:55 -msgid "Go to Your Site's Directory" -msgstr "" - -#: mod/newmember.php:55 -msgid "" -"The Directory page lets you find other people in this network or other " -"federated sites. Look for a Connect or Follow link on " -"their profile page. Provide your own Identity Address if requested." -msgstr "" - -#: mod/newmember.php:57 -msgid "Finding New People" -msgstr "" - -#: mod/newmember.php:57 -msgid "" -"On the side panel of the Contacts page are several tools to find new " -"friends. We can match people by interest, look up people by name or " -"interest, and provide suggestions based on network relationships. On a brand " -"new site, friend suggestions will usually begin to be populated within 24 " -"hours." -msgstr "" - -#: mod/newmember.php:65 -msgid "Group Your Contacts" -msgstr "" - -#: mod/newmember.php:65 -msgid "" -"Once you have made some friends, organize them into private conversation " -"groups from the sidebar of your Contacts page and then you can interact with " -"each group privately on your Network page." -msgstr "" - -#: mod/newmember.php:68 -msgid "Why Aren't My Posts Public?" -msgstr "" - -#: mod/newmember.php:68 -msgid "" -"Friendica respects your privacy. By default, your posts will only show up to " -"people you've added as friends. For more information, see the help section " -"from the link above." -msgstr "" - -#: mod/newmember.php:73 -msgid "Getting Help" -msgstr "" - -#: mod/newmember.php:77 -msgid "Go to the Help Section" -msgstr "" - -#: mod/newmember.php:77 -msgid "" -"Our help pages may be consulted for detail on other program " -"features and resources." -msgstr "" - -#: mod/removeme.php:46 mod/removeme.php:49 -msgid "Remove My Account" -msgstr "" - -#: mod/removeme.php:47 -msgid "" -"This will completely remove your account. Once this has been done it is not " -"recoverable." -msgstr "" - -#: mod/removeme.php:48 -msgid "Please enter your password for verification:" -msgstr "" - -#: mod/mood.php:133 -msgid "Mood" -msgstr "" - -#: mod/mood.php:134 -msgid "Set your current mood and tell your friends" -msgstr "" - -#: mod/editpost.php:17 mod/editpost.php:27 -msgid "Item not found" -msgstr "" - -#: mod/editpost.php:40 -msgid "Edit post" -msgstr "" - -#: mod/network.php:146 +#: mod/item.php:992 #, php-format -msgid "Search Results For: %s" +msgid "%s posted an update." msgstr "" -#: mod/network.php:365 -msgid "Commented Order" +#: mod/maintenance.php:9 +msgid "System down for maintenance" msgstr "" -#: mod/network.php:368 -msgid "Sort by Comment Date" +#: mod/match.php:33 +msgid "No keywords to match. Please add keywords to your default profile." msgstr "" -#: mod/network.php:373 -msgid "Posted Order" +#: mod/match.php:86 +msgid "is interested in:" msgstr "" -#: mod/network.php:376 -msgid "Sort by Post Date" -msgstr "" - -#: mod/network.php:387 -msgid "Posts that mention or involve you" -msgstr "" - -#: mod/network.php:395 -msgid "New" +#: mod/match.php:100 +msgid "Profile Match" msgstr "" #: mod/network.php:398 -msgid "Activity Stream - by date" -msgstr "" - -#: mod/network.php:406 -msgid "Shared Links" -msgstr "" - -#: mod/network.php:409 -msgid "Interesting Links" -msgstr "" - -#: mod/network.php:417 -msgid "Starred" -msgstr "" - -#: mod/network.php:420 -msgid "Favourite Posts" -msgstr "" - -#: mod/network.php:479 #, php-format msgid "Warning: This group contains %s member from an insecure network." msgid_plural "" @@ -7129,317 +7516,281 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: mod/network.php:482 +#: mod/network.php:401 msgid "Private messages to this group are at risk of public disclosure." msgstr "" -#: mod/network.php:608 +#: mod/network.php:528 msgid "Private messages to this person are at risk of public disclosure." msgstr "" -#: mod/network.php:613 +#: mod/network.php:533 msgid "Invalid contact." msgstr "" -#: mod/community.php:27 -msgid "Not available." +#: mod/network.php:826 +msgid "Commented Order" msgstr "" -#: mod/localtime.php:24 -msgid "Time Conversion" +#: mod/network.php:829 +msgid "Sort by Comment Date" msgstr "" -#: mod/localtime.php:26 -msgid "" -"Friendica provides this service for sharing events with other networks and " -"friends in unknown timezones." +#: mod/network.php:834 +msgid "Posted Order" msgstr "" -#: mod/localtime.php:30 +#: mod/network.php:837 +msgid "Sort by Post Date" +msgstr "" + +#: mod/network.php:848 +msgid "Posts that mention or involve you" +msgstr "" + +#: mod/network.php:856 +msgid "New" +msgstr "" + +#: mod/network.php:859 +msgid "Activity Stream - by date" +msgstr "" + +#: mod/network.php:867 +msgid "Shared Links" +msgstr "" + +#: mod/network.php:870 +msgid "Interesting Links" +msgstr "" + +#: mod/network.php:878 +msgid "Starred" +msgstr "" + +#: mod/network.php:881 +msgid "Favourite Posts" +msgstr "" + +#: mod/photos.php:88 mod/photos.php:1856 +msgid "Recent Photos" +msgstr "" + +#: mod/photos.php:91 mod/photos.php:1283 mod/photos.php:1858 +msgid "Upload New Photos" +msgstr "" + +#: mod/photos.php:105 mod/settings.php:36 +msgid "everybody" +msgstr "" + +#: mod/photos.php:169 +msgid "Contact information unavailable" +msgstr "" + +#: mod/photos.php:190 +msgid "Album not found." +msgstr "" + +#: mod/photos.php:220 mod/photos.php:232 mod/photos.php:1227 +msgid "Delete Album" +msgstr "" + +#: mod/photos.php:230 +msgid "Do you really want to delete this photo album and all its photos?" +msgstr "" + +#: mod/photos.php:308 mod/photos.php:319 mod/photos.php:1540 +msgid "Delete Photo" +msgstr "" + +#: mod/photos.php:317 +msgid "Do you really want to delete this photo?" +msgstr "" + +#: mod/photos.php:688 #, php-format -msgid "UTC time: %s" +msgid "%1$s was tagged in %2$s by %3$s" msgstr "" -#: mod/localtime.php:33 +#: mod/photos.php:688 +msgid "a photo" +msgstr "" + +#: mod/photos.php:794 +msgid "Image file is empty." +msgstr "" + +#: mod/photos.php:954 +msgid "No photos selected" +msgstr "" + +#: mod/photos.php:1054 mod/videos.php:305 +msgid "Access to this item is restricted." +msgstr "" + +#: mod/photos.php:1114 #, php-format -msgid "Current timezone: %s" +msgid "You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage." msgstr "" -#: mod/localtime.php:36 -#, php-format -msgid "Converted localtime: %s" +#: mod/photos.php:1148 +msgid "Upload Photos" msgstr "" -#: mod/localtime.php:41 -msgid "Please select your timezone:" +#: mod/photos.php:1152 mod/photos.php:1222 +msgid "New album name: " msgstr "" -#: mod/bookmarklet.php:41 -msgid "The post was created" +#: mod/photos.php:1153 +msgid "or existing album name: " msgstr "" -#: mod/group.php:29 -msgid "Group created." +#: mod/photos.php:1154 +msgid "Do not show a status post for this upload" msgstr "" -#: mod/group.php:35 -msgid "Could not create group." +#: mod/photos.php:1165 mod/photos.php:1544 mod/settings.php:1295 +msgid "Show to Groups" msgstr "" -#: mod/group.php:47 mod/group.php:140 -msgid "Group not found." +#: mod/photos.php:1166 mod/photos.php:1545 mod/settings.php:1296 +msgid "Show to Contacts" msgstr "" -#: mod/group.php:60 -msgid "Group name changed." +#: mod/photos.php:1167 +msgid "Private Photo" msgstr "" -#: mod/group.php:87 -msgid "Save Group" +#: mod/photos.php:1168 +msgid "Public Photo" msgstr "" -#: mod/group.php:93 -msgid "Create a group of contacts/friends." +#: mod/photos.php:1234 +msgid "Edit Album" msgstr "" -#: mod/group.php:113 -msgid "Group removed." +#: mod/photos.php:1240 +msgid "Show Newest First" msgstr "" -#: mod/group.php:115 -msgid "Unable to remove group." +#: mod/photos.php:1242 +msgid "Show Oldest First" msgstr "" -#: mod/group.php:177 -msgid "Group Editor" +#: mod/photos.php:1269 mod/photos.php:1841 +msgid "View Photo" msgstr "" -#: mod/group.php:190 -msgid "Members" +#: mod/photos.php:1315 +msgid "Permission denied. Access to this item may be restricted." msgstr "" -#: mod/dfrn_request.php:99 -msgid "This introduction has already been accepted." +#: mod/photos.php:1317 +msgid "Photo not available" msgstr "" -#: mod/dfrn_request.php:122 mod/dfrn_request.php:512 -msgid "Profile location is not valid or does not contain profile information." +#: mod/photos.php:1372 +msgid "View photo" msgstr "" -#: mod/dfrn_request.php:127 mod/dfrn_request.php:517 -msgid "Warning: profile location has no identifiable owner name." +#: mod/photos.php:1372 +msgid "Edit photo" msgstr "" -#: mod/dfrn_request.php:129 mod/dfrn_request.php:519 -msgid "Warning: profile location has no profile photo." +#: mod/photos.php:1373 +msgid "Use as profile photo" msgstr "" -#: mod/dfrn_request.php:132 mod/dfrn_request.php:522 -#, 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] "" - -#: mod/dfrn_request.php:175 -msgid "Introduction complete." +#: mod/photos.php:1398 +msgid "View Full Size" msgstr "" -#: mod/dfrn_request.php:214 -msgid "Unrecoverable protocol error." +#: mod/photos.php:1484 +msgid "Tags: " msgstr "" -#: mod/dfrn_request.php:242 -msgid "Profile unavailable." +#: mod/photos.php:1487 +msgid "[Remove any tag]" msgstr "" -#: mod/dfrn_request.php:267 -#, php-format -msgid "%s has received too many connection requests today." +#: mod/photos.php:1526 +msgid "New album name" msgstr "" -#: mod/dfrn_request.php:268 -msgid "Spam protection measures have been invoked." +#: mod/photos.php:1527 +msgid "Caption" msgstr "" -#: mod/dfrn_request.php:269 -msgid "Friends are advised to please try again in 24 hours." +#: mod/photos.php:1528 +msgid "Add a Tag" msgstr "" -#: mod/dfrn_request.php:331 -msgid "Invalid locator" +#: mod/photos.php:1528 +msgid "Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping" msgstr "" -#: mod/dfrn_request.php:340 -msgid "Invalid email address." +#: mod/photos.php:1529 +msgid "Do not rotate" msgstr "" -#: mod/dfrn_request.php:367 -msgid "This account has not been configured for email. Request failed." +#: mod/photos.php:1530 +msgid "Rotate CW (right)" msgstr "" -#: mod/dfrn_request.php:470 -msgid "You have already introduced yourself here." +#: mod/photos.php:1531 +msgid "Rotate CCW (left)" msgstr "" -#: mod/dfrn_request.php:474 -#, php-format -msgid "Apparently you are already friends with %s." +#: mod/photos.php:1546 +msgid "Private photo" msgstr "" -#: mod/dfrn_request.php:495 -msgid "Invalid profile URL." +#: mod/photos.php:1547 +msgid "Public photo" msgstr "" -#: mod/dfrn_request.php:592 -msgid "Your introduction has been sent." +#: mod/photos.php:1770 +msgid "Map" msgstr "" -#: mod/dfrn_request.php:632 -msgid "" -"Remote subscription can't be done for your network. Please subscribe " -"directly on your system." +#: mod/photos.php:1847 mod/videos.php:387 +msgid "View Album" msgstr "" -#: mod/dfrn_request.php:655 -msgid "Please login to confirm introduction." +#: mod/ping.php:234 +msgid "{0} wants to be your friend" msgstr "" -#: mod/dfrn_request.php:665 -msgid "" -"Incorrect identity currently logged in. Please login to this profile." +#: mod/ping.php:249 +msgid "{0} sent you a message" msgstr "" -#: mod/dfrn_request.php:679 mod/dfrn_request.php:696 -msgid "Confirm" +#: mod/ping.php:264 +msgid "{0} requested registration" msgstr "" -#: mod/dfrn_request.php:691 -msgid "Hide this contact" +#: mod/profile.php:179 +msgid "Tips for New Members" msgstr "" -#: mod/dfrn_request.php:694 -#, php-format -msgid "Welcome home %s." -msgstr "" - -#: mod/dfrn_request.php:695 -#, php-format -msgid "Please confirm your introduction/connection request to %s." -msgstr "" - -#: mod/dfrn_request.php:824 -msgid "" -"Please enter your 'Identity Address' from one of the following supported " -"communications networks:" -msgstr "" - -#: mod/dfrn_request.php:845 -#, 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 "" - -#: mod/dfrn_request.php:850 -msgid "Friend/Connection Request" -msgstr "" - -#: mod/dfrn_request.php:851 -msgid "" -"Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, " -"testuser@identi.ca" -msgstr "" - -#: mod/dfrn_request.php:860 -msgid "StatusNet/Federated Social Web" -msgstr "" - -#: mod/dfrn_request.php:862 -#, php-format -msgid "" -" - please do not use this form. Instead, enter %s into your Diaspora search " -"bar." -msgstr "" - -#: mod/profile_photo.php:44 -msgid "Image uploaded but image cropping failed." -msgstr "" - -#: mod/profile_photo.php:77 mod/profile_photo.php:84 mod/profile_photo.php:91 -#: mod/profile_photo.php:314 -#, php-format -msgid "Image size reduction [%s] failed." -msgstr "" - -#: mod/profile_photo.php:124 -msgid "" -"Shift-reload the page or clear browser cache if the new photo does not " -"display immediately." -msgstr "" - -#: mod/profile_photo.php:134 -msgid "Unable to process image" -msgstr "" - -#: mod/profile_photo.php:248 -msgid "Upload File:" -msgstr "" - -#: mod/profile_photo.php:249 -msgid "Select a profile:" -msgstr "" - -#: mod/profile_photo.php:251 -msgid "Upload" -msgstr "" - -#: mod/profile_photo.php:254 -msgid "or" -msgstr "" - -#: mod/profile_photo.php:254 -msgid "skip this step" -msgstr "" - -#: mod/profile_photo.php:254 -msgid "select a photo from your photo albums" -msgstr "" - -#: mod/profile_photo.php:268 -msgid "Crop Image" -msgstr "" - -#: mod/profile_photo.php:269 -msgid "Please adjust the image cropping for optimum viewing." -msgstr "" - -#: mod/profile_photo.php:271 -msgid "Done Editing" -msgstr "" - -#: mod/profile_photo.php:305 -msgid "Image uploaded successfully." -msgstr "" - -#: mod/register.php:92 +#: mod/register.php:93 msgid "" "Registration successful. Please check your email for further instructions." msgstr "" -#: mod/register.php:97 +#: mod/register.php:98 #, php-format msgid "" "Failed to send email message. Here your accout details:
      login: %s
      " "password: %s

      You can change your password after login." msgstr "" -#: mod/register.php:104 +#: mod/register.php:105 msgid "Registration successful." msgstr "" -#: mod/register.php:110 +#: mod/register.php:111 msgid "Your registration can not be processed." msgstr "" @@ -7483,7 +7834,7 @@ msgstr "" msgid "Your Email Address: " msgstr "" -#: mod/register.php:274 mod/settings.php:1218 +#: mod/register.php:274 mod/settings.php:1266 msgid "New Password:" msgstr "" @@ -7491,7 +7842,7 @@ msgstr "" msgid "Leave empty for an auto generated password." msgstr "" -#: mod/register.php:275 mod/settings.php:1219 +#: mod/register.php:275 mod/settings.php:1267 msgid "Confirm:" msgstr "" @@ -7510,11 +7861,54 @@ msgstr "" msgid "Import your profile to this friendica instance" msgstr "" +#: mod/suggest.php:27 +msgid "Do you really want to delete this suggestion?" +msgstr "" + +#: mod/suggest.php:71 +msgid "" +"No suggestions available. If this is a new site, please try again in 24 " +"hours." +msgstr "" + +#: mod/suggest.php:84 mod/suggest.php:104 +msgid "Ignore/Hide" +msgstr "" + +#: mod/update_community.php:19 mod/update_display.php:23 +#: mod/update_network.php:27 mod/update_notes.php:36 mod/update_profile.php:35 +msgid "[Embedded content - reload page to view]" +msgstr "" + +#: mod/videos.php:120 +msgid "Do you really want to delete this video?" +msgstr "" + +#: mod/videos.php:125 +msgid "Delete Video" +msgstr "" + +#: mod/videos.php:204 +msgid "No videos selected" +msgstr "" + +#: mod/videos.php:396 +msgid "Recent Videos" +msgstr "" + +#: mod/videos.php:398 +msgid "Upload New Videos" +msgstr "" + +#: mod/viewcontacts.php:72 +msgid "No contacts." +msgstr "" + #: mod/settings.php:60 msgid "Display" msgstr "" -#: mod/settings.php:67 mod/settings.php:871 +#: mod/settings.php:67 mod/settings.php:884 msgid "Social Networks" msgstr "" @@ -7542,923 +7936,759 @@ msgstr "" msgid "Features updated" msgstr "" -#: mod/settings.php:356 +#: mod/settings.php:357 msgid "Relocate message has been send to your contacts" msgstr "" -#: mod/settings.php:375 +#: mod/settings.php:376 msgid "Empty passwords are not allowed. Password unchanged." msgstr "" -#: mod/settings.php:383 +#: mod/settings.php:384 msgid "Wrong password." msgstr "" -#: mod/settings.php:394 +#: mod/settings.php:395 msgid "Password changed." msgstr "" -#: mod/settings.php:396 +#: mod/settings.php:397 msgid "Password update failed. Please try again." msgstr "" -#: mod/settings.php:465 +#: mod/settings.php:477 msgid " Please use a shorter name." msgstr "" -#: mod/settings.php:467 +#: mod/settings.php:479 msgid " Name too short." msgstr "" -#: mod/settings.php:476 +#: mod/settings.php:488 msgid "Wrong Password" msgstr "" -#: mod/settings.php:481 +#: mod/settings.php:493 msgid " Not valid email." msgstr "" -#: mod/settings.php:487 +#: mod/settings.php:499 msgid " Cannot change to that email." msgstr "" -#: mod/settings.php:543 +#: mod/settings.php:555 msgid "Private forum has no privacy permissions. Using default privacy group." msgstr "" -#: mod/settings.php:547 +#: mod/settings.php:559 msgid "Private forum has no privacy permissions and no default privacy group." msgstr "" -#: mod/settings.php:586 +#: mod/settings.php:599 msgid "Settings updated." msgstr "" -#: mod/settings.php:662 mod/settings.php:688 mod/settings.php:724 +#: mod/settings.php:675 mod/settings.php:701 mod/settings.php:737 msgid "Add application" msgstr "" -#: mod/settings.php:666 mod/settings.php:692 +#: mod/settings.php:679 mod/settings.php:705 msgid "Consumer Key" msgstr "" -#: mod/settings.php:667 mod/settings.php:693 +#: mod/settings.php:680 mod/settings.php:706 msgid "Consumer Secret" msgstr "" -#: mod/settings.php:668 mod/settings.php:694 +#: mod/settings.php:681 mod/settings.php:707 msgid "Redirect" msgstr "" -#: mod/settings.php:669 mod/settings.php:695 +#: mod/settings.php:682 mod/settings.php:708 msgid "Icon url" msgstr "" -#: mod/settings.php:680 +#: mod/settings.php:693 msgid "You can't edit this application." msgstr "" -#: mod/settings.php:723 +#: mod/settings.php:736 msgid "Connected Apps" msgstr "" -#: mod/settings.php:727 +#: mod/settings.php:740 msgid "Client key starts with" msgstr "" -#: mod/settings.php:728 +#: mod/settings.php:741 msgid "No name" msgstr "" -#: mod/settings.php:729 +#: mod/settings.php:742 msgid "Remove authorization" msgstr "" -#: mod/settings.php:741 +#: mod/settings.php:754 msgid "No Plugin settings configured" msgstr "" -#: mod/settings.php:749 +#: mod/settings.php:762 msgid "Plugin Settings" msgstr "" -#: mod/settings.php:771 +#: mod/settings.php:784 msgid "Additional Features" msgstr "" -#: mod/settings.php:781 mod/settings.php:785 +#: mod/settings.php:794 mod/settings.php:798 msgid "General Social Media Settings" msgstr "" -#: mod/settings.php:791 +#: mod/settings.php:804 msgid "Disable intelligent shortening" msgstr "" -#: mod/settings.php:793 +#: mod/settings.php:806 msgid "" "Normally the system tries to find the best link to add to shortened posts. " "If this option is enabled then every shortened post will always point to the " "original friendica post." msgstr "" -#: mod/settings.php:799 +#: mod/settings.php:812 msgid "Automatically follow any GNU Social (OStatus) followers/mentioners" msgstr "" -#: mod/settings.php:801 +#: mod/settings.php:814 msgid "" "If you receive a message from an unknown OStatus user, this option decides " "what to do. If it is checked, a new contact will be created for every " "unknown user." msgstr "" -#: mod/settings.php:807 +#: mod/settings.php:820 msgid "Default group for OStatus contacts" msgstr "" -#: mod/settings.php:813 +#: mod/settings.php:826 msgid "Your legacy GNU Social account" msgstr "" -#: mod/settings.php:815 +#: mod/settings.php:828 msgid "" "If you enter your old GNU Social/Statusnet account name here (in the format " "user@domain.tld), your contacts will be added automatically. The field will " "be emptied when done." msgstr "" -#: mod/settings.php:818 +#: mod/settings.php:831 msgid "Repair OStatus subscriptions" msgstr "" -#: mod/settings.php:827 mod/settings.php:828 +#: mod/settings.php:840 mod/settings.php:841 #, php-format msgid "Built-in support for %s connectivity is %s" msgstr "" -#: mod/settings.php:827 mod/settings.php:828 +#: mod/settings.php:840 mod/settings.php:841 msgid "enabled" msgstr "" -#: mod/settings.php:827 mod/settings.php:828 +#: mod/settings.php:840 mod/settings.php:841 msgid "disabled" msgstr "" -#: mod/settings.php:828 +#: mod/settings.php:841 msgid "GNU Social (OStatus)" msgstr "" -#: mod/settings.php:864 +#: mod/settings.php:877 msgid "Email access is disabled on this site." msgstr "" -#: mod/settings.php:876 +#: mod/settings.php:889 msgid "Email/Mailbox Setup" msgstr "" -#: mod/settings.php:877 +#: mod/settings.php:890 msgid "" "If you wish to communicate with email contacts using this service " "(optional), please specify how to connect to your mailbox." msgstr "" -#: mod/settings.php:878 +#: mod/settings.php:891 msgid "Last successful email check:" msgstr "" -#: mod/settings.php:880 +#: mod/settings.php:893 msgid "IMAP server name:" msgstr "" -#: mod/settings.php:881 +#: mod/settings.php:894 msgid "IMAP port:" msgstr "" -#: mod/settings.php:882 +#: mod/settings.php:895 msgid "Security:" msgstr "" -#: mod/settings.php:882 mod/settings.php:887 +#: mod/settings.php:895 mod/settings.php:900 msgid "None" msgstr "" -#: mod/settings.php:883 +#: mod/settings.php:896 msgid "Email login name:" msgstr "" -#: mod/settings.php:884 +#: mod/settings.php:897 msgid "Email password:" msgstr "" -#: mod/settings.php:885 +#: mod/settings.php:898 msgid "Reply-to address:" msgstr "" -#: mod/settings.php:886 +#: mod/settings.php:899 msgid "Send public posts to all email contacts:" msgstr "" -#: mod/settings.php:887 +#: mod/settings.php:900 msgid "Action after import:" msgstr "" -#: mod/settings.php:887 -msgid "Mark as seen" -msgstr "" - -#: mod/settings.php:887 +#: mod/settings.php:900 msgid "Move to folder" msgstr "" -#: mod/settings.php:888 +#: mod/settings.php:901 msgid "Move to folder:" msgstr "" -#: mod/settings.php:974 +#: mod/settings.php:990 msgid "Display Settings" msgstr "" -#: mod/settings.php:980 mod/settings.php:998 +#: mod/settings.php:996 mod/settings.php:1018 msgid "Display Theme:" msgstr "" -#: mod/settings.php:981 +#: mod/settings.php:997 msgid "Mobile Theme:" msgstr "" -#: mod/settings.php:982 +#: mod/settings.php:998 msgid "Update browser every xx seconds" msgstr "" -#: mod/settings.php:982 +#: mod/settings.php:998 msgid "Minimum of 10 seconds. Enter -1 to disable it." msgstr "" -#: mod/settings.php:983 +#: mod/settings.php:999 msgid "Number of items to display per page:" msgstr "" -#: mod/settings.php:983 mod/settings.php:984 +#: mod/settings.php:999 mod/settings.php:1000 msgid "Maximum of 100 items" msgstr "" -#: mod/settings.php:984 +#: mod/settings.php:1000 msgid "Number of items to display per page when viewed from mobile device:" msgstr "" -#: mod/settings.php:985 +#: mod/settings.php:1001 msgid "Don't show emoticons" msgstr "" -#: mod/settings.php:986 +#: mod/settings.php:1002 msgid "Calendar" msgstr "" -#: mod/settings.php:987 +#: mod/settings.php:1003 msgid "Beginning of week:" msgstr "" -#: mod/settings.php:988 +#: mod/settings.php:1004 msgid "Don't show notices" msgstr "" -#: mod/settings.php:989 +#: mod/settings.php:1005 msgid "Infinite scroll" msgstr "" -#: mod/settings.php:990 +#: mod/settings.php:1006 msgid "Automatic updates only at the top of the network page" msgstr "" -#: mod/settings.php:992 view/theme/cleanzero/config.php:82 -#: view/theme/quattro/config.php:66 view/theme/dispy/config.php:72 -#: view/theme/vier/config.php:109 view/theme/diabook/config.php:150 -#: view/theme/duepuntozero/config.php:61 +#: mod/settings.php:1007 +msgid "Bandwith Saver Mode" +msgstr "" + +#: mod/settings.php:1007 +msgid "" +"When enabled, embedded content is not displayed on automatic updates, they " +"only show on page reload." +msgstr "" + +#: mod/settings.php:1009 +msgid "General Theme Settings" +msgstr "" + +#: mod/settings.php:1010 +msgid "Custom Theme Settings" +msgstr "" + +#: mod/settings.php:1011 +msgid "Content Settings" +msgstr "" + +#: mod/settings.php:1012 view/theme/frio/config.php:61 +#: view/theme/cleanzero/config.php:82 view/theme/quattro/config.php:66 +#: view/theme/dispy/config.php:72 view/theme/vier/config.php:109 +#: view/theme/diabook/config.php:150 view/theme/duepuntozero/config.php:61 msgid "Theme settings" msgstr "" -#: mod/settings.php:1069 -msgid "User Types" +#: mod/settings.php:1094 +msgid "Account Types" msgstr "" -#: mod/settings.php:1070 -msgid "Community Types" +#: mod/settings.php:1095 +msgid "Personal Page Subtypes" msgstr "" -#: mod/settings.php:1071 -msgid "Normal Account Page" +#: mod/settings.php:1096 +msgid "Community Forum Subtypes" msgstr "" -#: mod/settings.php:1072 -msgid "This account is a normal personal profile" +#: mod/settings.php:1103 +msgid "Personal Page" msgstr "" -#: mod/settings.php:1075 -msgid "Soapbox Page" +#: mod/settings.php:1104 +msgid "This account is a regular personal profile" msgstr "" -#: mod/settings.php:1076 -msgid "Automatically approve all connection/friend requests as read-only fans" +#: mod/settings.php:1107 +msgid "Organisation Page" msgstr "" -#: mod/settings.php:1079 -msgid "Community Forum/Celebrity Account" +#: mod/settings.php:1108 +msgid "This account is a profile for an organisation" msgstr "" -#: mod/settings.php:1080 -msgid "Automatically approve all connection/friend requests as read-write fans" +#: mod/settings.php:1111 +msgid "News Page" msgstr "" -#: mod/settings.php:1083 -msgid "Automatic Friend Page" +#: mod/settings.php:1112 +msgid "This account is a news account/reflector" msgstr "" -#: mod/settings.php:1084 -msgid "Automatically approve all connection/friend requests as friends" -msgstr "" - -#: mod/settings.php:1087 -msgid "Private Forum [Experimental]" -msgstr "" - -#: mod/settings.php:1088 -msgid "Private forum - approved members only" -msgstr "" - -#: mod/settings.php:1100 -msgid "OpenID:" -msgstr "" - -#: mod/settings.php:1100 -msgid "(Optional) Allow this OpenID to login to this account." -msgstr "" - -#: mod/settings.php:1110 -msgid "Publish your default profile in your local site directory?" +#: mod/settings.php:1115 +msgid "Community Forum" msgstr "" #: mod/settings.php:1116 -msgid "Publish your default profile in the global social directory?" +msgid "" +"This account is a community forum where people can discuss with each other" +msgstr "" + +#: mod/settings.php:1119 +msgid "Normal Account Page" +msgstr "" + +#: mod/settings.php:1120 +msgid "This account is a normal personal profile" +msgstr "" + +#: mod/settings.php:1123 +msgid "Soapbox Page" msgstr "" #: mod/settings.php:1124 -msgid "Hide your contact/friend list from viewers of your default profile?" +msgid "Automatically approve all connection/friend requests as read-only fans" +msgstr "" + +#: mod/settings.php:1127 +msgid "Public Forum" msgstr "" #: mod/settings.php:1128 +msgid "Automatically approve all contact requests" +msgstr "" + +#: mod/settings.php:1131 +msgid "Automatic Friend Page" +msgstr "" + +#: mod/settings.php:1132 +msgid "Automatically approve all connection/friend requests as friends" +msgstr "" + +#: mod/settings.php:1135 +msgid "Private Forum [Experimental]" +msgstr "" + +#: mod/settings.php:1136 +msgid "Private forum - approved members only" +msgstr "" + +#: mod/settings.php:1148 +msgid "OpenID:" +msgstr "" + +#: mod/settings.php:1148 +msgid "(Optional) Allow this OpenID to login to this account." +msgstr "" + +#: mod/settings.php:1158 +msgid "Publish your default profile in your local site directory?" +msgstr "" + +#: mod/settings.php:1164 +msgid "Publish your default profile in the global social directory?" +msgstr "" + +#: mod/settings.php:1172 +msgid "Hide your contact/friend list from viewers of your default profile?" +msgstr "" + +#: mod/settings.php:1176 msgid "" "If enabled, posting public messages to Diaspora and other networks isn't " "possible." msgstr "" -#: mod/settings.php:1133 +#: mod/settings.php:1181 msgid "Allow friends to post to your profile page?" msgstr "" -#: mod/settings.php:1139 +#: mod/settings.php:1187 msgid "Allow friends to tag your posts?" msgstr "" -#: mod/settings.php:1145 +#: mod/settings.php:1193 msgid "Allow us to suggest you as a potential friend to new members?" msgstr "" -#: mod/settings.php:1151 +#: mod/settings.php:1199 msgid "Permit unknown people to send you private mail?" msgstr "" -#: mod/settings.php:1159 +#: mod/settings.php:1207 msgid "Profile is not published." msgstr "" -#: mod/settings.php:1167 +#: mod/settings.php:1215 #, php-format msgid "Your Identity Address is '%s' or '%s'." msgstr "" -#: mod/settings.php:1174 +#: mod/settings.php:1222 msgid "Automatically expire posts after this many days:" msgstr "" -#: mod/settings.php:1174 +#: mod/settings.php:1222 msgid "If empty, posts will not expire. Expired posts will be deleted" msgstr "" -#: mod/settings.php:1175 +#: mod/settings.php:1223 msgid "Advanced expiration settings" msgstr "" -#: mod/settings.php:1176 +#: mod/settings.php:1224 msgid "Advanced Expiration" msgstr "" -#: mod/settings.php:1177 +#: mod/settings.php:1225 msgid "Expire posts:" msgstr "" -#: mod/settings.php:1178 +#: mod/settings.php:1226 msgid "Expire personal notes:" msgstr "" -#: mod/settings.php:1179 +#: mod/settings.php:1227 msgid "Expire starred posts:" msgstr "" -#: mod/settings.php:1180 +#: mod/settings.php:1228 msgid "Expire photos:" msgstr "" -#: mod/settings.php:1181 +#: mod/settings.php:1229 msgid "Only expire posts by others:" msgstr "" -#: mod/settings.php:1209 +#: mod/settings.php:1257 msgid "Account Settings" msgstr "" -#: mod/settings.php:1217 +#: mod/settings.php:1265 msgid "Password Settings" msgstr "" -#: mod/settings.php:1219 +#: mod/settings.php:1267 msgid "Leave password fields blank unless changing" msgstr "" -#: mod/settings.php:1220 +#: mod/settings.php:1268 msgid "Current Password:" msgstr "" -#: mod/settings.php:1220 mod/settings.php:1221 +#: mod/settings.php:1268 mod/settings.php:1269 msgid "Your current password to confirm the changes" msgstr "" -#: mod/settings.php:1221 +#: mod/settings.php:1269 msgid "Password:" msgstr "" -#: mod/settings.php:1225 +#: mod/settings.php:1273 msgid "Basic Settings" msgstr "" -#: mod/settings.php:1227 +#: mod/settings.php:1275 msgid "Email Address:" msgstr "" -#: mod/settings.php:1228 +#: mod/settings.php:1276 msgid "Your Timezone:" msgstr "" -#: mod/settings.php:1229 +#: mod/settings.php:1277 msgid "Your Language:" msgstr "" -#: mod/settings.php:1229 +#: mod/settings.php:1277 msgid "" "Set the language we use to show you friendica interface and to send you " "emails" msgstr "" -#: mod/settings.php:1230 +#: mod/settings.php:1278 msgid "Default Post Location:" msgstr "" -#: mod/settings.php:1231 +#: mod/settings.php:1279 msgid "Use Browser Location:" msgstr "" -#: mod/settings.php:1234 +#: mod/settings.php:1282 msgid "Security and Privacy Settings" msgstr "" -#: mod/settings.php:1236 +#: mod/settings.php:1284 msgid "Maximum Friend Requests/Day:" msgstr "" -#: mod/settings.php:1236 mod/settings.php:1266 +#: mod/settings.php:1284 mod/settings.php:1314 msgid "(to prevent spam abuse)" msgstr "" -#: mod/settings.php:1237 +#: mod/settings.php:1285 msgid "Default Post Permissions" msgstr "" -#: mod/settings.php:1238 +#: mod/settings.php:1286 msgid "(click to open/close)" msgstr "" -#: mod/settings.php:1249 +#: mod/settings.php:1297 msgid "Default Private Post" msgstr "" -#: mod/settings.php:1250 +#: mod/settings.php:1298 msgid "Default Public Post" msgstr "" -#: mod/settings.php:1254 +#: mod/settings.php:1302 msgid "Default Permissions for New Posts" msgstr "" -#: mod/settings.php:1266 +#: mod/settings.php:1314 msgid "Maximum private messages per day from unknown people:" msgstr "" -#: mod/settings.php:1269 +#: mod/settings.php:1317 msgid "Notification Settings" msgstr "" -#: mod/settings.php:1270 +#: mod/settings.php:1318 msgid "By default post a status message when:" msgstr "" -#: mod/settings.php:1271 +#: mod/settings.php:1319 msgid "accepting a friend request" msgstr "" -#: mod/settings.php:1272 +#: mod/settings.php:1320 msgid "joining a forum/community" msgstr "" -#: mod/settings.php:1273 +#: mod/settings.php:1321 msgid "making an interesting profile change" msgstr "" -#: mod/settings.php:1274 +#: mod/settings.php:1322 msgid "Send a notification email when:" msgstr "" -#: mod/settings.php:1275 +#: mod/settings.php:1323 msgid "You receive an introduction" msgstr "" -#: mod/settings.php:1276 +#: mod/settings.php:1324 msgid "Your introductions are confirmed" msgstr "" -#: mod/settings.php:1277 +#: mod/settings.php:1325 msgid "Someone writes on your profile wall" msgstr "" -#: mod/settings.php:1278 +#: mod/settings.php:1326 msgid "Someone writes a followup comment" msgstr "" -#: mod/settings.php:1279 +#: mod/settings.php:1327 msgid "You receive a private message" msgstr "" -#: mod/settings.php:1280 +#: mod/settings.php:1328 msgid "You receive a friend suggestion" msgstr "" -#: mod/settings.php:1281 +#: mod/settings.php:1329 msgid "You are tagged in a post" msgstr "" -#: mod/settings.php:1282 +#: mod/settings.php:1330 msgid "You are poked/prodded/etc. in a post" msgstr "" -#: mod/settings.php:1284 +#: mod/settings.php:1332 msgid "Activate desktop notifications" msgstr "" -#: mod/settings.php:1284 +#: mod/settings.php:1332 msgid "Show desktop popup on new notifications" msgstr "" -#: mod/settings.php:1286 +#: mod/settings.php:1334 msgid "Text-only notification emails" msgstr "" -#: mod/settings.php:1288 +#: mod/settings.php:1336 msgid "Send text only notification emails, without the html part" msgstr "" -#: mod/settings.php:1290 +#: mod/settings.php:1338 msgid "Advanced Account/Page Type Settings" msgstr "" -#: mod/settings.php:1291 +#: mod/settings.php:1339 msgid "Change the behaviour of this account for special situations" msgstr "" -#: mod/settings.php:1294 +#: mod/settings.php:1342 msgid "Relocate" msgstr "" -#: mod/settings.php:1295 +#: mod/settings.php:1343 msgid "" "If you have moved this profile from another server, and some of your " "contacts don't receive your updates, try pushing this button." msgstr "" -#: mod/settings.php:1296 +#: mod/settings.php:1344 msgid "Resend relocate message to contacts" msgstr "" -#: mod/wallmessage.php:42 mod/wallmessage.php:112 -#, php-format -msgid "Number of daily wall messages for %s exceeded. Message failed." -msgstr "" - -#: mod/wallmessage.php:56 mod/message.php:71 -msgid "No recipient selected." -msgstr "" - -#: mod/wallmessage.php:59 -msgid "Unable to check your home location." -msgstr "" - -#: mod/wallmessage.php:62 mod/message.php:78 -msgid "Message could not be sent." -msgstr "" - -#: mod/wallmessage.php:65 mod/message.php:81 -msgid "Message collection failure." -msgstr "" - -#: mod/wallmessage.php:68 mod/message.php:84 -msgid "Message sent." -msgstr "" - -#: mod/wallmessage.php:86 mod/wallmessage.php:95 -msgid "No recipient." -msgstr "" - -#: mod/wallmessage.php:142 mod/message.php:327 -msgid "Send Private Message" -msgstr "" - -#: mod/wallmessage.php:143 -#, php-format -msgid "" -"If you wish for %s to respond, please check that the privacy settings on " -"your site allow private mail from unknown senders." -msgstr "" - -#: mod/wallmessage.php:144 mod/message.php:328 mod/message.php:514 -msgid "To:" -msgstr "" - -#: mod/wallmessage.php:145 mod/message.php:333 mod/message.php:516 -msgid "Subject:" -msgstr "" - -#: mod/share.php:38 -msgid "link" -msgstr "" - -#: mod/api.php:76 mod/api.php:102 -msgid "Authorize application connection" -msgstr "" - -#: mod/api.php:77 -msgid "Return to your app and insert this Securty Code:" -msgstr "" - -#: mod/api.php:89 -msgid "Please login to continue." -msgstr "" - -#: mod/api.php:104 -msgid "" -"Do you want to authorize this application to access your posts and contacts, " -"and/or create new posts for you?" -msgstr "" - -#: mod/babel.php:17 -msgid "Source (bbcode) text:" -msgstr "" - -#: mod/babel.php:23 -msgid "Source (Diaspora) text to convert to BBcode:" -msgstr "" - -#: mod/babel.php:31 -msgid "Source input: " -msgstr "" - -#: mod/babel.php:35 -msgid "bb2html (raw HTML): " -msgstr "" - -#: mod/babel.php:39 -msgid "bb2html: " -msgstr "" - -#: mod/babel.php:43 -msgid "bb2html2bb: " -msgstr "" - -#: mod/babel.php:47 -msgid "bb2md: " -msgstr "" - -#: mod/babel.php:51 -msgid "bb2md2html: " -msgstr "" - -#: mod/babel.php:55 -msgid "bb2dia2bb: " -msgstr "" - -#: mod/babel.php:59 -msgid "bb2md2html2bb: " -msgstr "" - -#: mod/babel.php:69 -msgid "Source input (Diaspora format): " -msgstr "" - -#: mod/babel.php:74 -msgid "diaspora2bb: " -msgstr "" - -#: mod/item.php:115 -msgid "Unable to locate original post." -msgstr "" - -#: mod/item.php:333 -msgid "Empty post discarded." -msgstr "" - -#: mod/item.php:847 -msgid "System error. Post not saved." -msgstr "" - -#: mod/item.php:973 -#, php-format -msgid "" -"This message was sent to you by %s, a member of the Friendica social network." -msgstr "" - -#: mod/item.php:975 -#, php-format -msgid "You may visit them online at %s" -msgstr "" - -#: mod/item.php:976 -msgid "" -"Please contact the sender by replying to this post if you do not wish to " -"receive these messages." -msgstr "" - -#: mod/item.php:980 -#, php-format -msgid "%s posted an update." -msgstr "" - -#: mod/ostatus_subscribe.php:14 -msgid "Subscribing to OStatus contacts" -msgstr "" - -#: mod/ostatus_subscribe.php:25 -msgid "No contact provided." -msgstr "" - -#: mod/ostatus_subscribe.php:30 -msgid "Couldn't fetch information for contact." -msgstr "" - -#: mod/ostatus_subscribe.php:38 -msgid "Couldn't fetch friends for contact." -msgstr "" - -#: mod/ostatus_subscribe.php:65 -msgid "success" -msgstr "" - -#: mod/ostatus_subscribe.php:67 -msgid "failed" -msgstr "" - -#: mod/ostatus_subscribe.php:69 object/Item.php:235 -msgid "ignored" -msgstr "" - -#: mod/dfrn_poll.php:104 mod/dfrn_poll.php:537 -#, php-format -msgid "%1$s welcomes %2$s" -msgstr "" - -#: mod/profile.php:179 -msgid "Tips for New Members" -msgstr "" - -#: mod/message.php:75 -msgid "Unable to locate contact information." -msgstr "" - -#: mod/message.php:215 -msgid "Do you really want to delete this message?" -msgstr "" - -#: mod/message.php:235 -msgid "Message deleted." -msgstr "" - -#: mod/message.php:266 -msgid "Conversation removed." -msgstr "" - -#: mod/message.php:368 -msgid "No messages." -msgstr "" - -#: mod/message.php:411 -msgid "Message not available." -msgstr "" - -#: mod/message.php:481 -msgid "Delete message" -msgstr "" - -#: mod/message.php:507 mod/message.php:581 -msgid "Delete conversation" -msgstr "" - -#: mod/message.php:509 -msgid "" -"No secure communications available. You may be able to " -"respond from the sender's profile page." -msgstr "" - -#: mod/message.php:513 -msgid "Send Reply" -msgstr "" - -#: mod/message.php:557 -#, php-format -msgid "Unknown sender - %s" -msgstr "" - -#: mod/message.php:559 -#, php-format -msgid "You and %s" -msgstr "" - -#: mod/message.php:561 -#, php-format -msgid "%s and You" -msgstr "" - -#: mod/message.php:584 -msgid "D, d M Y - g:i A" -msgstr "" - -#: mod/message.php:587 -#, php-format -msgid "%d message" -msgid_plural "%d messages" -msgstr[0] "" -msgstr[1] "" - -#: mod/manage.php:139 -msgid "Manage Identities and/or Pages" -msgstr "" - -#: mod/manage.php:140 -msgid "" -"Toggle between different identities or community/group pages which share " -"your account details or which you have been granted \"manage\" permissions" -msgstr "" - -#: mod/manage.php:141 -msgid "Select an identity to manage: " -msgstr "" - -#: object/Item.php:95 -msgid "This entry was edited" -msgstr "" - -#: object/Item.php:191 -msgid "I will attend" -msgstr "" - -#: object/Item.php:191 -msgid "I will not attend" -msgstr "" - -#: object/Item.php:191 -msgid "I might attend" -msgstr "" - -#: object/Item.php:230 -msgid "ignore thread" -msgstr "" - -#: object/Item.php:231 -msgid "unignore thread" -msgstr "" - -#: object/Item.php:232 -msgid "toggle ignore status" -msgstr "" - -#: object/Item.php:360 +#: object/Item.php:370 msgid "via" msgstr "" +#: view/theme/frio/php/Image.php:23 +msgid "Repeat the image" +msgstr "" + +#: view/theme/frio/php/Image.php:23 +msgid "Will repeat your image to fill the background." +msgstr "" + +#: view/theme/frio/php/Image.php:25 +msgid "Stretch" +msgstr "" + +#: view/theme/frio/php/Image.php:25 +msgid "Will stretch to width/height of the image." +msgstr "" + +#: view/theme/frio/php/Image.php:27 +msgid "Resize fill and-clip" +msgstr "" + +#: view/theme/frio/php/Image.php:27 +msgid "Resize to fill and retain aspect ratio." +msgstr "" + +#: view/theme/frio/php/Image.php:29 +msgid "Resize best fit" +msgstr "" + +#: view/theme/frio/php/Image.php:29 +msgid "Resize to best fit and retain aspect ratio." +msgstr "" + +#: view/theme/frio/config.php:42 +msgid "Default" +msgstr "" + +#: view/theme/frio/config.php:54 +msgid "Note: " +msgstr "" + +#: view/theme/frio/config.php:54 +msgid "Check image permissions if all users are allowed to visit the image" +msgstr "" + +#: view/theme/frio/config.php:62 +msgid "Select scheme" +msgstr "" + +#: view/theme/frio/config.php:63 +msgid "Navigation bar background color" +msgstr "" + +#: view/theme/frio/config.php:64 +msgid "Navigation bar icon color " +msgstr "" + +#: view/theme/frio/config.php:65 +msgid "Link color" +msgstr "" + +#: view/theme/frio/config.php:66 +msgid "Set the background color" +msgstr "" + +#: view/theme/frio/config.php:67 +msgid "Content background transparency" +msgstr "" + +#: view/theme/frio/config.php:68 +msgid "Set the background image" +msgstr "" + +#: view/theme/frio/theme.php:226 +msgid "Guest" +msgstr "" + +#: view/theme/frio/theme.php:232 +msgid "Visitor" +msgstr "" + #: view/theme/cleanzero/config.php:83 msgid "Set resize level for images in posts and comments (width and height)" msgstr "" @@ -8633,3 +8863,56 @@ msgstr "" #: view/theme/duepuntozero/config.php:62 msgid "Variations" msgstr "" + +#: index.php:447 +msgid "toggle mobile" +msgstr "" + +#: boot.php:968 +msgid "Delete this item?" +msgstr "" + +#: boot.php:971 +msgid "show fewer" +msgstr "" + +#: boot.php:1641 +#, php-format +msgid "Update %s failed. See error logs." +msgstr "" + +#: boot.php:1753 +msgid "Create a New Account" +msgstr "" + +#: boot.php:1782 +msgid "Password: " +msgstr "" + +#: boot.php:1783 +msgid "Remember me" +msgstr "" + +#: boot.php:1786 +msgid "Or login using OpenID: " +msgstr "" + +#: boot.php:1792 +msgid "Forgot your password?" +msgstr "" + +#: boot.php:1795 +msgid "Website Terms of Service" +msgstr "" + +#: boot.php:1796 +msgid "terms of service" +msgstr "" + +#: boot.php:1798 +msgid "Website Privacy Policy" +msgstr "" + +#: boot.php:1799 +msgid "privacy policy" +msgstr "" diff --git a/util/typo.php b/util/typo.php index 0e2177c70..d68ac2ac9 100644 --- a/util/typo.php +++ b/util/typo.php @@ -1,6 +1,6 @@ config,'php_path')) @@ -29,7 +29,7 @@ foreach($files as $file) { passthru("$phpath -l $file", $ret); $ret===0 or die(); } - + echo "Directory: object\n"; $files = glob('object/*.php'); foreach($files as $file) { @@ -53,7 +53,7 @@ echo 'util/strings.php' . "\n"; passthru("$phpath -l util/strings.php", $ret); $ret===0 or die(); - $files = glob('view/*/strings.php'); + $files = glob('view/lang/*/strings.php'); foreach($files as $file) { passthru("$phpath -l $file", $ret); $ret===0 or die(); } diff --git a/view/.htaccess b/view/.htaccess index 559a5fcc0..04cd54685 100644 --- a/view/.htaccess +++ b/view/.htaccess @@ -1,3 +1,10 @@ -Deny from all - \ No newline at end of file + + #Apache 2.4 + Require all denied + + + #Apache 2.2 + Deny from all + + diff --git a/view/global.css b/view/global.css index 8f0b06507..bcf7174ea 100644 --- a/view/global.css +++ b/view/global.css @@ -27,6 +27,10 @@ a.btn, a.btn:hover { background-color: #2d2d2d; } +.overline { + text-decoration: overline; +} + /* List of social Networks */ img.connector, img.connector-disabled { height: 40px; @@ -115,6 +119,7 @@ span.connector { .embed_rich { display: block; + transition: height .75s; } /* Shared Messages */ @@ -454,3 +459,8 @@ td.federation-data { display: none; margin: 10px 0; } + +/* settings page */ +#settings-form .pageflags { + margin: 0 0 20px 30px; +} diff --git a/view/bg/messages.po b/view/lang/bg/messages.po similarity index 100% rename from view/bg/messages.po rename to view/lang/bg/messages.po diff --git a/view/bg/strings.php b/view/lang/bg/strings.php similarity index 100% rename from view/bg/strings.php rename to view/lang/bg/strings.php diff --git a/view/ca/messages.po b/view/lang/ca/messages.po similarity index 100% rename from view/ca/messages.po rename to view/lang/ca/messages.po diff --git a/view/ca/strings.php b/view/lang/ca/strings.php similarity index 100% rename from view/ca/strings.php rename to view/lang/ca/strings.php diff --git a/view/cs/messages.po b/view/lang/cs/messages.po similarity index 100% rename from view/cs/messages.po rename to view/lang/cs/messages.po diff --git a/view/cs/strings.php b/view/lang/cs/strings.php similarity index 100% rename from view/cs/strings.php rename to view/lang/cs/strings.php diff --git a/view/de/messages.po b/view/lang/de/messages.po similarity index 79% rename from view/de/messages.po rename to view/lang/de/messages.po index 5b4a3d477..f0c7d99b0 100644 --- a/view/de/messages.po +++ b/view/lang/de/messages.po @@ -5,7 +5,8 @@ # Translators: # Andreas H., 2015 # Andreas H., 2015-2016 -# bavatar , 2011 +# Tobias Diekershoff , 2011 +# David Rabel , 2016 # Erkan Yilmaz , 2011 # Fabian Dost , 2012 # foss , 2014,2016 @@ -21,19 +22,21 @@ # Matthias Moritz , 2012 # Oliver , 2015 # Oliver , 2012 +# rabuzarus , 2016 # Sennewood , 2013 # Sennewood , 2012-2013 # silke m , 2015 -# bavatar , 2013-2016 -# bavatar , 2011-2013 +# Tobias Diekershoff , 2013-2016 +# Tobias Diekershoff , 2011-2013 +# Tobias Diekershoff , 2016 # zottel , 2011-2012 # tschlotfeldt , 2011 msgid "" msgstr "" "Project-Id-Version: friendica\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-18 22:41+0200\n" -"PO-Revision-Date: 2016-05-19 09:45+0000\n" +"POT-Creation-Date: 2016-09-27 21:32+0200\n" +"PO-Revision-Date: 2016-10-03 11:51+0000\n" "Last-Translator: Andreas H.\n" "Language-Team: German (http://www.transifex.com/Friendica/friendica/language/de/)\n" "MIME-Version: 1.0\n" @@ -42,169 +45,100 @@ msgstr "" "Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: boot.php:873 -msgid "Delete this item?" -msgstr "Diesen Beitrag löschen?" - -#: boot.php:874 mod/content.php:711 mod/photos.php:1616 mod/photos.php:1664 -#: mod/photos.php:1752 object/Item.php:393 object/Item.php:709 -msgid "Comment" -msgstr "Kommentar" - -#: boot.php:875 include/contact_widgets.php:242 include/ForumManager.php:117 -#: include/items.php:2117 mod/content.php:608 object/Item.php:422 -#: view/theme/vier/theme.php:260 -msgid "show more" -msgstr "mehr anzeigen" - -#: boot.php:876 -msgid "show fewer" -msgstr "weniger anzeigen" - -#: boot.php:1386 -#, php-format -msgid "Update %s failed. See error logs." -msgstr "Update %s fehlgeschlagen. Bitte Fehlerprotokoll überprüfen." - -#: boot.php:1498 -msgid "Create a New Account" -msgstr "Neues Konto erstellen" - -#: boot.php:1499 include/nav.php:111 mod/register.php:280 -msgid "Register" -msgstr "Registrieren" - -#: boot.php:1523 include/nav.php:75 -msgid "Logout" -msgstr "Abmelden" - -#: boot.php:1524 include/nav.php:94 mod/bookmarklet.php:12 -msgid "Login" -msgstr "Anmeldung" - -#: boot.php:1526 -msgid "Nickname or Email address: " -msgstr "Spitzname oder E-Mail:" - -#: boot.php:1527 -msgid "Password: " -msgstr "Passwort: " - -#: boot.php:1528 -msgid "Remember me" -msgstr "Anmeldedaten merken" - -#: boot.php:1531 -msgid "Or login using OpenID: " -msgstr "Oder melde Dich mit Deiner OpenID an: " - -#: boot.php:1537 -msgid "Forgot your password?" -msgstr "Passwort vergessen?" - -#: boot.php:1538 mod/lostpass.php:109 -msgid "Password Reset" -msgstr "Passwort zurücksetzen" - -#: boot.php:1540 -msgid "Website Terms of Service" -msgstr "Website Nutzungsbedingungen" - -#: boot.php:1541 -msgid "terms of service" -msgstr "Nutzungsbedingungen" - -#: boot.php:1543 -msgid "Website Privacy Policy" -msgstr "Website Datenschutzerklärung" - -#: boot.php:1544 -msgid "privacy policy" -msgstr "Datenschutzerklärung" - -#: include/datetime.php:57 include/datetime.php:59 +#: include/datetime.php:57 include/datetime.php:59 mod/profiles.php:705 msgid "Miscellaneous" msgstr "Verschiedenes" -#: include/datetime.php:178 +#: include/datetime.php:183 include/identity.php:630 +msgid "Birthday:" +msgstr "Geburtstag:" + +#: include/datetime.php:185 mod/profiles.php:728 +msgid "Age: " +msgstr "Alter: " + +#: include/datetime.php:187 msgid "YYYY-MM-DD or MM-DD" msgstr "YYYY-MM-DD oder MM-DD" -#: include/datetime.php:327 +#: include/datetime.php:341 msgid "never" msgstr "nie" -#: include/datetime.php:333 +#: include/datetime.php:347 msgid "less than a second ago" msgstr "vor weniger als einer Sekunde" -#: include/datetime.php:343 +#: include/datetime.php:357 msgid "year" msgstr "Jahr" -#: include/datetime.php:343 +#: include/datetime.php:357 msgid "years" msgstr "Jahre" -#: include/datetime.php:344 mod/events.php:240 +#: include/datetime.php:358 include/event.php:480 mod/cal.php:287 +#: mod/events.php:389 msgid "month" msgstr "Monat" -#: include/datetime.php:344 +#: include/datetime.php:358 msgid "months" msgstr "Monate" -#: include/datetime.php:345 mod/events.php:241 +#: include/datetime.php:359 include/event.php:481 mod/cal.php:288 +#: mod/events.php:390 msgid "week" msgstr "Woche" -#: include/datetime.php:345 +#: include/datetime.php:359 msgid "weeks" msgstr "Wochen" -#: include/datetime.php:346 mod/events.php:242 +#: include/datetime.php:360 include/event.php:482 mod/cal.php:289 +#: mod/events.php:391 msgid "day" msgstr "Tag" -#: include/datetime.php:346 +#: include/datetime.php:360 msgid "days" msgstr "Tage" -#: include/datetime.php:347 +#: include/datetime.php:361 msgid "hour" msgstr "Stunde" -#: include/datetime.php:347 +#: include/datetime.php:361 msgid "hours" msgstr "Stunden" -#: include/datetime.php:348 +#: include/datetime.php:362 msgid "minute" msgstr "Minute" -#: include/datetime.php:348 +#: include/datetime.php:362 msgid "minutes" msgstr "Minuten" -#: include/datetime.php:349 +#: include/datetime.php:363 msgid "second" msgstr "Sekunde" -#: include/datetime.php:349 +#: include/datetime.php:363 msgid "seconds" msgstr "Sekunden" -#: include/datetime.php:358 +#: include/datetime.php:372 #, php-format msgid "%1$d %2$s ago" msgstr "%1$d %2$s her" -#: include/datetime.php:564 +#: include/datetime.php:578 #, php-format msgid "%s's birthday" msgstr "%ss Geburtstag" -#: include/datetime.php:565 include/dfrn.php:1110 +#: include/datetime.php:579 include/dfrn.php:1115 #, php-format msgid "Happy Birthday %s" msgstr "Herzlichen Glückwunsch %s" @@ -221,8 +155,8 @@ msgstr "Adresse oder Web-Link eingeben" msgid "Example: bob@example.com, http://example.com/barbara" msgstr "Beispiel: bob@example.com, http://example.com/barbara" -#: include/contact_widgets.php:10 include/identity.php:212 mod/dirfind.php:196 -#: mod/match.php:85 mod/allfriends.php:80 mod/suggest.php:98 +#: include/contact_widgets.php:10 include/identity.php:212 mod/match.php:87 +#: mod/allfriends.php:82 mod/suggest.php:101 mod/dirfind.php:201 msgid "Connect" msgstr "Verbinden" @@ -241,10 +175,10 @@ msgstr "Leute finden" msgid "Enter name or interest" msgstr "Name oder Interessen eingeben" -#: include/contact_widgets.php:32 include/conversation.php:924 -#: include/Contact.php:299 mod/dirfind.php:198 mod/match.php:71 -#: mod/allfriends.php:65 mod/contacts.php:600 mod/follow.php:103 -#: mod/suggest.php:82 +#: include/contact_widgets.php:32 include/conversation.php:976 +#: include/Contact.php:324 mod/match.php:72 mod/allfriends.php:66 +#: mod/follow.php:103 mod/suggest.php:83 mod/dirfind.php:204 +#: mod/contacts.php:602 msgid "Connect/Follow" msgstr "Verbinden/Folgen" @@ -252,11 +186,11 @@ msgstr "Verbinden/Folgen" msgid "Examples: Robert Morgenstein, Fishing" msgstr "Beispiel: Robert Morgenstein, Angeln" -#: include/contact_widgets.php:34 mod/directory.php:210 mod/contacts.php:791 +#: include/contact_widgets.php:34 mod/directory.php:212 mod/contacts.php:798 msgid "Find" msgstr "Finde" -#: include/contact_widgets.php:35 mod/suggest.php:111 +#: include/contact_widgets.php:35 mod/suggest.php:114 #: view/theme/vier/theme.php:203 view/theme/diabook/theme.php:527 msgid "Friend Suggestions" msgstr "Kontaktvorschläge" @@ -283,7 +217,7 @@ msgstr "Netzwerke" msgid "All Networks" msgstr "Alle Netzwerke" -#: include/contact_widgets.php:141 include/features.php:102 +#: include/contact_widgets.php:141 include/features.php:103 msgid "Saved Folders" msgstr "Gespeicherte Ordner" @@ -302,164 +236,170 @@ msgid_plural "%d contacts in common" msgstr[0] "%d gemeinsamer Kontakt" msgstr[1] "%d gemeinsame Kontakte" -#: include/enotify.php:18 +#: include/contact_widgets.php:242 include/ForumManager.php:119 +#: include/items.php:2122 mod/content.php:624 object/Item.php:432 +#: view/theme/vier/theme.php:260 boot.php:926 +msgid "show more" +msgstr "mehr anzeigen" + +#: include/enotify.php:24 msgid "Friendica Notification" msgstr "Friendica-Benachrichtigung" -#: include/enotify.php:21 +#: include/enotify.php:27 msgid "Thank You," msgstr "Danke," -#: include/enotify.php:24 +#: include/enotify.php:30 #, php-format msgid "%s Administrator" msgstr "der Administrator von %s" -#: include/enotify.php:26 +#: include/enotify.php:32 #, php-format msgid "%1$s, %2$s Administrator" msgstr "%1$s, %2$s Administrator" -#: include/enotify.php:37 include/delivery.php:450 +#: include/enotify.php:43 include/delivery.php:450 msgid "noreply" msgstr "noreply" -#: include/enotify.php:68 +#: include/enotify.php:70 #, php-format msgid "%s " msgstr "%s " -#: include/enotify.php:82 +#: include/enotify.php:83 #, php-format msgid "[Friendica:Notify] New mail received at %s" msgstr "[Friendica-Meldung] Neue Nachricht erhalten von %s" -#: include/enotify.php:84 +#: include/enotify.php:85 #, php-format msgid "%1$s sent you a new private message at %2$s." msgstr "%1$s hat Dir eine neue private Nachricht auf %2$s geschickt." -#: include/enotify.php:85 +#: include/enotify.php:86 #, php-format msgid "%1$s sent you %2$s." msgstr "%1$s schickte Dir %2$s." -#: include/enotify.php:85 +#: include/enotify.php:86 msgid "a private message" msgstr "eine private Nachricht" -#: include/enotify.php:86 +#: include/enotify.php:88 #, php-format msgid "Please visit %s to view and/or reply to your private messages." msgstr "Bitte besuche %s, um Deine privaten Nachrichten anzusehen und/oder zu beantworten." -#: include/enotify.php:138 +#: include/enotify.php:134 #, php-format msgid "%1$s commented on [url=%2$s]a %3$s[/url]" msgstr "%1$s kommentierte [url=%2$s]a %3$s[/url]" -#: include/enotify.php:145 +#: include/enotify.php:141 #, php-format msgid "%1$s commented on [url=%2$s]%3$s's %4$s[/url]" msgstr "%1$s kommentierte [url=%2$s]%3$ss %4$s[/url]" -#: include/enotify.php:153 +#: include/enotify.php:149 #, php-format msgid "%1$s commented on [url=%2$s]your %3$s[/url]" msgstr "%1$s kommentierte [url=%2$s]Deinen %3$s[/url]" -#: include/enotify.php:163 +#: include/enotify.php:159 #, php-format msgid "[Friendica:Notify] Comment to conversation #%1$d by %2$s" msgstr "[Friendica-Meldung] Kommentar zum Beitrag #%1$d von %2$s" -#: include/enotify.php:164 +#: include/enotify.php:161 #, php-format msgid "%s commented on an item/conversation you have been following." msgstr "%s hat einen Beitrag kommentiert, dem Du folgst." -#: include/enotify.php:167 include/enotify.php:182 include/enotify.php:195 -#: include/enotify.php:208 include/enotify.php:226 include/enotify.php:239 +#: include/enotify.php:164 include/enotify.php:178 include/enotify.php:192 +#: include/enotify.php:206 include/enotify.php:224 include/enotify.php:238 #, php-format msgid "Please visit %s to view and/or reply to the conversation." msgstr "Bitte besuche %s, um die Konversation anzusehen und/oder zu kommentieren." -#: include/enotify.php:174 +#: include/enotify.php:171 #, php-format msgid "[Friendica:Notify] %s posted to your profile wall" msgstr "[Friendica-Meldung] %s hat auf Deine Pinnwand geschrieben" -#: include/enotify.php:176 +#: include/enotify.php:173 #, php-format msgid "%1$s posted to your profile wall at %2$s" msgstr "%1$s schrieb auf %2$s auf Deine Pinnwand" -#: include/enotify.php:178 +#: include/enotify.php:174 #, php-format msgid "%1$s posted to [url=%2$s]your wall[/url]" msgstr "%1$s hat etwas auf [url=%2$s]Deiner Pinnwand[/url] gepostet" -#: include/enotify.php:189 +#: include/enotify.php:185 #, php-format msgid "[Friendica:Notify] %s tagged you" msgstr "[Friendica-Meldung] %s hat Dich erwähnt" -#: include/enotify.php:190 +#: include/enotify.php:187 #, php-format msgid "%1$s tagged you at %2$s" msgstr "%1$s erwähnte Dich auf %2$s" -#: include/enotify.php:191 +#: include/enotify.php:188 #, php-format msgid "%1$s [url=%2$s]tagged you[/url]." msgstr "%1$s [url=%2$s]erwähnte Dich[/url]." -#: include/enotify.php:202 +#: include/enotify.php:199 #, php-format msgid "[Friendica:Notify] %s shared a new post" msgstr "[Friendica Benachrichtigung] %s hat einen Beitrag geteilt" -#: include/enotify.php:203 +#: include/enotify.php:201 #, php-format msgid "%1$s shared a new post at %2$s" msgstr "%1$s hat einen neuen Beitrag auf %2$s geteilt" -#: include/enotify.php:204 +#: include/enotify.php:202 #, php-format msgid "%1$s [url=%2$s]shared a post[/url]." msgstr "%1$s [url=%2$s]hat einen Beitrag geteilt[/url]." -#: include/enotify.php:216 +#: include/enotify.php:213 #, php-format msgid "[Friendica:Notify] %1$s poked you" msgstr "[Friendica-Meldung] %1$s hat Dich angestupst" -#: include/enotify.php:217 +#: include/enotify.php:215 #, php-format msgid "%1$s poked you at %2$s" msgstr "%1$s hat Dich auf %2$s angestupst" -#: include/enotify.php:218 +#: include/enotify.php:216 #, php-format msgid "%1$s [url=%2$s]poked you[/url]." msgstr "%1$s [url=%2$s]hat Dich angestupst[/url]." -#: include/enotify.php:233 +#: include/enotify.php:231 #, php-format msgid "[Friendica:Notify] %s tagged your post" msgstr "[Friendica-Meldung] %s hat Deinen Beitrag getaggt" -#: include/enotify.php:234 +#: include/enotify.php:233 #, php-format msgid "%1$s tagged your post at %2$s" msgstr "%1$s erwähnte Deinen Beitrag auf %2$s" -#: include/enotify.php:235 +#: include/enotify.php:234 #, php-format msgid "%1$s tagged [url=%2$s]your post[/url]" msgstr "%1$s erwähnte [url=%2$s]Deinen Beitrag[/url]" -#: include/enotify.php:246 +#: include/enotify.php:245 msgid "[Friendica:Notify] Introduction received" msgstr "[Friendica-Meldung] Kontaktanfrage erhalten" @@ -473,88 +413,88 @@ msgstr "Du hast eine Kontaktanfrage von '%1$s' auf %2$s erhalten" msgid "You've received [url=%1$s]an introduction[/url] from %2$s." msgstr "Du hast eine [url=%1$s]Kontaktanfrage[/url] von %2$s erhalten." -#: include/enotify.php:251 include/enotify.php:293 +#: include/enotify.php:252 include/enotify.php:295 #, php-format msgid "You may visit their profile at %s" msgstr "Hier kannst Du das Profil betrachten: %s" -#: include/enotify.php:253 +#: include/enotify.php:254 #, php-format msgid "Please visit %s to approve or reject the introduction." msgstr "Bitte besuche %s, um die Kontaktanfrage anzunehmen oder abzulehnen." -#: include/enotify.php:261 +#: include/enotify.php:262 msgid "[Friendica:Notify] A new person is sharing with you" msgstr "[Friendica Benachrichtigung] Eine neue Person teilt mit Dir" -#: include/enotify.php:262 include/enotify.php:263 +#: include/enotify.php:264 include/enotify.php:265 #, php-format msgid "%1$s is sharing with you at %2$s" msgstr "%1$s teilt mit Dir auf %2$s" -#: include/enotify.php:269 +#: include/enotify.php:271 msgid "[Friendica:Notify] You have a new follower" msgstr "[Friendica Benachrichtigung] Du hast einen neuen Kontakt auf " -#: include/enotify.php:270 include/enotify.php:271 +#: include/enotify.php:273 include/enotify.php:274 #, php-format msgid "You have a new follower at %2$s : %1$s" msgstr "Du hast einen neuen Kontakt auf %2$s: %1$s" -#: include/enotify.php:284 +#: include/enotify.php:285 msgid "[Friendica:Notify] Friend suggestion received" msgstr "[Friendica-Meldung] Kontaktvorschlag erhalten" -#: include/enotify.php:285 +#: include/enotify.php:287 #, php-format msgid "You've received a friend suggestion from '%1$s' at %2$s" -msgstr "Du hast einen Freunde-Vorschlag von '%1$s' auf %2$s erhalten" +msgstr "Du hast einen Kontakt-Vorschlag von '%1$s' auf %2$s erhalten" -#: include/enotify.php:286 +#: include/enotify.php:288 #, php-format msgid "" "You've received [url=%1$s]a friend suggestion[/url] for %2$s from %3$s." -msgstr "Du hast einen [url=%1$s]Freunde-Vorschlag[/url] %2$s von %3$s erhalten." +msgstr "Du hast einen [url=%1$s]Kontakt-Vorschlag[/url] %2$s von %3$s erhalten." -#: include/enotify.php:291 +#: include/enotify.php:293 msgid "Name:" msgstr "Name:" -#: include/enotify.php:292 +#: include/enotify.php:294 msgid "Photo:" msgstr "Foto:" -#: include/enotify.php:295 +#: include/enotify.php:297 #, php-format msgid "Please visit %s to approve or reject the suggestion." msgstr "Bitte besuche %s, um den Vorschlag zu akzeptieren oder abzulehnen." -#: include/enotify.php:303 include/enotify.php:316 +#: include/enotify.php:305 include/enotify.php:319 msgid "[Friendica:Notify] Connection accepted" msgstr "[Friendica-Benachrichtigung] Kontaktanfrage bestätigt" -#: include/enotify.php:304 include/enotify.php:317 +#: include/enotify.php:307 include/enotify.php:321 #, php-format msgid "'%1$s' has accepted your connection request at %2$s" msgstr "'%1$s' hat Deine Kontaktanfrage auf %2$s bestätigt" -#: include/enotify.php:305 include/enotify.php:318 +#: include/enotify.php:308 include/enotify.php:322 #, php-format msgid "%2$s has accepted your [url=%1$s]connection request[/url]." msgstr "%2$s hat Deine [url=%1$s]Kontaktanfrage[/url] akzeptiert." -#: include/enotify.php:308 +#: include/enotify.php:312 msgid "" -"You are now mutual friends and may exchange status updates, photos, and email\n" -"\twithout restriction." -msgstr "Ihr seit nun beidseitige Freunde und könnt Statusmitteilungen, Bilder und Emails ohne Einschränkungen austauschen." +"You are now mutual friends and may exchange status updates, photos, and " +"email without restriction." +msgstr "Ihr seid nun beidseitige Kontakte und könnt Statusmitteilungen, Bilder und Emails ohne Einschränkungen austauschen." -#: include/enotify.php:311 include/enotify.php:325 +#: include/enotify.php:314 #, php-format -msgid "Please visit %s if you wish to make any changes to this relationship." +msgid "Please visit %s if you wish to make any changes to this relationship." msgstr "Bitte besuche %s, wenn Du Änderungen an eurer Beziehung vornehmen willst." -#: include/enotify.php:321 +#: include/enotify.php:326 #, php-format msgid "" "'%1$s' has chosen to accept you a \"fan\", which restricts some forms of " @@ -563,144 +503,51 @@ msgid "" "automatically." msgstr "'%1$s' hat sich entschieden Dich als \"Fan\" zu akzeptieren, dies schränkt einige Kommunikationswege - wie private Nachrichten und einige Interaktionsmöglichkeiten auf der Profilseite - ein. Wenn dies eine Berühmtheiten- oder Gemeinschaftsseite ist, werden diese Einstellungen automatisch vorgenommen." -#: include/enotify.php:323 +#: include/enotify.php:328 #, php-format msgid "" "'%1$s' may choose to extend this into a two-way or more permissive " -"relationship in the future. " +"relationship in the future." msgstr "'%1$s' kann den Kontaktstatus zu einem späteren Zeitpunkt erweitern und diese Einschränkungen aufheben. " -#: include/enotify.php:336 +#: include/enotify.php:330 +#, php-format +msgid "Please visit %s if you wish to make any changes to this relationship." +msgstr "Bitte besuche %s, wenn Du Änderungen an eurer Beziehung vornehmen willst." + +#: include/enotify.php:340 msgid "[Friendica System:Notify] registration request" msgstr "[Friendica System:Benachrichtigung] Registrationsanfrage" -#: include/enotify.php:337 +#: include/enotify.php:342 #, php-format msgid "You've received a registration request from '%1$s' at %2$s" msgstr "Du hast eine Registrierungsanfrage von %2$s auf '%1$s' erhalten" -#: include/enotify.php:338 +#: include/enotify.php:343 #, php-format msgid "You've received a [url=%1$s]registration request[/url] from %2$s." msgstr "Du hast eine [url=%1$s]Registrierungsanfrage[/url] von %2$s erhalten." -#: include/enotify.php:341 +#: include/enotify.php:347 #, php-format msgid "Full Name:\t%1$s\\nSite Location:\t%2$s\\nLogin Name:\t%3$s (%4$s)" msgstr "Kompletter Name:\t%1$s\\nURL der Seite:\t%2$s\\nLogin Name:\t%3$s (%4$s)" -#: include/enotify.php:344 +#: include/enotify.php:350 #, php-format msgid "Please visit %s to approve or reject the request." msgstr "Bitte besuche %s um die Anfrage zu bearbeiten." -#: include/plugin.php:522 include/plugin.php:524 -msgid "Click here to upgrade." -msgstr "Zum Upgraden hier klicken." - -#: include/plugin.php:530 -msgid "This action exceeds the limits set by your subscription plan." -msgstr "Diese Aktion überschreitet die Obergrenze Deines Abonnements." - -#: include/plugin.php:535 -msgid "This action is not available under your subscription plan." -msgstr "Diese Aktion ist in Deinem Abonnement nicht verfügbar." - -#: include/ForumManager.php:112 include/text.php:987 include/nav.php:130 +#: include/ForumManager.php:114 include/nav.php:130 include/text.php:1007 #: view/theme/vier/theme.php:255 msgid "Forums" msgstr "Foren" -#: include/ForumManager.php:114 view/theme/vier/theme.php:257 +#: include/ForumManager.php:116 view/theme/vier/theme.php:257 msgid "External link to forum" msgstr "Externer Link zum Forum" -#: include/diaspora.php:1277 include/conversation.php:141 include/like.php:182 -#: view/theme/diabook/theme.php:480 -#, php-format -msgid "%1$s likes %2$s's %3$s" -msgstr "%1$s mag %2$ss %3$s" - -#: include/diaspora.php:1281 include/conversation.php:125 -#: include/conversation.php:134 include/conversation.php:261 -#: include/conversation.php:270 include/like.php:163 mod/tagger.php:62 -#: mod/subthread.php:87 view/theme/diabook/theme.php:466 -#: view/theme/diabook/theme.php:475 -msgid "status" -msgstr "Status" - -#: include/diaspora.php:1805 -msgid "Sharing notification from Diaspora network" -msgstr "Freigabe-Benachrichtigung von Diaspora" - -#: include/diaspora.php:2663 -msgid "Attachments:" -msgstr "Anhänge:" - -#: include/dfrn.php:1109 -#, php-format -msgid "%s\\'s birthday" -msgstr "%ss Geburtstag" - -#: include/uimport.php:94 -msgid "Error decoding account file" -msgstr "Fehler beim Verarbeiten der Account Datei" - -#: include/uimport.php:100 -msgid "Error! No version data in file! This is not a Friendica account file?" -msgstr "Fehler! Keine Versionsdaten in der Datei! Ist das wirklich eine Friendica Account Datei?" - -#: include/uimport.php:116 include/uimport.php:127 -msgid "Error! Cannot check nickname" -msgstr "Fehler! Konnte den Nickname nicht überprüfen." - -#: include/uimport.php:120 include/uimport.php:131 -#, php-format -msgid "User '%s' already exists on this server!" -msgstr "Nutzer '%s' existiert bereits auf diesem Server!" - -#: include/uimport.php:153 -msgid "User creation error" -msgstr "Fehler beim Anlegen des Nutzeraccounts aufgetreten" - -#: include/uimport.php:173 -msgid "User profile creation error" -msgstr "Fehler beim Anlegen des Nutzerkontos" - -#: include/uimport.php:222 -#, php-format -msgid "%d contact not imported" -msgid_plural "%d contacts not imported" -msgstr[0] "%d Kontakt nicht importiert" -msgstr[1] "%d Kontakte nicht importiert" - -#: include/uimport.php:292 -msgid "Done. You can now login with your username and password" -msgstr "Erledigt. Du kannst Dich jetzt mit Deinem Nutzernamen und Passwort anmelden" - -#: include/dba.php:55 include/dba_pdo.php:72 -#, php-format -msgid "Cannot locate DNS info for database server '%s'" -msgstr "Kann die DNS Informationen für den Datenbankserver '%s' nicht ermitteln." - -#: include/event.php:13 include/bb2diaspora.php:148 mod/localtime.php:12 -msgid "l F d, Y \\@ g:i A" -msgstr "l, d. F Y\\, H:i" - -#: include/event.php:30 include/event.php:48 include/bb2diaspora.php:154 -msgid "Starts:" -msgstr "Beginnt:" - -#: include/event.php:33 include/event.php:54 include/bb2diaspora.php:162 -msgid "Finishes:" -msgstr "Endet:" - -#: include/event.php:36 include/event.php:60 include/identity.php:309 -#: include/bb2diaspora.php:170 mod/notifications.php:244 mod/events.php:566 -#: mod/directory.php:145 mod/contacts.php:624 -msgid "Location:" -msgstr "Ort:" - #: include/security.php:22 msgid "Welcome " msgstr "Willkommen " @@ -771,7 +618,7 @@ msgstr "Nicht spezifiziert" msgid "Other" msgstr "Andere" -#: include/profile_selectors.php:6 include/conversation.php:1419 +#: include/profile_selectors.php:6 include/conversation.php:1475 msgid "Undecided" msgid_plural "Undecided" msgstr[0] "Unentschieden" @@ -867,7 +714,7 @@ msgstr "Sexbesessen" #: include/profile_selectors.php:42 include/user.php:299 include/user.php:303 msgid "Friends" -msgstr "Freunde" +msgstr "Kontakte" #: include/profile_selectors.php:42 msgid "Friends/Benefits" @@ -953,1116 +800,23 @@ msgstr "Ist mir nicht wichtig" msgid "Ask me" msgstr "Frag mich" -#: include/items.php:1442 mod/dfrn_confirm.php:725 mod/dfrn_request.php:737 -msgid "[Name Withheld]" -msgstr "[Name unterdrückt]" - -#: include/items.php:1800 mod/viewsrc.php:15 mod/admin.php:234 -#: mod/admin.php:1435 mod/admin.php:1669 mod/display.php:104 -#: mod/display.php:329 mod/display.php:544 mod/notice.php:15 -msgid "Item not found." -msgstr "Beitrag nicht gefunden." - -#: include/items.php:1839 -msgid "Do you really want to delete this item?" -msgstr "Möchtest Du wirklich dieses Item löschen?" - -#: include/items.php:1841 mod/profiles.php:641 mod/profiles.php:644 -#: mod/profiles.php:670 mod/contacts.php:441 mod/follow.php:110 -#: mod/suggest.php:29 mod/dfrn_request.php:853 mod/register.php:238 -#: mod/settings.php:1110 mod/settings.php:1116 mod/settings.php:1124 -#: mod/settings.php:1128 mod/settings.php:1133 mod/settings.php:1139 -#: mod/settings.php:1145 mod/settings.php:1151 mod/settings.php:1177 -#: mod/settings.php:1178 mod/settings.php:1179 mod/settings.php:1180 -#: mod/settings.php:1181 mod/api.php:105 mod/message.php:217 -msgid "Yes" -msgstr "Ja" - -#: include/items.php:1844 include/conversation.php:1220 mod/fbrowser.php:101 -#: mod/fbrowser.php:136 mod/tagrm.php:11 mod/tagrm.php:94 mod/videos.php:131 -#: mod/photos.php:247 mod/photos.php:336 mod/contacts.php:444 -#: mod/follow.php:121 mod/suggest.php:32 mod/editpost.php:148 -#: mod/dfrn_request.php:867 mod/settings.php:664 mod/settings.php:690 -#: mod/message.php:220 -msgid "Cancel" -msgstr "Abbrechen" - -#: include/items.php:2006 index.php:396 mod/regmod.php:110 mod/dirfind.php:11 -#: mod/notifications.php:69 mod/dfrn_confirm.php:56 mod/wall_upload.php:77 -#: mod/wall_upload.php:80 mod/fsuggest.php:78 mod/notes.php:22 -#: mod/events.php:165 mod/uimport.php:23 mod/nogroup.php:25 mod/invite.php:15 -#: mod/invite.php:101 mod/viewcontacts.php:40 mod/crepair.php:100 -#: mod/wall_attach.php:67 mod/wall_attach.php:70 mod/allfriends.php:12 -#: mod/repair_ostatus.php:9 mod/delegate.php:12 mod/profiles.php:165 -#: mod/profiles.php:598 mod/poke.php:150 mod/photos.php:171 -#: mod/photos.php:1092 mod/attach.php:33 mod/contacts.php:350 -#: mod/follow.php:11 mod/follow.php:73 mod/follow.php:155 mod/suggest.php:58 -#: mod/display.php:540 mod/common.php:18 mod/mood.php:114 mod/editpost.php:10 -#: mod/network.php:4 mod/group.php:19 mod/profile_photo.php:19 -#: mod/profile_photo.php:175 mod/profile_photo.php:186 -#: mod/profile_photo.php:199 mod/register.php:42 mod/settings.php:22 -#: mod/settings.php:128 mod/settings.php:650 mod/wallmessage.php:9 -#: mod/wallmessage.php:33 mod/wallmessage.php:79 mod/wallmessage.php:103 -#: mod/api.php:26 mod/api.php:31 mod/item.php:184 mod/item.php:196 -#: mod/ostatus_subscribe.php:9 mod/message.php:46 mod/message.php:182 -#: mod/manage.php:96 -msgid "Permission denied." -msgstr "Zugriff verweigert." - -#: include/items.php:2111 -msgid "Archives" -msgstr "Archiv" - -#: include/text.php:304 -msgid "newer" -msgstr "neuer" - -#: include/text.php:306 -msgid "older" -msgstr "älter" - -#: include/text.php:311 -msgid "prev" -msgstr "vorige" - -#: include/text.php:313 -msgid "first" -msgstr "erste" - -#: include/text.php:345 -msgid "last" -msgstr "letzte" - -#: include/text.php:348 -msgid "next" -msgstr "nächste" - -#: include/text.php:403 -msgid "Loading more entries..." -msgstr "lade weitere Einträge..." - -#: include/text.php:404 -msgid "The end" -msgstr "Das Ende" - -#: include/text.php:866 -msgid "No contacts" -msgstr "Keine Kontakte" - -#: include/text.php:881 -#, php-format -msgid "%d Contact" -msgid_plural "%d Contacts" -msgstr[0] "%d Kontakt" -msgstr[1] "%d Kontakte" - -#: include/text.php:893 -msgid "View Contacts" -msgstr "Kontakte anzeigen" - -#: include/text.php:975 include/nav.php:122 mod/search.php:136 -msgid "Search" -msgstr "Suche" - -#: include/text.php:976 mod/notes.php:61 mod/filer.php:31 mod/editpost.php:109 -msgid "Save" -msgstr "Speichern" - -#: include/text.php:982 include/nav.php:125 -msgid "Full Text" -msgstr "Volltext" - -#: include/text.php:983 include/nav.php:126 -msgid "Tags" -msgstr "Tags" - -#: include/text.php:984 include/identity.php:742 include/identity.php:745 -#: include/nav.php:127 include/nav.php:193 mod/viewcontacts.php:116 -#: mod/contacts.php:785 mod/contacts.php:845 view/theme/diabook/theme.php:125 -msgid "Contacts" -msgstr "Kontakte" - -#: include/text.php:1038 -msgid "poke" -msgstr "anstupsen" - -#: include/text.php:1038 -msgid "poked" -msgstr "stupste" - -#: include/text.php:1039 -msgid "ping" -msgstr "anpingen" - -#: include/text.php:1039 -msgid "pinged" -msgstr "pingte" - -#: include/text.php:1040 -msgid "prod" -msgstr "knuffen" - -#: include/text.php:1040 -msgid "prodded" -msgstr "knuffte" - -#: include/text.php:1041 -msgid "slap" -msgstr "ohrfeigen" - -#: include/text.php:1041 -msgid "slapped" -msgstr "ohrfeigte" - -#: include/text.php:1042 -msgid "finger" -msgstr "befummeln" - -#: include/text.php:1042 -msgid "fingered" -msgstr "befummelte" - -#: include/text.php:1043 -msgid "rebuff" -msgstr "eine Abfuhr erteilen" - -#: include/text.php:1043 -msgid "rebuffed" -msgstr "abfuhrerteilte" - -#: include/text.php:1057 -msgid "happy" -msgstr "glücklich" - -#: include/text.php:1058 -msgid "sad" -msgstr "traurig" - -#: include/text.php:1059 -msgid "mellow" -msgstr "sanft" - -#: include/text.php:1060 -msgid "tired" -msgstr "müde" - -#: include/text.php:1061 -msgid "perky" -msgstr "frech" - -#: include/text.php:1062 -msgid "angry" -msgstr "sauer" - -#: include/text.php:1063 -msgid "stupified" -msgstr "verblüfft" - -#: include/text.php:1064 -msgid "puzzled" -msgstr "verwirrt" - -#: include/text.php:1065 -msgid "interested" -msgstr "interessiert" - -#: include/text.php:1066 -msgid "bitter" -msgstr "verbittert" - -#: include/text.php:1067 -msgid "cheerful" -msgstr "fröhlich" - -#: include/text.php:1068 -msgid "alive" -msgstr "lebendig" - -#: include/text.php:1069 -msgid "annoyed" -msgstr "verärgert" - -#: include/text.php:1070 -msgid "anxious" -msgstr "unruhig" - -#: include/text.php:1071 -msgid "cranky" -msgstr "schrullig" - -#: include/text.php:1072 -msgid "disturbed" -msgstr "verstört" - -#: include/text.php:1073 -msgid "frustrated" -msgstr "frustriert" - -#: include/text.php:1074 -msgid "motivated" -msgstr "motiviert" - -#: include/text.php:1075 -msgid "relaxed" -msgstr "entspannt" - -#: include/text.php:1076 -msgid "surprised" -msgstr "überrascht" - -#: include/text.php:1092 mod/events.php:209 mod/settings.php:955 -msgid "Monday" -msgstr "Montag" - -#: include/text.php:1092 mod/events.php:210 -msgid "Tuesday" -msgstr "Dienstag" - -#: include/text.php:1092 mod/events.php:211 -msgid "Wednesday" -msgstr "Mittwoch" - -#: include/text.php:1092 mod/events.php:212 -msgid "Thursday" -msgstr "Donnerstag" - -#: include/text.php:1092 mod/events.php:213 -msgid "Friday" -msgstr "Freitag" - -#: include/text.php:1092 mod/events.php:214 -msgid "Saturday" -msgstr "Samstag" - -#: include/text.php:1092 mod/events.php:208 mod/settings.php:955 -msgid "Sunday" -msgstr "Sonntag" - -#: include/text.php:1096 mod/events.php:227 -msgid "January" -msgstr "Januar" - -#: include/text.php:1096 mod/events.php:228 -msgid "February" -msgstr "Februar" - -#: include/text.php:1096 mod/events.php:229 -msgid "March" -msgstr "März" - -#: include/text.php:1096 mod/events.php:230 -msgid "April" -msgstr "April" - -#: include/text.php:1096 mod/events.php:219 mod/events.php:231 -msgid "May" -msgstr "Mai" - -#: include/text.php:1096 mod/events.php:232 -msgid "June" -msgstr "Juni" - -#: include/text.php:1096 mod/events.php:233 -msgid "July" -msgstr "Juli" - -#: include/text.php:1096 mod/events.php:234 -msgid "August" -msgstr "August" - -#: include/text.php:1096 mod/events.php:235 -msgid "September" -msgstr "September" - -#: include/text.php:1096 mod/events.php:236 -msgid "October" -msgstr "Oktober" - -#: include/text.php:1096 mod/events.php:237 -msgid "November" -msgstr "November" - -#: include/text.php:1096 mod/events.php:238 -msgid "December" -msgstr "Dezember" - -#: include/text.php:1290 mod/videos.php:383 -msgid "View Video" -msgstr "Video ansehen" - -#: include/text.php:1322 -msgid "bytes" -msgstr "Byte" - -#: include/text.php:1354 include/text.php:1366 -msgid "Click to open/close" -msgstr "Zum öffnen/schließen klicken" - -#: include/text.php:1492 -msgid "View on separate page" -msgstr "Auf separater Seite ansehen" - -#: include/text.php:1493 -msgid "view on separate page" -msgstr "auf separater Seite ansehen" - -#: include/text.php:1498 include/text.php:1505 mod/events.php:421 -msgid "link to source" -msgstr "Link zum Originalbeitrag" - -#: include/text.php:1768 include/conversation.php:122 -#: include/conversation.php:258 include/like.php:165 -#: view/theme/diabook/theme.php:463 -msgid "event" -msgstr "Event" - -#: include/text.php:1770 include/conversation.php:130 -#: include/conversation.php:266 include/like.php:163 mod/tagger.php:62 -#: mod/subthread.php:87 view/theme/diabook/theme.php:471 -msgid "photo" -msgstr "Foto" - -#: include/text.php:1772 -msgid "activity" -msgstr "Aktivität" - -#: include/text.php:1774 mod/content.php:607 object/Item.php:421 -#: object/Item.php:434 -msgid "comment" -msgid_plural "comments" -msgstr[0] "Kommentar" -msgstr[1] "Kommentare" - -#: include/text.php:1775 -msgid "post" -msgstr "Beitrag" - -#: include/text.php:1943 -msgid "Item filed" -msgstr "Beitrag abgelegt" - -#: include/conversation.php:144 include/like.php:184 -#, php-format -msgid "%1$s doesn't like %2$s's %3$s" -msgstr "%1$s mag %2$ss %3$s nicht" - -#: include/conversation.php:147 -#, php-format -msgid "%1$s attends %2$s's %3$s" -msgstr "%1$s nimmt an %2$ss %3$s teil." - -#: include/conversation.php:150 -#, php-format -msgid "%1$s doesn't attend %2$s's %3$s" -msgstr "%1$s nimmt nicht an %2$ss %3$s teil." - -#: include/conversation.php:153 -#, php-format -msgid "%1$s attends maybe %2$s's %3$s" -msgstr "%1$s nimmt eventuell an %2$ss %3$s teil." - -#: include/conversation.php:185 mod/dfrn_confirm.php:472 -#, php-format -msgid "%1$s is now friends with %2$s" -msgstr "%1$s ist nun mit %2$s befreundet" - -#: include/conversation.php:219 -#, php-format -msgid "%1$s poked %2$s" -msgstr "%1$s stupste %2$s" - -#: include/conversation.php:239 mod/mood.php:62 -#, php-format -msgid "%1$s is currently %2$s" -msgstr "%1$s ist momentan %2$s" - -#: include/conversation.php:278 mod/tagger.php:95 -#, php-format -msgid "%1$s tagged %2$s's %3$s with %4$s" -msgstr "%1$s hat %2$ss %3$s mit %4$s getaggt" - -#: include/conversation.php:303 -msgid "post/item" -msgstr "Nachricht/Beitrag" - -#: include/conversation.php:304 -#, php-format -msgid "%1$s marked %2$s's %3$s as favorite" -msgstr "%1$s hat %2$s\\s %3$s als Favorit markiert" - -#: include/conversation.php:508 mod/profiles.php:344 mod/photos.php:1634 -msgid "Likes" -msgstr "Likes" - -#: include/conversation.php:508 mod/profiles.php:348 mod/photos.php:1634 -msgid "Dislikes" -msgstr "Dislikes" - -#: include/conversation.php:509 include/conversation.php:1413 -#: mod/photos.php:1635 -msgid "Attending" -msgid_plural "Attending" -msgstr[0] "Teilnehmend" -msgstr[1] "Teilnehmend" - -#: include/conversation.php:509 mod/photos.php:1635 -msgid "Not attending" -msgstr "Nicht teilnehmend" - -#: include/conversation.php:509 mod/photos.php:1635 -msgid "Might attend" -msgstr "Eventuell teilnehmend" - -#: include/conversation.php:634 mod/content.php:439 mod/content.php:742 -#: mod/photos.php:1709 object/Item.php:133 -msgid "Select" -msgstr "Auswählen" - -#: include/conversation.php:635 mod/admin.php:1378 mod/content.php:440 -#: mod/content.php:743 mod/photos.php:1710 mod/contacts.php:801 -#: mod/contacts.php:1015 mod/group.php:171 mod/settings.php:726 -#: object/Item.php:134 -msgid "Delete" -msgstr "Löschen" - -#: include/conversation.php:675 mod/content.php:473 mod/content.php:854 -#: mod/content.php:855 object/Item.php:357 object/Item.php:358 -#, php-format -msgid "View %s's profile @ %s" -msgstr "Das Profil von %s auf %s betrachten." - -#: include/conversation.php:687 object/Item.php:345 -msgid "Categories:" -msgstr "Kategorien:" - -#: include/conversation.php:688 object/Item.php:346 -msgid "Filed under:" -msgstr "Abgelegt unter:" - -#: include/conversation.php:695 mod/content.php:483 mod/content.php:866 -#: object/Item.php:371 -#, php-format -msgid "%s from %s" -msgstr "%s von %s" - -#: include/conversation.php:711 mod/content.php:499 -msgid "View in context" -msgstr "Im Zusammenhang betrachten" - -#: include/conversation.php:713 include/conversation.php:1201 -#: mod/content.php:501 mod/content.php:885 mod/photos.php:1597 -#: mod/editpost.php:124 mod/wallmessage.php:156 mod/message.php:342 -#: mod/message.php:526 object/Item.php:396 -msgid "Please wait" -msgstr "Bitte warten" - -#: include/conversation.php:792 -msgid "remove" -msgstr "löschen" - -#: include/conversation.php:796 -msgid "Delete Selected Items" -msgstr "Lösche die markierten Beiträge" - -#: include/conversation.php:910 -msgid "Follow Thread" -msgstr "Folge der Unterhaltung" - -#: include/conversation.php:911 include/Contact.php:339 -msgid "View Status" -msgstr "Pinnwand anschauen" - -#: include/conversation.php:912 include/conversation.php:926 -#: include/Contact.php:285 include/Contact.php:298 include/Contact.php:340 -#: mod/dirfind.php:197 mod/directory.php:162 mod/match.php:70 -#: mod/allfriends.php:64 mod/suggest.php:81 -msgid "View Profile" -msgstr "Profil anschauen" - -#: include/conversation.php:913 include/Contact.php:341 -msgid "View Photos" -msgstr "Bilder anschauen" - -#: include/conversation.php:914 include/Contact.php:342 -msgid "Network Posts" -msgstr "Netzwerkbeiträge" - -#: include/conversation.php:915 include/Contact.php:343 -msgid "Edit Contact" -msgstr "Kontakt bearbeiten" - -#: include/conversation.php:916 include/Contact.php:345 -msgid "Send PM" -msgstr "Private Nachricht senden" - -#: include/conversation.php:920 include/Contact.php:346 -msgid "Poke" -msgstr "Anstupsen" - -#: include/conversation.php:1034 -#, php-format -msgid "%s likes this." -msgstr "%s mag das." - -#: include/conversation.php:1037 -#, php-format -msgid "%s doesn't like this." -msgstr "%s mag das nicht." - -#: include/conversation.php:1040 -#, php-format -msgid "%s attends." -msgstr "%s nimmt teil." - -#: include/conversation.php:1043 -#, php-format -msgid "%s doesn't attend." -msgstr "%s nimmt nicht teil." - -#: include/conversation.php:1046 -#, php-format -msgid "%s attends maybe." -msgstr "%s nimmt eventuell teil." - -#: include/conversation.php:1056 -msgid "and" -msgstr "und" - -#: include/conversation.php:1062 -#, php-format -msgid ", and %d other people" -msgstr " und %d andere" - -#: include/conversation.php:1071 -#, php-format -msgid "%2$d people like this" -msgstr "%2$d Personen mögen das" - -#: include/conversation.php:1072 -#, php-format -msgid "%s like this." -msgstr "%s mögen das." - -#: include/conversation.php:1075 -#, php-format -msgid "%2$d people don't like this" -msgstr "%2$d Personen mögen das nicht" - -#: include/conversation.php:1076 -#, php-format -msgid "%s don't like this." -msgstr "%s mögen dies nicht." - -#: include/conversation.php:1079 -#, php-format -msgid "%2$d people attend" -msgstr "%2$d Personen nehmen teil" - -#: include/conversation.php:1080 -#, php-format -msgid "%s attend." -msgstr "%s nehmen teil." - -#: include/conversation.php:1083 -#, php-format -msgid "%2$d people don't attend" -msgstr "%2$d Personen nehmen nicht teil" - -#: include/conversation.php:1084 -#, php-format -msgid "%s don't attend." -msgstr "%s nehmen nicht teil." - -#: include/conversation.php:1087 -#, php-format -msgid "%2$d people anttend maybe" -msgstr "%2$d Personen nehmen eventuell teil" - -#: include/conversation.php:1088 -#, php-format -msgid "%s anttend maybe." -msgstr "%s nehmen vielleicht teil." - -#: include/conversation.php:1127 include/conversation.php:1145 -msgid "Visible to everybody" -msgstr "Für jedermann sichtbar" - -#: include/conversation.php:1128 include/conversation.php:1146 -#: mod/wallmessage.php:127 mod/wallmessage.php:135 mod/message.php:291 -#: mod/message.php:299 mod/message.php:427 mod/message.php:435 -msgid "Please enter a link URL:" -msgstr "Bitte gib die URL des Links ein:" - -#: include/conversation.php:1129 include/conversation.php:1147 -msgid "Please enter a video link/URL:" -msgstr "Bitte Link/URL zum Video einfügen:" - -#: include/conversation.php:1130 include/conversation.php:1148 -msgid "Please enter an audio link/URL:" -msgstr "Bitte Link/URL zum Audio einfügen:" - -#: include/conversation.php:1131 include/conversation.php:1149 -msgid "Tag term:" -msgstr "Tag:" - -#: include/conversation.php:1132 include/conversation.php:1150 -#: mod/filer.php:30 -msgid "Save to Folder:" -msgstr "In diesem Ordner speichern:" - -#: include/conversation.php:1133 include/conversation.php:1151 -msgid "Where are you right now?" -msgstr "Wo hältst Du Dich jetzt gerade auf?" - -#: include/conversation.php:1134 -msgid "Delete item(s)?" -msgstr "Einträge löschen?" - -#: include/conversation.php:1182 mod/photos.php:1596 -msgid "Share" -msgstr "Teilen" - -#: include/conversation.php:1183 mod/editpost.php:110 mod/wallmessage.php:154 -#: mod/message.php:340 mod/message.php:523 -msgid "Upload photo" -msgstr "Foto hochladen" - -#: include/conversation.php:1184 mod/editpost.php:111 -msgid "upload photo" -msgstr "Bild hochladen" - -#: include/conversation.php:1185 mod/editpost.php:112 -msgid "Attach file" -msgstr "Datei anhängen" - -#: include/conversation.php:1186 mod/editpost.php:113 -msgid "attach file" -msgstr "Datei anhängen" - -#: include/conversation.php:1187 mod/editpost.php:114 mod/wallmessage.php:155 -#: mod/message.php:341 mod/message.php:524 -msgid "Insert web link" -msgstr "Einen Link einfügen" - -#: include/conversation.php:1188 mod/editpost.php:115 -msgid "web link" -msgstr "Weblink" - -#: include/conversation.php:1189 mod/editpost.php:116 -msgid "Insert video link" -msgstr "Video-Adresse einfügen" - -#: include/conversation.php:1190 mod/editpost.php:117 -msgid "video link" -msgstr "Video-Link" - -#: include/conversation.php:1191 mod/editpost.php:118 -msgid "Insert audio link" -msgstr "Audio-Adresse einfügen" - -#: include/conversation.php:1192 mod/editpost.php:119 -msgid "audio link" -msgstr "Audio-Link" - -#: include/conversation.php:1193 mod/editpost.php:120 -msgid "Set your location" -msgstr "Deinen Standort festlegen" - -#: include/conversation.php:1194 mod/editpost.php:121 -msgid "set location" -msgstr "Ort setzen" - -#: include/conversation.php:1195 mod/editpost.php:122 -msgid "Clear browser location" -msgstr "Browser-Standort leeren" - -#: include/conversation.php:1196 mod/editpost.php:123 -msgid "clear location" -msgstr "Ort löschen" - -#: include/conversation.php:1198 mod/editpost.php:137 -msgid "Set title" -msgstr "Titel setzen" - -#: include/conversation.php:1200 mod/editpost.php:139 -msgid "Categories (comma-separated list)" -msgstr "Kategorien (kommasepariert)" - -#: include/conversation.php:1202 mod/editpost.php:125 -msgid "Permission settings" -msgstr "Berechtigungseinstellungen" - -#: include/conversation.php:1203 -msgid "permissions" -msgstr "Zugriffsrechte" - -#: include/conversation.php:1211 mod/editpost.php:134 -msgid "Public post" -msgstr "Öffentlicher Beitrag" - -#: include/conversation.php:1216 mod/events.php:572 mod/content.php:721 -#: mod/photos.php:1618 mod/photos.php:1666 mod/photos.php:1754 -#: mod/editpost.php:145 object/Item.php:719 -msgid "Preview" -msgstr "Vorschau" - -#: include/conversation.php:1226 -msgid "Post to Groups" -msgstr "Poste an Gruppe" - -#: include/conversation.php:1227 -msgid "Post to Contacts" -msgstr "Poste an Kontakte" - -#: include/conversation.php:1228 -msgid "Private post" -msgstr "Privater Beitrag" - -#: include/conversation.php:1385 -msgid "View all" -msgstr "Zeige alle" - -#: include/conversation.php:1407 -msgid "Like" -msgid_plural "Likes" -msgstr[0] "mag ich" -msgstr[1] "Mag ich" - -#: include/conversation.php:1410 -msgid "Dislike" -msgid_plural "Dislikes" -msgstr[0] "mag ich nicht" -msgstr[1] "Mag ich nicht" - -#: include/conversation.php:1416 -msgid "Not Attending" -msgid_plural "Not Attending" -msgstr[0] "Nicht teilnehmend " -msgstr[1] "Nicht teilnehmend" - -#: include/identity.php:42 -msgid "Requested account is not available." -msgstr "Das angefragte Profil ist nicht vorhanden." - -#: include/identity.php:51 mod/profile.php:21 -msgid "Requested profile is not available." -msgstr "Das angefragte Profil ist nicht vorhanden." - -#: include/identity.php:95 include/identity.php:285 include/identity.php:663 -msgid "Edit profile" -msgstr "Profil bearbeiten" - -#: include/identity.php:245 -msgid "Atom feed" -msgstr "Atom-Feed" - -#: include/identity.php:250 -msgid "Message" -msgstr "Nachricht" - -#: include/identity.php:256 include/nav.php:191 -msgid "Profiles" -msgstr "Profile" - -#: include/identity.php:256 -msgid "Manage/edit profiles" -msgstr "Profile verwalten/editieren" - -#: include/identity.php:261 include/identity.php:287 mod/profiles.php:797 -msgid "Change profile photo" -msgstr "Profilbild ändern" - -#: include/identity.php:262 mod/profiles.php:798 -msgid "Create New Profile" -msgstr "Neues Profil anlegen" - -#: include/identity.php:272 mod/profiles.php:809 -msgid "Profile Image" -msgstr "Profilbild" - -#: include/identity.php:275 mod/profiles.php:811 -msgid "visible to everybody" -msgstr "sichtbar für jeden" - -#: include/identity.php:276 mod/profiles.php:812 -msgid "Edit visibility" -msgstr "Sichtbarkeit bearbeiten" - -#: include/identity.php:299 mod/dirfind.php:216 mod/directory.php:172 -#: mod/match.php:82 mod/viewcontacts.php:105 mod/allfriends.php:77 -#: mod/videos.php:37 mod/photos.php:41 mod/contacts.php:51 -#: mod/contacts.php:947 mod/suggest.php:95 mod/common.php:123 -#: mod/network.php:598 -msgid "Forum" -msgstr "Forum" - -#: include/identity.php:311 include/identity.php:591 mod/notifications.php:250 -#: mod/directory.php:147 -msgid "Gender:" -msgstr "Geschlecht:" - -#: include/identity.php:314 include/identity.php:611 mod/directory.php:149 -msgid "Status:" -msgstr "Status:" - -#: include/identity.php:316 include/identity.php:622 mod/directory.php:151 -msgid "Homepage:" -msgstr "Homepage:" - -#: include/identity.php:318 include/identity.php:632 mod/notifications.php:246 -#: mod/directory.php:153 mod/contacts.php:626 -msgid "About:" -msgstr "Über:" - -#: include/identity.php:396 mod/contacts.php:50 -msgid "Network:" -msgstr "Netzwerk" - -#: include/identity.php:426 include/identity.php:510 -msgid "g A l F d" -msgstr "l, d. F G \\U\\h\\r" - -#: include/identity.php:427 include/identity.php:511 -msgid "F d" -msgstr "d. F" - -#: include/identity.php:472 include/identity.php:557 -msgid "[today]" -msgstr "[heute]" - -#: include/identity.php:484 -msgid "Birthday Reminders" -msgstr "Geburtstagserinnerungen" - -#: include/identity.php:485 -msgid "Birthdays this week:" -msgstr "Geburtstage diese Woche:" - -#: include/identity.php:544 -msgid "[No description]" -msgstr "[keine Beschreibung]" - -#: include/identity.php:568 -msgid "Event Reminders" -msgstr "Veranstaltungserinnerungen" - -#: include/identity.php:569 -msgid "Events this week:" -msgstr "Veranstaltungen diese Woche" - -#: include/identity.php:580 include/identity.php:666 include/identity.php:695 -#: include/nav.php:79 mod/profperm.php:104 mod/contacts.php:833 -#: mod/newmember.php:32 view/theme/diabook/theme.php:124 -msgid "Profile" -msgstr "Profil" - -#: include/identity.php:589 mod/settings.php:1226 -msgid "Full Name:" -msgstr "Kompletter Name:" - -#: include/identity.php:596 -msgid "j F, Y" -msgstr "j F, Y" - -#: include/identity.php:597 -msgid "j F" -msgstr "j F" - -#: include/identity.php:604 -msgid "Birthday:" -msgstr "Geburtstag:" - -#: include/identity.php:608 -msgid "Age:" -msgstr "Alter:" - -#: include/identity.php:617 -#, php-format -msgid "for %1$d %2$s" -msgstr "für %1$d %2$s" - -#: include/identity.php:620 mod/profiles.php:707 -msgid "Sexual Preference:" -msgstr "Sexuelle Vorlieben:" - -#: include/identity.php:624 mod/profiles.php:709 -msgid "Hometown:" -msgstr "Heimatort:" - -#: include/identity.php:626 mod/notifications.php:248 mod/contacts.php:628 -#: mod/follow.php:134 -msgid "Tags:" -msgstr "Tags" - -#: include/identity.php:628 mod/profiles.php:710 -msgid "Political Views:" -msgstr "Politische Ansichten:" - -#: include/identity.php:630 -msgid "Religion:" -msgstr "Religion:" - -#: include/identity.php:634 -msgid "Hobbies/Interests:" -msgstr "Hobbies/Interessen:" - -#: include/identity.php:636 mod/profiles.php:714 -msgid "Likes:" -msgstr "Likes:" - -#: include/identity.php:638 mod/profiles.php:715 -msgid "Dislikes:" -msgstr "Dislikes:" - -#: include/identity.php:641 -msgid "Contact information and Social Networks:" -msgstr "Kontaktinformationen und Soziale Netzwerke:" - -#: include/identity.php:643 -msgid "Musical interests:" -msgstr "Musikalische Interessen:" - -#: include/identity.php:645 -msgid "Books, literature:" -msgstr "Literatur/Bücher:" - -#: include/identity.php:647 -msgid "Television:" -msgstr "Fernsehen:" - -#: include/identity.php:649 -msgid "Film/dance/culture/entertainment:" -msgstr "Filme/Tänze/Kultur/Unterhaltung:" - -#: include/identity.php:651 -msgid "Love/Romance:" -msgstr "Liebesleben:" - -#: include/identity.php:653 -msgid "Work/employment:" -msgstr "Arbeit/Beschäftigung:" - -#: include/identity.php:655 -msgid "School/education:" -msgstr "Schule/Ausbildung:" - -#: include/identity.php:659 -msgid "Forums:" -msgstr "Foren:" - -#: include/identity.php:687 include/nav.php:78 mod/contacts.php:631 -#: mod/contacts.php:825 -msgid "Status" -msgstr "Status" - -#: include/identity.php:690 mod/contacts.php:828 mod/follow.php:143 -msgid "Status Messages and Posts" -msgstr "Statusnachrichten und Beiträge" - -#: include/identity.php:698 mod/contacts.php:836 -msgid "Profile Details" -msgstr "Profildetails" - -#: include/identity.php:703 include/nav.php:80 mod/fbrowser.php:32 -#: view/theme/diabook/theme.php:126 -msgid "Photos" -msgstr "Bilder" - -#: include/identity.php:706 mod/photos.php:99 -msgid "Photo Albums" -msgstr "Fotoalben" - -#: include/identity.php:711 include/identity.php:714 include/nav.php:81 -msgid "Videos" -msgstr "Videos" - -#: include/identity.php:723 include/nav.php:82 include/nav.php:146 -#: mod/events.php:456 view/theme/diabook/theme.php:127 -msgid "Events" -msgstr "Veranstaltungen" - -#: include/identity.php:726 include/nav.php:146 -msgid "Events and Calendar" -msgstr "Ereignisse und Kalender" - -#: include/identity.php:731 mod/notes.php:46 -msgid "Personal Notes" -msgstr "Persönliche Notizen" - -#: include/identity.php:734 -msgid "Only You Can See This" -msgstr "Nur Du kannst das sehen" - -#: include/Scrape.php:643 -msgid " on Last.fm" -msgstr " bei Last.fm" - -#: include/follow.php:77 mod/dfrn_request.php:501 -msgid "Disallowed profile URL." -msgstr "Nicht erlaubte Profil-URL." - -#: include/follow.php:82 -msgid "Connect URL missing." -msgstr "Connect-URL fehlt" - -#: include/follow.php:109 -msgid "" -"This site is not configured to allow communications with other networks." -msgstr "Diese Seite ist so konfiguriert, dass keine Kommunikation mit anderen Netzwerken erfolgen kann." - -#: include/follow.php:110 include/follow.php:130 -msgid "No compatible communication protocols or feeds were discovered." -msgstr "Es wurden keine kompatiblen Kommunikationsprotokolle oder Feeds gefunden." - -#: include/follow.php:128 -msgid "The profile address specified does not provide adequate information." -msgstr "Die angegebene Profiladresse liefert unzureichende Informationen." - -#: include/follow.php:132 -msgid "An author or name was not found." -msgstr "Es wurde kein Autor oder Name gefunden." - -#: include/follow.php:134 -msgid "No browser URL could be matched to this address." -msgstr "Zu dieser Adresse konnte keine passende Browser URL gefunden werden." - -#: include/follow.php:136 -msgid "" -"Unable to match @-style Identity Address with a known protocol or email " -"contact." -msgstr "Konnte die @-Adresse mit keinem der bekannten Protokolle oder Email-Kontakte abgleichen." - -#: include/follow.php:137 -msgid "Use mailto: in front of address to force email check." -msgstr "Verwende mailto: vor der Email Adresse, um eine Überprüfung der E-Mail-Adresse zu erzwingen." - -#: include/follow.php:143 -msgid "" -"The profile address specified belongs to a network which has been disabled " -"on this site." -msgstr "Die Adresse dieses Profils gehört zu einem Netzwerk, mit dem die Kommunikation auf dieser Seite ausgeschaltet wurde." - -#: include/follow.php:153 -msgid "" -"Limited profile. This person will be unable to receive direct/personal " -"notifications from you." -msgstr "Eingeschränktes Profil. Diese Person wird keine direkten/privaten Nachrichten von Dir erhalten können." - -#: include/follow.php:254 -msgid "Unable to retrieve contact information." -msgstr "Konnte die Kontaktinformationen nicht empfangen." - -#: include/follow.php:287 -msgid "following" -msgstr "folgen" - -#: include/Contact.php:119 -msgid "stopped following" -msgstr "wird nicht mehr gefolgt" - -#: include/Contact.php:344 -msgid "Drop Contact" -msgstr "Kontakt löschen" +#: include/bb2diaspora.php:148 include/event.php:16 mod/localtime.php:12 +msgid "l F d, Y \\@ g:i A" +msgstr "l, d. F Y\\, H:i" + +#: include/bb2diaspora.php:154 include/event.php:33 include/event.php:51 +msgid "Starts:" +msgstr "Beginnt:" + +#: include/bb2diaspora.php:162 include/event.php:36 include/event.php:57 +msgid "Finishes:" +msgstr "Endet:" + +#: include/bb2diaspora.php:170 include/event.php:39 include/event.php:63 +#: include/identity.php:329 mod/directory.php:145 mod/events.php:495 +#: mod/notifications.php:232 mod/contacts.php:628 +msgid "Location:" +msgstr "Ort:" #: include/oembed.php:229 msgid "Embedded content" @@ -2072,178 +826,16 @@ msgstr "Eingebetteter Inhalt" msgid "Embedding disabled" msgstr "Einbettungen deaktiviert" -#: include/bbcode.php:349 include/bbcode.php:1023 include/bbcode.php:1024 -msgid "Image/photo" -msgstr "Bild/Foto" - -#: include/bbcode.php:462 +#: include/dba_pdo.php:72 include/dba.php:56 #, php-format -msgid "%2$s %3$s" -msgstr "%2$s %3$s" - -#: include/bbcode.php:496 -#, php-format -msgid "" -"%s wrote the following post" -msgstr "%s schrieb den folgenden Beitrag" - -#: include/bbcode.php:983 include/bbcode.php:1003 -msgid "$1 wrote:" -msgstr "$1 hat geschrieben:" - -#: include/bbcode.php:1032 include/bbcode.php:1033 -msgid "Encrypted content" -msgstr "Verschlüsselter Inhalt" - -#: include/contact_selectors.php:32 -msgid "Unknown | Not categorised" -msgstr "Unbekannt | Nicht kategorisiert" - -#: include/contact_selectors.php:33 -msgid "Block immediately" -msgstr "Sofort blockieren" - -#: include/contact_selectors.php:34 -msgid "Shady, spammer, self-marketer" -msgstr "Zwielichtig, Spammer, Selbstdarsteller" - -#: include/contact_selectors.php:35 -msgid "Known to me, but no opinion" -msgstr "Ist mir bekannt, hab aber keine Meinung" - -#: include/contact_selectors.php:36 -msgid "OK, probably harmless" -msgstr "OK, wahrscheinlich harmlos" - -#: include/contact_selectors.php:37 -msgid "Reputable, has my trust" -msgstr "Seriös, hat mein Vertrauen" - -#: include/contact_selectors.php:56 mod/admin.php:849 -msgid "Frequently" -msgstr "immer wieder" - -#: include/contact_selectors.php:57 mod/admin.php:850 -msgid "Hourly" -msgstr "Stündlich" - -#: include/contact_selectors.php:58 mod/admin.php:851 -msgid "Twice daily" -msgstr "Zweimal täglich" - -#: include/contact_selectors.php:59 mod/admin.php:852 -msgid "Daily" -msgstr "Täglich" - -#: include/contact_selectors.php:60 -msgid "Weekly" -msgstr "Wöchentlich" - -#: include/contact_selectors.php:61 -msgid "Monthly" -msgstr "Monatlich" - -#: include/contact_selectors.php:76 mod/dfrn_request.php:859 -msgid "Friendica" -msgstr "Friendica" - -#: include/contact_selectors.php:77 -msgid "OStatus" -msgstr "OStatus" - -#: include/contact_selectors.php:78 -msgid "RSS/Atom" -msgstr "RSS/Atom" - -#: include/contact_selectors.php:79 include/contact_selectors.php:86 -#: mod/admin.php:1361 mod/admin.php:1374 mod/admin.php:1386 mod/admin.php:1404 -msgid "Email" -msgstr "E-Mail" - -#: include/contact_selectors.php:80 mod/dfrn_request.php:861 -#: mod/settings.php:827 -msgid "Diaspora" -msgstr "Diaspora" - -#: include/contact_selectors.php:81 -msgid "Facebook" -msgstr "Facebook" - -#: include/contact_selectors.php:82 -msgid "Zot!" -msgstr "Zott" - -#: include/contact_selectors.php:83 -msgid "LinkedIn" -msgstr "LinkedIn" - -#: include/contact_selectors.php:84 -msgid "XMPP/IM" -msgstr "XMPP/Chat" - -#: include/contact_selectors.php:85 -msgid "MySpace" -msgstr "MySpace" - -#: include/contact_selectors.php:87 -msgid "Google+" -msgstr "Google+" - -#: include/contact_selectors.php:88 -msgid "pump.io" -msgstr "pump.io" - -#: include/contact_selectors.php:89 -msgid "Twitter" -msgstr "Twitter" - -#: include/contact_selectors.php:90 -msgid "Diaspora Connector" -msgstr "Diaspora" - -#: include/contact_selectors.php:91 -msgid "GNU Social" -msgstr "GNU Social" - -#: include/contact_selectors.php:92 -msgid "App.net" -msgstr "App.net" - -#: include/contact_selectors.php:103 -msgid "Hubzilla/Redmatrix" -msgstr "Hubzilla/Redmatrix" - -#: include/dbstructure.php:26 -#, php-format -msgid "" -"\n" -"\t\t\tThe friendica developers released update %s recently,\n" -"\t\t\tbut when I tried to install it, something went terribly wrong.\n" -"\t\t\tThis needs to be fixed soon and I can't do it alone. Please contact a\n" -"\t\t\tfriendica developer if you can not help me on your own. My database might be invalid." -msgstr "\nDie Friendica-Entwickler haben vor kurzem das Update %s veröffentlicht, aber bei der Installation ging etwas schrecklich schief.\n\nDas Problem sollte so schnell wie möglich gelöst werden, aber ich schaffe es nicht alleine. Bitte kontaktiere einen Friendica-Entwickler falls Du mir nicht alleine helfen kannst. Meine Datenbank könnte ungültig sein." - -#: include/dbstructure.php:31 -#, php-format -msgid "" -"The error message is\n" -"[pre]%s[/pre]" -msgstr "Die Fehlermeldung lautet\n[pre]%s[/pre]" - -#: include/dbstructure.php:153 -msgid "Errors encountered creating database tables." -msgstr "Fehler aufgetreten während der Erzeugung der Datenbanktabellen." - -#: include/dbstructure.php:230 -msgid "Errors encountered performing database changes." -msgstr "Es sind Fehler beim Bearbeiten der Datenbank aufgetreten." +msgid "Cannot locate DNS info for database server '%s'" +msgstr "Kann die DNS Informationen für den Datenbankserver '%s' nicht ermitteln." #: include/auth.php:45 msgid "Logged out." msgstr "Abgemeldet." -#: include/auth.php:116 include/auth.php:178 mod/openid.php:93 +#: include/auth.php:116 include/auth.php:178 mod/openid.php:100 msgid "Login failed." msgstr "Anmeldung fehlgeschlagen." @@ -2257,10 +849,6 @@ msgstr "Beim Versuch Dich mit der von Dir angegebenen OpenID anzumelden trat ein msgid "The error message was:" msgstr "Die Fehlermeldung lautete:" -#: include/network.php:913 -msgid "view full size" -msgstr "Volle Größe anzeigen" - #: include/group.php:25 msgid "" "A deleted group with this name was revived. Existing item permissions " @@ -2308,16 +896,12 @@ msgstr "Kontakte in keiner Gruppe" msgid "add" msgstr "hinzufügen" -#: include/Photo.php:994 include/Photo.php:1009 include/Photo.php:1016 -#: include/Photo.php:1038 include/message.php:145 mod/wall_upload.php:218 -#: mod/wall_upload.php:232 mod/wall_upload.php:239 mod/item.php:471 +#: include/Photo.php:996 include/Photo.php:1011 include/Photo.php:1018 +#: include/Photo.php:1040 include/message.php:145 mod/wall_upload.php:218 +#: mod/wall_upload.php:232 mod/wall_upload.php:239 mod/item.php:472 msgid "Wall Photos" msgstr "Pinnwand-Bilder" -#: include/delivery.php:439 -msgid "(no subject)" -msgstr "(kein Betreff)" - #: include/user.php:39 mod/settings.php:370 msgid "Passwords do not match. Password unchanged." msgstr "Die Passwörter stimmen nicht überein. Das Passwort bleibt unverändert." @@ -2393,11 +977,11 @@ msgid "An error occurred creating your default profile. Please try again." msgstr "Bei der Erstellung des Standardprofils ist ein Fehler aufgetreten. Bitte versuche es noch einmal." #: include/user.php:345 include/user.php:352 include/user.php:359 -#: mod/photos.php:78 mod/photos.php:192 mod/photos.php:769 mod/photos.php:1232 -#: mod/photos.php:1255 mod/photos.php:1849 mod/profile_photo.php:74 -#: mod/profile_photo.php:81 mod/profile_photo.php:88 mod/profile_photo.php:210 -#: mod/profile_photo.php:302 mod/profile_photo.php:311 -#: view/theme/diabook/theme.php:500 +#: mod/profile_photo.php:74 mod/profile_photo.php:81 mod/profile_photo.php:88 +#: mod/profile_photo.php:210 mod/profile_photo.php:302 +#: mod/profile_photo.php:311 mod/photos.php:79 mod/photos.php:193 +#: mod/photos.php:770 mod/photos.php:1233 mod/photos.php:1256 +#: mod/photos.php:1849 view/theme/diabook/theme.php:500 msgid "Profile Photos" msgstr "Profilbilder" @@ -2440,221 +1024,11 @@ msgid "" "\t\tThank you and welcome to %2$s." msgstr "\nDie Anmelde-Details sind die folgenden:\n\tAdresse der Seite:\t%3$s\n\tBenutzernamename:\t%1$s\n\tPasswort:\t%5$s\n\nDu kannst Dein Passwort unter \"Einstellungen\" ändern, sobald Du Dich\nangemeldet hast.\n\nBitte nimm Dir ein paar Minuten um die anderen Einstellungen auf dieser\nSeite zu kontrollieren.\n\nEventuell magst Du ja auch einige Informationen über Dich in Deinem\nProfil veröffentlichen, damit andere Leute Dich einfacher finden können.\nBearbeite hierfür einfach Dein Standard-Profil (über die Profil-Seite).\n\nWir empfehlen Dir, Deinen kompletten Namen anzugeben und ein zu Dir\npassendes Profilbild zu wählen, damit Dich alte Bekannte wieder finden.\nAußerdem ist es nützlich, wenn Du auf Deinem Profil Schlüsselwörter\nangibst. Das erleichtert es, Leute zu finden, die Deine Interessen teilen.\n\nWir respektieren Deine Privatsphäre - keine dieser Angaben ist nötig.\nWenn Du neu im Netzwerk bist und noch niemanden kennst, dann können sie\nallerdings dabei helfen, neue und interessante Kontakte zu knüpfen.\n\nDanke für Deine Aufmerksamkeit und willkommen auf %2$s." -#: include/user.php:423 mod/admin.php:1168 +#: include/user.php:423 mod/admin.php:1182 #, php-format msgid "Registration details for %s" msgstr "Details der Registration von %s" -#: include/api.php:907 -#, php-format -msgid "Daily posting limit of %d posts reached. The post was rejected." -msgstr "Das tägliche Nachrichtenlimit von %d Nachrichten wurde erreicht. Die Nachtricht wurde verworfen." - -#: include/api.php:927 -#, php-format -msgid "Weekly posting limit of %d posts reached. The post was rejected." -msgstr "Das wöchentliche Nachrichtenlimit von %d Nachrichten wurde erreicht. Die Nachtricht wurde verworfen." - -#: include/api.php:948 -#, php-format -msgid "Monthly posting limit of %d posts reached. The post was rejected." -msgstr "Das monatliche Nachrichtenlimit von %d Nachrichten wurde erreicht. Die Nachtricht wurde verworfen." - -#: include/features.php:63 -msgid "General Features" -msgstr "Allgemeine Features" - -#: include/features.php:65 -msgid "Multiple Profiles" -msgstr "Mehrere Profile" - -#: include/features.php:65 -msgid "Ability to create multiple profiles" -msgstr "Möglichkeit mehrere Profile zu erstellen" - -#: include/features.php:66 -msgid "Photo Location" -msgstr "Aufnahmeort" - -#: include/features.php:66 -msgid "" -"Photo metadata is normally stripped. This extracts the location (if present)" -" prior to stripping metadata and links it to a map." -msgstr "Die Foto-Metadaten werden ausgelesen. Dadurch kann der Aufnahmeort (wenn vorhanden) in einer Karte angezeigt werden." - -#: include/features.php:71 -msgid "Post Composition Features" -msgstr "Beitragserstellung Features" - -#: include/features.php:72 -msgid "Richtext Editor" -msgstr "Web-Editor" - -#: include/features.php:72 -msgid "Enable richtext editor" -msgstr "Den Web-Editor für neue Beiträge aktivieren" - -#: include/features.php:73 -msgid "Post Preview" -msgstr "Beitragsvorschau" - -#: include/features.php:73 -msgid "Allow previewing posts and comments before publishing them" -msgstr "Die Vorschau von Beiträgen und Kommentaren vor dem absenden erlauben." - -#: include/features.php:74 -msgid "Auto-mention Forums" -msgstr "Foren automatisch erwähnen" - -#: include/features.php:74 -msgid "" -"Add/remove mention when a fourm page is selected/deselected in ACL window." -msgstr "Automatisch eine @-Erwähnung eines Forums einfügen/entfehrnen, wenn dieses im ACL Fenster de-/markiert wurde." - -#: include/features.php:79 -msgid "Network Sidebar Widgets" -msgstr "Widgets für Netzwerk und Seitenleiste" - -#: include/features.php:80 -msgid "Search by Date" -msgstr "Archiv" - -#: include/features.php:80 -msgid "Ability to select posts by date ranges" -msgstr "Möglichkeit die Beiträge nach Datumsbereichen zu sortieren" - -#: include/features.php:81 include/features.php:111 -msgid "List Forums" -msgstr "Zeige Foren" - -#: include/features.php:81 -msgid "Enable widget to display the forums your are connected with" -msgstr "Aktiviere Widget, um die Foren mit denen du verbunden bist anzuzeigen" - -#: include/features.php:82 -msgid "Group Filter" -msgstr "Gruppen Filter" - -#: include/features.php:82 -msgid "Enable widget to display Network posts only from selected group" -msgstr "Widget zur Darstellung der Beiträge nach Kontaktgruppen sortiert aktivieren." - -#: include/features.php:83 -msgid "Network Filter" -msgstr "Netzwerk Filter" - -#: include/features.php:83 -msgid "Enable widget to display Network posts only from selected network" -msgstr "Widget zum filtern der Beiträge in Abhängigkeit des Netzwerks aus dem der Ersteller sendet aktivieren." - -#: include/features.php:84 mod/search.php:34 mod/network.php:200 -msgid "Saved Searches" -msgstr "Gespeicherte Suchen" - -#: include/features.php:84 -msgid "Save search terms for re-use" -msgstr "Speichere Suchanfragen für spätere Wiederholung." - -#: include/features.php:89 -msgid "Network Tabs" -msgstr "Netzwerk Reiter" - -#: include/features.php:90 -msgid "Network Personal Tab" -msgstr "Netzwerk-Reiter: Persönlich" - -#: include/features.php:90 -msgid "Enable tab to display only Network posts that you've interacted on" -msgstr "Aktiviert einen Netzwerk-Reiter in dem Nachrichten angezeigt werden mit denen Du interagiert hast" - -#: include/features.php:91 -msgid "Network New Tab" -msgstr "Netzwerk-Reiter: Neue" - -#: include/features.php:91 -msgid "Enable tab to display only new Network posts (from the last 12 hours)" -msgstr "Aktiviert einen Netzwerk-Reiter in dem ausschließlich neue Beiträge (der letzten 12 Stunden) angezeigt werden" - -#: include/features.php:92 -msgid "Network Shared Links Tab" -msgstr "Netzwerk-Reiter: Geteilte Links" - -#: include/features.php:92 -msgid "Enable tab to display only Network posts with links in them" -msgstr "Aktiviert einen Netzwerk-Reiter der ausschließlich Nachrichten mit Links enthält" - -#: include/features.php:97 -msgid "Post/Comment Tools" -msgstr "Werkzeuge für Beiträge und Kommentare" - -#: include/features.php:98 -msgid "Multiple Deletion" -msgstr "Mehrere Beiträge löschen" - -#: include/features.php:98 -msgid "Select and delete multiple posts/comments at once" -msgstr "Mehrere Beiträge/Kommentare markieren und gleichzeitig löschen" - -#: include/features.php:99 -msgid "Edit Sent Posts" -msgstr "Gesendete Beiträge editieren" - -#: include/features.php:99 -msgid "Edit and correct posts and comments after sending" -msgstr "Erlaubt es Beiträge und Kommentare nach dem Senden zu editieren bzw.zu korrigieren." - -#: include/features.php:100 -msgid "Tagging" -msgstr "Tagging" - -#: include/features.php:100 -msgid "Ability to tag existing posts" -msgstr "Möglichkeit bereits existierende Beiträge nachträglich mit Tags zu versehen." - -#: include/features.php:101 -msgid "Post Categories" -msgstr "Beitragskategorien" - -#: include/features.php:101 -msgid "Add categories to your posts" -msgstr "Eigene Beiträge mit Kategorien versehen" - -#: include/features.php:102 -msgid "Ability to file posts under folders" -msgstr "Beiträge in Ordnern speichern aktivieren" - -#: include/features.php:103 -msgid "Dislike Posts" -msgstr "Beiträge 'nicht mögen'" - -#: include/features.php:103 -msgid "Ability to dislike posts/comments" -msgstr "Ermöglicht es Beiträge mit einem Klick 'nicht zu mögen'" - -#: include/features.php:104 -msgid "Star Posts" -msgstr "Beiträge Markieren" - -#: include/features.php:104 -msgid "Ability to mark special posts with a star indicator" -msgstr "Erlaubt es Beiträge mit einem Stern-Indikator zu markieren" - -#: include/features.php:105 -msgid "Mute Post Notifications" -msgstr "Benachrichtigungen für Beiträge Stumm schalten" - -#: include/features.php:105 -msgid "Ability to mute notifications for a thread" -msgstr "Möglichkeit Benachrichtigungen für einen Thread abbestellen zu können" - -#: include/features.php:110 -msgid "Advanced Profile Settings" -msgstr "Erweiterte Profil-Einstellungen" - -#: include/features.php:111 -msgid "Show visitors public community forums at the Advanced Profile Page" -msgstr "Zeige Besuchern öffentliche Gemeinschafts-Foren auf der Erweiterten Profil-Seite" - #: include/nav.php:35 mod/navigation.php:19 msgid "Nothing new here" msgstr "Keine Neuigkeiten" @@ -2663,31 +1037,68 @@ msgstr "Keine Neuigkeiten" msgid "Clear notifications" msgstr "Bereinige Benachrichtigungen" -#: include/nav.php:40 +#: include/nav.php:40 include/text.php:997 msgid "@name, !forum, #tags, content" msgstr "@name, !forum, #tags, content" -#: include/nav.php:75 +#: include/nav.php:75 view/theme/frio/theme.php:243 boot.php:1726 +msgid "Logout" +msgstr "Abmelden" + +#: include/nav.php:75 view/theme/frio/theme.php:243 msgid "End this session" msgstr "Diese Sitzung beenden" -#: include/nav.php:78 include/nav.php:163 view/theme/diabook/theme.php:123 +#: include/nav.php:78 include/identity.php:715 mod/contacts.php:637 +#: mod/contacts.php:833 view/theme/frio/theme.php:246 +msgid "Status" +msgstr "Status" + +#: include/nav.php:78 include/nav.php:163 view/theme/frio/theme.php:246 +#: view/theme/diabook/theme.php:123 msgid "Your posts and conversations" msgstr "Deine Beiträge und Unterhaltungen" -#: include/nav.php:79 view/theme/diabook/theme.php:124 +#: include/nav.php:79 include/identity.php:606 include/identity.php:692 +#: include/identity.php:723 mod/profperm.php:104 mod/newmember.php:32 +#: mod/contacts.php:639 mod/contacts.php:841 view/theme/frio/theme.php:247 +#: view/theme/diabook/theme.php:124 +msgid "Profile" +msgstr "Profil" + +#: include/nav.php:79 view/theme/frio/theme.php:247 +#: view/theme/diabook/theme.php:124 msgid "Your profile page" msgstr "Deine Profilseite" -#: include/nav.php:80 view/theme/diabook/theme.php:126 +#: include/nav.php:80 include/identity.php:731 mod/fbrowser.php:32 +#: view/theme/frio/theme.php:248 view/theme/diabook/theme.php:126 +msgid "Photos" +msgstr "Bilder" + +#: include/nav.php:80 view/theme/frio/theme.php:248 +#: view/theme/diabook/theme.php:126 msgid "Your photos" msgstr "Deine Fotos" -#: include/nav.php:81 +#: include/nav.php:81 include/identity.php:739 include/identity.php:742 +#: view/theme/frio/theme.php:249 +msgid "Videos" +msgstr "Videos" + +#: include/nav.php:81 view/theme/frio/theme.php:249 msgid "Your videos" msgstr "Deine Videos" -#: include/nav.php:82 view/theme/diabook/theme.php:127 +#: include/nav.php:82 include/nav.php:146 include/identity.php:751 +#: include/identity.php:762 mod/cal.php:278 mod/events.php:379 +#: view/theme/frio/theme.php:250 view/theme/frio/theme.php:254 +#: view/theme/diabook/theme.php:127 +msgid "Events" +msgstr "Veranstaltungen" + +#: include/nav.php:82 view/theme/frio/theme.php:250 +#: view/theme/diabook/theme.php:127 msgid "Your events" msgstr "Deine Ereignisse" @@ -2699,12 +1110,16 @@ msgstr "Persönliche Notizen" msgid "Your personal notes" msgstr "Deine persönlichen Notizen" +#: include/nav.php:94 mod/bookmarklet.php:12 boot.php:1727 +msgid "Login" +msgstr "Anmeldung" + #: include/nav.php:94 msgid "Sign in" msgstr "Anmelden" -#: include/nav.php:107 include/nav.php:163 mod/notifications.php:99 -#: view/theme/diabook/theme.php:123 +#: include/nav.php:107 include/nav.php:163 +#: include/NotificationsManager.php:174 view/theme/diabook/theme.php:123 msgid "Home" msgstr "Pinnwand" @@ -2712,6 +1127,10 @@ msgstr "Pinnwand" msgid "Home Page" msgstr "Homepage" +#: include/nav.php:111 mod/register.php:280 boot.php:1702 +msgid "Register" +msgstr "Registrieren" + #: include/nav.php:111 msgid "Create an account" msgstr "Nutzerkonto erstellen" @@ -2732,10 +1151,29 @@ msgstr "Apps" msgid "Addon applications, utilities, games" msgstr "Addon Anwendungen, Dienstprogramme, Spiele" +#: include/nav.php:122 include/text.php:994 mod/search.php:149 +msgid "Search" +msgstr "Suche" + #: include/nav.php:122 msgid "Search site content" msgstr "Inhalt der Seite durchsuchen" +#: include/nav.php:125 include/text.php:1002 +msgid "Full Text" +msgstr "Volltext" + +#: include/nav.php:126 include/text.php:1003 +msgid "Tags" +msgstr "Tags" + +#: include/nav.php:127 include/nav.php:193 include/text.php:1004 +#: include/identity.php:784 include/identity.php:787 mod/viewcontacts.php:116 +#: mod/contacts.php:792 mod/contacts.php:853 view/theme/frio/theme.php:257 +#: view/theme/diabook/theme.php:125 +msgid "Contacts" +msgstr "Kontakte" + #: include/nav.php:141 include/nav.php:143 mod/community.php:36 #: view/theme/diabook/theme.php:129 msgid "Community" @@ -2749,6 +1187,11 @@ msgstr "Unterhaltungen auf dieser Seite" msgid "Conversations on the network" msgstr "Unterhaltungen im Netzwerk" +#: include/nav.php:146 include/identity.php:754 include/identity.php:765 +#: view/theme/frio/theme.php:254 +msgid "Events and Calendar" +msgstr "Ereignisse und Kalender" + #: include/nav.php:148 msgid "Directory" msgstr "Verzeichnis" @@ -2765,11 +1208,12 @@ msgstr "Information" msgid "Information about this friendica instance" msgstr "Informationen zu dieser Friendica Instanz" -#: include/nav.php:160 mod/notifications.php:87 mod/admin.php:399 +#: include/nav.php:160 include/NotificationsManager.php:160 mod/admin.php:402 +#: view/theme/frio/theme.php:253 msgid "Network" msgstr "Netzwerk" -#: include/nav.php:160 +#: include/nav.php:160 view/theme/frio/theme.php:253 msgid "Conversations from your friends" msgstr "Unterhaltungen Deiner Kontakte" @@ -2781,7 +1225,7 @@ msgstr "Netzwerk zurücksetzen" msgid "Load Network page with no filters" msgstr "Netzwerk-Seite ohne Filter laden" -#: include/nav.php:168 mod/notifications.php:105 +#: include/nav.php:168 include/NotificationsManager.php:181 msgid "Introductions" msgstr "Kontaktanfragen" @@ -2789,7 +1233,7 @@ msgstr "Kontaktanfragen" msgid "Friend Requests" msgstr "Kontaktanfragen" -#: include/nav.php:171 mod/notifications.php:269 +#: include/nav.php:171 mod/notifications.php:96 msgid "Notifications" msgstr "Benachrichtigungen" @@ -2797,15 +1241,19 @@ msgstr "Benachrichtigungen" msgid "See all notifications" msgstr "Alle Benachrichtigungen anzeigen" +#: include/nav.php:173 mod/settings.php:899 +msgid "Mark as seen" +msgstr "Als gelesen markieren" + #: include/nav.php:173 msgid "Mark all system notifications seen" msgstr "Markiere alle Systembenachrichtigungen als gelesen" -#: include/nav.php:177 mod/message.php:190 +#: include/nav.php:177 mod/message.php:190 view/theme/frio/theme.php:255 msgid "Messages" msgstr "Nachrichten" -#: include/nav.php:177 +#: include/nav.php:177 view/theme/frio/theme.php:255 msgid "Private mail" msgstr "Private E-Mail" @@ -2837,23 +1285,27 @@ msgstr "Delegationen" msgid "Delegate Page Management" msgstr "Delegiere das Management für die Seite" -#: include/nav.php:188 mod/admin.php:1488 mod/admin.php:1746 -#: mod/newmember.php:22 mod/settings.php:111 view/theme/diabook/theme.php:544 -#: view/theme/diabook/theme.php:648 +#: include/nav.php:188 mod/newmember.php:22 mod/admin.php:1502 +#: mod/admin.php:1760 mod/settings.php:111 view/theme/frio/theme.php:256 +#: view/theme/diabook/theme.php:544 view/theme/diabook/theme.php:648 msgid "Settings" msgstr "Einstellungen" -#: include/nav.php:188 +#: include/nav.php:188 view/theme/frio/theme.php:256 msgid "Account settings" msgstr "Kontoeinstellungen" +#: include/nav.php:191 include/identity.php:276 +msgid "Profiles" +msgstr "Profile" + #: include/nav.php:191 msgid "Manage/Edit Profiles" msgstr "Profile Verwalten/Editieren" -#: include/nav.php:193 +#: include/nav.php:193 view/theme/frio/theme.php:257 msgid "Manage/edit friends and contacts" -msgstr "Freunde und Kontakte verwalten/editieren" +msgstr " Kontakte verwalten/editieren" #: include/nav.php:200 mod/admin.php:186 msgid "Admin" @@ -2871,20 +1323,127 @@ msgstr "Navigation" msgid "Site map" msgstr "Sitemap" -#: include/like.php:186 -#, php-format -msgid "%1$s is attending %2$s's %3$s" -msgstr "%1$s nimmt an %2$ss %3$s teil." +#: include/contact_selectors.php:32 +msgid "Unknown | Not categorised" +msgstr "Unbekannt | Nicht kategorisiert" -#: include/like.php:188 -#, php-format -msgid "%1$s is not attending %2$s's %3$s" -msgstr "%1$s nimmt nicht an %2$ss %3$s teil." +#: include/contact_selectors.php:33 +msgid "Block immediately" +msgstr "Sofort blockieren" -#: include/like.php:190 -#, php-format -msgid "%1$s may attend %2$s's %3$s" -msgstr "%1$s nimmt eventuell an %2$ss %3$s teil." +#: include/contact_selectors.php:34 +msgid "Shady, spammer, self-marketer" +msgstr "Zwielichtig, Spammer, Selbstdarsteller" + +#: include/contact_selectors.php:35 +msgid "Known to me, but no opinion" +msgstr "Ist mir bekannt, hab aber keine Meinung" + +#: include/contact_selectors.php:36 +msgid "OK, probably harmless" +msgstr "OK, wahrscheinlich harmlos" + +#: include/contact_selectors.php:37 +msgid "Reputable, has my trust" +msgstr "Seriös, hat mein Vertrauen" + +#: include/contact_selectors.php:56 mod/admin.php:862 +msgid "Frequently" +msgstr "immer wieder" + +#: include/contact_selectors.php:57 mod/admin.php:863 +msgid "Hourly" +msgstr "Stündlich" + +#: include/contact_selectors.php:58 mod/admin.php:864 +msgid "Twice daily" +msgstr "Zweimal täglich" + +#: include/contact_selectors.php:59 mod/admin.php:865 +msgid "Daily" +msgstr "Täglich" + +#: include/contact_selectors.php:60 +msgid "Weekly" +msgstr "Wöchentlich" + +#: include/contact_selectors.php:61 +msgid "Monthly" +msgstr "Monatlich" + +#: include/contact_selectors.php:76 mod/dfrn_request.php:867 +msgid "Friendica" +msgstr "Friendica" + +#: include/contact_selectors.php:77 +msgid "OStatus" +msgstr "OStatus" + +#: include/contact_selectors.php:78 +msgid "RSS/Atom" +msgstr "RSS/Atom" + +#: include/contact_selectors.php:79 include/contact_selectors.php:86 +#: mod/admin.php:1375 mod/admin.php:1388 mod/admin.php:1400 mod/admin.php:1418 +msgid "Email" +msgstr "E-Mail" + +#: include/contact_selectors.php:80 mod/dfrn_request.php:869 +#: mod/settings.php:839 +msgid "Diaspora" +msgstr "Diaspora" + +#: include/contact_selectors.php:81 +msgid "Facebook" +msgstr "Facebook" + +#: include/contact_selectors.php:82 +msgid "Zot!" +msgstr "Zott" + +#: include/contact_selectors.php:83 +msgid "LinkedIn" +msgstr "LinkedIn" + +#: include/contact_selectors.php:84 +msgid "XMPP/IM" +msgstr "XMPP/Chat" + +#: include/contact_selectors.php:85 +msgid "MySpace" +msgstr "MySpace" + +#: include/contact_selectors.php:87 +msgid "Google+" +msgstr "Google+" + +#: include/contact_selectors.php:88 +msgid "pump.io" +msgstr "pump.io" + +#: include/contact_selectors.php:89 +msgid "Twitter" +msgstr "Twitter" + +#: include/contact_selectors.php:90 +msgid "Diaspora Connector" +msgstr "Diaspora" + +#: include/contact_selectors.php:91 +msgid "GNU Social" +msgstr "GNU Social" + +#: include/contact_selectors.php:92 +msgid "App.net" +msgstr "App.net" + +#: include/contact_selectors.php:103 +msgid "Hubzilla/Redmatrix" +msgstr "Hubzilla/Redmatrix" + +#: include/network.php:595 +msgid "view full size" +msgstr "Volle Größe anzeigen" #: include/acl_selectors.php:327 msgid "Post to Email" @@ -2895,7 +1454,7 @@ msgstr "An E-Mail senden" msgid "Connectors disabled, since \"%s\" is enabled." msgstr "Konnektoren sind nicht verfügbar, da \"%s\" aktiv ist." -#: include/acl_selectors.php:333 mod/settings.php:1128 +#: include/acl_selectors.php:333 mod/settings.php:1171 msgid "Hide your profile details from unknown viewers?" msgstr "Profil-Details vor unbekannten Betrachtern verbergen?" @@ -2921,7 +1480,8 @@ msgstr "Cc: E-Mail-Addressen" msgid "Example: bob@example.com, mary@example.com" msgstr "Z.B.: bob@example.com, mary@example.com" -#: include/acl_selectors.php:349 mod/photos.php:1177 mod/photos.php:1562 +#: include/acl_selectors.php:349 mod/photos.php:1178 mod/photos.php:1562 +#: mod/events.php:510 msgid "Permissions" msgstr "Berechtigungen" @@ -2929,42 +1489,1590 @@ msgstr "Berechtigungen" msgid "Close" msgstr "Schließen" +#: include/follow.php:77 mod/dfrn_request.php:507 +msgid "Disallowed profile URL." +msgstr "Nicht erlaubte Profil-URL." + +#: include/follow.php:82 +msgid "Connect URL missing." +msgstr "Connect-URL fehlt" + +#: include/follow.php:109 +msgid "" +"This site is not configured to allow communications with other networks." +msgstr "Diese Seite ist so konfiguriert, dass keine Kommunikation mit anderen Netzwerken erfolgen kann." + +#: include/follow.php:110 include/follow.php:130 +msgid "No compatible communication protocols or feeds were discovered." +msgstr "Es wurden keine kompatiblen Kommunikationsprotokolle oder Feeds gefunden." + +#: include/follow.php:128 +msgid "The profile address specified does not provide adequate information." +msgstr "Die angegebene Profiladresse liefert unzureichende Informationen." + +#: include/follow.php:132 +msgid "An author or name was not found." +msgstr "Es wurde kein Autor oder Name gefunden." + +#: include/follow.php:134 +msgid "No browser URL could be matched to this address." +msgstr "Zu dieser Adresse konnte keine passende Browser URL gefunden werden." + +#: include/follow.php:136 +msgid "" +"Unable to match @-style Identity Address with a known protocol or email " +"contact." +msgstr "Konnte die @-Adresse mit keinem der bekannten Protokolle oder Email-Kontakte abgleichen." + +#: include/follow.php:137 +msgid "Use mailto: in front of address to force email check." +msgstr "Verwende mailto: vor der Email Adresse, um eine Überprüfung der E-Mail-Adresse zu erzwingen." + +#: include/follow.php:143 +msgid "" +"The profile address specified belongs to a network which has been disabled " +"on this site." +msgstr "Die Adresse dieses Profils gehört zu einem Netzwerk, mit dem die Kommunikation auf dieser Seite ausgeschaltet wurde." + +#: include/follow.php:153 +msgid "" +"Limited profile. This person will be unable to receive direct/personal " +"notifications from you." +msgstr "Eingeschränktes Profil. Diese Person wird keine direkten/privaten Nachrichten von Dir erhalten können." + +#: include/follow.php:254 +msgid "Unable to retrieve contact information." +msgstr "Konnte die Kontaktinformationen nicht empfangen." + +#: include/follow.php:287 +msgid "following" +msgstr "folgen" + +#: include/items.php:1447 mod/dfrn_request.php:745 mod/dfrn_confirm.php:726 +msgid "[Name Withheld]" +msgstr "[Name unterdrückt]" + +#: include/items.php:1805 mod/viewsrc.php:15 mod/display.php:104 +#: mod/display.php:279 mod/display.php:478 mod/notice.php:15 mod/admin.php:234 +#: mod/admin.php:1449 mod/admin.php:1683 +msgid "Item not found." +msgstr "Beitrag nicht gefunden." + +#: include/items.php:1844 +msgid "Do you really want to delete this item?" +msgstr "Möchtest Du wirklich dieses Item löschen?" + +#: include/items.php:1846 mod/follow.php:110 mod/suggest.php:29 +#: mod/api.php:105 mod/message.php:217 mod/dfrn_request.php:861 +#: mod/register.php:238 mod/contacts.php:442 mod/profiles.php:648 +#: mod/profiles.php:651 mod/profiles.php:677 mod/settings.php:1153 +#: mod/settings.php:1159 mod/settings.php:1167 mod/settings.php:1171 +#: mod/settings.php:1176 mod/settings.php:1182 mod/settings.php:1188 +#: mod/settings.php:1194 mod/settings.php:1220 mod/settings.php:1221 +#: mod/settings.php:1222 mod/settings.php:1223 mod/settings.php:1224 +msgid "Yes" +msgstr "Ja" + +#: include/items.php:1849 include/conversation.php:1272 mod/fbrowser.php:101 +#: mod/fbrowser.php:136 mod/tagrm.php:11 mod/tagrm.php:94 mod/follow.php:121 +#: mod/suggest.php:32 mod/editpost.php:148 mod/message.php:220 +#: mod/dfrn_request.php:875 mod/videos.php:131 mod/photos.php:248 +#: mod/photos.php:337 mod/contacts.php:445 mod/settings.php:676 +#: mod/settings.php:702 +msgid "Cancel" +msgstr "Abbrechen" + +#: include/items.php:2011 mod/wall_upload.php:77 mod/wall_upload.php:80 +#: mod/notes.php:22 mod/uimport.php:23 mod/nogroup.php:25 mod/invite.php:15 +#: mod/invite.php:101 mod/viewcontacts.php:45 mod/wall_attach.php:67 +#: mod/wall_attach.php:70 mod/allfriends.php:12 mod/repair_ostatus.php:9 +#: mod/delegate.php:12 mod/attach.php:33 mod/follow.php:11 mod/follow.php:73 +#: mod/follow.php:155 mod/suggest.php:58 mod/display.php:474 mod/common.php:18 +#: mod/editpost.php:10 mod/network.php:4 mod/group.php:19 +#: mod/wallmessage.php:9 mod/wallmessage.php:33 mod/wallmessage.php:79 +#: mod/wallmessage.php:103 mod/api.php:26 mod/api.php:31 +#: mod/ostatus_subscribe.php:9 mod/message.php:46 mod/message.php:182 +#: mod/manage.php:96 mod/crepair.php:100 mod/dfrn_confirm.php:57 +#: mod/dirfind.php:11 mod/fsuggest.php:78 mod/item.php:185 mod/item.php:197 +#: mod/mood.php:114 mod/poke.php:150 mod/profile_photo.php:19 +#: mod/profile_photo.php:175 mod/profile_photo.php:186 +#: mod/profile_photo.php:199 mod/register.php:42 mod/regmod.php:110 +#: mod/photos.php:172 mod/photos.php:1093 mod/cal.php:308 mod/events.php:190 +#: mod/notifications.php:71 mod/contacts.php:350 mod/profiles.php:166 +#: mod/profiles.php:605 mod/settings.php:22 mod/settings.php:128 +#: mod/settings.php:662 index.php:397 +msgid "Permission denied." +msgstr "Zugriff verweigert." + +#: include/items.php:2116 +msgid "Archives" +msgstr "Archiv" + +#: include/like.php:163 include/conversation.php:130 +#: include/conversation.php:266 include/text.php:1790 mod/subthread.php:87 +#: mod/tagger.php:62 view/theme/diabook/theme.php:471 +msgid "photo" +msgstr "Foto" + +#: include/like.php:163 include/diaspora.php:1402 include/conversation.php:125 +#: include/conversation.php:134 include/conversation.php:261 +#: include/conversation.php:270 mod/subthread.php:87 mod/tagger.php:62 +#: view/theme/diabook/theme.php:466 view/theme/diabook/theme.php:475 +msgid "status" +msgstr "Status" + +#: include/like.php:165 include/conversation.php:122 +#: include/conversation.php:258 include/text.php:1788 +#: view/theme/diabook/theme.php:463 +msgid "event" +msgstr "Event" + +#: include/like.php:182 include/diaspora.php:1398 include/conversation.php:141 +#: view/theme/diabook/theme.php:480 +#, php-format +msgid "%1$s likes %2$s's %3$s" +msgstr "%1$s mag %2$ss %3$s" + +#: include/like.php:184 include/conversation.php:144 +#, php-format +msgid "%1$s doesn't like %2$s's %3$s" +msgstr "%1$s mag %2$ss %3$s nicht" + +#: include/like.php:186 +#, php-format +msgid "%1$s is attending %2$s's %3$s" +msgstr "%1$s nimmt an %2$ss %3$s teil." + +#: include/like.php:188 +#, php-format +msgid "%1$s is not attending %2$s's %3$s" +msgstr "%1$s nimmt nicht an %2$ss %3$s teil." + +#: include/like.php:190 +#, php-format +msgid "%1$s may attend %2$s's %3$s" +msgstr "%1$s nimmt eventuell an %2$ss %3$s teil." + #: include/message.php:15 include/message.php:173 msgid "[no subject]" msgstr "[kein Betreff]" -#: index.php:239 mod/apps.php:7 -msgid "You must be logged in to use addons. " -msgstr "Sie müssen angemeldet sein um Addons benutzen zu können." +#: include/plugin.php:526 include/plugin.php:528 +msgid "Click here to upgrade." +msgstr "Zum Upgraden hier klicken." -#: index.php:283 mod/help.php:53 mod/p.php:16 mod/p.php:25 -msgid "Not Found" -msgstr "Nicht gefunden" +#: include/plugin.php:534 +msgid "This action exceeds the limits set by your subscription plan." +msgstr "Diese Aktion überschreitet die Obergrenze Deines Abonnements." -#: index.php:286 mod/help.php:56 -msgid "Page not found." -msgstr "Seite nicht gefunden." +#: include/plugin.php:539 +msgid "This action is not available under your subscription plan." +msgstr "Diese Aktion ist in Deinem Abonnement nicht verfügbar." -#: index.php:395 mod/profperm.php:19 mod/group.php:72 -msgid "Permission denied" -msgstr "Zugriff verweigert" +#: include/uimport.php:94 +msgid "Error decoding account file" +msgstr "Fehler beim Verarbeiten der Account Datei" -#: index.php:446 -msgid "toggle mobile" -msgstr "auf/von Mobile Ansicht wechseln" +#: include/uimport.php:100 +msgid "Error! No version data in file! This is not a Friendica account file?" +msgstr "Fehler! Keine Versionsdaten in der Datei! Ist das wirklich eine Friendica Account Datei?" -#: mod/regmod.php:55 -msgid "Account approved." -msgstr "Konto freigegeben." +#: include/uimport.php:116 include/uimport.php:127 +msgid "Error! Cannot check nickname" +msgstr "Fehler! Konnte den Nickname nicht überprüfen." -#: mod/regmod.php:92 +#: include/uimport.php:120 include/uimport.php:131 #, php-format -msgid "Registration revoked for %s" -msgstr "Registrierung für %s wurde zurückgezogen" +msgid "User '%s' already exists on this server!" +msgstr "Nutzer '%s' existiert bereits auf diesem Server!" -#: mod/regmod.php:104 -msgid "Please login." -msgstr "Bitte melde Dich an." +#: include/uimport.php:153 +msgid "User creation error" +msgstr "Fehler beim Anlegen des Nutzeraccounts aufgetreten" + +#: include/uimport.php:173 +msgid "User profile creation error" +msgstr "Fehler beim Anlegen des Nutzerkontos" + +#: include/uimport.php:222 +#, php-format +msgid "%d contact not imported" +msgid_plural "%d contacts not imported" +msgstr[0] "%d Kontakt nicht importiert" +msgstr[1] "%d Kontakte nicht importiert" + +#: include/uimport.php:292 +msgid "Done. You can now login with your username and password" +msgstr "Erledigt. Du kannst Dich jetzt mit Deinem Nutzernamen und Passwort anmelden" + +#: include/NotificationsManager.php:153 +msgid "System" +msgstr "System" + +#: include/NotificationsManager.php:167 mod/network.php:844 +#: mod/profiles.php:703 +msgid "Personal" +msgstr "Persönlich" + +#: include/NotificationsManager.php:234 include/NotificationsManager.php:245 +#, php-format +msgid "%s commented on %s's post" +msgstr "%s hat %ss Beitrag kommentiert" + +#: include/NotificationsManager.php:244 +#, php-format +msgid "%s created a new post" +msgstr "%s hat einen neuen Beitrag erstellt" + +#: include/NotificationsManager.php:258 +#, php-format +msgid "%s liked %s's post" +msgstr "%s mag %ss Beitrag" + +#: include/NotificationsManager.php:269 +#, php-format +msgid "%s disliked %s's post" +msgstr "%s mag %ss Beitrag nicht" + +#: include/NotificationsManager.php:280 +#, php-format +msgid "%s is attending %s's event" +msgstr "%s nimmt an %s's Event teil" + +#: include/NotificationsManager.php:291 +#, php-format +msgid "%s is not attending %s's event" +msgstr "%s nimmt nicht an %s's Event teil" + +#: include/NotificationsManager.php:302 +#, php-format +msgid "%s may attend %s's event" +msgstr "%s nimmt eventuell an %s's Event teil" + +#: include/NotificationsManager.php:317 +#, php-format +msgid "%s is now friends with %s" +msgstr "%s ist jetzt mit %s befreundet" + +#: include/NotificationsManager.php:750 +msgid "Friend Suggestion" +msgstr "Kontaktvorschlag" + +#: include/NotificationsManager.php:783 +msgid "Friend/Connect Request" +msgstr "Kontakt-/Freundschaftsanfrage" + +#: include/NotificationsManager.php:783 +msgid "New Follower" +msgstr "Neuer Bewunderer" + +#: include/api.php:975 +#, php-format +msgid "Daily posting limit of %d posts reached. The post was rejected." +msgstr "Das tägliche Nachrichtenlimit von %d Nachrichten wurde erreicht. Die Nachtricht wurde verworfen." + +#: include/api.php:995 +#, php-format +msgid "Weekly posting limit of %d posts reached. The post was rejected." +msgstr "Das wöchentliche Nachrichtenlimit von %d Nachrichten wurde erreicht. Die Nachtricht wurde verworfen." + +#: include/api.php:1016 +#, php-format +msgid "Monthly posting limit of %d posts reached. The post was rejected." +msgstr "Das monatliche Nachrichtenlimit von %d Nachrichten wurde erreicht. Die Nachtricht wurde verworfen." + +#: include/bbcode.php:348 include/bbcode.php:1056 include/bbcode.php:1057 +msgid "Image/photo" +msgstr "Bild/Foto" + +#: include/bbcode.php:465 +#, php-format +msgid "%2$s %3$s" +msgstr "%2$s %3$s" + +#: include/bbcode.php:1016 include/bbcode.php:1036 +msgid "$1 wrote:" +msgstr "$1 hat geschrieben:" + +#: include/bbcode.php:1065 include/bbcode.php:1066 +msgid "Encrypted content" +msgstr "Verschlüsselter Inhalt" + +#: include/diaspora.php:1954 +msgid "Sharing notification from Diaspora network" +msgstr "Freigabe-Benachrichtigung von Diaspora" + +#: include/diaspora.php:2854 +msgid "Attachments:" +msgstr "Anhänge:" + +#: include/event.php:441 +msgid "Sun" +msgstr "So" + +#: include/event.php:442 +msgid "Mon" +msgstr "Mo" + +#: include/event.php:443 +msgid "Tue" +msgstr "Di" + +#: include/event.php:444 +msgid "Wed" +msgstr "Mi" + +#: include/event.php:445 +msgid "Thu" +msgstr "Do" + +#: include/event.php:446 +msgid "Fri" +msgstr "Fr" + +#: include/event.php:447 +msgid "Sat" +msgstr "Sa" + +#: include/event.php:448 include/text.php:1112 mod/settings.php:967 +msgid "Sunday" +msgstr "Sonntag" + +#: include/event.php:449 include/text.php:1112 mod/settings.php:967 +msgid "Monday" +msgstr "Montag" + +#: include/event.php:450 include/text.php:1112 +msgid "Tuesday" +msgstr "Dienstag" + +#: include/event.php:451 include/text.php:1112 +msgid "Wednesday" +msgstr "Mittwoch" + +#: include/event.php:452 include/text.php:1112 +msgid "Thursday" +msgstr "Donnerstag" + +#: include/event.php:453 include/text.php:1112 +msgid "Friday" +msgstr "Freitag" + +#: include/event.php:454 include/text.php:1112 +msgid "Saturday" +msgstr "Samstag" + +#: include/event.php:455 +msgid "Jan" +msgstr "Jan" + +#: include/event.php:456 +msgid "Feb" +msgstr "Feb" + +#: include/event.php:457 +msgid "Mar" +msgstr "März" + +#: include/event.php:458 +msgid "Apr" +msgstr "Apr" + +#: include/event.php:459 include/event.php:471 include/text.php:1116 +msgid "May" +msgstr "Mai" + +#: include/event.php:460 +msgid "Jun" +msgstr "Jun" + +#: include/event.php:461 +msgid "Jul" +msgstr "Juli" + +#: include/event.php:462 +msgid "Aug" +msgstr "Aug" + +#: include/event.php:463 +msgid "Sept" +msgstr "Sep" + +#: include/event.php:464 +msgid "Oct" +msgstr "Okt" + +#: include/event.php:465 +msgid "Nov" +msgstr "Nov" + +#: include/event.php:466 +msgid "Dec" +msgstr "Dez" + +#: include/event.php:467 include/text.php:1116 +msgid "January" +msgstr "Januar" + +#: include/event.php:468 include/text.php:1116 +msgid "February" +msgstr "Februar" + +#: include/event.php:469 include/text.php:1116 +msgid "March" +msgstr "März" + +#: include/event.php:470 include/text.php:1116 +msgid "April" +msgstr "April" + +#: include/event.php:472 include/text.php:1116 +msgid "June" +msgstr "Juni" + +#: include/event.php:473 include/text.php:1116 +msgid "July" +msgstr "Juli" + +#: include/event.php:474 include/text.php:1116 +msgid "August" +msgstr "August" + +#: include/event.php:475 include/text.php:1116 +msgid "September" +msgstr "September" + +#: include/event.php:476 include/text.php:1116 +msgid "October" +msgstr "Oktober" + +#: include/event.php:477 include/text.php:1116 +msgid "November" +msgstr "November" + +#: include/event.php:478 include/text.php:1116 +msgid "December" +msgstr "Dezember" + +#: include/event.php:479 mod/cal.php:286 mod/events.php:388 +msgid "today" +msgstr "Heute" + +#: include/event.php:567 +msgid "l, F j" +msgstr "l, F j" + +#: include/event.php:586 +msgid "Edit event" +msgstr "Veranstaltung bearbeiten" + +#: include/event.php:608 include/text.php:1518 include/text.php:1525 +msgid "link to source" +msgstr "Link zum Originalbeitrag" + +#: include/event.php:843 +msgid "Export" +msgstr "Exportieren" + +#: include/event.php:844 +msgid "Export calendar as ical" +msgstr "Kalender als ical exportieren" + +#: include/event.php:845 +msgid "Export calendar as csv" +msgstr "Kalender als csv exportieren" + +#: include/conversation.php:147 +#, php-format +msgid "%1$s attends %2$s's %3$s" +msgstr "%1$s nimmt an %2$ss %3$s teil." + +#: include/conversation.php:150 +#, php-format +msgid "%1$s doesn't attend %2$s's %3$s" +msgstr "%1$s nimmt nicht an %2$ss %3$s teil." + +#: include/conversation.php:153 +#, php-format +msgid "%1$s attends maybe %2$s's %3$s" +msgstr "%1$s nimmt eventuell an %2$ss %3$s teil." + +#: include/conversation.php:185 mod/dfrn_confirm.php:473 +#, php-format +msgid "%1$s is now friends with %2$s" +msgstr "%1$s ist nun mit %2$s befreundet" + +#: include/conversation.php:219 +#, php-format +msgid "%1$s poked %2$s" +msgstr "%1$s stupste %2$s" + +#: include/conversation.php:239 mod/mood.php:62 +#, php-format +msgid "%1$s is currently %2$s" +msgstr "%1$s ist momentan %2$s" + +#: include/conversation.php:278 mod/tagger.php:95 +#, php-format +msgid "%1$s tagged %2$s's %3$s with %4$s" +msgstr "%1$s hat %2$ss %3$s mit %4$s getaggt" + +#: include/conversation.php:303 +msgid "post/item" +msgstr "Nachricht/Beitrag" + +#: include/conversation.php:304 +#, php-format +msgid "%1$s marked %2$s's %3$s as favorite" +msgstr "%1$s hat %2$s\\s %3$s als Favorit markiert" + +#: include/conversation.php:585 mod/content.php:372 mod/photos.php:1634 +#: mod/profiles.php:346 +msgid "Likes" +msgstr "Likes" + +#: include/conversation.php:585 mod/content.php:372 mod/photos.php:1634 +#: mod/profiles.php:350 +msgid "Dislikes" +msgstr "Dislikes" + +#: include/conversation.php:586 include/conversation.php:1469 +#: mod/content.php:373 mod/photos.php:1635 +msgid "Attending" +msgid_plural "Attending" +msgstr[0] "Teilnehmend" +msgstr[1] "Teilnehmend" + +#: include/conversation.php:586 mod/content.php:373 mod/photos.php:1635 +msgid "Not attending" +msgstr "Nicht teilnehmend" + +#: include/conversation.php:586 mod/content.php:373 mod/photos.php:1635 +msgid "Might attend" +msgstr "Eventuell teilnehmend" + +#: include/conversation.php:708 mod/content.php:453 mod/content.php:758 +#: mod/photos.php:1709 object/Item.php:133 +msgid "Select" +msgstr "Auswählen" + +#: include/conversation.php:709 mod/group.php:171 mod/content.php:454 +#: mod/content.php:759 mod/photos.php:1710 mod/admin.php:1392 +#: mod/contacts.php:808 mod/contacts.php:1023 mod/settings.php:738 +#: object/Item.php:134 +msgid "Delete" +msgstr "Löschen" + +#: include/conversation.php:753 mod/content.php:487 mod/content.php:910 +#: mod/content.php:911 object/Item.php:367 object/Item.php:368 +#, php-format +msgid "View %s's profile @ %s" +msgstr "Das Profil von %s auf %s betrachten." + +#: include/conversation.php:765 object/Item.php:355 +msgid "Categories:" +msgstr "Kategorien:" + +#: include/conversation.php:766 object/Item.php:356 +msgid "Filed under:" +msgstr "Abgelegt unter:" + +#: include/conversation.php:773 mod/content.php:497 mod/content.php:923 +#: object/Item.php:381 +#, php-format +msgid "%s from %s" +msgstr "%s von %s" + +#: include/conversation.php:789 mod/content.php:513 +msgid "View in context" +msgstr "Im Zusammenhang betrachten" + +#: include/conversation.php:791 include/conversation.php:1253 +#: mod/editpost.php:124 mod/wallmessage.php:156 mod/message.php:356 +#: mod/message.php:548 mod/content.php:515 mod/content.php:948 +#: mod/photos.php:1597 object/Item.php:406 +msgid "Please wait" +msgstr "Bitte warten" + +#: include/conversation.php:870 +msgid "remove" +msgstr "löschen" + +#: include/conversation.php:874 +msgid "Delete Selected Items" +msgstr "Lösche die markierten Beiträge" + +#: include/conversation.php:962 +msgid "Follow Thread" +msgstr "Folge der Unterhaltung" + +#: include/conversation.php:963 include/Contact.php:364 +msgid "View Status" +msgstr "Pinnwand anschauen" + +#: include/conversation.php:964 include/conversation.php:978 +#: include/Contact.php:310 include/Contact.php:323 include/Contact.php:365 +#: mod/directory.php:163 mod/match.php:71 mod/allfriends.php:65 +#: mod/suggest.php:82 mod/dirfind.php:203 +msgid "View Profile" +msgstr "Profil anschauen" + +#: include/conversation.php:965 include/Contact.php:366 +msgid "View Photos" +msgstr "Bilder anschauen" + +#: include/conversation.php:966 include/Contact.php:367 +msgid "Network Posts" +msgstr "Netzwerkbeiträge" + +#: include/conversation.php:967 include/Contact.php:368 +msgid "Edit Contact" +msgstr "Kontakt bearbeiten" + +#: include/conversation.php:968 include/Contact.php:370 +msgid "Send PM" +msgstr "Private Nachricht senden" + +#: include/conversation.php:972 include/Contact.php:371 +msgid "Poke" +msgstr "Anstupsen" + +#: include/conversation.php:1086 +#, php-format +msgid "%s likes this." +msgstr "%s mag das." + +#: include/conversation.php:1089 +#, php-format +msgid "%s doesn't like this." +msgstr "%s mag das nicht." + +#: include/conversation.php:1092 +#, php-format +msgid "%s attends." +msgstr "%s nimmt teil." + +#: include/conversation.php:1095 +#, php-format +msgid "%s doesn't attend." +msgstr "%s nimmt nicht teil." + +#: include/conversation.php:1098 +#, php-format +msgid "%s attends maybe." +msgstr "%s nimmt eventuell teil." + +#: include/conversation.php:1108 +msgid "and" +msgstr "und" + +#: include/conversation.php:1114 +#, php-format +msgid ", and %d other people" +msgstr " und %d andere" + +#: include/conversation.php:1123 +#, php-format +msgid "%2$d people like this" +msgstr "%2$d Personen mögen das" + +#: include/conversation.php:1124 +#, php-format +msgid "%s like this." +msgstr "%s mögen das." + +#: include/conversation.php:1127 +#, php-format +msgid "%2$d people don't like this" +msgstr "%2$d Personen mögen das nicht" + +#: include/conversation.php:1128 +#, php-format +msgid "%s don't like this." +msgstr "%s mögen dies nicht." + +#: include/conversation.php:1131 +#, php-format +msgid "%2$d people attend" +msgstr "%2$d Personen nehmen teil" + +#: include/conversation.php:1132 +#, php-format +msgid "%s attend." +msgstr "%s nehmen teil." + +#: include/conversation.php:1135 +#, php-format +msgid "%2$d people don't attend" +msgstr "%2$d Personen nehmen nicht teil" + +#: include/conversation.php:1136 +#, php-format +msgid "%s don't attend." +msgstr "%s nehmen nicht teil." + +#: include/conversation.php:1139 +#, php-format +msgid "%2$d people attend maybe" +msgstr "%2$d Personen nehmen eventuell teil" + +#: include/conversation.php:1140 +#, php-format +msgid "%s anttend maybe." +msgstr "%s nehmen vielleicht teil." + +#: include/conversation.php:1179 include/conversation.php:1197 +msgid "Visible to everybody" +msgstr "Für jedermann sichtbar" + +#: include/conversation.php:1180 include/conversation.php:1198 +#: mod/wallmessage.php:127 mod/wallmessage.php:135 mod/message.php:291 +#: mod/message.php:299 mod/message.php:442 mod/message.php:450 +msgid "Please enter a link URL:" +msgstr "Bitte gib die URL des Links ein:" + +#: include/conversation.php:1181 include/conversation.php:1199 +msgid "Please enter a video link/URL:" +msgstr "Bitte Link/URL zum Video einfügen:" + +#: include/conversation.php:1182 include/conversation.php:1200 +msgid "Please enter an audio link/URL:" +msgstr "Bitte Link/URL zum Audio einfügen:" + +#: include/conversation.php:1183 include/conversation.php:1201 +msgid "Tag term:" +msgstr "Tag:" + +#: include/conversation.php:1184 include/conversation.php:1202 +#: mod/filer.php:30 +msgid "Save to Folder:" +msgstr "In diesem Ordner speichern:" + +#: include/conversation.php:1185 include/conversation.php:1203 +msgid "Where are you right now?" +msgstr "Wo hältst Du Dich jetzt gerade auf?" + +#: include/conversation.php:1186 +msgid "Delete item(s)?" +msgstr "Einträge löschen?" + +#: include/conversation.php:1234 mod/photos.php:1596 +msgid "Share" +msgstr "Teilen" + +#: include/conversation.php:1235 mod/editpost.php:110 mod/wallmessage.php:154 +#: mod/message.php:354 mod/message.php:545 +msgid "Upload photo" +msgstr "Foto hochladen" + +#: include/conversation.php:1236 mod/editpost.php:111 +msgid "upload photo" +msgstr "Bild hochladen" + +#: include/conversation.php:1237 mod/editpost.php:112 +msgid "Attach file" +msgstr "Datei anhängen" + +#: include/conversation.php:1238 mod/editpost.php:113 +msgid "attach file" +msgstr "Datei anhängen" + +#: include/conversation.php:1239 mod/editpost.php:114 mod/wallmessage.php:155 +#: mod/message.php:355 mod/message.php:546 +msgid "Insert web link" +msgstr "Einen Link einfügen" + +#: include/conversation.php:1240 mod/editpost.php:115 +msgid "web link" +msgstr "Weblink" + +#: include/conversation.php:1241 mod/editpost.php:116 +msgid "Insert video link" +msgstr "Video-Adresse einfügen" + +#: include/conversation.php:1242 mod/editpost.php:117 +msgid "video link" +msgstr "Video-Link" + +#: include/conversation.php:1243 mod/editpost.php:118 +msgid "Insert audio link" +msgstr "Audio-Adresse einfügen" + +#: include/conversation.php:1244 mod/editpost.php:119 +msgid "audio link" +msgstr "Audio-Link" + +#: include/conversation.php:1245 mod/editpost.php:120 +msgid "Set your location" +msgstr "Deinen Standort festlegen" + +#: include/conversation.php:1246 mod/editpost.php:121 +msgid "set location" +msgstr "Ort setzen" + +#: include/conversation.php:1247 mod/editpost.php:122 +msgid "Clear browser location" +msgstr "Browser-Standort leeren" + +#: include/conversation.php:1248 mod/editpost.php:123 +msgid "clear location" +msgstr "Ort löschen" + +#: include/conversation.php:1250 mod/editpost.php:137 +msgid "Set title" +msgstr "Titel setzen" + +#: include/conversation.php:1252 mod/editpost.php:139 +msgid "Categories (comma-separated list)" +msgstr "Kategorien (kommasepariert)" + +#: include/conversation.php:1254 mod/editpost.php:125 +msgid "Permission settings" +msgstr "Berechtigungseinstellungen" + +#: include/conversation.php:1255 mod/editpost.php:154 +msgid "permissions" +msgstr "Zugriffsrechte" + +#: include/conversation.php:1263 mod/editpost.php:134 +msgid "Public post" +msgstr "Öffentlicher Beitrag" + +#: include/conversation.php:1268 mod/editpost.php:145 mod/content.php:737 +#: mod/photos.php:1618 mod/photos.php:1666 mod/photos.php:1754 +#: mod/events.php:505 object/Item.php:729 +msgid "Preview" +msgstr "Vorschau" + +#: include/conversation.php:1278 +msgid "Post to Groups" +msgstr "Poste an Gruppe" + +#: include/conversation.php:1279 +msgid "Post to Contacts" +msgstr "Poste an Kontakte" + +#: include/conversation.php:1280 +msgid "Private post" +msgstr "Privater Beitrag" + +#: include/conversation.php:1285 include/identity.php:250 mod/editpost.php:152 +msgid "Message" +msgstr "Nachricht" + +#: include/conversation.php:1286 mod/editpost.php:153 +msgid "Browser" +msgstr "Browser" + +#: include/conversation.php:1441 +msgid "View all" +msgstr "Zeige alle" + +#: include/conversation.php:1463 +msgid "Like" +msgid_plural "Likes" +msgstr[0] "mag ich" +msgstr[1] "Mag ich" + +#: include/conversation.php:1466 +msgid "Dislike" +msgid_plural "Dislikes" +msgstr[0] "mag ich nicht" +msgstr[1] "Mag ich nicht" + +#: include/conversation.php:1472 +msgid "Not Attending" +msgid_plural "Not Attending" +msgstr[0] "Nicht teilnehmend " +msgstr[1] "Nicht teilnehmend" + +#: include/features.php:63 +msgid "General Features" +msgstr "Allgemeine Features" + +#: include/features.php:65 +msgid "Multiple Profiles" +msgstr "Mehrere Profile" + +#: include/features.php:65 +msgid "Ability to create multiple profiles" +msgstr "Möglichkeit mehrere Profile zu erstellen" + +#: include/features.php:66 +msgid "Photo Location" +msgstr "Aufnahmeort" + +#: include/features.php:66 +msgid "" +"Photo metadata is normally stripped. This extracts the location (if present)" +" prior to stripping metadata and links it to a map." +msgstr "Die Foto-Metadaten werden ausgelesen. Dadurch kann der Aufnahmeort (wenn vorhanden) in einer Karte angezeigt werden." + +#: include/features.php:67 +msgid "Export Public Calendar" +msgstr "Öffentlichen Kalender exportieren" + +#: include/features.php:67 +msgid "Ability for visitors to download the public calendar" +msgstr "Möglichkeit für Besucher den öffentlichen Kalender herunter zu laden" + +#: include/features.php:72 +msgid "Post Composition Features" +msgstr "Beitragserstellung Features" + +#: include/features.php:73 +msgid "Richtext Editor" +msgstr "Web-Editor" + +#: include/features.php:73 +msgid "Enable richtext editor" +msgstr "Den Web-Editor für neue Beiträge aktivieren" + +#: include/features.php:74 +msgid "Post Preview" +msgstr "Beitragsvorschau" + +#: include/features.php:74 +msgid "Allow previewing posts and comments before publishing them" +msgstr "Die Vorschau von Beiträgen und Kommentaren vor dem absenden erlauben." + +#: include/features.php:75 +msgid "Auto-mention Forums" +msgstr "Foren automatisch erwähnen" + +#: include/features.php:75 +msgid "" +"Add/remove mention when a forum page is selected/deselected in ACL window." +msgstr "Automatisch eine @-Erwähnung eines Forums einfügen/entfehrnen, wenn dieses im ACL Fenster de-/markiert wurde." + +#: include/features.php:80 +msgid "Network Sidebar Widgets" +msgstr "Widgets für Netzwerk und Seitenleiste" + +#: include/features.php:81 +msgid "Search by Date" +msgstr "Archiv" + +#: include/features.php:81 +msgid "Ability to select posts by date ranges" +msgstr "Möglichkeit die Beiträge nach Datumsbereichen zu sortieren" + +#: include/features.php:82 include/features.php:112 +msgid "List Forums" +msgstr "Zeige Foren" + +#: include/features.php:82 +msgid "Enable widget to display the forums your are connected with" +msgstr "Aktiviere Widget, um die Foren mit denen du verbunden bist anzuzeigen" + +#: include/features.php:83 +msgid "Group Filter" +msgstr "Gruppen Filter" + +#: include/features.php:83 +msgid "Enable widget to display Network posts only from selected group" +msgstr "Widget zur Darstellung der Beiträge nach Kontaktgruppen sortiert aktivieren." + +#: include/features.php:84 +msgid "Network Filter" +msgstr "Netzwerk Filter" + +#: include/features.php:84 +msgid "Enable widget to display Network posts only from selected network" +msgstr "Widget zum filtern der Beiträge in Abhängigkeit des Netzwerks aus dem der Ersteller sendet aktivieren." + +#: include/features.php:85 mod/search.php:34 mod/network.php:200 +msgid "Saved Searches" +msgstr "Gespeicherte Suchen" + +#: include/features.php:85 +msgid "Save search terms for re-use" +msgstr "Speichere Suchanfragen für spätere Wiederholung." + +#: include/features.php:90 +msgid "Network Tabs" +msgstr "Netzwerk Reiter" + +#: include/features.php:91 +msgid "Network Personal Tab" +msgstr "Netzwerk-Reiter: Persönlich" + +#: include/features.php:91 +msgid "Enable tab to display only Network posts that you've interacted on" +msgstr "Aktiviert einen Netzwerk-Reiter in dem Nachrichten angezeigt werden mit denen Du interagiert hast" + +#: include/features.php:92 +msgid "Network New Tab" +msgstr "Netzwerk-Reiter: Neue" + +#: include/features.php:92 +msgid "Enable tab to display only new Network posts (from the last 12 hours)" +msgstr "Aktiviert einen Netzwerk-Reiter in dem ausschließlich neue Beiträge (der letzten 12 Stunden) angezeigt werden" + +#: include/features.php:93 +msgid "Network Shared Links Tab" +msgstr "Netzwerk-Reiter: Geteilte Links" + +#: include/features.php:93 +msgid "Enable tab to display only Network posts with links in them" +msgstr "Aktiviert einen Netzwerk-Reiter der ausschließlich Nachrichten mit Links enthält" + +#: include/features.php:98 +msgid "Post/Comment Tools" +msgstr "Werkzeuge für Beiträge und Kommentare" + +#: include/features.php:99 +msgid "Multiple Deletion" +msgstr "Mehrere Beiträge löschen" + +#: include/features.php:99 +msgid "Select and delete multiple posts/comments at once" +msgstr "Mehrere Beiträge/Kommentare markieren und gleichzeitig löschen" + +#: include/features.php:100 +msgid "Edit Sent Posts" +msgstr "Gesendete Beiträge editieren" + +#: include/features.php:100 +msgid "Edit and correct posts and comments after sending" +msgstr "Erlaubt es Beiträge und Kommentare nach dem Senden zu editieren bzw.zu korrigieren." + +#: include/features.php:101 +msgid "Tagging" +msgstr "Tagging" + +#: include/features.php:101 +msgid "Ability to tag existing posts" +msgstr "Möglichkeit bereits existierende Beiträge nachträglich mit Tags zu versehen." + +#: include/features.php:102 +msgid "Post Categories" +msgstr "Beitragskategorien" + +#: include/features.php:102 +msgid "Add categories to your posts" +msgstr "Eigene Beiträge mit Kategorien versehen" + +#: include/features.php:103 +msgid "Ability to file posts under folders" +msgstr "Beiträge in Ordnern speichern aktivieren" + +#: include/features.php:104 +msgid "Dislike Posts" +msgstr "Beiträge 'nicht mögen'" + +#: include/features.php:104 +msgid "Ability to dislike posts/comments" +msgstr "Ermöglicht es Beiträge mit einem Klick 'nicht zu mögen'" + +#: include/features.php:105 +msgid "Star Posts" +msgstr "Beiträge Markieren" + +#: include/features.php:105 +msgid "Ability to mark special posts with a star indicator" +msgstr "Erlaubt es Beiträge mit einem Stern-Indikator zu markieren" + +#: include/features.php:106 +msgid "Mute Post Notifications" +msgstr "Benachrichtigungen für Beiträge Stumm schalten" + +#: include/features.php:106 +msgid "Ability to mute notifications for a thread" +msgstr "Möglichkeit Benachrichtigungen für einen Thread abbestellen zu können" + +#: include/features.php:111 +msgid "Advanced Profile Settings" +msgstr "Erweiterte Profil-Einstellungen" + +#: include/features.php:112 +msgid "Show visitors public community forums at the Advanced Profile Page" +msgstr "Zeige Besuchern öffentliche Gemeinschafts-Foren auf der Erweiterten Profil-Seite" + +#: include/text.php:304 +msgid "newer" +msgstr "neuer" + +#: include/text.php:306 +msgid "older" +msgstr "älter" + +#: include/text.php:311 +msgid "prev" +msgstr "vorige" + +#: include/text.php:313 +msgid "first" +msgstr "erste" + +#: include/text.php:345 +msgid "last" +msgstr "letzte" + +#: include/text.php:348 +msgid "next" +msgstr "nächste" + +#: include/text.php:403 +msgid "Loading more entries..." +msgstr "lade weitere Einträge..." + +#: include/text.php:404 +msgid "The end" +msgstr "Das Ende" + +#: include/text.php:871 +msgid "No contacts" +msgstr "Keine Kontakte" + +#: include/text.php:894 +#, php-format +msgid "%d Contact" +msgid_plural "%d Contacts" +msgstr[0] "%d Kontakt" +msgstr[1] "%d Kontakte" + +#: include/text.php:907 +msgid "View Contacts" +msgstr "Kontakte anzeigen" + +#: include/text.php:995 mod/notes.php:61 mod/filer.php:31 mod/editpost.php:109 +msgid "Save" +msgstr "Speichern" + +#: include/text.php:1058 +msgid "poke" +msgstr "anstupsen" + +#: include/text.php:1058 +msgid "poked" +msgstr "stupste" + +#: include/text.php:1059 +msgid "ping" +msgstr "anpingen" + +#: include/text.php:1059 +msgid "pinged" +msgstr "pingte" + +#: include/text.php:1060 +msgid "prod" +msgstr "knuffen" + +#: include/text.php:1060 +msgid "prodded" +msgstr "knuffte" + +#: include/text.php:1061 +msgid "slap" +msgstr "ohrfeigen" + +#: include/text.php:1061 +msgid "slapped" +msgstr "ohrfeigte" + +#: include/text.php:1062 +msgid "finger" +msgstr "befummeln" + +#: include/text.php:1062 +msgid "fingered" +msgstr "befummelte" + +#: include/text.php:1063 +msgid "rebuff" +msgstr "eine Abfuhr erteilen" + +#: include/text.php:1063 +msgid "rebuffed" +msgstr "abfuhrerteilte" + +#: include/text.php:1077 +msgid "happy" +msgstr "glücklich" + +#: include/text.php:1078 +msgid "sad" +msgstr "traurig" + +#: include/text.php:1079 +msgid "mellow" +msgstr "sanft" + +#: include/text.php:1080 +msgid "tired" +msgstr "müde" + +#: include/text.php:1081 +msgid "perky" +msgstr "frech" + +#: include/text.php:1082 +msgid "angry" +msgstr "sauer" + +#: include/text.php:1083 +msgid "stupified" +msgstr "verblüfft" + +#: include/text.php:1084 +msgid "puzzled" +msgstr "verwirrt" + +#: include/text.php:1085 +msgid "interested" +msgstr "interessiert" + +#: include/text.php:1086 +msgid "bitter" +msgstr "verbittert" + +#: include/text.php:1087 +msgid "cheerful" +msgstr "fröhlich" + +#: include/text.php:1088 +msgid "alive" +msgstr "lebendig" + +#: include/text.php:1089 +msgid "annoyed" +msgstr "verärgert" + +#: include/text.php:1090 +msgid "anxious" +msgstr "unruhig" + +#: include/text.php:1091 +msgid "cranky" +msgstr "schrullig" + +#: include/text.php:1092 +msgid "disturbed" +msgstr "verstört" + +#: include/text.php:1093 +msgid "frustrated" +msgstr "frustriert" + +#: include/text.php:1094 +msgid "motivated" +msgstr "motiviert" + +#: include/text.php:1095 +msgid "relaxed" +msgstr "entspannt" + +#: include/text.php:1096 +msgid "surprised" +msgstr "überrascht" + +#: include/text.php:1310 mod/videos.php:383 +msgid "View Video" +msgstr "Video ansehen" + +#: include/text.php:1342 +msgid "bytes" +msgstr "Byte" + +#: include/text.php:1374 include/text.php:1386 +msgid "Click to open/close" +msgstr "Zum öffnen/schließen klicken" + +#: include/text.php:1512 +msgid "View on separate page" +msgstr "Auf separater Seite ansehen" + +#: include/text.php:1513 +msgid "view on separate page" +msgstr "auf separater Seite ansehen" + +#: include/text.php:1792 +msgid "activity" +msgstr "Aktivität" + +#: include/text.php:1794 mod/content.php:623 object/Item.php:431 +#: object/Item.php:444 +msgid "comment" +msgid_plural "comments" +msgstr[0] "Kommentar" +msgstr[1] "Kommentare" + +#: include/text.php:1795 +msgid "post" +msgstr "Beitrag" + +#: include/text.php:1963 +msgid "Item filed" +msgstr "Beitrag abgelegt" + +#: include/Contact.php:119 +msgid "stopped following" +msgstr "wird nicht mehr gefolgt" + +#: include/Contact.php:369 +msgid "Drop Contact" +msgstr "Kontakt löschen" + +#: include/dbstructure.php:26 +#, php-format +msgid "" +"\n" +"\t\t\tThe friendica developers released update %s recently,\n" +"\t\t\tbut when I tried to install it, something went terribly wrong.\n" +"\t\t\tThis needs to be fixed soon and I can't do it alone. Please contact a\n" +"\t\t\tfriendica developer if you can not help me on your own. My database might be invalid." +msgstr "\nDie Friendica-Entwickler haben vor kurzem das Update %s veröffentlicht, aber bei der Installation ging etwas schrecklich schief.\n\nDas Problem sollte so schnell wie möglich gelöst werden, aber ich schaffe es nicht alleine. Bitte kontaktiere einen Friendica-Entwickler falls Du mir nicht alleine helfen kannst. Meine Datenbank könnte ungültig sein." + +#: include/dbstructure.php:31 +#, php-format +msgid "" +"The error message is\n" +"[pre]%s[/pre]" +msgstr "Die Fehlermeldung lautet\n[pre]%s[/pre]" + +#: include/dbstructure.php:153 +msgid "Errors encountered creating database tables." +msgstr "Fehler aufgetreten während der Erzeugung der Datenbanktabellen." + +#: include/dbstructure.php:230 +msgid "Errors encountered performing database changes." +msgstr "Es sind Fehler beim Bearbeiten der Datenbank aufgetreten." + +#: include/delivery.php:439 +msgid "(no subject)" +msgstr "(kein Betreff)" + +#: include/dfrn.php:1114 +#, php-format +msgid "%s\\'s birthday" +msgstr "%ss Geburtstag" + +#: include/identity.php:42 +msgid "Requested account is not available." +msgstr "Das angefragte Profil ist nicht vorhanden." + +#: include/identity.php:51 mod/profile.php:21 +msgid "Requested profile is not available." +msgstr "Das angefragte Profil ist nicht vorhanden." + +#: include/identity.php:95 include/identity.php:305 include/identity.php:689 +msgid "Edit profile" +msgstr "Profil bearbeiten" + +#: include/identity.php:245 +msgid "Atom feed" +msgstr "Atom-Feed" + +#: include/identity.php:276 +msgid "Manage/edit profiles" +msgstr "Profile verwalten/editieren" + +#: include/identity.php:281 include/identity.php:307 mod/profiles.php:795 +msgid "Change profile photo" +msgstr "Profilbild ändern" + +#: include/identity.php:282 mod/profiles.php:796 +msgid "Create New Profile" +msgstr "Neues Profil anlegen" + +#: include/identity.php:292 mod/profiles.php:785 +msgid "Profile Image" +msgstr "Profilbild" + +#: include/identity.php:295 mod/profiles.php:787 +msgid "visible to everybody" +msgstr "sichtbar für jeden" + +#: include/identity.php:296 mod/profiles.php:691 mod/profiles.php:788 +msgid "Edit visibility" +msgstr "Sichtbarkeit bearbeiten" + +#: include/identity.php:319 mod/directory.php:174 mod/match.php:84 +#: mod/viewcontacts.php:105 mod/allfriends.php:79 mod/suggest.php:98 +#: mod/hovercard.php:80 mod/common.php:123 mod/network.php:517 +#: mod/dirfind.php:223 mod/videos.php:37 mod/photos.php:42 mod/cal.php:44 +#: mod/contacts.php:51 mod/contacts.php:626 mod/contacts.php:955 +msgid "Forum" +msgstr "Forum" + +#: include/identity.php:331 include/identity.php:617 mod/directory.php:147 +#: mod/notifications.php:238 +msgid "Gender:" +msgstr "Geschlecht:" + +#: include/identity.php:334 include/identity.php:637 mod/directory.php:149 +msgid "Status:" +msgstr "Status:" + +#: include/identity.php:336 include/identity.php:648 mod/directory.php:151 +msgid "Homepage:" +msgstr "Homepage:" + +#: include/identity.php:338 include/identity.php:658 mod/directory.php:153 +#: mod/notifications.php:234 mod/contacts.php:632 +msgid "About:" +msgstr "Über:" + +#: include/identity.php:340 mod/contacts.php:630 +msgid "XMPP:" +msgstr "XMPP:" + +#: include/identity.php:423 mod/notifications.php:246 mod/contacts.php:50 +msgid "Network:" +msgstr "Netzwerk:" + +#: include/identity.php:452 include/identity.php:536 +msgid "g A l F d" +msgstr "l, d. F G \\U\\h\\r" + +#: include/identity.php:453 include/identity.php:537 +msgid "F d" +msgstr "d. F" + +#: include/identity.php:498 include/identity.php:583 +msgid "[today]" +msgstr "[heute]" + +#: include/identity.php:510 +msgid "Birthday Reminders" +msgstr "Geburtstagserinnerungen" + +#: include/identity.php:511 +msgid "Birthdays this week:" +msgstr "Geburtstage diese Woche:" + +#: include/identity.php:570 +msgid "[No description]" +msgstr "[keine Beschreibung]" + +#: include/identity.php:594 +msgid "Event Reminders" +msgstr "Veranstaltungserinnerungen" + +#: include/identity.php:595 +msgid "Events this week:" +msgstr "Veranstaltungen diese Woche" + +#: include/identity.php:615 mod/settings.php:1269 +msgid "Full Name:" +msgstr "Kompletter Name:" + +#: include/identity.php:622 +msgid "j F, Y" +msgstr "j F, Y" + +#: include/identity.php:623 +msgid "j F" +msgstr "j F" + +#: include/identity.php:634 +msgid "Age:" +msgstr "Alter:" + +#: include/identity.php:643 +#, php-format +msgid "for %1$d %2$s" +msgstr "für %1$d %2$s" + +#: include/identity.php:646 mod/profiles.php:710 +msgid "Sexual Preference:" +msgstr "Sexuelle Vorlieben:" + +#: include/identity.php:650 mod/profiles.php:737 +msgid "Hometown:" +msgstr "Heimatort:" + +#: include/identity.php:652 mod/follow.php:134 mod/notifications.php:236 +#: mod/contacts.php:634 +msgid "Tags:" +msgstr "Tags:" + +#: include/identity.php:654 mod/profiles.php:738 +msgid "Political Views:" +msgstr "Politische Ansichten:" + +#: include/identity.php:656 +msgid "Religion:" +msgstr "Religion:" + +#: include/identity.php:660 +msgid "Hobbies/Interests:" +msgstr "Hobbies/Interessen:" + +#: include/identity.php:662 mod/profiles.php:742 +msgid "Likes:" +msgstr "Likes:" + +#: include/identity.php:664 mod/profiles.php:743 +msgid "Dislikes:" +msgstr "Dislikes:" + +#: include/identity.php:667 +msgid "Contact information and Social Networks:" +msgstr "Kontaktinformationen und Soziale Netzwerke:" + +#: include/identity.php:669 +msgid "Musical interests:" +msgstr "Musikalische Interessen:" + +#: include/identity.php:671 +msgid "Books, literature:" +msgstr "Literatur/Bücher:" + +#: include/identity.php:673 +msgid "Television:" +msgstr "Fernsehen:" + +#: include/identity.php:675 +msgid "Film/dance/culture/entertainment:" +msgstr "Filme/Tänze/Kultur/Unterhaltung:" + +#: include/identity.php:677 +msgid "Love/Romance:" +msgstr "Liebesleben:" + +#: include/identity.php:679 +msgid "Work/employment:" +msgstr "Arbeit/Beschäftigung:" + +#: include/identity.php:681 +msgid "School/education:" +msgstr "Schule/Ausbildung:" + +#: include/identity.php:685 +msgid "Forums:" +msgstr "Foren:" + +#: include/identity.php:693 mod/events.php:508 +msgid "Basic" +msgstr "Allgemein" + +#: include/identity.php:694 mod/events.php:509 mod/admin.php:931 +#: mod/contacts.php:870 +msgid "Advanced" +msgstr "Erweitert" + +#: include/identity.php:718 mod/follow.php:143 mod/contacts.php:836 +msgid "Status Messages and Posts" +msgstr "Statusnachrichten und Beiträge" + +#: include/identity.php:726 mod/contacts.php:844 +msgid "Profile Details" +msgstr "Profildetails" + +#: include/identity.php:734 mod/photos.php:100 +msgid "Photo Albums" +msgstr "Fotoalben" + +#: include/identity.php:773 mod/notes.php:46 +msgid "Personal Notes" +msgstr "Persönliche Notizen" + +#: include/identity.php:776 +msgid "Only You Can See This" +msgstr "Nur Du kannst das sehen" #: mod/oexchange.php:25 msgid "Post successful." @@ -2976,15 +3084,6 @@ msgstr "Beitrag erfolgreich veröffentlicht." msgid "[Embedded content - reload page to view]" msgstr "[Eingebetteter Inhalt - Seite neu laden zum Betrachten]" -#: mod/dirfind.php:226 -#, php-format -msgid "People Search - %s" -msgstr "Personensuche - %s" - -#: mod/dirfind.php:233 mod/match.php:105 -msgid "No matches" -msgstr "Keine Übereinstimmungen" - #: mod/viewsrc.php:7 msgid "Access denied." msgstr "Zugriff verweigert." @@ -2994,11 +3093,11 @@ msgstr "Zugriff verweigert." msgid "Welcome to %s" msgstr "Willkommen zu %s" -#: mod/notify.php:60 mod/notifications.php:385 +#: mod/notify.php:60 msgid "No more system notifications." msgstr "Keine weiteren Systembenachrichtigungen." -#: mod/notify.php:64 mod/notifications.php:389 +#: mod/notify.php:64 mod/notifications.php:111 msgid "System Notifications" msgstr "Systembenachrichtigungen" @@ -3007,8 +3106,8 @@ msgid "Remove term" msgstr "Begriff entfernen" #: mod/search.php:93 mod/search.php:99 mod/directory.php:37 -#: mod/viewcontacts.php:35 mod/videos.php:197 mod/photos.php:963 -#: mod/display.php:249 mod/community.php:22 mod/dfrn_request.php:782 +#: mod/viewcontacts.php:35 mod/display.php:199 mod/community.php:22 +#: mod/dfrn_request.php:790 mod/videos.php:197 mod/photos.php:964 msgid "Public access denied." msgstr "Öffentlicher Zugriff verweigert." @@ -3024,271 +3123,19 @@ msgstr "Zu viele Abfragen" msgid "Only one search per minute is permitted for not logged in users." msgstr "Es ist nur eine Suchanfrage pro Minute für nicht eingeloggte Benutzer gestattet." -#: mod/search.php:227 mod/community.php:66 mod/community.php:75 +#: mod/search.php:224 mod/community.php:66 mod/community.php:75 msgid "No results." msgstr "Keine Ergebnisse." -#: mod/search.php:233 +#: mod/search.php:230 #, php-format msgid "Items tagged with: %s" -msgstr "Beiträge markiert mit: %s" +msgstr "Beiträge die mit %s getaggt sind" -#: mod/search.php:235 +#: mod/search.php:232 mod/network.php:146 mod/contacts.php:797 #, php-format -msgid "Search results for: %s" -msgstr "Suchergebnisse für: %s" - -#: mod/notifications.php:29 -msgid "Invalid request identifier." -msgstr "Invalid request identifier." - -#: mod/notifications.php:38 mod/notifications.php:180 -#: mod/notifications.php:260 -msgid "Discard" -msgstr "Verwerfen" - -#: mod/notifications.php:54 mod/notifications.php:179 -#: mod/notifications.php:259 mod/contacts.php:604 mod/contacts.php:799 -#: mod/contacts.php:999 -msgid "Ignore" -msgstr "Ignorieren" - -#: mod/notifications.php:81 -msgid "System" -msgstr "System" - -#: mod/notifications.php:93 mod/network.php:384 -msgid "Personal" -msgstr "Persönlich" - -#: mod/notifications.php:130 -msgid "Show Ignored Requests" -msgstr "Zeige ignorierte Anfragen" - -#: mod/notifications.php:130 -msgid "Hide Ignored Requests" -msgstr "Verberge ignorierte Anfragen" - -#: mod/notifications.php:164 mod/notifications.php:234 -msgid "Notification type: " -msgstr "Benachrichtigungstyp: " - -#: mod/notifications.php:165 -msgid "Friend Suggestion" -msgstr "Kontaktvorschlag" - -#: mod/notifications.php:167 -#, php-format -msgid "suggested by %s" -msgstr "vorgeschlagen von %s" - -#: mod/notifications.php:172 mod/notifications.php:251 mod/contacts.php:610 -msgid "Hide this contact from others" -msgstr "Verbirg diesen Kontakt vor andere" - -#: mod/notifications.php:173 mod/notifications.php:252 -msgid "Post a new friend activity" -msgstr "Neue-Kontakt Nachricht senden" - -#: mod/notifications.php:173 mod/notifications.php:252 -msgid "if applicable" -msgstr "falls anwendbar" - -#: mod/notifications.php:176 mod/notifications.php:257 mod/admin.php:1376 -msgid "Approve" -msgstr "Genehmigen" - -#: mod/notifications.php:196 -msgid "Claims to be known to you: " -msgstr "Behauptet Dich zu kennen: " - -#: mod/notifications.php:196 -msgid "yes" -msgstr "ja" - -#: mod/notifications.php:196 -msgid "no" -msgstr "nein" - -#: mod/notifications.php:197 -msgid "" -"Shall your connection be bidirectional or not? \"Friend\" implies that you " -"allow to read and you subscribe to their posts. \"Fan/Admirer\" means that " -"you allow to read but you do not want to read theirs. Approve as: " -msgstr "Soll Deine Beziehung beidseitig sein oder nicht? \"Freund\" bedeutet, ihr könnt gegenseitig die Beiträge des Anderen lesen dürft. \"Fan/Verehrer\", dass du das lesen deiner Beiträge erlaubst aber nicht die Beiträge der anderen Seite lesen möchtest. Genehmigen als:" - -#: mod/notifications.php:200 -msgid "" -"Shall your connection be bidirectional or not? \"Friend\" implies that you " -"allow to read and you subscribe to their posts. \"Sharer\" means that you " -"allow to read but you do not want to read theirs. Approve as: " -msgstr "Soll Deine Beziehung beidseitig sein oder nicht? \"Freund\" bedeutet, ihr gegenseitig die Beiträge des Anderen lesen dürft. \"Teilenden\", das du das lesen deiner Beiträge erlaubst aber nicht die Beiträge der anderen Seite lesen möchtest. Genehmigen als:" - -#: mod/notifications.php:208 -msgid "Friend" -msgstr "Freund" - -#: mod/notifications.php:209 -msgid "Sharer" -msgstr "Teilenden" - -#: mod/notifications.php:209 -msgid "Fan/Admirer" -msgstr "Fan/Verehrer" - -#: mod/notifications.php:235 -msgid "Friend/Connect Request" -msgstr "Kontakt-/Freundschaftsanfrage" - -#: mod/notifications.php:235 -msgid "New Follower" -msgstr "Neuer Bewunderer" - -#: mod/notifications.php:255 mod/contacts.php:621 mod/follow.php:126 -msgid "Profile URL" -msgstr "Profil URL" - -#: mod/notifications.php:266 -msgid "No introductions." -msgstr "Keine Kontaktanfragen." - -#: mod/notifications.php:307 mod/notifications.php:436 -#: mod/notifications.php:527 -#, php-format -msgid "%s liked %s's post" -msgstr "%s mag %ss Beitrag" - -#: mod/notifications.php:317 mod/notifications.php:446 -#: mod/notifications.php:537 -#, php-format -msgid "%s disliked %s's post" -msgstr "%s mag %ss Beitrag nicht" - -#: mod/notifications.php:332 mod/notifications.php:461 -#: mod/notifications.php:552 -#, php-format -msgid "%s is now friends with %s" -msgstr "%s ist jetzt mit %s befreundet" - -#: mod/notifications.php:339 mod/notifications.php:468 -#, php-format -msgid "%s created a new post" -msgstr "%s hat einen neuen Beitrag erstellt" - -#: mod/notifications.php:340 mod/notifications.php:469 -#: mod/notifications.php:562 -#, php-format -msgid "%s commented on %s's post" -msgstr "%s hat %ss Beitrag kommentiert" - -#: mod/notifications.php:355 -msgid "No more network notifications." -msgstr "Keine weiteren Netzwerk-Benachrichtigungen." - -#: mod/notifications.php:359 -msgid "Network Notifications" -msgstr "Netzwerk Benachrichtigungen" - -#: mod/notifications.php:484 -msgid "No more personal notifications." -msgstr "Keine weiteren persönlichen Benachrichtigungen" - -#: mod/notifications.php:488 -msgid "Personal Notifications" -msgstr "Persönliche Benachrichtigungen" - -#: mod/notifications.php:569 -msgid "No more home notifications." -msgstr "Keine weiteren Pinnwand-Benachrichtigungen" - -#: mod/notifications.php:573 -msgid "Home Notifications" -msgstr "Pinnwand Benachrichtigungen" - -#: mod/dfrn_confirm.php:65 mod/profiles.php:18 mod/profiles.php:133 -#: mod/profiles.php:179 mod/profiles.php:610 -msgid "Profile not found." -msgstr "Profil nicht gefunden." - -#: mod/dfrn_confirm.php:121 mod/fsuggest.php:20 mod/fsuggest.php:92 -#: mod/crepair.php:114 -msgid "Contact not found." -msgstr "Kontakt nicht gefunden." - -#: mod/dfrn_confirm.php:122 -msgid "" -"This may occasionally happen if contact was requested by both persons and it" -" has already been approved." -msgstr "Das kann passieren, wenn sich zwei Kontakte gegenseitig eingeladen haben und bereits einer angenommen wurde." - -#: mod/dfrn_confirm.php:241 -msgid "Response from remote site was not understood." -msgstr "Antwort der Gegenstelle unverständlich." - -#: mod/dfrn_confirm.php:250 mod/dfrn_confirm.php:255 -msgid "Unexpected response from remote site: " -msgstr "Unerwartete Antwort der Gegenstelle: " - -#: mod/dfrn_confirm.php:264 -msgid "Confirmation completed successfully." -msgstr "Bestätigung erfolgreich abgeschlossen." - -#: mod/dfrn_confirm.php:266 mod/dfrn_confirm.php:280 mod/dfrn_confirm.php:287 -msgid "Remote site reported: " -msgstr "Gegenstelle meldet: " - -#: mod/dfrn_confirm.php:278 -msgid "Temporary failure. Please wait and try again." -msgstr "Zeitweiser Fehler. Bitte warte einige Momente und versuche es dann noch einmal." - -#: mod/dfrn_confirm.php:285 -msgid "Introduction failed or was revoked." -msgstr "Kontaktanfrage schlug fehl oder wurde zurückgezogen." - -#: mod/dfrn_confirm.php:414 -msgid "Unable to set contact photo." -msgstr "Konnte das Bild des Kontakts nicht speichern." - -#: mod/dfrn_confirm.php:552 -#, php-format -msgid "No user record found for '%s' " -msgstr "Für '%s' wurde kein Nutzer gefunden" - -#: mod/dfrn_confirm.php:562 -msgid "Our site encryption key is apparently messed up." -msgstr "Der Verschlüsselungsschlüssel unserer Seite ist anscheinend nicht in Ordnung." - -#: mod/dfrn_confirm.php:573 -msgid "Empty site URL was provided or URL could not be decrypted by us." -msgstr "Leere URL für die Seite erhalten oder die URL konnte nicht entschlüsselt werden." - -#: mod/dfrn_confirm.php:594 -msgid "Contact record was not found for you on our site." -msgstr "Für diesen Kontakt wurde auf unserer Seite kein Eintrag gefunden." - -#: mod/dfrn_confirm.php:608 -#, php-format -msgid "Site public key not available in contact record for URL %s." -msgstr "Die Kontaktdaten für URL %s enthalten keinen Public Key für den Server." - -#: mod/dfrn_confirm.php:628 -msgid "" -"The ID provided by your system is a duplicate on our system. It should work " -"if you try again." -msgstr "Die ID, die uns Dein System angeboten hat, ist hier bereits vergeben. Bitte versuche es noch einmal." - -#: mod/dfrn_confirm.php:639 -msgid "Unable to set your contact credentials on our system." -msgstr "Deine Kontaktreferenzen konnten nicht in unserem System gespeichert werden." - -#: mod/dfrn_confirm.php:698 -msgid "Unable to update your contact profile details on our system" -msgstr "Die Updates für Dein Profil konnten nicht gespeichert werden" - -#: mod/dfrn_confirm.php:770 -#, php-format -msgid "%1$s has joined %2$s" -msgstr "%1$s ist %2$s beigetreten" +msgid "Results for: %s" +msgstr "Ergebnisse für: %s" #: mod/friendica.php:70 msgid "This is Friendica, version" @@ -3378,6 +3225,10 @@ msgid "" "Password reset failed." msgstr "Anfrage konnte nicht verifiziert werden. (Eventuell hast Du bereits eine ähnliche Anfrage gestellt.) Zurücksetzen des Passworts gescheitert." +#: mod/lostpass.php:109 boot.php:1741 +msgid "Password Reset" +msgstr "Passwort zurücksetzen" + #: mod/lostpass.php:110 msgid "Your password has been reset as requested." msgstr "Dein Passwort wurde wie gewünscht zurückgesetzt." @@ -3440,7 +3291,7 @@ msgid "" "your email for further instructions." msgstr "Gib Deine E-Mail-Adresse an und fordere ein neues Passwort an. Es werden Dir dann weitere Informationen per Mail zugesendet." -#: mod/lostpass.php:161 +#: mod/lostpass.php:161 boot.php:1729 msgid "Nickname or Email: " msgstr "Spitzname oder E-Mail:" @@ -3456,52 +3307,34 @@ msgstr "Kein Profil" msgid "Help:" msgstr "Hilfe:" +#: mod/help.php:53 mod/p.php:16 mod/p.php:43 mod/p.php:52 mod/fetch.php:12 +#: mod/fetch.php:39 mod/fetch.php:48 index.php:284 +msgid "Not Found" +msgstr "Nicht gefunden" + +#: mod/help.php:56 index.php:287 +msgid "Page not found." +msgstr "Seite nicht gefunden." + #: mod/wall_upload.php:20 mod/wall_upload.php:33 mod/wall_upload.php:86 #: mod/wall_upload.php:122 mod/wall_upload.php:125 mod/wall_attach.php:17 #: mod/wall_attach.php:25 mod/wall_attach.php:76 msgid "Invalid request." msgstr "Ungültige Anfrage" -#: mod/wall_upload.php:151 mod/photos.php:805 mod/profile_photo.php:150 +#: mod/wall_upload.php:151 mod/profile_photo.php:150 mod/photos.php:806 #, php-format msgid "Image exceeds size limit of %s" msgstr "Bildgröße überschreitet das Limit von %s" -#: mod/wall_upload.php:188 mod/photos.php:845 mod/profile_photo.php:159 +#: mod/wall_upload.php:188 mod/profile_photo.php:159 mod/photos.php:846 msgid "Unable to process image." msgstr "Konnte das Bild nicht bearbeiten." -#: mod/wall_upload.php:221 mod/photos.php:872 mod/profile_photo.php:307 +#: mod/wall_upload.php:221 mod/profile_photo.php:307 mod/photos.php:873 msgid "Image upload failed." msgstr "Hochladen des Bildes gescheitert." -#: mod/fsuggest.php:63 -msgid "Friend suggestion sent." -msgstr "Kontaktvorschlag gesendet." - -#: mod/fsuggest.php:97 -msgid "Suggest Friends" -msgstr "Kontakte vorschlagen" - -#: mod/fsuggest.php:99 -#, php-format -msgid "Suggest a friend for %s" -msgstr "Schlage %s einen Kontakt vor" - -#: mod/fsuggest.php:107 mod/events.php:574 mod/invite.php:140 -#: mod/crepair.php:179 mod/content.php:712 mod/profiles.php:679 -#: mod/poke.php:199 mod/photos.php:1124 mod/photos.php:1248 -#: mod/photos.php:1566 mod/photos.php:1617 mod/photos.php:1665 -#: mod/photos.php:1753 mod/install.php:272 mod/install.php:312 -#: mod/contacts.php:575 mod/mood.php:137 mod/localtime.php:45 -#: mod/message.php:343 mod/message.php:525 mod/manage.php:143 -#: object/Item.php:710 view/theme/cleanzero/config.php:80 -#: view/theme/quattro/config.php:64 view/theme/dispy/config.php:70 -#: view/theme/vier/config.php:107 view/theme/diabook/theme.php:633 -#: view/theme/diabook/config.php:148 view/theme/duepuntozero/config.php:59 -msgid "Submit" -msgstr "Senden" - #: mod/lockview.php:31 mod/lockview.php:39 msgid "Remote privacy information not available." msgstr "Entfernte Privatsphäreneinstellungen nicht verfügbar." @@ -3510,168 +3343,24 @@ msgstr "Entfernte Privatsphäreneinstellungen nicht verfügbar." msgid "Visible to:" msgstr "Sichtbar für:" -#: mod/events.php:71 mod/events.php:73 -msgid "Event can not end before it has started." -msgstr "Die Veranstaltung kann nicht enden bevor sie beginnt." - -#: mod/events.php:80 mod/events.php:82 -msgid "Event title and start time are required." -msgstr "Der Veranstaltungstitel und die Anfangszeit müssen angegeben werden." - -#: mod/events.php:201 -msgid "Sun" -msgstr "So" - -#: mod/events.php:202 -msgid "Mon" -msgstr "Mo" - -#: mod/events.php:203 -msgid "Tue" -msgstr "Di" - -#: mod/events.php:204 -msgid "Wed" -msgstr "Mi" - -#: mod/events.php:205 -msgid "Thu" -msgstr "Do" - -#: mod/events.php:206 -msgid "Fri" -msgstr "Fr" - -#: mod/events.php:207 -msgid "Sat" -msgstr "Sa" - -#: mod/events.php:215 -msgid "Jan" -msgstr "Jan" - -#: mod/events.php:216 -msgid "Feb" -msgstr "Feb" - -#: mod/events.php:217 -msgid "Mar" -msgstr "März" - -#: mod/events.php:218 -msgid "Apr" -msgstr "Apr" - -#: mod/events.php:220 -msgid "Jun" -msgstr "Jun" - -#: mod/events.php:221 -msgid "Jul" -msgstr "Juli" - -#: mod/events.php:222 -msgid "Aug" -msgstr "Aug" - -#: mod/events.php:223 -msgid "Sept" -msgstr "Sep" - -#: mod/events.php:224 -msgid "Oct" -msgstr "Okt" - -#: mod/events.php:225 -msgid "Nov" -msgstr "Nov" - -#: mod/events.php:226 -msgid "Dec" -msgstr "Dez" - -#: mod/events.php:239 -msgid "today" -msgstr "Heute" - -#: mod/events.php:377 -msgid "l, F j" -msgstr "l, F j" - -#: mod/events.php:399 -msgid "Edit event" -msgstr "Veranstaltung bearbeiten" - -#: mod/events.php:457 -msgid "Create New Event" -msgstr "Neue Veranstaltung erstellen" - -#: mod/events.php:458 -msgid "Previous" -msgstr "Vorherige" - -#: mod/events.php:459 mod/install.php:231 -msgid "Next" -msgstr "Nächste" - -#: mod/events.php:554 -msgid "Event details" -msgstr "Veranstaltungsdetails" - -#: mod/events.php:555 -msgid "Starting date and Title are required." -msgstr "Anfangszeitpunkt und Titel werden benötigt" - -#: mod/events.php:556 -msgid "Event Starts:" -msgstr "Veranstaltungsbeginn:" - -#: mod/events.php:556 mod/events.php:568 -msgid "Required" -msgstr "Benötigt" - -#: mod/events.php:558 -msgid "Finish date/time is not known or not relevant" -msgstr "Enddatum/-zeit ist nicht bekannt oder nicht relevant" - -#: mod/events.php:560 -msgid "Event Finishes:" -msgstr "Veranstaltungsende:" - -#: mod/events.php:562 -msgid "Adjust for viewer timezone" -msgstr "An Zeitzone des Betrachters anpassen" - -#: mod/events.php:564 -msgid "Description:" -msgstr "Beschreibung" - -#: mod/events.php:568 -msgid "Title:" -msgstr "Titel:" - -#: mod/events.php:570 -msgid "Share this event" -msgstr "Veranstaltung teilen" - -#: mod/directory.php:203 view/theme/vier/theme.php:201 +#: mod/directory.php:205 view/theme/vier/theme.php:201 #: view/theme/diabook/theme.php:525 msgid "Global Directory" msgstr "Weltweites Verzeichnis" -#: mod/directory.php:205 +#: mod/directory.php:207 msgid "Find on this site" msgstr "Auf diesem Server suchen" -#: mod/directory.php:207 -msgid "Finding:" -msgstr "Funde:" - #: mod/directory.php:209 +msgid "Results for:" +msgstr "Ergebnisse für:" + +#: mod/directory.php:211 msgid "Site Directory" msgstr "Verzeichnis" -#: mod/directory.php:216 +#: mod/directory.php:218 msgid "No entries (some entries may be hidden)." msgstr "Keine Einträge (einige Einträge könnten versteckt sein)." @@ -3679,7 +3368,7 @@ msgstr "Keine Einträge (einige Einträge könnten versteckt sein)." msgid "OpenID protocol error. No ID returned." msgstr "OpenID Protokollfehler. Keine ID zurückgegeben." -#: mod/openid.php:53 +#: mod/openid.php:60 msgid "" "Account not found and OpenID registration is not permitted on this site." msgstr "Nutzerkonto wurde nicht gefunden und OpenID-Registrierung ist auf diesem Server nicht gestattet." @@ -3707,7 +3396,7 @@ msgid "" "You need to export your account from the old server and upload it here. We " "will recreate your old account here with all your contacts. We will try also" " to inform your friends that you moved here." -msgstr "Du musst Deinen Account vom alten Server exportieren und hier hochladen. Wir stellen Deinen alten Account mit all Deinen Kontakten wieder her. Wir werden auch versuchen all Deine Freunde darüber zu informieren, dass Du hierher umgezogen bist." +msgstr "Du musst Deinen Account vom alten Server exportieren und hier hochladen. Wir stellen Deinen alten Account mit all Deinen Kontakten wieder her. Wir werden auch versuchen all Deine Kontakte darüber zu informieren, dass Du hierher umgezogen bist." #: mod/uimport.php:69 msgid "" @@ -3725,13 +3414,13 @@ msgid "" "select \"Export account\"" msgstr "Um Deinen Account zu exportieren, rufe \"Einstellungen -> Persönliche Daten exportieren\" auf und wähle \"Account exportieren\"" -#: mod/nogroup.php:41 mod/viewcontacts.php:97 mod/contacts.php:584 -#: mod/contacts.php:938 +#: mod/nogroup.php:41 mod/viewcontacts.php:97 mod/contacts.php:586 +#: mod/contacts.php:946 #, php-format msgid "Visit %s's profile [%s]" msgstr "Besuche %ss Profil [%s]" -#: mod/nogroup.php:42 mod/contacts.php:939 +#: mod/nogroup.php:42 mod/contacts.php:947 msgid "Edit contact" msgstr "Kontakt bearbeiten" @@ -3743,14 +3432,18 @@ msgstr "Kontakte, die keiner Gruppe zugewiesen sind" msgid "No keywords to match. Please add keywords to your default profile." msgstr "Keine Schlüsselwörter zum Abgleichen gefunden. Bitte füge einige Schlüsselwörter zu Deinem Standardprofil hinzu." -#: mod/match.php:84 +#: mod/match.php:86 msgid "is interested in:" msgstr "ist interessiert an:" -#: mod/match.php:98 +#: mod/match.php:100 msgid "Profile Match" msgstr "Profilübereinstimmungen" +#: mod/match.php:107 mod/dirfind.php:240 +msgid "No matches" +msgstr "Keine Übereinstimmungen" + #: mod/uexport.php:29 msgid "Export account" msgstr "Account exportieren" @@ -3847,8 +3540,8 @@ msgstr "Einladungen senden" msgid "Enter email addresses, one per line:" msgstr "E-Mail-Adressen eingeben, eine pro Zeile:" -#: mod/invite.php:134 mod/wallmessage.php:151 mod/message.php:337 -#: mod/message.php:519 +#: mod/invite.php:134 mod/wallmessage.php:151 mod/message.php:351 +#: mod/message.php:541 msgid "Your message:" msgstr "Deine Nachricht:" @@ -3873,9 +3566,23 @@ msgid "" "important, please visit http://friendica.com" msgstr "Für weitere Informationen über das Friendica Projekt und warum wir es für ein wichtiges Projekt halten, besuche bitte http://friendica.com" -#: mod/fbrowser.php:41 mod/fbrowser.php:62 mod/photos.php:62 -#: mod/photos.php:192 mod/photos.php:1106 mod/photos.php:1232 -#: mod/photos.php:1255 mod/photos.php:1825 mod/photos.php:1837 +#: mod/invite.php:140 mod/localtime.php:45 mod/message.php:357 +#: mod/message.php:547 mod/manage.php:143 mod/crepair.php:154 +#: mod/content.php:728 mod/fsuggest.php:107 mod/mood.php:137 mod/poke.php:199 +#: mod/install.php:272 mod/install.php:312 mod/photos.php:1125 +#: mod/photos.php:1249 mod/photos.php:1566 mod/photos.php:1617 +#: mod/photos.php:1665 mod/photos.php:1753 mod/events.php:507 +#: mod/contacts.php:577 mod/profiles.php:688 object/Item.php:720 +#: view/theme/frio/config.php:59 view/theme/cleanzero/config.php:80 +#: view/theme/quattro/config.php:64 view/theme/dispy/config.php:70 +#: view/theme/vier/config.php:107 view/theme/diabook/theme.php:633 +#: view/theme/diabook/config.php:148 view/theme/duepuntozero/config.php:59 +msgid "Submit" +msgstr "Senden" + +#: mod/fbrowser.php:41 mod/fbrowser.php:62 mod/photos.php:63 +#: mod/photos.php:193 mod/photos.php:1107 mod/photos.php:1233 +#: mod/photos.php:1256 mod/photos.php:1825 mod/photos.php:1837 #: view/theme/diabook/theme.php:499 msgid "Contact Photos" msgstr "Kontaktbilder" @@ -3888,6 +3595,10 @@ msgstr "Dateien" msgid "System down for maintenance" msgstr "System zur Wartung abgeschaltet" +#: mod/profperm.php:19 mod/group.php:72 index.php:396 +msgid "Permission denied" +msgstr "Zugriff verweigert" + #: mod/profperm.php:25 mod/profperm.php:56 msgid "Invalid profile identifier." msgstr "Ungültiger Profil-Bezeichner." @@ -3912,98 +3623,6 @@ msgstr "Alle Kontakte (mit gesichertem Profilzugriff)" msgid "No contacts." msgstr "Keine Kontakte." -#: mod/crepair.php:87 -msgid "Contact settings applied." -msgstr "Einstellungen zum Kontakt angewandt." - -#: mod/crepair.php:89 -msgid "Contact update failed." -msgstr "Konnte den Kontakt nicht aktualisieren." - -#: mod/crepair.php:120 -msgid "" -"WARNING: This is highly advanced and if you enter incorrect" -" information your communications with this contact may stop working." -msgstr "ACHTUNG: Das sind Experten-Einstellungen! Wenn Du etwas Falsches eingibst, funktioniert die Kommunikation mit diesem Kontakt evtl. nicht mehr." - -#: mod/crepair.php:121 -msgid "" -"Please use your browser 'Back' button now if you are " -"uncertain what to do on this page." -msgstr "Bitte nutze den Zurück-Button Deines Browsers jetzt, wenn Du Dir unsicher bist, was Du tun willst." - -#: mod/crepair.php:134 mod/crepair.php:136 -msgid "No mirroring" -msgstr "Kein Spiegeln" - -#: mod/crepair.php:134 -msgid "Mirror as forwarded posting" -msgstr "Spiegeln als weitergeleitete Beiträge" - -#: mod/crepair.php:134 mod/crepair.php:136 -msgid "Mirror as my own posting" -msgstr "Spiegeln als meine eigenen Beiträge" - -#: mod/crepair.php:150 -msgid "Return to contact editor" -msgstr "Zurück zum Kontakteditor" - -#: mod/crepair.php:152 -msgid "Refetch contact data" -msgstr "Kontaktdaten neu laden" - -#: mod/crepair.php:153 mod/admin.php:1361 mod/admin.php:1374 -#: mod/admin.php:1386 mod/admin.php:1402 mod/settings.php:665 -#: mod/settings.php:691 -msgid "Name" -msgstr "Name" - -#: mod/crepair.php:154 -msgid "Account Nickname" -msgstr "Konto-Spitzname" - -#: mod/crepair.php:155 -msgid "@Tagname - overrides Name/Nickname" -msgstr "@Tagname - überschreibt Name/Spitzname" - -#: mod/crepair.php:156 -msgid "Account URL" -msgstr "Konto-URL" - -#: mod/crepair.php:157 -msgid "Friend Request URL" -msgstr "URL für Freundschaftsanfragen" - -#: mod/crepair.php:158 -msgid "Friend Confirm URL" -msgstr "URL für Bestätigungen von Freundschaftsanfragen" - -#: mod/crepair.php:159 -msgid "Notification Endpoint URL" -msgstr "URL-Endpunkt für Benachrichtigungen" - -#: mod/crepair.php:160 -msgid "Poll/Feed URL" -msgstr "Pull/Feed-URL" - -#: mod/crepair.php:161 -msgid "New photo from this URL" -msgstr "Neues Foto von dieser URL" - -#: mod/crepair.php:162 -msgid "Remote Self" -msgstr "Entfernte Konten" - -#: mod/crepair.php:165 -msgid "Mirror postings from this contact" -msgstr "Spiegle Beiträge dieses Kontakts" - -#: mod/crepair.php:167 -msgid "" -"Mark this contact as remote_self, this will cause friendica to repost new " -"entries from this contact." -msgstr "Markiere diesen Kontakt als remote_self (entferntes Konto), dies veranlasst Friendica alle Top-Level Beiträge dieses Kontakts an all Deine Kontakte zu senden." - #: mod/tagrm.php:41 msgid "Tag removed" msgstr "Tag entfernt" @@ -4020,1382 +3639,6 @@ msgstr "Wähle ein Tag zum Entfernen aus: " msgid "Remove" msgstr "Entfernen" -#: mod/ping.php:267 -msgid "{0} wants to be your friend" -msgstr "{0} möchte mit Dir in Kontakt treten" - -#: mod/ping.php:282 -msgid "{0} sent you a message" -msgstr "{0} schickte Dir eine Nachricht" - -#: mod/ping.php:297 -msgid "{0} requested registration" -msgstr "{0} möchte sich registrieren" - -#: mod/admin.php:92 -msgid "Theme settings updated." -msgstr "Themeneinstellungen aktualisiert." - -#: mod/admin.php:156 mod/admin.php:913 -msgid "Site" -msgstr "Seite" - -#: mod/admin.php:157 mod/admin.php:857 mod/admin.php:1369 mod/admin.php:1384 -msgid "Users" -msgstr "Nutzer" - -#: mod/admin.php:158 mod/admin.php:1486 mod/admin.php:1546 mod/settings.php:74 -msgid "Plugins" -msgstr "Plugins" - -#: mod/admin.php:159 mod/admin.php:1744 mod/admin.php:1794 -msgid "Themes" -msgstr "Themen" - -#: mod/admin.php:160 mod/settings.php:52 -msgid "Additional features" -msgstr "Zusätzliche Features" - -#: mod/admin.php:161 -msgid "DB updates" -msgstr "DB Updates" - -#: mod/admin.php:162 mod/admin.php:394 -msgid "Inspect Queue" -msgstr "Warteschlange Inspizieren" - -#: mod/admin.php:163 mod/admin.php:363 -msgid "Federation Statistics" -msgstr "Federation Statistik" - -#: mod/admin.php:177 mod/admin.php:188 mod/admin.php:1862 -msgid "Logs" -msgstr "Protokolle" - -#: mod/admin.php:178 mod/admin.php:1929 -msgid "View Logs" -msgstr "Protokolle anzeigen" - -#: mod/admin.php:179 -msgid "probe address" -msgstr "Adresse untersuchen" - -#: mod/admin.php:180 -msgid "check webfinger" -msgstr "Webfinger überprüfen" - -#: mod/admin.php:187 -msgid "Plugin Features" -msgstr "Plugin Features" - -#: mod/admin.php:189 -msgid "diagnostics" -msgstr "Diagnose" - -#: mod/admin.php:190 -msgid "User registrations waiting for confirmation" -msgstr "Nutzeranmeldungen die auf Bestätigung warten" - -#: mod/admin.php:356 -msgid "" -"This page offers you some numbers to the known part of the federated social " -"network your Friendica node is part of. These numbers are not complete but " -"only reflect the part of the network your node is aware of." -msgstr "Diese Seite präsentiert einige Zahlen zu dem bekannten Teil des föderalen sozialen Netzwerks, von dem deine Friendica Installation ein Teil ist. Diese Zahlen sind nicht absolut und reflektieren nur den Teil des Netzwerks, den dein Knoten kennt." - -#: mod/admin.php:357 -msgid "" -"The Auto Discovered Contact Directory feature is not enabled, it " -"will improve the data displayed here." -msgstr "Die Funktion um Automatisch ein Kontaktverzeichnis erstellen ist nicht aktiv. Es wird die hier angezeigten Daten verbessern." - -#: mod/admin.php:362 mod/admin.php:393 mod/admin.php:450 mod/admin.php:912 -#: mod/admin.php:1368 mod/admin.php:1485 mod/admin.php:1545 mod/admin.php:1743 -#: mod/admin.php:1793 mod/admin.php:1861 mod/admin.php:1928 -msgid "Administration" -msgstr "Administration" - -#: mod/admin.php:369 -#, php-format -msgid "Currently this node is aware of %d nodes from the following platforms:" -msgstr "Momentan kennt dieser Knoten %d andere Knoten der folgenden Plattformen:" - -#: mod/admin.php:396 -msgid "ID" -msgstr "ID" - -#: mod/admin.php:397 -msgid "Recipient Name" -msgstr "Empfänger Name" - -#: mod/admin.php:398 -msgid "Recipient Profile" -msgstr "Empfänger Profil" - -#: mod/admin.php:400 -msgid "Created" -msgstr "Erstellt" - -#: mod/admin.php:401 -msgid "Last Tried" -msgstr "Zuletzt versucht" - -#: mod/admin.php:402 -msgid "" -"This page lists the content of the queue for outgoing postings. These are " -"postings the initial delivery failed for. They will be resend later and " -"eventually deleted if the delivery fails permanently." -msgstr "Auf dieser Seite werden die in der Warteschlange eingereihten Beiträge aufgelistet. Bei diesen Beiträgen schlug die erste Zustellung fehl. Es wird später wiederholt versucht die Beiträge zuzustellen, bis sie schließlich gelöscht werden." - -#: mod/admin.php:421 mod/admin.php:1317 -msgid "Normal Account" -msgstr "Normales Konto" - -#: mod/admin.php:422 mod/admin.php:1318 -msgid "Soapbox Account" -msgstr "Marktschreier-Konto" - -#: mod/admin.php:423 mod/admin.php:1319 -msgid "Community/Celebrity Account" -msgstr "Forum/Promi-Konto" - -#: mod/admin.php:424 mod/admin.php:1320 -msgid "Automatic Friend Account" -msgstr "Automatisches Freundekonto" - -#: mod/admin.php:425 -msgid "Blog Account" -msgstr "Blog-Konto" - -#: mod/admin.php:426 -msgid "Private Forum" -msgstr "Privates Forum" - -#: mod/admin.php:445 -msgid "Message queues" -msgstr "Nachrichten-Warteschlangen" - -#: mod/admin.php:451 -msgid "Summary" -msgstr "Zusammenfassung" - -#: mod/admin.php:453 -msgid "Registered users" -msgstr "Registrierte Nutzer" - -#: mod/admin.php:455 -msgid "Pending registrations" -msgstr "Anstehende Anmeldungen" - -#: mod/admin.php:456 -msgid "Version" -msgstr "Version" - -#: mod/admin.php:461 -msgid "Active plugins" -msgstr "Aktive Plugins" - -#: mod/admin.php:484 -msgid "Can not parse base url. Must have at least ://" -msgstr "Die Basis-URL konnte nicht analysiert werden. Sie muss mindestens aus :// bestehen" - -#: mod/admin.php:785 -msgid "RINO2 needs mcrypt php extension to work." -msgstr "RINO2 benötigt die PHP Extension mcrypt." - -#: mod/admin.php:793 -msgid "Site settings updated." -msgstr "Seiteneinstellungen aktualisiert." - -#: mod/admin.php:821 mod/settings.php:919 -msgid "No special theme for mobile devices" -msgstr "Kein spezielles Theme für mobile Geräte verwenden." - -#: mod/admin.php:840 -msgid "No community page" -msgstr "Keine Gemeinschaftsseite" - -#: mod/admin.php:841 -msgid "Public postings from users of this site" -msgstr "Öffentliche Beiträge von Nutzer_innen dieser Seite" - -#: mod/admin.php:842 -msgid "Global community page" -msgstr "Globale Gemeinschaftsseite" - -#: mod/admin.php:847 mod/contacts.php:529 -msgid "Never" -msgstr "Niemals" - -#: mod/admin.php:848 -msgid "At post arrival" -msgstr "Beim Empfang von Nachrichten" - -#: mod/admin.php:856 mod/contacts.php:556 -msgid "Disabled" -msgstr "Deaktiviert" - -#: mod/admin.php:858 -msgid "Users, Global Contacts" -msgstr "Nutzer, globale Kontakte" - -#: mod/admin.php:859 -msgid "Users, Global Contacts/fallback" -msgstr "Nutzer, globale Kontakte / Fallback" - -#: mod/admin.php:863 -msgid "One month" -msgstr "ein Monat" - -#: mod/admin.php:864 -msgid "Three months" -msgstr "drei Monate" - -#: mod/admin.php:865 -msgid "Half a year" -msgstr "ein halbes Jahr" - -#: mod/admin.php:866 -msgid "One year" -msgstr "ein Jahr" - -#: mod/admin.php:871 -msgid "Multi user instance" -msgstr "Mehrbenutzer Instanz" - -#: mod/admin.php:894 -msgid "Closed" -msgstr "Geschlossen" - -#: mod/admin.php:895 -msgid "Requires approval" -msgstr "Bedarf der Zustimmung" - -#: mod/admin.php:896 -msgid "Open" -msgstr "Offen" - -#: mod/admin.php:900 -msgid "No SSL policy, links will track page SSL state" -msgstr "Keine SSL Richtlinie, Links werden das verwendete Protokoll beibehalten" - -#: mod/admin.php:901 -msgid "Force all links to use SSL" -msgstr "SSL für alle Links erzwingen" - -#: mod/admin.php:902 -msgid "Self-signed certificate, use SSL for local links only (discouraged)" -msgstr "Selbst-unterzeichnetes Zertifikat, SSL nur für lokale Links verwenden (nicht empfohlen)" - -#: mod/admin.php:914 mod/admin.php:1547 mod/admin.php:1795 mod/admin.php:1863 -#: mod/admin.php:2012 mod/settings.php:663 mod/settings.php:773 -#: mod/settings.php:820 mod/settings.php:889 mod/settings.php:976 -#: mod/settings.php:1211 -msgid "Save Settings" -msgstr "Einstellungen speichern" - -#: mod/admin.php:915 mod/register.php:263 -msgid "Registration" -msgstr "Registrierung" - -#: mod/admin.php:916 -msgid "File upload" -msgstr "Datei hochladen" - -#: mod/admin.php:917 -msgid "Policies" -msgstr "Regeln" - -#: mod/admin.php:918 mod/contacts.php:862 -msgid "Advanced" -msgstr "Erweitert" - -#: mod/admin.php:919 -msgid "Auto Discovered Contact Directory" -msgstr "Automatisch ein Kontaktverzeichnis erstellen" - -#: mod/admin.php:920 -msgid "Performance" -msgstr "Performance" - -#: mod/admin.php:921 -msgid "Worker" -msgstr "Worker" - -#: mod/admin.php:922 -msgid "" -"Relocate - WARNING: advanced function. Could make this server unreachable." -msgstr "Umsiedeln - WARNUNG: Könnte diesen Server unerreichbar machen." - -#: mod/admin.php:925 -msgid "Site name" -msgstr "Seitenname" - -#: mod/admin.php:926 -msgid "Host name" -msgstr "Host Name" - -#: mod/admin.php:927 -msgid "Sender Email" -msgstr "Absender für Emails" - -#: mod/admin.php:927 -msgid "" -"The email address your server shall use to send notification emails from." -msgstr "Die E-Mail Adresse die dein Server zum Versenden von Benachrichtigungen verwenden soll." - -#: mod/admin.php:928 -msgid "Banner/Logo" -msgstr "Banner/Logo" - -#: mod/admin.php:929 -msgid "Shortcut icon" -msgstr "Shortcut Icon" - -#: mod/admin.php:929 -msgid "Link to an icon that will be used for browsers." -msgstr "Link zu einem Icon, das Browser verwenden werden." - -#: mod/admin.php:930 -msgid "Touch icon" -msgstr "Touch Icon" - -#: mod/admin.php:930 -msgid "Link to an icon that will be used for tablets and mobiles." -msgstr "Link zu einem Icon das Tablets und Handies verwenden sollen." - -#: mod/admin.php:931 -msgid "Additional Info" -msgstr "Zusätzliche Informationen" - -#: mod/admin.php:931 -#, php-format -msgid "" -"For public servers: you can add additional information here that will be " -"listed at %s/siteinfo." -msgstr "Für öffentliche Server kannst Du hier zusätzliche Informationen angeben, die dann auf %s/siteinfo angezeigt werden." - -#: mod/admin.php:932 -msgid "System language" -msgstr "Systemsprache" - -#: mod/admin.php:933 -msgid "System theme" -msgstr "Systemweites Theme" - -#: mod/admin.php:933 -msgid "" -"Default system theme - may be over-ridden by user profiles - change theme settings" -msgstr "Vorgabe für das System-Theme - kann von Benutzerprofilen überschrieben werden - Theme-Einstellungen ändern" - -#: mod/admin.php:934 -msgid "Mobile system theme" -msgstr "Systemweites mobiles Theme" - -#: mod/admin.php:934 -msgid "Theme for mobile devices" -msgstr "Thema für mobile Geräte" - -#: mod/admin.php:935 -msgid "SSL link policy" -msgstr "Regeln für SSL Links" - -#: mod/admin.php:935 -msgid "Determines whether generated links should be forced to use SSL" -msgstr "Bestimmt, ob generierte Links SSL verwenden müssen" - -#: mod/admin.php:936 -msgid "Force SSL" -msgstr "Erzwinge SSL" - -#: mod/admin.php:936 -msgid "" -"Force all Non-SSL requests to SSL - Attention: on some systems it could lead" -" to endless loops." -msgstr "Erzinge alle Nicht-SSL Anfragen auf SSL - Achtung: auf manchen Systemen verursacht dies eine Endlosschleife." - -#: mod/admin.php:937 -msgid "Old style 'Share'" -msgstr "Altes \"Teilen\" Element" - -#: mod/admin.php:937 -msgid "Deactivates the bbcode element 'share' for repeating items." -msgstr "Deaktiviert das BBCode Element \"share\" beim Wiederholen von Beiträgen." - -#: mod/admin.php:938 -msgid "Hide help entry from navigation menu" -msgstr "Verberge den Menüeintrag für die Hilfe im Navigationsmenü" - -#: mod/admin.php:938 -msgid "" -"Hides the menu entry for the Help pages from the navigation menu. You can " -"still access it calling /help directly." -msgstr "Verbirgt den Menüeintrag für die Hilfe-Seiten im Navigationsmenü. Die Seiten können weiterhin über /help aufgerufen werden." - -#: mod/admin.php:939 -msgid "Single user instance" -msgstr "Ein-Nutzer Instanz" - -#: mod/admin.php:939 -msgid "Make this instance multi-user or single-user for the named user" -msgstr "Regelt ob es sich bei dieser Instanz um eine ein Personen Installation oder eine Installation mit mehr als einem Nutzer handelt." - -#: mod/admin.php:940 -msgid "Maximum image size" -msgstr "Maximale Bildgröße" - -#: mod/admin.php:940 -msgid "" -"Maximum size in bytes of uploaded images. Default is 0, which means no " -"limits." -msgstr "Maximale Uploadgröße von Bildern in Bytes. Standard ist 0, d.h. ohne Limit." - -#: mod/admin.php:941 -msgid "Maximum image length" -msgstr "Maximale Bildlänge" - -#: mod/admin.php:941 -msgid "" -"Maximum length in pixels of the longest side of uploaded images. Default is " -"-1, which means no limits." -msgstr "Maximale Länge in Pixeln der längsten Seite eines hoch geladenen Bildes. Grundeinstellung ist -1 was keine Einschränkung bedeutet." - -#: mod/admin.php:942 -msgid "JPEG image quality" -msgstr "Qualität des JPEG Bildes" - -#: mod/admin.php:942 -msgid "" -"Uploaded JPEGS will be saved at this quality setting [0-100]. Default is " -"100, which is full quality." -msgstr "Hoch geladene JPEG Bilder werden mit dieser Qualität [0-100] gespeichert. Grundeinstellung ist 100, kein Qualitätsverlust." - -#: mod/admin.php:944 -msgid "Register policy" -msgstr "Registrierungsmethode" - -#: mod/admin.php:945 -msgid "Maximum Daily Registrations" -msgstr "Maximum täglicher Registrierungen" - -#: mod/admin.php:945 -msgid "" -"If registration is permitted above, this sets the maximum number of new user" -" registrations to accept per day. If register is set to closed, this " -"setting has no effect." -msgstr "Wenn die Registrierung weiter oben erlaubt ist, regelt dies die maximale Anzahl von Neuanmeldungen pro Tag. Wenn die Registrierung geschlossen ist, hat diese Einstellung keinen Effekt." - -#: mod/admin.php:946 -msgid "Register text" -msgstr "Registrierungstext" - -#: mod/admin.php:946 -msgid "Will be displayed prominently on the registration page." -msgstr "Wird gut sichtbar auf der Registrierungsseite angezeigt." - -#: mod/admin.php:947 -msgid "Accounts abandoned after x days" -msgstr "Nutzerkonten gelten nach x Tagen als unbenutzt" - -#: mod/admin.php:947 -msgid "" -"Will not waste system resources polling external sites for abandonded " -"accounts. Enter 0 for no time limit." -msgstr "Verschwende keine System-Ressourcen auf das Pollen externer Seiten, wenn Konten nicht mehr benutzt werden. 0 eingeben für kein Limit." - -#: mod/admin.php:948 -msgid "Allowed friend domains" -msgstr "Erlaubte Domains für Kontakte" - -#: mod/admin.php:948 -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." - -#: mod/admin.php:949 -msgid "Allowed email domains" -msgstr "Erlaubte Domains für E-Mails" - -#: mod/admin.php:949 -msgid "" -"Comma separated list of domains which are allowed in email addresses for " -"registrations to this site. Wildcards are accepted. Empty to allow any " -"domains" -msgstr "Liste der Domains, die für E-Mail-Adressen bei der Registrierung erlaubt sind, durch Kommas getrennt. Platzhalter werden akzeptiert. Leer lassen, um alle Domains zu erlauben." - -#: mod/admin.php:950 -msgid "Block public" -msgstr "Öffentlichen Zugriff blockieren" - -#: mod/admin.php:950 -msgid "" -"Check to block public access to all otherwise public personal pages on this " -"site unless you are currently logged in." -msgstr "Klicken, um öffentlichen Zugriff auf sonst öffentliche Profile zu blockieren, wenn man nicht eingeloggt ist." - -#: mod/admin.php:951 -msgid "Force publish" -msgstr "Erzwinge Veröffentlichung" - -#: mod/admin.php:951 -msgid "" -"Check to force all profiles on this site to be listed in the site directory." -msgstr "Klicken, um Anzeige aller Profile dieses Servers im Verzeichnis zu erzwingen." - -#: mod/admin.php:952 -msgid "Global directory URL" -msgstr "URL des weltweiten Verzeichnisses" - -#: mod/admin.php:952 -msgid "" -"URL to the global directory. If this is not set, the global directory is " -"completely unavailable to the application." -msgstr "URL des weltweiten Verzeichnisses. Wenn diese nicht gesetzt ist, ist das Verzeichnis für die Applikation nicht erreichbar." - -#: mod/admin.php:953 -msgid "Allow threaded items" -msgstr "Erlaube Threads in Diskussionen" - -#: mod/admin.php:953 -msgid "Allow infinite level threading for items on this site." -msgstr "Erlaube ein unendliches Level für Threads auf dieser Seite." - -#: mod/admin.php:954 -msgid "Private posts by default for new users" -msgstr "Private Beiträge als Standard für neue Nutzer" - -#: mod/admin.php:954 -msgid "" -"Set default post permissions for all new members to the default privacy " -"group rather than public." -msgstr "Die Standard-Zugriffsrechte für neue Nutzer werden so gesetzt, dass als Voreinstellung in die private Gruppe gepostet wird anstelle von öffentlichen Beiträgen." - -#: mod/admin.php:955 -msgid "Don't include post content in email notifications" -msgstr "Inhalte von Beiträgen nicht in E-Mail-Benachrichtigungen versenden" - -#: mod/admin.php:955 -msgid "" -"Don't include the content of a post/comment/private message/etc. in the " -"email notifications that are sent out from this site, as a privacy measure." -msgstr "Inhalte von Beiträgen/Kommentaren/privaten Nachrichten/usw., zum Datenschutz nicht in E-Mail-Benachrichtigungen einbinden." - -#: mod/admin.php:956 -msgid "Disallow public access to addons listed in the apps menu." -msgstr "Öffentlichen Zugriff auf Addons im Apps Menü verbieten." - -#: mod/admin.php:956 -msgid "" -"Checking this box will restrict addons listed in the apps menu to members " -"only." -msgstr "Wenn ausgewählt werden die im Apps Menü aufgeführten Addons nur angemeldeten Nutzern der Seite zur Verfügung gestellt." - -#: mod/admin.php:957 -msgid "Don't embed private images in posts" -msgstr "Private Bilder nicht in Beiträgen einbetten." - -#: mod/admin.php:957 -msgid "" -"Don't replace locally-hosted private photos in posts with an embedded copy " -"of the image. This means that contacts who receive posts containing private " -"photos will have to authenticate and load each image, which may take a " -"while." -msgstr "Ersetze lokal gehostete private Fotos in Beiträgen nicht mit einer eingebetteten Kopie des Bildes. Dies bedeutet, dass Kontakte, die Beiträge mit privaten Fotos erhalten sich zunächst auf den jeweiligen Servern authentifizieren müssen bevor die Bilder geladen und angezeigt werden, was eine gewisse Zeit dauert." - -#: mod/admin.php:958 -msgid "Allow Users to set remote_self" -msgstr "Nutzern erlauben das remote_self Flag zu setzen" - -#: mod/admin.php:958 -msgid "" -"With checking this, every user is allowed to mark every contact as a " -"remote_self in the repair contact dialog. Setting this flag on a contact " -"causes mirroring every posting of that contact in the users stream." -msgstr "Ist dies ausgewählt kann jeder Nutzer jeden seiner Kontakte als remote_self (entferntes Konto) im Kontakt reparieren Dialog markieren. Nach dem setzten dieses Flags werden alle Top-Level Beiträge dieser Kontakte automatisch in den Stream dieses Nutzers gepostet." - -#: mod/admin.php:959 -msgid "Block multiple registrations" -msgstr "Unterbinde Mehrfachregistrierung" - -#: mod/admin.php:959 -msgid "Disallow users to register additional accounts for use as pages." -msgstr "Benutzern nicht erlauben, weitere Konten als zusätzliche Profile anzulegen." - -#: mod/admin.php:960 -msgid "OpenID support" -msgstr "OpenID Unterstützung" - -#: mod/admin.php:960 -msgid "OpenID support for registration and logins." -msgstr "OpenID-Unterstützung für Registrierung und Login." - -#: mod/admin.php:961 -msgid "Fullname check" -msgstr "Namen auf Vollständigkeit überprüfen" - -#: mod/admin.php:961 -msgid "" -"Force users to register with a space between firstname and lastname in Full " -"name, as an antispam measure" -msgstr "Leerzeichen zwischen Vor- und Nachname im vollständigen Namen erzwingen, um SPAM zu vermeiden." - -#: mod/admin.php:962 -msgid "UTF-8 Regular expressions" -msgstr "UTF-8 Reguläre Ausdrücke" - -#: mod/admin.php:962 -msgid "Use PHP UTF8 regular expressions" -msgstr "PHP UTF8 Ausdrücke verwenden" - -#: mod/admin.php:963 -msgid "Community Page Style" -msgstr "Art der Gemeinschaftsseite" - -#: mod/admin.php:963 -msgid "" -"Type of community page to show. 'Global community' shows every public " -"posting from an open distributed network that arrived on this server." -msgstr "Welche Art der Gemeinschaftsseite soll verwendet werden? Globale Gemeinschaftsseite zeigt alle öffentlichen Beiträge eines offenen dezentralen Netzwerks an die auf diesem Server eintreffen." - -#: mod/admin.php:964 -msgid "Posts per user on community page" -msgstr "Anzahl der Beiträge pro Benutzer auf der Gemeinschaftsseite" - -#: mod/admin.php:964 -msgid "" -"The maximum number of posts per user on the community page. (Not valid for " -"'Global Community')" -msgstr "Die Anzahl der Beiträge die von jedem Nutzer maximal auf der Gemeinschaftsseite angezeigt werden sollen. Dieser Parameter wird nicht für die Globale Gemeinschaftsseite genutzt." - -#: mod/admin.php:965 -msgid "Enable OStatus support" -msgstr "OStatus Unterstützung aktivieren" - -#: mod/admin.php:965 -msgid "" -"Provide built-in OStatus (StatusNet, GNU Social etc.) compatibility. All " -"communications in OStatus are public, so privacy warnings will be " -"occasionally displayed." -msgstr "Biete die eingebaute OStatus (iStatusNet, GNU Social, etc.) Unterstützung an. Jede Kommunikation in OStatus ist öffentlich, Privatsphäre Warnungen werden nur bei Bedarf angezeigt." - -#: mod/admin.php:966 -msgid "OStatus conversation completion interval" -msgstr "Intervall zum Vervollständigen von OStatus Unterhaltungen" - -#: mod/admin.php:966 -msgid "" -"How often shall the poller check for new entries in OStatus conversations? " -"This can be a very ressource task." -msgstr "Wie oft soll der Poller checken ob es neue Nachrichten in OStatus Unterhaltungen gibt die geladen werden müssen. Je nach Anzahl der OStatus Kontakte könnte dies ein sehr Ressourcen lastiger Job sein." - -#: mod/admin.php:967 -msgid "Only import OStatus threads from our contacts" -msgstr "Nur OStatus Konversationen unserer Kontakte importieren" - -#: mod/admin.php:967 -msgid "" -"Normally we import every content from our OStatus contacts. With this option" -" we only store threads that are started by a contact that is known on our " -"system." -msgstr "Normalerweise werden alle Inhalte von OStatus Kontakten importiert. Mit dieser Option werden nur solche Konversationen gespeichert, die von Kontakten der Nutzer dieses Knotens gestartet wurden." - -#: mod/admin.php:968 -msgid "OStatus support can only be enabled if threading is enabled." -msgstr "OStatus Unterstützung kann nur aktiviert werden wenn \"Threading\" aktiviert ist. " - -#: mod/admin.php:970 -msgid "" -"Diaspora support can't be enabled because Friendica was installed into a sub" -" directory." -msgstr "Diaspora Unterstützung kann nicht aktiviert werden da Friendica in ein Unterverzeichnis installiert ist." - -#: mod/admin.php:971 -msgid "Enable Diaspora support" -msgstr "Diaspora Unterstützung aktivieren" - -#: mod/admin.php:971 -msgid "Provide built-in Diaspora network compatibility." -msgstr "Verwende die eingebaute Diaspora-Verknüpfung." - -#: mod/admin.php:972 -msgid "Only allow Friendica contacts" -msgstr "Nur Friendica-Kontakte erlauben" - -#: mod/admin.php:972 -msgid "" -"All contacts must use Friendica protocols. All other built-in communication " -"protocols disabled." -msgstr "Alle Kontakte müssen das Friendica Protokoll nutzen. Alle anderen Kommunikationsprotokolle werden deaktiviert." - -#: mod/admin.php:973 -msgid "Verify SSL" -msgstr "SSL Überprüfen" - -#: mod/admin.php:973 -msgid "" -"If you wish, you can turn on strict certificate checking. This will mean you" -" cannot connect (at all) to self-signed SSL sites." -msgstr "Wenn gewollt, kann man hier eine strenge Zertifikatkontrolle einstellen. Das bedeutet, dass man zu keinen Seiten mit selbst unterzeichnetem SSL eine Verbindung herstellen kann." - -#: mod/admin.php:974 -msgid "Proxy user" -msgstr "Proxy Nutzer" - -#: mod/admin.php:975 -msgid "Proxy URL" -msgstr "Proxy URL" - -#: mod/admin.php:976 -msgid "Network timeout" -msgstr "Netzwerk Wartezeit" - -#: mod/admin.php:976 -msgid "Value is in seconds. Set to 0 for unlimited (not recommended)." -msgstr "Der Wert ist in Sekunden. Setze 0 für unbegrenzt (nicht empfohlen)." - -#: mod/admin.php:977 -msgid "Delivery interval" -msgstr "Zustellungsintervall" - -#: mod/admin.php:977 -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 an 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." - -#: mod/admin.php:978 -msgid "Poll interval" -msgstr "Abfrageintervall" - -#: mod/admin.php:978 -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 an Sekunden, um die Systemlast zu reduzieren. Bei 0 Sekunden wird das Auslieferungsintervall verwendet." - -#: mod/admin.php:979 -msgid "Maximum Load Average" -msgstr "Maximum Load Average" - -#: mod/admin.php:979 -msgid "" -"Maximum system load before delivery and poll processes are deferred - " -"default 50." -msgstr "Maximale Systemlast bevor Verteil- und Empfangsprozesse verschoben werden - Standard 50" - -#: mod/admin.php:980 -msgid "Maximum Load Average (Frontend)" -msgstr "Maximum Load Average (Frontend)" - -#: mod/admin.php:980 -msgid "Maximum system load before the frontend quits service - default 50." -msgstr "Maximale Systemlast bevor Vordergrundprozesse pausiert werden - Standard 50." - -#: mod/admin.php:981 -msgid "Maximum table size for optimization" -msgstr "Maximale Tabellengröße zur Optimierung" - -#: mod/admin.php:981 -msgid "" -"Maximum table size (in MB) for the automatic optimization - default 100 MB. " -"Enter -1 to disable it." -msgstr "Maximale Tabellengröße (in MB) für die automatische Optimierung - Standard 100 MB. Gib -1 für Deaktivierung ein." - -#: mod/admin.php:982 -msgid "Minimum level of fragmentation" -msgstr "Minimaler Fragmentationsgrad" - -#: mod/admin.php:982 -msgid "" -"Minimum fragmenation level to start the automatic optimization - default " -"value is 30%." -msgstr "Minimales Fragmentationsgrad von Datenbanktabellen um die automatische Optimierung einzuleiten - Standardwert ist 30%" - -#: mod/admin.php:984 -msgid "Periodical check of global contacts" -msgstr "Regelmäßig globale Kontakte überprüfen" - -#: mod/admin.php:984 -msgid "" -"If enabled, the global contacts are checked periodically for missing or " -"outdated data and the vitality of the contacts and servers." -msgstr "Wenn diese Option aktiviert ist, werden die globalen Kontakte regelmäßig auf fehlende oder veraltete Daten sowie auf Erreichbarkeit des Kontakts und des Servers überprüft." - -#: mod/admin.php:985 -msgid "Days between requery" -msgstr "Tage zwischen erneuten Abfragen" - -#: mod/admin.php:985 -msgid "Number of days after which a server is requeried for his contacts." -msgstr "Legt das Abfrageintervall fest, nachdem ein Server erneut nach Kontakten abgefragt werden soll." - -#: mod/admin.php:986 -msgid "Discover contacts from other servers" -msgstr "Neue Kontakte auf anderen Servern entdecken" - -#: mod/admin.php:986 -msgid "" -"Periodically query other servers for contacts. You can choose between " -"'users': the users on the remote system, 'Global Contacts': active contacts " -"that are known on the system. The fallback is meant for Redmatrix servers " -"and older friendica servers, where global contacts weren't available. The " -"fallback increases the server load, so the recommened setting is 'Users, " -"Global Contacts'." -msgstr "Regelmäßig andere Server nach potentiellen Kontakten absuchen. Du kannst zwischen 'Nutzern', den tatsächlichen Nutzern des anderen Systems und 'globalen Kontakten', aktiven Kontakten die auf dem System bekannt sind, wählen. Der Fallback-Mechanismus ist für ältere Friendica und Redmatrix Server gedacht, bei denen globale Kontakte noch nicht verfügbar sind. Durch den Fallbackmodus entsteht auf deinem Server eine wesentlich höhere Last, empfohlen wird der Modus 'Nutzer, globale Kontakte'." - -#: mod/admin.php:987 -msgid "Timeframe for fetching global contacts" -msgstr "Zeitfenster für globale Kontakte" - -#: mod/admin.php:987 -msgid "" -"When the discovery is activated, this value defines the timeframe for the " -"activity of the global contacts that are fetched from other servers." -msgstr "Wenn die Entdeckung neuer Kontakte aktiv ist, definiert dieses Zeitfenster den Zeitraum in dem globale Kontakte als aktiv gelten und von anderen Servern importiert werden." - -#: mod/admin.php:988 -msgid "Search the local directory" -msgstr "Lokales Verzeichnis durchsuchen" - -#: mod/admin.php:988 -msgid "" -"Search the local directory instead of the global directory. When searching " -"locally, every search will be executed on the global directory in the " -"background. This improves the search results when the search is repeated." -msgstr "Suche im lokalen Verzeichnis anstelle des globalen Verzeichnisses durchführen. Jede Suche wird im Hintergrund auch im globalen Verzeichnis durchgeführt umd die Suchresultate zu verbessern, wenn diese Suche wiederholt wird." - -#: mod/admin.php:990 -msgid "Publish server information" -msgstr "Server Informationen veröffentlichen" - -#: mod/admin.php:990 -msgid "" -"If enabled, general server and usage data will be published. The data " -"contains the name and version of the server, number of users with public " -"profiles, number of posts and the activated protocols and connectors. See the-federation.info for details." -msgstr "Wenn aktiviert, werden allgemeine Informationen über den Server und Nutzungsdaten veröffentlicht. Die Daten beinhalten den Namen sowie die Version des Servers, die Anzahl der Nutzer_innen mit öffentlichen Profilen, die Anzahl der Beiträge sowie aktivierte Protokolle und Connectoren. Für Details bitte the-federation.info aufrufen." - -#: mod/admin.php:992 -msgid "Use MySQL full text engine" -msgstr "Nutze MySQL full text engine" - -#: mod/admin.php:992 -msgid "" -"Activates the full text engine. Speeds up search - but can only search for " -"four and more characters." -msgstr "Aktiviert die 'full text engine'. Beschleunigt die Suche - aber es kann nur nach vier oder mehr Zeichen gesucht werden." - -#: mod/admin.php:993 -msgid "Suppress Language" -msgstr "Sprachinformation unterdrücken" - -#: mod/admin.php:993 -msgid "Suppress language information in meta information about a posting." -msgstr "Verhindert das Erzeugen der Meta-Information zur Spracherkennung eines Beitrags." - -#: mod/admin.php:994 -msgid "Suppress Tags" -msgstr "Tags Unterdrücken" - -#: mod/admin.php:994 -msgid "Suppress showing a list of hashtags at the end of the posting." -msgstr "Unterdrückt die Anzeige von Tags am Ende eines Beitrags." - -#: mod/admin.php:995 -msgid "Path to item cache" -msgstr "Pfad zum Eintrag Cache" - -#: mod/admin.php:995 -msgid "The item caches buffers generated bbcode and external images." -msgstr "Im Item-Cache werden externe Bilder und geparster BBCode zwischen gespeichert." - -#: mod/admin.php:996 -msgid "Cache duration in seconds" -msgstr "Cache-Dauer in Sekunden" - -#: mod/admin.php:996 -msgid "" -"How long should the cache files be hold? Default value is 86400 seconds (One" -" day). To disable the item cache, set the value to -1." -msgstr "Wie lange sollen die gecachedten Dateien vorgehalten werden? Grundeinstellung sind 86400 Sekunden (ein Tag). Um den Item Cache zu deaktivieren, setze diesen Wert auf -1." - -#: mod/admin.php:997 -msgid "Maximum numbers of comments per post" -msgstr "Maximale Anzahl von Kommentaren pro Beitrag" - -#: mod/admin.php:997 -msgid "How much comments should be shown for each post? Default value is 100." -msgstr "Wie viele Kommentare sollen pro Beitrag angezeigt werden? Standardwert sind 100." - -#: mod/admin.php:998 -msgid "Path for lock file" -msgstr "Pfad für die Sperrdatei" - -#: mod/admin.php:998 -msgid "" -"The lock file is used to avoid multiple pollers at one time. Only define a " -"folder here." -msgstr "Die lock-Datei wird benutzt, damit nicht mehrere poller auf einmal laufen. Definiere hier einen Dateiverzeichnis." - -#: mod/admin.php:999 -msgid "Temp path" -msgstr "Temp Pfad" - -#: mod/admin.php:999 -msgid "" -"If you have a restricted system where the webserver can't access the system " -"temp path, enter another path here." -msgstr "Solltest du ein eingeschränktes System haben, auf dem der Webserver nicht auf das temp Verzeichnis des Systems zugreifen kann, setze hier einen anderen Pfad." - -#: mod/admin.php:1000 -msgid "Base path to installation" -msgstr "Basis-Pfad zur Installation" - -#: mod/admin.php:1000 -msgid "" -"If the system cannot detect the correct path to your installation, enter the" -" correct path here. This setting should only be set if you are using a " -"restricted system and symbolic links to your webroot." -msgstr "Falls das System nicht den korrekten Pfad zu deiner Installation gefunden hat, gib den richtigen Pfad bitte hier ein. Du solltest hier den Pfad nur auf einem eingeschränkten System angeben müssen, bei dem du mit symbolischen Links auf dein Webverzeichnis verweist." - -#: mod/admin.php:1001 -msgid "Disable picture proxy" -msgstr "Bilder Proxy deaktivieren" - -#: mod/admin.php:1001 -msgid "" -"The picture proxy increases performance and privacy. It shouldn't be used on" -" systems with very low bandwith." -msgstr "Der Proxy für Bilder verbessert die Leistung und Privatsphäre der Nutzer. Er sollte nicht auf Systemen verwendet werden, die nur über begrenzte Bandbreite verfügen." - -#: mod/admin.php:1002 -msgid "Enable old style pager" -msgstr "Den Old-Style Pager aktiviren" - -#: mod/admin.php:1002 -msgid "" -"The old style pager has page numbers but slows down massively the page " -"speed." -msgstr "Der Old-Style Pager zeigt Seitennummern an, verlangsamt aber auch drastisch das Laden einer Seite." - -#: mod/admin.php:1003 -msgid "Only search in tags" -msgstr "Nur in Tags suchen" - -#: mod/admin.php:1003 -msgid "On large systems the text search can slow down the system extremely." -msgstr "Auf großen Knoten kann die Volltext-Suche das System ausbremsen." - -#: mod/admin.php:1005 -msgid "New base url" -msgstr "Neue Basis-URL" - -#: mod/admin.php:1005 -msgid "" -"Change base url for this server. Sends relocate message to all DFRN contacts" -" of all users." -msgstr "Ändert die Basis-URL dieses Servers und sendet eine Umzugsmitteilung an alle DFRN Kontakte deiner Nutzer_innen." - -#: mod/admin.php:1007 -msgid "RINO Encryption" -msgstr "RINO Verschlüsselung" - -#: mod/admin.php:1007 -msgid "Encryption layer between nodes." -msgstr "Verschlüsselung zwischen Friendica Instanzen" - -#: mod/admin.php:1008 -msgid "Embedly API key" -msgstr "Embedly API Schlüssel" - -#: mod/admin.php:1008 -msgid "" -"Embedly is used to fetch additional data for " -"web pages. This is an optional parameter." -msgstr "Embedly wird verwendet um zusätzliche Informationen von Webseiten zu laden. Dies ist ein optionaler Parameter." - -#: mod/admin.php:1010 -msgid "Enable 'worker' background processing" -msgstr "Aktiviere die 'Worker' Hintergrundprozesse" - -#: mod/admin.php:1010 -msgid "" -"The worker background processing limits the number of parallel background " -"jobs to a maximum number and respects the system load." -msgstr "Der 'background worker' Prozess begrenzt die Zahl der Prozesse, die im Hintergrund parallel laufen und beachtet dabei die Systemlast." - -#: mod/admin.php:1011 -msgid "Maximum number of parallel workers" -msgstr "Maximale Anzahl parallel laufender Worker" - -#: mod/admin.php:1011 -msgid "" -"On shared hosters set this to 2. On larger systems, values of 10 are great. " -"Default value is 4." -msgstr "Wenn dein Knoten bei einem Shared Hoster ist, setzte diesen Wert auf 2. Auf größeren Systemen funktioniert ein Wert von 10 recht gut. Standardeinstellung sind 4." - -#: mod/admin.php:1012 -msgid "Don't use 'proc_open' with the worker" -msgstr "'proc_open' nicht mit den Workern verwenden" - -#: mod/admin.php:1012 -msgid "" -"Enable this if your system doesn't allow the use of 'proc_open'. This can " -"happen on shared hosters. If this is enabled you should increase the " -"frequency of poller calls in your crontab." -msgstr "Aktiviere diese Option, wenn dein System die Verwendung von 'proc_open' verhindert. Dies könnte auf Shared Hostern der Fall sein. Wenn du diese Option aktivierst, solltest du die Frequenz der poller Aufrufe in deiner crontab erhöhen." - -#: mod/admin.php:1041 -msgid "Update has been marked successful" -msgstr "Update wurde als erfolgreich markiert" - -#: mod/admin.php:1049 -#, php-format -msgid "Database structure update %s was successfully applied." -msgstr "Das Update %s der Struktur der Datenbank wurde erfolgreich angewandt." - -#: mod/admin.php:1052 -#, php-format -msgid "Executing of database structure update %s failed with error: %s" -msgstr "Das Update %s der Struktur der Datenbank schlug mit folgender Fehlermeldung fehl: %s" - -#: mod/admin.php:1064 -#, php-format -msgid "Executing %s failed with error: %s" -msgstr "Die Ausführung von %s schlug fehl. Fehlermeldung: %s" - -#: mod/admin.php:1067 -#, php-format -msgid "Update %s was successfully applied." -msgstr "Update %s war erfolgreich." - -#: mod/admin.php:1071 -#, php-format -msgid "Update %s did not return a status. Unknown if it succeeded." -msgstr "Update %s hat keinen Status zurückgegeben. Unbekannter Status." - -#: mod/admin.php:1073 -#, php-format -msgid "There was no additional update function %s that needed to be called." -msgstr "Es gab keine weitere Update-Funktion, die von %s ausgeführt werden musste." - -#: mod/admin.php:1092 -msgid "No failed updates." -msgstr "Keine fehlgeschlagenen Updates." - -#: mod/admin.php:1093 -msgid "Check database structure" -msgstr "Datenbank Struktur überprüfen" - -#: mod/admin.php:1098 -msgid "Failed Updates" -msgstr "Fehlgeschlagene Updates" - -#: mod/admin.php:1099 -msgid "" -"This does not include updates prior to 1139, which did not return a status." -msgstr "Ohne Updates vor 1139, da diese keinen Status zurückgegeben haben." - -#: mod/admin.php:1100 -msgid "Mark success (if update was manually applied)" -msgstr "Als erfolgreich markieren (falls das Update manuell installiert wurde)" - -#: mod/admin.php:1101 -msgid "Attempt to execute this update step automatically" -msgstr "Versuchen, diesen Schritt automatisch auszuführen" - -#: mod/admin.php:1133 -#, php-format -msgid "" -"\n" -"\t\t\tDear %1$s,\n" -"\t\t\t\tthe administrator of %2$s has set up an account for you." -msgstr "\nHallo %1$s,\n\nauf %2$s wurde ein Account für Dich angelegt." - -#: mod/admin.php:1136 -#, php-format -msgid "" -"\n" -"\t\t\tThe login details are as follows:\n" -"\n" -"\t\t\tSite Location:\t%1$s\n" -"\t\t\tLogin Name:\t\t%2$s\n" -"\t\t\tPassword:\t\t%3$s\n" -"\n" -"\t\t\tYou may change your password from your account \"Settings\" page after logging\n" -"\t\t\tin.\n" -"\n" -"\t\t\tPlease take a few moments to review the other account settings on that page.\n" -"\n" -"\t\t\tYou may also wish to add some basic information to your default profile\n" -"\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n" -"\n" -"\t\t\tWe recommend setting your full name, adding a profile photo,\n" -"\t\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n" -"\t\t\tperhaps what country you live in; if you do not wish to be more specific\n" -"\t\t\tthan that.\n" -"\n" -"\t\t\tWe fully respect your right to privacy, and none of these items are necessary.\n" -"\t\t\tIf you are new and do not know anybody here, they may help\n" -"\t\t\tyou to make some new and interesting friends.\n" -"\n" -"\t\t\tThank you and welcome to %4$s." -msgstr "\nNachfolgend die Anmelde-Details:\n\tAdresse der Seite:\t%1$s\n\tBenutzername:\t%2$s\n\tPasswort:\t%3$s\n\nDu kannst Dein Passwort unter \"Einstellungen\" ändern, sobald Du Dich\nangemeldet hast.\n\nBitte nimm Dir ein paar Minuten um die anderen Einstellungen auf dieser\nSeite zu kontrollieren.\n\nEventuell magst Du ja auch einige Informationen über Dich in Deinem\nProfil veröffentlichen, damit andere Leute Dich einfacher finden können.\nBearbeite hierfür einfach Dein Standard-Profil (über die Profil-Seite).\n\nWir empfehlen Dir, Deinen kompletten Namen anzugeben und ein zu Dir\npassendes Profilbild zu wählen, damit Dich alte Bekannte wieder finden.\nAußerdem ist es nützlich, wenn Du auf Deinem Profil Schlüsselwörter\nangibst. Das erleichtert es, Leute zu finden, die Deine Interessen teilen.\n\nWir respektieren Deine Privatsphäre - keine dieser Angaben ist nötig.\nWenn Du neu im Netzwerk bist und noch niemanden kennst, dann können sie\nallerdings dabei helfen, neue und interessante Kontakte zu knüpfen.\n\nNun viel Spaß, gute Begegnungen und willkommen auf %4$s." - -#: mod/admin.php:1180 -#, php-format -msgid "%s user blocked/unblocked" -msgid_plural "%s users blocked/unblocked" -msgstr[0] "%s Benutzer geblockt/freigegeben" -msgstr[1] "%s Benutzer geblockt/freigegeben" - -#: mod/admin.php:1187 -#, php-format -msgid "%s user deleted" -msgid_plural "%s users deleted" -msgstr[0] "%s Nutzer gelöscht" -msgstr[1] "%s Nutzer gelöscht" - -#: mod/admin.php:1234 -#, php-format -msgid "User '%s' deleted" -msgstr "Nutzer '%s' gelöscht" - -#: mod/admin.php:1242 -#, php-format -msgid "User '%s' unblocked" -msgstr "Nutzer '%s' entsperrt" - -#: mod/admin.php:1242 -#, php-format -msgid "User '%s' blocked" -msgstr "Nutzer '%s' gesperrt" - -#: mod/admin.php:1361 mod/admin.php:1386 -msgid "Register date" -msgstr "Anmeldedatum" - -#: mod/admin.php:1361 mod/admin.php:1386 -msgid "Last login" -msgstr "Letzte Anmeldung" - -#: mod/admin.php:1361 mod/admin.php:1386 -msgid "Last item" -msgstr "Letzter Beitrag" - -#: mod/admin.php:1361 mod/settings.php:43 -msgid "Account" -msgstr "Nutzerkonto" - -#: mod/admin.php:1370 -msgid "Add User" -msgstr "Nutzer hinzufügen" - -#: mod/admin.php:1371 -msgid "select all" -msgstr "Alle auswählen" - -#: mod/admin.php:1372 -msgid "User registrations waiting for confirm" -msgstr "Neuanmeldungen, die auf Deine Bestätigung warten" - -#: mod/admin.php:1373 -msgid "User waiting for permanent deletion" -msgstr "Nutzer wartet auf permanente Löschung" - -#: mod/admin.php:1374 -msgid "Request date" -msgstr "Anfragedatum" - -#: mod/admin.php:1375 -msgid "No registrations." -msgstr "Keine Neuanmeldungen." - -#: mod/admin.php:1377 -msgid "Deny" -msgstr "Verwehren" - -#: mod/admin.php:1379 mod/contacts.php:603 mod/contacts.php:798 -#: mod/contacts.php:991 -msgid "Block" -msgstr "Sperren" - -#: mod/admin.php:1380 mod/contacts.php:603 mod/contacts.php:798 -#: mod/contacts.php:991 -msgid "Unblock" -msgstr "Entsperren" - -#: mod/admin.php:1381 -msgid "Site admin" -msgstr "Seitenadministrator" - -#: mod/admin.php:1382 -msgid "Account expired" -msgstr "Account ist abgelaufen" - -#: mod/admin.php:1385 -msgid "New User" -msgstr "Neuer Nutzer" - -#: mod/admin.php:1386 -msgid "Deleted since" -msgstr "Gelöscht seit" - -#: mod/admin.php:1391 -msgid "" -"Selected users will be deleted!\\n\\nEverything these users had posted on " -"this site will be permanently deleted!\\n\\nAre you sure?" -msgstr "Die markierten Nutzer werden gelöscht!\\n\\nAlle Beiträge, die diese Nutzer auf dieser Seite veröffentlicht haben, werden permanent gelöscht!\\n\\nBist Du sicher?" - -#: mod/admin.php:1392 -msgid "" -"The user {0} will be deleted!\\n\\nEverything this user has posted on this " -"site will be permanently deleted!\\n\\nAre you sure?" -msgstr "Der Nutzer {0} wird gelöscht!\\n\\nAlles was dieser Nutzer auf dieser Seite veröffentlicht hat, wird permanent gelöscht!\\n\\nBist Du sicher?" - -#: mod/admin.php:1402 -msgid "Name of the new user." -msgstr "Name des neuen Nutzers" - -#: mod/admin.php:1403 -msgid "Nickname" -msgstr "Spitzname" - -#: mod/admin.php:1403 -msgid "Nickname of the new user." -msgstr "Spitznamen für den neuen Nutzer" - -#: mod/admin.php:1404 -msgid "Email address of the new user." -msgstr "Email Adresse des neuen Nutzers" - -#: mod/admin.php:1447 -#, php-format -msgid "Plugin %s disabled." -msgstr "Plugin %s deaktiviert." - -#: mod/admin.php:1451 -#, php-format -msgid "Plugin %s enabled." -msgstr "Plugin %s aktiviert." - -#: mod/admin.php:1462 mod/admin.php:1698 -msgid "Disable" -msgstr "Ausschalten" - -#: mod/admin.php:1464 mod/admin.php:1700 -msgid "Enable" -msgstr "Einschalten" - -#: mod/admin.php:1487 mod/admin.php:1745 -msgid "Toggle" -msgstr "Umschalten" - -#: mod/admin.php:1495 mod/admin.php:1754 -msgid "Author: " -msgstr "Autor:" - -#: mod/admin.php:1496 mod/admin.php:1755 -msgid "Maintainer: " -msgstr "Betreuer:" - -#: mod/admin.php:1548 -msgid "Reload active plugins" -msgstr "Aktive Plugins neu laden" - -#: mod/admin.php:1553 -#, php-format -msgid "" -"There are currently no plugins available on your node. You can find the " -"official plugin repository at %1$s and might find other interesting plugins " -"in the open plugin registry at %2$s" -msgstr "Es sind derzeit keine Plugins auf diesem Knoten verfügbar. Du findest das offizielle Plugin-Repository unter %1$s und weitere eventuell interessante Plugins im offenen Plugins-Verzeichnis auf %2$s." - -#: mod/admin.php:1658 -msgid "No themes found." -msgstr "Keine Themen gefunden." - -#: mod/admin.php:1736 -msgid "Screenshot" -msgstr "Bildschirmfoto" - -#: mod/admin.php:1796 -msgid "Reload active themes" -msgstr "Aktives Theme neu laden" - -#: mod/admin.php:1801 -#, php-format -msgid "No themes found on the system. They should be paced in %1$s" -msgstr "Es wurden keine Themes auf dem System gefunden. Diese sollten in %1$s patziert werden." - -#: mod/admin.php:1802 -msgid "[Experimental]" -msgstr "[Experimentell]" - -#: mod/admin.php:1803 -msgid "[Unsupported]" -msgstr "[Nicht unterstützt]" - -#: mod/admin.php:1827 -msgid "Log settings updated." -msgstr "Protokolleinstellungen aktualisiert." - -#: mod/admin.php:1864 -msgid "Clear" -msgstr "löschen" - -#: mod/admin.php:1869 -msgid "Enable Debugging" -msgstr "Protokoll führen" - -#: mod/admin.php:1870 -msgid "Log file" -msgstr "Protokolldatei" - -#: mod/admin.php:1870 -msgid "" -"Must be writable by web server. Relative to your Friendica top-level " -"directory." -msgstr "Webserver muss Schreibrechte besitzen. Abhängig vom Friendica-Installationsverzeichnis." - -#: mod/admin.php:1871 -msgid "Log level" -msgstr "Protokoll-Level" - -#: mod/admin.php:1874 -msgid "PHP logging" -msgstr "PHP Protokollieren" - -#: mod/admin.php:1875 -msgid "" -"To enable logging of PHP errors and warnings you can add the following to " -"the .htconfig.php file of your installation. The filename set in the " -"'error_log' line is relative to the friendica top-level directory and must " -"be writeable by the web server. The option '1' for 'log_errors' and " -"'display_errors' is to enable these options, set to '0' to disable them." -msgstr "Um PHP Warnungen und Fehler zu protokollieren, kannst du die folgenden Zeilen zur .htconfig.php Datei deiner Installation hinzufügen. Den Dateinamen der Log-Datei legst du in der Zeile mit dem 'error_log' fest, Er ist relativ zum Friendica-Stammverzeichnis und muss schreibbar durch den Webserver sein. Eine \"1\" als Option für die Punkte 'log_errors' und 'display_errors' aktiviert die Funktionen zum Protokollieren bzw. Anzeigen der Fehler, eine \"0\" deaktiviert sie." - -#: mod/admin.php:2001 mod/admin.php:2002 mod/settings.php:763 -msgid "Off" -msgstr "Aus" - -#: mod/admin.php:2001 mod/admin.php:2002 mod/settings.php:763 -msgid "On" -msgstr "An" - -#: mod/admin.php:2002 -#, php-format -msgid "Lock feature %s" -msgstr "Feature festlegen: %s" - -#: mod/admin.php:2010 -msgid "Manage Additional Features" -msgstr "Zusätzliche Features Verwalten" - #: mod/wall_attach.php:94 msgid "Sorry, maybe your upload is bigger than the PHP configuration allows" msgstr "Entschuldige, die Datei scheint größer zu sein als es die PHP Konfiguration erlaubt." @@ -5415,133 +3658,7 @@ msgstr "Hochladen der Datei fehlgeschlagen." #: mod/allfriends.php:43 msgid "No friends to display." -msgstr "Keine Freunde zum Anzeigen." - -#: mod/content.php:119 mod/network.php:549 -msgid "No such group" -msgstr "Es gibt keine solche Gruppe" - -#: mod/content.php:130 mod/network.php:576 mod/group.php:193 -msgid "Group is empty" -msgstr "Gruppe ist leer" - -#: mod/content.php:135 mod/network.php:580 -#, php-format -msgid "Group: %s" -msgstr "Gruppe: %s" - -#: mod/content.php:605 object/Item.php:419 -#, php-format -msgid "%d comment" -msgid_plural "%d comments" -msgstr[0] "%d Kommentar" -msgstr[1] "%d Kommentare" - -#: mod/content.php:622 mod/photos.php:1405 object/Item.php:117 -msgid "Private Message" -msgstr "Private Nachricht" - -#: mod/content.php:686 mod/photos.php:1594 object/Item.php:253 -msgid "I like this (toggle)" -msgstr "Ich mag das (toggle)" - -#: mod/content.php:686 object/Item.php:253 -msgid "like" -msgstr "mag ich" - -#: mod/content.php:687 mod/photos.php:1595 object/Item.php:254 -msgid "I don't like this (toggle)" -msgstr "Ich mag das nicht (toggle)" - -#: mod/content.php:687 object/Item.php:254 -msgid "dislike" -msgstr "mag ich nicht" - -#: mod/content.php:689 object/Item.php:256 -msgid "Share this" -msgstr "Weitersagen" - -#: mod/content.php:689 object/Item.php:256 -msgid "share" -msgstr "Teilen" - -#: mod/content.php:709 mod/photos.php:1614 mod/photos.php:1662 -#: mod/photos.php:1750 object/Item.php:707 -msgid "This is you" -msgstr "Das bist Du" - -#: mod/content.php:713 object/Item.php:711 -msgid "Bold" -msgstr "Fett" - -#: mod/content.php:714 object/Item.php:712 -msgid "Italic" -msgstr "Kursiv" - -#: mod/content.php:715 object/Item.php:713 -msgid "Underline" -msgstr "Unterstrichen" - -#: mod/content.php:716 object/Item.php:714 -msgid "Quote" -msgstr "Zitat" - -#: mod/content.php:717 object/Item.php:715 -msgid "Code" -msgstr "Code" - -#: mod/content.php:718 object/Item.php:716 -msgid "Image" -msgstr "Bild" - -#: mod/content.php:719 object/Item.php:717 -msgid "Link" -msgstr "Link" - -#: mod/content.php:720 object/Item.php:718 -msgid "Video" -msgstr "Video" - -#: mod/content.php:730 mod/settings.php:725 object/Item.php:122 -#: object/Item.php:124 -msgid "Edit" -msgstr "Bearbeiten" - -#: mod/content.php:755 object/Item.php:217 -msgid "add star" -msgstr "markieren" - -#: mod/content.php:756 object/Item.php:218 -msgid "remove star" -msgstr "Markierung entfernen" - -#: mod/content.php:757 object/Item.php:219 -msgid "toggle star status" -msgstr "Markierung umschalten" - -#: mod/content.php:760 object/Item.php:222 -msgid "starred" -msgstr "markiert" - -#: mod/content.php:761 object/Item.php:242 -msgid "add tag" -msgstr "Tag hinzufügen" - -#: mod/content.php:765 object/Item.php:137 -msgid "save to folder" -msgstr "In Ordner speichern" - -#: mod/content.php:856 object/Item.php:359 -msgid "to" -msgstr "zu" - -#: mod/content.php:857 object/Item.php:361 -msgid "Wall-to-Wall" -msgstr "Wall-to-Wall" - -#: mod/content.php:858 object/Item.php:362 -msgid "via Wall-To-Wall:" -msgstr "via Wall-To-Wall:" +msgstr "Keine Kontakte zum Anzeigen." #: mod/repair_ostatus.php:14 msgid "Resubscribing to OStatus contacts" @@ -5590,333 +3707,6 @@ msgstr "Hinzufügen" msgid "No entries." msgstr "Keine Einträge." -#: mod/videos.php:123 -msgid "Do you really want to delete this video?" -msgstr "Möchtest Du dieses Video wirklich löschen?" - -#: mod/videos.php:128 -msgid "Delete Video" -msgstr "Video Löschen" - -#: mod/videos.php:207 -msgid "No videos selected" -msgstr "Keine Videos ausgewählt" - -#: mod/videos.php:308 mod/photos.php:1074 -msgid "Access to this item is restricted." -msgstr "Zugriff zu diesem Eintrag wurde eingeschränkt." - -#: mod/videos.php:390 mod/photos.php:1877 -msgid "View Album" -msgstr "Album betrachten" - -#: mod/videos.php:399 -msgid "Recent Videos" -msgstr "Neueste Videos" - -#: mod/videos.php:401 -msgid "Upload New Videos" -msgstr "Neues Video hochladen" - -#: mod/profiles.php:37 -msgid "Profile deleted." -msgstr "Profil gelöscht." - -#: mod/profiles.php:55 mod/profiles.php:89 -msgid "Profile-" -msgstr "Profil-" - -#: mod/profiles.php:74 mod/profiles.php:117 -msgid "New profile created." -msgstr "Neues Profil angelegt." - -#: mod/profiles.php:95 -msgid "Profile unavailable to clone." -msgstr "Profil nicht zum Duplizieren verfügbar." - -#: mod/profiles.php:189 -msgid "Profile Name is required." -msgstr "Profilname ist erforderlich." - -#: mod/profiles.php:336 -msgid "Marital Status" -msgstr "Familienstand" - -#: mod/profiles.php:340 -msgid "Romantic Partner" -msgstr "Romanze" - -#: mod/profiles.php:352 -msgid "Work/Employment" -msgstr "Arbeit / Beschäftigung" - -#: mod/profiles.php:355 -msgid "Religion" -msgstr "Religion" - -#: mod/profiles.php:359 -msgid "Political Views" -msgstr "Politische Ansichten" - -#: mod/profiles.php:363 -msgid "Gender" -msgstr "Geschlecht" - -#: mod/profiles.php:367 -msgid "Sexual Preference" -msgstr "Sexuelle Vorlieben" - -#: mod/profiles.php:371 -msgid "Homepage" -msgstr "Webseite" - -#: mod/profiles.php:375 mod/profiles.php:691 -msgid "Interests" -msgstr "Interessen" - -#: mod/profiles.php:379 -msgid "Address" -msgstr "Adresse" - -#: mod/profiles.php:386 mod/profiles.php:687 -msgid "Location" -msgstr "Wohnort" - -#: mod/profiles.php:469 -msgid "Profile updated." -msgstr "Profil aktualisiert." - -#: mod/profiles.php:556 -msgid " and " -msgstr " und " - -#: mod/profiles.php:564 -msgid "public profile" -msgstr "öffentliches Profil" - -#: mod/profiles.php:567 -#, php-format -msgid "%1$s changed %2$s to “%3$s”" -msgstr "%1$s hat %2$s geändert auf “%3$s”" - -#: mod/profiles.php:568 -#, php-format -msgid " - Visit %1$s's %2$s" -msgstr " – %1$ss %2$s besuchen" - -#: mod/profiles.php:571 -#, php-format -msgid "%1$s has an updated %2$s, changing %3$s." -msgstr "%1$s hat folgendes aktualisiert %2$s, verändert wurde %3$s." - -#: mod/profiles.php:638 -msgid "Hide contacts and friends:" -msgstr "Kontakte und Freunde verbergen" - -#: mod/profiles.php:641 mod/profiles.php:645 mod/profiles.php:670 -#: mod/follow.php:110 mod/dfrn_request.php:853 mod/register.php:239 -#: mod/settings.php:1110 mod/settings.php:1116 mod/settings.php:1124 -#: mod/settings.php:1128 mod/settings.php:1133 mod/settings.php:1139 -#: mod/settings.php:1145 mod/settings.php:1151 mod/settings.php:1177 -#: mod/settings.php:1178 mod/settings.php:1179 mod/settings.php:1180 -#: mod/settings.php:1181 mod/api.php:106 -msgid "No" -msgstr "Nein" - -#: mod/profiles.php:643 -msgid "Hide your contact/friend list from viewers of this profile?" -msgstr "Liste der Kontakte vor Betrachtern dieses Profils verbergen?" - -#: mod/profiles.php:667 -msgid "Show more profile fields:" -msgstr "Zeige mehr Profil-Felder:" - -#: mod/profiles.php:678 -msgid "Edit Profile Details" -msgstr "Profil bearbeiten" - -#: mod/profiles.php:680 -msgid "Change Profile Photo" -msgstr "Profilbild ändern" - -#: mod/profiles.php:681 -msgid "View this profile" -msgstr "Dieses Profil anzeigen" - -#: mod/profiles.php:682 -msgid "Create a new profile using these settings" -msgstr "Neues Profil anlegen und diese Einstellungen verwenden" - -#: mod/profiles.php:683 -msgid "Clone this profile" -msgstr "Dieses Profil duplizieren" - -#: mod/profiles.php:684 -msgid "Delete this profile" -msgstr "Dieses Profil löschen" - -#: mod/profiles.php:685 -msgid "Basic information" -msgstr "Grundinformationen" - -#: mod/profiles.php:686 -msgid "Profile picture" -msgstr "Profilbild" - -#: mod/profiles.php:688 -msgid "Preferences" -msgstr "Vorlieben" - -#: mod/profiles.php:689 -msgid "Status information" -msgstr "Status Informationen" - -#: mod/profiles.php:690 -msgid "Additional information" -msgstr "Zusätzliche Informationen" - -#: mod/profiles.php:692 mod/newmember.php:36 mod/profile_photo.php:250 -msgid "Upload Profile Photo" -msgstr "Profilbild hochladen" - -#: mod/profiles.php:693 -msgid "Profile Name:" -msgstr "Profilname:" - -#: mod/profiles.php:694 -msgid "Your Full Name:" -msgstr "Dein kompletter Name:" - -#: mod/profiles.php:695 -msgid "Title/Description:" -msgstr "Titel/Beschreibung:" - -#: mod/profiles.php:696 -msgid "Your Gender:" -msgstr "Dein Geschlecht:" - -#: mod/profiles.php:697 -msgid "Birthday :" -msgstr "Geburtstag :" - -#: mod/profiles.php:698 -msgid "Street Address:" -msgstr "Adresse:" - -#: mod/profiles.php:699 -msgid "Locality/City:" -msgstr "Wohnort:" - -#: mod/profiles.php:700 -msgid "Postal/Zip Code:" -msgstr "Postleitzahl:" - -#: mod/profiles.php:701 -msgid "Country:" -msgstr "Land:" - -#: mod/profiles.php:702 -msgid "Region/State:" -msgstr "Region/Bundesstaat:" - -#: mod/profiles.php:703 -msgid " Marital Status:" -msgstr " Beziehungsstatus:" - -#: mod/profiles.php:704 -msgid "Who: (if applicable)" -msgstr "Wer: (falls anwendbar)" - -#: mod/profiles.php:705 -msgid "Examples: cathy123, Cathy Williams, cathy@example.com" -msgstr "Beispiele: cathy123, Cathy Williams, cathy@example.com" - -#: mod/profiles.php:706 -msgid "Since [date]:" -msgstr "Seit [Datum]:" - -#: mod/profiles.php:708 -msgid "Homepage URL:" -msgstr "Adresse der Homepage:" - -#: mod/profiles.php:711 -msgid "Religious Views:" -msgstr "Religiöse Ansichten:" - -#: mod/profiles.php:712 -msgid "Public Keywords:" -msgstr "Öffentliche Schlüsselwörter:" - -#: mod/profiles.php:713 -msgid "Private Keywords:" -msgstr "Private Schlüsselwörter:" - -#: mod/profiles.php:716 -msgid "Example: fishing photography software" -msgstr "Beispiel: Fischen Fotografie Software" - -#: mod/profiles.php:717 -msgid "(Used for suggesting potential friends, can be seen by others)" -msgstr "(Wird verwendet, um potentielle Freunde zu finden, kann von Fremden eingesehen werden)" - -#: mod/profiles.php:718 -msgid "(Used for searching profiles, never shown to others)" -msgstr "(Wird für die Suche nach Profilen verwendet und niemals veröffentlicht)" - -#: mod/profiles.php:719 -msgid "Tell us about yourself..." -msgstr "Erzähle uns ein bisschen von Dir …" - -#: mod/profiles.php:720 -msgid "Hobbies/Interests" -msgstr "Hobbies/Interessen" - -#: mod/profiles.php:721 -msgid "Contact information and Social Networks" -msgstr "Kontaktinformationen und Soziale Netzwerke" - -#: mod/profiles.php:722 -msgid "Musical interests" -msgstr "Musikalische Interessen" - -#: mod/profiles.php:723 -msgid "Books, literature" -msgstr "Bücher, Literatur" - -#: mod/profiles.php:724 -msgid "Television" -msgstr "Fernsehen" - -#: mod/profiles.php:725 -msgid "Film/dance/culture/entertainment" -msgstr "Filme/Tänze/Kultur/Unterhaltung" - -#: mod/profiles.php:726 -msgid "Love/romance" -msgstr "Liebe/Romantik" - -#: mod/profiles.php:727 -msgid "Work/employment" -msgstr "Arbeit/Anstellung" - -#: mod/profiles.php:728 -msgid "School/education" -msgstr "Schule/Ausbildung" - -#: mod/profiles.php:733 -msgid "" -"This is your public profile.
      It may " -"be visible to anybody using the internet." -msgstr "Dies ist Dein öffentliches Profil.
      Es könnte für jeden Nutzer des Internets sichtbar sein." - -#: mod/profiles.php:743 -msgid "Age: " -msgstr "Alter: " - -#: mod/profiles.php:796 -msgid "Edit/Manage Profiles" -msgstr "Bearbeite/Verwalte Profile" - #: mod/credits.php:16 msgid "Credits" msgstr "Credits" @@ -5932,6 +3722,1242 @@ msgstr "Friendica ist ein Gemeinschaftsprojekt, das nicht ohne die Hilfe vieler msgid "- select -" msgstr "- auswählen -" +#: mod/subthread.php:103 +#, php-format +msgid "%1$s is following %2$s's %3$s" +msgstr "%1$s folgt %2$s %3$s" + +#: mod/attach.php:8 +msgid "Item not available." +msgstr "Beitrag nicht verfügbar." + +#: mod/attach.php:20 +msgid "Item was not found." +msgstr "Beitrag konnte nicht gefunden werden." + +#: mod/follow.php:19 mod/dfrn_request.php:874 +msgid "Submit Request" +msgstr "Anfrage abschicken" + +#: mod/follow.php:30 +msgid "You already added this contact." +msgstr "Du hast den Kontakt bereits hinzugefügt." + +#: mod/follow.php:39 +msgid "Diaspora support isn't enabled. Contact can't be added." +msgstr "Diaspora Unterstützung ist nicht aktiviert. Der Kontakt kann nicht zugefügt werden." + +#: mod/follow.php:46 +msgid "OStatus support is disabled. Contact can't be added." +msgstr "OStatus Unterstützung ist nicht aktiviert. Der Kontakt kann nicht zugefügt werden." + +#: mod/follow.php:53 +msgid "The network type couldn't be detected. Contact can't be added." +msgstr "Der Netzwerktype wurde nicht erkannt. Der Kontakt kann nicht hinzugefügt werden." + +#: mod/follow.php:109 mod/dfrn_request.php:860 +msgid "Please answer the following:" +msgstr "Bitte beantworte folgendes:" + +#: mod/follow.php:110 mod/dfrn_request.php:861 +#, php-format +msgid "Does %s know you?" +msgstr "Kennt %s Dich?" + +#: mod/follow.php:110 mod/api.php:106 mod/dfrn_request.php:861 +#: mod/register.php:239 mod/profiles.php:648 mod/profiles.php:652 +#: mod/profiles.php:677 mod/settings.php:1153 mod/settings.php:1159 +#: mod/settings.php:1167 mod/settings.php:1171 mod/settings.php:1176 +#: mod/settings.php:1182 mod/settings.php:1188 mod/settings.php:1194 +#: mod/settings.php:1220 mod/settings.php:1221 mod/settings.php:1222 +#: mod/settings.php:1223 mod/settings.php:1224 +msgid "No" +msgstr "Nein" + +#: mod/follow.php:111 mod/dfrn_request.php:865 +msgid "Add a personal note:" +msgstr "Eine persönliche Notiz beifügen:" + +#: mod/follow.php:117 mod/dfrn_request.php:871 +msgid "Your Identity Address:" +msgstr "Adresse Deines Profils:" + +#: mod/follow.php:126 mod/notifications.php:243 mod/contacts.php:624 +msgid "Profile URL" +msgstr "Profil URL" + +#: mod/follow.php:180 +msgid "Contact added" +msgstr "Kontakt hinzugefügt" + +#: mod/apps.php:7 index.php:240 +msgid "You must be logged in to use addons. " +msgstr "Sie müssen angemeldet sein um Addons benutzen zu können." + +#: mod/apps.php:11 +msgid "Applications" +msgstr "Anwendungen" + +#: mod/apps.php:14 +msgid "No installed applications." +msgstr "Keine Applikationen installiert." + +#: mod/suggest.php:27 +msgid "Do you really want to delete this suggestion?" +msgstr "Möchtest Du wirklich diese Empfehlung löschen?" + +#: mod/suggest.php:71 +msgid "" +"No suggestions available. If this is a new site, please try again in 24 " +"hours." +msgstr "Keine Vorschläge verfügbar. Falls der Server frisch aufgesetzt wurde, versuche es bitte in 24 Stunden noch einmal." + +#: mod/suggest.php:84 mod/suggest.php:104 +msgid "Ignore/Hide" +msgstr "Ignorieren/Verbergen" + +#: mod/p.php:9 +msgid "Not Extended" +msgstr "Nicht erweitert." + +#: mod/display.php:328 mod/cal.php:152 mod/profile.php:155 +msgid "Access to this profile has been restricted." +msgstr "Der Zugriff zu diesem Profil wurde eingeschränkt." + +#: mod/display.php:471 +msgid "Item has been removed." +msgstr "Eintrag wurde entfernt." + +#: mod/common.php:86 +msgid "No contacts in common." +msgstr "Keine gemeinsamen Kontakte." + +#: mod/common.php:134 mod/contacts.php:863 +msgid "Common Friends" +msgstr "Gemeinsame Kontakte" + +#: mod/newmember.php:6 +msgid "Welcome to Friendica" +msgstr "Willkommen bei Friendica" + +#: mod/newmember.php:8 +msgid "New Member Checklist" +msgstr "Checkliste für neue Mitglieder" + +#: mod/newmember.php:12 +msgid "" +"We would like to offer some tips and links to help make your experience " +"enjoyable. Click any item to visit the relevant page. A link to this page " +"will be visible from your home page for two weeks after your initial " +"registration and then will quietly disappear." +msgstr "Wir möchten Dir einige Tipps und Links anbieten, die Dir helfen könnten, den Einstieg angenehmer zu machen. Klicke auf ein Element, um die entsprechende Seite zu besuchen. Ein Link zu dieser Seite hier bleibt für Dich an Deiner Pinnwand für zwei Wochen nach dem Registrierungsdatum sichtbar und wird dann verschwinden." + +#: mod/newmember.php:14 +msgid "Getting Started" +msgstr "Einstieg" + +#: mod/newmember.php:18 +msgid "Friendica Walk-Through" +msgstr "Friendica Rundgang" + +#: mod/newmember.php:18 +msgid "" +"On your Quick Start page - find a brief introduction to your " +"profile and network tabs, make some new connections, and find some groups to" +" join." +msgstr "Auf der Quick Start Seite findest Du eine kurze Einleitung in die einzelnen Funktionen Deines Profils und die Netzwerk-Reiter, wo Du interessante Foren findest und neue Kontakte knüpfst." + +#: mod/newmember.php:26 +msgid "Go to Your Settings" +msgstr "Gehe zu deinen Einstellungen" + +#: mod/newmember.php:26 +msgid "" +"On your Settings page - change your initial password. Also make a " +"note of your Identity Address. This looks just like an email address - and " +"will be useful in making friends on the free social web." +msgstr "Ändere bitte unter Einstellungen dein Passwort. Außerdem merke dir deine Identifikationsadresse. Diese sieht aus wie eine E-Mail-Adresse und wird benötigt, um Kontakte mit anderen im Friendica Netzwerk zu knüpfen.." + +#: mod/newmember.php:28 +msgid "" +"Review the other settings, particularly the privacy settings. An unpublished" +" directory listing is like having an unlisted phone number. In general, you " +"should probably publish your listing - unless all of your friends and " +"potential friends know exactly how to find you." +msgstr "Überprüfe die restlichen Einstellungen, insbesondere die Einstellungen zur Privatsphäre. Wenn Du Dein Profil nicht veröffentlichst, ist das als wenn Du Deine Telefonnummer nicht ins Telefonbuch einträgst. Im Allgemeinen solltest Du es veröffentlichen - außer all Deine Kontakte und potentiellen Kontakte wissen genau, wie sie Dich finden können." + +#: mod/newmember.php:36 mod/profile_photo.php:250 mod/profiles.php:707 +msgid "Upload Profile Photo" +msgstr "Profilbild hochladen" + +#: mod/newmember.php:36 +msgid "" +"Upload a profile photo if you have not done so already. Studies have shown " +"that people with real photos of themselves are ten times more likely to make" +" friends than people who do not." +msgstr "Lade ein Profilbild hoch, falls Du es noch nicht getan hast. Studien haben gezeigt, dass es zehnmal wahrscheinlicher ist neue Kontakte zu finden, wenn Du ein Bild von Dir selbst verwendest, als wenn Du dies nicht tust." + +#: mod/newmember.php:38 +msgid "Edit Your Profile" +msgstr "Editiere dein Profil" + +#: mod/newmember.php:38 +msgid "" +"Edit your default profile to your liking. Review the " +"settings for hiding your list of friends and hiding the profile from unknown" +" visitors." +msgstr "Editiere Dein Standard Profil nach Deinen Vorlieben. Überprüfe die Einstellungen zum Verbergen Deiner Kontaktliste vor unbekannten Betrachtern des Profils." + +#: mod/newmember.php:40 +msgid "Profile Keywords" +msgstr "Profil Schlüsselbegriffe" + +#: mod/newmember.php:40 +msgid "" +"Set some public keywords for your default profile which describe your " +"interests. We may be able to find other people with similar interests and " +"suggest friendships." +msgstr "Trage ein paar öffentliche Stichwörter in Dein Standardprofil ein, die Deine Interessen beschreiben. Eventuell sind wir in der Lage Leute zu finden, die Deine Interessen teilen und können Dir dann Kontakte vorschlagen." + +#: mod/newmember.php:44 +msgid "Connecting" +msgstr "Verbindungen knüpfen" + +#: mod/newmember.php:51 +msgid "Importing Emails" +msgstr "Emails Importieren" + +#: mod/newmember.php:51 +msgid "" +"Enter your email access information on your Connector Settings page if you " +"wish to import and interact with friends or mailing lists from your email " +"INBOX" +msgstr "Gib Deine E-Mail-Zugangsinformationen auf der Connector-Einstellungsseite ein, falls Du E-Mails aus Deinem Posteingang importieren und mit Kontakten und Mailinglisten interagieren willst." + +#: mod/newmember.php:53 +msgid "Go to Your Contacts Page" +msgstr "Gehe zu deiner Kontakt-Seite" + +#: mod/newmember.php:53 +msgid "" +"Your Contacts page is your gateway to managing friendships and connecting " +"with friends on other networks. Typically you enter their address or site " +"URL in the Add New Contact dialog." +msgstr "Die Kontakte-Seite ist die Einstiegsseite, von der aus Du Kontakte verwalten und Dich mit Personen in anderen Netzwerken verbinden kannst. Normalerweise gibst Du dazu einfach ihre Adresse oder die URL der Seite im Kasten Neuen Kontakt hinzufügen ein." + +#: mod/newmember.php:55 +msgid "Go to Your Site's Directory" +msgstr "Gehe zum Verzeichnis Deiner Friendica Instanz" + +#: mod/newmember.php:55 +msgid "" +"The Directory page lets you find other people in this network or other " +"federated sites. Look for a Connect or Follow link on " +"their profile page. Provide your own Identity Address if requested." +msgstr "Über die Verzeichnisseite kannst Du andere Personen auf diesem Server oder anderen verknüpften Seiten finden. Halte nach einem Verbinden oder Folgen Link auf deren Profilseiten Ausschau und gib Deine eigene Profiladresse an, falls Du danach gefragt wirst." + +#: mod/newmember.php:57 +msgid "Finding New People" +msgstr "Neue Leute kennenlernen" + +#: mod/newmember.php:57 +msgid "" +"On the side panel of the Contacts page are several tools to find new " +"friends. We can match people by interest, look up people by name or " +"interest, and provide suggestions based on network relationships. On a brand" +" new site, friend suggestions will usually begin to be populated within 24 " +"hours." +msgstr "Im seitlichen Bedienfeld der Kontakteseite gibt es diverse Werkzeuge, um neue Personen zu finden. Wir können Menschen mit den gleichen Interessen finden, anhand von Namen oder Interessen suchen oder aber aufgrund vorhandener Kontakte neue Leute vorschlagen.\nAuf einer brandneuen - soeben erstellten - Seite starten die Kontaktvorschläge innerhalb von 24 Stunden." + +#: mod/newmember.php:65 +msgid "Group Your Contacts" +msgstr "Gruppiere deine Kontakte" + +#: mod/newmember.php:65 +msgid "" +"Once you have made some friends, organize them into private conversation " +"groups from the sidebar of your Contacts page and then you can interact with" +" each group privately on your Network page." +msgstr "Sobald Du einige Kontakte gefunden hast, organisiere sie in Gruppen zur privaten Kommunikation im Seitenmenü der Kontakte-Seite. Du kannst dann mit jeder dieser Gruppen von der Netzwerkseite aus privat interagieren." + +#: mod/newmember.php:68 +msgid "Why Aren't My Posts Public?" +msgstr "Warum sind meine Beiträge nicht öffentlich?" + +#: mod/newmember.php:68 +msgid "" +"Friendica respects your privacy. By default, your posts will only show up to" +" people you've added as friends. For more information, see the help section " +"from the link above." +msgstr "Friendica respektiert Deine Privatsphäre. Mit der Grundeinstellung werden Deine Beiträge ausschließlich Deinen Kontakten angezeigt. Für weitere Informationen diesbezüglich lies Dir bitte den entsprechenden Abschnitt in der Hilfe unter dem obigen Link durch." + +#: mod/newmember.php:73 +msgid "Getting Help" +msgstr "Hilfe bekommen" + +#: mod/newmember.php:77 +msgid "Go to the Help Section" +msgstr "Zum Hilfe Abschnitt gehen" + +#: mod/newmember.php:77 +msgid "" +"Our help pages may be consulted for detail on other program" +" features and resources." +msgstr "Unsere Hilfe Seiten können herangezogen werden, um weitere Einzelheiten zu andern Programm Features zu erhalten." + +#: mod/removeme.php:46 mod/removeme.php:49 +msgid "Remove My Account" +msgstr "Konto löschen" + +#: mod/removeme.php:47 +msgid "" +"This will completely remove your account. Once this has been done it is not " +"recoverable." +msgstr "Dein Konto wird endgültig gelöscht. Es gibt keine Möglichkeit, es wiederherzustellen." + +#: mod/removeme.php:48 +msgid "Please enter your password for verification:" +msgstr "Bitte gib Dein Passwort zur Verifikation ein:" + +#: mod/editpost.php:17 mod/editpost.php:27 +msgid "Item not found" +msgstr "Beitrag nicht gefunden" + +#: mod/editpost.php:40 +msgid "Edit post" +msgstr "Beitrag bearbeiten" + +#: mod/network.php:398 +#, php-format +msgid "Warning: This group contains %s member from an insecure network." +msgid_plural "" +"Warning: This group contains %s members from an insecure network." +msgstr[0] "Warnung: Diese Gruppe beinhaltet %s Person aus einem unsicheren Netzwerk." +msgstr[1] "Warnung: Diese Gruppe beinhaltet %s Personen aus unsicheren Netzwerken." + +#: mod/network.php:401 +msgid "Private messages to this group are at risk of public disclosure." +msgstr "Private Nachrichten an diese Gruppe könnten an die Öffentlichkeit geraten." + +#: mod/network.php:468 mod/content.php:119 +msgid "No such group" +msgstr "Es gibt keine solche Gruppe" + +#: mod/network.php:495 mod/group.php:193 mod/content.php:130 +msgid "Group is empty" +msgstr "Gruppe ist leer" + +#: mod/network.php:499 mod/content.php:135 +#, php-format +msgid "Group: %s" +msgstr "Gruppe: %s" + +#: mod/network.php:527 +msgid "Private messages to this person are at risk of public disclosure." +msgstr "Private Nachrichten an diese Person könnten an die Öffentlichkeit gelangen." + +#: mod/network.php:532 +msgid "Invalid contact." +msgstr "Ungültiger Kontakt." + +#: mod/network.php:825 +msgid "Commented Order" +msgstr "Neueste Kommentare" + +#: mod/network.php:828 +msgid "Sort by Comment Date" +msgstr "Nach Kommentardatum sortieren" + +#: mod/network.php:833 +msgid "Posted Order" +msgstr "Neueste Beiträge" + +#: mod/network.php:836 +msgid "Sort by Post Date" +msgstr "Nach Beitragsdatum sortieren" + +#: mod/network.php:847 +msgid "Posts that mention or involve you" +msgstr "Beiträge, in denen es um Dich geht" + +#: mod/network.php:855 +msgid "New" +msgstr "Neue" + +#: mod/network.php:858 +msgid "Activity Stream - by date" +msgstr "Aktivitäten-Stream - nach Datum" + +#: mod/network.php:866 +msgid "Shared Links" +msgstr "Geteilte Links" + +#: mod/network.php:869 +msgid "Interesting Links" +msgstr "Interessante Links" + +#: mod/network.php:877 +msgid "Starred" +msgstr "Markierte" + +#: mod/network.php:880 +msgid "Favourite Posts" +msgstr "Favorisierte Beiträge" + +#: mod/community.php:27 +msgid "Not available." +msgstr "Nicht verfügbar." + +#: mod/localtime.php:24 +msgid "Time Conversion" +msgstr "Zeitumrechnung" + +#: mod/localtime.php:26 +msgid "" +"Friendica provides this service for sharing events with other networks and " +"friends in unknown timezones." +msgstr "Friendica bietet diese Funktion an, um das Teilen von Events mit Kontakten zu vereinfachen, deren Zeitzone nicht ermittelt werden kann." + +#: mod/localtime.php:30 +#, php-format +msgid "UTC time: %s" +msgstr "UTC Zeit: %s" + +#: mod/localtime.php:33 +#, php-format +msgid "Current timezone: %s" +msgstr "Aktuelle Zeitzone: %s" + +#: mod/localtime.php:36 +#, php-format +msgid "Converted localtime: %s" +msgstr "Umgerechnete lokale Zeit: %s" + +#: mod/localtime.php:41 +msgid "Please select your timezone:" +msgstr "Bitte wähle Deine Zeitzone:" + +#: mod/bookmarklet.php:41 +msgid "The post was created" +msgstr "Der Beitrag wurde angelegt" + +#: mod/group.php:29 +msgid "Group created." +msgstr "Gruppe erstellt." + +#: mod/group.php:35 +msgid "Could not create group." +msgstr "Konnte die Gruppe nicht erstellen." + +#: mod/group.php:47 mod/group.php:140 +msgid "Group not found." +msgstr "Gruppe nicht gefunden." + +#: mod/group.php:60 +msgid "Group name changed." +msgstr "Gruppenname geändert." + +#: mod/group.php:87 +msgid "Save Group" +msgstr "Gruppe speichern" + +#: mod/group.php:93 +msgid "Create a group of contacts/friends." +msgstr "Eine Kontaktgruppe anlegen." + +#: mod/group.php:113 +msgid "Group removed." +msgstr "Gruppe entfernt." + +#: mod/group.php:115 +msgid "Unable to remove group." +msgstr "Konnte die Gruppe nicht entfernen." + +#: mod/group.php:177 +msgid "Group Editor" +msgstr "Gruppeneditor" + +#: mod/group.php:190 +msgid "Members" +msgstr "Mitglieder" + +#: mod/group.php:192 mod/contacts.php:692 +msgid "All Contacts" +msgstr "Alle Kontakte" + +#: mod/wallmessage.php:42 mod/wallmessage.php:112 +#, php-format +msgid "Number of daily wall messages for %s exceeded. Message failed." +msgstr "Maximale Anzahl der täglichen Pinnwand Nachrichten für %s ist überschritten. Zustellung fehlgeschlagen." + +#: mod/wallmessage.php:56 mod/message.php:71 +msgid "No recipient selected." +msgstr "Kein Empfänger gewählt." + +#: mod/wallmessage.php:59 +msgid "Unable to check your home location." +msgstr "Konnte Deinen Heimatort nicht bestimmen." + +#: mod/wallmessage.php:62 mod/message.php:78 +msgid "Message could not be sent." +msgstr "Nachricht konnte nicht gesendet werden." + +#: mod/wallmessage.php:65 mod/message.php:81 +msgid "Message collection failure." +msgstr "Konnte Nachrichten nicht abrufen." + +#: mod/wallmessage.php:68 mod/message.php:84 +msgid "Message sent." +msgstr "Nachricht gesendet." + +#: mod/wallmessage.php:86 mod/wallmessage.php:95 +msgid "No recipient." +msgstr "Kein Empfänger." + +#: mod/wallmessage.php:142 mod/message.php:341 +msgid "Send Private Message" +msgstr "Private Nachricht senden" + +#: mod/wallmessage.php:143 +#, php-format +msgid "" +"If you wish for %s to respond, please check that the privacy settings on " +"your site allow private mail from unknown senders." +msgstr "Wenn Du möchtest, dass %s Dir antworten kann, überprüfe Deine Privatsphären-Einstellungen und erlaube private Nachrichten von unbekannten Absendern." + +#: mod/wallmessage.php:144 mod/message.php:342 mod/message.php:536 +msgid "To:" +msgstr "An:" + +#: mod/wallmessage.php:145 mod/message.php:347 mod/message.php:538 +msgid "Subject:" +msgstr "Betreff:" + +#: mod/share.php:38 +msgid "link" +msgstr "Link" + +#: mod/api.php:76 mod/api.php:102 +msgid "Authorize application connection" +msgstr "Verbindung der Applikation autorisieren" + +#: mod/api.php:77 +msgid "Return to your app and insert this Securty Code:" +msgstr "Gehe zu Deiner Anwendung zurück und trage dort folgenden Sicherheitscode ein:" + +#: mod/api.php:89 +msgid "Please login to continue." +msgstr "Bitte melde Dich an um fortzufahren." + +#: mod/api.php:104 +msgid "" +"Do you want to authorize this application to access your posts and contacts," +" and/or create new posts for you?" +msgstr "Möchtest Du dieser Anwendung den Zugriff auf Deine Beiträge und Kontakte, sowie das Erstellen neuer Beiträge in Deinem Namen gestatten?" + +#: mod/babel.php:17 +msgid "Source (bbcode) text:" +msgstr "Quelle (bbcode) Text:" + +#: mod/babel.php:23 +msgid "Source (Diaspora) text to convert to BBcode:" +msgstr "Eingabe (Diaspora) nach BBCode zu konvertierender Text:" + +#: mod/babel.php:31 +msgid "Source input: " +msgstr "Originaltext:" + +#: mod/babel.php:35 +msgid "bb2html (raw HTML): " +msgstr "bb2html (reines HTML): " + +#: mod/babel.php:39 +msgid "bb2html: " +msgstr "bb2html: " + +#: mod/babel.php:43 +msgid "bb2html2bb: " +msgstr "bb2html2bb: " + +#: mod/babel.php:47 +msgid "bb2md: " +msgstr "bb2md: " + +#: mod/babel.php:51 +msgid "bb2md2html: " +msgstr "bb2md2html: " + +#: mod/babel.php:55 +msgid "bb2dia2bb: " +msgstr "bb2dia2bb: " + +#: mod/babel.php:59 +msgid "bb2md2html2bb: " +msgstr "bb2md2html2bb: " + +#: mod/babel.php:69 +msgid "Source input (Diaspora format): " +msgstr "Originaltext (Diaspora Format): " + +#: mod/babel.php:74 +msgid "diaspora2bb: " +msgstr "diaspora2bb: " + +#: mod/ostatus_subscribe.php:14 +msgid "Subscribing to OStatus contacts" +msgstr "OStatus Kontakten folgen" + +#: mod/ostatus_subscribe.php:25 +msgid "No contact provided." +msgstr "Keine Kontakte gefunden." + +#: mod/ostatus_subscribe.php:30 +msgid "Couldn't fetch information for contact." +msgstr "Konnte die Kontaktinformationen nicht einholen." + +#: mod/ostatus_subscribe.php:38 +msgid "Couldn't fetch friends for contact." +msgstr "Konnte die Kontaktliste des Kontakts nicht abfragen." + +#: mod/ostatus_subscribe.php:65 +msgid "success" +msgstr "Erfolg" + +#: mod/ostatus_subscribe.php:67 +msgid "failed" +msgstr "Fehlgeschlagen" + +#: mod/ostatus_subscribe.php:69 mod/content.php:792 object/Item.php:245 +msgid "ignored" +msgstr "Ignoriert" + +#: mod/dfrn_poll.php:104 mod/dfrn_poll.php:537 +#, php-format +msgid "%1$s welcomes %2$s" +msgstr "%1$s heißt %2$s herzlich willkommen" + +#: mod/message.php:75 +msgid "Unable to locate contact information." +msgstr "Konnte die Kontaktinformationen nicht finden." + +#: mod/message.php:215 +msgid "Do you really want to delete this message?" +msgstr "Möchtest Du wirklich diese Nachricht löschen?" + +#: mod/message.php:235 +msgid "Message deleted." +msgstr "Nachricht gelöscht." + +#: mod/message.php:266 +msgid "Conversation removed." +msgstr "Unterhaltung gelöscht." + +#: mod/message.php:383 +msgid "No messages." +msgstr "Keine Nachrichten." + +#: mod/message.php:426 +msgid "Message not available." +msgstr "Nachricht nicht verfügbar." + +#: mod/message.php:503 +msgid "Delete message" +msgstr "Nachricht löschen" + +#: mod/message.php:529 mod/message.php:609 +msgid "Delete conversation" +msgstr "Unterhaltung löschen" + +#: mod/message.php:531 +msgid "" +"No secure communications available. You may be able to " +"respond from the sender's profile page." +msgstr "Sichere Kommunikation ist nicht verfügbar. Eventuell kannst Du auf der Profilseite des Absenders antworten." + +#: mod/message.php:535 +msgid "Send Reply" +msgstr "Antwort senden" + +#: mod/message.php:579 +#, php-format +msgid "Unknown sender - %s" +msgstr "'Unbekannter Absender - %s" + +#: mod/message.php:581 +#, php-format +msgid "You and %s" +msgstr "Du und %s" + +#: mod/message.php:583 +#, php-format +msgid "%s and You" +msgstr "%s und Du" + +#: mod/message.php:612 +msgid "D, d M Y - g:i A" +msgstr "D, d. M Y - g:i A" + +#: mod/message.php:615 +#, php-format +msgid "%d message" +msgid_plural "%d messages" +msgstr[0] "%d Nachricht" +msgstr[1] "%d Nachrichten" + +#: mod/manage.php:139 +msgid "Manage Identities and/or Pages" +msgstr "Verwalte Identitäten und/oder Seiten" + +#: mod/manage.php:140 +msgid "" +"Toggle between different identities or community/group pages which share " +"your account details or which you have been granted \"manage\" permissions" +msgstr "Zwischen verschiedenen Identitäten oder Gemeinschafts-/Gruppenseiten wechseln, die Deine Kontoinformationen teilen oder zu denen Du „Verwalten“-Befugnisse bekommen hast." + +#: mod/manage.php:141 +msgid "Select an identity to manage: " +msgstr "Wähle eine Identität zum Verwalten aus: " + +#: mod/crepair.php:87 +msgid "Contact settings applied." +msgstr "Einstellungen zum Kontakt angewandt." + +#: mod/crepair.php:89 +msgid "Contact update failed." +msgstr "Konnte den Kontakt nicht aktualisieren." + +#: mod/crepair.php:114 mod/dfrn_confirm.php:122 mod/fsuggest.php:20 +#: mod/fsuggest.php:92 +msgid "Contact not found." +msgstr "Kontakt nicht gefunden." + +#: mod/crepair.php:120 +msgid "" +"WARNING: This is highly advanced and if you enter incorrect" +" information your communications with this contact may stop working." +msgstr "ACHTUNG: Das sind Experten-Einstellungen! Wenn Du etwas Falsches eingibst, funktioniert die Kommunikation mit diesem Kontakt evtl. nicht mehr." + +#: mod/crepair.php:121 +msgid "" +"Please use your browser 'Back' button now if you are " +"uncertain what to do on this page." +msgstr "Bitte nutze den Zurück-Button Deines Browsers jetzt, wenn Du Dir unsicher bist, was Du tun willst." + +#: mod/crepair.php:134 mod/crepair.php:136 +msgid "No mirroring" +msgstr "Kein Spiegeln" + +#: mod/crepair.php:134 +msgid "Mirror as forwarded posting" +msgstr "Spiegeln als weitergeleitete Beiträge" + +#: mod/crepair.php:134 mod/crepair.php:136 +msgid "Mirror as my own posting" +msgstr "Spiegeln als meine eigenen Beiträge" + +#: mod/crepair.php:150 +msgid "Return to contact editor" +msgstr "Zurück zum Kontakteditor" + +#: mod/crepair.php:152 +msgid "Refetch contact data" +msgstr "Kontaktdaten neu laden" + +#: mod/crepair.php:156 +msgid "Remote Self" +msgstr "Entfernte Konten" + +#: mod/crepair.php:159 +msgid "Mirror postings from this contact" +msgstr "Spiegle Beiträge dieses Kontakts" + +#: mod/crepair.php:161 +msgid "" +"Mark this contact as remote_self, this will cause friendica to repost new " +"entries from this contact." +msgstr "Markiere diesen Kontakt als remote_self (entferntes Konto), dies veranlasst Friendica alle Top-Level Beiträge dieses Kontakts an all Deine Kontakte zu senden." + +#: mod/crepair.php:165 mod/admin.php:1375 mod/admin.php:1388 +#: mod/admin.php:1400 mod/admin.php:1416 mod/settings.php:677 +#: mod/settings.php:703 +msgid "Name" +msgstr "Name" + +#: mod/crepair.php:166 +msgid "Account Nickname" +msgstr "Konto-Spitzname" + +#: mod/crepair.php:167 +msgid "@Tagname - overrides Name/Nickname" +msgstr "@Tagname - überschreibt Name/Spitzname" + +#: mod/crepair.php:168 +msgid "Account URL" +msgstr "Konto-URL" + +#: mod/crepair.php:169 +msgid "Friend Request URL" +msgstr "URL für Kontaktschaftsanfragen" + +#: mod/crepair.php:170 +msgid "Friend Confirm URL" +msgstr "URL für Bestätigungen von Kontaktanfragen" + +#: mod/crepair.php:171 +msgid "Notification Endpoint URL" +msgstr "URL-Endpunkt für Benachrichtigungen" + +#: mod/crepair.php:172 +msgid "Poll/Feed URL" +msgstr "Pull/Feed-URL" + +#: mod/crepair.php:173 +msgid "New photo from this URL" +msgstr "Neues Foto von dieser URL" + +#: mod/dfrn_request.php:100 +msgid "This introduction has already been accepted." +msgstr "Diese Kontaktanfrage wurde bereits akzeptiert." + +#: mod/dfrn_request.php:123 mod/dfrn_request.php:518 +msgid "Profile location is not valid or does not contain profile information." +msgstr "Profiladresse ist ungültig oder stellt keine Profildaten zur Verfügung." + +#: mod/dfrn_request.php:128 mod/dfrn_request.php:523 +msgid "Warning: profile location has no identifiable owner name." +msgstr "Warnung: Es konnte kein Name des Besitzers von der angegebenen Profiladresse gefunden werden." + +#: mod/dfrn_request.php:130 mod/dfrn_request.php:525 +msgid "Warning: profile location has no profile photo." +msgstr "Warnung: Es gibt kein Profilbild bei der angegebenen Profiladresse." + +#: mod/dfrn_request.php:133 mod/dfrn_request.php:528 +#, 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 benötigter Parameter wurde an der angegebenen Stelle nicht gefunden" +msgstr[1] "%d benötigte Parameter wurden an der angegebenen Stelle nicht gefunden" + +#: mod/dfrn_request.php:178 +msgid "Introduction complete." +msgstr "Kontaktanfrage abgeschlossen." + +#: mod/dfrn_request.php:220 +msgid "Unrecoverable protocol error." +msgstr "Nicht behebbarer Protokollfehler." + +#: mod/dfrn_request.php:248 +msgid "Profile unavailable." +msgstr "Profil nicht verfügbar." + +#: mod/dfrn_request.php:273 +#, php-format +msgid "%s has received too many connection requests today." +msgstr "%s hat heute zu viele Kontaktanfragen erhalten." + +#: mod/dfrn_request.php:274 +msgid "Spam protection measures have been invoked." +msgstr "Maßnahmen zum Spamschutz wurden ergriffen." + +#: mod/dfrn_request.php:275 +msgid "Friends are advised to please try again in 24 hours." +msgstr "Freunde sind angehalten, es in 24 Stunden erneut zu versuchen." + +#: mod/dfrn_request.php:337 +msgid "Invalid locator" +msgstr "Ungültiger Locator" + +#: mod/dfrn_request.php:346 +msgid "Invalid email address." +msgstr "Ungültige E-Mail-Adresse." + +#: mod/dfrn_request.php:373 +msgid "This account has not been configured for email. Request failed." +msgstr "Dieses Konto ist nicht für E-Mail konfiguriert. Anfrage fehlgeschlagen." + +#: mod/dfrn_request.php:476 +msgid "You have already introduced yourself here." +msgstr "Du hast Dich hier bereits vorgestellt." + +#: mod/dfrn_request.php:480 +#, php-format +msgid "Apparently you are already friends with %s." +msgstr "Es scheint so, als ob Du bereits mit %s in Kontakt stehst." + +#: mod/dfrn_request.php:501 +msgid "Invalid profile URL." +msgstr "Ungültige Profil-URL." + +#: mod/dfrn_request.php:579 mod/contacts.php:208 +msgid "Failed to update contact record." +msgstr "Aktualisierung der Kontaktdaten fehlgeschlagen." + +#: mod/dfrn_request.php:600 +msgid "Your introduction has been sent." +msgstr "Deine Kontaktanfrage wurde gesendet." + +#: mod/dfrn_request.php:640 +msgid "" +"Remote subscription can't be done for your network. Please subscribe " +"directly on your system." +msgstr "Entferntes abon­nie­ren kann für dein Netzwerk nicht durchgeführt werden. Bitte nutze direkt die Abonnieren-Funktion deines Systems. " + +#: mod/dfrn_request.php:663 +msgid "Please login to confirm introduction." +msgstr "Bitte melde Dich an, um die Kontaktanfrage zu bestätigen." + +#: mod/dfrn_request.php:673 +msgid "" +"Incorrect identity currently logged in. Please login to " +"this profile." +msgstr "Momentan bist Du mit einer anderen Identität angemeldet. Bitte melde Dich mit diesem Profil an." + +#: mod/dfrn_request.php:687 mod/dfrn_request.php:704 +msgid "Confirm" +msgstr "Bestätigen" + +#: mod/dfrn_request.php:699 +msgid "Hide this contact" +msgstr "Verberge diesen Kontakt" + +#: mod/dfrn_request.php:702 +#, php-format +msgid "Welcome home %s." +msgstr "Willkommen zurück %s." + +#: mod/dfrn_request.php:703 +#, php-format +msgid "Please confirm your introduction/connection request to %s." +msgstr "Bitte bestätige Deine Kontaktanfrage bei %s." + +#: mod/dfrn_request.php:832 +msgid "" +"Please enter your 'Identity Address' from one of the following supported " +"communications networks:" +msgstr "Bitte gib die Adresse Deines Profils in einem der unterstützten sozialen Netzwerke an:" + +#: mod/dfrn_request.php:853 +#, 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 "Wenn du noch kein Mitglied dieses freien sozialen Netzwerks bist, folge diesem Link um einen öffentlichen Friendica-Server zu finden und beizutreten." + +#: mod/dfrn_request.php:858 +msgid "Friend/Connection Request" +msgstr "Kontaktanfrage" + +#: mod/dfrn_request.php:859 +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" + +#: mod/dfrn_request.php:868 +msgid "StatusNet/Federated Social Web" +msgstr "StatusNet/Federated Social Web" + +#: mod/dfrn_request.php:870 +#, php-format +msgid "" +" - please do not use this form. Instead, enter %s into your Diaspora search" +" bar." +msgstr " - bitte verwende dieses Formular nicht. Stattdessen suche nach %s in Deiner Diaspora Suchleiste." + +#: mod/content.php:325 object/Item.php:95 +msgid "This entry was edited" +msgstr "Dieser Beitrag wurde bearbeitet." + +#: mod/content.php:621 object/Item.php:429 +#, php-format +msgid "%d comment" +msgid_plural "%d comments" +msgstr[0] "%d Kommentar" +msgstr[1] "%d Kommentare" + +#: mod/content.php:638 mod/photos.php:1405 object/Item.php:117 +msgid "Private Message" +msgstr "Private Nachricht" + +#: mod/content.php:702 mod/photos.php:1594 object/Item.php:263 +msgid "I like this (toggle)" +msgstr "Ich mag das (toggle)" + +#: mod/content.php:702 object/Item.php:263 +msgid "like" +msgstr "mag ich" + +#: mod/content.php:703 mod/photos.php:1595 object/Item.php:264 +msgid "I don't like this (toggle)" +msgstr "Ich mag das nicht (toggle)" + +#: mod/content.php:703 object/Item.php:264 +msgid "dislike" +msgstr "mag ich nicht" + +#: mod/content.php:705 object/Item.php:266 +msgid "Share this" +msgstr "Weitersagen" + +#: mod/content.php:705 object/Item.php:266 +msgid "share" +msgstr "Teilen" + +#: mod/content.php:725 mod/photos.php:1614 mod/photos.php:1662 +#: mod/photos.php:1750 object/Item.php:717 +msgid "This is you" +msgstr "Das bist Du" + +#: mod/content.php:727 mod/content.php:945 mod/photos.php:1616 +#: mod/photos.php:1664 mod/photos.php:1752 object/Item.php:403 +#: object/Item.php:719 boot.php:925 +msgid "Comment" +msgstr "Kommentar" + +#: mod/content.php:729 object/Item.php:721 +msgid "Bold" +msgstr "Fett" + +#: mod/content.php:730 object/Item.php:722 +msgid "Italic" +msgstr "Kursiv" + +#: mod/content.php:731 object/Item.php:723 +msgid "Underline" +msgstr "Unterstrichen" + +#: mod/content.php:732 object/Item.php:724 +msgid "Quote" +msgstr "Zitat" + +#: mod/content.php:733 object/Item.php:725 +msgid "Code" +msgstr "Code" + +#: mod/content.php:734 object/Item.php:726 +msgid "Image" +msgstr "Bild" + +#: mod/content.php:735 object/Item.php:727 +msgid "Link" +msgstr "Link" + +#: mod/content.php:736 object/Item.php:728 +msgid "Video" +msgstr "Video" + +#: mod/content.php:746 mod/settings.php:737 object/Item.php:122 +#: object/Item.php:124 +msgid "Edit" +msgstr "Bearbeiten" + +#: mod/content.php:771 object/Item.php:227 +msgid "add star" +msgstr "markieren" + +#: mod/content.php:772 object/Item.php:228 +msgid "remove star" +msgstr "Markierung entfernen" + +#: mod/content.php:773 object/Item.php:229 +msgid "toggle star status" +msgstr "Markierung umschalten" + +#: mod/content.php:776 object/Item.php:232 +msgid "starred" +msgstr "markiert" + +#: mod/content.php:777 mod/content.php:798 object/Item.php:252 +msgid "add tag" +msgstr "Tag hinzufügen" + +#: mod/content.php:787 object/Item.php:240 +msgid "ignore thread" +msgstr "Thread ignorieren" + +#: mod/content.php:788 object/Item.php:241 +msgid "unignore thread" +msgstr "Thread nicht mehr ignorieren" + +#: mod/content.php:789 object/Item.php:242 +msgid "toggle ignore status" +msgstr "Ignoriert-Status ein-/ausschalten" + +#: mod/content.php:803 object/Item.php:137 +msgid "save to folder" +msgstr "In Ordner speichern" + +#: mod/content.php:848 object/Item.php:201 +msgid "I will attend" +msgstr "Ich werde teilnehmen" + +#: mod/content.php:848 object/Item.php:201 +msgid "I will not attend" +msgstr "Ich werde nicht teilnehmen" + +#: mod/content.php:848 object/Item.php:201 +msgid "I might attend" +msgstr "Ich werde eventuell teilnehmen" + +#: mod/content.php:912 object/Item.php:369 +msgid "to" +msgstr "zu" + +#: mod/content.php:913 object/Item.php:371 +msgid "Wall-to-Wall" +msgstr "Wall-to-Wall" + +#: mod/content.php:914 object/Item.php:372 +msgid "via Wall-To-Wall:" +msgstr "via Wall-To-Wall:" + +#: mod/dfrn_confirm.php:66 mod/profiles.php:19 mod/profiles.php:134 +#: mod/profiles.php:180 mod/profiles.php:617 +msgid "Profile not found." +msgstr "Profil nicht gefunden." + +#: mod/dfrn_confirm.php:123 +msgid "" +"This may occasionally happen if contact was requested by both persons and it" +" has already been approved." +msgstr "Das kann passieren, wenn sich zwei Kontakte gegenseitig eingeladen haben und bereits einer angenommen wurde." + +#: mod/dfrn_confirm.php:242 +msgid "Response from remote site was not understood." +msgstr "Antwort der Gegenstelle unverständlich." + +#: mod/dfrn_confirm.php:251 mod/dfrn_confirm.php:256 +msgid "Unexpected response from remote site: " +msgstr "Unerwartete Antwort der Gegenstelle: " + +#: mod/dfrn_confirm.php:265 +msgid "Confirmation completed successfully." +msgstr "Bestätigung erfolgreich abgeschlossen." + +#: mod/dfrn_confirm.php:267 mod/dfrn_confirm.php:281 mod/dfrn_confirm.php:288 +msgid "Remote site reported: " +msgstr "Gegenstelle meldet: " + +#: mod/dfrn_confirm.php:279 +msgid "Temporary failure. Please wait and try again." +msgstr "Zeitweiser Fehler. Bitte warte einige Momente und versuche es dann noch einmal." + +#: mod/dfrn_confirm.php:286 +msgid "Introduction failed or was revoked." +msgstr "Kontaktanfrage schlug fehl oder wurde zurückgezogen." + +#: mod/dfrn_confirm.php:415 +msgid "Unable to set contact photo." +msgstr "Konnte das Bild des Kontakts nicht speichern." + +#: mod/dfrn_confirm.php:553 +#, php-format +msgid "No user record found for '%s' " +msgstr "Für '%s' wurde kein Nutzer gefunden" + +#: mod/dfrn_confirm.php:563 +msgid "Our site encryption key is apparently messed up." +msgstr "Der Verschlüsselungsschlüssel unserer Seite ist anscheinend nicht in Ordnung." + +#: mod/dfrn_confirm.php:574 +msgid "Empty site URL was provided or URL could not be decrypted by us." +msgstr "Leere URL für die Seite erhalten oder die URL konnte nicht entschlüsselt werden." + +#: mod/dfrn_confirm.php:595 +msgid "Contact record was not found for you on our site." +msgstr "Für diesen Kontakt wurde auf unserer Seite kein Eintrag gefunden." + +#: mod/dfrn_confirm.php:609 +#, php-format +msgid "Site public key not available in contact record for URL %s." +msgstr "Die Kontaktdaten für URL %s enthalten keinen Public Key für den Server." + +#: mod/dfrn_confirm.php:629 +msgid "" +"The ID provided by your system is a duplicate on our system. It should work " +"if you try again." +msgstr "Die ID, die uns Dein System angeboten hat, ist hier bereits vergeben. Bitte versuche es noch einmal." + +#: mod/dfrn_confirm.php:640 +msgid "Unable to set your contact credentials on our system." +msgstr "Deine Kontaktreferenzen konnten nicht in unserem System gespeichert werden." + +#: mod/dfrn_confirm.php:699 +msgid "Unable to update your contact profile details on our system" +msgstr "Die Updates für Dein Profil konnten nicht gespeichert werden" + +#: mod/dfrn_confirm.php:771 +#, php-format +msgid "%1$s has joined %2$s" +msgstr "%1$s ist %2$s beigetreten" + +#: mod/dirfind.php:36 +#, php-format +msgid "People Search - %s" +msgstr "Personensuche - %s" + +#: mod/dirfind.php:47 +#, php-format +msgid "Forum Search - %s" +msgstr "Forensuche - %s" + +#: mod/fsuggest.php:63 +msgid "Friend suggestion sent." +msgstr "Kontaktvorschlag gesendet." + +#: mod/fsuggest.php:97 +msgid "Suggest Friends" +msgstr "Kontakte vorschlagen" + +#: mod/fsuggest.php:99 +#, php-format +msgid "Suggest a friend for %s" +msgstr "Schlage %s einen Kontakt vor" + +#: mod/item.php:116 +msgid "Unable to locate original post." +msgstr "Konnte den Originalbeitrag nicht finden." + +#: mod/item.php:334 +msgid "Empty post discarded." +msgstr "Leerer Beitrag wurde verworfen." + +#: mod/item.php:867 +msgid "System error. Post not saved." +msgstr "Systemfehler. Beitrag konnte nicht gespeichert werden." + +#: mod/item.php:993 +#, php-format +msgid "" +"This message was sent to you by %s, a member of the Friendica social " +"network." +msgstr "Diese Nachricht wurde dir von %s geschickt, einem Mitglied des Sozialen Netzwerks Friendica." + +#: mod/item.php:995 +#, php-format +msgid "You may visit them online at %s" +msgstr "Du kannst sie online unter %s besuchen" + +#: mod/item.php:996 +msgid "" +"Please contact the sender by replying to this post if you do not wish to " +"receive these messages." +msgstr "Falls Du diese Beiträge nicht erhalten möchtest, kontaktiere bitte den Autor, indem Du auf diese Nachricht antwortest." + +#: mod/item.php:1000 +#, php-format +msgid "%s posted an update." +msgstr "%s hat ein Update veröffentlicht." + +#: mod/mood.php:133 +msgid "Mood" +msgstr "Stimmung" + +#: mod/mood.php:134 +msgid "Set your current mood and tell your friends" +msgstr "Wähle Deine aktuelle Stimmung und erzähle sie Deinen Kontakten" + #: mod/poke.php:192 msgid "Poke/Prod" msgstr "Anstupsen" @@ -5952,184 +4978,197 @@ msgstr "Was willst Du mit dem Empfänger machen:" msgid "Make this post private" msgstr "Diesen Beitrag privat machen" -#: mod/photos.php:100 mod/photos.php:1886 -msgid "Recent Photos" -msgstr "Neueste Fotos" +#: mod/profile_photo.php:44 +msgid "Image uploaded but image cropping failed." +msgstr "Bild hochgeladen, aber das Zuschneiden schlug fehl." -#: mod/photos.php:103 mod/photos.php:1307 mod/photos.php:1888 -msgid "Upload New Photos" -msgstr "Neue Fotos hochladen" - -#: mod/photos.php:117 mod/settings.php:36 -msgid "everybody" -msgstr "jeder" - -#: mod/photos.php:181 -msgid "Contact information unavailable" -msgstr "Kontaktinformationen nicht verfügbar" - -#: mod/photos.php:202 -msgid "Album not found." -msgstr "Album nicht gefunden." - -#: mod/photos.php:232 mod/photos.php:244 mod/photos.php:1249 -msgid "Delete Album" -msgstr "Album löschen" - -#: mod/photos.php:242 -msgid "Do you really want to delete this photo album and all its photos?" -msgstr "Möchtest Du wirklich dieses Foto-Album und all seine Foto löschen?" - -#: mod/photos.php:322 mod/photos.php:333 mod/photos.php:1567 -msgid "Delete Photo" -msgstr "Foto löschen" - -#: mod/photos.php:331 -msgid "Do you really want to delete this photo?" -msgstr "Möchtest Du wirklich dieses Foto löschen?" - -#: mod/photos.php:706 +#: mod/profile_photo.php:77 mod/profile_photo.php:84 mod/profile_photo.php:91 +#: mod/profile_photo.php:314 #, php-format -msgid "%1$s was tagged in %2$s by %3$s" -msgstr "%1$s wurde von %3$s in %2$s getaggt" +msgid "Image size reduction [%s] failed." +msgstr "Verkleinern der Bildgröße von [%s] scheiterte." -#: mod/photos.php:706 -msgid "a photo" -msgstr "einem Foto" - -#: mod/photos.php:813 -msgid "Image file is empty." -msgstr "Bilddatei ist leer." - -#: mod/photos.php:973 -msgid "No photos selected" -msgstr "Keine Bilder ausgewählt" - -#: mod/photos.php:1134 -#, php-format -msgid "You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage." -msgstr "Du verwendest %1$.2f Mbyte von %2$.2f Mbyte des Foto-Speichers." - -#: mod/photos.php:1169 -msgid "Upload Photos" -msgstr "Bilder hochladen" - -#: mod/photos.php:1173 mod/photos.php:1244 -msgid "New album name: " -msgstr "Name des neuen Albums: " - -#: mod/photos.php:1174 -msgid "or existing album name: " -msgstr "oder existierender Albumname: " - -#: mod/photos.php:1175 -msgid "Do not show a status post for this upload" -msgstr "Keine Status-Mitteilung für diesen Beitrag anzeigen" - -#: mod/photos.php:1186 mod/photos.php:1571 mod/settings.php:1247 -msgid "Show to Groups" -msgstr "Zeige den Gruppen" - -#: mod/photos.php:1187 mod/photos.php:1572 mod/settings.php:1248 -msgid "Show to Contacts" -msgstr "Zeige den Kontakten" - -#: mod/photos.php:1188 -msgid "Private Photo" -msgstr "Privates Foto" - -#: mod/photos.php:1189 -msgid "Public Photo" -msgstr "Öffentliches Foto" - -#: mod/photos.php:1257 -msgid "Edit Album" -msgstr "Album bearbeiten" - -#: mod/photos.php:1263 -msgid "Show Newest First" -msgstr "Zeige neueste zuerst" - -#: mod/photos.php:1265 -msgid "Show Oldest First" -msgstr "Zeige älteste zuerst" - -#: mod/photos.php:1293 mod/photos.php:1871 -msgid "View Photo" -msgstr "Foto betrachten" - -#: mod/photos.php:1340 -msgid "Permission denied. Access to this item may be restricted." -msgstr "Zugriff verweigert. Zugriff zu diesem Eintrag könnte eingeschränkt sein." - -#: mod/photos.php:1342 -msgid "Photo not available" -msgstr "Foto nicht verfügbar" - -#: mod/photos.php:1398 -msgid "View photo" -msgstr "Fotos ansehen" - -#: mod/photos.php:1398 -msgid "Edit photo" -msgstr "Foto bearbeiten" - -#: mod/photos.php:1399 -msgid "Use as profile photo" -msgstr "Als Profilbild verwenden" - -#: mod/photos.php:1424 -msgid "View Full Size" -msgstr "Betrachte Originalgröße" - -#: mod/photos.php:1510 -msgid "Tags: " -msgstr "Tags: " - -#: mod/photos.php:1513 -msgid "[Remove any tag]" -msgstr "[Tag entfernen]" - -#: mod/photos.php:1553 -msgid "New album name" -msgstr "Name des neuen Albums" - -#: mod/photos.php:1554 -msgid "Caption" -msgstr "Bildunterschrift" - -#: mod/photos.php:1555 -msgid "Add a Tag" -msgstr "Tag hinzufügen" - -#: mod/photos.php:1555 +#: mod/profile_photo.php:124 msgid "" -"Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping" -msgstr "Beispiel: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping" +"Shift-reload the page or clear browser cache if the new photo does not " +"display immediately." +msgstr "Drücke Umschalt+Neu Laden oder leere den Browser-Cache, falls das neue Foto nicht gleich angezeigt wird." -#: mod/photos.php:1556 -msgid "Do not rotate" -msgstr "Nicht rotieren" +#: mod/profile_photo.php:134 +msgid "Unable to process image" +msgstr "Bild konnte nicht verarbeitet werden" -#: mod/photos.php:1557 -msgid "Rotate CW (right)" -msgstr "Drehen US (rechts)" +#: mod/profile_photo.php:248 +msgid "Upload File:" +msgstr "Datei hochladen:" -#: mod/photos.php:1558 -msgid "Rotate CCW (left)" -msgstr "Drehen EUS (links)" +#: mod/profile_photo.php:249 +msgid "Select a profile:" +msgstr "Profil auswählen:" -#: mod/photos.php:1573 -msgid "Private photo" -msgstr "Privates Foto" +#: mod/profile_photo.php:251 +msgid "Upload" +msgstr "Hochladen" -#: mod/photos.php:1574 -msgid "Public photo" -msgstr "Öffentliches Foto" +#: mod/profile_photo.php:254 +msgid "or" +msgstr "oder" -#: mod/photos.php:1800 -msgid "Map" -msgstr "Karte" +#: mod/profile_photo.php:254 +msgid "skip this step" +msgstr "diesen Schritt überspringen" + +#: mod/profile_photo.php:254 +msgid "select a photo from your photo albums" +msgstr "wähle ein Foto aus deinen Fotoalben" + +#: mod/profile_photo.php:268 +msgid "Crop Image" +msgstr "Bild zurechtschneiden" + +#: mod/profile_photo.php:269 +msgid "Please adjust the image cropping for optimum viewing." +msgstr "Passe bitte den Bildausschnitt an, damit das Bild optimal dargestellt werden kann." + +#: mod/profile_photo.php:271 +msgid "Done Editing" +msgstr "Bearbeitung abgeschlossen" + +#: mod/profile_photo.php:305 +msgid "Image uploaded successfully." +msgstr "Bild erfolgreich hochgeladen." + +#: mod/register.php:92 +msgid "" +"Registration successful. Please check your email for further instructions." +msgstr "Registrierung erfolgreich. Eine E-Mail mit weiteren Anweisungen wurde an Dich gesendet." + +#: mod/register.php:97 +#, php-format +msgid "" +"Failed to send email message. Here your accout details:
      login: %s
      " +"password: %s

      You can change your password after login." +msgstr "Versenden der E-Mail fehlgeschlagen. Hier sind Deine Account Details:\n\nLogin: %s\nPasswort: %s\n\nDu kannst das Passwort nach dem Anmelden ändern." + +#: mod/register.php:104 +msgid "Registration successful." +msgstr "Registrierung erfolgreich." + +#: mod/register.php:110 +msgid "Your registration can not be processed." +msgstr "Deine Registrierung konnte nicht verarbeitet werden." + +#: mod/register.php:153 +msgid "Your registration is pending approval by the site owner." +msgstr "Deine Registrierung muss noch vom Betreiber der Seite freigegeben werden." + +#: mod/register.php:219 +msgid "" +"You may (optionally) fill in this form via OpenID by supplying your OpenID " +"and clicking 'Register'." +msgstr "Du kannst dieses Formular auch (optional) mit Deiner OpenID ausfüllen, indem Du Deine OpenID angibst und 'Registrieren' klickst." + +#: mod/register.php:220 +msgid "" +"If you are not familiar with OpenID, please leave that field blank and fill " +"in the rest of the items." +msgstr "Wenn Du nicht mit OpenID vertraut bist, lass dieses Feld bitte leer und fülle die restlichen Felder aus." + +#: mod/register.php:221 +msgid "Your OpenID (optional): " +msgstr "Deine OpenID (optional): " + +#: mod/register.php:235 +msgid "Include your profile in member directory?" +msgstr "Soll Dein Profil im Nutzerverzeichnis angezeigt werden?" + +#: mod/register.php:259 +msgid "Membership on this site is by invitation only." +msgstr "Mitgliedschaft auf dieser Seite ist nur nach vorheriger Einladung möglich." + +#: mod/register.php:260 +msgid "Your invitation ID: " +msgstr "ID Deiner Einladung: " + +#: mod/register.php:263 mod/admin.php:928 +msgid "Registration" +msgstr "Registrierung" + +#: mod/register.php:271 +msgid "Your Full Name (e.g. Joe Smith, real or real-looking): " +msgstr "Dein vollständiger Name (z.B. Hans Mustermann, echt oder echt erscheinend):" + +#: mod/register.php:272 +msgid "Your Email Address: " +msgstr "Deine E-Mail-Adresse: " + +#: mod/register.php:274 mod/settings.php:1261 +msgid "New Password:" +msgstr "Neues Passwort:" + +#: mod/register.php:274 +msgid "Leave empty for an auto generated password." +msgstr "Leer lassen um das Passwort automatisch zu generieren." + +#: mod/register.php:275 mod/settings.php:1262 +msgid "Confirm:" +msgstr "Bestätigen:" + +#: mod/register.php:276 +msgid "" +"Choose a profile nickname. This must begin with a text character. Your " +"profile address on this site will then be " +"'nickname@$sitename'." +msgstr "Wähle einen Spitznamen für Dein Profil. Dieser muss mit einem Buchstaben beginnen. Die Adresse Deines Profils auf dieser Seite wird 'spitzname@$sitename' sein." + +#: mod/register.php:277 +msgid "Choose a nickname: " +msgstr "Spitznamen wählen: " + +#: mod/register.php:287 +msgid "Import your profile to this friendica instance" +msgstr "Importiere Dein Profil auf diese Friendica Instanz" + +#: mod/regmod.php:55 +msgid "Account approved." +msgstr "Konto freigegeben." + +#: mod/regmod.php:92 +#, php-format +msgid "Registration revoked for %s" +msgstr "Registrierung für %s wurde zurückgezogen" + +#: mod/regmod.php:104 +msgid "Please login." +msgstr "Bitte melde Dich an." + +#: mod/videos.php:123 +msgid "Do you really want to delete this video?" +msgstr "Möchtest Du dieses Video wirklich löschen?" + +#: mod/videos.php:128 +msgid "Delete Video" +msgstr "Video Löschen" + +#: mod/videos.php:207 +msgid "No videos selected" +msgstr "Keine Videos ausgewählt" + +#: mod/videos.php:308 mod/photos.php:1075 +msgid "Access to this item is restricted." +msgstr "Zugriff zu diesem Eintrag wurde eingeschränkt." + +#: mod/videos.php:390 mod/photos.php:1877 +msgid "View Album" +msgstr "Album betrachten" + +#: mod/videos.php:399 +msgid "Recent Videos" +msgstr "Neueste Videos" + +#: mod/videos.php:401 +msgid "Upload New Videos" +msgstr "Neues Video hochladen" #: mod/install.php:139 msgid "Friendica Communications Server - Setup" @@ -6153,7 +5192,7 @@ msgid "" "or mysql." msgstr "Möglicherweise musst Du die Datei \"database.sql\" manuell mit phpmyadmin oder mysql importieren." -#: mod/install.php:161 mod/install.php:230 mod/install.php:597 +#: mod/install.php:161 mod/install.php:230 mod/install.php:602 msgid "Please see the file \"INSTALL.txt\"." msgstr "Lies bitte die \"INSTALL.txt\"." @@ -6165,6 +5204,10 @@ msgstr "Die Datenbank wird bereits verwendet." msgid "System check" msgstr "Systemtest" +#: mod/install.php:231 mod/cal.php:281 mod/events.php:383 +msgid "Next" +msgstr "Nächste" + #: mod/install.php:232 msgid "Check again" msgstr "Noch einmal testen" @@ -6331,163 +5374,1918 @@ msgstr "PHP mcrypt Modul" msgid "XML PHP module" msgstr "XML PHP Modul" -#: mod/install.php:424 mod/install.php:426 +#: mod/install.php:421 +msgid "iconv module" +msgstr "iconv module" + +#: mod/install.php:425 mod/install.php:427 msgid "Apache mod_rewrite module" msgstr "Apache mod_rewrite module" -#: mod/install.php:424 +#: mod/install.php:425 msgid "" "Error: Apache webserver mod-rewrite module is required but not installed." msgstr "Fehler: Das Apache-Modul mod-rewrite wird benötigt, es ist allerdings nicht installiert." -#: mod/install.php:432 +#: mod/install.php:433 msgid "Error: libCURL PHP module required but not installed." msgstr "Fehler: Das libCURL PHP Modul wird benötigt, ist aber nicht installiert." -#: mod/install.php:436 +#: mod/install.php:437 msgid "" "Error: GD graphics PHP module with JPEG support required but not installed." msgstr "Fehler: Das GD-Graphikmodul für PHP mit JPEG-Unterstützung ist nicht installiert." -#: mod/install.php:440 +#: mod/install.php:441 msgid "Error: openssl PHP module required but not installed." msgstr "Fehler: Das openssl-Modul von PHP ist nicht installiert." -#: mod/install.php:444 +#: mod/install.php:445 msgid "Error: mysqli PHP module required but not installed." msgstr "Fehler: Das mysqli-Modul von PHP ist nicht installiert." -#: mod/install.php:448 +#: mod/install.php:449 msgid "Error: mb_string PHP module required but not installed." msgstr "Fehler: mb_string PHP Module wird benötigt ist aber nicht installiert." -#: mod/install.php:452 +#: mod/install.php:453 msgid "Error: mcrypt PHP module required but not installed." msgstr "Fehler: Das mcrypt Modul von PHP ist nicht installiert" -#: mod/install.php:461 +#: mod/install.php:457 +msgid "Error: iconv PHP module required but not installed." +msgstr "Fehler: Das iconv-Modul von PHP ist nicht installiert." + +#: mod/install.php:466 msgid "" "If you are using php_cli, please make sure that mcrypt module is enabled in " "its config file" msgstr "Wenn du das Modul \"php_cli\" benutzt dann versichere dich, daß das mcrypt Modul in seiner Konfigurationsdatei aktiviert ist. " -#: mod/install.php:464 +#: mod/install.php:469 msgid "" "Function mcrypt_create_iv() is not defined. This is needed to enable RINO2 " "encryption layer." msgstr "Die Funktion mcrypt_create_iv() ist nicht festgelegt. Dies ist notwendig um den RINO2-Encryption-Layer zu aktivieren." -#: mod/install.php:466 +#: mod/install.php:471 msgid "mcrypt_create_iv() function" msgstr "mcrypt_create_iv() function" -#: mod/install.php:474 +#: mod/install.php:479 msgid "Error, XML PHP module required but not installed." msgstr "Fehler: XML PHP Modul erforderlich aber nicht installiert." -#: mod/install.php:489 +#: mod/install.php:494 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 Installationswizard muss in der Lage sein, eine Datei im Stammverzeichnis Deines Webservers anzulegen, ist allerdings derzeit nicht in der Lage, dies zu tun." -#: mod/install.php:490 +#: mod/install.php:495 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 "In den meisten Fällen ist dies ein Problem mit den Schreibrechten. Der Webserver könnte keine Schreiberlaubnis haben, selbst wenn Du sie hast." -#: mod/install.php:491 +#: mod/install.php:496 msgid "" "At the end of this procedure, we will give you a text to save in a file " "named .htconfig.php in your Friendica top folder." msgstr "Nachdem Du alles ausgefüllt hast, erhältst Du einen Text, den Du in eine Datei namens .htconfig.php in Deinem Friendica-Wurzelverzeichnis kopieren musst." -#: mod/install.php:492 +#: mod/install.php:497 msgid "" "You can alternatively skip this procedure and perform a manual installation." " Please see the file \"INSTALL.txt\" for instructions." msgstr "Alternativ kannst Du diesen Schritt aber auch überspringen und die Installation manuell durchführen. Eine Anleitung dazu (Englisch) findest Du in der Datei INSTALL.txt." -#: mod/install.php:495 +#: mod/install.php:500 msgid ".htconfig.php is writable" msgstr "Schreibrechte auf .htconfig.php" -#: mod/install.php:505 +#: mod/install.php:510 msgid "" "Friendica uses the Smarty3 template engine to render its web views. Smarty3 " "compiles templates to PHP to speed up rendering." msgstr "Friendica nutzt die Smarty3 Template Engine um die Webansichten zu rendern. Smarty3 kompiliert Templates zu PHP um das Rendern zu beschleunigen." -#: mod/install.php:506 +#: mod/install.php:511 msgid "" "In order to store these compiled templates, the web server needs to have " "write access to the directory view/smarty3/ under the Friendica top level " "folder." msgstr "Um diese kompilierten Templates zu speichern benötigt der Webserver Schreibrechte zum Verzeichnis view/smarty3/ im obersten Ordner von Friendica." -#: mod/install.php:507 +#: mod/install.php:512 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 Webserver läuft (z.B. www-data) Schreibrechte zu diesem Verzeichnis hat." -#: mod/install.php:508 +#: mod/install.php:513 msgid "" "Note: as a security measure, you should give the web server write access to " "view/smarty3/ only--not the template files (.tpl) that it contains." msgstr "Hinweis: aus Sicherheitsgründen solltest Du dem Webserver nur Schreibrechte für view/smarty3/ geben -- Nicht den Templatedateien (.tpl) die sie enthalten." -#: mod/install.php:511 +#: mod/install.php:516 msgid "view/smarty3 is writable" msgstr "view/smarty3 ist schreibbar" -#: mod/install.php:527 +#: mod/install.php:532 msgid "" "Url rewrite in .htaccess is not working. Check your server configuration." msgstr "Umschreiben der URLs in der .htaccess funktioniert nicht. Überprüfe die Konfiguration des Servers." -#: mod/install.php:529 +#: mod/install.php:534 msgid "Url rewrite is working" msgstr "URL rewrite funktioniert" -#: mod/install.php:546 +#: mod/install.php:551 msgid "ImageMagick PHP extension is installed" msgstr "ImageMagick PHP Erweiterung ist installiert" -#: mod/install.php:548 +#: mod/install.php:553 msgid "ImageMagick supports GIF" msgstr "ImageMagick unterstützt GIF" -#: mod/install.php:556 +#: mod/install.php:561 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 Konfigurationsdatei \".htconfig.php\" konnte nicht angelegt werden. Bitte verwende den angefügten Text, um die Datei im Stammverzeichnis Deiner Friendica-Installation zu erzeugen." -#: mod/install.php:595 +#: mod/install.php:600 msgid "

      What next

      " msgstr "

      Wie geht es weiter?

      " -#: mod/install.php:596 +#: mod/install.php:601 msgid "" "IMPORTANT: You will need to [manually] setup a scheduled task for the " "poller." msgstr "WICHTIG: Du musst [manuell] einen Cronjob (o.ä.) für den Poller einrichten." -#: mod/subthread.php:103 +#: mod/photos.php:101 mod/photos.php:1886 +msgid "Recent Photos" +msgstr "Neueste Fotos" + +#: mod/photos.php:104 mod/photos.php:1308 mod/photos.php:1888 +msgid "Upload New Photos" +msgstr "Neue Fotos hochladen" + +#: mod/photos.php:118 mod/settings.php:36 +msgid "everybody" +msgstr "jeder" + +#: mod/photos.php:182 +msgid "Contact information unavailable" +msgstr "Kontaktinformationen nicht verfügbar" + +#: mod/photos.php:203 +msgid "Album not found." +msgstr "Album nicht gefunden." + +#: mod/photos.php:233 mod/photos.php:245 mod/photos.php:1250 +msgid "Delete Album" +msgstr "Album löschen" + +#: mod/photos.php:243 +msgid "Do you really want to delete this photo album and all its photos?" +msgstr "Möchtest Du wirklich dieses Foto-Album und all seine Foto löschen?" + +#: mod/photos.php:323 mod/photos.php:334 mod/photos.php:1567 +msgid "Delete Photo" +msgstr "Foto löschen" + +#: mod/photos.php:332 +msgid "Do you really want to delete this photo?" +msgstr "Möchtest Du wirklich dieses Foto löschen?" + +#: mod/photos.php:707 #, php-format -msgid "%1$s is following %2$s's %3$s" -msgstr "%1$s folgt %2$s %3$s" +msgid "%1$s was tagged in %2$s by %3$s" +msgstr "%1$s wurde von %3$s in %2$s getaggt" -#: mod/attach.php:8 -msgid "Item not available." -msgstr "Beitrag nicht verfügbar." +#: mod/photos.php:707 +msgid "a photo" +msgstr "einem Foto" -#: mod/attach.php:20 -msgid "Item was not found." -msgstr "Beitrag konnte nicht gefunden werden." +#: mod/photos.php:814 +msgid "Image file is empty." +msgstr "Bilddatei ist leer." + +#: mod/photos.php:974 +msgid "No photos selected" +msgstr "Keine Bilder ausgewählt" + +#: mod/photos.php:1135 +#, php-format +msgid "You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage." +msgstr "Du verwendest %1$.2f Mbyte von %2$.2f Mbyte des Foto-Speichers." + +#: mod/photos.php:1170 +msgid "Upload Photos" +msgstr "Bilder hochladen" + +#: mod/photos.php:1174 mod/photos.php:1245 +msgid "New album name: " +msgstr "Name des neuen Albums: " + +#: mod/photos.php:1175 +msgid "or existing album name: " +msgstr "oder existierender Albumname: " + +#: mod/photos.php:1176 +msgid "Do not show a status post for this upload" +msgstr "Keine Status-Mitteilung für diesen Beitrag anzeigen" + +#: mod/photos.php:1187 mod/photos.php:1571 mod/settings.php:1290 +msgid "Show to Groups" +msgstr "Zeige den Gruppen" + +#: mod/photos.php:1188 mod/photos.php:1572 mod/settings.php:1291 +msgid "Show to Contacts" +msgstr "Zeige den Kontakten" + +#: mod/photos.php:1189 +msgid "Private Photo" +msgstr "Privates Foto" + +#: mod/photos.php:1190 +msgid "Public Photo" +msgstr "Öffentliches Foto" + +#: mod/photos.php:1258 +msgid "Edit Album" +msgstr "Album bearbeiten" + +#: mod/photos.php:1264 +msgid "Show Newest First" +msgstr "Zeige neueste zuerst" + +#: mod/photos.php:1266 +msgid "Show Oldest First" +msgstr "Zeige älteste zuerst" + +#: mod/photos.php:1294 mod/photos.php:1871 +msgid "View Photo" +msgstr "Foto betrachten" + +#: mod/photos.php:1340 +msgid "Permission denied. Access to this item may be restricted." +msgstr "Zugriff verweigert. Zugriff zu diesem Eintrag könnte eingeschränkt sein." + +#: mod/photos.php:1342 +msgid "Photo not available" +msgstr "Foto nicht verfügbar" + +#: mod/photos.php:1398 +msgid "View photo" +msgstr "Fotos ansehen" + +#: mod/photos.php:1398 +msgid "Edit photo" +msgstr "Foto bearbeiten" + +#: mod/photos.php:1399 +msgid "Use as profile photo" +msgstr "Als Profilbild verwenden" + +#: mod/photos.php:1424 +msgid "View Full Size" +msgstr "Betrachte Originalgröße" + +#: mod/photos.php:1510 +msgid "Tags: " +msgstr "Tags: " + +#: mod/photos.php:1513 +msgid "[Remove any tag]" +msgstr "[Tag entfernen]" + +#: mod/photos.php:1553 +msgid "New album name" +msgstr "Name des neuen Albums" + +#: mod/photos.php:1554 +msgid "Caption" +msgstr "Bildunterschrift" + +#: mod/photos.php:1555 +msgid "Add a Tag" +msgstr "Tag hinzufügen" + +#: mod/photos.php:1555 +msgid "" +"Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping" +msgstr "Beispiel: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping" + +#: mod/photos.php:1556 +msgid "Do not rotate" +msgstr "Nicht rotieren" + +#: mod/photos.php:1557 +msgid "Rotate CW (right)" +msgstr "Drehen US (rechts)" + +#: mod/photos.php:1558 +msgid "Rotate CCW (left)" +msgstr "Drehen EUS (links)" + +#: mod/photos.php:1573 +msgid "Private photo" +msgstr "Privates Foto" + +#: mod/photos.php:1574 +msgid "Public photo" +msgstr "Öffentliches Foto" + +#: mod/photos.php:1800 +msgid "Map" +msgstr "Karte" + +#: mod/cal.php:279 mod/events.php:380 +msgid "View" +msgstr "Ansehen" + +#: mod/cal.php:280 mod/events.php:382 +msgid "Previous" +msgstr "Vorherige" + +#: mod/cal.php:301 +msgid "User not found" +msgstr "Nutzer nicht gefunden" + +#: mod/cal.php:317 +msgid "This calendar format is not supported" +msgstr "Dieses Kalenderformat wird nicht unterstützt." + +#: mod/cal.php:319 +msgid "No exportable data found" +msgstr "Keine exportierbaren Daten gefunden" + +#: mod/cal.php:334 +msgid "calendar" +msgstr "Kalender" + +#: mod/events.php:95 mod/events.php:97 +msgid "Event can not end before it has started." +msgstr "Die Veranstaltung kann nicht enden bevor sie beginnt." + +#: mod/events.php:104 mod/events.php:106 +msgid "Event title and start time are required." +msgstr "Der Veranstaltungstitel und die Anfangszeit müssen angegeben werden." + +#: mod/events.php:381 +msgid "Create New Event" +msgstr "Neue Veranstaltung erstellen" + +#: mod/events.php:483 +msgid "Event details" +msgstr "Veranstaltungsdetails" + +#: mod/events.php:484 +msgid "Starting date and Title are required." +msgstr "Anfangszeitpunkt und Titel werden benötigt" + +#: mod/events.php:485 mod/events.php:486 +msgid "Event Starts:" +msgstr "Veranstaltungsbeginn:" + +#: mod/events.php:485 mod/events.php:497 mod/profiles.php:716 +msgid "Required" +msgstr "Benötigt" + +#: mod/events.php:487 mod/events.php:503 +msgid "Finish date/time is not known or not relevant" +msgstr "Enddatum/-zeit ist nicht bekannt oder nicht relevant" + +#: mod/events.php:489 mod/events.php:490 +msgid "Event Finishes:" +msgstr "Veranstaltungsende:" + +#: mod/events.php:491 mod/events.php:504 +msgid "Adjust for viewer timezone" +msgstr "An Zeitzone des Betrachters anpassen" + +#: mod/events.php:493 +msgid "Description:" +msgstr "Beschreibung" + +#: mod/events.php:497 mod/events.php:499 +msgid "Title:" +msgstr "Titel:" + +#: mod/events.php:500 mod/events.php:501 +msgid "Share this event" +msgstr "Veranstaltung teilen" + +#: mod/notifications.php:35 +msgid "Invalid request identifier." +msgstr "Invalid request identifier." + +#: mod/notifications.php:44 mod/notifications.php:180 +#: mod/notifications.php:252 +msgid "Discard" +msgstr "Verwerfen" + +#: mod/notifications.php:60 mod/notifications.php:179 +#: mod/notifications.php:251 mod/contacts.php:606 mod/contacts.php:806 +#: mod/contacts.php:1007 +msgid "Ignore" +msgstr "Ignorieren" + +#: mod/notifications.php:105 +msgid "Network Notifications" +msgstr "Netzwerk Benachrichtigungen" + +#: mod/notifications.php:117 +msgid "Personal Notifications" +msgstr "Persönliche Benachrichtigungen" + +#: mod/notifications.php:123 +msgid "Home Notifications" +msgstr "Pinnwand Benachrichtigungen" + +#: mod/notifications.php:152 +msgid "Show Ignored Requests" +msgstr "Zeige ignorierte Anfragen" + +#: mod/notifications.php:152 +msgid "Hide Ignored Requests" +msgstr "Verberge ignorierte Anfragen" + +#: mod/notifications.php:164 mod/notifications.php:222 +msgid "Notification type: " +msgstr "Benachrichtigungstyp: " + +#: mod/notifications.php:167 +#, php-format +msgid "suggested by %s" +msgstr "vorgeschlagen von %s" + +#: mod/notifications.php:172 mod/notifications.php:239 mod/contacts.php:613 +msgid "Hide this contact from others" +msgstr "Verbirg diesen Kontakt vor andere" + +#: mod/notifications.php:173 mod/notifications.php:240 +msgid "Post a new friend activity" +msgstr "Neue-Kontakt Nachricht senden" + +#: mod/notifications.php:173 mod/notifications.php:240 +msgid "if applicable" +msgstr "falls anwendbar" + +#: mod/notifications.php:176 mod/notifications.php:249 mod/admin.php:1390 +msgid "Approve" +msgstr "Genehmigen" + +#: mod/notifications.php:195 +msgid "Claims to be known to you: " +msgstr "Behauptet Dich zu kennen: " + +#: mod/notifications.php:196 +msgid "yes" +msgstr "ja" + +#: mod/notifications.php:196 +msgid "no" +msgstr "nein" + +#: mod/notifications.php:197 +msgid "" +"Shall your connection be bidirectional or not? \"Friend\" implies that you " +"allow to read and you subscribe to their posts. \"Fan/Admirer\" means that " +"you allow to read but you do not want to read theirs. Approve as: " +msgstr "Soll Deine Beziehung beidseitig sein oder nicht? \"Kontakt\" bedeutet, ihr könnt gegenseitig die Beiträge des Anderen lesen dürft. \"Fan/Verehrer\", dass du das lesen deiner Beiträge erlaubst aber nicht die Beiträge der anderen Seite lesen möchtest. Genehmigen als:" + +#: mod/notifications.php:200 +msgid "" +"Shall your connection be bidirectional or not? \"Friend\" implies that you " +"allow to read and you subscribe to their posts. \"Sharer\" means that you " +"allow to read but you do not want to read theirs. Approve as: " +msgstr "Soll Deine Beziehung beidseitig sein oder nicht? \"Freund\" bedeutet, ihr gegenseitig die Beiträge des Anderen lesen dürft. \"Teilenden\", das du das lesen deiner Beiträge erlaubst aber nicht die Beiträge der anderen Seite lesen möchtest. Genehmigen als:" + +#: mod/notifications.php:209 +msgid "Friend" +msgstr "Kontakt" + +#: mod/notifications.php:210 +msgid "Sharer" +msgstr "Teilenden" + +#: mod/notifications.php:210 +msgid "Fan/Admirer" +msgstr "Fan/Verehrer" + +#: mod/notifications.php:260 +msgid "No introductions." +msgstr "Keine Kontaktanfragen." + +#: mod/notifications.php:299 +msgid "Show unread" +msgstr "Ungelesene anzeigen" + +#: mod/notifications.php:299 +msgid "Show all" +msgstr "Alle anzeigen" + +#: mod/notifications.php:305 +#, php-format +msgid "No more %s notifications." +msgstr "Keine weiteren %s Benachrichtigungen" + +#: mod/ping.php:234 +msgid "{0} wants to be your friend" +msgstr "{0} möchte mit Dir in Kontakt treten" + +#: mod/ping.php:249 +msgid "{0} sent you a message" +msgstr "{0} schickte Dir eine Nachricht" + +#: mod/ping.php:264 +msgid "{0} requested registration" +msgstr "{0} möchte sich registrieren" + +#: mod/admin.php:92 +msgid "Theme settings updated." +msgstr "Themeneinstellungen aktualisiert." + +#: mod/admin.php:156 mod/admin.php:926 +msgid "Site" +msgstr "Seite" + +#: mod/admin.php:157 mod/admin.php:870 mod/admin.php:1383 mod/admin.php:1398 +msgid "Users" +msgstr "Nutzer" + +#: mod/admin.php:158 mod/admin.php:1500 mod/admin.php:1560 mod/settings.php:74 +msgid "Plugins" +msgstr "Plugins" + +#: mod/admin.php:159 mod/admin.php:1758 mod/admin.php:1808 +msgid "Themes" +msgstr "Themen" + +#: mod/admin.php:160 mod/settings.php:52 +msgid "Additional features" +msgstr "Zusätzliche Features" + +#: mod/admin.php:161 +msgid "DB updates" +msgstr "DB Updates" + +#: mod/admin.php:162 mod/admin.php:397 +msgid "Inspect Queue" +msgstr "Warteschlange Inspizieren" + +#: mod/admin.php:163 mod/admin.php:363 +msgid "Federation Statistics" +msgstr "Federation Statistik" + +#: mod/admin.php:177 mod/admin.php:188 mod/admin.php:1882 +msgid "Logs" +msgstr "Protokolle" + +#: mod/admin.php:178 mod/admin.php:1950 +msgid "View Logs" +msgstr "Protokolle anzeigen" + +#: mod/admin.php:179 +msgid "probe address" +msgstr "Adresse untersuchen" + +#: mod/admin.php:180 +msgid "check webfinger" +msgstr "Webfinger überprüfen" + +#: mod/admin.php:187 +msgid "Plugin Features" +msgstr "Plugin Features" + +#: mod/admin.php:189 +msgid "diagnostics" +msgstr "Diagnose" + +#: mod/admin.php:190 +msgid "User registrations waiting for confirmation" +msgstr "Nutzeranmeldungen die auf Bestätigung warten" + +#: mod/admin.php:356 +msgid "" +"This page offers you some numbers to the known part of the federated social " +"network your Friendica node is part of. These numbers are not complete but " +"only reflect the part of the network your node is aware of." +msgstr "Diese Seite präsentiert einige Zahlen zu dem bekannten Teil des föderalen sozialen Netzwerks, von dem deine Friendica Installation ein Teil ist. Diese Zahlen sind nicht absolut und reflektieren nur den Teil des Netzwerks, den dein Knoten kennt." + +#: mod/admin.php:357 +msgid "" +"The Auto Discovered Contact Directory feature is not enabled, it " +"will improve the data displayed here." +msgstr "Die Funktion um Automatisch ein Kontaktverzeichnis erstellen ist nicht aktiv. Es wird die hier angezeigten Daten verbessern." + +#: mod/admin.php:362 mod/admin.php:396 mod/admin.php:460 mod/admin.php:925 +#: mod/admin.php:1382 mod/admin.php:1499 mod/admin.php:1559 mod/admin.php:1757 +#: mod/admin.php:1807 mod/admin.php:1881 mod/admin.php:1949 +msgid "Administration" +msgstr "Administration" + +#: mod/admin.php:369 +#, php-format +msgid "Currently this node is aware of %d nodes from the following platforms:" +msgstr "Momentan kennt dieser Knoten %d andere Knoten der folgenden Plattformen:" + +#: mod/admin.php:399 +msgid "ID" +msgstr "ID" + +#: mod/admin.php:400 +msgid "Recipient Name" +msgstr "Empfänger Name" + +#: mod/admin.php:401 +msgid "Recipient Profile" +msgstr "Empfänger Profil" + +#: mod/admin.php:403 +msgid "Created" +msgstr "Erstellt" + +#: mod/admin.php:404 +msgid "Last Tried" +msgstr "Zuletzt versucht" + +#: mod/admin.php:405 +msgid "" +"This page lists the content of the queue for outgoing postings. These are " +"postings the initial delivery failed for. They will be resend later and " +"eventually deleted if the delivery fails permanently." +msgstr "Auf dieser Seite werden die in der Warteschlange eingereihten Beiträge aufgelistet. Bei diesen Beiträgen schlug die erste Zustellung fehl. Es wird später wiederholt versucht die Beiträge zuzustellen, bis sie schließlich gelöscht werden." + +#: mod/admin.php:424 mod/admin.php:1331 +msgid "Normal Account" +msgstr "Normales Konto" + +#: mod/admin.php:425 mod/admin.php:1332 +msgid "Soapbox Account" +msgstr "Marktschreier-Konto" + +#: mod/admin.php:426 mod/admin.php:1333 +msgid "Community/Celebrity Account" +msgstr "Forum/Promi-Konto" + +#: mod/admin.php:427 mod/admin.php:1334 +msgid "Automatic Friend Account" +msgstr "Automatisches Freundekonto" + +#: mod/admin.php:428 +msgid "Blog Account" +msgstr "Blog-Konto" + +#: mod/admin.php:429 +msgid "Private Forum" +msgstr "Privates Forum" + +#: mod/admin.php:455 +msgid "Message queues" +msgstr "Nachrichten-Warteschlangen" + +#: mod/admin.php:461 +msgid "Summary" +msgstr "Zusammenfassung" + +#: mod/admin.php:464 +msgid "Registered users" +msgstr "Registrierte Nutzer" + +#: mod/admin.php:466 +msgid "Pending registrations" +msgstr "Anstehende Anmeldungen" + +#: mod/admin.php:467 +msgid "Version" +msgstr "Version" + +#: mod/admin.php:472 +msgid "Active plugins" +msgstr "Aktive Plugins" + +#: mod/admin.php:495 +msgid "Can not parse base url. Must have at least ://" +msgstr "Die Basis-URL konnte nicht analysiert werden. Sie muss mindestens aus :// bestehen" + +#: mod/admin.php:798 +msgid "RINO2 needs mcrypt php extension to work." +msgstr "RINO2 benötigt die PHP Extension mcrypt." + +#: mod/admin.php:806 +msgid "Site settings updated." +msgstr "Seiteneinstellungen aktualisiert." + +#: mod/admin.php:834 mod/settings.php:931 +msgid "No special theme for mobile devices" +msgstr "Kein spezielles Theme für mobile Geräte verwenden." + +#: mod/admin.php:853 +msgid "No community page" +msgstr "Keine Gemeinschaftsseite" + +#: mod/admin.php:854 +msgid "Public postings from users of this site" +msgstr "Öffentliche Beiträge von Nutzer_innen dieser Seite" + +#: mod/admin.php:855 +msgid "Global community page" +msgstr "Globale Gemeinschaftsseite" + +#: mod/admin.php:860 mod/contacts.php:530 +msgid "Never" +msgstr "Niemals" + +#: mod/admin.php:861 +msgid "At post arrival" +msgstr "Beim Empfang von Nachrichten" + +#: mod/admin.php:869 mod/contacts.php:557 +msgid "Disabled" +msgstr "Deaktiviert" + +#: mod/admin.php:871 +msgid "Users, Global Contacts" +msgstr "Nutzer, globale Kontakte" + +#: mod/admin.php:872 +msgid "Users, Global Contacts/fallback" +msgstr "Nutzer, globale Kontakte / Fallback" + +#: mod/admin.php:876 +msgid "One month" +msgstr "ein Monat" + +#: mod/admin.php:877 +msgid "Three months" +msgstr "drei Monate" + +#: mod/admin.php:878 +msgid "Half a year" +msgstr "ein halbes Jahr" + +#: mod/admin.php:879 +msgid "One year" +msgstr "ein Jahr" + +#: mod/admin.php:884 +msgid "Multi user instance" +msgstr "Mehrbenutzer Instanz" + +#: mod/admin.php:907 +msgid "Closed" +msgstr "Geschlossen" + +#: mod/admin.php:908 +msgid "Requires approval" +msgstr "Bedarf der Zustimmung" + +#: mod/admin.php:909 +msgid "Open" +msgstr "Offen" + +#: mod/admin.php:913 +msgid "No SSL policy, links will track page SSL state" +msgstr "Keine SSL Richtlinie, Links werden das verwendete Protokoll beibehalten" + +#: mod/admin.php:914 +msgid "Force all links to use SSL" +msgstr "SSL für alle Links erzwingen" + +#: mod/admin.php:915 +msgid "Self-signed certificate, use SSL for local links only (discouraged)" +msgstr "Selbst-unterzeichnetes Zertifikat, SSL nur für lokale Links verwenden (nicht empfohlen)" + +#: mod/admin.php:927 mod/admin.php:1561 mod/admin.php:1809 mod/admin.php:1883 +#: mod/admin.php:2033 mod/settings.php:675 mod/settings.php:785 +#: mod/settings.php:832 mod/settings.php:901 mod/settings.php:988 +#: mod/settings.php:1254 +msgid "Save Settings" +msgstr "Einstellungen speichern" + +#: mod/admin.php:929 +msgid "File upload" +msgstr "Datei hochladen" + +#: mod/admin.php:930 +msgid "Policies" +msgstr "Regeln" + +#: mod/admin.php:932 +msgid "Auto Discovered Contact Directory" +msgstr "Automatisch ein Kontaktverzeichnis erstellen" + +#: mod/admin.php:933 +msgid "Performance" +msgstr "Performance" + +#: mod/admin.php:934 +msgid "Worker" +msgstr "Worker" + +#: mod/admin.php:935 +msgid "" +"Relocate - WARNING: advanced function. Could make this server unreachable." +msgstr "Umsiedeln - WARNUNG: Könnte diesen Server unerreichbar machen." + +#: mod/admin.php:938 +msgid "Site name" +msgstr "Seitenname" + +#: mod/admin.php:939 +msgid "Host name" +msgstr "Host Name" + +#: mod/admin.php:940 +msgid "Sender Email" +msgstr "Absender für Emails" + +#: mod/admin.php:940 +msgid "" +"The email address your server shall use to send notification emails from." +msgstr "Die E-Mail Adresse die dein Server zum Versenden von Benachrichtigungen verwenden soll." + +#: mod/admin.php:941 +msgid "Banner/Logo" +msgstr "Banner/Logo" + +#: mod/admin.php:942 +msgid "Shortcut icon" +msgstr "Shortcut Icon" + +#: mod/admin.php:942 +msgid "Link to an icon that will be used for browsers." +msgstr "Link zu einem Icon, das Browser verwenden werden." + +#: mod/admin.php:943 +msgid "Touch icon" +msgstr "Touch Icon" + +#: mod/admin.php:943 +msgid "Link to an icon that will be used for tablets and mobiles." +msgstr "Link zu einem Icon das Tablets und Handies verwenden sollen." + +#: mod/admin.php:944 +msgid "Additional Info" +msgstr "Zusätzliche Informationen" + +#: mod/admin.php:944 +#, php-format +msgid "" +"For public servers: you can add additional information here that will be " +"listed at %s/siteinfo." +msgstr "Für öffentliche Server kannst Du hier zusätzliche Informationen angeben, die dann auf %s/siteinfo angezeigt werden." + +#: mod/admin.php:945 +msgid "System language" +msgstr "Systemsprache" + +#: mod/admin.php:946 +msgid "System theme" +msgstr "Systemweites Theme" + +#: mod/admin.php:946 +msgid "" +"Default system theme - may be over-ridden by user profiles - change theme settings" +msgstr "Vorgabe für das System-Theme - kann von Benutzerprofilen überschrieben werden - Theme-Einstellungen ändern" + +#: mod/admin.php:947 +msgid "Mobile system theme" +msgstr "Systemweites mobiles Theme" + +#: mod/admin.php:947 +msgid "Theme for mobile devices" +msgstr "Thema für mobile Geräte" + +#: mod/admin.php:948 +msgid "SSL link policy" +msgstr "Regeln für SSL Links" + +#: mod/admin.php:948 +msgid "Determines whether generated links should be forced to use SSL" +msgstr "Bestimmt, ob generierte Links SSL verwenden müssen" + +#: mod/admin.php:949 +msgid "Force SSL" +msgstr "Erzwinge SSL" + +#: mod/admin.php:949 +msgid "" +"Force all Non-SSL requests to SSL - Attention: on some systems it could lead" +" to endless loops." +msgstr "Erzinge alle Nicht-SSL Anfragen auf SSL - Achtung: auf manchen Systemen verursacht dies eine Endlosschleife." + +#: mod/admin.php:950 +msgid "Old style 'Share'" +msgstr "Altes \"Teilen\" Element" + +#: mod/admin.php:950 +msgid "Deactivates the bbcode element 'share' for repeating items." +msgstr "Deaktiviert das BBCode Element \"share\" beim Wiederholen von Beiträgen." + +#: mod/admin.php:951 +msgid "Hide help entry from navigation menu" +msgstr "Verberge den Menüeintrag für die Hilfe im Navigationsmenü" + +#: mod/admin.php:951 +msgid "" +"Hides the menu entry for the Help pages from the navigation menu. You can " +"still access it calling /help directly." +msgstr "Verbirgt den Menüeintrag für die Hilfe-Seiten im Navigationsmenü. Die Seiten können weiterhin über /help aufgerufen werden." + +#: mod/admin.php:952 +msgid "Single user instance" +msgstr "Ein-Nutzer Instanz" + +#: mod/admin.php:952 +msgid "Make this instance multi-user or single-user for the named user" +msgstr "Regelt ob es sich bei dieser Instanz um eine ein Personen Installation oder eine Installation mit mehr als einem Nutzer handelt." + +#: mod/admin.php:953 +msgid "Maximum image size" +msgstr "Maximale Bildgröße" + +#: mod/admin.php:953 +msgid "" +"Maximum size in bytes of uploaded images. Default is 0, which means no " +"limits." +msgstr "Maximale Uploadgröße von Bildern in Bytes. Standard ist 0, d.h. ohne Limit." + +#: mod/admin.php:954 +msgid "Maximum image length" +msgstr "Maximale Bildlänge" + +#: mod/admin.php:954 +msgid "" +"Maximum length in pixels of the longest side of uploaded images. Default is " +"-1, which means no limits." +msgstr "Maximale Länge in Pixeln der längsten Seite eines hoch geladenen Bildes. Grundeinstellung ist -1 was keine Einschränkung bedeutet." + +#: mod/admin.php:955 +msgid "JPEG image quality" +msgstr "Qualität des JPEG Bildes" + +#: mod/admin.php:955 +msgid "" +"Uploaded JPEGS will be saved at this quality setting [0-100]. Default is " +"100, which is full quality." +msgstr "Hoch geladene JPEG Bilder werden mit dieser Qualität [0-100] gespeichert. Grundeinstellung ist 100, kein Qualitätsverlust." + +#: mod/admin.php:957 +msgid "Register policy" +msgstr "Registrierungsmethode" + +#: mod/admin.php:958 +msgid "Maximum Daily Registrations" +msgstr "Maximum täglicher Registrierungen" + +#: mod/admin.php:958 +msgid "" +"If registration is permitted above, this sets the maximum number of new user" +" registrations to accept per day. If register is set to closed, this " +"setting has no effect." +msgstr "Wenn die Registrierung weiter oben erlaubt ist, regelt dies die maximale Anzahl von Neuanmeldungen pro Tag. Wenn die Registrierung geschlossen ist, hat diese Einstellung keinen Effekt." + +#: mod/admin.php:959 +msgid "Register text" +msgstr "Registrierungstext" + +#: mod/admin.php:959 +msgid "Will be displayed prominently on the registration page." +msgstr "Wird gut sichtbar auf der Registrierungsseite angezeigt." + +#: mod/admin.php:960 +msgid "Accounts abandoned after x days" +msgstr "Nutzerkonten gelten nach x Tagen als unbenutzt" + +#: mod/admin.php:960 +msgid "" +"Will not waste system resources polling external sites for abandonded " +"accounts. Enter 0 for no time limit." +msgstr "Verschwende keine System-Ressourcen auf das Pollen externer Seiten, wenn Konten nicht mehr benutzt werden. 0 eingeben für kein Limit." + +#: mod/admin.php:961 +msgid "Allowed friend domains" +msgstr "Erlaubte Domains für Kontakte" + +#: mod/admin.php:961 +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 Kontakte erlaubt sind, durch Kommas getrennt. Platzhalter werden akzeptiert. Leer lassen, um alle Domains zu erlauben." + +#: mod/admin.php:962 +msgid "Allowed email domains" +msgstr "Erlaubte Domains für E-Mails" + +#: mod/admin.php:962 +msgid "" +"Comma separated list of domains which are allowed in email addresses for " +"registrations to this site. Wildcards are accepted. Empty to allow any " +"domains" +msgstr "Liste der Domains, die für E-Mail-Adressen bei der Registrierung erlaubt sind, durch Kommas getrennt. Platzhalter werden akzeptiert. Leer lassen, um alle Domains zu erlauben." + +#: mod/admin.php:963 +msgid "Block public" +msgstr "Öffentlichen Zugriff blockieren" + +#: mod/admin.php:963 +msgid "" +"Check to block public access to all otherwise public personal pages on this " +"site unless you are currently logged in." +msgstr "Klicken, um öffentlichen Zugriff auf sonst öffentliche Profile zu blockieren, wenn man nicht eingeloggt ist." + +#: mod/admin.php:964 +msgid "Force publish" +msgstr "Erzwinge Veröffentlichung" + +#: mod/admin.php:964 +msgid "" +"Check to force all profiles on this site to be listed in the site directory." +msgstr "Klicken, um Anzeige aller Profile dieses Servers im Verzeichnis zu erzwingen." + +#: mod/admin.php:965 +msgid "Global directory URL" +msgstr "URL des weltweiten Verzeichnisses" + +#: mod/admin.php:965 +msgid "" +"URL to the global directory. If this is not set, the global directory is " +"completely unavailable to the application." +msgstr "URL des weltweiten Verzeichnisses. Wenn diese nicht gesetzt ist, ist das Verzeichnis für die Applikation nicht erreichbar." + +#: mod/admin.php:966 +msgid "Allow threaded items" +msgstr "Erlaube Threads in Diskussionen" + +#: mod/admin.php:966 +msgid "Allow infinite level threading for items on this site." +msgstr "Erlaube ein unendliches Level für Threads auf dieser Seite." + +#: mod/admin.php:967 +msgid "Private posts by default for new users" +msgstr "Private Beiträge als Standard für neue Nutzer" + +#: mod/admin.php:967 +msgid "" +"Set default post permissions for all new members to the default privacy " +"group rather than public." +msgstr "Die Standard-Zugriffsrechte für neue Nutzer werden so gesetzt, dass als Voreinstellung in die private Gruppe gepostet wird anstelle von öffentlichen Beiträgen." + +#: mod/admin.php:968 +msgid "Don't include post content in email notifications" +msgstr "Inhalte von Beiträgen nicht in E-Mail-Benachrichtigungen versenden" + +#: mod/admin.php:968 +msgid "" +"Don't include the content of a post/comment/private message/etc. in the " +"email notifications that are sent out from this site, as a privacy measure." +msgstr "Inhalte von Beiträgen/Kommentaren/privaten Nachrichten/usw., zum Datenschutz nicht in E-Mail-Benachrichtigungen einbinden." + +#: mod/admin.php:969 +msgid "Disallow public access to addons listed in the apps menu." +msgstr "Öffentlichen Zugriff auf Addons im Apps Menü verbieten." + +#: mod/admin.php:969 +msgid "" +"Checking this box will restrict addons listed in the apps menu to members " +"only." +msgstr "Wenn ausgewählt werden die im Apps Menü aufgeführten Addons nur angemeldeten Nutzern der Seite zur Verfügung gestellt." + +#: mod/admin.php:970 +msgid "Don't embed private images in posts" +msgstr "Private Bilder nicht in Beiträgen einbetten." + +#: mod/admin.php:970 +msgid "" +"Don't replace locally-hosted private photos in posts with an embedded copy " +"of the image. This means that contacts who receive posts containing private " +"photos will have to authenticate and load each image, which may take a " +"while." +msgstr "Ersetze lokal gehostete private Fotos in Beiträgen nicht mit einer eingebetteten Kopie des Bildes. Dies bedeutet, dass Kontakte, die Beiträge mit privaten Fotos erhalten sich zunächst auf den jeweiligen Servern authentifizieren müssen bevor die Bilder geladen und angezeigt werden, was eine gewisse Zeit dauert." + +#: mod/admin.php:971 +msgid "Allow Users to set remote_self" +msgstr "Nutzern erlauben das remote_self Flag zu setzen" + +#: mod/admin.php:971 +msgid "" +"With checking this, every user is allowed to mark every contact as a " +"remote_self in the repair contact dialog. Setting this flag on a contact " +"causes mirroring every posting of that contact in the users stream." +msgstr "Ist dies ausgewählt kann jeder Nutzer jeden seiner Kontakte als remote_self (entferntes Konto) im Kontakt reparieren Dialog markieren. Nach dem setzten dieses Flags werden alle Top-Level Beiträge dieser Kontakte automatisch in den Stream dieses Nutzers gepostet." + +#: mod/admin.php:972 +msgid "Block multiple registrations" +msgstr "Unterbinde Mehrfachregistrierung" + +#: mod/admin.php:972 +msgid "Disallow users to register additional accounts for use as pages." +msgstr "Benutzern nicht erlauben, weitere Konten als zusätzliche Profile anzulegen." + +#: mod/admin.php:973 +msgid "OpenID support" +msgstr "OpenID Unterstützung" + +#: mod/admin.php:973 +msgid "OpenID support for registration and logins." +msgstr "OpenID-Unterstützung für Registrierung und Login." + +#: mod/admin.php:974 +msgid "Fullname check" +msgstr "Namen auf Vollständigkeit überprüfen" + +#: mod/admin.php:974 +msgid "" +"Force users to register with a space between firstname and lastname in Full " +"name, as an antispam measure" +msgstr "Leerzeichen zwischen Vor- und Nachname im vollständigen Namen erzwingen, um SPAM zu vermeiden." + +#: mod/admin.php:975 +msgid "UTF-8 Regular expressions" +msgstr "UTF-8 Reguläre Ausdrücke" + +#: mod/admin.php:975 +msgid "Use PHP UTF8 regular expressions" +msgstr "PHP UTF8 Ausdrücke verwenden" + +#: mod/admin.php:976 +msgid "Community Page Style" +msgstr "Art der Gemeinschaftsseite" + +#: mod/admin.php:976 +msgid "" +"Type of community page to show. 'Global community' shows every public " +"posting from an open distributed network that arrived on this server." +msgstr "Welche Art der Gemeinschaftsseite soll verwendet werden? Globale Gemeinschaftsseite zeigt alle öffentlichen Beiträge eines offenen dezentralen Netzwerks an die auf diesem Server eintreffen." + +#: mod/admin.php:977 +msgid "Posts per user on community page" +msgstr "Anzahl der Beiträge pro Benutzer auf der Gemeinschaftsseite" + +#: mod/admin.php:977 +msgid "" +"The maximum number of posts per user on the community page. (Not valid for " +"'Global Community')" +msgstr "Die Anzahl der Beiträge die von jedem Nutzer maximal auf der Gemeinschaftsseite angezeigt werden sollen. Dieser Parameter wird nicht für die Globale Gemeinschaftsseite genutzt." + +#: mod/admin.php:978 +msgid "Enable OStatus support" +msgstr "OStatus Unterstützung aktivieren" + +#: mod/admin.php:978 +msgid "" +"Provide built-in OStatus (StatusNet, GNU Social etc.) compatibility. All " +"communications in OStatus are public, so privacy warnings will be " +"occasionally displayed." +msgstr "Biete die eingebaute OStatus (iStatusNet, GNU Social, etc.) Unterstützung an. Jede Kommunikation in OStatus ist öffentlich, Privatsphäre Warnungen werden nur bei Bedarf angezeigt." + +#: mod/admin.php:979 +msgid "OStatus conversation completion interval" +msgstr "Intervall zum Vervollständigen von OStatus Unterhaltungen" + +#: mod/admin.php:979 +msgid "" +"How often shall the poller check for new entries in OStatus conversations? " +"This can be a very ressource task." +msgstr "Wie oft soll der Poller checken ob es neue Nachrichten in OStatus Unterhaltungen gibt die geladen werden müssen. Je nach Anzahl der OStatus Kontakte könnte dies ein sehr Ressourcen lastiger Job sein." + +#: mod/admin.php:980 +msgid "Only import OStatus threads from our contacts" +msgstr "Nur OStatus Konversationen unserer Kontakte importieren" + +#: mod/admin.php:980 +msgid "" +"Normally we import every content from our OStatus contacts. With this option" +" we only store threads that are started by a contact that is known on our " +"system." +msgstr "Normalerweise werden alle Inhalte von OStatus Kontakten importiert. Mit dieser Option werden nur solche Konversationen gespeichert, die von Kontakten der Nutzer dieses Knotens gestartet wurden." + +#: mod/admin.php:981 +msgid "OStatus support can only be enabled if threading is enabled." +msgstr "OStatus Unterstützung kann nur aktiviert werden wenn \"Threading\" aktiviert ist. " + +#: mod/admin.php:983 +msgid "" +"Diaspora support can't be enabled because Friendica was installed into a sub" +" directory." +msgstr "Diaspora Unterstützung kann nicht aktiviert werden da Friendica in ein Unterverzeichnis installiert ist." + +#: mod/admin.php:984 +msgid "Enable Diaspora support" +msgstr "Diaspora Unterstützung aktivieren" + +#: mod/admin.php:984 +msgid "Provide built-in Diaspora network compatibility." +msgstr "Verwende die eingebaute Diaspora-Verknüpfung." + +#: mod/admin.php:985 +msgid "Only allow Friendica contacts" +msgstr "Nur Friendica-Kontakte erlauben" + +#: mod/admin.php:985 +msgid "" +"All contacts must use Friendica protocols. All other built-in communication " +"protocols disabled." +msgstr "Alle Kontakte müssen das Friendica Protokoll nutzen. Alle anderen Kommunikationsprotokolle werden deaktiviert." + +#: mod/admin.php:986 +msgid "Verify SSL" +msgstr "SSL Überprüfen" + +#: mod/admin.php:986 +msgid "" +"If you wish, you can turn on strict certificate checking. This will mean you" +" cannot connect (at all) to self-signed SSL sites." +msgstr "Wenn gewollt, kann man hier eine strenge Zertifikatkontrolle einstellen. Das bedeutet, dass man zu keinen Seiten mit selbst unterzeichnetem SSL eine Verbindung herstellen kann." + +#: mod/admin.php:987 +msgid "Proxy user" +msgstr "Proxy Nutzer" + +#: mod/admin.php:988 +msgid "Proxy URL" +msgstr "Proxy URL" + +#: mod/admin.php:989 +msgid "Network timeout" +msgstr "Netzwerk Wartezeit" + +#: mod/admin.php:989 +msgid "Value is in seconds. Set to 0 for unlimited (not recommended)." +msgstr "Der Wert ist in Sekunden. Setze 0 für unbegrenzt (nicht empfohlen)." + +#: mod/admin.php:990 +msgid "Delivery interval" +msgstr "Zustellungsintervall" + +#: mod/admin.php:990 +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 an 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." + +#: mod/admin.php:991 +msgid "Poll interval" +msgstr "Abfrageintervall" + +#: mod/admin.php:991 +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 an Sekunden, um die Systemlast zu reduzieren. Bei 0 Sekunden wird das Auslieferungsintervall verwendet." + +#: mod/admin.php:992 +msgid "Maximum Load Average" +msgstr "Maximum Load Average" + +#: mod/admin.php:992 +msgid "" +"Maximum system load before delivery and poll processes are deferred - " +"default 50." +msgstr "Maximale Systemlast bevor Verteil- und Empfangsprozesse verschoben werden - Standard 50" + +#: mod/admin.php:993 +msgid "Maximum Load Average (Frontend)" +msgstr "Maximum Load Average (Frontend)" + +#: mod/admin.php:993 +msgid "Maximum system load before the frontend quits service - default 50." +msgstr "Maximale Systemlast bevor Vordergrundprozesse pausiert werden - Standard 50." + +#: mod/admin.php:994 +msgid "Maximum table size for optimization" +msgstr "Maximale Tabellengröße zur Optimierung" + +#: mod/admin.php:994 +msgid "" +"Maximum table size (in MB) for the automatic optimization - default 100 MB. " +"Enter -1 to disable it." +msgstr "Maximale Tabellengröße (in MB) für die automatische Optimierung - Standard 100 MB. Gib -1 für Deaktivierung ein." + +#: mod/admin.php:995 +msgid "Minimum level of fragmentation" +msgstr "Minimaler Fragmentationsgrad" + +#: mod/admin.php:995 +msgid "" +"Minimum fragmenation level to start the automatic optimization - default " +"value is 30%." +msgstr "Minimales Fragmentationsgrad von Datenbanktabellen um die automatische Optimierung einzuleiten - Standardwert ist 30%" + +#: mod/admin.php:997 +msgid "Periodical check of global contacts" +msgstr "Regelmäßig globale Kontakte überprüfen" + +#: mod/admin.php:997 +msgid "" +"If enabled, the global contacts are checked periodically for missing or " +"outdated data and the vitality of the contacts and servers." +msgstr "Wenn diese Option aktiviert ist, werden die globalen Kontakte regelmäßig auf fehlende oder veraltete Daten sowie auf Erreichbarkeit des Kontakts und des Servers überprüft." + +#: mod/admin.php:998 +msgid "Days between requery" +msgstr "Tage zwischen erneuten Abfragen" + +#: mod/admin.php:998 +msgid "Number of days after which a server is requeried for his contacts." +msgstr "Legt das Abfrageintervall fest, nachdem ein Server erneut nach Kontakten abgefragt werden soll." + +#: mod/admin.php:999 +msgid "Discover contacts from other servers" +msgstr "Neue Kontakte auf anderen Servern entdecken" + +#: mod/admin.php:999 +msgid "" +"Periodically query other servers for contacts. You can choose between " +"'users': the users on the remote system, 'Global Contacts': active contacts " +"that are known on the system. The fallback is meant for Redmatrix servers " +"and older friendica servers, where global contacts weren't available. The " +"fallback increases the server load, so the recommened setting is 'Users, " +"Global Contacts'." +msgstr "Regelmäßig andere Server nach potentiellen Kontakten absuchen. Du kannst zwischen 'Nutzern', den tatsächlichen Nutzern des anderen Systems und 'globalen Kontakten', aktiven Kontakten die auf dem System bekannt sind, wählen. Der Fallback-Mechanismus ist für ältere Friendica und Redmatrix Server gedacht, bei denen globale Kontakte noch nicht verfügbar sind. Durch den Fallbackmodus entsteht auf deinem Server eine wesentlich höhere Last, empfohlen wird der Modus 'Nutzer, globale Kontakte'." + +#: mod/admin.php:1000 +msgid "Timeframe for fetching global contacts" +msgstr "Zeitfenster für globale Kontakte" + +#: mod/admin.php:1000 +msgid "" +"When the discovery is activated, this value defines the timeframe for the " +"activity of the global contacts that are fetched from other servers." +msgstr "Wenn die Entdeckung neuer Kontakte aktiv ist, definiert dieses Zeitfenster den Zeitraum in dem globale Kontakte als aktiv gelten und von anderen Servern importiert werden." + +#: mod/admin.php:1001 +msgid "Search the local directory" +msgstr "Lokales Verzeichnis durchsuchen" + +#: mod/admin.php:1001 +msgid "" +"Search the local directory instead of the global directory. When searching " +"locally, every search will be executed on the global directory in the " +"background. This improves the search results when the search is repeated." +msgstr "Suche im lokalen Verzeichnis anstelle des globalen Verzeichnisses durchführen. Jede Suche wird im Hintergrund auch im globalen Verzeichnis durchgeführt umd die Suchresultate zu verbessern, wenn diese Suche wiederholt wird." + +#: mod/admin.php:1003 +msgid "Publish server information" +msgstr "Server Informationen veröffentlichen" + +#: mod/admin.php:1003 +msgid "" +"If enabled, general server and usage data will be published. The data " +"contains the name and version of the server, number of users with public " +"profiles, number of posts and the activated protocols and connectors. See the-federation.info for details." +msgstr "Wenn aktiviert, werden allgemeine Informationen über den Server und Nutzungsdaten veröffentlicht. Die Daten beinhalten den Namen sowie die Version des Servers, die Anzahl der Nutzer_innen mit öffentlichen Profilen, die Anzahl der Beiträge sowie aktivierte Protokolle und Connectoren. Für Details bitte the-federation.info aufrufen." + +#: mod/admin.php:1005 +msgid "Use MySQL full text engine" +msgstr "Nutze MySQL full text engine" + +#: mod/admin.php:1005 +msgid "" +"Activates the full text engine. Speeds up search - but can only search for " +"four and more characters." +msgstr "Aktiviert die 'full text engine'. Beschleunigt die Suche - aber es kann nur nach vier oder mehr Zeichen gesucht werden." + +#: mod/admin.php:1006 +msgid "Suppress Language" +msgstr "Sprachinformation unterdrücken" + +#: mod/admin.php:1006 +msgid "Suppress language information in meta information about a posting." +msgstr "Verhindert das Erzeugen der Meta-Information zur Spracherkennung eines Beitrags." + +#: mod/admin.php:1007 +msgid "Suppress Tags" +msgstr "Tags Unterdrücken" + +#: mod/admin.php:1007 +msgid "Suppress showing a list of hashtags at the end of the posting." +msgstr "Unterdrückt die Anzeige von Tags am Ende eines Beitrags." + +#: mod/admin.php:1008 +msgid "Path to item cache" +msgstr "Pfad zum Eintrag Cache" + +#: mod/admin.php:1008 +msgid "The item caches buffers generated bbcode and external images." +msgstr "Im Item-Cache werden externe Bilder und geparster BBCode zwischen gespeichert." + +#: mod/admin.php:1009 +msgid "Cache duration in seconds" +msgstr "Cache-Dauer in Sekunden" + +#: mod/admin.php:1009 +msgid "" +"How long should the cache files be hold? Default value is 86400 seconds (One" +" day). To disable the item cache, set the value to -1." +msgstr "Wie lange sollen die gecachedten Dateien vorgehalten werden? Grundeinstellung sind 86400 Sekunden (ein Tag). Um den Item Cache zu deaktivieren, setze diesen Wert auf -1." + +#: mod/admin.php:1010 +msgid "Maximum numbers of comments per post" +msgstr "Maximale Anzahl von Kommentaren pro Beitrag" + +#: mod/admin.php:1010 +msgid "How much comments should be shown for each post? Default value is 100." +msgstr "Wie viele Kommentare sollen pro Beitrag angezeigt werden? Standardwert sind 100." + +#: mod/admin.php:1011 +msgid "Path for lock file" +msgstr "Pfad für die Sperrdatei" + +#: mod/admin.php:1011 +msgid "" +"The lock file is used to avoid multiple pollers at one time. Only define a " +"folder here." +msgstr "Die lock-Datei wird benutzt, damit nicht mehrere poller auf einmal laufen. Definiere hier einen Dateiverzeichnis." + +#: mod/admin.php:1012 +msgid "Temp path" +msgstr "Temp Pfad" + +#: mod/admin.php:1012 +msgid "" +"If you have a restricted system where the webserver can't access the system " +"temp path, enter another path here." +msgstr "Solltest du ein eingeschränktes System haben, auf dem der Webserver nicht auf das temp Verzeichnis des Systems zugreifen kann, setze hier einen anderen Pfad." + +#: mod/admin.php:1013 +msgid "Base path to installation" +msgstr "Basis-Pfad zur Installation" + +#: mod/admin.php:1013 +msgid "" +"If the system cannot detect the correct path to your installation, enter the" +" correct path here. This setting should only be set if you are using a " +"restricted system and symbolic links to your webroot." +msgstr "Falls das System nicht den korrekten Pfad zu deiner Installation gefunden hat, gib den richtigen Pfad bitte hier ein. Du solltest hier den Pfad nur auf einem eingeschränkten System angeben müssen, bei dem du mit symbolischen Links auf dein Webverzeichnis verweist." + +#: mod/admin.php:1014 +msgid "Disable picture proxy" +msgstr "Bilder Proxy deaktivieren" + +#: mod/admin.php:1014 +msgid "" +"The picture proxy increases performance and privacy. It shouldn't be used on" +" systems with very low bandwith." +msgstr "Der Proxy für Bilder verbessert die Leistung und Privatsphäre der Nutzer. Er sollte nicht auf Systemen verwendet werden, die nur über begrenzte Bandbreite verfügen." + +#: mod/admin.php:1015 +msgid "Enable old style pager" +msgstr "Den Old-Style Pager aktiviren" + +#: mod/admin.php:1015 +msgid "" +"The old style pager has page numbers but slows down massively the page " +"speed." +msgstr "Der Old-Style Pager zeigt Seitennummern an, verlangsamt aber auch drastisch das Laden einer Seite." + +#: mod/admin.php:1016 +msgid "Only search in tags" +msgstr "Nur in Tags suchen" + +#: mod/admin.php:1016 +msgid "On large systems the text search can slow down the system extremely." +msgstr "Auf großen Knoten kann die Volltext-Suche das System ausbremsen." + +#: mod/admin.php:1018 +msgid "New base url" +msgstr "Neue Basis-URL" + +#: mod/admin.php:1018 +msgid "" +"Change base url for this server. Sends relocate message to all DFRN contacts" +" of all users." +msgstr "Ändert die Basis-URL dieses Servers und sendet eine Umzugsmitteilung an alle DFRN Kontakte deiner Nutzer_innen." + +#: mod/admin.php:1020 +msgid "RINO Encryption" +msgstr "RINO Verschlüsselung" + +#: mod/admin.php:1020 +msgid "Encryption layer between nodes." +msgstr "Verschlüsselung zwischen Friendica Instanzen" + +#: mod/admin.php:1021 +msgid "Embedly API key" +msgstr "Embedly API Schlüssel" + +#: mod/admin.php:1021 +msgid "" +"Embedly is used to fetch additional data for " +"web pages. This is an optional parameter." +msgstr "Embedly wird verwendet um zusätzliche Informationen von Webseiten zu laden. Dies ist ein optionaler Parameter." + +#: mod/admin.php:1023 +msgid "Enable 'worker' background processing" +msgstr "Aktiviere die 'Worker' Hintergrundprozesse" + +#: mod/admin.php:1023 +msgid "" +"The worker background processing limits the number of parallel background " +"jobs to a maximum number and respects the system load." +msgstr "Der 'background worker' Prozess begrenzt die Zahl der Prozesse, die im Hintergrund parallel laufen und beachtet dabei die Systemlast." + +#: mod/admin.php:1024 +msgid "Maximum number of parallel workers" +msgstr "Maximale Anzahl parallel laufender Worker" + +#: mod/admin.php:1024 +msgid "" +"On shared hosters set this to 2. On larger systems, values of 10 are great. " +"Default value is 4." +msgstr "Wenn dein Knoten bei einem Shared Hoster ist, setzte diesen Wert auf 2. Auf größeren Systemen funktioniert ein Wert von 10 recht gut. Standardeinstellung sind 4." + +#: mod/admin.php:1025 +msgid "Don't use 'proc_open' with the worker" +msgstr "'proc_open' nicht mit den Workern verwenden" + +#: mod/admin.php:1025 +msgid "" +"Enable this if your system doesn't allow the use of 'proc_open'. This can " +"happen on shared hosters. If this is enabled you should increase the " +"frequency of poller calls in your crontab." +msgstr "Aktiviere diese Option, wenn dein System die Verwendung von 'proc_open' verhindert. Dies könnte auf Shared Hostern der Fall sein. Wenn du diese Option aktivierst, solltest du die Frequenz der poller Aufrufe in deiner crontab erhöhen." + +#: mod/admin.php:1026 +msgid "Enable fastlane" +msgstr "Aktiviere Fastlane" + +#: mod/admin.php:1026 +msgid "" +"When enabed, the fastlane mechanism starts an additional worker if processes" +" with higher priority are blocked by processes of lower priority." +msgstr "Wenn aktiviert, wird der Fastlane-Mechanismus einen weiteren Worker-Prozeß starten wenn Prozesse mit höherer Priorität von Prozessen mit niedrigerer Priorität blockiert werden." + +#: mod/admin.php:1055 +msgid "Update has been marked successful" +msgstr "Update wurde als erfolgreich markiert" + +#: mod/admin.php:1063 +#, php-format +msgid "Database structure update %s was successfully applied." +msgstr "Das Update %s der Struktur der Datenbank wurde erfolgreich angewandt." + +#: mod/admin.php:1066 +#, php-format +msgid "Executing of database structure update %s failed with error: %s" +msgstr "Das Update %s der Struktur der Datenbank schlug mit folgender Fehlermeldung fehl: %s" + +#: mod/admin.php:1078 +#, php-format +msgid "Executing %s failed with error: %s" +msgstr "Die Ausführung von %s schlug fehl. Fehlermeldung: %s" + +#: mod/admin.php:1081 +#, php-format +msgid "Update %s was successfully applied." +msgstr "Update %s war erfolgreich." + +#: mod/admin.php:1085 +#, php-format +msgid "Update %s did not return a status. Unknown if it succeeded." +msgstr "Update %s hat keinen Status zurückgegeben. Unbekannter Status." + +#: mod/admin.php:1087 +#, php-format +msgid "There was no additional update function %s that needed to be called." +msgstr "Es gab keine weitere Update-Funktion, die von %s ausgeführt werden musste." + +#: mod/admin.php:1106 +msgid "No failed updates." +msgstr "Keine fehlgeschlagenen Updates." + +#: mod/admin.php:1107 +msgid "Check database structure" +msgstr "Datenbank Struktur überprüfen" + +#: mod/admin.php:1112 +msgid "Failed Updates" +msgstr "Fehlgeschlagene Updates" + +#: mod/admin.php:1113 +msgid "" +"This does not include updates prior to 1139, which did not return a status." +msgstr "Ohne Updates vor 1139, da diese keinen Status zurückgegeben haben." + +#: mod/admin.php:1114 +msgid "Mark success (if update was manually applied)" +msgstr "Als erfolgreich markieren (falls das Update manuell installiert wurde)" + +#: mod/admin.php:1115 +msgid "Attempt to execute this update step automatically" +msgstr "Versuchen, diesen Schritt automatisch auszuführen" + +#: mod/admin.php:1147 +#, php-format +msgid "" +"\n" +"\t\t\tDear %1$s,\n" +"\t\t\t\tthe administrator of %2$s has set up an account for you." +msgstr "\nHallo %1$s,\n\nauf %2$s wurde ein Account für Dich angelegt." + +#: mod/admin.php:1150 +#, php-format +msgid "" +"\n" +"\t\t\tThe login details are as follows:\n" +"\n" +"\t\t\tSite Location:\t%1$s\n" +"\t\t\tLogin Name:\t\t%2$s\n" +"\t\t\tPassword:\t\t%3$s\n" +"\n" +"\t\t\tYou may change your password from your account \"Settings\" page after logging\n" +"\t\t\tin.\n" +"\n" +"\t\t\tPlease take a few moments to review the other account settings on that page.\n" +"\n" +"\t\t\tYou may also wish to add some basic information to your default profile\n" +"\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n" +"\n" +"\t\t\tWe recommend setting your full name, adding a profile photo,\n" +"\t\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n" +"\t\t\tperhaps what country you live in; if you do not wish to be more specific\n" +"\t\t\tthan that.\n" +"\n" +"\t\t\tWe fully respect your right to privacy, and none of these items are necessary.\n" +"\t\t\tIf you are new and do not know anybody here, they may help\n" +"\t\t\tyou to make some new and interesting friends.\n" +"\n" +"\t\t\tThank you and welcome to %4$s." +msgstr "\nNachfolgend die Anmelde-Details:\n\tAdresse der Seite:\t%1$s\n\tBenutzername:\t%2$s\n\tPasswort:\t%3$s\n\nDu kannst Dein Passwort unter \"Einstellungen\" ändern, sobald Du Dich\nangemeldet hast.\n\nBitte nimm Dir ein paar Minuten um die anderen Einstellungen auf dieser\nSeite zu kontrollieren.\n\nEventuell magst Du ja auch einige Informationen über Dich in Deinem\nProfil veröffentlichen, damit andere Leute Dich einfacher finden können.\nBearbeite hierfür einfach Dein Standard-Profil (über die Profil-Seite).\n\nWir empfehlen Dir, Deinen kompletten Namen anzugeben und ein zu Dir\npassendes Profilbild zu wählen, damit Dich alte Bekannte wieder finden.\nAußerdem ist es nützlich, wenn Du auf Deinem Profil Schlüsselwörter\nangibst. Das erleichtert es, Leute zu finden, die Deine Interessen teilen.\n\nWir respektieren Deine Privatsphäre - keine dieser Angaben ist nötig.\nWenn Du neu im Netzwerk bist und noch niemanden kennst, dann können sie\nallerdings dabei helfen, neue und interessante Kontakte zu knüpfen.\n\nNun viel Spaß, gute Begegnungen und willkommen auf %4$s." + +#: mod/admin.php:1194 +#, php-format +msgid "%s user blocked/unblocked" +msgid_plural "%s users blocked/unblocked" +msgstr[0] "%s Benutzer geblockt/freigegeben" +msgstr[1] "%s Benutzer geblockt/freigegeben" + +#: mod/admin.php:1201 +#, php-format +msgid "%s user deleted" +msgid_plural "%s users deleted" +msgstr[0] "%s Nutzer gelöscht" +msgstr[1] "%s Nutzer gelöscht" + +#: mod/admin.php:1248 +#, php-format +msgid "User '%s' deleted" +msgstr "Nutzer '%s' gelöscht" + +#: mod/admin.php:1256 +#, php-format +msgid "User '%s' unblocked" +msgstr "Nutzer '%s' entsperrt" + +#: mod/admin.php:1256 +#, php-format +msgid "User '%s' blocked" +msgstr "Nutzer '%s' gesperrt" + +#: mod/admin.php:1375 mod/admin.php:1400 +msgid "Register date" +msgstr "Anmeldedatum" + +#: mod/admin.php:1375 mod/admin.php:1400 +msgid "Last login" +msgstr "Letzte Anmeldung" + +#: mod/admin.php:1375 mod/admin.php:1400 +msgid "Last item" +msgstr "Letzter Beitrag" + +#: mod/admin.php:1375 mod/settings.php:43 +msgid "Account" +msgstr "Nutzerkonto" + +#: mod/admin.php:1384 +msgid "Add User" +msgstr "Nutzer hinzufügen" + +#: mod/admin.php:1385 +msgid "select all" +msgstr "Alle auswählen" + +#: mod/admin.php:1386 +msgid "User registrations waiting for confirm" +msgstr "Neuanmeldungen, die auf Deine Bestätigung warten" + +#: mod/admin.php:1387 +msgid "User waiting for permanent deletion" +msgstr "Nutzer wartet auf permanente Löschung" + +#: mod/admin.php:1388 +msgid "Request date" +msgstr "Anfragedatum" + +#: mod/admin.php:1389 +msgid "No registrations." +msgstr "Keine Neuanmeldungen." + +#: mod/admin.php:1391 +msgid "Deny" +msgstr "Verwehren" + +#: mod/admin.php:1393 mod/contacts.php:605 mod/contacts.php:805 +#: mod/contacts.php:999 +msgid "Block" +msgstr "Sperren" + +#: mod/admin.php:1394 mod/contacts.php:605 mod/contacts.php:805 +#: mod/contacts.php:999 +msgid "Unblock" +msgstr "Entsperren" + +#: mod/admin.php:1395 +msgid "Site admin" +msgstr "Seitenadministrator" + +#: mod/admin.php:1396 +msgid "Account expired" +msgstr "Account ist abgelaufen" + +#: mod/admin.php:1399 +msgid "New User" +msgstr "Neuer Nutzer" + +#: mod/admin.php:1400 +msgid "Deleted since" +msgstr "Gelöscht seit" + +#: mod/admin.php:1405 +msgid "" +"Selected users will be deleted!\\n\\nEverything these users had posted on " +"this site will be permanently deleted!\\n\\nAre you sure?" +msgstr "Die markierten Nutzer werden gelöscht!\\n\\nAlle Beiträge, die diese Nutzer auf dieser Seite veröffentlicht haben, werden permanent gelöscht!\\n\\nBist Du sicher?" + +#: mod/admin.php:1406 +msgid "" +"The user {0} will be deleted!\\n\\nEverything this user has posted on this " +"site will be permanently deleted!\\n\\nAre you sure?" +msgstr "Der Nutzer {0} wird gelöscht!\\n\\nAlles was dieser Nutzer auf dieser Seite veröffentlicht hat, wird permanent gelöscht!\\n\\nBist Du sicher?" + +#: mod/admin.php:1416 +msgid "Name of the new user." +msgstr "Name des neuen Nutzers" + +#: mod/admin.php:1417 +msgid "Nickname" +msgstr "Spitzname" + +#: mod/admin.php:1417 +msgid "Nickname of the new user." +msgstr "Spitznamen für den neuen Nutzer" + +#: mod/admin.php:1418 +msgid "Email address of the new user." +msgstr "Email Adresse des neuen Nutzers" + +#: mod/admin.php:1461 +#, php-format +msgid "Plugin %s disabled." +msgstr "Plugin %s deaktiviert." + +#: mod/admin.php:1465 +#, php-format +msgid "Plugin %s enabled." +msgstr "Plugin %s aktiviert." + +#: mod/admin.php:1476 mod/admin.php:1712 +msgid "Disable" +msgstr "Ausschalten" + +#: mod/admin.php:1478 mod/admin.php:1714 +msgid "Enable" +msgstr "Einschalten" + +#: mod/admin.php:1501 mod/admin.php:1759 +msgid "Toggle" +msgstr "Umschalten" + +#: mod/admin.php:1509 mod/admin.php:1768 +msgid "Author: " +msgstr "Autor:" + +#: mod/admin.php:1510 mod/admin.php:1769 +msgid "Maintainer: " +msgstr "Betreuer:" + +#: mod/admin.php:1562 +msgid "Reload active plugins" +msgstr "Aktive Plugins neu laden" + +#: mod/admin.php:1567 +#, php-format +msgid "" +"There are currently no plugins available on your node. You can find the " +"official plugin repository at %1$s and might find other interesting plugins " +"in the open plugin registry at %2$s" +msgstr "Es sind derzeit keine Plugins auf diesem Knoten verfügbar. Du findest das offizielle Plugin-Repository unter %1$s und weitere eventuell interessante Plugins im offenen Plugins-Verzeichnis auf %2$s." + +#: mod/admin.php:1672 +msgid "No themes found." +msgstr "Keine Themen gefunden." + +#: mod/admin.php:1750 +msgid "Screenshot" +msgstr "Bildschirmfoto" + +#: mod/admin.php:1810 +msgid "Reload active themes" +msgstr "Aktives Theme neu laden" + +#: mod/admin.php:1815 +#, php-format +msgid "No themes found on the system. They should be paced in %1$s" +msgstr "Es wurden keine Themes auf dem System gefunden. Diese sollten in %1$s patziert werden." + +#: mod/admin.php:1816 +msgid "[Experimental]" +msgstr "[Experimentell]" + +#: mod/admin.php:1817 +msgid "[Unsupported]" +msgstr "[Nicht unterstützt]" + +#: mod/admin.php:1841 +msgid "Log settings updated." +msgstr "Protokolleinstellungen aktualisiert." + +#: mod/admin.php:1873 +msgid "PHP log currently enabled." +msgstr "PHP Protokollierung ist derzeit aktiviert." + +#: mod/admin.php:1875 +msgid "PHP log currently disabled." +msgstr "PHP Protokollierung ist derzeit nicht aktiviert." + +#: mod/admin.php:1884 +msgid "Clear" +msgstr "löschen" + +#: mod/admin.php:1889 +msgid "Enable Debugging" +msgstr "Protokoll führen" + +#: mod/admin.php:1890 +msgid "Log file" +msgstr "Protokolldatei" + +#: mod/admin.php:1890 +msgid "" +"Must be writable by web server. Relative to your Friendica top-level " +"directory." +msgstr "Webserver muss Schreibrechte besitzen. Abhängig vom Friendica-Installationsverzeichnis." + +#: mod/admin.php:1891 +msgid "Log level" +msgstr "Protokoll-Level" + +#: mod/admin.php:1894 +msgid "PHP logging" +msgstr "PHP Protokollieren" + +#: mod/admin.php:1895 +msgid "" +"To enable logging of PHP errors and warnings you can add the following to " +"the .htconfig.php file of your installation. The filename set in the " +"'error_log' line is relative to the friendica top-level directory and must " +"be writeable by the web server. The option '1' for 'log_errors' and " +"'display_errors' is to enable these options, set to '0' to disable them." +msgstr "Um PHP Warnungen und Fehler zu protokollieren, kannst du die folgenden Zeilen zur .htconfig.php Datei deiner Installation hinzufügen. Den Dateinamen der Log-Datei legst du in der Zeile mit dem 'error_log' fest, Er ist relativ zum Friendica-Stammverzeichnis und muss schreibbar durch den Webserver sein. Eine \"1\" als Option für die Punkte 'log_errors' und 'display_errors' aktiviert die Funktionen zum Protokollieren bzw. Anzeigen der Fehler, eine \"0\" deaktiviert sie." + +#: mod/admin.php:2022 mod/admin.php:2023 mod/settings.php:775 +msgid "Off" +msgstr "Aus" + +#: mod/admin.php:2022 mod/admin.php:2023 mod/settings.php:775 +msgid "On" +msgstr "An" + +#: mod/admin.php:2023 +#, php-format +msgid "Lock feature %s" +msgstr "Feature festlegen: %s" + +#: mod/admin.php:2031 +msgid "Manage Additional Features" +msgstr "Zusätzliche Features Verwalten" + +#: mod/profile.php:179 +msgid "Tips for New Members" +msgstr "Tipps für neue Nutzer" #: mod/contacts.php:128 #, php-format @@ -6508,10 +7306,6 @@ msgstr "Konnte das ausgewählte Profil nicht finden." msgid "Contact updated." msgstr "Kontakt aktualisiert." -#: mod/contacts.php:208 mod/dfrn_request.php:571 -msgid "Failed to update contact record." -msgstr "Aktualisierung der Kontaktdaten fehlgeschlagen." - #: mod/contacts.php:389 msgid "Contact has been blocked" msgstr "Kontakt wurde blockiert" @@ -6536,998 +7330,584 @@ msgstr "Kontakt wurde archiviert" msgid "Contact has been unarchived" msgstr "Kontakt wurde aus dem Archiv geholt" -#: mod/contacts.php:439 mod/contacts.php:794 +#: mod/contacts.php:437 +msgid "Drop contact" +msgstr "Kontakt löschen" + +#: mod/contacts.php:440 mod/contacts.php:801 msgid "Do you really want to delete this contact?" msgstr "Möchtest Du wirklich diesen Kontakt löschen?" -#: mod/contacts.php:456 +#: mod/contacts.php:457 msgid "Contact has been removed." msgstr "Kontakt wurde entfernt." -#: mod/contacts.php:497 +#: mod/contacts.php:498 #, php-format msgid "You are mutual friends with %s" msgstr "Du hast mit %s eine beidseitige Freundschaft" -#: mod/contacts.php:501 +#: mod/contacts.php:502 #, php-format msgid "You are sharing with %s" msgstr "Du teilst mit %s" -#: mod/contacts.php:506 +#: mod/contacts.php:507 #, php-format msgid "%s is sharing with you" msgstr "%s teilt mit Dir" -#: mod/contacts.php:526 +#: mod/contacts.php:527 msgid "Private communications are not available for this contact." msgstr "Private Kommunikation ist für diesen Kontakt nicht verfügbar." -#: mod/contacts.php:533 +#: mod/contacts.php:534 msgid "(Update was successful)" msgstr "(Aktualisierung war erfolgreich)" -#: mod/contacts.php:533 +#: mod/contacts.php:534 msgid "(Update was not successful)" msgstr "(Aktualisierung war nicht erfolgreich)" -#: mod/contacts.php:535 mod/contacts.php:972 +#: mod/contacts.php:536 mod/contacts.php:980 msgid "Suggest friends" msgstr "Kontakte vorschlagen" -#: mod/contacts.php:539 +#: mod/contacts.php:540 #, php-format msgid "Network type: %s" msgstr "Netzwerktyp: %s" -#: mod/contacts.php:552 +#: mod/contacts.php:553 msgid "Communications lost with this contact!" msgstr "Verbindungen mit diesem Kontakt verloren!" -#: mod/contacts.php:555 +#: mod/contacts.php:556 msgid "Fetch further information for feeds" msgstr "Weitere Informationen zu Feeds holen" -#: mod/contacts.php:556 +#: mod/contacts.php:557 msgid "Fetch information" msgstr "Beziehe Information" -#: mod/contacts.php:556 +#: mod/contacts.php:557 msgid "Fetch information and keywords" msgstr "Beziehe Information und Schlüsselworte" -#: mod/contacts.php:576 +#: mod/contacts.php:575 +msgid "Contact" +msgstr "Kontakt: " + +#: mod/contacts.php:578 msgid "Profile Visibility" msgstr "Profil-Sichtbarkeit" -#: mod/contacts.php:577 +#: mod/contacts.php:579 #, php-format msgid "" "Please choose the profile you would like to display to %s when viewing your " "profile securely." msgstr "Bitte wähle eines Deiner Profile das angezeigt werden soll, wenn %s Dein Profil aufruft." -#: mod/contacts.php:578 +#: mod/contacts.php:580 msgid "Contact Information / Notes" msgstr "Kontakt Informationen / Notizen" -#: mod/contacts.php:579 +#: mod/contacts.php:581 msgid "Edit contact notes" msgstr "Notizen zum Kontakt bearbeiten" -#: mod/contacts.php:585 +#: mod/contacts.php:587 msgid "Block/Unblock contact" msgstr "Kontakt blockieren/freischalten" -#: mod/contacts.php:586 +#: mod/contacts.php:588 msgid "Ignore contact" msgstr "Ignoriere den Kontakt" -#: mod/contacts.php:587 +#: mod/contacts.php:589 msgid "Repair URL settings" msgstr "URL Einstellungen reparieren" -#: mod/contacts.php:588 +#: mod/contacts.php:590 msgid "View conversations" msgstr "Unterhaltungen anzeigen" -#: mod/contacts.php:594 +#: mod/contacts.php:596 msgid "Last update:" msgstr "Letzte Aktualisierung: " -#: mod/contacts.php:596 +#: mod/contacts.php:598 msgid "Update public posts" msgstr "Öffentliche Beiträge aktualisieren" -#: mod/contacts.php:598 mod/contacts.php:982 +#: mod/contacts.php:600 mod/contacts.php:990 msgid "Update now" msgstr "Jetzt aktualisieren" -#: mod/contacts.php:604 mod/contacts.php:799 mod/contacts.php:999 +#: mod/contacts.php:606 mod/contacts.php:806 mod/contacts.php:1007 msgid "Unignore" msgstr "Ignorieren aufheben" -#: mod/contacts.php:607 +#: mod/contacts.php:610 msgid "Currently blocked" msgstr "Derzeit geblockt" -#: mod/contacts.php:608 +#: mod/contacts.php:611 msgid "Currently ignored" msgstr "Derzeit ignoriert" -#: mod/contacts.php:609 +#: mod/contacts.php:612 msgid "Currently archived" msgstr "Momentan archiviert" -#: mod/contacts.php:610 +#: mod/contacts.php:613 msgid "" "Replies/likes to your public posts may still be visible" msgstr "Antworten/Likes auf deine öffentlichen Beiträge könnten weiterhin sichtbar sein" -#: mod/contacts.php:611 +#: mod/contacts.php:614 msgid "Notification for new posts" msgstr "Benachrichtigung bei neuen Beiträgen" -#: mod/contacts.php:611 +#: mod/contacts.php:614 msgid "Send a notification of every new post of this contact" msgstr "Sende eine Benachrichtigung, wann immer dieser Kontakt einen neuen Beitrag schreibt." -#: mod/contacts.php:614 +#: mod/contacts.php:617 msgid "Blacklisted keywords" msgstr "Blacklistete Schlüsselworte " -#: mod/contacts.php:614 +#: mod/contacts.php:617 msgid "" "Comma separated list of keywords that should not be converted to hashtags, " "when \"Fetch information and keywords\" is selected" msgstr "Komma-Separierte Liste mit Schlüsselworten, die nicht in Hashtags konvertiert werden, wenn \"Beziehe Information und Schlüsselworte\" aktiviert wurde" -#: mod/contacts.php:629 +#: mod/contacts.php:635 msgid "Actions" msgstr "Aktionen" -#: mod/contacts.php:632 +#: mod/contacts.php:638 msgid "Contact Settings" msgstr "Kontakteinstellungen" -#: mod/contacts.php:677 +#: mod/contacts.php:684 msgid "Suggestions" msgstr "Kontaktvorschläge" -#: mod/contacts.php:680 +#: mod/contacts.php:687 msgid "Suggest potential friends" -msgstr "Freunde vorschlagen" +msgstr "Kontakte vorschlagen" -#: mod/contacts.php:685 mod/group.php:192 -msgid "All Contacts" -msgstr "Alle Kontakte" - -#: mod/contacts.php:688 +#: mod/contacts.php:695 msgid "Show all contacts" msgstr "Alle Kontakte anzeigen" -#: mod/contacts.php:693 +#: mod/contacts.php:700 msgid "Unblocked" msgstr "Ungeblockt" -#: mod/contacts.php:696 +#: mod/contacts.php:703 msgid "Only show unblocked contacts" msgstr "Nur nicht-blockierte Kontakte anzeigen" -#: mod/contacts.php:702 +#: mod/contacts.php:709 msgid "Blocked" msgstr "Geblockt" -#: mod/contacts.php:705 +#: mod/contacts.php:712 msgid "Only show blocked contacts" msgstr "Nur blockierte Kontakte anzeigen" -#: mod/contacts.php:711 +#: mod/contacts.php:718 msgid "Ignored" msgstr "Ignoriert" -#: mod/contacts.php:714 +#: mod/contacts.php:721 msgid "Only show ignored contacts" msgstr "Nur ignorierte Kontakte anzeigen" -#: mod/contacts.php:720 +#: mod/contacts.php:727 msgid "Archived" msgstr "Archiviert" -#: mod/contacts.php:723 +#: mod/contacts.php:730 msgid "Only show archived contacts" msgstr "Nur archivierte Kontakte anzeigen" -#: mod/contacts.php:729 +#: mod/contacts.php:736 msgid "Hidden" msgstr "Verborgen" -#: mod/contacts.php:732 +#: mod/contacts.php:739 msgid "Only show hidden contacts" msgstr "Nur verborgene Kontakte anzeigen" -#: mod/contacts.php:789 +#: mod/contacts.php:796 msgid "Search your contacts" msgstr "Suche in deinen Kontakten" -#: mod/contacts.php:790 -msgid "Finding: " -msgstr "Funde: " - -#: mod/contacts.php:797 mod/settings.php:158 mod/settings.php:689 +#: mod/contacts.php:804 mod/settings.php:158 mod/settings.php:701 msgid "Update" msgstr "Aktualisierungen" -#: mod/contacts.php:800 mod/contacts.php:1007 +#: mod/contacts.php:807 mod/contacts.php:1015 msgid "Archive" msgstr "Archivieren" -#: mod/contacts.php:800 mod/contacts.php:1007 +#: mod/contacts.php:807 mod/contacts.php:1015 msgid "Unarchive" msgstr "Aus Archiv zurückholen" -#: mod/contacts.php:848 +#: mod/contacts.php:810 +msgid "Batch Actions" +msgstr "Stapelverarbeitung" + +#: mod/contacts.php:856 msgid "View all contacts" msgstr "Alle Kontakte anzeigen" -#: mod/contacts.php:855 mod/common.php:134 -msgid "Common Friends" -msgstr "Gemeinsame Freunde" - -#: mod/contacts.php:858 +#: mod/contacts.php:866 msgid "View all common friends" msgstr "Alle Kontakte anzeigen" -#: mod/contacts.php:865 +#: mod/contacts.php:873 msgid "Advanced Contact Settings" msgstr "Fortgeschrittene Kontakteinstellungen" -#: mod/contacts.php:910 +#: mod/contacts.php:918 msgid "Mutual Friendship" msgstr "Beidseitige Freundschaft" -#: mod/contacts.php:914 +#: mod/contacts.php:922 msgid "is a fan of yours" msgstr "ist ein Fan von dir" -#: mod/contacts.php:918 +#: mod/contacts.php:926 msgid "you are a fan of" msgstr "Du bist Fan von" -#: mod/contacts.php:993 +#: mod/contacts.php:1001 msgid "Toggle Blocked status" msgstr "Geblockt-Status ein-/ausschalten" -#: mod/contacts.php:1001 +#: mod/contacts.php:1009 msgid "Toggle Ignored status" msgstr "Ignoriert-Status ein-/ausschalten" -#: mod/contacts.php:1009 +#: mod/contacts.php:1017 msgid "Toggle Archive status" msgstr "Archiviert-Status ein-/ausschalten" -#: mod/contacts.php:1017 +#: mod/contacts.php:1025 msgid "Delete contact" msgstr "Lösche den Kontakt" -#: mod/follow.php:19 mod/dfrn_request.php:866 -msgid "Submit Request" -msgstr "Anfrage abschicken" +#: mod/profiles.php:38 +msgid "Profile deleted." +msgstr "Profil gelöscht." -#: mod/follow.php:30 -msgid "You already added this contact." -msgstr "Du hast den Kontakt bereits hinzugefügt." +#: mod/profiles.php:56 mod/profiles.php:90 +msgid "Profile-" +msgstr "Profil-" -#: mod/follow.php:39 -msgid "Diaspora support isn't enabled. Contact can't be added." -msgstr "Diaspora Unterstützung ist nicht aktiviert. Der Kontakt kann nicht zugefügt werden." +#: mod/profiles.php:75 mod/profiles.php:118 +msgid "New profile created." +msgstr "Neues Profil angelegt." -#: mod/follow.php:46 -msgid "OStatus support is disabled. Contact can't be added." -msgstr "OStatus Unterstützung ist nicht aktiviert. Der Kontakt kann nicht zugefügt werden." +#: mod/profiles.php:96 +msgid "Profile unavailable to clone." +msgstr "Profil nicht zum Duplizieren verfügbar." -#: mod/follow.php:53 -msgid "The network type couldn't be detected. Contact can't be added." -msgstr "Der Netzwerktype wurde nicht erkannt. Der Kontakt kann nicht hinzugefügt werden." +#: mod/profiles.php:190 +msgid "Profile Name is required." +msgstr "Profilname ist erforderlich." -#: mod/follow.php:109 mod/dfrn_request.php:852 -msgid "Please answer the following:" -msgstr "Bitte beantworte folgendes:" +#: mod/profiles.php:338 +msgid "Marital Status" +msgstr "Familienstand" -#: mod/follow.php:110 mod/dfrn_request.php:853 +#: mod/profiles.php:342 +msgid "Romantic Partner" +msgstr "Romanze" + +#: mod/profiles.php:354 +msgid "Work/Employment" +msgstr "Arbeit / Beschäftigung" + +#: mod/profiles.php:357 +msgid "Religion" +msgstr "Religion" + +#: mod/profiles.php:361 +msgid "Political Views" +msgstr "Politische Ansichten" + +#: mod/profiles.php:365 +msgid "Gender" +msgstr "Geschlecht" + +#: mod/profiles.php:369 +msgid "Sexual Preference" +msgstr "Sexuelle Vorlieben" + +#: mod/profiles.php:373 +msgid "XMPP" +msgstr "XMPP" + +#: mod/profiles.php:377 +msgid "Homepage" +msgstr "Webseite" + +#: mod/profiles.php:381 mod/profiles.php:702 +msgid "Interests" +msgstr "Interessen" + +#: mod/profiles.php:385 +msgid "Address" +msgstr "Adresse" + +#: mod/profiles.php:392 mod/profiles.php:698 +msgid "Location" +msgstr "Wohnort" + +#: mod/profiles.php:477 +msgid "Profile updated." +msgstr "Profil aktualisiert." + +#: mod/profiles.php:564 +msgid " and " +msgstr " und " + +#: mod/profiles.php:572 +msgid "public profile" +msgstr "öffentliches Profil" + +#: mod/profiles.php:575 #, php-format -msgid "Does %s know you?" -msgstr "Kennt %s Dich?" +msgid "%1$s changed %2$s to “%3$s”" +msgstr "%1$s hat %2$s geändert auf “%3$s”" -#: mod/follow.php:111 mod/dfrn_request.php:857 -msgid "Add a personal note:" -msgstr "Eine persönliche Notiz beifügen:" - -#: mod/follow.php:117 mod/dfrn_request.php:863 -msgid "Your Identity Address:" -msgstr "Adresse Deines Profils:" - -#: mod/follow.php:180 -msgid "Contact added" -msgstr "Kontakt hinzugefügt" - -#: mod/apps.php:11 -msgid "Applications" -msgstr "Anwendungen" - -#: mod/apps.php:14 -msgid "No installed applications." -msgstr "Keine Applikationen installiert." - -#: mod/suggest.php:27 -msgid "Do you really want to delete this suggestion?" -msgstr "Möchtest Du wirklich diese Empfehlung löschen?" - -#: mod/suggest.php:71 -msgid "" -"No suggestions available. If this is a new site, please try again in 24 " -"hours." -msgstr "Keine Vorschläge verfügbar. Falls der Server frisch aufgesetzt wurde, versuche es bitte in 24 Stunden noch einmal." - -#: mod/suggest.php:83 mod/suggest.php:101 -msgid "Ignore/Hide" -msgstr "Ignorieren/Verbergen" - -#: mod/p.php:9 -msgid "Not Extended" -msgstr "Nicht erweitert." - -#: mod/display.php:378 mod/profile.php:155 -msgid "Access to this profile has been restricted." -msgstr "Der Zugriff zu diesem Profil wurde eingeschränkt." - -#: mod/display.php:537 -msgid "Item has been removed." -msgstr "Eintrag wurde entfernt." - -#: mod/common.php:86 -msgid "No contacts in common." -msgstr "Keine gemeinsamen Kontakte." - -#: mod/newmember.php:6 -msgid "Welcome to Friendica" -msgstr "Willkommen bei Friendica" - -#: mod/newmember.php:8 -msgid "New Member Checklist" -msgstr "Checkliste für neue Mitglieder" - -#: mod/newmember.php:12 -msgid "" -"We would like to offer some tips and links to help make your experience " -"enjoyable. Click any item to visit the relevant page. A link to this page " -"will be visible from your home page for two weeks after your initial " -"registration and then will quietly disappear." -msgstr "Wir möchten Dir einige Tipps und Links anbieten, die Dir helfen könnten, den Einstieg angenehmer zu machen. Klicke auf ein Element, um die entsprechende Seite zu besuchen. Ein Link zu dieser Seite hier bleibt für Dich an Deiner Pinnwand für zwei Wochen nach dem Registrierungsdatum sichtbar und wird dann verschwinden." - -#: mod/newmember.php:14 -msgid "Getting Started" -msgstr "Einstieg" - -#: mod/newmember.php:18 -msgid "Friendica Walk-Through" -msgstr "Friendica Rundgang" - -#: mod/newmember.php:18 -msgid "" -"On your Quick Start page - find a brief introduction to your " -"profile and network tabs, make some new connections, and find some groups to" -" join." -msgstr "Auf der Quick Start Seite findest Du eine kurze Einleitung in die einzelnen Funktionen Deines Profils und die Netzwerk-Reiter, wo Du interessante Foren findest und neue Kontakte knüpfst." - -#: mod/newmember.php:26 -msgid "Go to Your Settings" -msgstr "Gehe zu deinen Einstellungen" - -#: mod/newmember.php:26 -msgid "" -"On your Settings page - change your initial password. Also make a " -"note of your Identity Address. This looks just like an email address - and " -"will be useful in making friends on the free social web." -msgstr "Ändere bitte unter Einstellungen dein Passwort. Außerdem merke dir deine Identifikationsadresse. Diese sieht aus wie eine E-Mail-Adresse und wird benötigt, um Freundschaften mit anderen im Friendica Netzwerk zu schliessen." - -#: mod/newmember.php:28 -msgid "" -"Review the other settings, particularly the privacy settings. An unpublished" -" directory listing is like having an unlisted phone number. In general, you " -"should probably publish your listing - unless all of your friends and " -"potential friends know exactly how to find you." -msgstr "Überprüfe die restlichen Einstellungen, insbesondere die Einstellungen zur Privatsphäre. Wenn Du Dein Profil nicht veröffentlichst, ist das als wenn Du Deine Telefonnummer nicht ins Telefonbuch einträgst. Im Allgemeinen solltest Du es veröffentlichen - außer all Deine Freunde und potentiellen Freunde wissen genau, wie sie Dich finden können." - -#: mod/newmember.php:36 -msgid "" -"Upload a profile photo if you have not done so already. Studies have shown " -"that people with real photos of themselves are ten times more likely to make" -" friends than people who do not." -msgstr "Lade ein Profilbild hoch, falls Du es noch nicht getan hast. Studien haben gezeigt, dass es zehnmal wahrscheinlicher ist neue Freunde zu finden, wenn Du ein Bild von Dir selbst verwendest, als wenn Du dies nicht tust." - -#: mod/newmember.php:38 -msgid "Edit Your Profile" -msgstr "Editiere dein Profil" - -#: mod/newmember.php:38 -msgid "" -"Edit your default profile to your liking. Review the " -"settings for hiding your list of friends and hiding the profile from unknown" -" visitors." -msgstr "Editiere Dein Standard Profil nach Deinen Vorlieben. Überprüfe die Einstellungen zum Verbergen Deiner Freundesliste vor unbekannten Betrachtern des Profils." - -#: mod/newmember.php:40 -msgid "Profile Keywords" -msgstr "Profil Schlüsselbegriffe" - -#: mod/newmember.php:40 -msgid "" -"Set some public keywords for your default profile which describe your " -"interests. We may be able to find other people with similar interests and " -"suggest friendships." -msgstr "Trage ein paar öffentliche Stichwörter in Dein Standardprofil ein, die Deine Interessen beschreiben. Eventuell sind wir in der Lage Leute zu finden, die Deine Interessen teilen und können Dir dann Kontakte vorschlagen." - -#: mod/newmember.php:44 -msgid "Connecting" -msgstr "Verbindungen knüpfen" - -#: mod/newmember.php:51 -msgid "Importing Emails" -msgstr "Emails Importieren" - -#: mod/newmember.php:51 -msgid "" -"Enter your email access information on your Connector Settings page if you " -"wish to import and interact with friends or mailing lists from your email " -"INBOX" -msgstr "Gib Deine E-Mail-Zugangsinformationen auf der Connector-Einstellungsseite ein, falls Du E-Mails aus Deinem Posteingang importieren und mit Freunden und Mailinglisten interagieren willst." - -#: mod/newmember.php:53 -msgid "Go to Your Contacts Page" -msgstr "Gehe zu deiner Kontakt-Seite" - -#: mod/newmember.php:53 -msgid "" -"Your Contacts page is your gateway to managing friendships and connecting " -"with friends on other networks. Typically you enter their address or site " -"URL in the Add New Contact dialog." -msgstr "Die Kontakte-Seite ist die Einstiegsseite, von der aus Du Kontakte verwalten und Dich mit Freunden in anderen Netzwerken verbinden kannst. Normalerweise gibst Du dazu einfach ihre Adresse oder die URL der Seite im Kasten Neuen Kontakt hinzufügen ein." - -#: mod/newmember.php:55 -msgid "Go to Your Site's Directory" -msgstr "Gehe zum Verzeichnis Deiner Friendica Instanz" - -#: mod/newmember.php:55 -msgid "" -"The Directory page lets you find other people in this network or other " -"federated sites. Look for a Connect or Follow link on " -"their profile page. Provide your own Identity Address if requested." -msgstr "Über die Verzeichnisseite kannst Du andere Personen auf diesem Server oder anderen verknüpften Seiten finden. Halte nach einem Verbinden oder Folgen Link auf deren Profilseiten Ausschau und gib Deine eigene Profiladresse an, falls Du danach gefragt wirst." - -#: mod/newmember.php:57 -msgid "Finding New People" -msgstr "Neue Leute kennenlernen" - -#: mod/newmember.php:57 -msgid "" -"On the side panel of the Contacts page are several tools to find new " -"friends. We can match people by interest, look up people by name or " -"interest, and provide suggestions based on network relationships. On a brand" -" new site, friend suggestions will usually begin to be populated within 24 " -"hours." -msgstr "Im seitlichen Bedienfeld der Kontakteseite gibt es diverse Werkzeuge, um neue Freunde zu finden. Wir können Menschen mit den gleichen Interessen finden, anhand von Namen oder Interessen suchen oder aber aufgrund vorhandener Kontakte neue Freunde vorschlagen.\nAuf einer brandneuen - soeben erstellten - Seite starten die Kontaktvorschläge innerhalb von 24 Stunden." - -#: mod/newmember.php:65 -msgid "Group Your Contacts" -msgstr "Gruppiere deine Kontakte" - -#: mod/newmember.php:65 -msgid "" -"Once you have made some friends, organize them into private conversation " -"groups from the sidebar of your Contacts page and then you can interact with" -" each group privately on your Network page." -msgstr "Sobald Du einige Freunde gefunden hast, organisiere sie in Gruppen zur privaten Kommunikation im Seitenmenü der Kontakte-Seite. Du kannst dann mit jeder dieser Gruppen von der Netzwerkseite aus privat interagieren." - -#: mod/newmember.php:68 -msgid "Why Aren't My Posts Public?" -msgstr "Warum sind meine Beiträge nicht öffentlich?" - -#: mod/newmember.php:68 -msgid "" -"Friendica respects your privacy. By default, your posts will only show up to" -" people you've added as friends. For more information, see the help section " -"from the link above." -msgstr "Friendica respektiert Deine Privatsphäre. Mit der Grundeinstellung werden Deine Beiträge ausschließlich Deinen Kontakten angezeigt. Für weitere Informationen diesbezüglich lies Dir bitte den entsprechenden Abschnitt in der Hilfe unter dem obigen Link durch." - -#: mod/newmember.php:73 -msgid "Getting Help" -msgstr "Hilfe bekommen" - -#: mod/newmember.php:77 -msgid "Go to the Help Section" -msgstr "Zum Hilfe Abschnitt gehen" - -#: mod/newmember.php:77 -msgid "" -"Our help pages may be consulted for detail on other program" -" features and resources." -msgstr "Unsere Hilfe Seiten können herangezogen werden, um weitere Einzelheiten zu andern Programm Features zu erhalten." - -#: mod/removeme.php:46 mod/removeme.php:49 -msgid "Remove My Account" -msgstr "Konto löschen" - -#: mod/removeme.php:47 -msgid "" -"This will completely remove your account. Once this has been done it is not " -"recoverable." -msgstr "Dein Konto wird endgültig gelöscht. Es gibt keine Möglichkeit, es wiederherzustellen." - -#: mod/removeme.php:48 -msgid "Please enter your password for verification:" -msgstr "Bitte gib Dein Passwort zur Verifikation ein:" - -#: mod/mood.php:133 -msgid "Mood" -msgstr "Stimmung" - -#: mod/mood.php:134 -msgid "Set your current mood and tell your friends" -msgstr "Wähle Deine aktuelle Stimmung und erzähle sie Deinen Freunden" - -#: mod/editpost.php:17 mod/editpost.php:27 -msgid "Item not found" -msgstr "Beitrag nicht gefunden" - -#: mod/editpost.php:40 -msgid "Edit post" -msgstr "Beitrag bearbeiten" - -#: mod/network.php:146 +#: mod/profiles.php:576 #, php-format -msgid "Search Results For: %s" -msgstr "Suchergebnisse für: %s" +msgid " - Visit %1$s's %2$s" +msgstr " – %1$ss %2$s besuchen" -#: mod/network.php:365 -msgid "Commented Order" -msgstr "Neueste Kommentare" - -#: mod/network.php:368 -msgid "Sort by Comment Date" -msgstr "Nach Kommentardatum sortieren" - -#: mod/network.php:373 -msgid "Posted Order" -msgstr "Neueste Beiträge" - -#: mod/network.php:376 -msgid "Sort by Post Date" -msgstr "Nach Beitragsdatum sortieren" - -#: mod/network.php:387 -msgid "Posts that mention or involve you" -msgstr "Beiträge, in denen es um Dich geht" - -#: mod/network.php:395 -msgid "New" -msgstr "Neue" - -#: mod/network.php:398 -msgid "Activity Stream - by date" -msgstr "Aktivitäten-Stream - nach Datum" - -#: mod/network.php:406 -msgid "Shared Links" -msgstr "Geteilte Links" - -#: mod/network.php:409 -msgid "Interesting Links" -msgstr "Interessante Links" - -#: mod/network.php:417 -msgid "Starred" -msgstr "Markierte" - -#: mod/network.php:420 -msgid "Favourite Posts" -msgstr "Favorisierte Beiträge" - -#: mod/network.php:479 +#: mod/profiles.php:579 #, php-format -msgid "Warning: This group contains %s member from an insecure network." -msgid_plural "" -"Warning: This group contains %s members from an insecure network." -msgstr[0] "Warnung: Diese Gruppe beinhaltet %s Person aus einem unsicheren Netzwerk." -msgstr[1] "Warnung: Diese Gruppe beinhaltet %s Personen aus unsicheren Netzwerken." +msgid "%1$s has an updated %2$s, changing %3$s." +msgstr "%1$s hat folgendes aktualisiert %2$s, verändert wurde %3$s." -#: mod/network.php:482 -msgid "Private messages to this group are at risk of public disclosure." -msgstr "Private Nachrichten an diese Gruppe könnten an die Öffentlichkeit geraten." +#: mod/profiles.php:645 +msgid "Hide contacts and friends:" +msgstr "Kontakte und Freunde verbergen" -#: mod/network.php:608 -msgid "Private messages to this person are at risk of public disclosure." -msgstr "Private Nachrichten an diese Person könnten an die Öffentlichkeit gelangen." +#: mod/profiles.php:650 +msgid "Hide your contact/friend list from viewers of this profile?" +msgstr "Liste der Kontakte vor Betrachtern dieses Profils verbergen?" -#: mod/network.php:613 -msgid "Invalid contact." -msgstr "Ungültiger Kontakt." +#: mod/profiles.php:674 +msgid "Show more profile fields:" +msgstr "Zeige mehr Profil-Felder:" -#: mod/community.php:27 -msgid "Not available." -msgstr "Nicht verfügbar." +#: mod/profiles.php:686 +msgid "Profile Actions" +msgstr "Profilaktionen" -#: mod/localtime.php:24 -msgid "Time Conversion" -msgstr "Zeitumrechnung" +#: mod/profiles.php:687 +msgid "Edit Profile Details" +msgstr "Profil bearbeiten" -#: mod/localtime.php:26 +#: mod/profiles.php:689 +msgid "Change Profile Photo" +msgstr "Profilbild ändern" + +#: mod/profiles.php:690 +msgid "View this profile" +msgstr "Dieses Profil anzeigen" + +#: mod/profiles.php:692 +msgid "Create a new profile using these settings" +msgstr "Neues Profil anlegen und diese Einstellungen verwenden" + +#: mod/profiles.php:693 +msgid "Clone this profile" +msgstr "Dieses Profil duplizieren" + +#: mod/profiles.php:694 +msgid "Delete this profile" +msgstr "Dieses Profil löschen" + +#: mod/profiles.php:696 +msgid "Basic information" +msgstr "Grundinformationen" + +#: mod/profiles.php:697 +msgid "Profile picture" +msgstr "Profilbild" + +#: mod/profiles.php:699 +msgid "Preferences" +msgstr "Vorlieben" + +#: mod/profiles.php:700 +msgid "Status information" +msgstr "Status Informationen" + +#: mod/profiles.php:701 +msgid "Additional information" +msgstr "Zusätzliche Informationen" + +#: mod/profiles.php:704 +msgid "Relation" +msgstr "Beziehung" + +#: mod/profiles.php:708 +msgid "Your Gender:" +msgstr "Dein Geschlecht:" + +#: mod/profiles.php:709 +msgid " Marital Status:" +msgstr " Beziehungsstatus:" + +#: mod/profiles.php:711 +msgid "Example: fishing photography software" +msgstr "Beispiel: Fischen Fotografie Software" + +#: mod/profiles.php:716 +msgid "Profile Name:" +msgstr "Profilname:" + +#: mod/profiles.php:718 msgid "" -"Friendica provides this service for sharing events with other networks and " -"friends in unknown timezones." -msgstr "Friendica bietet diese Funktion an, um das Teilen von Events mit Kontakten zu vereinfachen, deren Zeitzone nicht ermittelt werden kann." +"This is your public profile.
      It may " +"be visible to anybody using the internet." +msgstr "Dies ist Dein öffentliches Profil.
      Es könnte für jeden Nutzer des Internets sichtbar sein." -#: mod/localtime.php:30 -#, php-format -msgid "UTC time: %s" -msgstr "UTC Zeit: %s" +#: mod/profiles.php:719 +msgid "Your Full Name:" +msgstr "Dein kompletter Name:" -#: mod/localtime.php:33 -#, php-format -msgid "Current timezone: %s" -msgstr "Aktuelle Zeitzone: %s" +#: mod/profiles.php:720 +msgid "Title/Description:" +msgstr "Titel/Beschreibung:" -#: mod/localtime.php:36 -#, php-format -msgid "Converted localtime: %s" -msgstr "Umgerechnete lokale Zeit: %s" +#: mod/profiles.php:723 +msgid "Street Address:" +msgstr "Adresse:" -#: mod/localtime.php:41 -msgid "Please select your timezone:" -msgstr "Bitte wähle Deine Zeitzone:" +#: mod/profiles.php:724 +msgid "Locality/City:" +msgstr "Wohnort:" -#: mod/bookmarklet.php:41 -msgid "The post was created" -msgstr "Der Beitrag wurde angelegt" +#: mod/profiles.php:725 +msgid "Region/State:" +msgstr "Region/Bundesstaat:" -#: mod/group.php:29 -msgid "Group created." -msgstr "Gruppe erstellt." +#: mod/profiles.php:726 +msgid "Postal/Zip Code:" +msgstr "Postleitzahl:" -#: mod/group.php:35 -msgid "Could not create group." -msgstr "Konnte die Gruppe nicht erstellen." +#: mod/profiles.php:727 +msgid "Country:" +msgstr "Land:" -#: mod/group.php:47 mod/group.php:140 -msgid "Group not found." -msgstr "Gruppe nicht gefunden." +#: mod/profiles.php:731 +msgid "Who: (if applicable)" +msgstr "Wer: (falls anwendbar)" -#: mod/group.php:60 -msgid "Group name changed." -msgstr "Gruppenname geändert." +#: mod/profiles.php:731 +msgid "Examples: cathy123, Cathy Williams, cathy@example.com" +msgstr "Beispiele: cathy123, Cathy Williams, cathy@example.com" -#: mod/group.php:87 -msgid "Save Group" -msgstr "Gruppe speichern" +#: mod/profiles.php:732 +msgid "Since [date]:" +msgstr "Seit [Datum]:" -#: mod/group.php:93 -msgid "Create a group of contacts/friends." -msgstr "Eine Gruppe von Kontakten/Freunden anlegen." +#: mod/profiles.php:734 +msgid "Tell us about yourself..." +msgstr "Erzähle uns ein bisschen von Dir …" -#: mod/group.php:113 -msgid "Group removed." -msgstr "Gruppe entfernt." +#: mod/profiles.php:735 +msgid "XMPP (Jabber) address:" +msgstr "XMPP (Jabber) Adresse" -#: mod/group.php:115 -msgid "Unable to remove group." -msgstr "Konnte die Gruppe nicht entfernen." - -#: mod/group.php:177 -msgid "Group Editor" -msgstr "Gruppeneditor" - -#: mod/group.php:190 -msgid "Members" -msgstr "Mitglieder" - -#: mod/dfrn_request.php:99 -msgid "This introduction has already been accepted." -msgstr "Diese Kontaktanfrage wurde bereits akzeptiert." - -#: mod/dfrn_request.php:122 mod/dfrn_request.php:512 -msgid "Profile location is not valid or does not contain profile information." -msgstr "Profiladresse ist ungültig oder stellt keine Profildaten zur Verfügung." - -#: mod/dfrn_request.php:127 mod/dfrn_request.php:517 -msgid "Warning: profile location has no identifiable owner name." -msgstr "Warnung: Es konnte kein Name des Besitzers von der angegebenen Profiladresse gefunden werden." - -#: mod/dfrn_request.php:129 mod/dfrn_request.php:519 -msgid "Warning: profile location has no profile photo." -msgstr "Warnung: Es gibt kein Profilbild bei der angegebenen Profiladresse." - -#: mod/dfrn_request.php:132 mod/dfrn_request.php:522 -#, 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 benötigter Parameter wurde an der angegebenen Stelle nicht gefunden" -msgstr[1] "%d benötigte Parameter wurden an der angegebenen Stelle nicht gefunden" - -#: mod/dfrn_request.php:175 -msgid "Introduction complete." -msgstr "Kontaktanfrage abgeschlossen." - -#: mod/dfrn_request.php:214 -msgid "Unrecoverable protocol error." -msgstr "Nicht behebbarer Protokollfehler." - -#: mod/dfrn_request.php:242 -msgid "Profile unavailable." -msgstr "Profil nicht verfügbar." - -#: mod/dfrn_request.php:267 -#, php-format -msgid "%s has received too many connection requests today." -msgstr "%s hat heute zu viele Freundschaftsanfragen erhalten." - -#: mod/dfrn_request.php:268 -msgid "Spam protection measures have been invoked." -msgstr "Maßnahmen zum Spamschutz wurden ergriffen." - -#: mod/dfrn_request.php:269 -msgid "Friends are advised to please try again in 24 hours." -msgstr "Freunde sind angehalten, es in 24 Stunden erneut zu versuchen." - -#: mod/dfrn_request.php:331 -msgid "Invalid locator" -msgstr "Ungültiger Locator" - -#: mod/dfrn_request.php:340 -msgid "Invalid email address." -msgstr "Ungültige E-Mail-Adresse." - -#: mod/dfrn_request.php:367 -msgid "This account has not been configured for email. Request failed." -msgstr "Dieses Konto ist nicht für E-Mail konfiguriert. Anfrage fehlgeschlagen." - -#: mod/dfrn_request.php:470 -msgid "You have already introduced yourself here." -msgstr "Du hast Dich hier bereits vorgestellt." - -#: mod/dfrn_request.php:474 -#, php-format -msgid "Apparently you are already friends with %s." -msgstr "Es scheint so, als ob Du bereits mit %s befreundet bist." - -#: mod/dfrn_request.php:495 -msgid "Invalid profile URL." -msgstr "Ungültige Profil-URL." - -#: mod/dfrn_request.php:592 -msgid "Your introduction has been sent." -msgstr "Deine Kontaktanfrage wurde gesendet." - -#: mod/dfrn_request.php:632 +#: mod/profiles.php:735 msgid "" -"Remote subscription can't be done for your network. Please subscribe " -"directly on your system." -msgstr "Entferntes abon­nie­ren kann für dein Netzwerk nicht durchgeführt werden. Bitte nutze direkt die Abonnieren-Funktion deines Systems. " +"The XMPP address will be propagated to your contacts so that they can follow" +" you." +msgstr "Die XMPP Adresse wird an deine Kontakte verteilt werden, so dass sie auch über XMPP mit dir in Kontakt treten können." -#: mod/dfrn_request.php:655 -msgid "Please login to confirm introduction." -msgstr "Bitte melde Dich an, um die Kontaktanfrage zu bestätigen." +#: mod/profiles.php:736 +msgid "Homepage URL:" +msgstr "Adresse der Homepage:" -#: mod/dfrn_request.php:665 -msgid "" -"Incorrect identity currently logged in. Please login to " -"this profile." -msgstr "Momentan bist Du mit einer anderen Identität angemeldet. Bitte melde Dich mit diesem Profil an." +#: mod/profiles.php:739 +msgid "Religious Views:" +msgstr "Religiöse Ansichten:" -#: mod/dfrn_request.php:679 mod/dfrn_request.php:696 -msgid "Confirm" -msgstr "Bestätigen" +#: mod/profiles.php:740 +msgid "Public Keywords:" +msgstr "Öffentliche Schlüsselwörter:" -#: mod/dfrn_request.php:691 -msgid "Hide this contact" -msgstr "Verberge diesen Kontakt" +#: mod/profiles.php:740 +msgid "(Used for suggesting potential friends, can be seen by others)" +msgstr "(Wird verwendet, um potentielle Kontakte zu finden, kann von Kontakten eingesehen werden)" -#: mod/dfrn_request.php:694 -#, php-format -msgid "Welcome home %s." -msgstr "Willkommen zurück %s." +#: mod/profiles.php:741 +msgid "Private Keywords:" +msgstr "Private Schlüsselwörter:" -#: mod/dfrn_request.php:695 -#, php-format -msgid "Please confirm your introduction/connection request to %s." -msgstr "Bitte bestätige Deine Kontaktanfrage bei %s." +#: mod/profiles.php:741 +msgid "(Used for searching profiles, never shown to others)" +msgstr "(Wird für die Suche nach Profilen verwendet und niemals veröffentlicht)" -#: mod/dfrn_request.php:824 -msgid "" -"Please enter your 'Identity Address' from one of the following supported " -"communications networks:" -msgstr "Bitte gib die Adresse Deines Profils in einem der unterstützten sozialen Netzwerke an:" +#: mod/profiles.php:744 +msgid "Musical interests" +msgstr "Musikalische Interessen" -#: mod/dfrn_request.php:845 -#, 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 "Wenn du noch kein Mitglied dieses freien sozialen Netzwerks bist, folge diesem Link um einen öffentlichen Friendica-Server zu finden und beizutreten." +#: mod/profiles.php:745 +msgid "Books, literature" +msgstr "Bücher, Literatur" -#: mod/dfrn_request.php:850 -msgid "Friend/Connection Request" -msgstr "Freundschafts-/Kontaktanfrage" +#: mod/profiles.php:746 +msgid "Television" +msgstr "Fernsehen" -#: mod/dfrn_request.php:851 -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" +#: mod/profiles.php:747 +msgid "Film/dance/culture/entertainment" +msgstr "Filme/Tänze/Kultur/Unterhaltung" -#: mod/dfrn_request.php:860 -msgid "StatusNet/Federated Social Web" -msgstr "StatusNet/Federated Social Web" +#: mod/profiles.php:748 +msgid "Hobbies/Interests" +msgstr "Hobbies/Interessen" -#: mod/dfrn_request.php:862 -#, php-format -msgid "" -" - please do not use this form. Instead, enter %s into your Diaspora search" -" bar." -msgstr " - bitte verwende dieses Formular nicht. Stattdessen suche nach %s in Deiner Diaspora Suchleiste." +#: mod/profiles.php:749 +msgid "Love/romance" +msgstr "Liebe/Romantik" -#: mod/profile_photo.php:44 -msgid "Image uploaded but image cropping failed." -msgstr "Bild hochgeladen, aber das Zuschneiden schlug fehl." +#: mod/profiles.php:750 +msgid "Work/employment" +msgstr "Arbeit/Anstellung" -#: mod/profile_photo.php:77 mod/profile_photo.php:84 mod/profile_photo.php:91 -#: mod/profile_photo.php:314 -#, php-format -msgid "Image size reduction [%s] failed." -msgstr "Verkleinern der Bildgröße von [%s] scheiterte." +#: mod/profiles.php:751 +msgid "School/education" +msgstr "Schule/Ausbildung" -#: mod/profile_photo.php:124 -msgid "" -"Shift-reload the page or clear browser cache if the new photo does not " -"display immediately." -msgstr "Drücke Umschalt+Neu Laden oder leere den Browser-Cache, falls das neue Foto nicht gleich angezeigt wird." +#: mod/profiles.php:752 +msgid "Contact information and Social Networks" +msgstr "Kontaktinformationen und Soziale Netzwerke" -#: mod/profile_photo.php:134 -msgid "Unable to process image" -msgstr "Bild konnte nicht verarbeitet werden" - -#: mod/profile_photo.php:248 -msgid "Upload File:" -msgstr "Datei hochladen:" - -#: mod/profile_photo.php:249 -msgid "Select a profile:" -msgstr "Profil auswählen:" - -#: mod/profile_photo.php:251 -msgid "Upload" -msgstr "Hochladen" - -#: mod/profile_photo.php:254 -msgid "or" -msgstr "oder" - -#: mod/profile_photo.php:254 -msgid "skip this step" -msgstr "diesen Schritt überspringen" - -#: mod/profile_photo.php:254 -msgid "select a photo from your photo albums" -msgstr "wähle ein Foto aus deinen Fotoalben" - -#: mod/profile_photo.php:268 -msgid "Crop Image" -msgstr "Bild zurechtschneiden" - -#: mod/profile_photo.php:269 -msgid "Please adjust the image cropping for optimum viewing." -msgstr "Passe bitte den Bildausschnitt an, damit das Bild optimal dargestellt werden kann." - -#: mod/profile_photo.php:271 -msgid "Done Editing" -msgstr "Bearbeitung abgeschlossen" - -#: mod/profile_photo.php:305 -msgid "Image uploaded successfully." -msgstr "Bild erfolgreich hochgeladen." - -#: mod/register.php:92 -msgid "" -"Registration successful. Please check your email for further instructions." -msgstr "Registrierung erfolgreich. Eine E-Mail mit weiteren Anweisungen wurde an Dich gesendet." - -#: mod/register.php:97 -#, php-format -msgid "" -"Failed to send email message. Here your accout details:
      login: %s
      " -"password: %s

      You can change your password after login." -msgstr "Versenden der E-Mail fehlgeschlagen. Hier sind Deine Account Details:\n\nLogin: %s\nPasswort: %s\n\nDu kannst das Passwort nach dem Anmelden ändern." - -#: mod/register.php:104 -msgid "Registration successful." -msgstr "Registrierung erfolgreich." - -#: mod/register.php:110 -msgid "Your registration can not be processed." -msgstr "Deine Registrierung konnte nicht verarbeitet werden." - -#: mod/register.php:153 -msgid "Your registration is pending approval by the site owner." -msgstr "Deine Registrierung muss noch vom Betreiber der Seite freigegeben werden." - -#: mod/register.php:219 -msgid "" -"You may (optionally) fill in this form via OpenID by supplying your OpenID " -"and clicking 'Register'." -msgstr "Du kannst dieses Formular auch (optional) mit Deiner OpenID ausfüllen, indem Du Deine OpenID angibst und 'Registrieren' klickst." - -#: mod/register.php:220 -msgid "" -"If you are not familiar with OpenID, please leave that field blank and fill " -"in the rest of the items." -msgstr "Wenn Du nicht mit OpenID vertraut bist, lass dieses Feld bitte leer und fülle die restlichen Felder aus." - -#: mod/register.php:221 -msgid "Your OpenID (optional): " -msgstr "Deine OpenID (optional): " - -#: mod/register.php:235 -msgid "Include your profile in member directory?" -msgstr "Soll Dein Profil im Nutzerverzeichnis angezeigt werden?" - -#: mod/register.php:259 -msgid "Membership on this site is by invitation only." -msgstr "Mitgliedschaft auf dieser Seite ist nur nach vorheriger Einladung möglich." - -#: mod/register.php:260 -msgid "Your invitation ID: " -msgstr "ID Deiner Einladung: " - -#: mod/register.php:271 -msgid "Your Full Name (e.g. Joe Smith, real or real-looking): " -msgstr "Dein vollständiger Name (z.B. Hans Mustermann, echt oder echt erscheinend):" - -#: mod/register.php:272 -msgid "Your Email Address: " -msgstr "Deine E-Mail-Adresse: " - -#: mod/register.php:274 mod/settings.php:1218 -msgid "New Password:" -msgstr "Neues Passwort:" - -#: mod/register.php:274 -msgid "Leave empty for an auto generated password." -msgstr "Leer lassen um das Passwort automatisch zu generieren." - -#: mod/register.php:275 mod/settings.php:1219 -msgid "Confirm:" -msgstr "Bestätigen:" - -#: mod/register.php:276 -msgid "" -"Choose a profile nickname. This must begin with a text character. Your " -"profile address on this site will then be " -"'nickname@$sitename'." -msgstr "Wähle einen Spitznamen für Dein Profil. Dieser muss mit einem Buchstaben beginnen. Die Adresse Deines Profils auf dieser Seite wird 'spitzname@$sitename' sein." - -#: mod/register.php:277 -msgid "Choose a nickname: " -msgstr "Spitznamen wählen: " - -#: mod/register.php:287 -msgid "Import your profile to this friendica instance" -msgstr "Importiere Dein Profil auf diese Friendica Instanz" +#: mod/profiles.php:794 +msgid "Edit/Manage Profiles" +msgstr "Bearbeite/Verwalte Profile" #: mod/settings.php:60 msgid "Display" msgstr "Anzeige" -#: mod/settings.php:67 mod/settings.php:871 +#: mod/settings.php:67 mod/settings.php:883 msgid "Social Networks" msgstr "Soziale Netzwerke" @@ -7575,905 +7955,729 @@ msgstr "Passwort geändert." msgid "Password update failed. Please try again." msgstr "Aktualisierung des Passworts gescheitert, bitte versuche es noch einmal." -#: mod/settings.php:465 +#: mod/settings.php:476 msgid " Please use a shorter name." msgstr " Bitte verwende einen kürzeren Namen." -#: mod/settings.php:467 +#: mod/settings.php:478 msgid " Name too short." msgstr " Name ist zu kurz." -#: mod/settings.php:476 +#: mod/settings.php:487 msgid "Wrong Password" msgstr "Falsches Passwort" -#: mod/settings.php:481 +#: mod/settings.php:492 msgid " Not valid email." msgstr " Keine gültige E-Mail." -#: mod/settings.php:487 +#: mod/settings.php:498 msgid " Cannot change to that email." msgstr "Ändern der E-Mail nicht möglich. " -#: mod/settings.php:543 +#: mod/settings.php:554 msgid "Private forum has no privacy permissions. Using default privacy group." msgstr "Für das private Forum sind keine Zugriffsrechte eingestellt. Die voreingestellte Gruppe für neue Kontakte wird benutzt." -#: mod/settings.php:547 +#: mod/settings.php:558 msgid "Private forum has no privacy permissions and no default privacy group." msgstr "Für das private Forum sind keine Zugriffsrechte eingestellt, und es gibt keine voreingestellte Gruppe für neue Kontakte." -#: mod/settings.php:586 +#: mod/settings.php:598 msgid "Settings updated." msgstr "Einstellungen aktualisiert." -#: mod/settings.php:662 mod/settings.php:688 mod/settings.php:724 +#: mod/settings.php:674 mod/settings.php:700 mod/settings.php:736 msgid "Add application" msgstr "Programm hinzufügen" -#: mod/settings.php:666 mod/settings.php:692 +#: mod/settings.php:678 mod/settings.php:704 msgid "Consumer Key" msgstr "Consumer Key" -#: mod/settings.php:667 mod/settings.php:693 +#: mod/settings.php:679 mod/settings.php:705 msgid "Consumer Secret" msgstr "Consumer Secret" -#: mod/settings.php:668 mod/settings.php:694 +#: mod/settings.php:680 mod/settings.php:706 msgid "Redirect" msgstr "Umleiten" -#: mod/settings.php:669 mod/settings.php:695 +#: mod/settings.php:681 mod/settings.php:707 msgid "Icon url" msgstr "Icon URL" -#: mod/settings.php:680 +#: mod/settings.php:692 msgid "You can't edit this application." msgstr "Du kannst dieses Programm nicht bearbeiten." -#: mod/settings.php:723 +#: mod/settings.php:735 msgid "Connected Apps" msgstr "Verbundene Programme" -#: mod/settings.php:727 +#: mod/settings.php:739 msgid "Client key starts with" msgstr "Anwenderschlüssel beginnt mit" -#: mod/settings.php:728 +#: mod/settings.php:740 msgid "No name" msgstr "Kein Name" -#: mod/settings.php:729 +#: mod/settings.php:741 msgid "Remove authorization" msgstr "Autorisierung entziehen" -#: mod/settings.php:741 +#: mod/settings.php:753 msgid "No Plugin settings configured" msgstr "Keine Plugin-Einstellungen konfiguriert" -#: mod/settings.php:749 +#: mod/settings.php:761 msgid "Plugin Settings" msgstr "Plugin-Einstellungen" -#: mod/settings.php:771 +#: mod/settings.php:783 msgid "Additional Features" msgstr "Zusätzliche Features" -#: mod/settings.php:781 mod/settings.php:785 +#: mod/settings.php:793 mod/settings.php:797 msgid "General Social Media Settings" msgstr "Allgemeine Einstellungen zu Sozialen Medien" -#: mod/settings.php:791 +#: mod/settings.php:803 msgid "Disable intelligent shortening" msgstr "Intelligentes Link kürzen ausschalten" -#: mod/settings.php:793 +#: mod/settings.php:805 msgid "" "Normally the system tries to find the best link to add to shortened posts. " "If this option is enabled then every shortened post will always point to the" " original friendica post." msgstr "Normalerweise versucht das System den besten Link zu finden um ihn zu gekürzten Postings hinzu zu fügen. Wird diese Option ausgewählt wird stets ein Link auf die originale Friendica Nachricht beigefügt." -#: mod/settings.php:799 +#: mod/settings.php:811 msgid "Automatically follow any GNU Social (OStatus) followers/mentioners" msgstr "Automatisch allen GNU Social (OStatus) Followern/Erwähnern folgen" -#: mod/settings.php:801 +#: mod/settings.php:813 msgid "" "If you receive a message from an unknown OStatus user, this option decides " "what to do. If it is checked, a new contact will be created for every " "unknown user." msgstr "Wenn du eine Nachricht eines unbekannten OStatus Nutzers bekommst, entscheidet diese Option wie diese behandelt werden soll. Ist die Option aktiviert, wird ein neuer Kontakt für den Verfasser erstellt,." -#: mod/settings.php:807 +#: mod/settings.php:819 msgid "Default group for OStatus contacts" msgstr "Voreingestellte Gruppe für OStatus Kontakte" -#: mod/settings.php:813 +#: mod/settings.php:825 msgid "Your legacy GNU Social account" msgstr "Dein alter GNU Social Account" -#: mod/settings.php:815 +#: mod/settings.php:827 msgid "" "If you enter your old GNU Social/Statusnet account name here (in the format " "user@domain.tld), your contacts will be added automatically. The field will " "be emptied when done." msgstr "Wenn du deinen alten GNU Socual/Statusnet Accountnamen hier angibst (Format name@domain.tld) werden deine Kontakte automatisch hinzugefügt. Dieses Feld wird geleert, wenn die Kontakte hinzugefügt wurden." -#: mod/settings.php:818 +#: mod/settings.php:830 msgid "Repair OStatus subscriptions" msgstr "OStatus Abonnements reparieren" -#: mod/settings.php:827 mod/settings.php:828 +#: mod/settings.php:839 mod/settings.php:840 #, php-format msgid "Built-in support for %s connectivity is %s" msgstr "Eingebaute Unterstützung für Verbindungen zu %s ist %s" -#: mod/settings.php:827 mod/settings.php:828 +#: mod/settings.php:839 mod/settings.php:840 msgid "enabled" msgstr "eingeschaltet" -#: mod/settings.php:827 mod/settings.php:828 +#: mod/settings.php:839 mod/settings.php:840 msgid "disabled" msgstr "ausgeschaltet" -#: mod/settings.php:828 +#: mod/settings.php:840 msgid "GNU Social (OStatus)" msgstr "GNU Social (OStatus)" -#: mod/settings.php:864 +#: mod/settings.php:876 msgid "Email access is disabled on this site." msgstr "Zugriff auf E-Mails für diese Seite deaktiviert." -#: mod/settings.php:876 +#: mod/settings.php:888 msgid "Email/Mailbox Setup" msgstr "E-Mail/Postfach-Einstellungen" -#: mod/settings.php:877 +#: mod/settings.php:889 msgid "" "If you wish to communicate with email contacts using this service " "(optional), please specify how to connect to your mailbox." msgstr "Wenn Du mit E-Mail-Kontakten über diesen Service kommunizieren möchtest (optional), gib bitte die Einstellungen für Dein Postfach an." -#: mod/settings.php:878 +#: mod/settings.php:890 msgid "Last successful email check:" msgstr "Letzter erfolgreicher E-Mail Check" -#: mod/settings.php:880 +#: mod/settings.php:892 msgid "IMAP server name:" msgstr "IMAP-Server-Name:" -#: mod/settings.php:881 +#: mod/settings.php:893 msgid "IMAP port:" msgstr "IMAP-Port:" -#: mod/settings.php:882 +#: mod/settings.php:894 msgid "Security:" msgstr "Sicherheit:" -#: mod/settings.php:882 mod/settings.php:887 +#: mod/settings.php:894 mod/settings.php:899 msgid "None" msgstr "Keine" -#: mod/settings.php:883 +#: mod/settings.php:895 msgid "Email login name:" msgstr "E-Mail-Login-Name:" -#: mod/settings.php:884 +#: mod/settings.php:896 msgid "Email password:" msgstr "E-Mail-Passwort:" -#: mod/settings.php:885 +#: mod/settings.php:897 msgid "Reply-to address:" msgstr "Reply-to Adresse:" -#: mod/settings.php:886 +#: mod/settings.php:898 msgid "Send public posts to all email contacts:" msgstr "Sende öffentliche Beiträge an alle E-Mail-Kontakte:" -#: mod/settings.php:887 +#: mod/settings.php:899 msgid "Action after import:" msgstr "Aktion nach Import:" -#: mod/settings.php:887 -msgid "Mark as seen" -msgstr "Als gelesen markieren" - -#: mod/settings.php:887 +#: mod/settings.php:899 msgid "Move to folder" msgstr "In einen Ordner verschieben" -#: mod/settings.php:888 +#: mod/settings.php:900 msgid "Move to folder:" msgstr "In diesen Ordner verschieben:" -#: mod/settings.php:974 +#: mod/settings.php:986 msgid "Display Settings" msgstr "Anzeige-Einstellungen" -#: mod/settings.php:980 mod/settings.php:998 +#: mod/settings.php:992 mod/settings.php:1013 msgid "Display Theme:" msgstr "Theme:" -#: mod/settings.php:981 +#: mod/settings.php:993 msgid "Mobile Theme:" msgstr "Mobiles Theme" -#: mod/settings.php:982 +#: mod/settings.php:994 msgid "Update browser every xx seconds" msgstr "Browser alle xx Sekunden aktualisieren" -#: mod/settings.php:982 +#: mod/settings.php:994 msgid "Minimum of 10 seconds. Enter -1 to disable it." msgstr "Minimum sind 10 Sekeunden. Gib -1 ein um abzuschalten." -#: mod/settings.php:983 +#: mod/settings.php:995 msgid "Number of items to display per page:" msgstr "Zahl der Beiträge, die pro Netzwerkseite angezeigt werden sollen: " -#: mod/settings.php:983 mod/settings.php:984 +#: mod/settings.php:995 mod/settings.php:996 msgid "Maximum of 100 items" msgstr "Maximal 100 Beiträge" -#: mod/settings.php:984 +#: mod/settings.php:996 msgid "Number of items to display per page when viewed from mobile device:" msgstr "Zahl der Beiträge, die pro Netzwerkseite auf mobilen Geräten angezeigt werden sollen:" -#: mod/settings.php:985 +#: mod/settings.php:997 msgid "Don't show emoticons" msgstr "Keine Smilies anzeigen" -#: mod/settings.php:986 +#: mod/settings.php:998 msgid "Calendar" msgstr "Kalender" -#: mod/settings.php:987 +#: mod/settings.php:999 msgid "Beginning of week:" msgstr "Wochenbeginn:" -#: mod/settings.php:988 +#: mod/settings.php:1000 msgid "Don't show notices" msgstr "Info-Popups nicht anzeigen" -#: mod/settings.php:989 +#: mod/settings.php:1001 msgid "Infinite scroll" msgstr "Endloses Scrollen" -#: mod/settings.php:990 +#: mod/settings.php:1002 msgid "Automatic updates only at the top of the network page" msgstr "Automatische Updates nur, wenn Du oben auf der Netzwerkseite bist." -#: mod/settings.php:992 view/theme/cleanzero/config.php:82 -#: view/theme/quattro/config.php:66 view/theme/dispy/config.php:72 -#: view/theme/vier/config.php:109 view/theme/diabook/config.php:150 -#: view/theme/duepuntozero/config.php:61 +#: mod/settings.php:1004 +msgid "General Theme Settings" +msgstr "Allgemeine Themeneinstellungen" + +#: mod/settings.php:1005 +msgid "Custom Theme Settings" +msgstr "Benutzerdefinierte Theme Einstellungen" + +#: mod/settings.php:1006 +msgid "Content Settings" +msgstr "Einstellungen zum Inhalt" + +#: mod/settings.php:1007 view/theme/frio/config.php:61 +#: view/theme/cleanzero/config.php:82 view/theme/quattro/config.php:66 +#: view/theme/dispy/config.php:72 view/theme/vier/config.php:109 +#: view/theme/diabook/config.php:150 view/theme/duepuntozero/config.php:61 msgid "Theme settings" msgstr "Themeneinstellungen" -#: mod/settings.php:1069 -msgid "User Types" -msgstr "Nutzer Art" +#: mod/settings.php:1089 +msgid "Account Types" +msgstr "Kontenarten" -#: mod/settings.php:1070 -msgid "Community Types" -msgstr "Gemeinschafts Art" +#: mod/settings.php:1090 +msgid "Personal Page Subtypes" +msgstr "Unterarten der persönlichen Seite" -#: mod/settings.php:1071 +#: mod/settings.php:1091 +msgid "Community Forum Subtypes" +msgstr "Unterarten des Gemeinschaftsforums" + +#: mod/settings.php:1098 +msgid "Personal Page" +msgstr "Persönliche Seite" + +#: mod/settings.php:1099 +msgid "This account is a regular personal profile" +msgstr "Dieses Konto ist ein normales persönliches Profil" + +#: mod/settings.php:1102 +msgid "Organisation Page" +msgstr "Organisationsseite" + +#: mod/settings.php:1103 +msgid "This account is a profile for an organisation" +msgstr "Diese Konto ist ein Profil für eine Organisation" + +#: mod/settings.php:1106 +msgid "News Page" +msgstr "Nachrichtenseite" + +#: mod/settings.php:1107 +msgid "This account is a news account/reflector" +msgstr "Dieses Konto ist ein News-Konto bzw. -Spiegel" + +#: mod/settings.php:1110 +msgid "Community Forum" +msgstr "Gemeinschaftsforum" + +#: mod/settings.php:1111 +msgid "" +"This account is a community forum where people can discuss with each other" +msgstr "Dieses Konto ist ein Gemeinschaftskonto wo sich Leute untereinander austauschen können" + +#: mod/settings.php:1114 msgid "Normal Account Page" msgstr "Normales Konto" -#: mod/settings.php:1072 +#: mod/settings.php:1115 msgid "This account is a normal personal profile" msgstr "Dieses Konto ist ein normales persönliches Profil" -#: mod/settings.php:1075 +#: mod/settings.php:1118 msgid "Soapbox Page" msgstr "Marktschreier-Konto" -#: mod/settings.php:1076 +#: mod/settings.php:1119 msgid "Automatically approve all connection/friend requests as read-only fans" msgstr "Kontaktanfragen werden automatisch als Nurlese-Fans akzeptiert" -#: mod/settings.php:1079 -msgid "Community Forum/Celebrity Account" -msgstr "Forum/Promi-Konto" +#: mod/settings.php:1122 +msgid "Public Forum" +msgstr "Öffentliches Forum" -#: mod/settings.php:1080 -msgid "" -"Automatically approve all connection/friend requests as read-write fans" -msgstr "Kontaktanfragen werden automatisch als Lese-und-Schreib-Fans akzeptiert" +#: mod/settings.php:1123 +msgid "Automatically approve all contact requests" +msgstr "Bestätige alle Kontaktanfragen automatisch" -#: mod/settings.php:1083 +#: mod/settings.php:1126 msgid "Automatic Friend Page" msgstr "Automatische Freunde Seite" -#: mod/settings.php:1084 +#: mod/settings.php:1127 msgid "Automatically approve all connection/friend requests as friends" msgstr "Kontaktanfragen werden automatisch als Freund akzeptiert" -#: mod/settings.php:1087 +#: mod/settings.php:1130 msgid "Private Forum [Experimental]" msgstr "Privates Forum [Versuchsstadium]" -#: mod/settings.php:1088 +#: mod/settings.php:1131 msgid "Private forum - approved members only" msgstr "Privates Forum, nur für Mitglieder" -#: mod/settings.php:1100 +#: mod/settings.php:1143 msgid "OpenID:" msgstr "OpenID:" -#: mod/settings.php:1100 +#: mod/settings.php:1143 msgid "(Optional) Allow this OpenID to login to this account." msgstr "(Optional) Erlaube die Anmeldung für dieses Konto mit dieser OpenID." -#: mod/settings.php:1110 +#: mod/settings.php:1153 msgid "Publish your default profile in your local site directory?" msgstr "Darf Dein Standardprofil im Verzeichnis dieses Servers veröffentlicht werden?" -#: mod/settings.php:1116 +#: mod/settings.php:1159 msgid "Publish your default profile in the global social directory?" msgstr "Darf Dein Standardprofil im weltweiten Verzeichnis veröffentlicht werden?" -#: mod/settings.php:1124 +#: mod/settings.php:1167 msgid "Hide your contact/friend list from viewers of your default profile?" msgstr "Liste der Kontakte vor Betrachtern des Standardprofils verbergen?" -#: mod/settings.php:1128 +#: mod/settings.php:1171 msgid "" "If enabled, posting public messages to Diaspora and other networks isn't " "possible." msgstr "Wenn aktiviert, ist das senden öffentliche Nachrichten zu Diaspora und anderen Netzwerken nicht möglich" -#: mod/settings.php:1133 +#: mod/settings.php:1176 msgid "Allow friends to post to your profile page?" msgstr "Dürfen Deine Kontakte auf Deine Pinnwand schreiben?" -#: mod/settings.php:1139 +#: mod/settings.php:1182 msgid "Allow friends to tag your posts?" msgstr "Dürfen Deine Kontakte Deine Beiträge mit Schlagwörtern versehen?" -#: mod/settings.php:1145 +#: mod/settings.php:1188 msgid "Allow us to suggest you as a potential friend to new members?" msgstr "Dürfen wir Dich neuen Mitgliedern als potentiellen Kontakt vorschlagen?" -#: mod/settings.php:1151 +#: mod/settings.php:1194 msgid "Permit unknown people to send you private mail?" msgstr "Dürfen Dir Unbekannte private Nachrichten schicken?" -#: mod/settings.php:1159 +#: mod/settings.php:1202 msgid "Profile is not published." msgstr "Profil ist nicht veröffentlicht." -#: mod/settings.php:1167 +#: mod/settings.php:1210 #, php-format msgid "Your Identity Address is '%s' or '%s'." msgstr "Die Adresse deines Profils lautet '%s' oder '%s'." -#: mod/settings.php:1174 +#: mod/settings.php:1217 msgid "Automatically expire posts after this many days:" msgstr "Beiträge verfallen automatisch nach dieser Anzahl von Tagen:" -#: mod/settings.php:1174 +#: mod/settings.php:1217 msgid "If empty, posts will not expire. Expired posts will be deleted" msgstr "Wenn leer verfallen Beiträge nie automatisch. Verfallene Beiträge werden gelöscht." -#: mod/settings.php:1175 +#: mod/settings.php:1218 msgid "Advanced expiration settings" msgstr "Erweiterte Verfallseinstellungen" -#: mod/settings.php:1176 +#: mod/settings.php:1219 msgid "Advanced Expiration" msgstr "Erweitertes Verfallen" -#: mod/settings.php:1177 +#: mod/settings.php:1220 msgid "Expire posts:" msgstr "Beiträge verfallen lassen:" -#: mod/settings.php:1178 +#: mod/settings.php:1221 msgid "Expire personal notes:" msgstr "Persönliche Notizen verfallen lassen:" -#: mod/settings.php:1179 +#: mod/settings.php:1222 msgid "Expire starred posts:" msgstr "Markierte Beiträge verfallen lassen:" -#: mod/settings.php:1180 +#: mod/settings.php:1223 msgid "Expire photos:" msgstr "Fotos verfallen lassen:" -#: mod/settings.php:1181 +#: mod/settings.php:1224 msgid "Only expire posts by others:" msgstr "Nur Beiträge anderer verfallen:" -#: mod/settings.php:1209 +#: mod/settings.php:1252 msgid "Account Settings" msgstr "Kontoeinstellungen" -#: mod/settings.php:1217 +#: mod/settings.php:1260 msgid "Password Settings" msgstr "Passwort-Einstellungen" -#: mod/settings.php:1219 +#: mod/settings.php:1262 msgid "Leave password fields blank unless changing" msgstr "Lass die Passwort-Felder leer, außer Du willst das Passwort ändern" -#: mod/settings.php:1220 +#: mod/settings.php:1263 msgid "Current Password:" msgstr "Aktuelles Passwort:" -#: mod/settings.php:1220 mod/settings.php:1221 +#: mod/settings.php:1263 mod/settings.php:1264 msgid "Your current password to confirm the changes" msgstr "Dein aktuelles Passwort um die Änderungen zu bestätigen" -#: mod/settings.php:1221 +#: mod/settings.php:1264 msgid "Password:" msgstr "Passwort:" -#: mod/settings.php:1225 +#: mod/settings.php:1268 msgid "Basic Settings" msgstr "Grundeinstellungen" -#: mod/settings.php:1227 +#: mod/settings.php:1270 msgid "Email Address:" msgstr "E-Mail-Adresse:" -#: mod/settings.php:1228 +#: mod/settings.php:1271 msgid "Your Timezone:" msgstr "Deine Zeitzone:" -#: mod/settings.php:1229 +#: mod/settings.php:1272 msgid "Your Language:" msgstr "Deine Sprache:" -#: mod/settings.php:1229 +#: mod/settings.php:1272 msgid "" "Set the language we use to show you friendica interface and to send you " "emails" msgstr "Wähle die Sprache, in der wir Dir die Friendica-Oberfläche präsentieren sollen und Dir E-Mail schicken" -#: mod/settings.php:1230 +#: mod/settings.php:1273 msgid "Default Post Location:" msgstr "Standardstandort:" -#: mod/settings.php:1231 +#: mod/settings.php:1274 msgid "Use Browser Location:" msgstr "Standort des Browsers verwenden:" -#: mod/settings.php:1234 +#: mod/settings.php:1277 msgid "Security and Privacy Settings" msgstr "Sicherheits- und Privatsphäre-Einstellungen" -#: mod/settings.php:1236 +#: mod/settings.php:1279 msgid "Maximum Friend Requests/Day:" -msgstr "Maximale Anzahl von Freundschaftsanfragen/Tag:" +msgstr "Maximale Anzahl vonKontaktanfragen/Tag:" -#: mod/settings.php:1236 mod/settings.php:1266 +#: mod/settings.php:1279 mod/settings.php:1309 msgid "(to prevent spam abuse)" msgstr "(um SPAM zu vermeiden)" -#: mod/settings.php:1237 +#: mod/settings.php:1280 msgid "Default Post Permissions" msgstr "Standard-Zugriffsrechte für Beiträge" -#: mod/settings.php:1238 +#: mod/settings.php:1281 msgid "(click to open/close)" msgstr "(klicke zum öffnen/schließen)" -#: mod/settings.php:1249 +#: mod/settings.php:1292 msgid "Default Private Post" msgstr "Privater Standardbeitrag" -#: mod/settings.php:1250 +#: mod/settings.php:1293 msgid "Default Public Post" msgstr "Öffentlicher Standardbeitrag" -#: mod/settings.php:1254 +#: mod/settings.php:1297 msgid "Default Permissions for New Posts" msgstr "Standardberechtigungen für neue Beiträge" -#: mod/settings.php:1266 +#: mod/settings.php:1309 msgid "Maximum private messages per day from unknown people:" msgstr "Maximale Anzahl privater Nachrichten von Unbekannten pro Tag:" -#: mod/settings.php:1269 +#: mod/settings.php:1312 msgid "Notification Settings" msgstr "Benachrichtigungseinstellungen" -#: mod/settings.php:1270 +#: mod/settings.php:1313 msgid "By default post a status message when:" msgstr "Standardmäßig eine Statusnachricht posten, wenn:" -#: mod/settings.php:1271 +#: mod/settings.php:1314 msgid "accepting a friend request" msgstr "– Du eine Kontaktanfrage akzeptierst" -#: mod/settings.php:1272 +#: mod/settings.php:1315 msgid "joining a forum/community" msgstr "– Du einem Forum/einer Gemeinschaftsseite beitrittst" -#: mod/settings.php:1273 +#: mod/settings.php:1316 msgid "making an interesting profile change" msgstr "– Du eine interessante Änderung an Deinem Profil durchführst" -#: mod/settings.php:1274 +#: mod/settings.php:1317 msgid "Send a notification email when:" msgstr "Benachrichtigungs-E-Mail senden wenn:" -#: mod/settings.php:1275 +#: mod/settings.php:1318 msgid "You receive an introduction" msgstr "– Du eine Kontaktanfrage erhältst" -#: mod/settings.php:1276 +#: mod/settings.php:1319 msgid "Your introductions are confirmed" msgstr "– eine Deiner Kontaktanfragen akzeptiert wurde" -#: mod/settings.php:1277 +#: mod/settings.php:1320 msgid "Someone writes on your profile wall" msgstr "– jemand etwas auf Deine Pinnwand schreibt" -#: mod/settings.php:1278 +#: mod/settings.php:1321 msgid "Someone writes a followup comment" msgstr "– jemand auch einen Kommentar verfasst" -#: mod/settings.php:1279 +#: mod/settings.php:1322 msgid "You receive a private message" msgstr "– Du eine private Nachricht erhältst" -#: mod/settings.php:1280 +#: mod/settings.php:1323 msgid "You receive a friend suggestion" msgstr "– Du eine Empfehlung erhältst" -#: mod/settings.php:1281 +#: mod/settings.php:1324 msgid "You are tagged in a post" msgstr "– Du in einem Beitrag erwähnt wirst" -#: mod/settings.php:1282 +#: mod/settings.php:1325 msgid "You are poked/prodded/etc. in a post" msgstr "– Du von jemandem angestupst oder sonstwie behandelt wirst" -#: mod/settings.php:1284 +#: mod/settings.php:1327 msgid "Activate desktop notifications" msgstr "Desktop Benachrichtigungen einschalten" -#: mod/settings.php:1284 +#: mod/settings.php:1327 msgid "Show desktop popup on new notifications" msgstr "Desktop Benachrichtigungen einschalten" -#: mod/settings.php:1286 +#: mod/settings.php:1329 msgid "Text-only notification emails" msgstr "Benachrichtigungs E-Mail als Rein-Text." -#: mod/settings.php:1288 +#: mod/settings.php:1331 msgid "Send text only notification emails, without the html part" msgstr "Sende Benachrichtigungs E-Mail als Rein-Text - ohne HTML-Teil" -#: mod/settings.php:1290 +#: mod/settings.php:1333 msgid "Advanced Account/Page Type Settings" msgstr "Erweiterte Konto-/Seitentyp-Einstellungen" -#: mod/settings.php:1291 +#: mod/settings.php:1334 msgid "Change the behaviour of this account for special situations" msgstr "Verhalten dieses Kontos in bestimmten Situationen:" -#: mod/settings.php:1294 +#: mod/settings.php:1337 msgid "Relocate" msgstr "Umziehen" -#: mod/settings.php:1295 +#: mod/settings.php:1338 msgid "" "If you have moved this profile from another server, and some of your " "contacts don't receive your updates, try pushing this button." msgstr "Wenn Du Dein Profil von einem anderen Server umgezogen hast und einige Deiner Kontakte Deine Beiträge nicht erhalten, verwende diesen Button." -#: mod/settings.php:1296 +#: mod/settings.php:1339 msgid "Resend relocate message to contacts" msgstr "Umzugsbenachrichtigung erneut an Kontakte senden" -#: mod/wallmessage.php:42 mod/wallmessage.php:112 -#, php-format -msgid "Number of daily wall messages for %s exceeded. Message failed." -msgstr "Maximale Anzahl der täglichen Pinnwand Nachrichten für %s ist überschritten. Zustellung fehlgeschlagen." - -#: mod/wallmessage.php:56 mod/message.php:71 -msgid "No recipient selected." -msgstr "Kein Empfänger gewählt." - -#: mod/wallmessage.php:59 -msgid "Unable to check your home location." -msgstr "Konnte Deinen Heimatort nicht bestimmen." - -#: mod/wallmessage.php:62 mod/message.php:78 -msgid "Message could not be sent." -msgstr "Nachricht konnte nicht gesendet werden." - -#: mod/wallmessage.php:65 mod/message.php:81 -msgid "Message collection failure." -msgstr "Konnte Nachrichten nicht abrufen." - -#: mod/wallmessage.php:68 mod/message.php:84 -msgid "Message sent." -msgstr "Nachricht gesendet." - -#: mod/wallmessage.php:86 mod/wallmessage.php:95 -msgid "No recipient." -msgstr "Kein Empfänger." - -#: mod/wallmessage.php:142 mod/message.php:327 -msgid "Send Private Message" -msgstr "Private Nachricht senden" - -#: mod/wallmessage.php:143 -#, php-format -msgid "" -"If you wish for %s to respond, please check that the privacy settings on " -"your site allow private mail from unknown senders." -msgstr "Wenn Du möchtest, dass %s Dir antworten kann, überprüfe Deine Privatsphären-Einstellungen und erlaube private Nachrichten von unbekannten Absendern." - -#: mod/wallmessage.php:144 mod/message.php:328 mod/message.php:514 -msgid "To:" -msgstr "An:" - -#: mod/wallmessage.php:145 mod/message.php:333 mod/message.php:516 -msgid "Subject:" -msgstr "Betreff:" - -#: mod/share.php:38 -msgid "link" -msgstr "Link" - -#: mod/api.php:76 mod/api.php:102 -msgid "Authorize application connection" -msgstr "Verbindung der Applikation autorisieren" - -#: mod/api.php:77 -msgid "Return to your app and insert this Securty Code:" -msgstr "Gehe zu Deiner Anwendung zurück und trage dort folgenden Sicherheitscode ein:" - -#: mod/api.php:89 -msgid "Please login to continue." -msgstr "Bitte melde Dich an um fortzufahren." - -#: mod/api.php:104 -msgid "" -"Do you want to authorize this application to access your posts and contacts," -" and/or create new posts for you?" -msgstr "Möchtest Du dieser Anwendung den Zugriff auf Deine Beiträge und Kontakte, sowie das Erstellen neuer Beiträge in Deinem Namen gestatten?" - -#: mod/babel.php:17 -msgid "Source (bbcode) text:" -msgstr "Quelle (bbcode) Text:" - -#: mod/babel.php:23 -msgid "Source (Diaspora) text to convert to BBcode:" -msgstr "Eingabe (Diaspora) nach BBCode zu konvertierender Text:" - -#: mod/babel.php:31 -msgid "Source input: " -msgstr "Originaltext:" - -#: mod/babel.php:35 -msgid "bb2html (raw HTML): " -msgstr "bb2html (reines HTML): " - -#: mod/babel.php:39 -msgid "bb2html: " -msgstr "bb2html: " - -#: mod/babel.php:43 -msgid "bb2html2bb: " -msgstr "bb2html2bb: " - -#: mod/babel.php:47 -msgid "bb2md: " -msgstr "bb2md: " - -#: mod/babel.php:51 -msgid "bb2md2html: " -msgstr "bb2md2html: " - -#: mod/babel.php:55 -msgid "bb2dia2bb: " -msgstr "bb2dia2bb: " - -#: mod/babel.php:59 -msgid "bb2md2html2bb: " -msgstr "bb2md2html2bb: " - -#: mod/babel.php:69 -msgid "Source input (Diaspora format): " -msgstr "Originaltext (Diaspora Format): " - -#: mod/babel.php:74 -msgid "diaspora2bb: " -msgstr "diaspora2bb: " - -#: mod/item.php:115 -msgid "Unable to locate original post." -msgstr "Konnte den Originalbeitrag nicht finden." - -#: mod/item.php:333 -msgid "Empty post discarded." -msgstr "Leerer Beitrag wurde verworfen." - -#: mod/item.php:847 -msgid "System error. Post not saved." -msgstr "Systemfehler. Beitrag konnte nicht gespeichert werden." - -#: mod/item.php:973 -#, php-format -msgid "" -"This message was sent to you by %s, a member of the Friendica social " -"network." -msgstr "Diese Nachricht wurde dir von %s geschickt, einem Mitglied des Sozialen Netzwerks Friendica." - -#: mod/item.php:975 -#, php-format -msgid "You may visit them online at %s" -msgstr "Du kannst sie online unter %s besuchen" - -#: mod/item.php:976 -msgid "" -"Please contact the sender by replying to this post if you do not wish to " -"receive these messages." -msgstr "Falls Du diese Beiträge nicht erhalten möchtest, kontaktiere bitte den Autor, indem Du auf diese Nachricht antwortest." - -#: mod/item.php:980 -#, php-format -msgid "%s posted an update." -msgstr "%s hat ein Update veröffentlicht." - -#: mod/ostatus_subscribe.php:14 -msgid "Subscribing to OStatus contacts" -msgstr "OStatus Kontakten folgen" - -#: mod/ostatus_subscribe.php:25 -msgid "No contact provided." -msgstr "Keine Kontakte gefunden." - -#: mod/ostatus_subscribe.php:30 -msgid "Couldn't fetch information for contact." -msgstr "Konnte die Kontaktinformationen nicht einholen." - -#: mod/ostatus_subscribe.php:38 -msgid "Couldn't fetch friends for contact." -msgstr "Konnte die Kontaktliste des Kontakts nicht abfragen." - -#: mod/ostatus_subscribe.php:65 -msgid "success" -msgstr "Erfolg" - -#: mod/ostatus_subscribe.php:67 -msgid "failed" -msgstr "Fehlgeschlagen" - -#: mod/ostatus_subscribe.php:69 object/Item.php:235 -msgid "ignored" -msgstr "Ignoriert" - -#: mod/dfrn_poll.php:104 mod/dfrn_poll.php:537 -#, php-format -msgid "%1$s welcomes %2$s" -msgstr "%1$s heißt %2$s herzlich willkommen" - -#: mod/profile.php:179 -msgid "Tips for New Members" -msgstr "Tipps für neue Nutzer" - -#: mod/message.php:75 -msgid "Unable to locate contact information." -msgstr "Konnte die Kontaktinformationen nicht finden." - -#: mod/message.php:215 -msgid "Do you really want to delete this message?" -msgstr "Möchtest Du wirklich diese Nachricht löschen?" - -#: mod/message.php:235 -msgid "Message deleted." -msgstr "Nachricht gelöscht." - -#: mod/message.php:266 -msgid "Conversation removed." -msgstr "Unterhaltung gelöscht." - -#: mod/message.php:368 -msgid "No messages." -msgstr "Keine Nachrichten." - -#: mod/message.php:411 -msgid "Message not available." -msgstr "Nachricht nicht verfügbar." - -#: mod/message.php:481 -msgid "Delete message" -msgstr "Nachricht löschen" - -#: mod/message.php:507 mod/message.php:581 -msgid "Delete conversation" -msgstr "Unterhaltung löschen" - -#: mod/message.php:509 -msgid "" -"No secure communications available. You may be able to " -"respond from the sender's profile page." -msgstr "Sichere Kommunikation ist nicht verfügbar. Eventuell kannst Du auf der Profilseite des Absenders antworten." - -#: mod/message.php:513 -msgid "Send Reply" -msgstr "Antwort senden" - -#: mod/message.php:557 -#, php-format -msgid "Unknown sender - %s" -msgstr "'Unbekannter Absender - %s" - -#: mod/message.php:559 -#, php-format -msgid "You and %s" -msgstr "Du und %s" - -#: mod/message.php:561 -#, php-format -msgid "%s and You" -msgstr "%s und Du" - -#: mod/message.php:584 -msgid "D, d M Y - g:i A" -msgstr "D, d. M Y - g:i A" - -#: mod/message.php:587 -#, php-format -msgid "%d message" -msgid_plural "%d messages" -msgstr[0] "%d Nachricht" -msgstr[1] "%d Nachrichten" - -#: mod/manage.php:139 -msgid "Manage Identities and/or Pages" -msgstr "Verwalte Identitäten und/oder Seiten" - -#: mod/manage.php:140 -msgid "" -"Toggle between different identities or community/group pages which share " -"your account details or which you have been granted \"manage\" permissions" -msgstr "Zwischen verschiedenen Identitäten oder Gemeinschafts-/Gruppenseiten wechseln, die Deine Kontoinformationen teilen oder zu denen Du „Verwalten“-Befugnisse bekommen hast." - -#: mod/manage.php:141 -msgid "Select an identity to manage: " -msgstr "Wähle eine Identität zum Verwalten aus: " - -#: object/Item.php:95 -msgid "This entry was edited" -msgstr "Dieser Beitrag wurde bearbeitet." - -#: object/Item.php:191 -msgid "I will attend" -msgstr "Ich werde teilnehmen" - -#: object/Item.php:191 -msgid "I will not attend" -msgstr "Ich werde nicht teilnehmen" - -#: object/Item.php:191 -msgid "I might attend" -msgstr "Ich werde eventuell teilnehmen" - -#: object/Item.php:230 -msgid "ignore thread" -msgstr "Thread ignorieren" - -#: object/Item.php:231 -msgid "unignore thread" -msgstr "Thread nicht mehr ignorieren" - -#: object/Item.php:232 -msgid "toggle ignore status" -msgstr "Ignoriert-Status ein-/ausschalten" - -#: object/Item.php:360 +#: object/Item.php:370 msgid "via" msgstr "via" +#: view/theme/frio/php/Image.php:23 +msgid "Repeat the image" +msgstr "Bild wiederholen" + +#: view/theme/frio/php/Image.php:23 +msgid "Will repeat your image to fill the background." +msgstr "Wiederholt das Bild um den Hintergrund auszufüllen." + +#: view/theme/frio/php/Image.php:25 +msgid "Stretch" +msgstr "Strecken" + +#: view/theme/frio/php/Image.php:25 +msgid "Will stretch to width/height of the image." +msgstr "Streckt Breite/Höhe des Bildes." + +#: view/theme/frio/php/Image.php:27 +msgid "Resize fill and-clip" +msgstr "Größe anpassen - Ausfüllen und abschneiden" + +#: view/theme/frio/php/Image.php:27 +msgid "Resize to fill and retain aspect ratio." +msgstr "Größe anpassen: Ausfüllen und Seitenverhältnis beibehalten" + +#: view/theme/frio/php/Image.php:29 +msgid "Resize best fit" +msgstr "Größe anpassen - Optimale Größe" + +#: view/theme/frio/php/Image.php:29 +msgid "Resize to best fit and retain aspect ratio." +msgstr "Größe anpassen - Optimale Größe und Seitenverhältnisse beibehalten" + +#: view/theme/frio/config.php:42 +msgid "Default" +msgstr "Standard" + +#: view/theme/frio/config.php:54 +msgid "Note: " +msgstr "Hinweis:" + +#: view/theme/frio/config.php:54 +msgid "Check image permissions if all users are allowed to visit the image" +msgstr "Überprüfe, dass alle Benutzer die Berechtigung haben dieses Bild anzusehen" + +#: view/theme/frio/config.php:62 +msgid "Select scheme" +msgstr "Schema auswählen" + +#: view/theme/frio/config.php:63 +msgid "Navigation bar background color" +msgstr "Hintergrundfarbe der Navigationsleiste" + +#: view/theme/frio/config.php:64 +msgid "Navigation bar icon color " +msgstr "Icon Farbe in der Navigationsleiste" + +#: view/theme/frio/config.php:65 +msgid "Link color" +msgstr "Linkfarbe" + +#: view/theme/frio/config.php:66 +msgid "Set the background color" +msgstr "Hintergrundfarbe festlegen" + +#: view/theme/frio/config.php:67 +msgid "Content background transparency" +msgstr "Transparanz des Hintergrunds von Beiträgem" + +#: view/theme/frio/config.php:68 +msgid "Set the background image" +msgstr "Hintergrundbild festlegen" + +#: view/theme/frio/theme.php:226 +msgid "Guest" +msgstr "Gast" + +#: view/theme/frio/theme.php:232 +msgid "Visitor" +msgstr "Besucher" + #: view/theme/cleanzero/config.php:83 msgid "Set resize level for images in posts and comments (width and height)" msgstr "Wähle das Vergrößerungsmaß für Bilder in Beiträgen und Kommentaren (Höhe und Breite)" @@ -8535,7 +8739,7 @@ msgstr "Letzte Nutzer" #: view/theme/diabook/theme.php:523 view/theme/diabook/theme.php:629 #: view/theme/diabook/config.php:163 msgid "Find Friends" -msgstr "Freunde finden" +msgstr "Kontakte finden" #: view/theme/vier/theme.php:200 view/theme/diabook/theme.php:524 msgid "Local Directory" @@ -8648,3 +8852,56 @@ msgstr "slackr" #: view/theme/duepuntozero/config.php:62 msgid "Variations" msgstr "Variationen" + +#: index.php:447 +msgid "toggle mobile" +msgstr "auf/von Mobile Ansicht wechseln" + +#: boot.php:924 +msgid "Delete this item?" +msgstr "Diesen Beitrag löschen?" + +#: boot.php:927 +msgid "show fewer" +msgstr "weniger anzeigen" + +#: boot.php:1589 +#, php-format +msgid "Update %s failed. See error logs." +msgstr "Update %s fehlgeschlagen. Bitte Fehlerprotokoll überprüfen." + +#: boot.php:1701 +msgid "Create a New Account" +msgstr "Neues Konto erstellen" + +#: boot.php:1730 +msgid "Password: " +msgstr "Passwort: " + +#: boot.php:1731 +msgid "Remember me" +msgstr "Anmeldedaten merken" + +#: boot.php:1734 +msgid "Or login using OpenID: " +msgstr "Oder melde Dich mit Deiner OpenID an: " + +#: boot.php:1740 +msgid "Forgot your password?" +msgstr "Passwort vergessen?" + +#: boot.php:1743 +msgid "Website Terms of Service" +msgstr "Website Nutzungsbedingungen" + +#: boot.php:1744 +msgid "terms of service" +msgstr "Nutzungsbedingungen" + +#: boot.php:1746 +msgid "Website Privacy Policy" +msgstr "Website Datenschutzerklärung" + +#: boot.php:1747 +msgid "privacy policy" +msgstr "Datenschutzerklärung" diff --git a/view/de/strings.php b/view/lang/de/strings.php similarity index 95% rename from view/de/strings.php rename to view/lang/de/strings.php index e0f08030c..a7694138d 100644 --- a/view/de/strings.php +++ b/view/lang/de/strings.php @@ -5,26 +5,9 @@ function string_plural_select_de($n){ return ($n != 1);; }} ; -$a->strings["Delete this item?"] = "Diesen Beitrag löschen?"; -$a->strings["Comment"] = "Kommentar"; -$a->strings["show more"] = "mehr anzeigen"; -$a->strings["show fewer"] = "weniger anzeigen"; -$a->strings["Update %s failed. See error logs."] = "Update %s fehlgeschlagen. Bitte Fehlerprotokoll überprüfen."; -$a->strings["Create a New Account"] = "Neues Konto erstellen"; -$a->strings["Register"] = "Registrieren"; -$a->strings["Logout"] = "Abmelden"; -$a->strings["Login"] = "Anmeldung"; -$a->strings["Nickname or Email address: "] = "Spitzname oder E-Mail:"; -$a->strings["Password: "] = "Passwort: "; -$a->strings["Remember me"] = "Anmeldedaten merken"; -$a->strings["Or login using OpenID: "] = "Oder melde Dich mit Deiner OpenID an: "; -$a->strings["Forgot your password?"] = "Passwort vergessen?"; -$a->strings["Password Reset"] = "Passwort zurücksetzen"; -$a->strings["Website Terms of Service"] = "Website Nutzungsbedingungen"; -$a->strings["terms of service"] = "Nutzungsbedingungen"; -$a->strings["Website Privacy Policy"] = "Website Datenschutzerklärung"; -$a->strings["privacy policy"] = "Datenschutzerklärung"; $a->strings["Miscellaneous"] = "Verschiedenes"; +$a->strings["Birthday:"] = "Geburtstag:"; +$a->strings["Age: "] = "Alter: "; $a->strings["YYYY-MM-DD or MM-DD"] = "YYYY-MM-DD oder MM-DD"; $a->strings["never"] = "nie"; $a->strings["less than a second ago"] = "vor weniger als einer Sekunde"; @@ -71,6 +54,7 @@ $a->strings["%d contact in common"] = array( 0 => "%d gemeinsamer Kontakt", 1 => "%d gemeinsame Kontakte", ); +$a->strings["show more"] = "mehr anzeigen"; $a->strings["Friendica Notification"] = "Friendica-Benachrichtigung"; $a->strings["Thank You,"] = "Danke,"; $a->strings["%s Administrator"] = "der Administrator von %s"; @@ -113,49 +97,26 @@ $a->strings["%1\$s is sharing with you at %2\$s"] = "%1\$s teilt mit Dir auf %2\ $a->strings["[Friendica:Notify] You have a new follower"] = "[Friendica Benachrichtigung] Du hast einen neuen Kontakt auf "; $a->strings["You have a new follower at %2\$s : %1\$s"] = "Du hast einen neuen Kontakt auf %2\$s: %1\$s"; $a->strings["[Friendica:Notify] Friend suggestion received"] = "[Friendica-Meldung] Kontaktvorschlag erhalten"; -$a->strings["You've received a friend suggestion from '%1\$s' at %2\$s"] = "Du hast einen Freunde-Vorschlag von '%1\$s' auf %2\$s erhalten"; -$a->strings["You've received [url=%1\$s]a friend suggestion[/url] for %2\$s from %3\$s."] = "Du hast einen [url=%1\$s]Freunde-Vorschlag[/url] %2\$s von %3\$s erhalten."; +$a->strings["You've received a friend suggestion from '%1\$s' at %2\$s"] = "Du hast einen Kontakt-Vorschlag von '%1\$s' auf %2\$s erhalten"; +$a->strings["You've received [url=%1\$s]a friend suggestion[/url] for %2\$s from %3\$s."] = "Du hast einen [url=%1\$s]Kontakt-Vorschlag[/url] %2\$s von %3\$s erhalten."; $a->strings["Name:"] = "Name:"; $a->strings["Photo:"] = "Foto:"; $a->strings["Please visit %s to approve or reject the suggestion."] = "Bitte besuche %s, um den Vorschlag zu akzeptieren oder abzulehnen."; $a->strings["[Friendica:Notify] Connection accepted"] = "[Friendica-Benachrichtigung] Kontaktanfrage bestätigt"; $a->strings["'%1\$s' has accepted your connection request at %2\$s"] = "'%1\$s' hat Deine Kontaktanfrage auf %2\$s bestätigt"; $a->strings["%2\$s has accepted your [url=%1\$s]connection request[/url]."] = "%2\$s hat Deine [url=%1\$s]Kontaktanfrage[/url] akzeptiert."; -$a->strings["You are now mutual friends and may exchange status updates, photos, and email\n\twithout restriction."] = "Ihr seit nun beidseitige Freunde und könnt Statusmitteilungen, Bilder und Emails ohne Einschränkungen austauschen."; -$a->strings["Please visit %s if you wish to make any changes to this relationship."] = "Bitte besuche %s, wenn Du Änderungen an eurer Beziehung vornehmen willst."; +$a->strings["You are now mutual friends and may exchange status updates, photos, and email without restriction."] = "Ihr seid nun beidseitige Kontakte und könnt Statusmitteilungen, Bilder und Emails ohne Einschränkungen austauschen."; +$a->strings["Please visit %s if you wish to make any changes to this relationship."] = "Bitte besuche %s, wenn Du Änderungen an eurer Beziehung vornehmen willst."; $a->strings["'%1\$s' has chosen to accept you a \"fan\", which restricts some forms of communication - such as private messaging and some profile interactions. If this is a celebrity or community page, these settings were applied automatically."] = "'%1\$s' hat sich entschieden Dich als \"Fan\" zu akzeptieren, dies schränkt einige Kommunikationswege - wie private Nachrichten und einige Interaktionsmöglichkeiten auf der Profilseite - ein. Wenn dies eine Berühmtheiten- oder Gemeinschaftsseite ist, werden diese Einstellungen automatisch vorgenommen."; -$a->strings["'%1\$s' may choose to extend this into a two-way or more permissive relationship in the future. "] = "'%1\$s' kann den Kontaktstatus zu einem späteren Zeitpunkt erweitern und diese Einschränkungen aufheben. "; +$a->strings["'%1\$s' may choose to extend this into a two-way or more permissive relationship in the future."] = "'%1\$s' kann den Kontaktstatus zu einem späteren Zeitpunkt erweitern und diese Einschränkungen aufheben. "; +$a->strings["Please visit %s if you wish to make any changes to this relationship."] = "Bitte besuche %s, wenn Du Änderungen an eurer Beziehung vornehmen willst."; $a->strings["[Friendica System:Notify] registration request"] = "[Friendica System:Benachrichtigung] Registrationsanfrage"; $a->strings["You've received a registration request from '%1\$s' at %2\$s"] = "Du hast eine Registrierungsanfrage von %2\$s auf '%1\$s' erhalten"; $a->strings["You've received a [url=%1\$s]registration request[/url] from %2\$s."] = "Du hast eine [url=%1\$s]Registrierungsanfrage[/url] von %2\$s erhalten."; $a->strings["Full Name:\t%1\$s\\nSite Location:\t%2\$s\\nLogin Name:\t%3\$s (%4\$s)"] = "Kompletter Name:\t%1\$s\\nURL der Seite:\t%2\$s\\nLogin Name:\t%3\$s (%4\$s)"; $a->strings["Please visit %s to approve or reject the request."] = "Bitte besuche %s um die Anfrage zu bearbeiten."; -$a->strings["Click here to upgrade."] = "Zum Upgraden hier klicken."; -$a->strings["This action exceeds the limits set by your subscription plan."] = "Diese Aktion überschreitet die Obergrenze Deines Abonnements."; -$a->strings["This action is not available under your subscription plan."] = "Diese Aktion ist in Deinem Abonnement nicht verfügbar."; $a->strings["Forums"] = "Foren"; $a->strings["External link to forum"] = "Externer Link zum Forum"; -$a->strings["%1\$s likes %2\$s's %3\$s"] = "%1\$s mag %2\$ss %3\$s"; -$a->strings["status"] = "Status"; -$a->strings["Sharing notification from Diaspora network"] = "Freigabe-Benachrichtigung von Diaspora"; -$a->strings["Attachments:"] = "Anhänge:"; -$a->strings["%s\\'s birthday"] = "%ss Geburtstag"; -$a->strings["Error decoding account file"] = "Fehler beim Verarbeiten der Account Datei"; -$a->strings["Error! No version data in file! This is not a Friendica account file?"] = "Fehler! Keine Versionsdaten in der Datei! Ist das wirklich eine Friendica Account Datei?"; -$a->strings["Error! Cannot check nickname"] = "Fehler! Konnte den Nickname nicht überprüfen."; -$a->strings["User '%s' already exists on this server!"] = "Nutzer '%s' existiert bereits auf diesem Server!"; -$a->strings["User creation error"] = "Fehler beim Anlegen des Nutzeraccounts aufgetreten"; -$a->strings["User profile creation error"] = "Fehler beim Anlegen des Nutzerkontos"; -$a->strings["%d contact not imported"] = array( - 0 => "%d Kontakt nicht importiert", - 1 => "%d Kontakte nicht importiert", -); -$a->strings["Done. You can now login with your username and password"] = "Erledigt. Du kannst Dich jetzt mit Deinem Nutzernamen und Passwort anmelden"; -$a->strings["Cannot locate DNS info for database server '%s'"] = "Kann die DNS Informationen für den Datenbankserver '%s' nicht ermitteln."; -$a->strings["l F d, Y \\@ g:i A"] = "l, d. F Y\\, H:i"; -$a->strings["Starts:"] = "Beginnt:"; -$a->strings["Finishes:"] = "Endet:"; -$a->strings["Location:"] = "Ort:"; $a->strings["Welcome "] = "Willkommen "; $a->strings["Please upload a profile photo."] = "Bitte lade ein Profilbild hoch."; $a->strings["Welcome back "] = "Willkommen zurück "; @@ -199,7 +160,7 @@ $a->strings["Infatuated"] = "verliebt"; $a->strings["Dating"] = "Dating"; $a->strings["Unfaithful"] = "Untreu"; $a->strings["Sex Addict"] = "Sexbesessen"; -$a->strings["Friends"] = "Freunde"; +$a->strings["Friends"] = "Kontakte"; $a->strings["Friends/Benefits"] = "Freunde/Zuwendungen"; $a->strings["Casual"] = "Casual"; $a->strings["Engaged"] = "Verlobt"; @@ -221,6 +182,172 @@ $a->strings["Uncertain"] = "Unsicher"; $a->strings["It's complicated"] = "Ist kompliziert"; $a->strings["Don't care"] = "Ist mir nicht wichtig"; $a->strings["Ask me"] = "Frag mich"; +$a->strings["l F d, Y \\@ g:i A"] = "l, d. F Y\\, H:i"; +$a->strings["Starts:"] = "Beginnt:"; +$a->strings["Finishes:"] = "Endet:"; +$a->strings["Location:"] = "Ort:"; +$a->strings["Embedded content"] = "Eingebetteter Inhalt"; +$a->strings["Embedding disabled"] = "Einbettungen deaktiviert"; +$a->strings["Cannot locate DNS info for database server '%s'"] = "Kann die DNS Informationen für den Datenbankserver '%s' nicht ermitteln."; +$a->strings["Logged out."] = "Abgemeldet."; +$a->strings["Login failed."] = "Anmeldung fehlgeschlagen."; +$a->strings["We encountered a problem while logging in with the OpenID you provided. Please check the correct spelling of the ID."] = "Beim Versuch Dich mit der von Dir angegebenen OpenID anzumelden trat ein Problem auf. Bitte überprüfe, dass Du die OpenID richtig geschrieben hast."; +$a->strings["The error message was:"] = "Die Fehlermeldung lautete:"; +$a->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."] = "Eine gelöschte Gruppe mit diesem Namen wurde wiederbelebt. Bestehende Berechtigungseinstellungen könnten auf diese Gruppe oder zukünftige Mitglieder angewandt werden. Falls Du dies nicht möchtest, erstelle bitte eine andere Gruppe mit einem anderen Namen."; +$a->strings["Default privacy group for new contacts"] = "Voreingestellte Gruppe für neue Kontakte"; +$a->strings["Everybody"] = "Alle Kontakte"; +$a->strings["edit"] = "bearbeiten"; +$a->strings["Groups"] = "Gruppen"; +$a->strings["Edit groups"] = "Gruppen bearbeiten"; +$a->strings["Edit group"] = "Gruppe bearbeiten"; +$a->strings["Create a new group"] = "Neue Gruppe erstellen"; +$a->strings["Group Name: "] = "Gruppenname:"; +$a->strings["Contacts not in any group"] = "Kontakte in keiner Gruppe"; +$a->strings["add"] = "hinzufügen"; +$a->strings["Wall Photos"] = "Pinnwand-Bilder"; +$a->strings["Passwords do not match. Password unchanged."] = "Die Passwörter stimmen nicht überein. Das Passwort bleibt unverändert."; +$a->strings["An invitation is required."] = "Du benötigst eine Einladung."; +$a->strings["Invitation could not be verified."] = "Die Einladung konnte nicht überprüft werden."; +$a->strings["Invalid OpenID url"] = "Ungültige OpenID URL"; +$a->strings["Please enter the required information."] = "Bitte trage die erforderlichen Informationen ein."; +$a->strings["Please use a shorter name."] = "Bitte verwende einen kürzeren Namen."; +$a->strings["Name too short."] = "Der Name ist zu kurz."; +$a->strings["That doesn't appear to be your full (First Last) name."] = "Das scheint nicht Dein kompletter Name (Vor- und Nachname) zu sein."; +$a->strings["Your email domain is not among those allowed on this site."] = "Die Domain Deiner E-Mail Adresse ist auf dieser Seite nicht erlaubt."; +$a->strings["Not a valid email address."] = "Keine gültige E-Mail-Adresse."; +$a->strings["Cannot use that email."] = "Konnte diese E-Mail-Adresse nicht verwenden."; +$a->strings["Your \"nickname\" can only contain \"a-z\", \"0-9\" and \"_\"."] = "Dein Spitzname darf nur aus Buchstaben und Zahlen (\"a-z\",\"0-9\" und \"_\") bestehen."; +$a->strings["Nickname is already registered. Please choose another."] = "Dieser Spitzname ist bereits vergeben. Bitte wähle einen anderen."; +$a->strings["Nickname was once registered here and may not be re-used. Please choose another."] = "Dieser Spitzname ist bereits vergeben. Bitte wähle einen anderen."; +$a->strings["SERIOUS ERROR: Generation of security keys failed."] = "FATALER FEHLER: Sicherheitsschlüssel konnten nicht erzeugt werden."; +$a->strings["An error occurred during registration. Please try again."] = "Während der Anmeldung ist ein Fehler aufgetreten. Bitte versuche es noch einmal."; +$a->strings["default"] = "Standard"; +$a->strings["An error occurred creating your default profile. Please try again."] = "Bei der Erstellung des Standardprofils ist ein Fehler aufgetreten. Bitte versuche es noch einmal."; +$a->strings["Profile Photos"] = "Profilbilder"; +$a->strings["\n\t\tDear %1\$s,\n\t\t\tThank you for registering at %2\$s. Your account has been created.\n\t"] = "\nHallo %1\$s,\n\ndanke für Deine Registrierung auf %2\$s. Dein Account wurde eingerichtet."; +$a->strings["\n\t\tThe login details are as follows:\n\t\t\tSite Location:\t%3\$s\n\t\t\tLogin Name:\t%1\$s\n\t\t\tPassword:\t%5\$s\n\n\t\tYou may change your password from your account \"Settings\" page after logging\n\t\tin.\n\n\t\tPlease take a few moments to review the other account settings on that page.\n\n\t\tYou may also wish to add some basic information to your default profile\n\t\t(on the \"Profiles\" page) so that other people can easily find you.\n\n\t\tWe recommend setting your full name, adding a profile photo,\n\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n\t\tperhaps what country you live in; if you do not wish to be more specific\n\t\tthan that.\n\n\t\tWe fully respect your right to privacy, and none of these items are necessary.\n\t\tIf you are new and do not know anybody here, they may help\n\t\tyou to make some new and interesting friends.\n\n\n\t\tThank you and welcome to %2\$s."] = "\nDie Anmelde-Details sind die folgenden:\n\tAdresse der Seite:\t%3\$s\n\tBenutzernamename:\t%1\$s\n\tPasswort:\t%5\$s\n\nDu kannst Dein Passwort unter \"Einstellungen\" ändern, sobald Du Dich\nangemeldet hast.\n\nBitte nimm Dir ein paar Minuten um die anderen Einstellungen auf dieser\nSeite zu kontrollieren.\n\nEventuell magst Du ja auch einige Informationen über Dich in Deinem\nProfil veröffentlichen, damit andere Leute Dich einfacher finden können.\nBearbeite hierfür einfach Dein Standard-Profil (über die Profil-Seite).\n\nWir empfehlen Dir, Deinen kompletten Namen anzugeben und ein zu Dir\npassendes Profilbild zu wählen, damit Dich alte Bekannte wieder finden.\nAußerdem ist es nützlich, wenn Du auf Deinem Profil Schlüsselwörter\nangibst. Das erleichtert es, Leute zu finden, die Deine Interessen teilen.\n\nWir respektieren Deine Privatsphäre - keine dieser Angaben ist nötig.\nWenn Du neu im Netzwerk bist und noch niemanden kennst, dann können sie\nallerdings dabei helfen, neue und interessante Kontakte zu knüpfen.\n\nDanke für Deine Aufmerksamkeit und willkommen auf %2\$s."; +$a->strings["Registration details for %s"] = "Details der Registration von %s"; +$a->strings["Nothing new here"] = "Keine Neuigkeiten"; +$a->strings["Clear notifications"] = "Bereinige Benachrichtigungen"; +$a->strings["@name, !forum, #tags, content"] = "@name, !forum, #tags, content"; +$a->strings["Logout"] = "Abmelden"; +$a->strings["End this session"] = "Diese Sitzung beenden"; +$a->strings["Status"] = "Status"; +$a->strings["Your posts and conversations"] = "Deine Beiträge und Unterhaltungen"; +$a->strings["Profile"] = "Profil"; +$a->strings["Your profile page"] = "Deine Profilseite"; +$a->strings["Photos"] = "Bilder"; +$a->strings["Your photos"] = "Deine Fotos"; +$a->strings["Videos"] = "Videos"; +$a->strings["Your videos"] = "Deine Videos"; +$a->strings["Events"] = "Veranstaltungen"; +$a->strings["Your events"] = "Deine Ereignisse"; +$a->strings["Personal notes"] = "Persönliche Notizen"; +$a->strings["Your personal notes"] = "Deine persönlichen Notizen"; +$a->strings["Login"] = "Anmeldung"; +$a->strings["Sign in"] = "Anmelden"; +$a->strings["Home"] = "Pinnwand"; +$a->strings["Home Page"] = "Homepage"; +$a->strings["Register"] = "Registrieren"; +$a->strings["Create an account"] = "Nutzerkonto erstellen"; +$a->strings["Help"] = "Hilfe"; +$a->strings["Help and documentation"] = "Hilfe und Dokumentation"; +$a->strings["Apps"] = "Apps"; +$a->strings["Addon applications, utilities, games"] = "Addon Anwendungen, Dienstprogramme, Spiele"; +$a->strings["Search"] = "Suche"; +$a->strings["Search site content"] = "Inhalt der Seite durchsuchen"; +$a->strings["Full Text"] = "Volltext"; +$a->strings["Tags"] = "Tags"; +$a->strings["Contacts"] = "Kontakte"; +$a->strings["Community"] = "Gemeinschaft"; +$a->strings["Conversations on this site"] = "Unterhaltungen auf dieser Seite"; +$a->strings["Conversations on the network"] = "Unterhaltungen im Netzwerk"; +$a->strings["Events and Calendar"] = "Ereignisse und Kalender"; +$a->strings["Directory"] = "Verzeichnis"; +$a->strings["People directory"] = "Nutzerverzeichnis"; +$a->strings["Information"] = "Information"; +$a->strings["Information about this friendica instance"] = "Informationen zu dieser Friendica Instanz"; +$a->strings["Network"] = "Netzwerk"; +$a->strings["Conversations from your friends"] = "Unterhaltungen Deiner Kontakte"; +$a->strings["Network Reset"] = "Netzwerk zurücksetzen"; +$a->strings["Load Network page with no filters"] = "Netzwerk-Seite ohne Filter laden"; +$a->strings["Introductions"] = "Kontaktanfragen"; +$a->strings["Friend Requests"] = "Kontaktanfragen"; +$a->strings["Notifications"] = "Benachrichtigungen"; +$a->strings["See all notifications"] = "Alle Benachrichtigungen anzeigen"; +$a->strings["Mark as seen"] = "Als gelesen markieren"; +$a->strings["Mark all system notifications seen"] = "Markiere alle Systembenachrichtigungen als gelesen"; +$a->strings["Messages"] = "Nachrichten"; +$a->strings["Private mail"] = "Private E-Mail"; +$a->strings["Inbox"] = "Eingang"; +$a->strings["Outbox"] = "Ausgang"; +$a->strings["New Message"] = "Neue Nachricht"; +$a->strings["Manage"] = "Verwalten"; +$a->strings["Manage other pages"] = "Andere Seiten verwalten"; +$a->strings["Delegations"] = "Delegationen"; +$a->strings["Delegate Page Management"] = "Delegiere das Management für die Seite"; +$a->strings["Settings"] = "Einstellungen"; +$a->strings["Account settings"] = "Kontoeinstellungen"; +$a->strings["Profiles"] = "Profile"; +$a->strings["Manage/Edit Profiles"] = "Profile Verwalten/Editieren"; +$a->strings["Manage/edit friends and contacts"] = " Kontakte verwalten/editieren"; +$a->strings["Admin"] = "Administration"; +$a->strings["Site setup and configuration"] = "Einstellungen der Seite und Konfiguration"; +$a->strings["Navigation"] = "Navigation"; +$a->strings["Site map"] = "Sitemap"; +$a->strings["Unknown | Not categorised"] = "Unbekannt | Nicht kategorisiert"; +$a->strings["Block immediately"] = "Sofort blockieren"; +$a->strings["Shady, spammer, self-marketer"] = "Zwielichtig, Spammer, Selbstdarsteller"; +$a->strings["Known to me, but no opinion"] = "Ist mir bekannt, hab aber keine Meinung"; +$a->strings["OK, probably harmless"] = "OK, wahrscheinlich harmlos"; +$a->strings["Reputable, has my trust"] = "Seriös, hat mein Vertrauen"; +$a->strings["Frequently"] = "immer wieder"; +$a->strings["Hourly"] = "Stündlich"; +$a->strings["Twice daily"] = "Zweimal täglich"; +$a->strings["Daily"] = "Täglich"; +$a->strings["Weekly"] = "Wöchentlich"; +$a->strings["Monthly"] = "Monatlich"; +$a->strings["Friendica"] = "Friendica"; +$a->strings["OStatus"] = "OStatus"; +$a->strings["RSS/Atom"] = "RSS/Atom"; +$a->strings["Email"] = "E-Mail"; +$a->strings["Diaspora"] = "Diaspora"; +$a->strings["Facebook"] = "Facebook"; +$a->strings["Zot!"] = "Zott"; +$a->strings["LinkedIn"] = "LinkedIn"; +$a->strings["XMPP/IM"] = "XMPP/Chat"; +$a->strings["MySpace"] = "MySpace"; +$a->strings["Google+"] = "Google+"; +$a->strings["pump.io"] = "pump.io"; +$a->strings["Twitter"] = "Twitter"; +$a->strings["Diaspora Connector"] = "Diaspora"; +$a->strings["GNU Social"] = "GNU Social"; +$a->strings["App.net"] = "App.net"; +$a->strings["Hubzilla/Redmatrix"] = "Hubzilla/Redmatrix"; +$a->strings["view full size"] = "Volle Größe anzeigen"; +$a->strings["Post to Email"] = "An E-Mail senden"; +$a->strings["Connectors disabled, since \"%s\" is enabled."] = "Konnektoren sind nicht verfügbar, da \"%s\" aktiv ist."; +$a->strings["Hide your profile details from unknown viewers?"] = "Profil-Details vor unbekannten Betrachtern verbergen?"; +$a->strings["Visible to everybody"] = "Für jeden sichtbar"; +$a->strings["show"] = "zeigen"; +$a->strings["don't show"] = "nicht zeigen"; +$a->strings["CC: email addresses"] = "Cc: E-Mail-Addressen"; +$a->strings["Example: bob@example.com, mary@example.com"] = "Z.B.: bob@example.com, mary@example.com"; +$a->strings["Permissions"] = "Berechtigungen"; +$a->strings["Close"] = "Schließen"; +$a->strings["Disallowed profile URL."] = "Nicht erlaubte Profil-URL."; +$a->strings["Connect URL missing."] = "Connect-URL fehlt"; +$a->strings["This site is not configured to allow communications with other networks."] = "Diese Seite ist so konfiguriert, dass keine Kommunikation mit anderen Netzwerken erfolgen kann."; +$a->strings["No compatible communication protocols or feeds were discovered."] = "Es wurden keine kompatiblen Kommunikationsprotokolle oder Feeds gefunden."; +$a->strings["The profile address specified does not provide adequate information."] = "Die angegebene Profiladresse liefert unzureichende Informationen."; +$a->strings["An author or name was not found."] = "Es wurde kein Autor oder Name gefunden."; +$a->strings["No browser URL could be matched to this address."] = "Zu dieser Adresse konnte keine passende Browser URL gefunden werden."; +$a->strings["Unable to match @-style Identity Address with a known protocol or email contact."] = "Konnte die @-Adresse mit keinem der bekannten Protokolle oder Email-Kontakte abgleichen."; +$a->strings["Use mailto: in front of address to force email check."] = "Verwende mailto: vor der Email Adresse, um eine Überprüfung der E-Mail-Adresse zu erzwingen."; +$a->strings["The profile address specified belongs to a network which has been disabled on this site."] = "Die Adresse dieses Profils gehört zu einem Netzwerk, mit dem die Kommunikation auf dieser Seite ausgeschaltet wurde."; +$a->strings["Limited profile. This person will be unable to receive direct/personal notifications from you."] = "Eingeschränktes Profil. Diese Person wird keine direkten/privaten Nachrichten von Dir erhalten können."; +$a->strings["Unable to retrieve contact information."] = "Konnte die Kontaktinformationen nicht empfangen."; +$a->strings["following"] = "folgen"; $a->strings["[Name Withheld]"] = "[Name unterdrückt]"; $a->strings["Item not found."] = "Beitrag nicht gefunden."; $a->strings["Do you really want to delete this item?"] = "Möchtest Du wirklich dieses Item löschen?"; @@ -228,69 +355,81 @@ $a->strings["Yes"] = "Ja"; $a->strings["Cancel"] = "Abbrechen"; $a->strings["Permission denied."] = "Zugriff verweigert."; $a->strings["Archives"] = "Archiv"; -$a->strings["newer"] = "neuer"; -$a->strings["older"] = "älter"; -$a->strings["prev"] = "vorige"; -$a->strings["first"] = "erste"; -$a->strings["last"] = "letzte"; -$a->strings["next"] = "nächste"; -$a->strings["Loading more entries..."] = "lade weitere Einträge..."; -$a->strings["The end"] = "Das Ende"; -$a->strings["No contacts"] = "Keine Kontakte"; -$a->strings["%d Contact"] = array( - 0 => "%d Kontakt", - 1 => "%d Kontakte", +$a->strings["photo"] = "Foto"; +$a->strings["status"] = "Status"; +$a->strings["event"] = "Event"; +$a->strings["%1\$s likes %2\$s's %3\$s"] = "%1\$s mag %2\$ss %3\$s"; +$a->strings["%1\$s doesn't like %2\$s's %3\$s"] = "%1\$s mag %2\$ss %3\$s nicht"; +$a->strings["%1\$s is attending %2\$s's %3\$s"] = "%1\$s nimmt an %2\$ss %3\$s teil."; +$a->strings["%1\$s is not attending %2\$s's %3\$s"] = "%1\$s nimmt nicht an %2\$ss %3\$s teil."; +$a->strings["%1\$s may attend %2\$s's %3\$s"] = "%1\$s nimmt eventuell an %2\$ss %3\$s teil."; +$a->strings["[no subject]"] = "[kein Betreff]"; +$a->strings["Click here to upgrade."] = "Zum Upgraden hier klicken."; +$a->strings["This action exceeds the limits set by your subscription plan."] = "Diese Aktion überschreitet die Obergrenze Deines Abonnements."; +$a->strings["This action is not available under your subscription plan."] = "Diese Aktion ist in Deinem Abonnement nicht verfügbar."; +$a->strings["Error decoding account file"] = "Fehler beim Verarbeiten der Account Datei"; +$a->strings["Error! No version data in file! This is not a Friendica account file?"] = "Fehler! Keine Versionsdaten in der Datei! Ist das wirklich eine Friendica Account Datei?"; +$a->strings["Error! Cannot check nickname"] = "Fehler! Konnte den Nickname nicht überprüfen."; +$a->strings["User '%s' already exists on this server!"] = "Nutzer '%s' existiert bereits auf diesem Server!"; +$a->strings["User creation error"] = "Fehler beim Anlegen des Nutzeraccounts aufgetreten"; +$a->strings["User profile creation error"] = "Fehler beim Anlegen des Nutzerkontos"; +$a->strings["%d contact not imported"] = array( + 0 => "%d Kontakt nicht importiert", + 1 => "%d Kontakte nicht importiert", ); -$a->strings["View Contacts"] = "Kontakte anzeigen"; -$a->strings["Search"] = "Suche"; -$a->strings["Save"] = "Speichern"; -$a->strings["Full Text"] = "Volltext"; -$a->strings["Tags"] = "Tags"; -$a->strings["Contacts"] = "Kontakte"; -$a->strings["poke"] = "anstupsen"; -$a->strings["poked"] = "stupste"; -$a->strings["ping"] = "anpingen"; -$a->strings["pinged"] = "pingte"; -$a->strings["prod"] = "knuffen"; -$a->strings["prodded"] = "knuffte"; -$a->strings["slap"] = "ohrfeigen"; -$a->strings["slapped"] = "ohrfeigte"; -$a->strings["finger"] = "befummeln"; -$a->strings["fingered"] = "befummelte"; -$a->strings["rebuff"] = "eine Abfuhr erteilen"; -$a->strings["rebuffed"] = "abfuhrerteilte"; -$a->strings["happy"] = "glücklich"; -$a->strings["sad"] = "traurig"; -$a->strings["mellow"] = "sanft"; -$a->strings["tired"] = "müde"; -$a->strings["perky"] = "frech"; -$a->strings["angry"] = "sauer"; -$a->strings["stupified"] = "verblüfft"; -$a->strings["puzzled"] = "verwirrt"; -$a->strings["interested"] = "interessiert"; -$a->strings["bitter"] = "verbittert"; -$a->strings["cheerful"] = "fröhlich"; -$a->strings["alive"] = "lebendig"; -$a->strings["annoyed"] = "verärgert"; -$a->strings["anxious"] = "unruhig"; -$a->strings["cranky"] = "schrullig"; -$a->strings["disturbed"] = "verstört"; -$a->strings["frustrated"] = "frustriert"; -$a->strings["motivated"] = "motiviert"; -$a->strings["relaxed"] = "entspannt"; -$a->strings["surprised"] = "überrascht"; +$a->strings["Done. You can now login with your username and password"] = "Erledigt. Du kannst Dich jetzt mit Deinem Nutzernamen und Passwort anmelden"; +$a->strings["System"] = "System"; +$a->strings["Personal"] = "Persönlich"; +$a->strings["%s commented on %s's post"] = "%s hat %ss Beitrag kommentiert"; +$a->strings["%s created a new post"] = "%s hat einen neuen Beitrag erstellt"; +$a->strings["%s liked %s's post"] = "%s mag %ss Beitrag"; +$a->strings["%s disliked %s's post"] = "%s mag %ss Beitrag nicht"; +$a->strings["%s is attending %s's event"] = "%s nimmt an %s's Event teil"; +$a->strings["%s is not attending %s's event"] = "%s nimmt nicht an %s's Event teil"; +$a->strings["%s may attend %s's event"] = "%s nimmt eventuell an %s's Event teil"; +$a->strings["%s is now friends with %s"] = "%s ist jetzt mit %s befreundet"; +$a->strings["Friend Suggestion"] = "Kontaktvorschlag"; +$a->strings["Friend/Connect Request"] = "Kontakt-/Freundschaftsanfrage"; +$a->strings["New Follower"] = "Neuer Bewunderer"; +$a->strings["Daily posting limit of %d posts reached. The post was rejected."] = "Das tägliche Nachrichtenlimit von %d Nachrichten wurde erreicht. Die Nachtricht wurde verworfen."; +$a->strings["Weekly posting limit of %d posts reached. The post was rejected."] = "Das wöchentliche Nachrichtenlimit von %d Nachrichten wurde erreicht. Die Nachtricht wurde verworfen."; +$a->strings["Monthly posting limit of %d posts reached. The post was rejected."] = "Das monatliche Nachrichtenlimit von %d Nachrichten wurde erreicht. Die Nachtricht wurde verworfen."; +$a->strings["Image/photo"] = "Bild/Foto"; +$a->strings["%2\$s %3\$s"] = "%2\$s %3\$s"; +$a->strings["$1 wrote:"] = "$1 hat geschrieben:"; +$a->strings["Encrypted content"] = "Verschlüsselter Inhalt"; +$a->strings["Sharing notification from Diaspora network"] = "Freigabe-Benachrichtigung von Diaspora"; +$a->strings["Attachments:"] = "Anhänge:"; +$a->strings["Sun"] = "So"; +$a->strings["Mon"] = "Mo"; +$a->strings["Tue"] = "Di"; +$a->strings["Wed"] = "Mi"; +$a->strings["Thu"] = "Do"; +$a->strings["Fri"] = "Fr"; +$a->strings["Sat"] = "Sa"; +$a->strings["Sunday"] = "Sonntag"; $a->strings["Monday"] = "Montag"; $a->strings["Tuesday"] = "Dienstag"; $a->strings["Wednesday"] = "Mittwoch"; $a->strings["Thursday"] = "Donnerstag"; $a->strings["Friday"] = "Freitag"; $a->strings["Saturday"] = "Samstag"; -$a->strings["Sunday"] = "Sonntag"; +$a->strings["Jan"] = "Jan"; +$a->strings["Feb"] = "Feb"; +$a->strings["Mar"] = "März"; +$a->strings["Apr"] = "Apr"; +$a->strings["May"] = "Mai"; +$a->strings["Jun"] = "Jun"; +$a->strings["Jul"] = "Juli"; +$a->strings["Aug"] = "Aug"; +$a->strings["Sept"] = "Sep"; +$a->strings["Oct"] = "Okt"; +$a->strings["Nov"] = "Nov"; +$a->strings["Dec"] = "Dez"; $a->strings["January"] = "Januar"; $a->strings["February"] = "Februar"; $a->strings["March"] = "März"; $a->strings["April"] = "April"; -$a->strings["May"] = "Mai"; $a->strings["June"] = "Juni"; $a->strings["July"] = "Juli"; $a->strings["August"] = "August"; @@ -298,22 +437,13 @@ $a->strings["September"] = "September"; $a->strings["October"] = "Oktober"; $a->strings["November"] = "November"; $a->strings["December"] = "Dezember"; -$a->strings["View Video"] = "Video ansehen"; -$a->strings["bytes"] = "Byte"; -$a->strings["Click to open/close"] = "Zum öffnen/schließen klicken"; -$a->strings["View on separate page"] = "Auf separater Seite ansehen"; -$a->strings["view on separate page"] = "auf separater Seite ansehen"; +$a->strings["today"] = "Heute"; +$a->strings["l, F j"] = "l, F j"; +$a->strings["Edit event"] = "Veranstaltung bearbeiten"; $a->strings["link to source"] = "Link zum Originalbeitrag"; -$a->strings["event"] = "Event"; -$a->strings["photo"] = "Foto"; -$a->strings["activity"] = "Aktivität"; -$a->strings["comment"] = array( - 0 => "Kommentar", - 1 => "Kommentare", -); -$a->strings["post"] = "Beitrag"; -$a->strings["Item filed"] = "Beitrag abgelegt"; -$a->strings["%1\$s doesn't like %2\$s's %3\$s"] = "%1\$s mag %2\$ss %3\$s nicht"; +$a->strings["Export"] = "Exportieren"; +$a->strings["Export calendar as ical"] = "Kalender als ical exportieren"; +$a->strings["Export calendar as csv"] = "Kalender als csv exportieren"; $a->strings["%1\$s attends %2\$s's %3\$s"] = "%1\$s nimmt an %2\$ss %3\$s teil."; $a->strings["%1\$s doesn't attend %2\$s's %3\$s"] = "%1\$s nimmt nicht an %2\$ss %3\$s teil."; $a->strings["%1\$s attends maybe %2\$s's %3\$s"] = "%1\$s nimmt eventuell an %2\$ss %3\$s teil."; @@ -364,7 +494,7 @@ $a->strings["%2\$d people attend"] = "%2\$d Pers $a->strings["%s attend."] = "%s nehmen teil."; $a->strings["%2\$d people don't attend"] = "%2\$d Personen nehmen nicht teil"; $a->strings["%s don't attend."] = "%s nehmen nicht teil."; -$a->strings["%2\$d people anttend maybe"] = "%2\$d Personen nehmen eventuell teil"; +$a->strings["%2\$d people attend maybe"] = "%2\$d Personen nehmen eventuell teil"; $a->strings["%s anttend maybe."] = "%s nehmen vielleicht teil."; $a->strings["Visible to everybody"] = "Für jedermann sichtbar"; $a->strings["Please enter a link URL:"] = "Bitte gib die URL des Links ein:"; @@ -398,6 +528,8 @@ $a->strings["Preview"] = "Vorschau"; $a->strings["Post to Groups"] = "Poste an Gruppe"; $a->strings["Post to Contacts"] = "Poste an Kontakte"; $a->strings["Private post"] = "Privater Beitrag"; +$a->strings["Message"] = "Nachricht"; +$a->strings["Browser"] = "Browser"; $a->strings["View all"] = "Zeige alle"; $a->strings["Like"] = array( 0 => "mag ich", @@ -411,177 +543,20 @@ $a->strings["Not Attending"] = array( 0 => "Nicht teilnehmend ", 1 => "Nicht teilnehmend", ); -$a->strings["Requested account is not available."] = "Das angefragte Profil ist nicht vorhanden."; -$a->strings["Requested profile is not available."] = "Das angefragte Profil ist nicht vorhanden."; -$a->strings["Edit profile"] = "Profil bearbeiten"; -$a->strings["Atom feed"] = "Atom-Feed"; -$a->strings["Message"] = "Nachricht"; -$a->strings["Profiles"] = "Profile"; -$a->strings["Manage/edit profiles"] = "Profile verwalten/editieren"; -$a->strings["Change profile photo"] = "Profilbild ändern"; -$a->strings["Create New Profile"] = "Neues Profil anlegen"; -$a->strings["Profile Image"] = "Profilbild"; -$a->strings["visible to everybody"] = "sichtbar für jeden"; -$a->strings["Edit visibility"] = "Sichtbarkeit bearbeiten"; -$a->strings["Forum"] = "Forum"; -$a->strings["Gender:"] = "Geschlecht:"; -$a->strings["Status:"] = "Status:"; -$a->strings["Homepage:"] = "Homepage:"; -$a->strings["About:"] = "Über:"; -$a->strings["Network:"] = "Netzwerk"; -$a->strings["g A l F d"] = "l, d. F G \\U\\h\\r"; -$a->strings["F d"] = "d. F"; -$a->strings["[today]"] = "[heute]"; -$a->strings["Birthday Reminders"] = "Geburtstagserinnerungen"; -$a->strings["Birthdays this week:"] = "Geburtstage diese Woche:"; -$a->strings["[No description]"] = "[keine Beschreibung]"; -$a->strings["Event Reminders"] = "Veranstaltungserinnerungen"; -$a->strings["Events this week:"] = "Veranstaltungen diese Woche"; -$a->strings["Profile"] = "Profil"; -$a->strings["Full Name:"] = "Kompletter Name:"; -$a->strings["j F, Y"] = "j F, Y"; -$a->strings["j F"] = "j F"; -$a->strings["Birthday:"] = "Geburtstag:"; -$a->strings["Age:"] = "Alter:"; -$a->strings["for %1\$d %2\$s"] = "für %1\$d %2\$s"; -$a->strings["Sexual Preference:"] = "Sexuelle Vorlieben:"; -$a->strings["Hometown:"] = "Heimatort:"; -$a->strings["Tags:"] = "Tags"; -$a->strings["Political Views:"] = "Politische Ansichten:"; -$a->strings["Religion:"] = "Religion:"; -$a->strings["Hobbies/Interests:"] = "Hobbies/Interessen:"; -$a->strings["Likes:"] = "Likes:"; -$a->strings["Dislikes:"] = "Dislikes:"; -$a->strings["Contact information and Social Networks:"] = "Kontaktinformationen und Soziale Netzwerke:"; -$a->strings["Musical interests:"] = "Musikalische Interessen:"; -$a->strings["Books, literature:"] = "Literatur/Bücher:"; -$a->strings["Television:"] = "Fernsehen:"; -$a->strings["Film/dance/culture/entertainment:"] = "Filme/Tänze/Kultur/Unterhaltung:"; -$a->strings["Love/Romance:"] = "Liebesleben:"; -$a->strings["Work/employment:"] = "Arbeit/Beschäftigung:"; -$a->strings["School/education:"] = "Schule/Ausbildung:"; -$a->strings["Forums:"] = "Foren:"; -$a->strings["Status"] = "Status"; -$a->strings["Status Messages and Posts"] = "Statusnachrichten und Beiträge"; -$a->strings["Profile Details"] = "Profildetails"; -$a->strings["Photos"] = "Bilder"; -$a->strings["Photo Albums"] = "Fotoalben"; -$a->strings["Videos"] = "Videos"; -$a->strings["Events"] = "Veranstaltungen"; -$a->strings["Events and Calendar"] = "Ereignisse und Kalender"; -$a->strings["Personal Notes"] = "Persönliche Notizen"; -$a->strings["Only You Can See This"] = "Nur Du kannst das sehen"; -$a->strings[" on Last.fm"] = " bei Last.fm"; -$a->strings["Disallowed profile URL."] = "Nicht erlaubte Profil-URL."; -$a->strings["Connect URL missing."] = "Connect-URL fehlt"; -$a->strings["This site is not configured to allow communications with other networks."] = "Diese Seite ist so konfiguriert, dass keine Kommunikation mit anderen Netzwerken erfolgen kann."; -$a->strings["No compatible communication protocols or feeds were discovered."] = "Es wurden keine kompatiblen Kommunikationsprotokolle oder Feeds gefunden."; -$a->strings["The profile address specified does not provide adequate information."] = "Die angegebene Profiladresse liefert unzureichende Informationen."; -$a->strings["An author or name was not found."] = "Es wurde kein Autor oder Name gefunden."; -$a->strings["No browser URL could be matched to this address."] = "Zu dieser Adresse konnte keine passende Browser URL gefunden werden."; -$a->strings["Unable to match @-style Identity Address with a known protocol or email contact."] = "Konnte die @-Adresse mit keinem der bekannten Protokolle oder Email-Kontakte abgleichen."; -$a->strings["Use mailto: in front of address to force email check."] = "Verwende mailto: vor der Email Adresse, um eine Überprüfung der E-Mail-Adresse zu erzwingen."; -$a->strings["The profile address specified belongs to a network which has been disabled on this site."] = "Die Adresse dieses Profils gehört zu einem Netzwerk, mit dem die Kommunikation auf dieser Seite ausgeschaltet wurde."; -$a->strings["Limited profile. This person will be unable to receive direct/personal notifications from you."] = "Eingeschränktes Profil. Diese Person wird keine direkten/privaten Nachrichten von Dir erhalten können."; -$a->strings["Unable to retrieve contact information."] = "Konnte die Kontaktinformationen nicht empfangen."; -$a->strings["following"] = "folgen"; -$a->strings["stopped following"] = "wird nicht mehr gefolgt"; -$a->strings["Drop Contact"] = "Kontakt löschen"; -$a->strings["Embedded content"] = "Eingebetteter Inhalt"; -$a->strings["Embedding disabled"] = "Einbettungen deaktiviert"; -$a->strings["Image/photo"] = "Bild/Foto"; -$a->strings["%2\$s %3\$s"] = "%2\$s %3\$s"; -$a->strings["%s wrote the following post"] = "%s schrieb den folgenden Beitrag"; -$a->strings["$1 wrote:"] = "$1 hat geschrieben:"; -$a->strings["Encrypted content"] = "Verschlüsselter Inhalt"; -$a->strings["Unknown | Not categorised"] = "Unbekannt | Nicht kategorisiert"; -$a->strings["Block immediately"] = "Sofort blockieren"; -$a->strings["Shady, spammer, self-marketer"] = "Zwielichtig, Spammer, Selbstdarsteller"; -$a->strings["Known to me, but no opinion"] = "Ist mir bekannt, hab aber keine Meinung"; -$a->strings["OK, probably harmless"] = "OK, wahrscheinlich harmlos"; -$a->strings["Reputable, has my trust"] = "Seriös, hat mein Vertrauen"; -$a->strings["Frequently"] = "immer wieder"; -$a->strings["Hourly"] = "Stündlich"; -$a->strings["Twice daily"] = "Zweimal täglich"; -$a->strings["Daily"] = "Täglich"; -$a->strings["Weekly"] = "Wöchentlich"; -$a->strings["Monthly"] = "Monatlich"; -$a->strings["Friendica"] = "Friendica"; -$a->strings["OStatus"] = "OStatus"; -$a->strings["RSS/Atom"] = "RSS/Atom"; -$a->strings["Email"] = "E-Mail"; -$a->strings["Diaspora"] = "Diaspora"; -$a->strings["Facebook"] = "Facebook"; -$a->strings["Zot!"] = "Zott"; -$a->strings["LinkedIn"] = "LinkedIn"; -$a->strings["XMPP/IM"] = "XMPP/Chat"; -$a->strings["MySpace"] = "MySpace"; -$a->strings["Google+"] = "Google+"; -$a->strings["pump.io"] = "pump.io"; -$a->strings["Twitter"] = "Twitter"; -$a->strings["Diaspora Connector"] = "Diaspora"; -$a->strings["GNU Social"] = "GNU Social"; -$a->strings["App.net"] = "App.net"; -$a->strings["Hubzilla/Redmatrix"] = "Hubzilla/Redmatrix"; -$a->strings["\n\t\t\tThe friendica developers released update %s recently,\n\t\t\tbut when I tried to install it, something went terribly wrong.\n\t\t\tThis needs to be fixed soon and I can't do it alone. Please contact a\n\t\t\tfriendica developer if you can not help me on your own. My database might be invalid."] = "\nDie Friendica-Entwickler haben vor kurzem das Update %s veröffentlicht, aber bei der Installation ging etwas schrecklich schief.\n\nDas Problem sollte so schnell wie möglich gelöst werden, aber ich schaffe es nicht alleine. Bitte kontaktiere einen Friendica-Entwickler falls Du mir nicht alleine helfen kannst. Meine Datenbank könnte ungültig sein."; -$a->strings["The error message is\n[pre]%s[/pre]"] = "Die Fehlermeldung lautet\n[pre]%s[/pre]"; -$a->strings["Errors encountered creating database tables."] = "Fehler aufgetreten während der Erzeugung der Datenbanktabellen."; -$a->strings["Errors encountered performing database changes."] = "Es sind Fehler beim Bearbeiten der Datenbank aufgetreten."; -$a->strings["Logged out."] = "Abgemeldet."; -$a->strings["Login failed."] = "Anmeldung fehlgeschlagen."; -$a->strings["We encountered a problem while logging in with the OpenID you provided. Please check the correct spelling of the ID."] = "Beim Versuch Dich mit der von Dir angegebenen OpenID anzumelden trat ein Problem auf. Bitte überprüfe, dass Du die OpenID richtig geschrieben hast."; -$a->strings["The error message was:"] = "Die Fehlermeldung lautete:"; -$a->strings["view full size"] = "Volle Größe anzeigen"; -$a->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."] = "Eine gelöschte Gruppe mit diesem Namen wurde wiederbelebt. Bestehende Berechtigungseinstellungen könnten auf diese Gruppe oder zukünftige Mitglieder angewandt werden. Falls Du dies nicht möchtest, erstelle bitte eine andere Gruppe mit einem anderen Namen."; -$a->strings["Default privacy group for new contacts"] = "Voreingestellte Gruppe für neue Kontakte"; -$a->strings["Everybody"] = "Alle Kontakte"; -$a->strings["edit"] = "bearbeiten"; -$a->strings["Groups"] = "Gruppen"; -$a->strings["Edit groups"] = "Gruppen bearbeiten"; -$a->strings["Edit group"] = "Gruppe bearbeiten"; -$a->strings["Create a new group"] = "Neue Gruppe erstellen"; -$a->strings["Group Name: "] = "Gruppenname:"; -$a->strings["Contacts not in any group"] = "Kontakte in keiner Gruppe"; -$a->strings["add"] = "hinzufügen"; -$a->strings["Wall Photos"] = "Pinnwand-Bilder"; -$a->strings["(no subject)"] = "(kein Betreff)"; -$a->strings["Passwords do not match. Password unchanged."] = "Die Passwörter stimmen nicht überein. Das Passwort bleibt unverändert."; -$a->strings["An invitation is required."] = "Du benötigst eine Einladung."; -$a->strings["Invitation could not be verified."] = "Die Einladung konnte nicht überprüft werden."; -$a->strings["Invalid OpenID url"] = "Ungültige OpenID URL"; -$a->strings["Please enter the required information."] = "Bitte trage die erforderlichen Informationen ein."; -$a->strings["Please use a shorter name."] = "Bitte verwende einen kürzeren Namen."; -$a->strings["Name too short."] = "Der Name ist zu kurz."; -$a->strings["That doesn't appear to be your full (First Last) name."] = "Das scheint nicht Dein kompletter Name (Vor- und Nachname) zu sein."; -$a->strings["Your email domain is not among those allowed on this site."] = "Die Domain Deiner E-Mail Adresse ist auf dieser Seite nicht erlaubt."; -$a->strings["Not a valid email address."] = "Keine gültige E-Mail-Adresse."; -$a->strings["Cannot use that email."] = "Konnte diese E-Mail-Adresse nicht verwenden."; -$a->strings["Your \"nickname\" can only contain \"a-z\", \"0-9\" and \"_\"."] = "Dein Spitzname darf nur aus Buchstaben und Zahlen (\"a-z\",\"0-9\" und \"_\") bestehen."; -$a->strings["Nickname is already registered. Please choose another."] = "Dieser Spitzname ist bereits vergeben. Bitte wähle einen anderen."; -$a->strings["Nickname was once registered here and may not be re-used. Please choose another."] = "Dieser Spitzname ist bereits vergeben. Bitte wähle einen anderen."; -$a->strings["SERIOUS ERROR: Generation of security keys failed."] = "FATALER FEHLER: Sicherheitsschlüssel konnten nicht erzeugt werden."; -$a->strings["An error occurred during registration. Please try again."] = "Während der Anmeldung ist ein Fehler aufgetreten. Bitte versuche es noch einmal."; -$a->strings["default"] = "Standard"; -$a->strings["An error occurred creating your default profile. Please try again."] = "Bei der Erstellung des Standardprofils ist ein Fehler aufgetreten. Bitte versuche es noch einmal."; -$a->strings["Profile Photos"] = "Profilbilder"; -$a->strings["\n\t\tDear %1\$s,\n\t\t\tThank you for registering at %2\$s. Your account has been created.\n\t"] = "\nHallo %1\$s,\n\ndanke für Deine Registrierung auf %2\$s. Dein Account wurde eingerichtet."; -$a->strings["\n\t\tThe login details are as follows:\n\t\t\tSite Location:\t%3\$s\n\t\t\tLogin Name:\t%1\$s\n\t\t\tPassword:\t%5\$s\n\n\t\tYou may change your password from your account \"Settings\" page after logging\n\t\tin.\n\n\t\tPlease take a few moments to review the other account settings on that page.\n\n\t\tYou may also wish to add some basic information to your default profile\n\t\t(on the \"Profiles\" page) so that other people can easily find you.\n\n\t\tWe recommend setting your full name, adding a profile photo,\n\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n\t\tperhaps what country you live in; if you do not wish to be more specific\n\t\tthan that.\n\n\t\tWe fully respect your right to privacy, and none of these items are necessary.\n\t\tIf you are new and do not know anybody here, they may help\n\t\tyou to make some new and interesting friends.\n\n\n\t\tThank you and welcome to %2\$s."] = "\nDie Anmelde-Details sind die folgenden:\n\tAdresse der Seite:\t%3\$s\n\tBenutzernamename:\t%1\$s\n\tPasswort:\t%5\$s\n\nDu kannst Dein Passwort unter \"Einstellungen\" ändern, sobald Du Dich\nangemeldet hast.\n\nBitte nimm Dir ein paar Minuten um die anderen Einstellungen auf dieser\nSeite zu kontrollieren.\n\nEventuell magst Du ja auch einige Informationen über Dich in Deinem\nProfil veröffentlichen, damit andere Leute Dich einfacher finden können.\nBearbeite hierfür einfach Dein Standard-Profil (über die Profil-Seite).\n\nWir empfehlen Dir, Deinen kompletten Namen anzugeben und ein zu Dir\npassendes Profilbild zu wählen, damit Dich alte Bekannte wieder finden.\nAußerdem ist es nützlich, wenn Du auf Deinem Profil Schlüsselwörter\nangibst. Das erleichtert es, Leute zu finden, die Deine Interessen teilen.\n\nWir respektieren Deine Privatsphäre - keine dieser Angaben ist nötig.\nWenn Du neu im Netzwerk bist und noch niemanden kennst, dann können sie\nallerdings dabei helfen, neue und interessante Kontakte zu knüpfen.\n\nDanke für Deine Aufmerksamkeit und willkommen auf %2\$s."; -$a->strings["Registration details for %s"] = "Details der Registration von %s"; -$a->strings["Daily posting limit of %d posts reached. The post was rejected."] = "Das tägliche Nachrichtenlimit von %d Nachrichten wurde erreicht. Die Nachtricht wurde verworfen."; -$a->strings["Weekly posting limit of %d posts reached. The post was rejected."] = "Das wöchentliche Nachrichtenlimit von %d Nachrichten wurde erreicht. Die Nachtricht wurde verworfen."; -$a->strings["Monthly posting limit of %d posts reached. The post was rejected."] = "Das monatliche Nachrichtenlimit von %d Nachrichten wurde erreicht. Die Nachtricht wurde verworfen."; $a->strings["General Features"] = "Allgemeine Features"; $a->strings["Multiple Profiles"] = "Mehrere Profile"; $a->strings["Ability to create multiple profiles"] = "Möglichkeit mehrere Profile zu erstellen"; $a->strings["Photo Location"] = "Aufnahmeort"; $a->strings["Photo metadata is normally stripped. This extracts the location (if present) prior to stripping metadata and links it to a map."] = "Die Foto-Metadaten werden ausgelesen. Dadurch kann der Aufnahmeort (wenn vorhanden) in einer Karte angezeigt werden."; +$a->strings["Export Public Calendar"] = "Öffentlichen Kalender exportieren"; +$a->strings["Ability for visitors to download the public calendar"] = "Möglichkeit für Besucher den öffentlichen Kalender herunter zu laden"; $a->strings["Post Composition Features"] = "Beitragserstellung Features"; $a->strings["Richtext Editor"] = "Web-Editor"; $a->strings["Enable richtext editor"] = "Den Web-Editor für neue Beiträge aktivieren"; $a->strings["Post Preview"] = "Beitragsvorschau"; $a->strings["Allow previewing posts and comments before publishing them"] = "Die Vorschau von Beiträgen und Kommentaren vor dem absenden erlauben."; $a->strings["Auto-mention Forums"] = "Foren automatisch erwähnen"; -$a->strings["Add/remove mention when a fourm page is selected/deselected in ACL window."] = "Automatisch eine @-Erwähnung eines Forums einfügen/entfehrnen, wenn dieses im ACL Fenster de-/markiert wurde."; +$a->strings["Add/remove mention when a forum page is selected/deselected in ACL window."] = "Automatisch eine @-Erwähnung eines Forums einfügen/entfehrnen, wenn dieses im ACL Fenster de-/markiert wurde."; $a->strings["Network Sidebar Widgets"] = "Widgets für Netzwerk und Seitenleiste"; $a->strings["Search by Date"] = "Archiv"; $a->strings["Ability to select posts by date ranges"] = "Möglichkeit die Beiträge nach Datumsbereichen zu sortieren"; @@ -618,85 +593,129 @@ $a->strings["Mute Post Notifications"] = "Benachrichtigungen für Beiträge Stum $a->strings["Ability to mute notifications for a thread"] = "Möglichkeit Benachrichtigungen für einen Thread abbestellen zu können"; $a->strings["Advanced Profile Settings"] = "Erweiterte Profil-Einstellungen"; $a->strings["Show visitors public community forums at the Advanced Profile Page"] = "Zeige Besuchern öffentliche Gemeinschafts-Foren auf der Erweiterten Profil-Seite"; -$a->strings["Nothing new here"] = "Keine Neuigkeiten"; -$a->strings["Clear notifications"] = "Bereinige Benachrichtigungen"; -$a->strings["@name, !forum, #tags, content"] = "@name, !forum, #tags, content"; -$a->strings["End this session"] = "Diese Sitzung beenden"; -$a->strings["Your posts and conversations"] = "Deine Beiträge und Unterhaltungen"; -$a->strings["Your profile page"] = "Deine Profilseite"; -$a->strings["Your photos"] = "Deine Fotos"; -$a->strings["Your videos"] = "Deine Videos"; -$a->strings["Your events"] = "Deine Ereignisse"; -$a->strings["Personal notes"] = "Persönliche Notizen"; -$a->strings["Your personal notes"] = "Deine persönlichen Notizen"; -$a->strings["Sign in"] = "Anmelden"; -$a->strings["Home"] = "Pinnwand"; -$a->strings["Home Page"] = "Homepage"; -$a->strings["Create an account"] = "Nutzerkonto erstellen"; -$a->strings["Help"] = "Hilfe"; -$a->strings["Help and documentation"] = "Hilfe und Dokumentation"; -$a->strings["Apps"] = "Apps"; -$a->strings["Addon applications, utilities, games"] = "Addon Anwendungen, Dienstprogramme, Spiele"; -$a->strings["Search site content"] = "Inhalt der Seite durchsuchen"; -$a->strings["Community"] = "Gemeinschaft"; -$a->strings["Conversations on this site"] = "Unterhaltungen auf dieser Seite"; -$a->strings["Conversations on the network"] = "Unterhaltungen im Netzwerk"; -$a->strings["Directory"] = "Verzeichnis"; -$a->strings["People directory"] = "Nutzerverzeichnis"; -$a->strings["Information"] = "Information"; -$a->strings["Information about this friendica instance"] = "Informationen zu dieser Friendica Instanz"; -$a->strings["Network"] = "Netzwerk"; -$a->strings["Conversations from your friends"] = "Unterhaltungen Deiner Kontakte"; -$a->strings["Network Reset"] = "Netzwerk zurücksetzen"; -$a->strings["Load Network page with no filters"] = "Netzwerk-Seite ohne Filter laden"; -$a->strings["Introductions"] = "Kontaktanfragen"; -$a->strings["Friend Requests"] = "Kontaktanfragen"; -$a->strings["Notifications"] = "Benachrichtigungen"; -$a->strings["See all notifications"] = "Alle Benachrichtigungen anzeigen"; -$a->strings["Mark all system notifications seen"] = "Markiere alle Systembenachrichtigungen als gelesen"; -$a->strings["Messages"] = "Nachrichten"; -$a->strings["Private mail"] = "Private E-Mail"; -$a->strings["Inbox"] = "Eingang"; -$a->strings["Outbox"] = "Ausgang"; -$a->strings["New Message"] = "Neue Nachricht"; -$a->strings["Manage"] = "Verwalten"; -$a->strings["Manage other pages"] = "Andere Seiten verwalten"; -$a->strings["Delegations"] = "Delegationen"; -$a->strings["Delegate Page Management"] = "Delegiere das Management für die Seite"; -$a->strings["Settings"] = "Einstellungen"; -$a->strings["Account settings"] = "Kontoeinstellungen"; -$a->strings["Manage/Edit Profiles"] = "Profile Verwalten/Editieren"; -$a->strings["Manage/edit friends and contacts"] = "Freunde und Kontakte verwalten/editieren"; -$a->strings["Admin"] = "Administration"; -$a->strings["Site setup and configuration"] = "Einstellungen der Seite und Konfiguration"; -$a->strings["Navigation"] = "Navigation"; -$a->strings["Site map"] = "Sitemap"; -$a->strings["%1\$s is attending %2\$s's %3\$s"] = "%1\$s nimmt an %2\$ss %3\$s teil."; -$a->strings["%1\$s is not attending %2\$s's %3\$s"] = "%1\$s nimmt nicht an %2\$ss %3\$s teil."; -$a->strings["%1\$s may attend %2\$s's %3\$s"] = "%1\$s nimmt eventuell an %2\$ss %3\$s teil."; -$a->strings["Post to Email"] = "An E-Mail senden"; -$a->strings["Connectors disabled, since \"%s\" is enabled."] = "Konnektoren sind nicht verfügbar, da \"%s\" aktiv ist."; -$a->strings["Hide your profile details from unknown viewers?"] = "Profil-Details vor unbekannten Betrachtern verbergen?"; -$a->strings["Visible to everybody"] = "Für jeden sichtbar"; -$a->strings["show"] = "zeigen"; -$a->strings["don't show"] = "nicht zeigen"; -$a->strings["CC: email addresses"] = "Cc: E-Mail-Addressen"; -$a->strings["Example: bob@example.com, mary@example.com"] = "Z.B.: bob@example.com, mary@example.com"; -$a->strings["Permissions"] = "Berechtigungen"; -$a->strings["Close"] = "Schließen"; -$a->strings["[no subject]"] = "[kein Betreff]"; -$a->strings["You must be logged in to use addons. "] = "Sie müssen angemeldet sein um Addons benutzen zu können."; -$a->strings["Not Found"] = "Nicht gefunden"; -$a->strings["Page not found."] = "Seite nicht gefunden."; -$a->strings["Permission denied"] = "Zugriff verweigert"; -$a->strings["toggle mobile"] = "auf/von Mobile Ansicht wechseln"; -$a->strings["Account approved."] = "Konto freigegeben."; -$a->strings["Registration revoked for %s"] = "Registrierung für %s wurde zurückgezogen"; -$a->strings["Please login."] = "Bitte melde Dich an."; +$a->strings["newer"] = "neuer"; +$a->strings["older"] = "älter"; +$a->strings["prev"] = "vorige"; +$a->strings["first"] = "erste"; +$a->strings["last"] = "letzte"; +$a->strings["next"] = "nächste"; +$a->strings["Loading more entries..."] = "lade weitere Einträge..."; +$a->strings["The end"] = "Das Ende"; +$a->strings["No contacts"] = "Keine Kontakte"; +$a->strings["%d Contact"] = array( + 0 => "%d Kontakt", + 1 => "%d Kontakte", +); +$a->strings["View Contacts"] = "Kontakte anzeigen"; +$a->strings["Save"] = "Speichern"; +$a->strings["poke"] = "anstupsen"; +$a->strings["poked"] = "stupste"; +$a->strings["ping"] = "anpingen"; +$a->strings["pinged"] = "pingte"; +$a->strings["prod"] = "knuffen"; +$a->strings["prodded"] = "knuffte"; +$a->strings["slap"] = "ohrfeigen"; +$a->strings["slapped"] = "ohrfeigte"; +$a->strings["finger"] = "befummeln"; +$a->strings["fingered"] = "befummelte"; +$a->strings["rebuff"] = "eine Abfuhr erteilen"; +$a->strings["rebuffed"] = "abfuhrerteilte"; +$a->strings["happy"] = "glücklich"; +$a->strings["sad"] = "traurig"; +$a->strings["mellow"] = "sanft"; +$a->strings["tired"] = "müde"; +$a->strings["perky"] = "frech"; +$a->strings["angry"] = "sauer"; +$a->strings["stupified"] = "verblüfft"; +$a->strings["puzzled"] = "verwirrt"; +$a->strings["interested"] = "interessiert"; +$a->strings["bitter"] = "verbittert"; +$a->strings["cheerful"] = "fröhlich"; +$a->strings["alive"] = "lebendig"; +$a->strings["annoyed"] = "verärgert"; +$a->strings["anxious"] = "unruhig"; +$a->strings["cranky"] = "schrullig"; +$a->strings["disturbed"] = "verstört"; +$a->strings["frustrated"] = "frustriert"; +$a->strings["motivated"] = "motiviert"; +$a->strings["relaxed"] = "entspannt"; +$a->strings["surprised"] = "überrascht"; +$a->strings["View Video"] = "Video ansehen"; +$a->strings["bytes"] = "Byte"; +$a->strings["Click to open/close"] = "Zum öffnen/schließen klicken"; +$a->strings["View on separate page"] = "Auf separater Seite ansehen"; +$a->strings["view on separate page"] = "auf separater Seite ansehen"; +$a->strings["activity"] = "Aktivität"; +$a->strings["comment"] = array( + 0 => "Kommentar", + 1 => "Kommentare", +); +$a->strings["post"] = "Beitrag"; +$a->strings["Item filed"] = "Beitrag abgelegt"; +$a->strings["stopped following"] = "wird nicht mehr gefolgt"; +$a->strings["Drop Contact"] = "Kontakt löschen"; +$a->strings["\n\t\t\tThe friendica developers released update %s recently,\n\t\t\tbut when I tried to install it, something went terribly wrong.\n\t\t\tThis needs to be fixed soon and I can't do it alone. Please contact a\n\t\t\tfriendica developer if you can not help me on your own. My database might be invalid."] = "\nDie Friendica-Entwickler haben vor kurzem das Update %s veröffentlicht, aber bei der Installation ging etwas schrecklich schief.\n\nDas Problem sollte so schnell wie möglich gelöst werden, aber ich schaffe es nicht alleine. Bitte kontaktiere einen Friendica-Entwickler falls Du mir nicht alleine helfen kannst. Meine Datenbank könnte ungültig sein."; +$a->strings["The error message is\n[pre]%s[/pre]"] = "Die Fehlermeldung lautet\n[pre]%s[/pre]"; +$a->strings["Errors encountered creating database tables."] = "Fehler aufgetreten während der Erzeugung der Datenbanktabellen."; +$a->strings["Errors encountered performing database changes."] = "Es sind Fehler beim Bearbeiten der Datenbank aufgetreten."; +$a->strings["(no subject)"] = "(kein Betreff)"; +$a->strings["%s\\'s birthday"] = "%ss Geburtstag"; +$a->strings["Requested account is not available."] = "Das angefragte Profil ist nicht vorhanden."; +$a->strings["Requested profile is not available."] = "Das angefragte Profil ist nicht vorhanden."; +$a->strings["Edit profile"] = "Profil bearbeiten"; +$a->strings["Atom feed"] = "Atom-Feed"; +$a->strings["Manage/edit profiles"] = "Profile verwalten/editieren"; +$a->strings["Change profile photo"] = "Profilbild ändern"; +$a->strings["Create New Profile"] = "Neues Profil anlegen"; +$a->strings["Profile Image"] = "Profilbild"; +$a->strings["visible to everybody"] = "sichtbar für jeden"; +$a->strings["Edit visibility"] = "Sichtbarkeit bearbeiten"; +$a->strings["Forum"] = "Forum"; +$a->strings["Gender:"] = "Geschlecht:"; +$a->strings["Status:"] = "Status:"; +$a->strings["Homepage:"] = "Homepage:"; +$a->strings["About:"] = "Über:"; +$a->strings["XMPP:"] = "XMPP:"; +$a->strings["Network:"] = "Netzwerk:"; +$a->strings["g A l F d"] = "l, d. F G \\U\\h\\r"; +$a->strings["F d"] = "d. F"; +$a->strings["[today]"] = "[heute]"; +$a->strings["Birthday Reminders"] = "Geburtstagserinnerungen"; +$a->strings["Birthdays this week:"] = "Geburtstage diese Woche:"; +$a->strings["[No description]"] = "[keine Beschreibung]"; +$a->strings["Event Reminders"] = "Veranstaltungserinnerungen"; +$a->strings["Events this week:"] = "Veranstaltungen diese Woche"; +$a->strings["Full Name:"] = "Kompletter Name:"; +$a->strings["j F, Y"] = "j F, Y"; +$a->strings["j F"] = "j F"; +$a->strings["Age:"] = "Alter:"; +$a->strings["for %1\$d %2\$s"] = "für %1\$d %2\$s"; +$a->strings["Sexual Preference:"] = "Sexuelle Vorlieben:"; +$a->strings["Hometown:"] = "Heimatort:"; +$a->strings["Tags:"] = "Tags:"; +$a->strings["Political Views:"] = "Politische Ansichten:"; +$a->strings["Religion:"] = "Religion:"; +$a->strings["Hobbies/Interests:"] = "Hobbies/Interessen:"; +$a->strings["Likes:"] = "Likes:"; +$a->strings["Dislikes:"] = "Dislikes:"; +$a->strings["Contact information and Social Networks:"] = "Kontaktinformationen und Soziale Netzwerke:"; +$a->strings["Musical interests:"] = "Musikalische Interessen:"; +$a->strings["Books, literature:"] = "Literatur/Bücher:"; +$a->strings["Television:"] = "Fernsehen:"; +$a->strings["Film/dance/culture/entertainment:"] = "Filme/Tänze/Kultur/Unterhaltung:"; +$a->strings["Love/Romance:"] = "Liebesleben:"; +$a->strings["Work/employment:"] = "Arbeit/Beschäftigung:"; +$a->strings["School/education:"] = "Schule/Ausbildung:"; +$a->strings["Forums:"] = "Foren:"; +$a->strings["Basic"] = "Allgemein"; +$a->strings["Advanced"] = "Erweitert"; +$a->strings["Status Messages and Posts"] = "Statusnachrichten und Beiträge"; +$a->strings["Profile Details"] = "Profildetails"; +$a->strings["Photo Albums"] = "Fotoalben"; +$a->strings["Personal Notes"] = "Persönliche Notizen"; +$a->strings["Only You Can See This"] = "Nur Du kannst das sehen"; $a->strings["Post successful."] = "Beitrag erfolgreich veröffentlicht."; $a->strings["[Embedded content - reload page to view]"] = "[Eingebetteter Inhalt - Seite neu laden zum Betrachten]"; -$a->strings["People Search - %s"] = "Personensuche - %s"; -$a->strings["No matches"] = "Keine Übereinstimmungen"; $a->strings["Access denied."] = "Zugriff verweigert."; $a->strings["Welcome to %s"] = "Willkommen zu %s"; $a->strings["No more system notifications."] = "Keine weiteren Systembenachrichtigungen."; @@ -707,64 +726,8 @@ $a->strings["Only logged in users are permitted to perform a search."] = "Nur ei $a->strings["Too Many Requests"] = "Zu viele Abfragen"; $a->strings["Only one search per minute is permitted for not logged in users."] = "Es ist nur eine Suchanfrage pro Minute für nicht eingeloggte Benutzer gestattet."; $a->strings["No results."] = "Keine Ergebnisse."; -$a->strings["Items tagged with: %s"] = "Beiträge markiert mit: %s"; -$a->strings["Search results for: %s"] = "Suchergebnisse für: %s"; -$a->strings["Invalid request identifier."] = "Invalid request identifier."; -$a->strings["Discard"] = "Verwerfen"; -$a->strings["Ignore"] = "Ignorieren"; -$a->strings["System"] = "System"; -$a->strings["Personal"] = "Persönlich"; -$a->strings["Show Ignored Requests"] = "Zeige ignorierte Anfragen"; -$a->strings["Hide Ignored Requests"] = "Verberge ignorierte Anfragen"; -$a->strings["Notification type: "] = "Benachrichtigungstyp: "; -$a->strings["Friend Suggestion"] = "Kontaktvorschlag"; -$a->strings["suggested by %s"] = "vorgeschlagen von %s"; -$a->strings["Hide this contact from others"] = "Verbirg diesen Kontakt vor andere"; -$a->strings["Post a new friend activity"] = "Neue-Kontakt Nachricht senden"; -$a->strings["if applicable"] = "falls anwendbar"; -$a->strings["Approve"] = "Genehmigen"; -$a->strings["Claims to be known to you: "] = "Behauptet Dich zu kennen: "; -$a->strings["yes"] = "ja"; -$a->strings["no"] = "nein"; -$a->strings["Shall your connection be bidirectional or not? \"Friend\" implies that you allow to read and you subscribe to their posts. \"Fan/Admirer\" means that you allow to read but you do not want to read theirs. Approve as: "] = "Soll Deine Beziehung beidseitig sein oder nicht? \"Freund\" bedeutet, ihr könnt gegenseitig die Beiträge des Anderen lesen dürft. \"Fan/Verehrer\", dass du das lesen deiner Beiträge erlaubst aber nicht die Beiträge der anderen Seite lesen möchtest. Genehmigen als:"; -$a->strings["Shall your connection be bidirectional or not? \"Friend\" implies that you allow to read and you subscribe to their posts. \"Sharer\" means that you allow to read but you do not want to read theirs. Approve as: "] = "Soll Deine Beziehung beidseitig sein oder nicht? \"Freund\" bedeutet, ihr gegenseitig die Beiträge des Anderen lesen dürft. \"Teilenden\", das du das lesen deiner Beiträge erlaubst aber nicht die Beiträge der anderen Seite lesen möchtest. Genehmigen als:"; -$a->strings["Friend"] = "Freund"; -$a->strings["Sharer"] = "Teilenden"; -$a->strings["Fan/Admirer"] = "Fan/Verehrer"; -$a->strings["Friend/Connect Request"] = "Kontakt-/Freundschaftsanfrage"; -$a->strings["New Follower"] = "Neuer Bewunderer"; -$a->strings["Profile URL"] = "Profil URL"; -$a->strings["No introductions."] = "Keine Kontaktanfragen."; -$a->strings["%s liked %s's post"] = "%s mag %ss Beitrag"; -$a->strings["%s disliked %s's post"] = "%s mag %ss Beitrag nicht"; -$a->strings["%s is now friends with %s"] = "%s ist jetzt mit %s befreundet"; -$a->strings["%s created a new post"] = "%s hat einen neuen Beitrag erstellt"; -$a->strings["%s commented on %s's post"] = "%s hat %ss Beitrag kommentiert"; -$a->strings["No more network notifications."] = "Keine weiteren Netzwerk-Benachrichtigungen."; -$a->strings["Network Notifications"] = "Netzwerk Benachrichtigungen"; -$a->strings["No more personal notifications."] = "Keine weiteren persönlichen Benachrichtigungen"; -$a->strings["Personal Notifications"] = "Persönliche Benachrichtigungen"; -$a->strings["No more home notifications."] = "Keine weiteren Pinnwand-Benachrichtigungen"; -$a->strings["Home Notifications"] = "Pinnwand Benachrichtigungen"; -$a->strings["Profile not found."] = "Profil nicht gefunden."; -$a->strings["Contact not found."] = "Kontakt nicht gefunden."; -$a->strings["This may occasionally happen if contact was requested by both persons and it has already been approved."] = "Das kann passieren, wenn sich zwei Kontakte gegenseitig eingeladen haben und bereits einer angenommen wurde."; -$a->strings["Response from remote site was not understood."] = "Antwort der Gegenstelle unverständlich."; -$a->strings["Unexpected response from remote site: "] = "Unerwartete Antwort der Gegenstelle: "; -$a->strings["Confirmation completed successfully."] = "Bestätigung erfolgreich abgeschlossen."; -$a->strings["Remote site reported: "] = "Gegenstelle meldet: "; -$a->strings["Temporary failure. Please wait and try again."] = "Zeitweiser Fehler. Bitte warte einige Momente und versuche es dann noch einmal."; -$a->strings["Introduction failed or was revoked."] = "Kontaktanfrage schlug fehl oder wurde zurückgezogen."; -$a->strings["Unable to set contact photo."] = "Konnte das Bild des Kontakts nicht speichern."; -$a->strings["No user record found for '%s' "] = "Für '%s' wurde kein Nutzer gefunden"; -$a->strings["Our site encryption key is apparently messed up."] = "Der Verschlüsselungsschlüssel unserer Seite ist anscheinend nicht in Ordnung."; -$a->strings["Empty site URL was provided or URL could not be decrypted by us."] = "Leere URL für die Seite erhalten oder die URL konnte nicht entschlüsselt werden."; -$a->strings["Contact record was not found for you on our site."] = "Für diesen Kontakt wurde auf unserer Seite kein Eintrag gefunden."; -$a->strings["Site public key not available in contact record for URL %s."] = "Die Kontaktdaten für URL %s enthalten keinen Public Key für den Server."; -$a->strings["The ID provided by your system is a duplicate on our system. It should work if you try again."] = "Die ID, die uns Dein System angeboten hat, ist hier bereits vergeben. Bitte versuche es noch einmal."; -$a->strings["Unable to set your contact credentials on our system."] = "Deine Kontaktreferenzen konnten nicht in unserem System gespeichert werden."; -$a->strings["Unable to update your contact profile details on our system"] = "Die Updates für Dein Profil konnten nicht gespeichert werden"; -$a->strings["%1\$s has joined %2\$s"] = "%1\$s ist %2\$s beigetreten"; +$a->strings["Items tagged with: %s"] = "Beiträge die mit %s getaggt sind"; +$a->strings["Results for: %s"] = "Ergebnisse für: %s"; $a->strings["This is Friendica, version"] = "Dies ist Friendica, Version"; $a->strings["running at web location"] = "die unter folgender Webadresse zu finden ist"; $a->strings["Please visit Friendica.com to learn more about the Friendica project."] = "Bitte besuche Friendica.com, um mehr über das Friendica Projekt zu erfahren."; @@ -779,6 +742,7 @@ $a->strings["\n\t\tDear %1\$s,\n\t\t\tA request was recently received at \"%2\$s $a->strings["\n\t\tFollow this link to verify your identity:\n\n\t\t%1\$s\n\n\t\tYou will then receive a follow-up message containing the new password.\n\t\tYou may change that password from your account settings page after logging in.\n\n\t\tThe login details are as follows:\n\n\t\tSite Location:\t%2\$s\n\t\tLogin Name:\t%3\$s"] = "\nUm Deine Identität zu verifizieren, folge bitte dem folgenden Link:\n\n%1\$s\n\nDu wirst eine weitere E-Mail mit Deinem neuen Passwort erhalten. Sobald Du Dich\nangemeldet hast, kannst Du Dein Passwort in den Einstellungen ändern.\n\nDie Anmeldedetails sind die folgenden:\n\nAdresse der Seite:\t%2\$s\nBenutzername:\t%3\$s"; $a->strings["Password reset requested at %s"] = "Anfrage zum Zurücksetzen des Passworts auf %s erhalten"; $a->strings["Request could not be verified. (You may have previously submitted it.) Password reset failed."] = "Anfrage konnte nicht verifiziert werden. (Eventuell hast Du bereits eine ähnliche Anfrage gestellt.) Zurücksetzen des Passworts gescheitert."; +$a->strings["Password Reset"] = "Passwort zurücksetzen"; $a->strings["Your password has been reset as requested."] = "Dein Passwort wurde wie gewünscht zurückgesetzt."; $a->strings["Your new password is"] = "Dein neues Passwort lautet"; $a->strings["Save or copy your new password - and then"] = "Speichere oder kopiere Dein neues Passwort - und dann"; @@ -793,55 +757,17 @@ $a->strings["Nickname or Email: "] = "Spitzname oder E-Mail:"; $a->strings["Reset"] = "Zurücksetzen"; $a->strings["No profile"] = "Kein Profil"; $a->strings["Help:"] = "Hilfe:"; +$a->strings["Not Found"] = "Nicht gefunden"; +$a->strings["Page not found."] = "Seite nicht gefunden."; $a->strings["Invalid request."] = "Ungültige Anfrage"; $a->strings["Image exceeds size limit of %s"] = "Bildgröße überschreitet das Limit von %s"; $a->strings["Unable to process image."] = "Konnte das Bild nicht bearbeiten."; $a->strings["Image upload failed."] = "Hochladen des Bildes gescheitert."; -$a->strings["Friend suggestion sent."] = "Kontaktvorschlag gesendet."; -$a->strings["Suggest Friends"] = "Kontakte vorschlagen"; -$a->strings["Suggest a friend for %s"] = "Schlage %s einen Kontakt vor"; -$a->strings["Submit"] = "Senden"; $a->strings["Remote privacy information not available."] = "Entfernte Privatsphäreneinstellungen nicht verfügbar."; $a->strings["Visible to:"] = "Sichtbar für:"; -$a->strings["Event can not end before it has started."] = "Die Veranstaltung kann nicht enden bevor sie beginnt."; -$a->strings["Event title and start time are required."] = "Der Veranstaltungstitel und die Anfangszeit müssen angegeben werden."; -$a->strings["Sun"] = "So"; -$a->strings["Mon"] = "Mo"; -$a->strings["Tue"] = "Di"; -$a->strings["Wed"] = "Mi"; -$a->strings["Thu"] = "Do"; -$a->strings["Fri"] = "Fr"; -$a->strings["Sat"] = "Sa"; -$a->strings["Jan"] = "Jan"; -$a->strings["Feb"] = "Feb"; -$a->strings["Mar"] = "März"; -$a->strings["Apr"] = "Apr"; -$a->strings["Jun"] = "Jun"; -$a->strings["Jul"] = "Juli"; -$a->strings["Aug"] = "Aug"; -$a->strings["Sept"] = "Sep"; -$a->strings["Oct"] = "Okt"; -$a->strings["Nov"] = "Nov"; -$a->strings["Dec"] = "Dez"; -$a->strings["today"] = "Heute"; -$a->strings["l, F j"] = "l, F j"; -$a->strings["Edit event"] = "Veranstaltung bearbeiten"; -$a->strings["Create New Event"] = "Neue Veranstaltung erstellen"; -$a->strings["Previous"] = "Vorherige"; -$a->strings["Next"] = "Nächste"; -$a->strings["Event details"] = "Veranstaltungsdetails"; -$a->strings["Starting date and Title are required."] = "Anfangszeitpunkt und Titel werden benötigt"; -$a->strings["Event Starts:"] = "Veranstaltungsbeginn:"; -$a->strings["Required"] = "Benötigt"; -$a->strings["Finish date/time is not known or not relevant"] = "Enddatum/-zeit ist nicht bekannt oder nicht relevant"; -$a->strings["Event Finishes:"] = "Veranstaltungsende:"; -$a->strings["Adjust for viewer timezone"] = "An Zeitzone des Betrachters anpassen"; -$a->strings["Description:"] = "Beschreibung"; -$a->strings["Title:"] = "Titel:"; -$a->strings["Share this event"] = "Veranstaltung teilen"; $a->strings["Global Directory"] = "Weltweites Verzeichnis"; $a->strings["Find on this site"] = "Auf diesem Server suchen"; -$a->strings["Finding:"] = "Funde:"; +$a->strings["Results for:"] = "Ergebnisse für:"; $a->strings["Site Directory"] = "Verzeichnis"; $a->strings["No entries (some entries may be hidden)."] = "Keine Einträge (einige Einträge könnten versteckt sein)."; $a->strings["OpenID protocol error. No ID returned."] = "OpenID Protokollfehler. Keine ID zurückgegeben."; @@ -850,7 +776,7 @@ $a->strings["This site has exceeded the number of allowed daily account registra $a->strings["Import"] = "Import"; $a->strings["Move account"] = "Account umziehen"; $a->strings["You can import an account from another Friendica server."] = "Du kannst einen Account von einem anderen Friendica Server importieren."; -$a->strings["You need to export your account from the old server and upload it here. We will recreate your old account here with all your contacts. We will try also to inform your friends that you moved here."] = "Du musst Deinen Account vom alten Server exportieren und hier hochladen. Wir stellen Deinen alten Account mit all Deinen Kontakten wieder her. Wir werden auch versuchen all Deine Freunde darüber zu informieren, dass Du hierher umgezogen bist."; +$a->strings["You need to export your account from the old server and upload it here. We will recreate your old account here with all your contacts. We will try also to inform your friends that you moved here."] = "Du musst Deinen Account vom alten Server exportieren und hier hochladen. Wir stellen Deinen alten Account mit all Deinen Kontakten wieder her. Wir werden auch versuchen all Deine Kontakte darüber zu informieren, dass Du hierher umgezogen bist."; $a->strings["This feature is experimental. We can't import contacts from the OStatus network (GNU Social/Statusnet) or from Diaspora"] = "Dieses Feature ist experimentell. Wir können keine Kontakte vom OStatus Netzwerk (GNU Social/Statusnet) oder von Diaspora importieren"; $a->strings["Account file"] = "Account Datei"; $a->strings["To export your account, go to \"Settings->Export your personal data\" and select \"Export account\""] = "Um Deinen Account zu exportieren, rufe \"Einstellungen -> Persönliche Daten exportieren\" auf und wähle \"Account exportieren\""; @@ -860,6 +786,7 @@ $a->strings["Contacts who are not members of a group"] = "Kontakte, die keiner G $a->strings["No keywords to match. Please add keywords to your default profile."] = "Keine Schlüsselwörter zum Abgleichen gefunden. Bitte füge einige Schlüsselwörter zu Deinem Standardprofil hinzu."; $a->strings["is interested in:"] = "ist interessiert an:"; $a->strings["Profile Match"] = "Profilübereinstimmungen"; +$a->strings["No matches"] = "Keine Übereinstimmungen"; $a->strings["Export account"] = "Account exportieren"; $a->strings["Export your account info and contacts. Use this to make a backup of your account and/or to move it to another server."] = "Exportiere Deine Accountinformationen und Kontakte. Verwende dies um ein Backup Deines Accounts anzulegen und/oder damit auf einen anderen Server umzuziehen."; $a->strings["Export all"] = "Alles exportieren"; @@ -886,17 +813,202 @@ $a->strings["You are cordially invited to join me and other close friends on Fri $a->strings["You will need to supply this invitation code: \$invite_code"] = "Du benötigst den folgenden Einladungscode: \$invite_code"; $a->strings["Once you have registered, please connect with me via my profile page at:"] = "Sobald Du registriert bist, kontaktiere mich bitte auf meiner Profilseite:"; $a->strings["For more information about the Friendica project and why we feel it is important, please visit http://friendica.com"] = "Für weitere Informationen über das Friendica Projekt und warum wir es für ein wichtiges Projekt halten, besuche bitte http://friendica.com"; +$a->strings["Submit"] = "Senden"; $a->strings["Contact Photos"] = "Kontaktbilder"; $a->strings["Files"] = "Dateien"; $a->strings["System down for maintenance"] = "System zur Wartung abgeschaltet"; +$a->strings["Permission denied"] = "Zugriff verweigert"; $a->strings["Invalid profile identifier."] = "Ungültiger Profil-Bezeichner."; $a->strings["Profile Visibility Editor"] = "Editor für die Profil-Sichtbarkeit"; $a->strings["Click on a contact to add or remove."] = "Klicke einen Kontakt an, um ihn hinzuzufügen oder zu entfernen"; $a->strings["Visible To"] = "Sichtbar für"; $a->strings["All Contacts (with secure profile access)"] = "Alle Kontakte (mit gesichertem Profilzugriff)"; $a->strings["No contacts."] = "Keine Kontakte."; +$a->strings["Tag removed"] = "Tag entfernt"; +$a->strings["Remove Item Tag"] = "Gegenstands-Tag entfernen"; +$a->strings["Select a tag to remove: "] = "Wähle ein Tag zum Entfernen aus: "; +$a->strings["Remove"] = "Entfernen"; +$a->strings["Sorry, maybe your upload is bigger than the PHP configuration allows"] = "Entschuldige, die Datei scheint größer zu sein als es die PHP Konfiguration erlaubt."; +$a->strings["Or - did you try to upload an empty file?"] = "Oder - hast Du versucht, eine leere Datei hochzuladen?"; +$a->strings["File exceeds size limit of %s"] = "Die Datei ist größer als das erlaubte Limit von %s"; +$a->strings["File upload failed."] = "Hochladen der Datei fehlgeschlagen."; +$a->strings["No friends to display."] = "Keine Kontakte zum Anzeigen."; +$a->strings["Resubscribing to OStatus contacts"] = "Erneuern der OStatus Abonements"; +$a->strings["Error"] = "Fehler"; +$a->strings["Done"] = "Erledigt"; +$a->strings["Keep this window open until done."] = "Lasse dieses Fenster offen, bis der Vorgang abgeschlossen ist."; +$a->strings["No potential page delegates located."] = "Keine potentiellen Bevollmächtigten für die Seite gefunden."; +$a->strings["Delegates are able to manage all aspects of this account/page except for basic account settings. Please do not delegate your personal account to anybody that you do not trust completely."] = "Bevollmächtigte sind in der Lage, alle Aspekte dieses Kontos/dieser Seite zu verwalten, abgesehen von den Grundeinstellungen des Kontos. Bitte gib niemandem eine Bevollmächtigung für Deinen privaten Account, dem Du nicht absolut vertraust!"; +$a->strings["Existing Page Managers"] = "Vorhandene Seitenmanager"; +$a->strings["Existing Page Delegates"] = "Vorhandene Bevollmächtigte für die Seite"; +$a->strings["Potential Delegates"] = "Potentielle Bevollmächtigte"; +$a->strings["Add"] = "Hinzufügen"; +$a->strings["No entries."] = "Keine Einträge."; +$a->strings["Credits"] = "Credits"; +$a->strings["Friendica is a community project, that would not be possible without the help of many people. Here is a list of those who have contributed to the code or the translation of Friendica. Thank you all!"] = "Friendica ist ein Gemeinschaftsprojekt, das nicht ohne die Hilfe vieler Personen möglich wäre. Hier ist eine Aufzählung der Personen, die zum Code oder der Übersetzung beigetragen haben. Dank an alle !"; +$a->strings["- select -"] = "- auswählen -"; +$a->strings["%1\$s is following %2\$s's %3\$s"] = "%1\$s folgt %2\$s %3\$s"; +$a->strings["Item not available."] = "Beitrag nicht verfügbar."; +$a->strings["Item was not found."] = "Beitrag konnte nicht gefunden werden."; +$a->strings["Submit Request"] = "Anfrage abschicken"; +$a->strings["You already added this contact."] = "Du hast den Kontakt bereits hinzugefügt."; +$a->strings["Diaspora support isn't enabled. Contact can't be added."] = "Diaspora Unterstützung ist nicht aktiviert. Der Kontakt kann nicht zugefügt werden."; +$a->strings["OStatus support is disabled. Contact can't be added."] = "OStatus Unterstützung ist nicht aktiviert. Der Kontakt kann nicht zugefügt werden."; +$a->strings["The network type couldn't be detected. Contact can't be added."] = "Der Netzwerktype wurde nicht erkannt. Der Kontakt kann nicht hinzugefügt werden."; +$a->strings["Please answer the following:"] = "Bitte beantworte folgendes:"; +$a->strings["Does %s know you?"] = "Kennt %s Dich?"; +$a->strings["No"] = "Nein"; +$a->strings["Add a personal note:"] = "Eine persönliche Notiz beifügen:"; +$a->strings["Your Identity Address:"] = "Adresse Deines Profils:"; +$a->strings["Profile URL"] = "Profil URL"; +$a->strings["Contact added"] = "Kontakt hinzugefügt"; +$a->strings["You must be logged in to use addons. "] = "Sie müssen angemeldet sein um Addons benutzen zu können."; +$a->strings["Applications"] = "Anwendungen"; +$a->strings["No installed applications."] = "Keine Applikationen installiert."; +$a->strings["Do you really want to delete this suggestion?"] = "Möchtest Du wirklich diese Empfehlung löschen?"; +$a->strings["No suggestions available. If this is a new site, please try again in 24 hours."] = "Keine Vorschläge verfügbar. Falls der Server frisch aufgesetzt wurde, versuche es bitte in 24 Stunden noch einmal."; +$a->strings["Ignore/Hide"] = "Ignorieren/Verbergen"; +$a->strings["Not Extended"] = "Nicht erweitert."; +$a->strings["Access to this profile has been restricted."] = "Der Zugriff zu diesem Profil wurde eingeschränkt."; +$a->strings["Item has been removed."] = "Eintrag wurde entfernt."; +$a->strings["No contacts in common."] = "Keine gemeinsamen Kontakte."; +$a->strings["Common Friends"] = "Gemeinsame Kontakte"; +$a->strings["Welcome to Friendica"] = "Willkommen bei Friendica"; +$a->strings["New Member Checklist"] = "Checkliste für neue Mitglieder"; +$a->strings["We would like to offer some tips and links to help make your experience enjoyable. Click any item to visit the relevant page. A link to this page will be visible from your home page for two weeks after your initial registration and then will quietly disappear."] = "Wir möchten Dir einige Tipps und Links anbieten, die Dir helfen könnten, den Einstieg angenehmer zu machen. Klicke auf ein Element, um die entsprechende Seite zu besuchen. Ein Link zu dieser Seite hier bleibt für Dich an Deiner Pinnwand für zwei Wochen nach dem Registrierungsdatum sichtbar und wird dann verschwinden."; +$a->strings["Getting Started"] = "Einstieg"; +$a->strings["Friendica Walk-Through"] = "Friendica Rundgang"; +$a->strings["On your Quick Start page - find a brief introduction to your profile and network tabs, make some new connections, and find some groups to join."] = "Auf der Quick Start Seite findest Du eine kurze Einleitung in die einzelnen Funktionen Deines Profils und die Netzwerk-Reiter, wo Du interessante Foren findest und neue Kontakte knüpfst."; +$a->strings["Go to Your Settings"] = "Gehe zu deinen Einstellungen"; +$a->strings["On your Settings page - change your initial password. Also make a note of your Identity Address. This looks just like an email address - and will be useful in making friends on the free social web."] = "Ändere bitte unter Einstellungen dein Passwort. Außerdem merke dir deine Identifikationsadresse. Diese sieht aus wie eine E-Mail-Adresse und wird benötigt, um Kontakte mit anderen im Friendica Netzwerk zu knüpfen.."; +$a->strings["Review the other settings, particularly the privacy settings. An unpublished directory listing is like having an unlisted phone number. In general, you should probably publish your listing - unless all of your friends and potential friends know exactly how to find you."] = "Überprüfe die restlichen Einstellungen, insbesondere die Einstellungen zur Privatsphäre. Wenn Du Dein Profil nicht veröffentlichst, ist das als wenn Du Deine Telefonnummer nicht ins Telefonbuch einträgst. Im Allgemeinen solltest Du es veröffentlichen - außer all Deine Kontakte und potentiellen Kontakte wissen genau, wie sie Dich finden können."; +$a->strings["Upload Profile Photo"] = "Profilbild hochladen"; +$a->strings["Upload a profile photo if you have not done so already. Studies have shown that people with real photos of themselves are ten times more likely to make friends than people who do not."] = "Lade ein Profilbild hoch, falls Du es noch nicht getan hast. Studien haben gezeigt, dass es zehnmal wahrscheinlicher ist neue Kontakte zu finden, wenn Du ein Bild von Dir selbst verwendest, als wenn Du dies nicht tust."; +$a->strings["Edit Your Profile"] = "Editiere dein Profil"; +$a->strings["Edit your default profile to your liking. Review the settings for hiding your list of friends and hiding the profile from unknown visitors."] = "Editiere Dein Standard Profil nach Deinen Vorlieben. Überprüfe die Einstellungen zum Verbergen Deiner Kontaktliste vor unbekannten Betrachtern des Profils."; +$a->strings["Profile Keywords"] = "Profil Schlüsselbegriffe"; +$a->strings["Set some public keywords for your default profile which describe your interests. We may be able to find other people with similar interests and suggest friendships."] = "Trage ein paar öffentliche Stichwörter in Dein Standardprofil ein, die Deine Interessen beschreiben. Eventuell sind wir in der Lage Leute zu finden, die Deine Interessen teilen und können Dir dann Kontakte vorschlagen."; +$a->strings["Connecting"] = "Verbindungen knüpfen"; +$a->strings["Importing Emails"] = "Emails Importieren"; +$a->strings["Enter your email access information on your Connector Settings page if you wish to import and interact with friends or mailing lists from your email INBOX"] = "Gib Deine E-Mail-Zugangsinformationen auf der Connector-Einstellungsseite ein, falls Du E-Mails aus Deinem Posteingang importieren und mit Kontakten und Mailinglisten interagieren willst."; +$a->strings["Go to Your Contacts Page"] = "Gehe zu deiner Kontakt-Seite"; +$a->strings["Your Contacts page is your gateway to managing friendships and connecting with friends on other networks. Typically you enter their address or site URL in the Add New Contact dialog."] = "Die Kontakte-Seite ist die Einstiegsseite, von der aus Du Kontakte verwalten und Dich mit Personen in anderen Netzwerken verbinden kannst. Normalerweise gibst Du dazu einfach ihre Adresse oder die URL der Seite im Kasten Neuen Kontakt hinzufügen ein."; +$a->strings["Go to Your Site's Directory"] = "Gehe zum Verzeichnis Deiner Friendica Instanz"; +$a->strings["The Directory page lets you find other people in this network or other federated sites. Look for a Connect or Follow link on their profile page. Provide your own Identity Address if requested."] = "Über die Verzeichnisseite kannst Du andere Personen auf diesem Server oder anderen verknüpften Seiten finden. Halte nach einem Verbinden oder Folgen Link auf deren Profilseiten Ausschau und gib Deine eigene Profiladresse an, falls Du danach gefragt wirst."; +$a->strings["Finding New People"] = "Neue Leute kennenlernen"; +$a->strings["On the side panel of the Contacts page are several tools to find new friends. We can match people by interest, look up people by name or interest, and provide suggestions based on network relationships. On a brand new site, friend suggestions will usually begin to be populated within 24 hours."] = "Im seitlichen Bedienfeld der Kontakteseite gibt es diverse Werkzeuge, um neue Personen zu finden. Wir können Menschen mit den gleichen Interessen finden, anhand von Namen oder Interessen suchen oder aber aufgrund vorhandener Kontakte neue Leute vorschlagen.\nAuf einer brandneuen - soeben erstellten - Seite starten die Kontaktvorschläge innerhalb von 24 Stunden."; +$a->strings["Group Your Contacts"] = "Gruppiere deine Kontakte"; +$a->strings["Once you have made some friends, organize them into private conversation groups from the sidebar of your Contacts page and then you can interact with each group privately on your Network page."] = "Sobald Du einige Kontakte gefunden hast, organisiere sie in Gruppen zur privaten Kommunikation im Seitenmenü der Kontakte-Seite. Du kannst dann mit jeder dieser Gruppen von der Netzwerkseite aus privat interagieren."; +$a->strings["Why Aren't My Posts Public?"] = "Warum sind meine Beiträge nicht öffentlich?"; +$a->strings["Friendica respects your privacy. By default, your posts will only show up to people you've added as friends. For more information, see the help section from the link above."] = "Friendica respektiert Deine Privatsphäre. Mit der Grundeinstellung werden Deine Beiträge ausschließlich Deinen Kontakten angezeigt. Für weitere Informationen diesbezüglich lies Dir bitte den entsprechenden Abschnitt in der Hilfe unter dem obigen Link durch."; +$a->strings["Getting Help"] = "Hilfe bekommen"; +$a->strings["Go to the Help Section"] = "Zum Hilfe Abschnitt gehen"; +$a->strings["Our help pages may be consulted for detail on other program features and resources."] = "Unsere Hilfe Seiten können herangezogen werden, um weitere Einzelheiten zu andern Programm Features zu erhalten."; +$a->strings["Remove My Account"] = "Konto löschen"; +$a->strings["This will completely remove your account. Once this has been done it is not recoverable."] = "Dein Konto wird endgültig gelöscht. Es gibt keine Möglichkeit, es wiederherzustellen."; +$a->strings["Please enter your password for verification:"] = "Bitte gib Dein Passwort zur Verifikation ein:"; +$a->strings["Item not found"] = "Beitrag nicht gefunden"; +$a->strings["Edit post"] = "Beitrag bearbeiten"; +$a->strings["Warning: This group contains %s member from an insecure network."] = array( + 0 => "Warnung: Diese Gruppe beinhaltet %s Person aus einem unsicheren Netzwerk.", + 1 => "Warnung: Diese Gruppe beinhaltet %s Personen aus unsicheren Netzwerken.", +); +$a->strings["Private messages to this group are at risk of public disclosure."] = "Private Nachrichten an diese Gruppe könnten an die Öffentlichkeit geraten."; +$a->strings["No such group"] = "Es gibt keine solche Gruppe"; +$a->strings["Group is empty"] = "Gruppe ist leer"; +$a->strings["Group: %s"] = "Gruppe: %s"; +$a->strings["Private messages to this person are at risk of public disclosure."] = "Private Nachrichten an diese Person könnten an die Öffentlichkeit gelangen."; +$a->strings["Invalid contact."] = "Ungültiger Kontakt."; +$a->strings["Commented Order"] = "Neueste Kommentare"; +$a->strings["Sort by Comment Date"] = "Nach Kommentardatum sortieren"; +$a->strings["Posted Order"] = "Neueste Beiträge"; +$a->strings["Sort by Post Date"] = "Nach Beitragsdatum sortieren"; +$a->strings["Posts that mention or involve you"] = "Beiträge, in denen es um Dich geht"; +$a->strings["New"] = "Neue"; +$a->strings["Activity Stream - by date"] = "Aktivitäten-Stream - nach Datum"; +$a->strings["Shared Links"] = "Geteilte Links"; +$a->strings["Interesting Links"] = "Interessante Links"; +$a->strings["Starred"] = "Markierte"; +$a->strings["Favourite Posts"] = "Favorisierte Beiträge"; +$a->strings["Not available."] = "Nicht verfügbar."; +$a->strings["Time Conversion"] = "Zeitumrechnung"; +$a->strings["Friendica provides this service for sharing events with other networks and friends in unknown timezones."] = "Friendica bietet diese Funktion an, um das Teilen von Events mit Kontakten zu vereinfachen, deren Zeitzone nicht ermittelt werden kann."; +$a->strings["UTC time: %s"] = "UTC Zeit: %s"; +$a->strings["Current timezone: %s"] = "Aktuelle Zeitzone: %s"; +$a->strings["Converted localtime: %s"] = "Umgerechnete lokale Zeit: %s"; +$a->strings["Please select your timezone:"] = "Bitte wähle Deine Zeitzone:"; +$a->strings["The post was created"] = "Der Beitrag wurde angelegt"; +$a->strings["Group created."] = "Gruppe erstellt."; +$a->strings["Could not create group."] = "Konnte die Gruppe nicht erstellen."; +$a->strings["Group not found."] = "Gruppe nicht gefunden."; +$a->strings["Group name changed."] = "Gruppenname geändert."; +$a->strings["Save Group"] = "Gruppe speichern"; +$a->strings["Create a group of contacts/friends."] = "Eine Kontaktgruppe anlegen."; +$a->strings["Group removed."] = "Gruppe entfernt."; +$a->strings["Unable to remove group."] = "Konnte die Gruppe nicht entfernen."; +$a->strings["Group Editor"] = "Gruppeneditor"; +$a->strings["Members"] = "Mitglieder"; +$a->strings["All Contacts"] = "Alle Kontakte"; +$a->strings["Number of daily wall messages for %s exceeded. Message failed."] = "Maximale Anzahl der täglichen Pinnwand Nachrichten für %s ist überschritten. Zustellung fehlgeschlagen."; +$a->strings["No recipient selected."] = "Kein Empfänger gewählt."; +$a->strings["Unable to check your home location."] = "Konnte Deinen Heimatort nicht bestimmen."; +$a->strings["Message could not be sent."] = "Nachricht konnte nicht gesendet werden."; +$a->strings["Message collection failure."] = "Konnte Nachrichten nicht abrufen."; +$a->strings["Message sent."] = "Nachricht gesendet."; +$a->strings["No recipient."] = "Kein Empfänger."; +$a->strings["Send Private Message"] = "Private Nachricht senden"; +$a->strings["If you wish for %s to respond, please check that the privacy settings on your site allow private mail from unknown senders."] = "Wenn Du möchtest, dass %s Dir antworten kann, überprüfe Deine Privatsphären-Einstellungen und erlaube private Nachrichten von unbekannten Absendern."; +$a->strings["To:"] = "An:"; +$a->strings["Subject:"] = "Betreff:"; +$a->strings["link"] = "Link"; +$a->strings["Authorize application connection"] = "Verbindung der Applikation autorisieren"; +$a->strings["Return to your app and insert this Securty Code:"] = "Gehe zu Deiner Anwendung zurück und trage dort folgenden Sicherheitscode ein:"; +$a->strings["Please login to continue."] = "Bitte melde Dich an um fortzufahren."; +$a->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 den Zugriff auf Deine Beiträge und Kontakte, sowie das Erstellen neuer Beiträge in Deinem Namen gestatten?"; +$a->strings["Source (bbcode) text:"] = "Quelle (bbcode) Text:"; +$a->strings["Source (Diaspora) text to convert to BBcode:"] = "Eingabe (Diaspora) nach BBCode zu konvertierender Text:"; +$a->strings["Source input: "] = "Originaltext:"; +$a->strings["bb2html (raw HTML): "] = "bb2html (reines HTML): "; +$a->strings["bb2html: "] = "bb2html: "; +$a->strings["bb2html2bb: "] = "bb2html2bb: "; +$a->strings["bb2md: "] = "bb2md: "; +$a->strings["bb2md2html: "] = "bb2md2html: "; +$a->strings["bb2dia2bb: "] = "bb2dia2bb: "; +$a->strings["bb2md2html2bb: "] = "bb2md2html2bb: "; +$a->strings["Source input (Diaspora format): "] = "Originaltext (Diaspora Format): "; +$a->strings["diaspora2bb: "] = "diaspora2bb: "; +$a->strings["Subscribing to OStatus contacts"] = "OStatus Kontakten folgen"; +$a->strings["No contact provided."] = "Keine Kontakte gefunden."; +$a->strings["Couldn't fetch information for contact."] = "Konnte die Kontaktinformationen nicht einholen."; +$a->strings["Couldn't fetch friends for contact."] = "Konnte die Kontaktliste des Kontakts nicht abfragen."; +$a->strings["success"] = "Erfolg"; +$a->strings["failed"] = "Fehlgeschlagen"; +$a->strings["ignored"] = "Ignoriert"; +$a->strings["%1\$s welcomes %2\$s"] = "%1\$s heißt %2\$s herzlich willkommen"; +$a->strings["Unable to locate contact information."] = "Konnte die Kontaktinformationen nicht finden."; +$a->strings["Do you really want to delete this message?"] = "Möchtest Du wirklich diese Nachricht löschen?"; +$a->strings["Message deleted."] = "Nachricht gelöscht."; +$a->strings["Conversation removed."] = "Unterhaltung gelöscht."; +$a->strings["No messages."] = "Keine Nachrichten."; +$a->strings["Message not available."] = "Nachricht nicht verfügbar."; +$a->strings["Delete message"] = "Nachricht löschen"; +$a->strings["Delete conversation"] = "Unterhaltung löschen"; +$a->strings["No secure communications available. You may be able to respond from the sender's profile page."] = "Sichere Kommunikation ist nicht verfügbar. Eventuell kannst Du auf der Profilseite des Absenders antworten."; +$a->strings["Send Reply"] = "Antwort senden"; +$a->strings["Unknown sender - %s"] = "'Unbekannter Absender - %s"; +$a->strings["You and %s"] = "Du und %s"; +$a->strings["%s and You"] = "%s und Du"; +$a->strings["D, d M Y - g:i A"] = "D, d. M Y - g:i A"; +$a->strings["%d message"] = array( + 0 => "%d Nachricht", + 1 => "%d Nachrichten", +); +$a->strings["Manage Identities and/or Pages"] = "Verwalte Identitäten und/oder Seiten"; +$a->strings["Toggle between different identities or community/group pages which share your account details or which you have been granted \"manage\" permissions"] = "Zwischen verschiedenen Identitäten oder Gemeinschafts-/Gruppenseiten wechseln, die Deine Kontoinformationen teilen oder zu denen Du „Verwalten“-Befugnisse bekommen hast."; +$a->strings["Select an identity to manage: "] = "Wähle eine Identität zum Verwalten aus: "; $a->strings["Contact settings applied."] = "Einstellungen zum Kontakt angewandt."; $a->strings["Contact update failed."] = "Konnte den Kontakt nicht aktualisieren."; +$a->strings["Contact not found."] = "Kontakt nicht gefunden."; $a->strings["WARNING: This is highly advanced and if you enter incorrect information your communications with this contact may stop working."] = "ACHTUNG: Das sind Experten-Einstellungen! Wenn Du etwas Falsches eingibst, funktioniert die Kommunikation mit diesem Kontakt evtl. nicht mehr."; $a->strings["Please use your browser 'Back' button now if you are uncertain what to do on this page."] = "Bitte nutze den Zurück-Button Deines Browsers jetzt, wenn Du Dir unsicher bist, was Du tun willst."; $a->strings["No mirroring"] = "Kein Spiegeln"; @@ -904,22 +1016,337 @@ $a->strings["Mirror as forwarded posting"] = "Spiegeln als weitergeleitete Beitr $a->strings["Mirror as my own posting"] = "Spiegeln als meine eigenen Beiträge"; $a->strings["Return to contact editor"] = "Zurück zum Kontakteditor"; $a->strings["Refetch contact data"] = "Kontaktdaten neu laden"; +$a->strings["Remote Self"] = "Entfernte Konten"; +$a->strings["Mirror postings from this contact"] = "Spiegle Beiträge dieses Kontakts"; +$a->strings["Mark this contact as remote_self, this will cause friendica to repost new entries from this contact."] = "Markiere diesen Kontakt als remote_self (entferntes Konto), dies veranlasst Friendica alle Top-Level Beiträge dieses Kontakts an all Deine Kontakte zu senden."; $a->strings["Name"] = "Name"; $a->strings["Account Nickname"] = "Konto-Spitzname"; $a->strings["@Tagname - overrides Name/Nickname"] = "@Tagname - überschreibt Name/Spitzname"; $a->strings["Account URL"] = "Konto-URL"; -$a->strings["Friend Request URL"] = "URL für Freundschaftsanfragen"; -$a->strings["Friend Confirm URL"] = "URL für Bestätigungen von Freundschaftsanfragen"; +$a->strings["Friend Request URL"] = "URL für Kontaktschaftsanfragen"; +$a->strings["Friend Confirm URL"] = "URL für Bestätigungen von Kontaktanfragen"; $a->strings["Notification Endpoint URL"] = "URL-Endpunkt für Benachrichtigungen"; $a->strings["Poll/Feed URL"] = "Pull/Feed-URL"; $a->strings["New photo from this URL"] = "Neues Foto von dieser URL"; -$a->strings["Remote Self"] = "Entfernte Konten"; -$a->strings["Mirror postings from this contact"] = "Spiegle Beiträge dieses Kontakts"; -$a->strings["Mark this contact as remote_self, this will cause friendica to repost new entries from this contact."] = "Markiere diesen Kontakt als remote_self (entferntes Konto), dies veranlasst Friendica alle Top-Level Beiträge dieses Kontakts an all Deine Kontakte zu senden."; -$a->strings["Tag removed"] = "Tag entfernt"; -$a->strings["Remove Item Tag"] = "Gegenstands-Tag entfernen"; -$a->strings["Select a tag to remove: "] = "Wähle ein Tag zum Entfernen aus: "; -$a->strings["Remove"] = "Entfernen"; +$a->strings["This introduction has already been accepted."] = "Diese Kontaktanfrage wurde bereits akzeptiert."; +$a->strings["Profile location is not valid or does not contain profile information."] = "Profiladresse ist ungültig oder stellt keine Profildaten zur Verfügung."; +$a->strings["Warning: profile location has no identifiable owner name."] = "Warnung: Es konnte kein Name des Besitzers von der angegebenen Profiladresse gefunden werden."; +$a->strings["Warning: profile location has no profile photo."] = "Warnung: Es gibt kein Profilbild bei der angegebenen Profiladresse."; +$a->strings["%d required parameter was not found at the given location"] = array( + 0 => "%d benötigter Parameter wurde an der angegebenen Stelle nicht gefunden", + 1 => "%d benötigte Parameter wurden an der angegebenen Stelle nicht gefunden", +); +$a->strings["Introduction complete."] = "Kontaktanfrage abgeschlossen."; +$a->strings["Unrecoverable protocol error."] = "Nicht behebbarer Protokollfehler."; +$a->strings["Profile unavailable."] = "Profil nicht verfügbar."; +$a->strings["%s has received too many connection requests today."] = "%s hat heute zu viele Kontaktanfragen erhalten."; +$a->strings["Spam protection measures have been invoked."] = "Maßnahmen zum Spamschutz wurden ergriffen."; +$a->strings["Friends are advised to please try again in 24 hours."] = "Freunde sind angehalten, es in 24 Stunden erneut zu versuchen."; +$a->strings["Invalid locator"] = "Ungültiger Locator"; +$a->strings["Invalid email address."] = "Ungültige E-Mail-Adresse."; +$a->strings["This account has not been configured for email. Request failed."] = "Dieses Konto ist nicht für E-Mail konfiguriert. Anfrage fehlgeschlagen."; +$a->strings["You have already introduced yourself here."] = "Du hast Dich hier bereits vorgestellt."; +$a->strings["Apparently you are already friends with %s."] = "Es scheint so, als ob Du bereits mit %s in Kontakt stehst."; +$a->strings["Invalid profile URL."] = "Ungültige Profil-URL."; +$a->strings["Failed to update contact record."] = "Aktualisierung der Kontaktdaten fehlgeschlagen."; +$a->strings["Your introduction has been sent."] = "Deine Kontaktanfrage wurde gesendet."; +$a->strings["Remote subscription can't be done for your network. Please subscribe directly on your system."] = "Entferntes abon­nie­ren kann für dein Netzwerk nicht durchgeführt werden. Bitte nutze direkt die Abonnieren-Funktion deines Systems. "; +$a->strings["Please login to confirm introduction."] = "Bitte melde Dich an, um die Kontaktanfrage zu bestätigen."; +$a->strings["Incorrect identity currently logged in. Please login to this profile."] = "Momentan bist Du mit einer anderen Identität angemeldet. Bitte melde Dich mit diesem Profil an."; +$a->strings["Confirm"] = "Bestätigen"; +$a->strings["Hide this contact"] = "Verberge diesen Kontakt"; +$a->strings["Welcome home %s."] = "Willkommen zurück %s."; +$a->strings["Please confirm your introduction/connection request to %s."] = "Bitte bestätige Deine Kontaktanfrage bei %s."; +$a->strings["Please enter your 'Identity Address' from one of the following supported communications networks:"] = "Bitte gib die Adresse Deines Profils in einem der unterstützten sozialen Netzwerke an:"; +$a->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."] = "Wenn du noch kein Mitglied dieses freien sozialen Netzwerks bist, folge diesem Link um einen öffentlichen Friendica-Server zu finden und beizutreten."; +$a->strings["Friend/Connection Request"] = "Kontaktanfrage"; +$a->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"; +$a->strings["StatusNet/Federated Social Web"] = "StatusNet/Federated Social Web"; +$a->strings[" - please do not use this form. Instead, enter %s into your Diaspora search bar."] = " - bitte verwende dieses Formular nicht. Stattdessen suche nach %s in Deiner Diaspora Suchleiste."; +$a->strings["This entry was edited"] = "Dieser Beitrag wurde bearbeitet."; +$a->strings["%d comment"] = array( + 0 => "%d Kommentar", + 1 => "%d Kommentare", +); +$a->strings["Private Message"] = "Private Nachricht"; +$a->strings["I like this (toggle)"] = "Ich mag das (toggle)"; +$a->strings["like"] = "mag ich"; +$a->strings["I don't like this (toggle)"] = "Ich mag das nicht (toggle)"; +$a->strings["dislike"] = "mag ich nicht"; +$a->strings["Share this"] = "Weitersagen"; +$a->strings["share"] = "Teilen"; +$a->strings["This is you"] = "Das bist Du"; +$a->strings["Comment"] = "Kommentar"; +$a->strings["Bold"] = "Fett"; +$a->strings["Italic"] = "Kursiv"; +$a->strings["Underline"] = "Unterstrichen"; +$a->strings["Quote"] = "Zitat"; +$a->strings["Code"] = "Code"; +$a->strings["Image"] = "Bild"; +$a->strings["Link"] = "Link"; +$a->strings["Video"] = "Video"; +$a->strings["Edit"] = "Bearbeiten"; +$a->strings["add star"] = "markieren"; +$a->strings["remove star"] = "Markierung entfernen"; +$a->strings["toggle star status"] = "Markierung umschalten"; +$a->strings["starred"] = "markiert"; +$a->strings["add tag"] = "Tag hinzufügen"; +$a->strings["ignore thread"] = "Thread ignorieren"; +$a->strings["unignore thread"] = "Thread nicht mehr ignorieren"; +$a->strings["toggle ignore status"] = "Ignoriert-Status ein-/ausschalten"; +$a->strings["save to folder"] = "In Ordner speichern"; +$a->strings["I will attend"] = "Ich werde teilnehmen"; +$a->strings["I will not attend"] = "Ich werde nicht teilnehmen"; +$a->strings["I might attend"] = "Ich werde eventuell teilnehmen"; +$a->strings["to"] = "zu"; +$a->strings["Wall-to-Wall"] = "Wall-to-Wall"; +$a->strings["via Wall-To-Wall:"] = "via Wall-To-Wall:"; +$a->strings["Profile not found."] = "Profil nicht gefunden."; +$a->strings["This may occasionally happen if contact was requested by both persons and it has already been approved."] = "Das kann passieren, wenn sich zwei Kontakte gegenseitig eingeladen haben und bereits einer angenommen wurde."; +$a->strings["Response from remote site was not understood."] = "Antwort der Gegenstelle unverständlich."; +$a->strings["Unexpected response from remote site: "] = "Unerwartete Antwort der Gegenstelle: "; +$a->strings["Confirmation completed successfully."] = "Bestätigung erfolgreich abgeschlossen."; +$a->strings["Remote site reported: "] = "Gegenstelle meldet: "; +$a->strings["Temporary failure. Please wait and try again."] = "Zeitweiser Fehler. Bitte warte einige Momente und versuche es dann noch einmal."; +$a->strings["Introduction failed or was revoked."] = "Kontaktanfrage schlug fehl oder wurde zurückgezogen."; +$a->strings["Unable to set contact photo."] = "Konnte das Bild des Kontakts nicht speichern."; +$a->strings["No user record found for '%s' "] = "Für '%s' wurde kein Nutzer gefunden"; +$a->strings["Our site encryption key is apparently messed up."] = "Der Verschlüsselungsschlüssel unserer Seite ist anscheinend nicht in Ordnung."; +$a->strings["Empty site URL was provided or URL could not be decrypted by us."] = "Leere URL für die Seite erhalten oder die URL konnte nicht entschlüsselt werden."; +$a->strings["Contact record was not found for you on our site."] = "Für diesen Kontakt wurde auf unserer Seite kein Eintrag gefunden."; +$a->strings["Site public key not available in contact record for URL %s."] = "Die Kontaktdaten für URL %s enthalten keinen Public Key für den Server."; +$a->strings["The ID provided by your system is a duplicate on our system. It should work if you try again."] = "Die ID, die uns Dein System angeboten hat, ist hier bereits vergeben. Bitte versuche es noch einmal."; +$a->strings["Unable to set your contact credentials on our system."] = "Deine Kontaktreferenzen konnten nicht in unserem System gespeichert werden."; +$a->strings["Unable to update your contact profile details on our system"] = "Die Updates für Dein Profil konnten nicht gespeichert werden"; +$a->strings["%1\$s has joined %2\$s"] = "%1\$s ist %2\$s beigetreten"; +$a->strings["People Search - %s"] = "Personensuche - %s"; +$a->strings["Forum Search - %s"] = "Forensuche - %s"; +$a->strings["Friend suggestion sent."] = "Kontaktvorschlag gesendet."; +$a->strings["Suggest Friends"] = "Kontakte vorschlagen"; +$a->strings["Suggest a friend for %s"] = "Schlage %s einen Kontakt vor"; +$a->strings["Unable to locate original post."] = "Konnte den Originalbeitrag nicht finden."; +$a->strings["Empty post discarded."] = "Leerer Beitrag wurde verworfen."; +$a->strings["System error. Post not saved."] = "Systemfehler. Beitrag konnte nicht gespeichert werden."; +$a->strings["This message was sent to you by %s, a member of the Friendica social network."] = "Diese Nachricht wurde dir von %s geschickt, einem Mitglied des Sozialen Netzwerks Friendica."; +$a->strings["You may visit them online at %s"] = "Du kannst sie online unter %s besuchen"; +$a->strings["Please contact the sender by replying to this post if you do not wish to receive these messages."] = "Falls Du diese Beiträge nicht erhalten möchtest, kontaktiere bitte den Autor, indem Du auf diese Nachricht antwortest."; +$a->strings["%s posted an update."] = "%s hat ein Update veröffentlicht."; +$a->strings["Mood"] = "Stimmung"; +$a->strings["Set your current mood and tell your friends"] = "Wähle Deine aktuelle Stimmung und erzähle sie Deinen Kontakten"; +$a->strings["Poke/Prod"] = "Anstupsen"; +$a->strings["poke, prod or do other things to somebody"] = "Stupse Leute an oder mache anderes mit ihnen"; +$a->strings["Recipient"] = "Empfänger"; +$a->strings["Choose what you wish to do to recipient"] = "Was willst Du mit dem Empfänger machen:"; +$a->strings["Make this post private"] = "Diesen Beitrag privat machen"; +$a->strings["Image uploaded but image cropping failed."] = "Bild hochgeladen, aber das Zuschneiden schlug fehl."; +$a->strings["Image size reduction [%s] failed."] = "Verkleinern der Bildgröße von [%s] scheiterte."; +$a->strings["Shift-reload the page or clear browser cache if the new photo does not display immediately."] = "Drücke Umschalt+Neu Laden oder leere den Browser-Cache, falls das neue Foto nicht gleich angezeigt wird."; +$a->strings["Unable to process image"] = "Bild konnte nicht verarbeitet werden"; +$a->strings["Upload File:"] = "Datei hochladen:"; +$a->strings["Select a profile:"] = "Profil auswählen:"; +$a->strings["Upload"] = "Hochladen"; +$a->strings["or"] = "oder"; +$a->strings["skip this step"] = "diesen Schritt überspringen"; +$a->strings["select a photo from your photo albums"] = "wähle ein Foto aus deinen Fotoalben"; +$a->strings["Crop Image"] = "Bild zurechtschneiden"; +$a->strings["Please adjust the image cropping for optimum viewing."] = "Passe bitte den Bildausschnitt an, damit das Bild optimal dargestellt werden kann."; +$a->strings["Done Editing"] = "Bearbeitung abgeschlossen"; +$a->strings["Image uploaded successfully."] = "Bild erfolgreich hochgeladen."; +$a->strings["Registration successful. Please check your email for further instructions."] = "Registrierung erfolgreich. Eine E-Mail mit weiteren Anweisungen wurde an Dich gesendet."; +$a->strings["Failed to send email message. Here your accout details:
      login: %s
      password: %s

      You can change your password after login."] = "Versenden der E-Mail fehlgeschlagen. Hier sind Deine Account Details:\n\nLogin: %s\nPasswort: %s\n\nDu kannst das Passwort nach dem Anmelden ändern."; +$a->strings["Registration successful."] = "Registrierung erfolgreich."; +$a->strings["Your registration can not be processed."] = "Deine Registrierung konnte nicht verarbeitet werden."; +$a->strings["Your registration is pending approval by the site owner."] = "Deine Registrierung muss noch vom Betreiber der Seite freigegeben werden."; +$a->strings["You may (optionally) fill in this form via OpenID by supplying your OpenID and clicking 'Register'."] = "Du kannst dieses Formular auch (optional) mit Deiner OpenID ausfüllen, indem Du Deine OpenID angibst und 'Registrieren' klickst."; +$a->strings["If you are not familiar with OpenID, please leave that field blank and fill in the rest of the items."] = "Wenn Du nicht mit OpenID vertraut bist, lass dieses Feld bitte leer und fülle die restlichen Felder aus."; +$a->strings["Your OpenID (optional): "] = "Deine OpenID (optional): "; +$a->strings["Include your profile in member directory?"] = "Soll Dein Profil im Nutzerverzeichnis angezeigt werden?"; +$a->strings["Membership on this site is by invitation only."] = "Mitgliedschaft auf dieser Seite ist nur nach vorheriger Einladung möglich."; +$a->strings["Your invitation ID: "] = "ID Deiner Einladung: "; +$a->strings["Registration"] = "Registrierung"; +$a->strings["Your Full Name (e.g. Joe Smith, real or real-looking): "] = "Dein vollständiger Name (z.B. Hans Mustermann, echt oder echt erscheinend):"; +$a->strings["Your Email Address: "] = "Deine E-Mail-Adresse: "; +$a->strings["New Password:"] = "Neues Passwort:"; +$a->strings["Leave empty for an auto generated password."] = "Leer lassen um das Passwort automatisch zu generieren."; +$a->strings["Confirm:"] = "Bestätigen:"; +$a->strings["Choose a profile nickname. This must begin with a text character. Your profile address on this site will then be 'nickname@\$sitename'."] = "Wähle einen Spitznamen für Dein Profil. Dieser muss mit einem Buchstaben beginnen. Die Adresse Deines Profils auf dieser Seite wird 'spitzname@\$sitename' sein."; +$a->strings["Choose a nickname: "] = "Spitznamen wählen: "; +$a->strings["Import your profile to this friendica instance"] = "Importiere Dein Profil auf diese Friendica Instanz"; +$a->strings["Account approved."] = "Konto freigegeben."; +$a->strings["Registration revoked for %s"] = "Registrierung für %s wurde zurückgezogen"; +$a->strings["Please login."] = "Bitte melde Dich an."; +$a->strings["Do you really want to delete this video?"] = "Möchtest Du dieses Video wirklich löschen?"; +$a->strings["Delete Video"] = "Video Löschen"; +$a->strings["No videos selected"] = "Keine Videos ausgewählt"; +$a->strings["Access to this item is restricted."] = "Zugriff zu diesem Eintrag wurde eingeschränkt."; +$a->strings["View Album"] = "Album betrachten"; +$a->strings["Recent Videos"] = "Neueste Videos"; +$a->strings["Upload New Videos"] = "Neues Video hochladen"; +$a->strings["Friendica Communications Server - Setup"] = "Friendica-Server für soziale Netzwerke – Setup"; +$a->strings["Could not connect to database."] = "Verbindung zur Datenbank gescheitert."; +$a->strings["Could not create table."] = "Tabelle konnte nicht angelegt werden."; +$a->strings["Your Friendica site database has been installed."] = "Die Datenbank Deiner Friendicaseite wurde installiert."; +$a->strings["You may need to import the file \"database.sql\" manually using phpmyadmin or mysql."] = "Möglicherweise musst Du die Datei \"database.sql\" manuell mit phpmyadmin oder mysql importieren."; +$a->strings["Please see the file \"INSTALL.txt\"."] = "Lies bitte die \"INSTALL.txt\"."; +$a->strings["Database already in use."] = "Die Datenbank wird bereits verwendet."; +$a->strings["System check"] = "Systemtest"; +$a->strings["Next"] = "Nächste"; +$a->strings["Check again"] = "Noch einmal testen"; +$a->strings["Database connection"] = "Datenbankverbindung"; +$a->strings["In order to install Friendica we need to know how to connect to your database."] = "Um Friendica installieren zu können, müssen wir wissen, wie wir mit Deiner Datenbank Kontakt aufnehmen können."; +$a->strings["Please contact your hosting provider or site administrator if you have questions about these settings."] = "Bitte kontaktiere den Hosting Provider oder den Administrator der Seite, falls Du Fragen zu diesen Einstellungen haben solltest."; +$a->strings["The database you specify below should already exist. If it does not, please create it before continuing."] = "Die Datenbank, die Du unten angibst, sollte bereits existieren. Ist dies noch nicht der Fall, erzeuge sie bitte bevor Du mit der Installation fortfährst."; +$a->strings["Database Server Name"] = "Datenbank-Server"; +$a->strings["Database Login Name"] = "Datenbank-Nutzer"; +$a->strings["Database Login Password"] = "Datenbank-Passwort"; +$a->strings["Database Name"] = "Datenbank-Name"; +$a->strings["Site administrator email address"] = "E-Mail-Adresse des Administrators"; +$a->strings["Your account email address must match this in order to use the web admin panel."] = "Die E-Mail-Adresse, die in Deinem Friendica-Account eingetragen ist, muss mit dieser Adresse übereinstimmen, damit Du das Admin-Panel benutzen kannst."; +$a->strings["Please select a default timezone for your website"] = "Bitte wähle die Standardzeitzone Deiner Webseite"; +$a->strings["Site settings"] = "Server-Einstellungen"; +$a->strings["System Language:"] = "Systemsprache:"; +$a->strings["Set the default language for your Friendica installation interface and to send emails."] = "Wähle die Standardsprache für deine Friendica-Installations-Oberfläche und den E-Mail-Versand"; +$a->strings["Could not find a command line version of PHP in the web server PATH."] = "Konnte keine Kommandozeilenversion von PHP im PATH des Servers finden."; +$a->strings["If you don't have a command line version of PHP installed on server, you will not be able to run background polling via cron. See 'Setup the poller'"] = "Wenn Du keine Kommandozeilen-Version von PHP auf Deinem Server installiert hast, kannst Du keine Hintergrundprozesse via cron starten. Siehe 'Setup the poller'"; +$a->strings["PHP executable path"] = "Pfad zu PHP"; +$a->strings["Enter full path to php executable. You can leave this blank to continue the installation."] = "Gib den kompletten Pfad zur ausführbaren Datei von PHP an. Du kannst dieses Feld auch frei lassen und mit der Installation fortfahren."; +$a->strings["Command line PHP"] = "Kommandozeilen-PHP"; +$a->strings["PHP executable is not the php cli binary (could be cgi-fgci version)"] = "Die ausführbare Datei von PHP stimmt nicht mit der PHP cli Version überein (es könnte sich um die cgi-fgci Version handeln)"; +$a->strings["Found PHP version: "] = "Gefundene PHP Version:"; +$a->strings["PHP cli binary"] = "PHP CLI Binary"; +$a->strings["The command line version of PHP on your system does not have \"register_argc_argv\" enabled."] = "Die Kommandozeilenversion von PHP auf Deinem System hat \"register_argc_argv\" nicht aktiviert."; +$a->strings["This is required for message delivery to work."] = "Dies wird für die Auslieferung von Nachrichten benötigt."; +$a->strings["PHP register_argc_argv"] = "PHP register_argc_argv"; +$a->strings["Error: the \"openssl_pkey_new\" function on this system is not able to generate encryption keys"] = "Fehler: Die Funktion \"openssl_pkey_new\" auf diesem System ist nicht in der Lage, Verschlüsselungsschlüssel zu erzeugen"; +$a->strings["If running under Windows, please see \"http://www.php.net/manual/en/openssl.installation.php\"."] = "Wenn der Server unter Windows läuft, schau Dir bitte \"http://www.php.net/manual/en/openssl.installation.php\" an."; +$a->strings["Generate encryption keys"] = "Schlüssel erzeugen"; +$a->strings["libCurl PHP module"] = "PHP: libCurl-Modul"; +$a->strings["GD graphics PHP module"] = "PHP: GD-Grafikmodul"; +$a->strings["OpenSSL PHP module"] = "PHP: OpenSSL-Modul"; +$a->strings["mysqli PHP module"] = "PHP: mysqli-Modul"; +$a->strings["mb_string PHP module"] = "PHP: mb_string-Modul"; +$a->strings["mcrypt PHP module"] = "PHP mcrypt Modul"; +$a->strings["XML PHP module"] = "XML PHP Modul"; +$a->strings["iconv module"] = "iconv module"; +$a->strings["Apache mod_rewrite module"] = "Apache mod_rewrite module"; +$a->strings["Error: Apache webserver mod-rewrite module is required but not installed."] = "Fehler: Das Apache-Modul mod-rewrite wird benötigt, es ist allerdings nicht installiert."; +$a->strings["Error: libCURL PHP module required but not installed."] = "Fehler: Das libCURL PHP Modul wird benötigt, ist aber nicht installiert."; +$a->strings["Error: GD graphics PHP module with JPEG support required but not installed."] = "Fehler: Das GD-Graphikmodul für PHP mit JPEG-Unterstützung ist nicht installiert."; +$a->strings["Error: openssl PHP module required but not installed."] = "Fehler: Das openssl-Modul von PHP ist nicht installiert."; +$a->strings["Error: mysqli PHP module required but not installed."] = "Fehler: Das mysqli-Modul von PHP ist nicht installiert."; +$a->strings["Error: mb_string PHP module required but not installed."] = "Fehler: mb_string PHP Module wird benötigt ist aber nicht installiert."; +$a->strings["Error: mcrypt PHP module required but not installed."] = "Fehler: Das mcrypt Modul von PHP ist nicht installiert"; +$a->strings["Error: iconv PHP module required but not installed."] = "Fehler: Das iconv-Modul von PHP ist nicht installiert."; +$a->strings["If you are using php_cli, please make sure that mcrypt module is enabled in its config file"] = "Wenn du das Modul \"php_cli\" benutzt dann versichere dich, daß das mcrypt Modul in seiner Konfigurationsdatei aktiviert ist. "; +$a->strings["Function mcrypt_create_iv() is not defined. This is needed to enable RINO2 encryption layer."] = "Die Funktion mcrypt_create_iv() ist nicht festgelegt. Dies ist notwendig um den RINO2-Encryption-Layer zu aktivieren."; +$a->strings["mcrypt_create_iv() function"] = "mcrypt_create_iv() function"; +$a->strings["Error, XML PHP module required but not installed."] = "Fehler: XML PHP Modul erforderlich aber nicht installiert."; +$a->strings["The web installer needs to be able to create a file called \".htconfig.php\" in the top folder of your web server and it is unable to do so."] = "Der Installationswizard muss in der Lage sein, eine Datei im Stammverzeichnis Deines Webservers anzulegen, ist allerdings derzeit nicht in der Lage, dies zu tun."; +$a->strings["This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can."] = "In den meisten Fällen ist dies ein Problem mit den Schreibrechten. Der Webserver könnte keine Schreiberlaubnis haben, selbst wenn Du sie hast."; +$a->strings["At the end of this procedure, we will give you a text to save in a file named .htconfig.php in your Friendica top folder."] = "Nachdem Du alles ausgefüllt hast, erhältst Du einen Text, den Du in eine Datei namens .htconfig.php in Deinem Friendica-Wurzelverzeichnis kopieren musst."; +$a->strings["You can alternatively skip this procedure and perform a manual installation. Please see the file \"INSTALL.txt\" for instructions."] = "Alternativ kannst Du diesen Schritt aber auch überspringen und die Installation manuell durchführen. Eine Anleitung dazu (Englisch) findest Du in der Datei INSTALL.txt."; +$a->strings[".htconfig.php is writable"] = "Schreibrechte auf .htconfig.php"; +$a->strings["Friendica uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering."] = "Friendica nutzt die Smarty3 Template Engine um die Webansichten zu rendern. Smarty3 kompiliert Templates zu PHP um das Rendern zu beschleunigen."; +$a->strings["In order to store these compiled templates, the web server needs to have write access to the directory view/smarty3/ under the Friendica top level folder."] = "Um diese kompilierten Templates zu speichern benötigt der Webserver Schreibrechte zum Verzeichnis view/smarty3/ im obersten Ordner von Friendica."; +$a->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 Webserver läuft (z.B. www-data) Schreibrechte zu diesem Verzeichnis hat."; +$a->strings["Note: as a security measure, you should give the web server write access to view/smarty3/ only--not the template files (.tpl) that it contains."] = "Hinweis: aus Sicherheitsgründen solltest Du dem Webserver nur Schreibrechte für view/smarty3/ geben -- Nicht den Templatedateien (.tpl) die sie enthalten."; +$a->strings["view/smarty3 is writable"] = "view/smarty3 ist schreibbar"; +$a->strings["Url rewrite in .htaccess is not working. Check your server configuration."] = "Umschreiben der URLs in der .htaccess funktioniert nicht. Überprüfe die Konfiguration des Servers."; +$a->strings["Url rewrite is working"] = "URL rewrite funktioniert"; +$a->strings["ImageMagick PHP extension is installed"] = "ImageMagick PHP Erweiterung ist installiert"; +$a->strings["ImageMagick supports GIF"] = "ImageMagick unterstützt GIF"; +$a->strings["The database configuration file \".htconfig.php\" could not be written. Please use the enclosed text to create a configuration file in your web server root."] = "Die Konfigurationsdatei \".htconfig.php\" konnte nicht angelegt werden. Bitte verwende den angefügten Text, um die Datei im Stammverzeichnis Deiner Friendica-Installation zu erzeugen."; +$a->strings["

      What next

      "] = "

      Wie geht es weiter?

      "; +$a->strings["IMPORTANT: You will need to [manually] setup a scheduled task for the poller."] = "WICHTIG: Du musst [manuell] einen Cronjob (o.ä.) für den Poller einrichten."; +$a->strings["Recent Photos"] = "Neueste Fotos"; +$a->strings["Upload New Photos"] = "Neue Fotos hochladen"; +$a->strings["everybody"] = "jeder"; +$a->strings["Contact information unavailable"] = "Kontaktinformationen nicht verfügbar"; +$a->strings["Album not found."] = "Album nicht gefunden."; +$a->strings["Delete Album"] = "Album löschen"; +$a->strings["Do you really want to delete this photo album and all its photos?"] = "Möchtest Du wirklich dieses Foto-Album und all seine Foto löschen?"; +$a->strings["Delete Photo"] = "Foto löschen"; +$a->strings["Do you really want to delete this photo?"] = "Möchtest Du wirklich dieses Foto löschen?"; +$a->strings["%1\$s was tagged in %2\$s by %3\$s"] = "%1\$s wurde von %3\$s in %2\$s getaggt"; +$a->strings["a photo"] = "einem Foto"; +$a->strings["Image file is empty."] = "Bilddatei ist leer."; +$a->strings["No photos selected"] = "Keine Bilder ausgewählt"; +$a->strings["You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage."] = "Du verwendest %1$.2f Mbyte von %2$.2f Mbyte des Foto-Speichers."; +$a->strings["Upload Photos"] = "Bilder hochladen"; +$a->strings["New album name: "] = "Name des neuen Albums: "; +$a->strings["or existing album name: "] = "oder existierender Albumname: "; +$a->strings["Do not show a status post for this upload"] = "Keine Status-Mitteilung für diesen Beitrag anzeigen"; +$a->strings["Show to Groups"] = "Zeige den Gruppen"; +$a->strings["Show to Contacts"] = "Zeige den Kontakten"; +$a->strings["Private Photo"] = "Privates Foto"; +$a->strings["Public Photo"] = "Öffentliches Foto"; +$a->strings["Edit Album"] = "Album bearbeiten"; +$a->strings["Show Newest First"] = "Zeige neueste zuerst"; +$a->strings["Show Oldest First"] = "Zeige älteste zuerst"; +$a->strings["View Photo"] = "Foto betrachten"; +$a->strings["Permission denied. Access to this item may be restricted."] = "Zugriff verweigert. Zugriff zu diesem Eintrag könnte eingeschränkt sein."; +$a->strings["Photo not available"] = "Foto nicht verfügbar"; +$a->strings["View photo"] = "Fotos ansehen"; +$a->strings["Edit photo"] = "Foto bearbeiten"; +$a->strings["Use as profile photo"] = "Als Profilbild verwenden"; +$a->strings["View Full Size"] = "Betrachte Originalgröße"; +$a->strings["Tags: "] = "Tags: "; +$a->strings["[Remove any tag]"] = "[Tag entfernen]"; +$a->strings["New album name"] = "Name des neuen Albums"; +$a->strings["Caption"] = "Bildunterschrift"; +$a->strings["Add a Tag"] = "Tag hinzufügen"; +$a->strings["Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"] = "Beispiel: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"; +$a->strings["Do not rotate"] = "Nicht rotieren"; +$a->strings["Rotate CW (right)"] = "Drehen US (rechts)"; +$a->strings["Rotate CCW (left)"] = "Drehen EUS (links)"; +$a->strings["Private photo"] = "Privates Foto"; +$a->strings["Public photo"] = "Öffentliches Foto"; +$a->strings["Map"] = "Karte"; +$a->strings["View"] = "Ansehen"; +$a->strings["Previous"] = "Vorherige"; +$a->strings["User not found"] = "Nutzer nicht gefunden"; +$a->strings["This calendar format is not supported"] = "Dieses Kalenderformat wird nicht unterstützt."; +$a->strings["No exportable data found"] = "Keine exportierbaren Daten gefunden"; +$a->strings["calendar"] = "Kalender"; +$a->strings["Event can not end before it has started."] = "Die Veranstaltung kann nicht enden bevor sie beginnt."; +$a->strings["Event title and start time are required."] = "Der Veranstaltungstitel und die Anfangszeit müssen angegeben werden."; +$a->strings["Create New Event"] = "Neue Veranstaltung erstellen"; +$a->strings["Event details"] = "Veranstaltungsdetails"; +$a->strings["Starting date and Title are required."] = "Anfangszeitpunkt und Titel werden benötigt"; +$a->strings["Event Starts:"] = "Veranstaltungsbeginn:"; +$a->strings["Required"] = "Benötigt"; +$a->strings["Finish date/time is not known or not relevant"] = "Enddatum/-zeit ist nicht bekannt oder nicht relevant"; +$a->strings["Event Finishes:"] = "Veranstaltungsende:"; +$a->strings["Adjust for viewer timezone"] = "An Zeitzone des Betrachters anpassen"; +$a->strings["Description:"] = "Beschreibung"; +$a->strings["Title:"] = "Titel:"; +$a->strings["Share this event"] = "Veranstaltung teilen"; +$a->strings["Invalid request identifier."] = "Invalid request identifier."; +$a->strings["Discard"] = "Verwerfen"; +$a->strings["Ignore"] = "Ignorieren"; +$a->strings["Network Notifications"] = "Netzwerk Benachrichtigungen"; +$a->strings["Personal Notifications"] = "Persönliche Benachrichtigungen"; +$a->strings["Home Notifications"] = "Pinnwand Benachrichtigungen"; +$a->strings["Show Ignored Requests"] = "Zeige ignorierte Anfragen"; +$a->strings["Hide Ignored Requests"] = "Verberge ignorierte Anfragen"; +$a->strings["Notification type: "] = "Benachrichtigungstyp: "; +$a->strings["suggested by %s"] = "vorgeschlagen von %s"; +$a->strings["Hide this contact from others"] = "Verbirg diesen Kontakt vor andere"; +$a->strings["Post a new friend activity"] = "Neue-Kontakt Nachricht senden"; +$a->strings["if applicable"] = "falls anwendbar"; +$a->strings["Approve"] = "Genehmigen"; +$a->strings["Claims to be known to you: "] = "Behauptet Dich zu kennen: "; +$a->strings["yes"] = "ja"; +$a->strings["no"] = "nein"; +$a->strings["Shall your connection be bidirectional or not? \"Friend\" implies that you allow to read and you subscribe to their posts. \"Fan/Admirer\" means that you allow to read but you do not want to read theirs. Approve as: "] = "Soll Deine Beziehung beidseitig sein oder nicht? \"Kontakt\" bedeutet, ihr könnt gegenseitig die Beiträge des Anderen lesen dürft. \"Fan/Verehrer\", dass du das lesen deiner Beiträge erlaubst aber nicht die Beiträge der anderen Seite lesen möchtest. Genehmigen als:"; +$a->strings["Shall your connection be bidirectional or not? \"Friend\" implies that you allow to read and you subscribe to their posts. \"Sharer\" means that you allow to read but you do not want to read theirs. Approve as: "] = "Soll Deine Beziehung beidseitig sein oder nicht? \"Freund\" bedeutet, ihr gegenseitig die Beiträge des Anderen lesen dürft. \"Teilenden\", das du das lesen deiner Beiträge erlaubst aber nicht die Beiträge der anderen Seite lesen möchtest. Genehmigen als:"; +$a->strings["Friend"] = "Kontakt"; +$a->strings["Sharer"] = "Teilenden"; +$a->strings["Fan/Admirer"] = "Fan/Verehrer"; +$a->strings["No introductions."] = "Keine Kontaktanfragen."; +$a->strings["Show unread"] = "Ungelesene anzeigen"; +$a->strings["Show all"] = "Alle anzeigen"; +$a->strings["No more %s notifications."] = "Keine weiteren %s Benachrichtigungen"; $a->strings["{0} wants to be your friend"] = "{0} möchte mit Dir in Kontakt treten"; $a->strings["{0} sent you a message"] = "{0} schickte Dir eine Nachricht"; $a->strings["{0} requested registration"] = "{0} möchte sich registrieren"; @@ -985,10 +1412,8 @@ $a->strings["No SSL policy, links will track page SSL state"] = "Keine SSL Richt $a->strings["Force all links to use SSL"] = "SSL für alle Links erzwingen"; $a->strings["Self-signed certificate, use SSL for local links only (discouraged)"] = "Selbst-unterzeichnetes Zertifikat, SSL nur für lokale Links verwenden (nicht empfohlen)"; $a->strings["Save Settings"] = "Einstellungen speichern"; -$a->strings["Registration"] = "Registrierung"; $a->strings["File upload"] = "Datei hochladen"; $a->strings["Policies"] = "Regeln"; -$a->strings["Advanced"] = "Erweitert"; $a->strings["Auto Discovered Contact Directory"] = "Automatisch ein Kontaktverzeichnis erstellen"; $a->strings["Performance"] = "Performance"; $a->strings["Worker"] = "Worker"; @@ -1033,7 +1458,7 @@ $a->strings["Will be displayed prominently on the registration page."] = "Wird g $a->strings["Accounts abandoned after x days"] = "Nutzerkonten gelten nach x Tagen als unbenutzt"; $a->strings["Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit."] = "Verschwende keine System-Ressourcen auf das Pollen externer Seiten, wenn Konten nicht mehr benutzt werden. 0 eingeben für kein Limit."; $a->strings["Allowed friend domains"] = "Erlaubte Domains für Kontakte"; -$a->strings["Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Empty to allow any domains"] = "Liste der Domains, die für Freundschaften erlaubt sind, durch Kommas getrennt. Platzhalter werden akzeptiert. Leer lassen, um alle Domains zu erlauben."; +$a->strings["Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Empty to allow any domains"] = "Liste der Domains, die für Kontakte erlaubt sind, durch Kommas getrennt. Platzhalter werden akzeptiert. Leer lassen, um alle Domains zu erlauben."; $a->strings["Allowed email domains"] = "Erlaubte Domains für E-Mails"; $a->strings["Comma separated list of domains which are allowed in email addresses for registrations to this site. Wildcards are accepted. Empty to allow any domains"] = "Liste der Domains, die für E-Mail-Adressen bei der Registrierung erlaubt sind, durch Kommas getrennt. Platzhalter werden akzeptiert. Leer lassen, um alle Domains zu erlauben."; $a->strings["Block public"] = "Öffentlichen Zugriff blockieren"; @@ -1144,6 +1569,8 @@ $a->strings["Maximum number of parallel workers"] = "Maximale Anzahl parallel la $a->strings["On shared hosters set this to 2. On larger systems, values of 10 are great. Default value is 4."] = "Wenn dein Knoten bei einem Shared Hoster ist, setzte diesen Wert auf 2. Auf größeren Systemen funktioniert ein Wert von 10 recht gut. Standardeinstellung sind 4."; $a->strings["Don't use 'proc_open' with the worker"] = "'proc_open' nicht mit den Workern verwenden"; $a->strings["Enable this if your system doesn't allow the use of 'proc_open'. This can happen on shared hosters. If this is enabled you should increase the frequency of poller calls in your crontab."] = "Aktiviere diese Option, wenn dein System die Verwendung von 'proc_open' verhindert. Dies könnte auf Shared Hostern der Fall sein. Wenn du diese Option aktivierst, solltest du die Frequenz der poller Aufrufe in deiner crontab erhöhen."; +$a->strings["Enable fastlane"] = "Aktiviere Fastlane"; +$a->strings["When enabed, the fastlane mechanism starts an additional worker if processes with higher priority are blocked by processes of lower priority."] = "Wenn aktiviert, wird der Fastlane-Mechanismus einen weiteren Worker-Prozeß starten wenn Prozesse mit höherer Priorität von Prozessen mit niedrigerer Priorität blockiert werden."; $a->strings["Update has been marked successful"] = "Update wurde als erfolgreich markiert"; $a->strings["Database structure update %s was successfully applied."] = "Das Update %s der Struktur der Datenbank wurde erfolgreich angewandt."; $a->strings["Executing of database structure update %s failed with error: %s"] = "Das Update %s der Struktur der Datenbank schlug mit folgender Fehlermeldung fehl: %s"; @@ -1209,6 +1636,8 @@ $a->strings["No themes found on the system. They should be paced in %1\$s"] = "E $a->strings["[Experimental]"] = "[Experimentell]"; $a->strings["[Unsupported]"] = "[Nicht unterstützt]"; $a->strings["Log settings updated."] = "Protokolleinstellungen aktualisiert."; +$a->strings["PHP log currently enabled."] = "PHP Protokollierung ist derzeit aktiviert."; +$a->strings["PHP log currently disabled."] = "PHP Protokollierung ist derzeit nicht aktiviert."; $a->strings["Clear"] = "löschen"; $a->strings["Enable Debugging"] = "Protokoll führen"; $a->strings["Log file"] = "Protokolldatei"; @@ -1220,262 +1649,7 @@ $a->strings["Off"] = "Aus"; $a->strings["On"] = "An"; $a->strings["Lock feature %s"] = "Feature festlegen: %s"; $a->strings["Manage Additional Features"] = "Zusätzliche Features Verwalten"; -$a->strings["Sorry, maybe your upload is bigger than the PHP configuration allows"] = "Entschuldige, die Datei scheint größer zu sein als es die PHP Konfiguration erlaubt."; -$a->strings["Or - did you try to upload an empty file?"] = "Oder - hast Du versucht, eine leere Datei hochzuladen?"; -$a->strings["File exceeds size limit of %s"] = "Die Datei ist größer als das erlaubte Limit von %s"; -$a->strings["File upload failed."] = "Hochladen der Datei fehlgeschlagen."; -$a->strings["No friends to display."] = "Keine Freunde zum Anzeigen."; -$a->strings["No such group"] = "Es gibt keine solche Gruppe"; -$a->strings["Group is empty"] = "Gruppe ist leer"; -$a->strings["Group: %s"] = "Gruppe: %s"; -$a->strings["%d comment"] = array( - 0 => "%d Kommentar", - 1 => "%d Kommentare", -); -$a->strings["Private Message"] = "Private Nachricht"; -$a->strings["I like this (toggle)"] = "Ich mag das (toggle)"; -$a->strings["like"] = "mag ich"; -$a->strings["I don't like this (toggle)"] = "Ich mag das nicht (toggle)"; -$a->strings["dislike"] = "mag ich nicht"; -$a->strings["Share this"] = "Weitersagen"; -$a->strings["share"] = "Teilen"; -$a->strings["This is you"] = "Das bist Du"; -$a->strings["Bold"] = "Fett"; -$a->strings["Italic"] = "Kursiv"; -$a->strings["Underline"] = "Unterstrichen"; -$a->strings["Quote"] = "Zitat"; -$a->strings["Code"] = "Code"; -$a->strings["Image"] = "Bild"; -$a->strings["Link"] = "Link"; -$a->strings["Video"] = "Video"; -$a->strings["Edit"] = "Bearbeiten"; -$a->strings["add star"] = "markieren"; -$a->strings["remove star"] = "Markierung entfernen"; -$a->strings["toggle star status"] = "Markierung umschalten"; -$a->strings["starred"] = "markiert"; -$a->strings["add tag"] = "Tag hinzufügen"; -$a->strings["save to folder"] = "In Ordner speichern"; -$a->strings["to"] = "zu"; -$a->strings["Wall-to-Wall"] = "Wall-to-Wall"; -$a->strings["via Wall-To-Wall:"] = "via Wall-To-Wall:"; -$a->strings["Resubscribing to OStatus contacts"] = "Erneuern der OStatus Abonements"; -$a->strings["Error"] = "Fehler"; -$a->strings["Done"] = "Erledigt"; -$a->strings["Keep this window open until done."] = "Lasse dieses Fenster offen, bis der Vorgang abgeschlossen ist."; -$a->strings["No potential page delegates located."] = "Keine potentiellen Bevollmächtigten für die Seite gefunden."; -$a->strings["Delegates are able to manage all aspects of this account/page except for basic account settings. Please do not delegate your personal account to anybody that you do not trust completely."] = "Bevollmächtigte sind in der Lage, alle Aspekte dieses Kontos/dieser Seite zu verwalten, abgesehen von den Grundeinstellungen des Kontos. Bitte gib niemandem eine Bevollmächtigung für Deinen privaten Account, dem Du nicht absolut vertraust!"; -$a->strings["Existing Page Managers"] = "Vorhandene Seitenmanager"; -$a->strings["Existing Page Delegates"] = "Vorhandene Bevollmächtigte für die Seite"; -$a->strings["Potential Delegates"] = "Potentielle Bevollmächtigte"; -$a->strings["Add"] = "Hinzufügen"; -$a->strings["No entries."] = "Keine Einträge."; -$a->strings["Do you really want to delete this video?"] = "Möchtest Du dieses Video wirklich löschen?"; -$a->strings["Delete Video"] = "Video Löschen"; -$a->strings["No videos selected"] = "Keine Videos ausgewählt"; -$a->strings["Access to this item is restricted."] = "Zugriff zu diesem Eintrag wurde eingeschränkt."; -$a->strings["View Album"] = "Album betrachten"; -$a->strings["Recent Videos"] = "Neueste Videos"; -$a->strings["Upload New Videos"] = "Neues Video hochladen"; -$a->strings["Profile deleted."] = "Profil gelöscht."; -$a->strings["Profile-"] = "Profil-"; -$a->strings["New profile created."] = "Neues Profil angelegt."; -$a->strings["Profile unavailable to clone."] = "Profil nicht zum Duplizieren verfügbar."; -$a->strings["Profile Name is required."] = "Profilname ist erforderlich."; -$a->strings["Marital Status"] = "Familienstand"; -$a->strings["Romantic Partner"] = "Romanze"; -$a->strings["Work/Employment"] = "Arbeit / Beschäftigung"; -$a->strings["Religion"] = "Religion"; -$a->strings["Political Views"] = "Politische Ansichten"; -$a->strings["Gender"] = "Geschlecht"; -$a->strings["Sexual Preference"] = "Sexuelle Vorlieben"; -$a->strings["Homepage"] = "Webseite"; -$a->strings["Interests"] = "Interessen"; -$a->strings["Address"] = "Adresse"; -$a->strings["Location"] = "Wohnort"; -$a->strings["Profile updated."] = "Profil aktualisiert."; -$a->strings[" and "] = " und "; -$a->strings["public profile"] = "öffentliches Profil"; -$a->strings["%1\$s changed %2\$s to “%3\$s”"] = "%1\$s hat %2\$s geändert auf “%3\$s”"; -$a->strings[" - Visit %1\$s's %2\$s"] = " – %1\$ss %2\$s besuchen"; -$a->strings["%1\$s has an updated %2\$s, changing %3\$s."] = "%1\$s hat folgendes aktualisiert %2\$s, verändert wurde %3\$s."; -$a->strings["Hide contacts and friends:"] = "Kontakte und Freunde verbergen"; -$a->strings["No"] = "Nein"; -$a->strings["Hide your contact/friend list from viewers of this profile?"] = "Liste der Kontakte vor Betrachtern dieses Profils verbergen?"; -$a->strings["Show more profile fields:"] = "Zeige mehr Profil-Felder:"; -$a->strings["Edit Profile Details"] = "Profil bearbeiten"; -$a->strings["Change Profile Photo"] = "Profilbild ändern"; -$a->strings["View this profile"] = "Dieses Profil anzeigen"; -$a->strings["Create a new profile using these settings"] = "Neues Profil anlegen und diese Einstellungen verwenden"; -$a->strings["Clone this profile"] = "Dieses Profil duplizieren"; -$a->strings["Delete this profile"] = "Dieses Profil löschen"; -$a->strings["Basic information"] = "Grundinformationen"; -$a->strings["Profile picture"] = "Profilbild"; -$a->strings["Preferences"] = "Vorlieben"; -$a->strings["Status information"] = "Status Informationen"; -$a->strings["Additional information"] = "Zusätzliche Informationen"; -$a->strings["Upload Profile Photo"] = "Profilbild hochladen"; -$a->strings["Profile Name:"] = "Profilname:"; -$a->strings["Your Full Name:"] = "Dein kompletter Name:"; -$a->strings["Title/Description:"] = "Titel/Beschreibung:"; -$a->strings["Your Gender:"] = "Dein Geschlecht:"; -$a->strings["Birthday :"] = "Geburtstag :"; -$a->strings["Street Address:"] = "Adresse:"; -$a->strings["Locality/City:"] = "Wohnort:"; -$a->strings["Postal/Zip Code:"] = "Postleitzahl:"; -$a->strings["Country:"] = "Land:"; -$a->strings["Region/State:"] = "Region/Bundesstaat:"; -$a->strings[" Marital Status:"] = " Beziehungsstatus:"; -$a->strings["Who: (if applicable)"] = "Wer: (falls anwendbar)"; -$a->strings["Examples: cathy123, Cathy Williams, cathy@example.com"] = "Beispiele: cathy123, Cathy Williams, cathy@example.com"; -$a->strings["Since [date]:"] = "Seit [Datum]:"; -$a->strings["Homepage URL:"] = "Adresse der Homepage:"; -$a->strings["Religious Views:"] = "Religiöse Ansichten:"; -$a->strings["Public Keywords:"] = "Öffentliche Schlüsselwörter:"; -$a->strings["Private Keywords:"] = "Private Schlüsselwörter:"; -$a->strings["Example: fishing photography software"] = "Beispiel: Fischen Fotografie Software"; -$a->strings["(Used for suggesting potential friends, can be seen by others)"] = "(Wird verwendet, um potentielle Freunde zu finden, kann von Fremden eingesehen werden)"; -$a->strings["(Used for searching profiles, never shown to others)"] = "(Wird für die Suche nach Profilen verwendet und niemals veröffentlicht)"; -$a->strings["Tell us about yourself..."] = "Erzähle uns ein bisschen von Dir …"; -$a->strings["Hobbies/Interests"] = "Hobbies/Interessen"; -$a->strings["Contact information and Social Networks"] = "Kontaktinformationen und Soziale Netzwerke"; -$a->strings["Musical interests"] = "Musikalische Interessen"; -$a->strings["Books, literature"] = "Bücher, Literatur"; -$a->strings["Television"] = "Fernsehen"; -$a->strings["Film/dance/culture/entertainment"] = "Filme/Tänze/Kultur/Unterhaltung"; -$a->strings["Love/romance"] = "Liebe/Romantik"; -$a->strings["Work/employment"] = "Arbeit/Anstellung"; -$a->strings["School/education"] = "Schule/Ausbildung"; -$a->strings["This is your public profile.
      It may be visible to anybody using the internet."] = "Dies ist Dein öffentliches Profil.
      Es könnte für jeden Nutzer des Internets sichtbar sein."; -$a->strings["Age: "] = "Alter: "; -$a->strings["Edit/Manage Profiles"] = "Bearbeite/Verwalte Profile"; -$a->strings["Credits"] = "Credits"; -$a->strings["Friendica is a community project, that would not be possible without the help of many people. Here is a list of those who have contributed to the code or the translation of Friendica. Thank you all!"] = "Friendica ist ein Gemeinschaftsprojekt, das nicht ohne die Hilfe vieler Personen möglich wäre. Hier ist eine Aufzählung der Personen, die zum Code oder der Übersetzung beigetragen haben. Dank an alle !"; -$a->strings["- select -"] = "- auswählen -"; -$a->strings["Poke/Prod"] = "Anstupsen"; -$a->strings["poke, prod or do other things to somebody"] = "Stupse Leute an oder mache anderes mit ihnen"; -$a->strings["Recipient"] = "Empfänger"; -$a->strings["Choose what you wish to do to recipient"] = "Was willst Du mit dem Empfänger machen:"; -$a->strings["Make this post private"] = "Diesen Beitrag privat machen"; -$a->strings["Recent Photos"] = "Neueste Fotos"; -$a->strings["Upload New Photos"] = "Neue Fotos hochladen"; -$a->strings["everybody"] = "jeder"; -$a->strings["Contact information unavailable"] = "Kontaktinformationen nicht verfügbar"; -$a->strings["Album not found."] = "Album nicht gefunden."; -$a->strings["Delete Album"] = "Album löschen"; -$a->strings["Do you really want to delete this photo album and all its photos?"] = "Möchtest Du wirklich dieses Foto-Album und all seine Foto löschen?"; -$a->strings["Delete Photo"] = "Foto löschen"; -$a->strings["Do you really want to delete this photo?"] = "Möchtest Du wirklich dieses Foto löschen?"; -$a->strings["%1\$s was tagged in %2\$s by %3\$s"] = "%1\$s wurde von %3\$s in %2\$s getaggt"; -$a->strings["a photo"] = "einem Foto"; -$a->strings["Image file is empty."] = "Bilddatei ist leer."; -$a->strings["No photos selected"] = "Keine Bilder ausgewählt"; -$a->strings["You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage."] = "Du verwendest %1$.2f Mbyte von %2$.2f Mbyte des Foto-Speichers."; -$a->strings["Upload Photos"] = "Bilder hochladen"; -$a->strings["New album name: "] = "Name des neuen Albums: "; -$a->strings["or existing album name: "] = "oder existierender Albumname: "; -$a->strings["Do not show a status post for this upload"] = "Keine Status-Mitteilung für diesen Beitrag anzeigen"; -$a->strings["Show to Groups"] = "Zeige den Gruppen"; -$a->strings["Show to Contacts"] = "Zeige den Kontakten"; -$a->strings["Private Photo"] = "Privates Foto"; -$a->strings["Public Photo"] = "Öffentliches Foto"; -$a->strings["Edit Album"] = "Album bearbeiten"; -$a->strings["Show Newest First"] = "Zeige neueste zuerst"; -$a->strings["Show Oldest First"] = "Zeige älteste zuerst"; -$a->strings["View Photo"] = "Foto betrachten"; -$a->strings["Permission denied. Access to this item may be restricted."] = "Zugriff verweigert. Zugriff zu diesem Eintrag könnte eingeschränkt sein."; -$a->strings["Photo not available"] = "Foto nicht verfügbar"; -$a->strings["View photo"] = "Fotos ansehen"; -$a->strings["Edit photo"] = "Foto bearbeiten"; -$a->strings["Use as profile photo"] = "Als Profilbild verwenden"; -$a->strings["View Full Size"] = "Betrachte Originalgröße"; -$a->strings["Tags: "] = "Tags: "; -$a->strings["[Remove any tag]"] = "[Tag entfernen]"; -$a->strings["New album name"] = "Name des neuen Albums"; -$a->strings["Caption"] = "Bildunterschrift"; -$a->strings["Add a Tag"] = "Tag hinzufügen"; -$a->strings["Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"] = "Beispiel: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"; -$a->strings["Do not rotate"] = "Nicht rotieren"; -$a->strings["Rotate CW (right)"] = "Drehen US (rechts)"; -$a->strings["Rotate CCW (left)"] = "Drehen EUS (links)"; -$a->strings["Private photo"] = "Privates Foto"; -$a->strings["Public photo"] = "Öffentliches Foto"; -$a->strings["Map"] = "Karte"; -$a->strings["Friendica Communications Server - Setup"] = "Friendica-Server für soziale Netzwerke – Setup"; -$a->strings["Could not connect to database."] = "Verbindung zur Datenbank gescheitert."; -$a->strings["Could not create table."] = "Tabelle konnte nicht angelegt werden."; -$a->strings["Your Friendica site database has been installed."] = "Die Datenbank Deiner Friendicaseite wurde installiert."; -$a->strings["You may need to import the file \"database.sql\" manually using phpmyadmin or mysql."] = "Möglicherweise musst Du die Datei \"database.sql\" manuell mit phpmyadmin oder mysql importieren."; -$a->strings["Please see the file \"INSTALL.txt\"."] = "Lies bitte die \"INSTALL.txt\"."; -$a->strings["Database already in use."] = "Die Datenbank wird bereits verwendet."; -$a->strings["System check"] = "Systemtest"; -$a->strings["Check again"] = "Noch einmal testen"; -$a->strings["Database connection"] = "Datenbankverbindung"; -$a->strings["In order to install Friendica we need to know how to connect to your database."] = "Um Friendica installieren zu können, müssen wir wissen, wie wir mit Deiner Datenbank Kontakt aufnehmen können."; -$a->strings["Please contact your hosting provider or site administrator if you have questions about these settings."] = "Bitte kontaktiere den Hosting Provider oder den Administrator der Seite, falls Du Fragen zu diesen Einstellungen haben solltest."; -$a->strings["The database you specify below should already exist. If it does not, please create it before continuing."] = "Die Datenbank, die Du unten angibst, sollte bereits existieren. Ist dies noch nicht der Fall, erzeuge sie bitte bevor Du mit der Installation fortfährst."; -$a->strings["Database Server Name"] = "Datenbank-Server"; -$a->strings["Database Login Name"] = "Datenbank-Nutzer"; -$a->strings["Database Login Password"] = "Datenbank-Passwort"; -$a->strings["Database Name"] = "Datenbank-Name"; -$a->strings["Site administrator email address"] = "E-Mail-Adresse des Administrators"; -$a->strings["Your account email address must match this in order to use the web admin panel."] = "Die E-Mail-Adresse, die in Deinem Friendica-Account eingetragen ist, muss mit dieser Adresse übereinstimmen, damit Du das Admin-Panel benutzen kannst."; -$a->strings["Please select a default timezone for your website"] = "Bitte wähle die Standardzeitzone Deiner Webseite"; -$a->strings["Site settings"] = "Server-Einstellungen"; -$a->strings["System Language:"] = "Systemsprache:"; -$a->strings["Set the default language for your Friendica installation interface and to send emails."] = "Wähle die Standardsprache für deine Friendica-Installations-Oberfläche und den E-Mail-Versand"; -$a->strings["Could not find a command line version of PHP in the web server PATH."] = "Konnte keine Kommandozeilenversion von PHP im PATH des Servers finden."; -$a->strings["If you don't have a command line version of PHP installed on server, you will not be able to run background polling via cron. See 'Setup the poller'"] = "Wenn Du keine Kommandozeilen-Version von PHP auf Deinem Server installiert hast, kannst Du keine Hintergrundprozesse via cron starten. Siehe 'Setup the poller'"; -$a->strings["PHP executable path"] = "Pfad zu PHP"; -$a->strings["Enter full path to php executable. You can leave this blank to continue the installation."] = "Gib den kompletten Pfad zur ausführbaren Datei von PHP an. Du kannst dieses Feld auch frei lassen und mit der Installation fortfahren."; -$a->strings["Command line PHP"] = "Kommandozeilen-PHP"; -$a->strings["PHP executable is not the php cli binary (could be cgi-fgci version)"] = "Die ausführbare Datei von PHP stimmt nicht mit der PHP cli Version überein (es könnte sich um die cgi-fgci Version handeln)"; -$a->strings["Found PHP version: "] = "Gefundene PHP Version:"; -$a->strings["PHP cli binary"] = "PHP CLI Binary"; -$a->strings["The command line version of PHP on your system does not have \"register_argc_argv\" enabled."] = "Die Kommandozeilenversion von PHP auf Deinem System hat \"register_argc_argv\" nicht aktiviert."; -$a->strings["This is required for message delivery to work."] = "Dies wird für die Auslieferung von Nachrichten benötigt."; -$a->strings["PHP register_argc_argv"] = "PHP register_argc_argv"; -$a->strings["Error: the \"openssl_pkey_new\" function on this system is not able to generate encryption keys"] = "Fehler: Die Funktion \"openssl_pkey_new\" auf diesem System ist nicht in der Lage, Verschlüsselungsschlüssel zu erzeugen"; -$a->strings["If running under Windows, please see \"http://www.php.net/manual/en/openssl.installation.php\"."] = "Wenn der Server unter Windows läuft, schau Dir bitte \"http://www.php.net/manual/en/openssl.installation.php\" an."; -$a->strings["Generate encryption keys"] = "Schlüssel erzeugen"; -$a->strings["libCurl PHP module"] = "PHP: libCurl-Modul"; -$a->strings["GD graphics PHP module"] = "PHP: GD-Grafikmodul"; -$a->strings["OpenSSL PHP module"] = "PHP: OpenSSL-Modul"; -$a->strings["mysqli PHP module"] = "PHP: mysqli-Modul"; -$a->strings["mb_string PHP module"] = "PHP: mb_string-Modul"; -$a->strings["mcrypt PHP module"] = "PHP mcrypt Modul"; -$a->strings["XML PHP module"] = "XML PHP Modul"; -$a->strings["Apache mod_rewrite module"] = "Apache mod_rewrite module"; -$a->strings["Error: Apache webserver mod-rewrite module is required but not installed."] = "Fehler: Das Apache-Modul mod-rewrite wird benötigt, es ist allerdings nicht installiert."; -$a->strings["Error: libCURL PHP module required but not installed."] = "Fehler: Das libCURL PHP Modul wird benötigt, ist aber nicht installiert."; -$a->strings["Error: GD graphics PHP module with JPEG support required but not installed."] = "Fehler: Das GD-Graphikmodul für PHP mit JPEG-Unterstützung ist nicht installiert."; -$a->strings["Error: openssl PHP module required but not installed."] = "Fehler: Das openssl-Modul von PHP ist nicht installiert."; -$a->strings["Error: mysqli PHP module required but not installed."] = "Fehler: Das mysqli-Modul von PHP ist nicht installiert."; -$a->strings["Error: mb_string PHP module required but not installed."] = "Fehler: mb_string PHP Module wird benötigt ist aber nicht installiert."; -$a->strings["Error: mcrypt PHP module required but not installed."] = "Fehler: Das mcrypt Modul von PHP ist nicht installiert"; -$a->strings["If you are using php_cli, please make sure that mcrypt module is enabled in its config file"] = "Wenn du das Modul \"php_cli\" benutzt dann versichere dich, daß das mcrypt Modul in seiner Konfigurationsdatei aktiviert ist. "; -$a->strings["Function mcrypt_create_iv() is not defined. This is needed to enable RINO2 encryption layer."] = "Die Funktion mcrypt_create_iv() ist nicht festgelegt. Dies ist notwendig um den RINO2-Encryption-Layer zu aktivieren."; -$a->strings["mcrypt_create_iv() function"] = "mcrypt_create_iv() function"; -$a->strings["Error, XML PHP module required but not installed."] = "Fehler: XML PHP Modul erforderlich aber nicht installiert."; -$a->strings["The web installer needs to be able to create a file called \".htconfig.php\" in the top folder of your web server and it is unable to do so."] = "Der Installationswizard muss in der Lage sein, eine Datei im Stammverzeichnis Deines Webservers anzulegen, ist allerdings derzeit nicht in der Lage, dies zu tun."; -$a->strings["This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can."] = "In den meisten Fällen ist dies ein Problem mit den Schreibrechten. Der Webserver könnte keine Schreiberlaubnis haben, selbst wenn Du sie hast."; -$a->strings["At the end of this procedure, we will give you a text to save in a file named .htconfig.php in your Friendica top folder."] = "Nachdem Du alles ausgefüllt hast, erhältst Du einen Text, den Du in eine Datei namens .htconfig.php in Deinem Friendica-Wurzelverzeichnis kopieren musst."; -$a->strings["You can alternatively skip this procedure and perform a manual installation. Please see the file \"INSTALL.txt\" for instructions."] = "Alternativ kannst Du diesen Schritt aber auch überspringen und die Installation manuell durchführen. Eine Anleitung dazu (Englisch) findest Du in der Datei INSTALL.txt."; -$a->strings[".htconfig.php is writable"] = "Schreibrechte auf .htconfig.php"; -$a->strings["Friendica uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering."] = "Friendica nutzt die Smarty3 Template Engine um die Webansichten zu rendern. Smarty3 kompiliert Templates zu PHP um das Rendern zu beschleunigen."; -$a->strings["In order to store these compiled templates, the web server needs to have write access to the directory view/smarty3/ under the Friendica top level folder."] = "Um diese kompilierten Templates zu speichern benötigt der Webserver Schreibrechte zum Verzeichnis view/smarty3/ im obersten Ordner von Friendica."; -$a->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 Webserver läuft (z.B. www-data) Schreibrechte zu diesem Verzeichnis hat."; -$a->strings["Note: as a security measure, you should give the web server write access to view/smarty3/ only--not the template files (.tpl) that it contains."] = "Hinweis: aus Sicherheitsgründen solltest Du dem Webserver nur Schreibrechte für view/smarty3/ geben -- Nicht den Templatedateien (.tpl) die sie enthalten."; -$a->strings["view/smarty3 is writable"] = "view/smarty3 ist schreibbar"; -$a->strings["Url rewrite in .htaccess is not working. Check your server configuration."] = "Umschreiben der URLs in der .htaccess funktioniert nicht. Überprüfe die Konfiguration des Servers."; -$a->strings["Url rewrite is working"] = "URL rewrite funktioniert"; -$a->strings["ImageMagick PHP extension is installed"] = "ImageMagick PHP Erweiterung ist installiert"; -$a->strings["ImageMagick supports GIF"] = "ImageMagick unterstützt GIF"; -$a->strings["The database configuration file \".htconfig.php\" could not be written. Please use the enclosed text to create a configuration file in your web server root."] = "Die Konfigurationsdatei \".htconfig.php\" konnte nicht angelegt werden. Bitte verwende den angefügten Text, um die Datei im Stammverzeichnis Deiner Friendica-Installation zu erzeugen."; -$a->strings["

      What next

      "] = "

      Wie geht es weiter?

      "; -$a->strings["IMPORTANT: You will need to [manually] setup a scheduled task for the poller."] = "WICHTIG: Du musst [manuell] einen Cronjob (o.ä.) für den Poller einrichten."; -$a->strings["%1\$s is following %2\$s's %3\$s"] = "%1\$s folgt %2\$s %3\$s"; -$a->strings["Item not available."] = "Beitrag nicht verfügbar."; -$a->strings["Item was not found."] = "Beitrag konnte nicht gefunden werden."; +$a->strings["Tips for New Members"] = "Tipps für neue Nutzer"; $a->strings["%d contact edited."] = array( 0 => "%d Kontakt bearbeitet.", 1 => "%d Kontakte bearbeitet.", @@ -1483,13 +1657,13 @@ $a->strings["%d contact edited."] = array( $a->strings["Could not access contact record."] = "Konnte nicht auf die Kontaktdaten zugreifen."; $a->strings["Could not locate selected profile."] = "Konnte das ausgewählte Profil nicht finden."; $a->strings["Contact updated."] = "Kontakt aktualisiert."; -$a->strings["Failed to update contact record."] = "Aktualisierung der Kontaktdaten fehlgeschlagen."; $a->strings["Contact has been blocked"] = "Kontakt wurde blockiert"; $a->strings["Contact has been unblocked"] = "Kontakt wurde wieder freigegeben"; $a->strings["Contact has been ignored"] = "Kontakt wurde ignoriert"; $a->strings["Contact has been unignored"] = "Kontakt wird nicht mehr ignoriert"; $a->strings["Contact has been archived"] = "Kontakt wurde archiviert"; $a->strings["Contact has been unarchived"] = "Kontakt wurde aus dem Archiv geholt"; +$a->strings["Drop contact"] = "Kontakt löschen"; $a->strings["Do you really want to delete this contact?"] = "Möchtest Du wirklich diesen Kontakt löschen?"; $a->strings["Contact has been removed."] = "Kontakt wurde entfernt."; $a->strings["You are mutual friends with %s"] = "Du hast mit %s eine beidseitige Freundschaft"; @@ -1504,6 +1678,7 @@ $a->strings["Communications lost with this contact!"] = "Verbindungen mit diesem $a->strings["Fetch further information for feeds"] = "Weitere Informationen zu Feeds holen"; $a->strings["Fetch information"] = "Beziehe Information"; $a->strings["Fetch information and keywords"] = "Beziehe Information und Schlüsselworte"; +$a->strings["Contact"] = "Kontakt: "; $a->strings["Profile Visibility"] = "Profil-Sichtbarkeit"; $a->strings["Please choose the profile you would like to display to %s when viewing your profile securely."] = "Bitte wähle eines Deiner Profile das angezeigt werden soll, wenn %s Dein Profil aufruft."; $a->strings["Contact Information / Notes"] = "Kontakt Informationen / Notizen"; @@ -1527,8 +1702,7 @@ $a->strings["Comma separated list of keywords that should not be converted to ha $a->strings["Actions"] = "Aktionen"; $a->strings["Contact Settings"] = "Kontakteinstellungen"; $a->strings["Suggestions"] = "Kontaktvorschläge"; -$a->strings["Suggest potential friends"] = "Freunde vorschlagen"; -$a->strings["All Contacts"] = "Alle Kontakte"; +$a->strings["Suggest potential friends"] = "Kontakte vorschlagen"; $a->strings["Show all contacts"] = "Alle Kontakte anzeigen"; $a->strings["Unblocked"] = "Ungeblockt"; $a->strings["Only show unblocked contacts"] = "Nur nicht-blockierte Kontakte anzeigen"; @@ -1541,12 +1715,11 @@ $a->strings["Only show archived contacts"] = "Nur archivierte Kontakte anzeigen" $a->strings["Hidden"] = "Verborgen"; $a->strings["Only show hidden contacts"] = "Nur verborgene Kontakte anzeigen"; $a->strings["Search your contacts"] = "Suche in deinen Kontakten"; -$a->strings["Finding: "] = "Funde: "; $a->strings["Update"] = "Aktualisierungen"; $a->strings["Archive"] = "Archivieren"; $a->strings["Unarchive"] = "Aus Archiv zurückholen"; +$a->strings["Batch Actions"] = "Stapelverarbeitung"; $a->strings["View all contacts"] = "Alle Kontakte anzeigen"; -$a->strings["Common Friends"] = "Gemeinsame Freunde"; $a->strings["View all common friends"] = "Alle Kontakte anzeigen"; $a->strings["Advanced Contact Settings"] = "Fortgeschrittene Kontakteinstellungen"; $a->strings["Mutual Friendship"] = "Beidseitige Freundschaft"; @@ -1556,166 +1729,79 @@ $a->strings["Toggle Blocked status"] = "Geblockt-Status ein-/ausschalten"; $a->strings["Toggle Ignored status"] = "Ignoriert-Status ein-/ausschalten"; $a->strings["Toggle Archive status"] = "Archiviert-Status ein-/ausschalten"; $a->strings["Delete contact"] = "Lösche den Kontakt"; -$a->strings["Submit Request"] = "Anfrage abschicken"; -$a->strings["You already added this contact."] = "Du hast den Kontakt bereits hinzugefügt."; -$a->strings["Diaspora support isn't enabled. Contact can't be added."] = "Diaspora Unterstützung ist nicht aktiviert. Der Kontakt kann nicht zugefügt werden."; -$a->strings["OStatus support is disabled. Contact can't be added."] = "OStatus Unterstützung ist nicht aktiviert. Der Kontakt kann nicht zugefügt werden."; -$a->strings["The network type couldn't be detected. Contact can't be added."] = "Der Netzwerktype wurde nicht erkannt. Der Kontakt kann nicht hinzugefügt werden."; -$a->strings["Please answer the following:"] = "Bitte beantworte folgendes:"; -$a->strings["Does %s know you?"] = "Kennt %s Dich?"; -$a->strings["Add a personal note:"] = "Eine persönliche Notiz beifügen:"; -$a->strings["Your Identity Address:"] = "Adresse Deines Profils:"; -$a->strings["Contact added"] = "Kontakt hinzugefügt"; -$a->strings["Applications"] = "Anwendungen"; -$a->strings["No installed applications."] = "Keine Applikationen installiert."; -$a->strings["Do you really want to delete this suggestion?"] = "Möchtest Du wirklich diese Empfehlung löschen?"; -$a->strings["No suggestions available. If this is a new site, please try again in 24 hours."] = "Keine Vorschläge verfügbar. Falls der Server frisch aufgesetzt wurde, versuche es bitte in 24 Stunden noch einmal."; -$a->strings["Ignore/Hide"] = "Ignorieren/Verbergen"; -$a->strings["Not Extended"] = "Nicht erweitert."; -$a->strings["Access to this profile has been restricted."] = "Der Zugriff zu diesem Profil wurde eingeschränkt."; -$a->strings["Item has been removed."] = "Eintrag wurde entfernt."; -$a->strings["No contacts in common."] = "Keine gemeinsamen Kontakte."; -$a->strings["Welcome to Friendica"] = "Willkommen bei Friendica"; -$a->strings["New Member Checklist"] = "Checkliste für neue Mitglieder"; -$a->strings["We would like to offer some tips and links to help make your experience enjoyable. Click any item to visit the relevant page. A link to this page will be visible from your home page for two weeks after your initial registration and then will quietly disappear."] = "Wir möchten Dir einige Tipps und Links anbieten, die Dir helfen könnten, den Einstieg angenehmer zu machen. Klicke auf ein Element, um die entsprechende Seite zu besuchen. Ein Link zu dieser Seite hier bleibt für Dich an Deiner Pinnwand für zwei Wochen nach dem Registrierungsdatum sichtbar und wird dann verschwinden."; -$a->strings["Getting Started"] = "Einstieg"; -$a->strings["Friendica Walk-Through"] = "Friendica Rundgang"; -$a->strings["On your Quick Start page - find a brief introduction to your profile and network tabs, make some new connections, and find some groups to join."] = "Auf der Quick Start Seite findest Du eine kurze Einleitung in die einzelnen Funktionen Deines Profils und die Netzwerk-Reiter, wo Du interessante Foren findest und neue Kontakte knüpfst."; -$a->strings["Go to Your Settings"] = "Gehe zu deinen Einstellungen"; -$a->strings["On your Settings page - change your initial password. Also make a note of your Identity Address. This looks just like an email address - and will be useful in making friends on the free social web."] = "Ändere bitte unter Einstellungen dein Passwort. Außerdem merke dir deine Identifikationsadresse. Diese sieht aus wie eine E-Mail-Adresse und wird benötigt, um Freundschaften mit anderen im Friendica Netzwerk zu schliessen."; -$a->strings["Review the other settings, particularly the privacy settings. An unpublished directory listing is like having an unlisted phone number. In general, you should probably publish your listing - unless all of your friends and potential friends know exactly how to find you."] = "Überprüfe die restlichen Einstellungen, insbesondere die Einstellungen zur Privatsphäre. Wenn Du Dein Profil nicht veröffentlichst, ist das als wenn Du Deine Telefonnummer nicht ins Telefonbuch einträgst. Im Allgemeinen solltest Du es veröffentlichen - außer all Deine Freunde und potentiellen Freunde wissen genau, wie sie Dich finden können."; -$a->strings["Upload a profile photo if you have not done so already. Studies have shown that people with real photos of themselves are ten times more likely to make friends than people who do not."] = "Lade ein Profilbild hoch, falls Du es noch nicht getan hast. Studien haben gezeigt, dass es zehnmal wahrscheinlicher ist neue Freunde zu finden, wenn Du ein Bild von Dir selbst verwendest, als wenn Du dies nicht tust."; -$a->strings["Edit Your Profile"] = "Editiere dein Profil"; -$a->strings["Edit your default profile to your liking. Review the settings for hiding your list of friends and hiding the profile from unknown visitors."] = "Editiere Dein Standard Profil nach Deinen Vorlieben. Überprüfe die Einstellungen zum Verbergen Deiner Freundesliste vor unbekannten Betrachtern des Profils."; -$a->strings["Profile Keywords"] = "Profil Schlüsselbegriffe"; -$a->strings["Set some public keywords for your default profile which describe your interests. We may be able to find other people with similar interests and suggest friendships."] = "Trage ein paar öffentliche Stichwörter in Dein Standardprofil ein, die Deine Interessen beschreiben. Eventuell sind wir in der Lage Leute zu finden, die Deine Interessen teilen und können Dir dann Kontakte vorschlagen."; -$a->strings["Connecting"] = "Verbindungen knüpfen"; -$a->strings["Importing Emails"] = "Emails Importieren"; -$a->strings["Enter your email access information on your Connector Settings page if you wish to import and interact with friends or mailing lists from your email INBOX"] = "Gib Deine E-Mail-Zugangsinformationen auf der Connector-Einstellungsseite ein, falls Du E-Mails aus Deinem Posteingang importieren und mit Freunden und Mailinglisten interagieren willst."; -$a->strings["Go to Your Contacts Page"] = "Gehe zu deiner Kontakt-Seite"; -$a->strings["Your Contacts page is your gateway to managing friendships and connecting with friends on other networks. Typically you enter their address or site URL in the Add New Contact dialog."] = "Die Kontakte-Seite ist die Einstiegsseite, von der aus Du Kontakte verwalten und Dich mit Freunden in anderen Netzwerken verbinden kannst. Normalerweise gibst Du dazu einfach ihre Adresse oder die URL der Seite im Kasten Neuen Kontakt hinzufügen ein."; -$a->strings["Go to Your Site's Directory"] = "Gehe zum Verzeichnis Deiner Friendica Instanz"; -$a->strings["The Directory page lets you find other people in this network or other federated sites. Look for a Connect or Follow link on their profile page. Provide your own Identity Address if requested."] = "Über die Verzeichnisseite kannst Du andere Personen auf diesem Server oder anderen verknüpften Seiten finden. Halte nach einem Verbinden oder Folgen Link auf deren Profilseiten Ausschau und gib Deine eigene Profiladresse an, falls Du danach gefragt wirst."; -$a->strings["Finding New People"] = "Neue Leute kennenlernen"; -$a->strings["On the side panel of the Contacts page are several tools to find new friends. We can match people by interest, look up people by name or interest, and provide suggestions based on network relationships. On a brand new site, friend suggestions will usually begin to be populated within 24 hours."] = "Im seitlichen Bedienfeld der Kontakteseite gibt es diverse Werkzeuge, um neue Freunde zu finden. Wir können Menschen mit den gleichen Interessen finden, anhand von Namen oder Interessen suchen oder aber aufgrund vorhandener Kontakte neue Freunde vorschlagen.\nAuf einer brandneuen - soeben erstellten - Seite starten die Kontaktvorschläge innerhalb von 24 Stunden."; -$a->strings["Group Your Contacts"] = "Gruppiere deine Kontakte"; -$a->strings["Once you have made some friends, organize them into private conversation groups from the sidebar of your Contacts page and then you can interact with each group privately on your Network page."] = "Sobald Du einige Freunde gefunden hast, organisiere sie in Gruppen zur privaten Kommunikation im Seitenmenü der Kontakte-Seite. Du kannst dann mit jeder dieser Gruppen von der Netzwerkseite aus privat interagieren."; -$a->strings["Why Aren't My Posts Public?"] = "Warum sind meine Beiträge nicht öffentlich?"; -$a->strings["Friendica respects your privacy. By default, your posts will only show up to people you've added as friends. For more information, see the help section from the link above."] = "Friendica respektiert Deine Privatsphäre. Mit der Grundeinstellung werden Deine Beiträge ausschließlich Deinen Kontakten angezeigt. Für weitere Informationen diesbezüglich lies Dir bitte den entsprechenden Abschnitt in der Hilfe unter dem obigen Link durch."; -$a->strings["Getting Help"] = "Hilfe bekommen"; -$a->strings["Go to the Help Section"] = "Zum Hilfe Abschnitt gehen"; -$a->strings["Our help pages may be consulted for detail on other program features and resources."] = "Unsere Hilfe Seiten können herangezogen werden, um weitere Einzelheiten zu andern Programm Features zu erhalten."; -$a->strings["Remove My Account"] = "Konto löschen"; -$a->strings["This will completely remove your account. Once this has been done it is not recoverable."] = "Dein Konto wird endgültig gelöscht. Es gibt keine Möglichkeit, es wiederherzustellen."; -$a->strings["Please enter your password for verification:"] = "Bitte gib Dein Passwort zur Verifikation ein:"; -$a->strings["Mood"] = "Stimmung"; -$a->strings["Set your current mood and tell your friends"] = "Wähle Deine aktuelle Stimmung und erzähle sie Deinen Freunden"; -$a->strings["Item not found"] = "Beitrag nicht gefunden"; -$a->strings["Edit post"] = "Beitrag bearbeiten"; -$a->strings["Search Results For: %s"] = "Suchergebnisse für: %s"; -$a->strings["Commented Order"] = "Neueste Kommentare"; -$a->strings["Sort by Comment Date"] = "Nach Kommentardatum sortieren"; -$a->strings["Posted Order"] = "Neueste Beiträge"; -$a->strings["Sort by Post Date"] = "Nach Beitragsdatum sortieren"; -$a->strings["Posts that mention or involve you"] = "Beiträge, in denen es um Dich geht"; -$a->strings["New"] = "Neue"; -$a->strings["Activity Stream - by date"] = "Aktivitäten-Stream - nach Datum"; -$a->strings["Shared Links"] = "Geteilte Links"; -$a->strings["Interesting Links"] = "Interessante Links"; -$a->strings["Starred"] = "Markierte"; -$a->strings["Favourite Posts"] = "Favorisierte Beiträge"; -$a->strings["Warning: This group contains %s member from an insecure network."] = array( - 0 => "Warnung: Diese Gruppe beinhaltet %s Person aus einem unsicheren Netzwerk.", - 1 => "Warnung: Diese Gruppe beinhaltet %s Personen aus unsicheren Netzwerken.", -); -$a->strings["Private messages to this group are at risk of public disclosure."] = "Private Nachrichten an diese Gruppe könnten an die Öffentlichkeit geraten."; -$a->strings["Private messages to this person are at risk of public disclosure."] = "Private Nachrichten an diese Person könnten an die Öffentlichkeit gelangen."; -$a->strings["Invalid contact."] = "Ungültiger Kontakt."; -$a->strings["Not available."] = "Nicht verfügbar."; -$a->strings["Time Conversion"] = "Zeitumrechnung"; -$a->strings["Friendica provides this service for sharing events with other networks and friends in unknown timezones."] = "Friendica bietet diese Funktion an, um das Teilen von Events mit Kontakten zu vereinfachen, deren Zeitzone nicht ermittelt werden kann."; -$a->strings["UTC time: %s"] = "UTC Zeit: %s"; -$a->strings["Current timezone: %s"] = "Aktuelle Zeitzone: %s"; -$a->strings["Converted localtime: %s"] = "Umgerechnete lokale Zeit: %s"; -$a->strings["Please select your timezone:"] = "Bitte wähle Deine Zeitzone:"; -$a->strings["The post was created"] = "Der Beitrag wurde angelegt"; -$a->strings["Group created."] = "Gruppe erstellt."; -$a->strings["Could not create group."] = "Konnte die Gruppe nicht erstellen."; -$a->strings["Group not found."] = "Gruppe nicht gefunden."; -$a->strings["Group name changed."] = "Gruppenname geändert."; -$a->strings["Save Group"] = "Gruppe speichern"; -$a->strings["Create a group of contacts/friends."] = "Eine Gruppe von Kontakten/Freunden anlegen."; -$a->strings["Group removed."] = "Gruppe entfernt."; -$a->strings["Unable to remove group."] = "Konnte die Gruppe nicht entfernen."; -$a->strings["Group Editor"] = "Gruppeneditor"; -$a->strings["Members"] = "Mitglieder"; -$a->strings["This introduction has already been accepted."] = "Diese Kontaktanfrage wurde bereits akzeptiert."; -$a->strings["Profile location is not valid or does not contain profile information."] = "Profiladresse ist ungültig oder stellt keine Profildaten zur Verfügung."; -$a->strings["Warning: profile location has no identifiable owner name."] = "Warnung: Es konnte kein Name des Besitzers von der angegebenen Profiladresse gefunden werden."; -$a->strings["Warning: profile location has no profile photo."] = "Warnung: Es gibt kein Profilbild bei der angegebenen Profiladresse."; -$a->strings["%d required parameter was not found at the given location"] = array( - 0 => "%d benötigter Parameter wurde an der angegebenen Stelle nicht gefunden", - 1 => "%d benötigte Parameter wurden an der angegebenen Stelle nicht gefunden", -); -$a->strings["Introduction complete."] = "Kontaktanfrage abgeschlossen."; -$a->strings["Unrecoverable protocol error."] = "Nicht behebbarer Protokollfehler."; -$a->strings["Profile unavailable."] = "Profil nicht verfügbar."; -$a->strings["%s has received too many connection requests today."] = "%s hat heute zu viele Freundschaftsanfragen erhalten."; -$a->strings["Spam protection measures have been invoked."] = "Maßnahmen zum Spamschutz wurden ergriffen."; -$a->strings["Friends are advised to please try again in 24 hours."] = "Freunde sind angehalten, es in 24 Stunden erneut zu versuchen."; -$a->strings["Invalid locator"] = "Ungültiger Locator"; -$a->strings["Invalid email address."] = "Ungültige E-Mail-Adresse."; -$a->strings["This account has not been configured for email. Request failed."] = "Dieses Konto ist nicht für E-Mail konfiguriert. Anfrage fehlgeschlagen."; -$a->strings["You have already introduced yourself here."] = "Du hast Dich hier bereits vorgestellt."; -$a->strings["Apparently you are already friends with %s."] = "Es scheint so, als ob Du bereits mit %s befreundet bist."; -$a->strings["Invalid profile URL."] = "Ungültige Profil-URL."; -$a->strings["Your introduction has been sent."] = "Deine Kontaktanfrage wurde gesendet."; -$a->strings["Remote subscription can't be done for your network. Please subscribe directly on your system."] = "Entferntes abon­nie­ren kann für dein Netzwerk nicht durchgeführt werden. Bitte nutze direkt die Abonnieren-Funktion deines Systems. "; -$a->strings["Please login to confirm introduction."] = "Bitte melde Dich an, um die Kontaktanfrage zu bestätigen."; -$a->strings["Incorrect identity currently logged in. Please login to this profile."] = "Momentan bist Du mit einer anderen Identität angemeldet. Bitte melde Dich mit diesem Profil an."; -$a->strings["Confirm"] = "Bestätigen"; -$a->strings["Hide this contact"] = "Verberge diesen Kontakt"; -$a->strings["Welcome home %s."] = "Willkommen zurück %s."; -$a->strings["Please confirm your introduction/connection request to %s."] = "Bitte bestätige Deine Kontaktanfrage bei %s."; -$a->strings["Please enter your 'Identity Address' from one of the following supported communications networks:"] = "Bitte gib die Adresse Deines Profils in einem der unterstützten sozialen Netzwerke an:"; -$a->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."] = "Wenn du noch kein Mitglied dieses freien sozialen Netzwerks bist, folge diesem Link um einen öffentlichen Friendica-Server zu finden und beizutreten."; -$a->strings["Friend/Connection Request"] = "Freundschafts-/Kontaktanfrage"; -$a->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"; -$a->strings["StatusNet/Federated Social Web"] = "StatusNet/Federated Social Web"; -$a->strings[" - please do not use this form. Instead, enter %s into your Diaspora search bar."] = " - bitte verwende dieses Formular nicht. Stattdessen suche nach %s in Deiner Diaspora Suchleiste."; -$a->strings["Image uploaded but image cropping failed."] = "Bild hochgeladen, aber das Zuschneiden schlug fehl."; -$a->strings["Image size reduction [%s] failed."] = "Verkleinern der Bildgröße von [%s] scheiterte."; -$a->strings["Shift-reload the page or clear browser cache if the new photo does not display immediately."] = "Drücke Umschalt+Neu Laden oder leere den Browser-Cache, falls das neue Foto nicht gleich angezeigt wird."; -$a->strings["Unable to process image"] = "Bild konnte nicht verarbeitet werden"; -$a->strings["Upload File:"] = "Datei hochladen:"; -$a->strings["Select a profile:"] = "Profil auswählen:"; -$a->strings["Upload"] = "Hochladen"; -$a->strings["or"] = "oder"; -$a->strings["skip this step"] = "diesen Schritt überspringen"; -$a->strings["select a photo from your photo albums"] = "wähle ein Foto aus deinen Fotoalben"; -$a->strings["Crop Image"] = "Bild zurechtschneiden"; -$a->strings["Please adjust the image cropping for optimum viewing."] = "Passe bitte den Bildausschnitt an, damit das Bild optimal dargestellt werden kann."; -$a->strings["Done Editing"] = "Bearbeitung abgeschlossen"; -$a->strings["Image uploaded successfully."] = "Bild erfolgreich hochgeladen."; -$a->strings["Registration successful. Please check your email for further instructions."] = "Registrierung erfolgreich. Eine E-Mail mit weiteren Anweisungen wurde an Dich gesendet."; -$a->strings["Failed to send email message. Here your accout details:
      login: %s
      password: %s

      You can change your password after login."] = "Versenden der E-Mail fehlgeschlagen. Hier sind Deine Account Details:\n\nLogin: %s\nPasswort: %s\n\nDu kannst das Passwort nach dem Anmelden ändern."; -$a->strings["Registration successful."] = "Registrierung erfolgreich."; -$a->strings["Your registration can not be processed."] = "Deine Registrierung konnte nicht verarbeitet werden."; -$a->strings["Your registration is pending approval by the site owner."] = "Deine Registrierung muss noch vom Betreiber der Seite freigegeben werden."; -$a->strings["You may (optionally) fill in this form via OpenID by supplying your OpenID and clicking 'Register'."] = "Du kannst dieses Formular auch (optional) mit Deiner OpenID ausfüllen, indem Du Deine OpenID angibst und 'Registrieren' klickst."; -$a->strings["If you are not familiar with OpenID, please leave that field blank and fill in the rest of the items."] = "Wenn Du nicht mit OpenID vertraut bist, lass dieses Feld bitte leer und fülle die restlichen Felder aus."; -$a->strings["Your OpenID (optional): "] = "Deine OpenID (optional): "; -$a->strings["Include your profile in member directory?"] = "Soll Dein Profil im Nutzerverzeichnis angezeigt werden?"; -$a->strings["Membership on this site is by invitation only."] = "Mitgliedschaft auf dieser Seite ist nur nach vorheriger Einladung möglich."; -$a->strings["Your invitation ID: "] = "ID Deiner Einladung: "; -$a->strings["Your Full Name (e.g. Joe Smith, real or real-looking): "] = "Dein vollständiger Name (z.B. Hans Mustermann, echt oder echt erscheinend):"; -$a->strings["Your Email Address: "] = "Deine E-Mail-Adresse: "; -$a->strings["New Password:"] = "Neues Passwort:"; -$a->strings["Leave empty for an auto generated password."] = "Leer lassen um das Passwort automatisch zu generieren."; -$a->strings["Confirm:"] = "Bestätigen:"; -$a->strings["Choose a profile nickname. This must begin with a text character. Your profile address on this site will then be 'nickname@\$sitename'."] = "Wähle einen Spitznamen für Dein Profil. Dieser muss mit einem Buchstaben beginnen. Die Adresse Deines Profils auf dieser Seite wird 'spitzname@\$sitename' sein."; -$a->strings["Choose a nickname: "] = "Spitznamen wählen: "; -$a->strings["Import your profile to this friendica instance"] = "Importiere Dein Profil auf diese Friendica Instanz"; +$a->strings["Profile deleted."] = "Profil gelöscht."; +$a->strings["Profile-"] = "Profil-"; +$a->strings["New profile created."] = "Neues Profil angelegt."; +$a->strings["Profile unavailable to clone."] = "Profil nicht zum Duplizieren verfügbar."; +$a->strings["Profile Name is required."] = "Profilname ist erforderlich."; +$a->strings["Marital Status"] = "Familienstand"; +$a->strings["Romantic Partner"] = "Romanze"; +$a->strings["Work/Employment"] = "Arbeit / Beschäftigung"; +$a->strings["Religion"] = "Religion"; +$a->strings["Political Views"] = "Politische Ansichten"; +$a->strings["Gender"] = "Geschlecht"; +$a->strings["Sexual Preference"] = "Sexuelle Vorlieben"; +$a->strings["XMPP"] = "XMPP"; +$a->strings["Homepage"] = "Webseite"; +$a->strings["Interests"] = "Interessen"; +$a->strings["Address"] = "Adresse"; +$a->strings["Location"] = "Wohnort"; +$a->strings["Profile updated."] = "Profil aktualisiert."; +$a->strings[" and "] = " und "; +$a->strings["public profile"] = "öffentliches Profil"; +$a->strings["%1\$s changed %2\$s to “%3\$s”"] = "%1\$s hat %2\$s geändert auf “%3\$s”"; +$a->strings[" - Visit %1\$s's %2\$s"] = " – %1\$ss %2\$s besuchen"; +$a->strings["%1\$s has an updated %2\$s, changing %3\$s."] = "%1\$s hat folgendes aktualisiert %2\$s, verändert wurde %3\$s."; +$a->strings["Hide contacts and friends:"] = "Kontakte und Freunde verbergen"; +$a->strings["Hide your contact/friend list from viewers of this profile?"] = "Liste der Kontakte vor Betrachtern dieses Profils verbergen?"; +$a->strings["Show more profile fields:"] = "Zeige mehr Profil-Felder:"; +$a->strings["Profile Actions"] = "Profilaktionen"; +$a->strings["Edit Profile Details"] = "Profil bearbeiten"; +$a->strings["Change Profile Photo"] = "Profilbild ändern"; +$a->strings["View this profile"] = "Dieses Profil anzeigen"; +$a->strings["Create a new profile using these settings"] = "Neues Profil anlegen und diese Einstellungen verwenden"; +$a->strings["Clone this profile"] = "Dieses Profil duplizieren"; +$a->strings["Delete this profile"] = "Dieses Profil löschen"; +$a->strings["Basic information"] = "Grundinformationen"; +$a->strings["Profile picture"] = "Profilbild"; +$a->strings["Preferences"] = "Vorlieben"; +$a->strings["Status information"] = "Status Informationen"; +$a->strings["Additional information"] = "Zusätzliche Informationen"; +$a->strings["Relation"] = "Beziehung"; +$a->strings["Your Gender:"] = "Dein Geschlecht:"; +$a->strings[" Marital Status:"] = " Beziehungsstatus:"; +$a->strings["Example: fishing photography software"] = "Beispiel: Fischen Fotografie Software"; +$a->strings["Profile Name:"] = "Profilname:"; +$a->strings["This is your public profile.
      It may be visible to anybody using the internet."] = "Dies ist Dein öffentliches Profil.
      Es könnte für jeden Nutzer des Internets sichtbar sein."; +$a->strings["Your Full Name:"] = "Dein kompletter Name:"; +$a->strings["Title/Description:"] = "Titel/Beschreibung:"; +$a->strings["Street Address:"] = "Adresse:"; +$a->strings["Locality/City:"] = "Wohnort:"; +$a->strings["Region/State:"] = "Region/Bundesstaat:"; +$a->strings["Postal/Zip Code:"] = "Postleitzahl:"; +$a->strings["Country:"] = "Land:"; +$a->strings["Who: (if applicable)"] = "Wer: (falls anwendbar)"; +$a->strings["Examples: cathy123, Cathy Williams, cathy@example.com"] = "Beispiele: cathy123, Cathy Williams, cathy@example.com"; +$a->strings["Since [date]:"] = "Seit [Datum]:"; +$a->strings["Tell us about yourself..."] = "Erzähle uns ein bisschen von Dir …"; +$a->strings["XMPP (Jabber) address:"] = "XMPP (Jabber) Adresse"; +$a->strings["The XMPP address will be propagated to your contacts so that they can follow you."] = "Die XMPP Adresse wird an deine Kontakte verteilt werden, so dass sie auch über XMPP mit dir in Kontakt treten können."; +$a->strings["Homepage URL:"] = "Adresse der Homepage:"; +$a->strings["Religious Views:"] = "Religiöse Ansichten:"; +$a->strings["Public Keywords:"] = "Öffentliche Schlüsselwörter:"; +$a->strings["(Used for suggesting potential friends, can be seen by others)"] = "(Wird verwendet, um potentielle Kontakte zu finden, kann von Kontakten eingesehen werden)"; +$a->strings["Private Keywords:"] = "Private Schlüsselwörter:"; +$a->strings["(Used for searching profiles, never shown to others)"] = "(Wird für die Suche nach Profilen verwendet und niemals veröffentlicht)"; +$a->strings["Musical interests"] = "Musikalische Interessen"; +$a->strings["Books, literature"] = "Bücher, Literatur"; +$a->strings["Television"] = "Fernsehen"; +$a->strings["Film/dance/culture/entertainment"] = "Filme/Tänze/Kultur/Unterhaltung"; +$a->strings["Hobbies/Interests"] = "Hobbies/Interessen"; +$a->strings["Love/romance"] = "Liebe/Romantik"; +$a->strings["Work/employment"] = "Arbeit/Anstellung"; +$a->strings["School/education"] = "Schule/Ausbildung"; +$a->strings["Contact information and Social Networks"] = "Kontaktinformationen und Soziale Netzwerke"; +$a->strings["Edit/Manage Profiles"] = "Bearbeite/Verwalte Profile"; $a->strings["Display"] = "Anzeige"; $a->strings["Social Networks"] = "Soziale Netzwerke"; $a->strings["Connected apps"] = "Verbundene Programme"; @@ -1776,7 +1862,6 @@ $a->strings["Email password:"] = "E-Mail-Passwort:"; $a->strings["Reply-to address:"] = "Reply-to Adresse:"; $a->strings["Send public posts to all email contacts:"] = "Sende öffentliche Beiträge an alle E-Mail-Kontakte:"; $a->strings["Action after import:"] = "Aktion nach Import:"; -$a->strings["Mark as seen"] = "Als gelesen markieren"; $a->strings["Move to folder"] = "In einen Ordner verschieben"; $a->strings["Move to folder:"] = "In diesen Ordner verschieben:"; $a->strings["Display Settings"] = "Anzeige-Einstellungen"; @@ -1793,15 +1878,27 @@ $a->strings["Beginning of week:"] = "Wochenbeginn:"; $a->strings["Don't show notices"] = "Info-Popups nicht anzeigen"; $a->strings["Infinite scroll"] = "Endloses Scrollen"; $a->strings["Automatic updates only at the top of the network page"] = "Automatische Updates nur, wenn Du oben auf der Netzwerkseite bist."; +$a->strings["General Theme Settings"] = "Allgemeine Themeneinstellungen"; +$a->strings["Custom Theme Settings"] = "Benutzerdefinierte Theme Einstellungen"; +$a->strings["Content Settings"] = "Einstellungen zum Inhalt"; $a->strings["Theme settings"] = "Themeneinstellungen"; -$a->strings["User Types"] = "Nutzer Art"; -$a->strings["Community Types"] = "Gemeinschafts Art"; +$a->strings["Account Types"] = "Kontenarten"; +$a->strings["Personal Page Subtypes"] = "Unterarten der persönlichen Seite"; +$a->strings["Community Forum Subtypes"] = "Unterarten des Gemeinschaftsforums"; +$a->strings["Personal Page"] = "Persönliche Seite"; +$a->strings["This account is a regular personal profile"] = "Dieses Konto ist ein normales persönliches Profil"; +$a->strings["Organisation Page"] = "Organisationsseite"; +$a->strings["This account is a profile for an organisation"] = "Diese Konto ist ein Profil für eine Organisation"; +$a->strings["News Page"] = "Nachrichtenseite"; +$a->strings["This account is a news account/reflector"] = "Dieses Konto ist ein News-Konto bzw. -Spiegel"; +$a->strings["Community Forum"] = "Gemeinschaftsforum"; +$a->strings["This account is a community forum where people can discuss with each other"] = "Dieses Konto ist ein Gemeinschaftskonto wo sich Leute untereinander austauschen können"; $a->strings["Normal Account Page"] = "Normales Konto"; $a->strings["This account is a normal personal profile"] = "Dieses Konto ist ein normales persönliches Profil"; $a->strings["Soapbox Page"] = "Marktschreier-Konto"; $a->strings["Automatically approve all connection/friend requests as read-only fans"] = "Kontaktanfragen werden automatisch als Nurlese-Fans akzeptiert"; -$a->strings["Community Forum/Celebrity Account"] = "Forum/Promi-Konto"; -$a->strings["Automatically approve all connection/friend requests as read-write fans"] = "Kontaktanfragen werden automatisch als Lese-und-Schreib-Fans akzeptiert"; +$a->strings["Public Forum"] = "Öffentliches Forum"; +$a->strings["Automatically approve all contact requests"] = "Bestätige alle Kontaktanfragen automatisch"; $a->strings["Automatic Friend Page"] = "Automatische Freunde Seite"; $a->strings["Automatically approve all connection/friend requests as friends"] = "Kontaktanfragen werden automatisch als Freund akzeptiert"; $a->strings["Private Forum [Experimental]"] = "Privates Forum [Versuchsstadium]"; @@ -1841,7 +1938,7 @@ $a->strings["Set the language we use to show you friendica interface and to send $a->strings["Default Post Location:"] = "Standardstandort:"; $a->strings["Use Browser Location:"] = "Standort des Browsers verwenden:"; $a->strings["Security and Privacy Settings"] = "Sicherheits- und Privatsphäre-Einstellungen"; -$a->strings["Maximum Friend Requests/Day:"] = "Maximale Anzahl von Freundschaftsanfragen/Tag:"; +$a->strings["Maximum Friend Requests/Day:"] = "Maximale Anzahl vonKontaktanfragen/Tag:"; $a->strings["(to prevent spam abuse)"] = "(um SPAM zu vermeiden)"; $a->strings["Default Post Permissions"] = "Standard-Zugriffsrechte für Beiträge"; $a->strings["(click to open/close)"] = "(klicke zum öffnen/schließen)"; @@ -1872,79 +1969,27 @@ $a->strings["Change the behaviour of this account for special situations"] = "Ve $a->strings["Relocate"] = "Umziehen"; $a->strings["If you have moved this profile from another server, and some of your contacts don't receive your updates, try pushing this button."] = "Wenn Du Dein Profil von einem anderen Server umgezogen hast und einige Deiner Kontakte Deine Beiträge nicht erhalten, verwende diesen Button."; $a->strings["Resend relocate message to contacts"] = "Umzugsbenachrichtigung erneut an Kontakte senden"; -$a->strings["Number of daily wall messages for %s exceeded. Message failed."] = "Maximale Anzahl der täglichen Pinnwand Nachrichten für %s ist überschritten. Zustellung fehlgeschlagen."; -$a->strings["No recipient selected."] = "Kein Empfänger gewählt."; -$a->strings["Unable to check your home location."] = "Konnte Deinen Heimatort nicht bestimmen."; -$a->strings["Message could not be sent."] = "Nachricht konnte nicht gesendet werden."; -$a->strings["Message collection failure."] = "Konnte Nachrichten nicht abrufen."; -$a->strings["Message sent."] = "Nachricht gesendet."; -$a->strings["No recipient."] = "Kein Empfänger."; -$a->strings["Send Private Message"] = "Private Nachricht senden"; -$a->strings["If you wish for %s to respond, please check that the privacy settings on your site allow private mail from unknown senders."] = "Wenn Du möchtest, dass %s Dir antworten kann, überprüfe Deine Privatsphären-Einstellungen und erlaube private Nachrichten von unbekannten Absendern."; -$a->strings["To:"] = "An:"; -$a->strings["Subject:"] = "Betreff:"; -$a->strings["link"] = "Link"; -$a->strings["Authorize application connection"] = "Verbindung der Applikation autorisieren"; -$a->strings["Return to your app and insert this Securty Code:"] = "Gehe zu Deiner Anwendung zurück und trage dort folgenden Sicherheitscode ein:"; -$a->strings["Please login to continue."] = "Bitte melde Dich an um fortzufahren."; -$a->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 den Zugriff auf Deine Beiträge und Kontakte, sowie das Erstellen neuer Beiträge in Deinem Namen gestatten?"; -$a->strings["Source (bbcode) text:"] = "Quelle (bbcode) Text:"; -$a->strings["Source (Diaspora) text to convert to BBcode:"] = "Eingabe (Diaspora) nach BBCode zu konvertierender Text:"; -$a->strings["Source input: "] = "Originaltext:"; -$a->strings["bb2html (raw HTML): "] = "bb2html (reines HTML): "; -$a->strings["bb2html: "] = "bb2html: "; -$a->strings["bb2html2bb: "] = "bb2html2bb: "; -$a->strings["bb2md: "] = "bb2md: "; -$a->strings["bb2md2html: "] = "bb2md2html: "; -$a->strings["bb2dia2bb: "] = "bb2dia2bb: "; -$a->strings["bb2md2html2bb: "] = "bb2md2html2bb: "; -$a->strings["Source input (Diaspora format): "] = "Originaltext (Diaspora Format): "; -$a->strings["diaspora2bb: "] = "diaspora2bb: "; -$a->strings["Unable to locate original post."] = "Konnte den Originalbeitrag nicht finden."; -$a->strings["Empty post discarded."] = "Leerer Beitrag wurde verworfen."; -$a->strings["System error. Post not saved."] = "Systemfehler. Beitrag konnte nicht gespeichert werden."; -$a->strings["This message was sent to you by %s, a member of the Friendica social network."] = "Diese Nachricht wurde dir von %s geschickt, einem Mitglied des Sozialen Netzwerks Friendica."; -$a->strings["You may visit them online at %s"] = "Du kannst sie online unter %s besuchen"; -$a->strings["Please contact the sender by replying to this post if you do not wish to receive these messages."] = "Falls Du diese Beiträge nicht erhalten möchtest, kontaktiere bitte den Autor, indem Du auf diese Nachricht antwortest."; -$a->strings["%s posted an update."] = "%s hat ein Update veröffentlicht."; -$a->strings["Subscribing to OStatus contacts"] = "OStatus Kontakten folgen"; -$a->strings["No contact provided."] = "Keine Kontakte gefunden."; -$a->strings["Couldn't fetch information for contact."] = "Konnte die Kontaktinformationen nicht einholen."; -$a->strings["Couldn't fetch friends for contact."] = "Konnte die Kontaktliste des Kontakts nicht abfragen."; -$a->strings["success"] = "Erfolg"; -$a->strings["failed"] = "Fehlgeschlagen"; -$a->strings["ignored"] = "Ignoriert"; -$a->strings["%1\$s welcomes %2\$s"] = "%1\$s heißt %2\$s herzlich willkommen"; -$a->strings["Tips for New Members"] = "Tipps für neue Nutzer"; -$a->strings["Unable to locate contact information."] = "Konnte die Kontaktinformationen nicht finden."; -$a->strings["Do you really want to delete this message?"] = "Möchtest Du wirklich diese Nachricht löschen?"; -$a->strings["Message deleted."] = "Nachricht gelöscht."; -$a->strings["Conversation removed."] = "Unterhaltung gelöscht."; -$a->strings["No messages."] = "Keine Nachrichten."; -$a->strings["Message not available."] = "Nachricht nicht verfügbar."; -$a->strings["Delete message"] = "Nachricht löschen"; -$a->strings["Delete conversation"] = "Unterhaltung löschen"; -$a->strings["No secure communications available. You may be able to respond from the sender's profile page."] = "Sichere Kommunikation ist nicht verfügbar. Eventuell kannst Du auf der Profilseite des Absenders antworten."; -$a->strings["Send Reply"] = "Antwort senden"; -$a->strings["Unknown sender - %s"] = "'Unbekannter Absender - %s"; -$a->strings["You and %s"] = "Du und %s"; -$a->strings["%s and You"] = "%s und Du"; -$a->strings["D, d M Y - g:i A"] = "D, d. M Y - g:i A"; -$a->strings["%d message"] = array( - 0 => "%d Nachricht", - 1 => "%d Nachrichten", -); -$a->strings["Manage Identities and/or Pages"] = "Verwalte Identitäten und/oder Seiten"; -$a->strings["Toggle between different identities or community/group pages which share your account details or which you have been granted \"manage\" permissions"] = "Zwischen verschiedenen Identitäten oder Gemeinschafts-/Gruppenseiten wechseln, die Deine Kontoinformationen teilen oder zu denen Du „Verwalten“-Befugnisse bekommen hast."; -$a->strings["Select an identity to manage: "] = "Wähle eine Identität zum Verwalten aus: "; -$a->strings["This entry was edited"] = "Dieser Beitrag wurde bearbeitet."; -$a->strings["I will attend"] = "Ich werde teilnehmen"; -$a->strings["I will not attend"] = "Ich werde nicht teilnehmen"; -$a->strings["I might attend"] = "Ich werde eventuell teilnehmen"; -$a->strings["ignore thread"] = "Thread ignorieren"; -$a->strings["unignore thread"] = "Thread nicht mehr ignorieren"; -$a->strings["toggle ignore status"] = "Ignoriert-Status ein-/ausschalten"; $a->strings["via"] = "via"; +$a->strings["Repeat the image"] = "Bild wiederholen"; +$a->strings["Will repeat your image to fill the background."] = "Wiederholt das Bild um den Hintergrund auszufüllen."; +$a->strings["Stretch"] = "Strecken"; +$a->strings["Will stretch to width/height of the image."] = "Streckt Breite/Höhe des Bildes."; +$a->strings["Resize fill and-clip"] = "Größe anpassen - Ausfüllen und abschneiden"; +$a->strings["Resize to fill and retain aspect ratio."] = "Größe anpassen: Ausfüllen und Seitenverhältnis beibehalten"; +$a->strings["Resize best fit"] = "Größe anpassen - Optimale Größe"; +$a->strings["Resize to best fit and retain aspect ratio."] = "Größe anpassen - Optimale Größe und Seitenverhältnisse beibehalten"; +$a->strings["Default"] = "Standard"; +$a->strings["Note: "] = "Hinweis:"; +$a->strings["Check image permissions if all users are allowed to visit the image"] = "Überprüfe, dass alle Benutzer die Berechtigung haben dieses Bild anzusehen"; +$a->strings["Select scheme"] = "Schema auswählen"; +$a->strings["Navigation bar background color"] = "Hintergrundfarbe der Navigationsleiste"; +$a->strings["Navigation bar icon color "] = "Icon Farbe in der Navigationsleiste"; +$a->strings["Link color"] = "Linkfarbe"; +$a->strings["Set the background color"] = "Hintergrundfarbe festlegen"; +$a->strings["Content background transparency"] = "Transparanz des Hintergrunds von Beiträgem"; +$a->strings["Set the background image"] = "Hintergrundbild festlegen"; +$a->strings["Guest"] = "Gast"; +$a->strings["Visitor"] = "Besucher"; $a->strings["Set resize level for images in posts and comments (width and height)"] = "Wähle das Vergrößerungsmaß für Bilder in Beiträgen und Kommentaren (Höhe und Breite)"; $a->strings["Set font-size for posts and comments"] = "Schriftgröße für Beiträge und Kommentare festlegen"; $a->strings["Set theme width"] = "Theme Breite festlegen"; @@ -1958,7 +2003,7 @@ $a->strings["Set line-height for posts and comments"] = "Liniengröße für Beit $a->strings["Set colour scheme"] = "Farbschema wählen"; $a->strings["Community Profiles"] = "Community-Profile"; $a->strings["Last users"] = "Letzte Nutzer"; -$a->strings["Find Friends"] = "Freunde finden"; +$a->strings["Find Friends"] = "Kontakte finden"; $a->strings["Local Directory"] = "Lokales Verzeichnis"; $a->strings["Quick Start"] = "Schnell-Start"; $a->strings["Connect Services"] = "Verbinde Dienste"; @@ -1985,3 +2030,16 @@ $a->strings["darkzero"] = "darkzero"; $a->strings["comix"] = "comix"; $a->strings["slackr"] = "slackr"; $a->strings["Variations"] = "Variationen"; +$a->strings["toggle mobile"] = "auf/von Mobile Ansicht wechseln"; +$a->strings["Delete this item?"] = "Diesen Beitrag löschen?"; +$a->strings["show fewer"] = "weniger anzeigen"; +$a->strings["Update %s failed. See error logs."] = "Update %s fehlgeschlagen. Bitte Fehlerprotokoll überprüfen."; +$a->strings["Create a New Account"] = "Neues Konto erstellen"; +$a->strings["Password: "] = "Passwort: "; +$a->strings["Remember me"] = "Anmeldedaten merken"; +$a->strings["Or login using OpenID: "] = "Oder melde Dich mit Deiner OpenID an: "; +$a->strings["Forgot your password?"] = "Passwort vergessen?"; +$a->strings["Website Terms of Service"] = "Website Nutzungsbedingungen"; +$a->strings["terms of service"] = "Nutzungsbedingungen"; +$a->strings["Website Privacy Policy"] = "Website Datenschutzerklärung"; +$a->strings["privacy policy"] = "Datenschutzerklärung"; diff --git a/view/eo/messages.po b/view/lang/eo/messages.po similarity index 100% rename from view/eo/messages.po rename to view/lang/eo/messages.po diff --git a/view/eo/strings.php b/view/lang/eo/strings.php similarity index 100% rename from view/eo/strings.php rename to view/lang/eo/strings.php diff --git a/view/es/messages.po b/view/lang/es/messages.po similarity index 100% rename from view/es/messages.po rename to view/lang/es/messages.po diff --git a/view/es/strings.php b/view/lang/es/strings.php similarity index 100% rename from view/es/strings.php rename to view/lang/es/strings.php diff --git a/view/fr/messages.po b/view/lang/fr/messages.po similarity index 73% rename from view/fr/messages.po rename to view/lang/fr/messages.po index f4ee263ed..bd6f52758 100644 --- a/view/fr/messages.po +++ b/view/lang/fr/messages.po @@ -5,9 +5,10 @@ # Translators: # Anthronaut , 2015 # Cyboulette , 2014 -# Damien Goutte-Gattat , 2015 +# Damien Goutte-Gattat , 2015-2016 # Damien Goutte-Gattat , 2015 # Domovoy , 2012 +# Hypolite Petovan , 2016 # Jak , 2014 # Lionel Triay , 2013 # Marquis_de_Carabas , 2012 @@ -21,9 +22,9 @@ msgid "" msgstr "" "Project-Id-Version: friendica\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-12-27 08:40+0100\n" -"PO-Revision-Date: 2015-12-30 06:02+0000\n" -"Last-Translator: Perig Gouanvic \n" +"POT-Creation-Date: 2016-09-21 12:10+0200\n" +"PO-Revision-Date: 2016-09-24 04:22+0000\n" +"Last-Translator: Hypolite Petovan \n" "Language-Team: French (http://www.transifex.com/Friendica/friendica/language/fr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -31,6258 +32,103 @@ msgstr "" "Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: mod/contacts.php:50 include/identity.php:389 -msgid "Network:" -msgstr "Réseau" +#: include/datetime.php:57 include/datetime.php:59 mod/profiles.php:698 +msgid "Miscellaneous" +msgstr "Divers" -#: mod/contacts.php:51 mod/contacts.php:986 mod/videos.php:37 -#: mod/viewcontacts.php:105 mod/dirfind.php:208 mod/network.php:596 -#: mod/allfriends.php:77 mod/match.php:82 mod/directory.php:172 -#: mod/common.php:123 mod/suggest.php:95 mod/photos.php:41 -#: include/identity.php:295 -msgid "Forum" -msgstr "Forum" +#: include/datetime.php:183 include/identity.php:627 +msgid "Birthday:" +msgstr "Anniversaire:" -#: mod/contacts.php:128 -#, php-format -msgid "%d contact edited." -msgid_plural "%d contacts edited" -msgstr[0] "%d contact édité" -msgstr[1] "%d contacts édités." - -#: mod/contacts.php:159 mod/contacts.php:382 -msgid "Could not access contact record." -msgstr "Impossible d'accéder à l'enregistrement du contact." - -#: mod/contacts.php:173 -msgid "Could not locate selected profile." -msgstr "Impossible de localiser le profil séléctionné." - -#: mod/contacts.php:206 -msgid "Contact updated." -msgstr "Contact mis à jour." - -#: mod/contacts.php:208 mod/dfrn_request.php:578 -msgid "Failed to update contact record." -msgstr "Échec de mise à jour du contact." - -#: mod/contacts.php:364 mod/manage.php:96 mod/display.php:493 -#: mod/profile_photo.php:19 mod/profile_photo.php:175 -#: mod/profile_photo.php:186 mod/profile_photo.php:199 -#: mod/ostatus_subscribe.php:9 mod/follow.php:10 mod/follow.php:72 -#: mod/follow.php:137 mod/item.php:169 mod/item.php:181 mod/group.php:19 -#: mod/dfrn_confirm.php:55 mod/fsuggest.php:78 mod/wall_upload.php:77 -#: mod/wall_upload.php:80 mod/viewcontacts.php:40 mod/notifications.php:69 -#: mod/message.php:45 mod/message.php:181 mod/crepair.php:117 -#: mod/dirfind.php:11 mod/nogroup.php:25 mod/network.php:4 -#: mod/allfriends.php:12 mod/events.php:165 mod/wallmessage.php:9 -#: mod/wallmessage.php:33 mod/wallmessage.php:79 mod/wallmessage.php:103 -#: mod/wall_attach.php:67 mod/wall_attach.php:70 mod/settings.php:20 -#: mod/settings.php:116 mod/settings.php:637 mod/register.php:42 -#: mod/delegate.php:12 mod/common.php:18 mod/mood.php:114 mod/suggest.php:58 -#: mod/profiles.php:165 mod/profiles.php:615 mod/editpost.php:10 -#: mod/api.php:26 mod/api.php:31 mod/notes.php:22 mod/poke.php:149 -#: mod/repair_ostatus.php:9 mod/invite.php:15 mod/invite.php:101 -#: mod/photos.php:171 mod/photos.php:1105 mod/regmod.php:110 -#: mod/uimport.php:23 mod/attach.php:33 include/items.php:5070 index.php:383 -msgid "Permission denied." -msgstr "Permission refusée." - -#: mod/contacts.php:403 -msgid "Contact has been blocked" -msgstr "Le contact a été bloqué" - -#: mod/contacts.php:403 -msgid "Contact has been unblocked" -msgstr "Le contact n'est plus bloqué" - -#: mod/contacts.php:414 -msgid "Contact has been ignored" -msgstr "Le contact a été ignoré" - -#: mod/contacts.php:414 -msgid "Contact has been unignored" -msgstr "Le contact n'est plus ignoré" - -#: mod/contacts.php:426 -msgid "Contact has been archived" -msgstr "Contact archivé" - -#: mod/contacts.php:426 -msgid "Contact has been unarchived" -msgstr "Contact désarchivé" - -#: mod/contacts.php:453 mod/contacts.php:801 -msgid "Do you really want to delete this contact?" -msgstr "Voulez-vous vraiment supprimer ce contact?" - -#: mod/contacts.php:455 mod/follow.php:105 mod/message.php:216 -#: mod/settings.php:1094 mod/settings.php:1100 mod/settings.php:1108 -#: mod/settings.php:1112 mod/settings.php:1117 mod/settings.php:1123 -#: mod/settings.php:1129 mod/settings.php:1135 mod/settings.php:1161 -#: mod/settings.php:1162 mod/settings.php:1163 mod/settings.php:1164 -#: mod/settings.php:1165 mod/dfrn_request.php:850 mod/register.php:238 -#: mod/suggest.php:29 mod/profiles.php:658 mod/profiles.php:661 -#: mod/profiles.php:687 mod/api.php:105 include/items.php:4902 -msgid "Yes" -msgstr "Oui" - -#: mod/contacts.php:458 mod/tagrm.php:11 mod/tagrm.php:94 mod/follow.php:116 -#: mod/videos.php:131 mod/message.php:219 mod/fbrowser.php:93 -#: mod/fbrowser.php:128 mod/settings.php:651 mod/settings.php:677 -#: mod/dfrn_request.php:864 mod/suggest.php:32 mod/editpost.php:148 -#: mod/photos.php:247 mod/photos.php:336 include/conversation.php:1221 -#: include/items.php:4905 -msgid "Cancel" -msgstr "Annuler" - -#: mod/contacts.php:470 -msgid "Contact has been removed." -msgstr "Ce contact a été retiré." - -#: mod/contacts.php:511 -#, php-format -msgid "You are mutual friends with %s" -msgstr "Vous êtes ami (et réciproquement) avec %s" - -#: mod/contacts.php:515 -#, php-format -msgid "You are sharing with %s" -msgstr "Vous partagez avec %s" - -#: mod/contacts.php:520 -#, php-format -msgid "%s is sharing with you" -msgstr "%s partage avec vous" - -#: mod/contacts.php:540 -msgid "Private communications are not available for this contact." -msgstr "Les communications privées ne sont pas disponibles pour ce contact." - -#: mod/contacts.php:543 mod/admin.php:647 -msgid "Never" -msgstr "Jamais" - -#: mod/contacts.php:547 -msgid "(Update was successful)" -msgstr "(Mise à jour effectuée avec succès)" - -#: mod/contacts.php:547 -msgid "(Update was not successful)" -msgstr "(Échec de la mise à jour)" - -#: mod/contacts.php:549 -msgid "Suggest friends" -msgstr "Suggérer amitié/contact" - -#: mod/contacts.php:553 -#, php-format -msgid "Network type: %s" -msgstr "Type de réseau %s" - -#: mod/contacts.php:566 -msgid "Communications lost with this contact!" -msgstr "Communications perdues avec ce contact !" - -#: mod/contacts.php:569 -msgid "Fetch further information for feeds" -msgstr "Chercher plus d'informations pour les flux" - -#: mod/contacts.php:570 mod/admin.php:656 -msgid "Disabled" -msgstr "Désactivé" - -#: mod/contacts.php:570 -msgid "Fetch information" -msgstr "Récupérer informations" - -#: mod/contacts.php:570 -msgid "Fetch information and keywords" -msgstr "Récupérer informations" - -#: mod/contacts.php:586 mod/manage.php:143 mod/fsuggest.php:107 -#: mod/message.php:342 mod/message.php:525 mod/crepair.php:196 -#: mod/events.php:574 mod/content.php:712 mod/install.php:261 -#: mod/install.php:299 mod/mood.php:137 mod/profiles.php:696 -#: mod/localtime.php:45 mod/poke.php:198 mod/invite.php:140 -#: mod/photos.php:1137 mod/photos.php:1261 mod/photos.php:1579 -#: mod/photos.php:1630 mod/photos.php:1678 mod/photos.php:1766 -#: object/Item.php:710 view/theme/cleanzero/config.php:80 -#: view/theme/dispy/config.php:70 view/theme/quattro/config.php:64 -#: view/theme/diabook/config.php:148 view/theme/diabook/theme.php:633 -#: view/theme/clean/config.php:83 view/theme/vier/config.php:107 -#: view/theme/duepuntozero/config.php:59 -msgid "Submit" -msgstr "Envoyer" - -#: mod/contacts.php:587 -msgid "Profile Visibility" -msgstr "Visibilité du profil" - -#: mod/contacts.php:588 -#, php-format -msgid "" -"Please choose the profile you would like to display to %s when viewing your " -"profile securely." -msgstr "Merci de choisir le profil que vous souhaitez montrer à %s lorsqu'il vous rend visite de manière sécurisée." - -#: mod/contacts.php:589 -msgid "Contact Information / Notes" -msgstr "Informations de contact / Notes" - -#: mod/contacts.php:590 -msgid "Edit contact notes" -msgstr "Éditer les notes des contacts" - -#: mod/contacts.php:595 mod/contacts.php:977 mod/viewcontacts.php:97 -#: mod/nogroup.php:41 -#, php-format -msgid "Visit %s's profile [%s]" -msgstr "Visiter le profil de %s [%s]" - -#: mod/contacts.php:596 -msgid "Block/Unblock contact" -msgstr "Bloquer/débloquer ce contact" - -#: mod/contacts.php:597 -msgid "Ignore contact" -msgstr "Ignorer ce contact" - -#: mod/contacts.php:598 -msgid "Repair URL settings" -msgstr "Réglages de réparation des URL" - -#: mod/contacts.php:599 -msgid "View conversations" -msgstr "Voir les conversations" - -#: mod/contacts.php:601 -msgid "Delete contact" -msgstr "Effacer ce contact" - -#: mod/contacts.php:605 -msgid "Last update:" -msgstr "Dernière mise-à-jour :" - -#: mod/contacts.php:607 -msgid "Update public posts" -msgstr "Mettre à jour les publications publiques:" - -#: mod/contacts.php:609 mod/admin.php:1656 -msgid "Update now" -msgstr "Mettre à jour" - -#: mod/contacts.php:611 mod/dirfind.php:190 mod/allfriends.php:65 -#: mod/match.php:71 mod/suggest.php:82 include/contact_widgets.php:32 -#: include/Contact.php:310 include/conversation.php:924 -msgid "Connect/Follow" -msgstr "Connecter/Suivre" - -#: mod/contacts.php:614 mod/contacts.php:805 mod/contacts.php:864 -#: mod/admin.php:1120 -msgid "Unblock" -msgstr "Débloquer" - -#: mod/contacts.php:614 mod/contacts.php:805 mod/contacts.php:864 -#: mod/admin.php:1119 -msgid "Block" -msgstr "Bloquer" - -#: mod/contacts.php:615 mod/contacts.php:806 mod/contacts.php:871 -msgid "Unignore" -msgstr "Ne plus ignorer" - -#: mod/contacts.php:615 mod/contacts.php:806 mod/contacts.php:871 -#: mod/notifications.php:54 mod/notifications.php:179 -#: mod/notifications.php:259 -msgid "Ignore" -msgstr "Ignorer" - -#: mod/contacts.php:618 -msgid "Currently blocked" -msgstr "Actuellement bloqué" - -#: mod/contacts.php:619 -msgid "Currently ignored" -msgstr "Actuellement ignoré" - -#: mod/contacts.php:620 -msgid "Currently archived" -msgstr "Actuellement archivé" - -#: mod/contacts.php:621 mod/notifications.php:172 mod/notifications.php:251 -msgid "Hide this contact from others" -msgstr "Cacher ce contact aux autres" - -#: mod/contacts.php:621 -msgid "" -"Replies/likes to your public posts may still be visible" -msgstr "Les réponses et \"j'aime\" à vos publications publiques peuvent être toujours visibles" - -#: mod/contacts.php:622 -msgid "Notification for new posts" -msgstr "Notification des nouvelles publications" - -#: mod/contacts.php:622 -msgid "Send a notification of every new post of this contact" -msgstr "Envoyer une notification de chaque nouveau message en provenance de ce contact" - -#: mod/contacts.php:625 -msgid "Blacklisted keywords" -msgstr "Mots-clés sur la liste noire" - -#: mod/contacts.php:625 -msgid "" -"Comma separated list of keywords that should not be converted to hashtags, " -"when \"Fetch information and keywords\" is selected" -msgstr "Liste de mots-clés separés par des virgules qui ne doivent pas être converti en mots-dièse quand « Récupérer informations et mots-clés » est sélectionné." - -#: mod/contacts.php:632 mod/follow.php:121 mod/notifications.php:255 -msgid "Profile URL" -msgstr "URL du Profil" - -#: mod/contacts.php:635 mod/follow.php:125 mod/notifications.php:244 -#: mod/events.php:566 mod/directory.php:145 include/identity.php:304 -#: include/bb2diaspora.php:170 include/event.php:36 include/event.php:60 -msgid "Location:" -msgstr "Localisation:" - -#: mod/contacts.php:637 mod/follow.php:127 mod/notifications.php:246 -#: mod/directory.php:153 include/identity.php:313 include/identity.php:630 -msgid "About:" -msgstr "À propos:" - -#: mod/contacts.php:639 mod/follow.php:129 mod/notifications.php:248 -#: include/identity.php:624 -msgid "Tags:" -msgstr "Étiquette:" - -#: mod/contacts.php:684 -msgid "Suggestions" -msgstr "Suggestions" - -#: mod/contacts.php:687 -msgid "Suggest potential friends" -msgstr "Suggérer des amis potentiels" - -#: mod/contacts.php:692 mod/group.php:192 -msgid "All Contacts" -msgstr "Tous les contacts" - -#: mod/contacts.php:695 -msgid "Show all contacts" -msgstr "Montrer tous les contacts" - -#: mod/contacts.php:700 -msgid "Unblocked" -msgstr "Non-bloqués" - -#: mod/contacts.php:703 -msgid "Only show unblocked contacts" -msgstr "Ne montrer que les contacts non-bloqués" - -#: mod/contacts.php:709 -msgid "Blocked" -msgstr "Bloqués" - -#: mod/contacts.php:712 -msgid "Only show blocked contacts" -msgstr "Ne montrer que les contacts bloqués" - -#: mod/contacts.php:718 -msgid "Ignored" -msgstr "Ignorés" - -#: mod/contacts.php:721 -msgid "Only show ignored contacts" -msgstr "Ne montrer que les contacts ignorés" - -#: mod/contacts.php:727 -msgid "Archived" -msgstr "Archivés" - -#: mod/contacts.php:730 -msgid "Only show archived contacts" -msgstr "Ne montrer que les contacts archivés" - -#: mod/contacts.php:736 -msgid "Hidden" -msgstr "Cachés" - -#: mod/contacts.php:739 -msgid "Only show hidden contacts" -msgstr "Ne montrer que les contacts masqués" - -#: mod/contacts.php:792 mod/contacts.php:840 mod/viewcontacts.php:116 -#: include/identity.php:741 include/identity.php:744 include/text.php:1012 -#: include/nav.php:123 include/nav.php:187 view/theme/diabook/theme.php:125 -msgid "Contacts" -msgstr "Contacts" - -#: mod/contacts.php:796 -msgid "Search your contacts" -msgstr "Rechercher dans vos contacts" - -#: mod/contacts.php:797 -msgid "Finding: " -msgstr "Trouvé: " - -#: mod/contacts.php:798 mod/directory.php:210 include/contact_widgets.php:34 -msgid "Find" -msgstr "Trouver" - -#: mod/contacts.php:804 mod/settings.php:146 mod/settings.php:676 -msgid "Update" -msgstr "Mises-à-jour" - -#: mod/contacts.php:807 mod/contacts.php:878 -msgid "Archive" -msgstr "Archiver" - -#: mod/contacts.php:807 mod/contacts.php:878 -msgid "Unarchive" -msgstr "Désarchiver" - -#: mod/contacts.php:808 mod/group.php:171 mod/admin.php:1118 -#: mod/content.php:440 mod/content.php:743 mod/settings.php:713 -#: mod/photos.php:1723 object/Item.php:134 include/conversation.php:635 -msgid "Delete" -msgstr "Supprimer" - -#: mod/contacts.php:821 include/identity.php:686 include/nav.php:75 -msgid "Status" -msgstr "Statut" - -#: mod/contacts.php:824 include/identity.php:689 -msgid "Status Messages and Posts" -msgstr "Messages d'état et publications" - -#: mod/contacts.php:829 mod/profperm.php:104 mod/newmember.php:32 -#: include/identity.php:578 include/identity.php:664 include/identity.php:694 -#: include/nav.php:76 view/theme/diabook/theme.php:124 -msgid "Profile" -msgstr "Profil" - -#: mod/contacts.php:832 include/identity.php:697 -msgid "Profile Details" -msgstr "Détails du profil" - -#: mod/contacts.php:843 -msgid "View all contacts" -msgstr "Voir tous les contacts" - -#: mod/contacts.php:849 mod/common.php:134 -msgid "Common Friends" -msgstr "Amis communs" - -#: mod/contacts.php:852 -msgid "View all common friends" -msgstr "Voir tous les amis communs" - -#: mod/contacts.php:856 -msgid "Repair" -msgstr "Réparer" - -#: mod/contacts.php:859 -msgid "Advanced Contact Settings" -msgstr "Réglages avancés du contact" - -#: mod/contacts.php:867 -msgid "Toggle Blocked status" -msgstr "(dés)activer l'état \"bloqué\"" - -#: mod/contacts.php:874 -msgid "Toggle Ignored status" -msgstr "(dés)activer l'état \"ignoré\"" - -#: mod/contacts.php:881 -msgid "Toggle Archive status" -msgstr "(dés)activer l'état \"archivé\"" - -#: mod/contacts.php:949 -msgid "Mutual Friendship" -msgstr "Relation réciproque" - -#: mod/contacts.php:953 -msgid "is a fan of yours" -msgstr "Vous suit" - -#: mod/contacts.php:957 -msgid "you are a fan of" -msgstr "Vous le/la suivez" - -#: mod/contacts.php:978 mod/nogroup.php:42 -msgid "Edit contact" -msgstr "Éditer le contact" - -#: mod/hcard.php:10 -msgid "No profile" -msgstr "Aucun profil" - -#: mod/manage.php:139 -msgid "Manage Identities and/or Pages" -msgstr "Gérer les identités et/ou les pages" - -#: mod/manage.php:140 -msgid "" -"Toggle between different identities or community/group pages which share " -"your account details or which you have been granted \"manage\" permissions" -msgstr "Basculez entre les différentes identités ou pages (groupes/communautés) qui se partagent votre compte ou que vous avez été autorisé à gérer." - -#: mod/manage.php:141 -msgid "Select an identity to manage: " -msgstr "Choisir une identité à gérer: " - -#: mod/oexchange.php:25 -msgid "Post successful." -msgstr "Publication réussie." - -#: mod/profperm.php:19 mod/group.php:72 index.php:382 -msgid "Permission denied" -msgstr "Permission refusée" - -#: mod/profperm.php:25 mod/profperm.php:56 -msgid "Invalid profile identifier." -msgstr "Identifiant de profil invalide." - -#: mod/profperm.php:102 -msgid "Profile Visibility Editor" -msgstr "Éditer la visibilité du profil" - -#: mod/profperm.php:106 mod/group.php:223 -msgid "Click on a contact to add or remove." -msgstr "Cliquez sur un contact pour l'ajouter ou le supprimer." - -#: mod/profperm.php:115 -msgid "Visible To" -msgstr "Visible par" - -#: mod/profperm.php:131 -msgid "All Contacts (with secure profile access)" -msgstr "Tous les contacts (ayant un accès sécurisé)" - -#: mod/display.php:82 mod/display.php:280 mod/display.php:497 -#: mod/viewsrc.php:15 mod/admin.php:196 mod/admin.php:1163 mod/admin.php:1384 -#: mod/notice.php:15 include/items.php:4861 -msgid "Item not found." -msgstr "Élément introuvable." - -#: mod/display.php:209 mod/videos.php:197 mod/viewcontacts.php:35 -#: mod/community.php:18 mod/dfrn_request.php:779 mod/search.php:93 -#: mod/search.php:99 mod/directory.php:37 mod/photos.php:976 -msgid "Public access denied." -msgstr "Accès public refusé." - -#: mod/display.php:328 mod/profile.php:155 -msgid "Access to this profile has been restricted." -msgstr "L'accès au profil a été restreint." - -#: mod/display.php:490 -msgid "Item has been removed." -msgstr "Cet élément a été enlevé." - -#: mod/newmember.php:6 -msgid "Welcome to Friendica" -msgstr "Bienvenue sur Friendica" - -#: mod/newmember.php:8 -msgid "New Member Checklist" -msgstr "Checklist du nouvel utilisateur" - -#: mod/newmember.php:12 -msgid "" -"We would like to offer some tips and links to help make your experience " -"enjoyable. Click any item to visit the relevant page. A link to this page " -"will be visible from your home page for two weeks after your initial " -"registration and then will quietly disappear." -msgstr "Nous souhaiterions vous donner quelques astuces et ressources pour rendre votre expérience la plus agréable possible. Cliquez sur n'importe lequel de ces éléments pour visiter la page correspondante. Un lien vers cette page restera visible sur votre page d'accueil pendant les deux semaines qui suivent votre inscription initiale, puis disparaîtra silencieusement." - -#: mod/newmember.php:14 -msgid "Getting Started" -msgstr "Bien démarrer" - -#: mod/newmember.php:18 -msgid "Friendica Walk-Through" -msgstr "Friendica pas-à-pas" - -#: mod/newmember.php:18 -msgid "" -"On your Quick Start page - find a brief introduction to your " -"profile and network tabs, make some new connections, and find some groups to" -" join." -msgstr "Sur votre page d'accueil, dans Conseils aux nouveaux venus - vous trouverez une rapide introduction aux onglets Profil et Réseau, pourrez vous connecter à Facebook, établir de nouvelles relations, et choisir des groupes à rejoindre." - -#: mod/newmember.php:22 mod/admin.php:1215 mod/admin.php:1460 -#: mod/settings.php:99 include/nav.php:182 view/theme/diabook/theme.php:544 -#: view/theme/diabook/theme.php:648 -msgid "Settings" -msgstr "Réglages" - -#: mod/newmember.php:26 -msgid "Go to Your Settings" -msgstr "Éditer vos Réglages" - -#: mod/newmember.php:26 -msgid "" -"On your Settings page - change your initial password. Also make a " -"note of your Identity Address. This looks just like an email address - and " -"will be useful in making friends on the free social web." -msgstr "Sur la page des Réglages - changez votre mot de passe initial. Notez bien votre Identité. Elle ressemble à une adresse de courriel - et vous sera utile pour vous faire des amis dans le web social libre." - -#: mod/newmember.php:28 -msgid "" -"Review the other settings, particularly the privacy settings. An unpublished" -" directory listing is like having an unlisted phone number. In general, you " -"should probably publish your listing - unless all of your friends and " -"potential friends know exactly how to find you." -msgstr "Vérifiez les autres réglages, tout particulièrement ceux liés à la vie privée. Un profil non listé, c'est un peu comme un numéro sur liste rouge. En général, vous devriez probablement publier votre profil - à moins que tous vos amis (potentiels) sachent déjà comment vous trouver." - -#: mod/newmember.php:36 mod/profile_photo.php:250 mod/profiles.php:709 -msgid "Upload Profile Photo" -msgstr "Téléverser une photo de profil" - -#: mod/newmember.php:36 -msgid "" -"Upload a profile photo if you have not done so already. Studies have shown " -"that people with real photos of themselves are ten times more likely to make" -" friends than people who do not." -msgstr "Téléversez (envoyez) une photo de profil si vous n'en avez pas déjà une. Les études montrent que les gens qui affichent de vraies photos d'eux sont dix fois plus susceptibles de se faire des amis." - -#: mod/newmember.php:38 -msgid "Edit Your Profile" -msgstr "Éditer votre Profil" - -#: mod/newmember.php:38 -msgid "" -"Edit your default profile to your liking. Review the " -"settings for hiding your list of friends and hiding the profile from unknown" -" visitors." -msgstr "Éditez votre profil par défaut à votre convenance. Vérifiez les réglages concernant la visibilité de votre liste d'amis par les visiteurs inconnus." - -#: mod/newmember.php:40 -msgid "Profile Keywords" -msgstr "Mots-clés du profil" - -#: mod/newmember.php:40 -msgid "" -"Set some public keywords for your default profile which describe your " -"interests. We may be able to find other people with similar interests and " -"suggest friendships." -msgstr "Choisissez quelques mots-clé publics pour votre profil par défaut. Ils pourront ainsi décrire vos centres d'intérêt, et nous pourrons vous proposer des contacts qui les partagent." - -#: mod/newmember.php:44 -msgid "Connecting" -msgstr "Connexions" - -#: mod/newmember.php:49 mod/newmember.php:51 include/contact_selectors.php:81 -msgid "Facebook" -msgstr "Facebook" - -#: mod/newmember.php:49 -msgid "" -"Authorise the Facebook Connector if you currently have a Facebook account " -"and we will (optionally) import all your Facebook friends and conversations." -msgstr "Activez et paramétrez le connecteur Facebook si vous avez un compte Facebook et nous pourrons (de manière facultative) importer tous vos amis et conversations Facebook." - -#: mod/newmember.php:51 -msgid "" -"If this is your own personal server, installing the Facebook addon " -"may ease your transition to the free social web." -msgstr "Si ceci est votre propre serveur, installer le connecteur Facebook peut adoucir votre transition vers le web social libre." - -#: mod/newmember.php:56 -msgid "Importing Emails" -msgstr "Importer courriels" - -#: mod/newmember.php:56 -msgid "" -"Enter your email access information on your Connector Settings page if you " -"wish to import and interact with friends or mailing lists from your email " -"INBOX" -msgstr "Entrez vos paramètres de courriel dans les Réglages des connecteurs si vous souhaitez importer et interagir avec des amis ou des listes venant de votre Boîte de Réception." - -#: mod/newmember.php:58 -msgid "Go to Your Contacts Page" -msgstr "Consulter vos Contacts" - -#: mod/newmember.php:58 -msgid "" -"Your Contacts page is your gateway to managing friendships and connecting " -"with friends on other networks. Typically you enter their address or site " -"URL in the Add New Contact dialog." -msgstr "Votre page Contacts est le point d'entrée vers la gestion de vos amitiés/relations et la connexion à des amis venant d'autres réseaux. Typiquement, vous pourrez y rentrer leur adresse d'Identité ou l'URL de leur site dans le formulaire Ajouter un nouveau contact." - -#: mod/newmember.php:60 -msgid "Go to Your Site's Directory" -msgstr "Consulter l'Annuaire de votre Site" - -#: mod/newmember.php:60 -msgid "" -"The Directory page lets you find other people in this network or other " -"federated sites. Look for a Connect or Follow link on " -"their profile page. Provide your own Identity Address if requested." -msgstr "La page Annuaire vous permet de trouver d'autres personnes au sein de ce réseaux ou parmi d'autres sites fédérés. Cherchez un lien Relier ou Suivre sur leur profil. Vous pourrez avoir besoin d'indiquer votre adresse d'identité." - -#: mod/newmember.php:62 -msgid "Finding New People" -msgstr "Trouver de nouvelles personnes" - -#: mod/newmember.php:62 -msgid "" -"On the side panel of the Contacts page are several tools to find new " -"friends. We can match people by interest, look up people by name or " -"interest, and provide suggestions based on network relationships. On a brand" -" new site, friend suggestions will usually begin to be populated within 24 " -"hours." -msgstr "Sur le panneau latéral de la page Contacts, il y a plusieurs moyens de trouver de nouveaux amis. Nous pouvons mettre les gens en relation selon leurs intérêts, rechercher des amis par nom ou intérêt, et fournir des suggestions en fonction de la topologie du réseau. Sur un site tout neuf, les suggestions d'amitié devraient commencer à apparaître au bout de 24 heures." - -#: mod/newmember.php:66 include/group.php:283 -msgid "Groups" -msgstr "Groupes" - -#: mod/newmember.php:70 -msgid "Group Your Contacts" -msgstr "Grouper vos contacts" - -#: mod/newmember.php:70 -msgid "" -"Once you have made some friends, organize them into private conversation " -"groups from the sidebar of your Contacts page and then you can interact with" -" each group privately on your Network page." -msgstr "Une fois que vous avez trouvé quelques amis, organisez-les en groupes de conversation privés depuis le panneau latéral de la page Contacts. Vous pourrez ensuite interagir avec chaque groupe de manière privée depuis la page Réseau." - -#: mod/newmember.php:73 -msgid "Why Aren't My Posts Public?" -msgstr "Pourquoi mes éléments ne sont pas publics ?" - -#: mod/newmember.php:73 -msgid "" -"Friendica respects your privacy. By default, your posts will only show up to" -" people you've added as friends. For more information, see the help section " -"from the link above." -msgstr "Friendica respecte votre vie privée. Par défaut, toutes vos publications seront seulement montrés à vos amis. Pour plus d'information, consultez la section \"aide\" du lien ci-dessus." - -#: mod/newmember.php:78 -msgid "Getting Help" -msgstr "Obtenir de l'aide" - -#: mod/newmember.php:82 -msgid "Go to the Help Section" -msgstr "Aller à la section Aide" - -#: mod/newmember.php:82 -msgid "" -"Our help pages may be consulted for detail on other program" -" features and resources." -msgstr "Nos pages d'aide peuvent être consultées pour davantage de détails sur les fonctionnalités ou les ressources." - -#: mod/openid.php:24 -msgid "OpenID protocol error. No ID returned." -msgstr "Erreur de protocole OpenID. Pas d'ID en retour." - -#: mod/openid.php:53 -msgid "" -"Account not found and OpenID registration is not permitted on this site." -msgstr "Compte introuvable, et l'inscription OpenID n'est pas autorisée sur ce site." - -#: mod/openid.php:93 include/auth.php:112 include/auth.php:175 -msgid "Login failed." -msgstr "Échec de connexion." - -#: mod/profile_photo.php:44 -msgid "Image uploaded but image cropping failed." -msgstr "Image envoyée, mais impossible de la retailler." - -#: mod/profile_photo.php:74 mod/profile_photo.php:81 mod/profile_photo.php:88 -#: mod/profile_photo.php:210 mod/profile_photo.php:302 -#: mod/profile_photo.php:311 mod/photos.php:78 mod/photos.php:192 -#: mod/photos.php:775 mod/photos.php:1245 mod/photos.php:1268 -#: mod/photos.php:1862 include/user.php:345 include/user.php:352 -#: include/user.php:359 view/theme/diabook/theme.php:500 -msgid "Profile Photos" -msgstr "Photos du profil" - -#: mod/profile_photo.php:77 mod/profile_photo.php:84 mod/profile_photo.php:91 -#: mod/profile_photo.php:314 -#, php-format -msgid "Image size reduction [%s] failed." -msgstr "Réduction de la taille de l'image [%s] échouée." - -#: mod/profile_photo.php:124 -msgid "" -"Shift-reload the page or clear browser cache if the new photo does not " -"display immediately." -msgstr "Rechargez la page avec la touche Maj pressée, ou bien effacez le cache du navigateur, si d'aventure la nouvelle photo n'apparaissait pas immédiatement." - -#: mod/profile_photo.php:134 -msgid "Unable to process image" -msgstr "Impossible de traiter l'image" - -#: mod/profile_photo.php:150 mod/wall_upload.php:151 mod/photos.php:811 -#, php-format -msgid "Image exceeds size limit of %s" -msgstr "L'image dépasse la taille limite de %s" - -#: mod/profile_photo.php:159 mod/wall_upload.php:183 mod/photos.php:851 -msgid "Unable to process image." -msgstr "Impossible de traiter l'image." - -#: mod/profile_photo.php:248 -msgid "Upload File:" -msgstr "Fichier à téléverser:" - -#: mod/profile_photo.php:249 -msgid "Select a profile:" -msgstr "Choisir un profil:" - -#: mod/profile_photo.php:251 -msgid "Upload" -msgstr "Téléverser" - -#: mod/profile_photo.php:254 -msgid "or" -msgstr "ou" - -#: mod/profile_photo.php:254 -msgid "skip this step" -msgstr "ignorer cette étape" - -#: mod/profile_photo.php:254 -msgid "select a photo from your photo albums" -msgstr "choisissez une photo depuis vos albums" - -#: mod/profile_photo.php:268 -msgid "Crop Image" -msgstr "(Re)cadrer l'image" - -#: mod/profile_photo.php:269 -msgid "Please adjust the image cropping for optimum viewing." -msgstr "Ajustez le cadre de l'image pour une visualisation optimale." - -#: mod/profile_photo.php:271 -msgid "Done Editing" -msgstr "Édition terminée" - -#: mod/profile_photo.php:305 -msgid "Image uploaded successfully." -msgstr "Image téléversée avec succès." - -#: mod/profile_photo.php:307 mod/wall_upload.php:216 mod/photos.php:878 -msgid "Image upload failed." -msgstr "Le téléversement de l'image a échoué." - -#: mod/subthread.php:87 mod/tagger.php:62 mod/like.php:168 -#: include/conversation.php:130 include/conversation.php:266 -#: include/text.php:1993 include/diaspora.php:2147 -#: view/theme/diabook/theme.php:471 -msgid "photo" -msgstr "photo" - -#: mod/subthread.php:87 mod/tagger.php:62 mod/like.php:168 mod/like.php:346 -#: include/conversation.php:125 include/conversation.php:134 -#: include/conversation.php:261 include/conversation.php:270 -#: include/diaspora.php:2147 view/theme/diabook/theme.php:466 -#: view/theme/diabook/theme.php:475 -msgid "status" -msgstr "le statut" - -#: mod/subthread.php:103 -#, php-format -msgid "%1$s is following %2$s's %3$s" -msgstr "%1$s suit les %3$s de %2$s" - -#: mod/tagrm.php:41 -msgid "Tag removed" -msgstr "Étiquette supprimée" - -#: mod/tagrm.php:79 -msgid "Remove Item Tag" -msgstr "Enlever l'étiquette de l'élément" - -#: mod/tagrm.php:81 -msgid "Select a tag to remove: " -msgstr "Sélectionner une étiquette à supprimer: " - -#: mod/tagrm.php:93 mod/delegate.php:139 -msgid "Remove" -msgstr "Utiliser comme photo de profil" - -#: mod/ostatus_subscribe.php:14 -msgid "Subscribing to OStatus contacts" -msgstr "" - -#: mod/ostatus_subscribe.php:25 -msgid "No contact provided." -msgstr "Pas de contact fourni." - -#: mod/ostatus_subscribe.php:30 -msgid "Couldn't fetch information for contact." -msgstr "Impossible de récupérer les informations pour ce contact." - -#: mod/ostatus_subscribe.php:38 -msgid "Couldn't fetch friends for contact." -msgstr "Impossible de récupérer les amis de ce contact." - -#: mod/ostatus_subscribe.php:51 mod/repair_ostatus.php:44 -msgid "Done" -msgstr "Terminé" - -#: mod/ostatus_subscribe.php:65 -msgid "success" -msgstr "réussite" - -#: mod/ostatus_subscribe.php:67 -msgid "failed" -msgstr "échec" - -#: mod/ostatus_subscribe.php:69 object/Item.php:235 -msgid "ignored" -msgstr "ignoré" - -#: mod/ostatus_subscribe.php:73 mod/repair_ostatus.php:50 -msgid "Keep this window open until done." -msgstr "Veuillez garder cette fenêtre ouverte jusqu'à la fin." - -#: mod/filer.php:30 include/conversation.php:1133 -#: include/conversation.php:1151 -msgid "Save to Folder:" -msgstr "Sauver dans le Dossier:" - -#: mod/filer.php:30 -msgid "- select -" -msgstr "- choisir -" - -#: mod/filer.php:31 mod/editpost.php:109 mod/notes.php:61 -#: include/text.php:1004 -msgid "Save" -msgstr "Sauver" - -#: mod/follow.php:18 mod/dfrn_request.php:863 -msgid "Submit Request" -msgstr "Envoyer la requête" - -#: mod/follow.php:29 -msgid "You already added this contact." -msgstr "Vous avez déjà ajouté ce contact." - -#: mod/follow.php:38 -msgid "Diaspora support isn't enabled. Contact can't be added." -msgstr "Le support de Diaspora est désactivé. Le contact ne peut pas être ajouté." - -#: mod/follow.php:45 -msgid "OStatus support is disabled. Contact can't be added." -msgstr "Le support d'OStatus est désactivé. Le contact ne peut pas être ajouté." - -#: mod/follow.php:52 -msgid "The network type couldn't be detected. Contact can't be added." -msgstr "Impossible de détecter le type de réseau. Le contact ne peut pas être ajouté." - -#: mod/follow.php:104 mod/dfrn_request.php:849 -msgid "Please answer the following:" -msgstr "Merci de répondre à ce qui suit:" - -#: mod/follow.php:105 mod/dfrn_request.php:850 -#, php-format -msgid "Does %s know you?" -msgstr "Est-ce que %s vous connaît?" - -#: mod/follow.php:105 mod/settings.php:1094 mod/settings.php:1100 -#: mod/settings.php:1108 mod/settings.php:1112 mod/settings.php:1117 -#: mod/settings.php:1123 mod/settings.php:1129 mod/settings.php:1135 -#: mod/settings.php:1161 mod/settings.php:1162 mod/settings.php:1163 -#: mod/settings.php:1164 mod/settings.php:1165 mod/dfrn_request.php:850 -#: mod/register.php:239 mod/profiles.php:658 mod/profiles.php:662 -#: mod/profiles.php:687 mod/api.php:106 -msgid "No" -msgstr "Non" - -#: mod/follow.php:106 mod/dfrn_request.php:854 -msgid "Add a personal note:" -msgstr "Ajouter une note personnelle:" - -#: mod/follow.php:112 mod/dfrn_request.php:860 -msgid "Your Identity Address:" -msgstr "Votre adresse d'identité:" - -#: mod/follow.php:162 -msgid "Contact added" -msgstr "Contact ajouté" - -#: mod/item.php:114 -msgid "Unable to locate original post." -msgstr "Impossible de localiser la publication originale." - -#: mod/item.php:318 -msgid "Empty post discarded." -msgstr "Publication vide rejetée." - -#: mod/item.php:456 mod/wall_upload.php:213 mod/wall_upload.php:227 -#: mod/wall_upload.php:234 include/Photo.php:954 include/Photo.php:969 -#: include/Photo.php:976 include/Photo.php:998 include/message.php:145 -msgid "Wall Photos" -msgstr "Photos du mur" - -#: mod/item.php:830 -msgid "System error. Post not saved." -msgstr "Erreur système. Publication non sauvée." - -#: mod/item.php:959 -#, php-format -msgid "" -"This message was sent to you by %s, a member of the Friendica social " -"network." -msgstr "Ce message vous a été envoyé par %s, membre du réseau social Friendica." - -#: mod/item.php:961 -#, php-format -msgid "You may visit them online at %s" -msgstr "Vous pouvez leur rendre visite sur %s" - -#: mod/item.php:962 -msgid "" -"Please contact the sender by replying to this post if you do not wish to " -"receive these messages." -msgstr "Merci de contacter l’émetteur en répondant à cette publication si vous ne souhaitez pas recevoir ces messages." - -#: mod/item.php:966 -#, php-format -msgid "%s posted an update." -msgstr "%s a publié une mise à jour." - -#: mod/group.php:29 -msgid "Group created." -msgstr "Groupe créé." - -#: mod/group.php:35 -msgid "Could not create group." -msgstr "Impossible de créer le groupe." - -#: mod/group.php:47 mod/group.php:140 -msgid "Group not found." -msgstr "Groupe introuvable." - -#: mod/group.php:60 -msgid "Group name changed." -msgstr "Groupe renommé." - -#: mod/group.php:87 -msgid "Save Group" -msgstr "Sauvegarder le groupe" - -#: mod/group.php:93 -msgid "Create a group of contacts/friends." -msgstr "Créez un groupe de contacts/amis." - -#: mod/group.php:94 mod/group.php:178 include/group.php:289 -msgid "Group Name: " -msgstr "Nom du groupe: " - -#: mod/group.php:113 -msgid "Group removed." -msgstr "Groupe enlevé." - -#: mod/group.php:115 -msgid "Unable to remove group." -msgstr "Impossible d'enlever le groupe." - -#: mod/group.php:177 -msgid "Group Editor" -msgstr "Éditeur de groupe" - -#: mod/group.php:190 -msgid "Members" -msgstr "Membres" - -#: mod/group.php:193 mod/network.php:563 mod/content.php:130 -msgid "Group is empty" -msgstr "Groupe vide" - -#: mod/apps.php:7 index.php:226 -msgid "You must be logged in to use addons. " -msgstr "Vous devez être connecté pour utiliser les greffons." - -#: mod/apps.php:11 -msgid "Applications" -msgstr "Applications" - -#: mod/apps.php:14 -msgid "No installed applications." -msgstr "Pas d'application installée." - -#: mod/dfrn_confirm.php:64 mod/profiles.php:18 mod/profiles.php:133 -#: mod/profiles.php:179 mod/profiles.php:627 -msgid "Profile not found." -msgstr "Profil introuvable." - -#: mod/dfrn_confirm.php:120 mod/fsuggest.php:20 mod/fsuggest.php:92 -#: mod/crepair.php:131 -msgid "Contact not found." -msgstr "Contact introuvable." - -#: mod/dfrn_confirm.php:121 -msgid "" -"This may occasionally happen if contact was requested by both persons and it" -" has already been approved." -msgstr "Ceci peut se produire lorsque le contact a été requis par les deux personnes et a déjà été approuvé." - -#: mod/dfrn_confirm.php:240 -msgid "Response from remote site was not understood." -msgstr "Réponse du site distant incomprise." - -#: mod/dfrn_confirm.php:249 mod/dfrn_confirm.php:254 -msgid "Unexpected response from remote site: " -msgstr "Réponse inattendue du site distant : " - -#: mod/dfrn_confirm.php:263 -msgid "Confirmation completed successfully." -msgstr "Confirmation achevée avec succès." - -#: mod/dfrn_confirm.php:265 mod/dfrn_confirm.php:279 mod/dfrn_confirm.php:286 -msgid "Remote site reported: " -msgstr "Alerte du site distant : " - -#: mod/dfrn_confirm.php:277 -msgid "Temporary failure. Please wait and try again." -msgstr "Échec temporaire. Merci de recommencer ultérieurement." - -#: mod/dfrn_confirm.php:284 -msgid "Introduction failed or was revoked." -msgstr "Introduction échouée ou annulée." - -#: mod/dfrn_confirm.php:430 -msgid "Unable to set contact photo." -msgstr "Impossible de définir la photo du contact." - -#: mod/dfrn_confirm.php:487 include/conversation.php:185 -#: include/diaspora.php:637 -#, php-format -msgid "%1$s is now friends with %2$s" -msgstr "%1$s est désormais lié à %2$s" - -#: mod/dfrn_confirm.php:572 -#, php-format -msgid "No user record found for '%s' " -msgstr "Pas d'utilisateur trouvé pour '%s' " - -#: mod/dfrn_confirm.php:582 -msgid "Our site encryption key is apparently messed up." -msgstr "Notre clé de chiffrement de site est apparemment corrompue." - -#: mod/dfrn_confirm.php:593 -msgid "Empty site URL was provided or URL could not be decrypted by us." -msgstr "URL de site absente ou indéchiffrable." - -#: mod/dfrn_confirm.php:614 -msgid "Contact record was not found for you on our site." -msgstr "Pas d'entrée pour ce contact sur notre site." - -#: mod/dfrn_confirm.php:628 -#, php-format -msgid "Site public key not available in contact record for URL %s." -msgstr "La clé publique du site ne se trouve pas dans l'enregistrement du contact pour l'URL %s." - -#: mod/dfrn_confirm.php:648 -msgid "" -"The ID provided by your system is a duplicate on our system. It should work " -"if you try again." -msgstr "L'identifiant fourni par votre système fait doublon sur le notre. Cela peut fonctionner si vous réessayez." - -#: mod/dfrn_confirm.php:659 -msgid "Unable to set your contact credentials on our system." -msgstr "Impossible de vous définir des permissions sur notre système." - -#: mod/dfrn_confirm.php:726 -msgid "Unable to update your contact profile details on our system" -msgstr "Impossible de mettre les détails de votre profil à jour sur notre système" - -#: mod/dfrn_confirm.php:753 mod/dfrn_request.php:734 include/items.php:4273 -msgid "[Name Withheld]" -msgstr "[Nom non-publié]" - -#: mod/dfrn_confirm.php:798 -#, php-format -msgid "%1$s has joined %2$s" -msgstr "%1$s a rejoint %2$s" - -#: mod/profile.php:21 include/identity.php:53 -msgid "Requested profile is not available." -msgstr "Le profil demandé n'est pas disponible." - -#: mod/profile.php:179 -msgid "Tips for New Members" -msgstr "Conseils aux nouveaux venus" - -#: mod/videos.php:123 -msgid "Do you really want to delete this video?" -msgstr "Voulez-vous vraiment supprimer cette vidéo?" - -#: mod/videos.php:128 -msgid "Delete Video" -msgstr "Supprimer la vidéo" - -#: mod/videos.php:207 -msgid "No videos selected" -msgstr "Pas de vidéo sélectionné" - -#: mod/videos.php:308 mod/photos.php:1087 -msgid "Access to this item is restricted." -msgstr "Accès restreint à cet élément." - -#: mod/videos.php:383 include/text.php:1465 -msgid "View Video" -msgstr "Regarder la vidéo" - -#: mod/videos.php:390 mod/photos.php:1890 -msgid "View Album" -msgstr "Voir l'album" - -#: mod/videos.php:399 -msgid "Recent Videos" -msgstr "Vidéos récente" - -#: mod/videos.php:401 -msgid "Upload New Videos" -msgstr "Téléversé une nouvelle vidéo" - -#: mod/tagger.php:95 include/conversation.php:278 -#, php-format -msgid "%1$s tagged %2$s's %3$s with %4$s" -msgstr "%1$s a étiqueté %3$s de %2$s avec %4$s" - -#: mod/fsuggest.php:63 -msgid "Friend suggestion sent." -msgstr "Suggestion d'amitié/contact envoyée." - -#: mod/fsuggest.php:97 -msgid "Suggest Friends" -msgstr "Suggérer des amis/contacts" - -#: mod/fsuggest.php:99 -#, php-format -msgid "Suggest a friend for %s" -msgstr "Suggérer un ami/contact pour %s" - -#: mod/wall_upload.php:20 mod/wall_upload.php:33 mod/wall_upload.php:86 -#: mod/wall_upload.php:122 mod/wall_upload.php:125 mod/wall_attach.php:17 -#: mod/wall_attach.php:25 mod/wall_attach.php:76 include/api.php:1735 -msgid "Invalid request." -msgstr "Requête invalide." - -#: mod/lostpass.php:19 -msgid "No valid account found." -msgstr "Impossible de trouver un compte valide." - -#: mod/lostpass.php:35 -msgid "Password reset request issued. Check your email." -msgstr "Réinitialisation du mot de passe en cours. Vérifiez votre courriel." - -#: mod/lostpass.php:42 -#, php-format -msgid "" -"\n" -"\t\tDear %1$s,\n" -"\t\t\tA request was recently received at \"%2$s\" to reset your account\n" -"\t\tpassword. In order to confirm this request, please select the verification link\n" -"\t\tbelow or paste it into your web browser address bar.\n" -"\n" -"\t\tIf you did NOT request this change, please DO NOT follow the link\n" -"\t\tprovided and ignore and/or delete this email.\n" -"\n" -"\t\tYour password will not be changed unless we can verify that you\n" -"\t\tissued this request." -msgstr "\n\t\tChère/Cher %1$s,\n\t\t\tNous avons reçu une demande de ré-initialisation du mot de passe de votre compte sur \"%2$s\". Pour confirmer cette demande, veuillez cliquer sur le lien de vérification ci-dessous ou le coller dans la barre d’adresse de votre navigateur.\n\n\t\tSi vous n’êtes PAS à l’origine de cette demande, NE suivez PAS le lien—ignorez et/ou supprimez ce message.\n\n\t\tVotre mot de passe ne sera pas modifié si nous n’avons pas de confirmation que la demande émane de vous." - -#: mod/lostpass.php:53 -#, php-format -msgid "" -"\n" -"\t\tFollow this link to verify your identity:\n" -"\n" -"\t\t%1$s\n" -"\n" -"\t\tYou will then receive a follow-up message containing the new password.\n" -"\t\tYou may change that password from your account settings page after logging in.\n" -"\n" -"\t\tThe login details are as follows:\n" -"\n" -"\t\tSite Location:\t%2$s\n" -"\t\tLogin Name:\t%3$s" -msgstr "\n\t\tSuivez ce lien pour confirmer votre identité :\n\n\t\t%1$s\n\n\t\tVous recevrez alors a message contenant votre nouveau mot de passe.\n\t\tVous pourrez changer ce mot de passe depuis les paramètres de votre compte une fois connecté.\n\n\t\tInformations de connexion :\n\n\t\tAdresse :\t%2$s\n\t\tIdentifiant :\t%3$s" - -#: mod/lostpass.php:72 -#, php-format -msgid "Password reset requested at %s" -msgstr "Requête de réinitialisation de mot de passe à %s" - -#: mod/lostpass.php:92 -msgid "" -"Request could not be verified. (You may have previously submitted it.) " -"Password reset failed." -msgstr "Impossible d'honorer cette demande. (Vous l'avez peut-être déjà utilisée par le passé.) La réinitialisation a échoué." - -#: mod/lostpass.php:109 boot.php:1310 -msgid "Password Reset" -msgstr "Réinitialiser le mot de passe" - -#: mod/lostpass.php:110 -msgid "Your password has been reset as requested." -msgstr "Votre mot de passe a bien été réinitialisé." - -#: mod/lostpass.php:111 -msgid "Your new password is" -msgstr "Votre nouveau mot de passe est " - -#: mod/lostpass.php:112 -msgid "Save or copy your new password - and then" -msgstr "Sauvez ou copiez ce nouveau mot de passe - puis" - -#: mod/lostpass.php:113 -msgid "click here to login" -msgstr "cliquez ici pour vous connecter" - -#: mod/lostpass.php:114 -msgid "" -"Your password may be changed from the Settings page after " -"successful login." -msgstr "Votre mot de passe peut être changé depuis la page <em>Réglages</em>, une fois que vous serez connecté." - -#: mod/lostpass.php:125 -#, php-format -msgid "" -"\n" -"\t\t\t\tDear %1$s,\n" -"\t\t\t\t\tYour password has been changed as requested. Please retain this\n" -"\t\t\t\tinformation for your records (or change your password immediately to\n" -"\t\t\t\tsomething that you will remember).\n" -"\t\t\t" -msgstr "\n\t\t\t\tChère/Cher %1$s,\n\t\t\t\t\tVotre mot de passe a été changé ainsi que vous l’avez demandé. Veuillez conserver cette informations dans vos archives (ou changer immédiatement votre mot de passe pour un autre dont vous vous souviendrez).\n\t\t\t" - -#: mod/lostpass.php:131 -#, php-format -msgid "" -"\n" -"\t\t\t\tYour login details are as follows:\n" -"\n" -"\t\t\t\tSite Location:\t%1$s\n" -"\t\t\t\tLogin Name:\t%2$s\n" -"\t\t\t\tPassword:\t%3$s\n" -"\n" -"\t\t\t\tYou may change that password from your account settings page after logging in.\n" -"\t\t\t" -msgstr "\n\t\t\t\tVoici vos informations de connexion :\n\n\t\t\t\tAdresse :\t%1$s\n\t\t\t\tIdentifiant :\t%2$s\n\t\t\t\tMot de passe :\t%3$s\n\n\t\t\t\tVous pourrez changer votre mot de passe dans les paramètres de votre compte une fois connecté.\n\t\t\t" - -#: mod/lostpass.php:147 -#, php-format -msgid "Your password has been changed at %s" -msgstr "Votre mot de passe a été modifié à %s" - -#: mod/lostpass.php:159 -msgid "Forgot your Password?" -msgstr "Mot de passe oublié ?" - -#: mod/lostpass.php:160 -msgid "" -"Enter your email address and submit to have your password reset. Then check " -"your email for further instructions." -msgstr "Entrez votre adresse de courriel et validez pour réinitialiser votre mot de passe. Vous recevrez la suite des instructions par courriel." - -#: mod/lostpass.php:161 -msgid "Nickname or Email: " -msgstr "Pseudo ou eMail : " - -#: mod/lostpass.php:162 -msgid "Reset" -msgstr "Réinitialiser" - -#: mod/like.php:170 include/conversation.php:122 include/conversation.php:258 -#: include/text.php:1991 view/theme/diabook/theme.php:463 -msgid "event" -msgstr "évènement" - -#: mod/like.php:187 include/conversation.php:141 include/diaspora.php:2163 -#: view/theme/diabook/theme.php:480 -#, php-format -msgid "%1$s likes %2$s's %3$s" -msgstr "%1$s aime %3$s de %2$s" - -#: mod/like.php:189 include/conversation.php:144 -#, php-format -msgid "%1$s doesn't like %2$s's %3$s" -msgstr "%1$s n'aime pas %3$s de %2$s" - -#: mod/like.php:191 -#, php-format -msgid "%1$s is attending %2$s's %3$s" -msgstr "%1$s participe à %3$s de %2$s" - -#: mod/like.php:193 -#, php-format -msgid "%1$s is not attending %2$s's %3$s" -msgstr "%1$s ne participe pas à %3$s de %2$s" - -#: mod/like.php:195 -#, php-format -msgid "%1$s may attend %2$s's %3$s" -msgstr "%1$s participera peut-être à %3$s de %2$s" - -#: mod/ping.php:265 -msgid "{0} wants to be your friend" -msgstr "{0} souhaite être votre ami(e)" - -#: mod/ping.php:280 -msgid "{0} sent you a message" -msgstr "{0} vous a envoyé un message" - -#: mod/ping.php:295 -msgid "{0} requested registration" -msgstr "{0} a demandé à s'inscrire" - -#: mod/viewcontacts.php:72 -msgid "No contacts." -msgstr "Aucun contact." - -#: mod/notifications.php:29 -msgid "Invalid request identifier." -msgstr "Identifiant de demande invalide." - -#: mod/notifications.php:38 mod/notifications.php:180 -#: mod/notifications.php:260 -msgid "Discard" -msgstr "Rejeter" - -#: mod/notifications.php:81 -msgid "System" -msgstr "Système" - -#: mod/notifications.php:87 mod/admin.php:228 include/nav.php:154 -msgid "Network" -msgstr "Réseau" - -#: mod/notifications.php:93 mod/network.php:381 -msgid "Personal" -msgstr "Personnel" - -#: mod/notifications.php:99 include/nav.php:104 include/nav.php:157 -#: view/theme/diabook/theme.php:123 -msgid "Home" -msgstr "Profil" - -#: mod/notifications.php:105 include/nav.php:162 -msgid "Introductions" -msgstr "Introductions" - -#: mod/notifications.php:130 -msgid "Show Ignored Requests" -msgstr "Voir les demandes ignorées" - -#: mod/notifications.php:130 -msgid "Hide Ignored Requests" -msgstr "Cacher les demandes ignorées" - -#: mod/notifications.php:164 mod/notifications.php:234 -msgid "Notification type: " -msgstr "Type de notification: " - -#: mod/notifications.php:165 -msgid "Friend Suggestion" -msgstr "Suggestion d'amitié/contact" - -#: mod/notifications.php:167 -#, php-format -msgid "suggested by %s" -msgstr "suggéré(e) par %s" - -#: mod/notifications.php:173 mod/notifications.php:252 -msgid "Post a new friend activity" -msgstr "Poster une nouvelle avtivité d'ami" - -#: mod/notifications.php:173 mod/notifications.php:252 -msgid "if applicable" -msgstr "si possible" - -#: mod/notifications.php:176 mod/notifications.php:257 mod/admin.php:1116 -msgid "Approve" -msgstr "Approuver" - -#: mod/notifications.php:196 -msgid "Claims to be known to you: " -msgstr "Prétend que vous le connaissez: " - -#: mod/notifications.php:196 -msgid "yes" -msgstr "oui" - -#: mod/notifications.php:196 -msgid "no" -msgstr "non" - -#: mod/notifications.php:197 -msgid "" -"Shall your connection be bidirectional or not? \"Friend\" implies that you " -"allow to read and you subscribe to their posts. \"Fan/Admirer\" means that " -"you allow to read but you do not want to read theirs. Approve as: " -msgstr "Doit être votre connexion bidirectionnelle ou non? \"Ami\" implique que vous autorisiez à lire et vous vous abonnez à leurs postes. \"Fan / Admirateur\" signifie que vous permettez de lire, mais vous ne voulez pas lire les leurs. Approuver en:" - -#: mod/notifications.php:200 -msgid "" -"Shall your connection be bidirectional or not? \"Friend\" implies that you " -"allow to read and you subscribe to their posts. \"Sharer\" means that you " -"allow to read but you do not want to read theirs. Approve as: " -msgstr "Doit être votre connexion bidirectionnelle ou non? \"Ami\" implique que vous autorisiez à lire et vous vous abonnez à leurs postes. \"Fan / Admirateur\" signifie que vous permettez de lire, mais vous ne voulez pas lire les leurs. Approuver en:" - -#: mod/notifications.php:208 -msgid "Friend" -msgstr "Ami" - -#: mod/notifications.php:209 -msgid "Sharer" -msgstr "Initiateur du partage" - -#: mod/notifications.php:209 -msgid "Fan/Admirer" -msgstr "Fan/Admirateur" - -#: mod/notifications.php:235 -msgid "Friend/Connect Request" -msgstr "Demande de connexion/relation" - -#: mod/notifications.php:235 -msgid "New Follower" -msgstr "Nouvel abonné" - -#: mod/notifications.php:250 mod/directory.php:147 include/identity.php:306 -#: include/identity.php:589 -msgid "Gender:" -msgstr "Genre:" - -#: mod/notifications.php:266 -msgid "No introductions." -msgstr "Aucune demande d'introduction." - -#: mod/notifications.php:269 include/nav.php:165 -msgid "Notifications" -msgstr "Notifications" - -#: mod/notifications.php:307 mod/notifications.php:436 -#: mod/notifications.php:527 -#, php-format -msgid "%s liked %s's post" -msgstr "%s a aimé la publication de %s" - -#: mod/notifications.php:317 mod/notifications.php:446 -#: mod/notifications.php:537 -#, php-format -msgid "%s disliked %s's post" -msgstr "%s n'a pas aimé la publication de %s" - -#: mod/notifications.php:332 mod/notifications.php:461 -#: mod/notifications.php:552 -#, php-format -msgid "%s is now friends with %s" -msgstr "%s est désormais ami(e) avec %s" - -#: mod/notifications.php:339 mod/notifications.php:468 -#, php-format -msgid "%s created a new post" -msgstr "%s a créé une nouvelle publication" - -#: mod/notifications.php:340 mod/notifications.php:469 -#: mod/notifications.php:562 -#, php-format -msgid "%s commented on %s's post" -msgstr "%s a commenté la publication de %s" - -#: mod/notifications.php:355 -msgid "No more network notifications." -msgstr "Aucune notification du réseau." - -#: mod/notifications.php:359 -msgid "Network Notifications" -msgstr "Notifications du réseau" - -#: mod/notifications.php:385 mod/notify.php:72 -msgid "No more system notifications." -msgstr "Pas plus de notifications système." - -#: mod/notifications.php:389 mod/notify.php:76 -msgid "System Notifications" -msgstr "Notifications du système" - -#: mod/notifications.php:484 -msgid "No more personal notifications." -msgstr "Aucun notification personnelle." - -#: mod/notifications.php:488 -msgid "Personal Notifications" -msgstr "Notifications personnelles" - -#: mod/notifications.php:569 -msgid "No more home notifications." -msgstr "Aucune notification de la page d'accueil." - -#: mod/notifications.php:573 -msgid "Home Notifications" -msgstr "Notifications de page d'accueil" - -#: mod/babel.php:17 -msgid "Source (bbcode) text:" -msgstr "Texte source (bbcode) :" - -#: mod/babel.php:23 -msgid "Source (Diaspora) text to convert to BBcode:" -msgstr "Texte source (Diaspora) à convertir en BBcode :" - -#: mod/babel.php:31 -msgid "Source input: " -msgstr "Source input : " - -#: mod/babel.php:35 -msgid "bb2html (raw HTML): " -msgstr "bb2html (HTML brut)" - -#: mod/babel.php:39 -msgid "bb2html: " -msgstr "bb2html : " - -#: mod/babel.php:43 -msgid "bb2html2bb: " -msgstr "bb2html2bb : " - -#: mod/babel.php:47 -msgid "bb2md: " -msgstr "bb2md : " - -#: mod/babel.php:51 -msgid "bb2md2html: " -msgstr "bb2md2html : " - -#: mod/babel.php:55 -msgid "bb2dia2bb: " -msgstr "bb2dia2bb : " - -#: mod/babel.php:59 -msgid "bb2md2html2bb: " -msgstr "bb2md2html2bb : " - -#: mod/babel.php:69 -msgid "Source input (Diaspora format): " -msgstr "Texte source (format Diaspora) :" - -#: mod/babel.php:74 -msgid "diaspora2bb: " -msgstr "diaspora2bb :" - -#: mod/navigation.php:19 include/nav.php:33 -msgid "Nothing new here" -msgstr "Rien de neuf ici" - -#: mod/navigation.php:23 include/nav.php:37 -msgid "Clear notifications" -msgstr "Effacer les notifications" - -#: mod/message.php:15 include/nav.php:174 -msgid "New Message" -msgstr "Nouveau message" - -#: mod/message.php:70 mod/wallmessage.php:56 -msgid "No recipient selected." -msgstr "Pas de destinataire sélectionné." - -#: mod/message.php:74 -msgid "Unable to locate contact information." -msgstr "Impossible de localiser les informations du contact." - -#: mod/message.php:77 mod/wallmessage.php:62 -msgid "Message could not be sent." -msgstr "Impossible d'envoyer le message." - -#: mod/message.php:80 mod/wallmessage.php:65 -msgid "Message collection failure." -msgstr "Récupération des messages infructueuse." - -#: mod/message.php:83 mod/wallmessage.php:68 -msgid "Message sent." -msgstr "Message envoyé." - -#: mod/message.php:189 include/nav.php:171 -msgid "Messages" -msgstr "Messages" - -#: mod/message.php:214 -msgid "Do you really want to delete this message?" -msgstr "Voulez-vous vraiment supprimer ce message ?" - -#: mod/message.php:234 -msgid "Message deleted." -msgstr "Message supprimé." - -#: mod/message.php:265 -msgid "Conversation removed." -msgstr "Conversation supprimée." - -#: mod/message.php:290 mod/message.php:298 mod/message.php:427 -#: mod/message.php:435 mod/wallmessage.php:127 mod/wallmessage.php:135 -#: include/conversation.php:1129 include/conversation.php:1147 -msgid "Please enter a link URL:" -msgstr "Entrez un lien web:" - -#: mod/message.php:326 mod/wallmessage.php:142 -msgid "Send Private Message" -msgstr "Envoyer un message privé" - -#: mod/message.php:327 mod/message.php:514 mod/wallmessage.php:144 -msgid "To:" -msgstr "À:" - -#: mod/message.php:332 mod/message.php:516 mod/wallmessage.php:145 -msgid "Subject:" -msgstr "Sujet:" - -#: mod/message.php:336 mod/message.php:519 mod/wallmessage.php:151 -#: mod/invite.php:134 -msgid "Your message:" -msgstr "Votre message:" - -#: mod/message.php:339 mod/message.php:523 mod/wallmessage.php:154 -#: mod/editpost.php:110 include/conversation.php:1184 -msgid "Upload photo" -msgstr "Joindre photo" - -#: mod/message.php:340 mod/message.php:524 mod/wallmessage.php:155 -#: mod/editpost.php:114 include/conversation.php:1188 -msgid "Insert web link" -msgstr "Insérer lien web" - -#: mod/message.php:341 mod/message.php:526 mod/content.php:501 -#: mod/content.php:885 mod/wallmessage.php:156 mod/editpost.php:124 -#: mod/photos.php:1610 object/Item.php:396 include/conversation.php:713 -#: include/conversation.php:1202 -msgid "Please wait" -msgstr "Patientez" - -#: mod/message.php:368 -msgid "No messages." -msgstr "Aucun message." - -#: mod/message.php:411 -msgid "Message not available." -msgstr "Message indisponible." - -#: mod/message.php:481 -msgid "Delete message" -msgstr "Effacer message" - -#: mod/message.php:507 mod/message.php:582 -msgid "Delete conversation" -msgstr "Effacer conversation" - -#: mod/message.php:509 -msgid "" -"No secure communications available. You may be able to " -"respond from the sender's profile page." -msgstr "Pas de communications sécurisées possibles. Vous serez peut-être en mesure de répondre depuis la page de profil de l'émetteur." - -#: mod/message.php:513 -msgid "Send Reply" -msgstr "Répondre" - -#: mod/message.php:555 -#, php-format -msgid "Unknown sender - %s" -msgstr "Émetteur inconnu - %s" - -#: mod/message.php:558 -#, php-format -msgid "You and %s" -msgstr "Vous et %s" - -#: mod/message.php:561 -#, php-format -msgid "%s and You" -msgstr "%s et vous" - -#: mod/message.php:585 -msgid "D, d M Y - g:i A" -msgstr "D, d M Y - g:i A" - -#: mod/message.php:588 -#, php-format -msgid "%d message" -msgid_plural "%d messages" -msgstr[0] "%d message" -msgstr[1] "%d messages" - -#: mod/update_display.php:22 mod/update_community.php:18 -#: mod/update_notes.php:37 mod/update_profile.php:41 mod/update_network.php:25 -msgid "[Embedded content - reload page to view]" -msgstr "[contenu incorporé - rechargez la page pour le voir]" - -#: mod/crepair.php:104 -msgid "Contact settings applied." -msgstr "Réglages du contact appliqués." - -#: mod/crepair.php:106 -msgid "Contact update failed." -msgstr "Impossible d'appliquer les réglages." - -#: mod/crepair.php:137 -msgid "" -"WARNING: This is highly advanced and if you enter incorrect" -" information your communications with this contact may stop working." -msgstr "ATTENTION: Manipulation réservée aux experts, toute information incorrecte pourrait empêcher la communication avec ce contact." - -#: mod/crepair.php:138 -msgid "" -"Please use your browser 'Back' button now if you are " -"uncertain what to do on this page." -msgstr "une photo" - -#: mod/crepair.php:151 mod/crepair.php:153 -msgid "No mirroring" -msgstr "Pas de miroir" - -#: mod/crepair.php:151 -msgid "Mirror as forwarded posting" -msgstr "" - -#: mod/crepair.php:151 mod/crepair.php:153 -msgid "Mirror as my own posting" -msgstr "" - -#: mod/crepair.php:167 -msgid "Return to contact editor" -msgstr "Retour à l'éditeur de contact" - -#: mod/crepair.php:169 -msgid "Refetch contact data" -msgstr "Récupérer à nouveau les données de contact" - -#: mod/crepair.php:170 mod/admin.php:1114 mod/admin.php:1126 -#: mod/admin.php:1127 mod/admin.php:1140 mod/settings.php:652 -#: mod/settings.php:678 -msgid "Name" -msgstr "Nom" - -#: mod/crepair.php:171 -msgid "Account Nickname" -msgstr "Pseudo du compte" - -#: mod/crepair.php:172 -msgid "@Tagname - overrides Name/Nickname" -msgstr "@NomEtiquette - prend le pas sur Nom/Pseudo" - -#: mod/crepair.php:173 -msgid "Account URL" -msgstr "URL du compte" - -#: mod/crepair.php:174 -msgid "Friend Request URL" -msgstr "Echec du téléversement de l'image." - -#: mod/crepair.php:175 -msgid "Friend Confirm URL" -msgstr "Accès public refusé." - -#: mod/crepair.php:176 -msgid "Notification Endpoint URL" -msgstr "Aucune photo sélectionnée" - -#: mod/crepair.php:177 -msgid "Poll/Feed URL" -msgstr "Téléverser des photos" - -#: mod/crepair.php:178 -msgid "New photo from this URL" -msgstr "Nouvelle photo depuis cette URL" - -#: mod/crepair.php:179 -msgid "Remote Self" -msgstr "Identité à distance" - -#: mod/crepair.php:182 -msgid "Mirror postings from this contact" -msgstr "" - -#: mod/crepair.php:184 -msgid "" -"Mark this contact as remote_self, this will cause friendica to repost new " -"entries from this contact." -msgstr "Marquer ce contact comme étant remote_self, friendica republiera alors les nouvelles entrées de ce contact." - -#: mod/bookmarklet.php:12 boot.php:1296 include/nav.php:91 -msgid "Login" -msgstr "Connexion" - -#: mod/bookmarklet.php:41 -msgid "The post was created" -msgstr "La publication a été créée" - -#: mod/viewsrc.php:7 -msgid "Access denied." -msgstr "Accès refusé." - -#: mod/dirfind.php:188 mod/allfriends.php:80 mod/match.php:85 -#: mod/suggest.php:98 include/contact_widgets.php:10 include/identity.php:209 -msgid "Connect" -msgstr "Relier" - -#: mod/dirfind.php:189 mod/allfriends.php:64 mod/match.php:70 -#: mod/directory.php:162 mod/suggest.php:81 include/Contact.php:296 -#: include/Contact.php:309 include/Contact.php:351 -#: include/conversation.php:912 include/conversation.php:926 -msgid "View Profile" -msgstr "Voir le profil" - -#: mod/dirfind.php:218 -#, php-format -msgid "People Search - %s" -msgstr "Recherche de personne - %s" - -#: mod/dirfind.php:225 mod/match.php:105 -msgid "No matches" -msgstr "Aucune correspondance" - -#: mod/fbrowser.php:32 include/identity.php:702 include/nav.php:77 -#: view/theme/diabook/theme.php:126 -msgid "Photos" -msgstr "Photos" - -#: mod/fbrowser.php:41 mod/fbrowser.php:62 mod/photos.php:62 -#: mod/photos.php:192 mod/photos.php:1119 mod/photos.php:1245 -#: mod/photos.php:1268 mod/photos.php:1838 mod/photos.php:1850 -#: view/theme/diabook/theme.php:499 -msgid "Contact Photos" -msgstr "Photos du contact" - -#: mod/fbrowser.php:125 -msgid "Files" -msgstr "Fichiers" - -#: mod/nogroup.php:63 -msgid "Contacts who are not members of a group" -msgstr "Contacts qui n’appartiennent à aucun groupe" - -#: mod/admin.php:80 -msgid "Theme settings updated." -msgstr "Réglages du thème sauvés." - -#: mod/admin.php:127 mod/admin.php:713 -msgid "Site" -msgstr "Site" - -#: mod/admin.php:128 mod/admin.php:657 mod/admin.php:1109 mod/admin.php:1124 -msgid "Users" -msgstr "Utilisateurs" - -#: mod/admin.php:129 mod/admin.php:1213 mod/admin.php:1273 mod/settings.php:66 -msgid "Plugins" -msgstr "Extensions" - -#: mod/admin.php:130 mod/admin.php:1458 mod/admin.php:1509 -msgid "Themes" -msgstr "Thèmes" - -#: mod/admin.php:131 -msgid "DB updates" -msgstr "Mise-à-jour de la base" - -#: mod/admin.php:132 mod/admin.php:223 -msgid "Inspect Queue" -msgstr "Inspecter la file d'attente" - -#: mod/admin.php:147 mod/admin.php:156 mod/admin.php:1597 -msgid "Logs" -msgstr "Journaux" - -#: mod/admin.php:148 -msgid "probe address" -msgstr "Tester une adresse" - -#: mod/admin.php:149 -msgid "check webfinger" -msgstr "vérification de webfinger" - -#: mod/admin.php:154 include/nav.php:194 -msgid "Admin" -msgstr "Admin" - -#: mod/admin.php:155 -msgid "Plugin Features" -msgstr "Propriétés des extensions" - -#: mod/admin.php:157 -msgid "diagnostics" -msgstr "diagnostic" - -#: mod/admin.php:158 -msgid "User registrations waiting for confirmation" -msgstr "Inscriptions en attente de confirmation" - -#: mod/admin.php:222 mod/admin.php:272 mod/admin.php:712 mod/admin.php:1108 -#: mod/admin.php:1212 mod/admin.php:1272 mod/admin.php:1457 mod/admin.php:1508 -#: mod/admin.php:1596 -msgid "Administration" -msgstr "Administration" - -#: mod/admin.php:225 -msgid "ID" -msgstr "ID" - -#: mod/admin.php:226 -msgid "Recipient Name" -msgstr "Nom du destinataire" - -#: mod/admin.php:227 -msgid "Recipient Profile" -msgstr "Profil du destinataire" - -#: mod/admin.php:229 -msgid "Created" -msgstr "Créé" - -#: mod/admin.php:230 -msgid "Last Tried" -msgstr "Dernier essai" - -#: mod/admin.php:231 -msgid "" -"This page lists the content of the queue for outgoing postings. These are " -"postings the initial delivery failed for. They will be resend later and " -"eventually deleted if the delivery fails permanently." -msgstr "Cette page présente le contenu de la file d'attente pour les publications sortantes. Ce sont des messages dont la première livraison a échoué. Ils seront réenvoyés plus tard et éventuellement supprimés si l'envoi échoue de façon permanente." - -#: mod/admin.php:243 mod/admin.php:1062 -msgid "Normal Account" -msgstr "Compte normal" - -#: mod/admin.php:244 mod/admin.php:1063 -msgid "Soapbox Account" -msgstr "Compte \"boîte à savon\"" - -#: mod/admin.php:245 mod/admin.php:1064 -msgid "Community/Celebrity Account" -msgstr "Compte de communauté/célébrité" - -#: mod/admin.php:246 mod/admin.php:1065 -msgid "Automatic Friend Account" -msgstr "Compte auto-amical" - -#: mod/admin.php:247 -msgid "Blog Account" -msgstr "Compte de blog" - -#: mod/admin.php:248 -msgid "Private Forum" -msgstr "Forum privé" - -#: mod/admin.php:267 -msgid "Message queues" -msgstr "Files d'attente des messages" - -#: mod/admin.php:273 -msgid "Summary" -msgstr "Résumé" - -#: mod/admin.php:275 -msgid "Registered users" -msgstr "Utilisateurs inscrits" - -#: mod/admin.php:277 -msgid "Pending registrations" -msgstr "Inscriptions en attente" - -#: mod/admin.php:278 -msgid "Version" -msgstr "Versio" - -#: mod/admin.php:283 -msgid "Active plugins" -msgstr "Extensions activés" - -#: mod/admin.php:306 -msgid "Can not parse base url. Must have at least ://" -msgstr "Impossible d'analyser l'URL de base. Doit contenir au moins ://" - -#: mod/admin.php:589 -msgid "RINO2 needs mcrypt php extension to work." -msgstr "RINO2 a besoin du module php mcrypt pour fonctionner." - -#: mod/admin.php:597 -msgid "Site settings updated." -msgstr "Réglages du site mis-à-jour." - -#: mod/admin.php:621 mod/settings.php:903 -msgid "No special theme for mobile devices" -msgstr "Pas de thème particulier pour les terminaux mobiles" - -#: mod/admin.php:640 -msgid "No community page" -msgstr "Aucune page de communauté" - -#: mod/admin.php:641 -msgid "Public postings from users of this site" -msgstr "Publications publiques des utilisateurs de ce site" - -#: mod/admin.php:642 -msgid "Global community page" -msgstr "Page de la communauté globale" - -#: mod/admin.php:648 -msgid "At post arrival" -msgstr "A l'arrivé d'une publication" - -#: mod/admin.php:649 include/contact_selectors.php:56 -msgid "Frequently" -msgstr "Fréquemment" - -#: mod/admin.php:650 include/contact_selectors.php:57 -msgid "Hourly" -msgstr "Toutes les heures" - -#: mod/admin.php:651 include/contact_selectors.php:58 -msgid "Twice daily" -msgstr "Deux fois par jour" - -#: mod/admin.php:652 include/contact_selectors.php:59 -msgid "Daily" -msgstr "Chaque jour" - -#: mod/admin.php:658 -msgid "Users, Global Contacts" -msgstr "" - -#: mod/admin.php:659 -msgid "Users, Global Contacts/fallback" -msgstr "" - -#: mod/admin.php:663 -msgid "One month" -msgstr "Un mois" - -#: mod/admin.php:664 -msgid "Three months" -msgstr "Trois mois" - -#: mod/admin.php:665 -msgid "Half a year" -msgstr "Six mois" - -#: mod/admin.php:666 -msgid "One year" -msgstr "Un an" - -#: mod/admin.php:671 -msgid "Multi user instance" -msgstr "Instance multi-utilisateurs" - -#: mod/admin.php:694 -msgid "Closed" -msgstr "Fermé" - -#: mod/admin.php:695 -msgid "Requires approval" -msgstr "Demande une apptrobation" - -#: mod/admin.php:696 -msgid "Open" -msgstr "Ouvert" - -#: mod/admin.php:700 -msgid "No SSL policy, links will track page SSL state" -msgstr "Pas de politique SSL, le liens conserveront l'état SSL de la page" - -#: mod/admin.php:701 -msgid "Force all links to use SSL" -msgstr "Forcer tous les liens à utiliser SSL" - -#: mod/admin.php:702 -msgid "Self-signed certificate, use SSL for local links only (discouraged)" -msgstr "Certificat auto-signé, n'utiliser SSL que pour les liens locaux (non recommandé)" - -#: mod/admin.php:714 mod/admin.php:1274 mod/admin.php:1510 mod/admin.php:1598 -#: mod/settings.php:650 mod/settings.php:760 mod/settings.php:804 -#: mod/settings.php:873 mod/settings.php:960 mod/settings.php:1195 -msgid "Save Settings" -msgstr "Sauvegarder les paramétres" - -#: mod/admin.php:715 mod/register.php:263 -msgid "Registration" -msgstr "Inscription" - -#: mod/admin.php:716 -msgid "File upload" -msgstr "Téléversement de fichier" - -#: mod/admin.php:717 -msgid "Policies" -msgstr "Politiques" - -#: mod/admin.php:718 -msgid "Advanced" -msgstr "Avancé" - -#: mod/admin.php:719 -msgid "Auto Discovered Contact Directory" -msgstr "" - -#: mod/admin.php:720 -msgid "Performance" -msgstr "Performance" - -#: mod/admin.php:721 -msgid "" -"Relocate - WARNING: advanced function. Could make this server unreachable." -msgstr "Relocalisation - ATTENTION: fonction avancée. Peut rendre ce serveur inaccessible." - -#: mod/admin.php:724 -msgid "Site name" -msgstr "Nom du site" - -#: mod/admin.php:725 -msgid "Host name" -msgstr "Nom de la machine hôte" - -#: mod/admin.php:726 -msgid "Sender Email" -msgstr "Courriel de l'émetteur" - -#: mod/admin.php:726 -msgid "" -"The email address your server shall use to send notification emails from." -msgstr "L'adresse courriel à partir de laquelle votre serveur enverra des courriels." - -#: mod/admin.php:727 -msgid "Banner/Logo" -msgstr "Bannière/Logo" - -#: mod/admin.php:728 -msgid "Shortcut icon" -msgstr "Icône de raccourci" - -#: mod/admin.php:728 -msgid "Link to an icon that will be used for browsers." -msgstr "Lien vers une icône qui sera utilisée pour les navigateurs." - -#: mod/admin.php:729 -msgid "Touch icon" -msgstr "Icône pour systèmes tactiles" - -#: mod/admin.php:729 -msgid "Link to an icon that will be used for tablets and mobiles." -msgstr "Lien vers une icône qui sera utilisée pour les tablettes et les mobiles." - -#: mod/admin.php:730 -msgid "Additional Info" -msgstr "Informations supplémentaires" - -#: mod/admin.php:730 -#, php-format -msgid "" -"For public servers: you can add additional information here that will be " -"listed at %s/siteinfo." -msgstr "Pour les serveurs publics : vous pouvez ajouter des informations supplémentaires ici, qui figureront dans %s/siteinfo." - -#: mod/admin.php:731 -msgid "System language" -msgstr "Langue du système" - -#: mod/admin.php:732 -msgid "System theme" -msgstr "Thème du système" - -#: mod/admin.php:732 -msgid "" -"Default system theme - may be over-ridden by user profiles - change theme settings" -msgstr "Thème par défaut sur ce site - peut être changé au niveau du profile utilisateur - changer les réglages du thème" - -#: mod/admin.php:733 -msgid "Mobile system theme" -msgstr "Thème mobile" - -#: mod/admin.php:733 -msgid "Theme for mobile devices" -msgstr "Thème pour les terminaux mobiles" - -#: mod/admin.php:734 -msgid "SSL link policy" -msgstr "Politique SSL pour les liens" - -#: mod/admin.php:734 -msgid "Determines whether generated links should be forced to use SSL" -msgstr "Détermine si les liens générés doivent forcer l'utilisation de SSL" - -#: mod/admin.php:735 -msgid "Force SSL" -msgstr "SSL obligatoire" - -#: mod/admin.php:735 -msgid "" -"Force all Non-SSL requests to SSL - Attention: on some systems it could lead" -" to endless loops." -msgstr "Redirige toutes les requêtes en clair vers des requêtes SSL. Attention : sur certains systèmes cela peut conduire à des boucles de redirection infinies." - -#: mod/admin.php:736 -msgid "Old style 'Share'" -msgstr "Anciens style 'Partage'" - -#: mod/admin.php:736 -msgid "Deactivates the bbcode element 'share' for repeating items." -msgstr "Désactive l'élément 'partage' de bbcode pour répéter les articles." - -#: mod/admin.php:737 -msgid "Hide help entry from navigation menu" -msgstr "Cacher l'aide du menu de navigation" - -#: mod/admin.php:737 -msgid "" -"Hides the menu entry for the Help pages from the navigation menu. You can " -"still access it calling /help directly." -msgstr "Cacher du menu de navigation le l'entrée des vers les pages d'aide. Vous pouvez toujours y accéder en tapant directement /help." - -#: mod/admin.php:738 -msgid "Single user instance" -msgstr "Instance mono-utilisateur" - -#: mod/admin.php:738 -msgid "Make this instance multi-user or single-user for the named user" -msgstr "Transformer cette en instance en multi-utilisateur ou mono-utilisateur pour cet l'utilisateur." - -#: mod/admin.php:739 -msgid "Maximum image size" -msgstr "Taille maximale des images" - -#: mod/admin.php:739 -msgid "" -"Maximum size in bytes of uploaded images. Default is 0, which means no " -"limits." -msgstr "Taille maximale des images envoyées (en octets). 0 par défaut, c'est à dire \"aucune limite\"." - -#: mod/admin.php:740 -msgid "Maximum image length" -msgstr "Longueur maximale des images" - -#: mod/admin.php:740 -msgid "" -"Maximum length in pixels of the longest side of uploaded images. Default is " -"-1, which means no limits." -msgstr "Longueur maximale (en pixels) du plus long côté des images téléversées. La valeur par défaut est -1, soit une absence de limite." - -#: mod/admin.php:741 -msgid "JPEG image quality" -msgstr "Qualité JPEG des images" - -#: mod/admin.php:741 -msgid "" -"Uploaded JPEGS will be saved at this quality setting [0-100]. Default is " -"100, which is full quality." -msgstr "Les JPEGs téléversés seront sauvegardés avec ce niveau de qualité [0-100]. La valeur par défaut est 100, soit la qualité maximale." - -#: mod/admin.php:743 -msgid "Register policy" -msgstr "Politique d'inscription" - -#: mod/admin.php:744 -msgid "Maximum Daily Registrations" -msgstr "Inscriptions maximum par jour" - -#: mod/admin.php:744 -msgid "" -"If registration is permitted above, this sets the maximum number of new user" -" registrations to accept per day. If register is set to closed, this " -"setting has no effect." -msgstr "Si les inscriptions sont permises ci-dessus, ceci fixe le nombre maximum d'inscriptions de nouveaux utilisateurs acceptées par jour. Si les inscriptions ne sont pas ouvertes, ce paramètre n'a aucun effet." - -#: mod/admin.php:745 -msgid "Register text" -msgstr "Texte d'inscription" - -#: mod/admin.php:745 -msgid "Will be displayed prominently on the registration page." -msgstr "Sera affiché de manière bien visible sur la page d'accueil." - -#: mod/admin.php:746 -msgid "Accounts abandoned after x days" -msgstr "Les comptes sont abandonnés après x jours" - -#: mod/admin.php:746 -msgid "" -"Will not waste system resources polling external sites for abandonded " -"accounts. Enter 0 for no time limit." -msgstr "Pour ne pas gaspiller les ressources système, on cesse d'interroger les sites distants pour les comptes abandonnés. Mettre 0 pour désactiver cette fonction." - -#: mod/admin.php:747 -msgid "Allowed friend domains" -msgstr "Domaines autorisés" - -#: mod/admin.php:747 -msgid "" -"Comma separated list of domains which are allowed to establish friendships " -"with this site. Wildcards are accepted. Empty to allow any domains" -msgstr "Une liste de domaines, séparés par des virgules, autorisés à établir des relations avec les utilisateurs de ce site. Les '*' sont acceptés. Laissez vide pour autoriser tous les domaines" - -#: mod/admin.php:748 -msgid "Allowed email domains" -msgstr "Domaines courriel autorisés" - -#: mod/admin.php:748 -msgid "" -"Comma separated list of domains which are allowed in email addresses for " -"registrations to this site. Wildcards are accepted. Empty to allow any " -"domains" -msgstr "Liste de domaines - séparés par des virgules - dont les adresses e-mail sont autorisées à s'inscrire sur ce site. Les '*' sont acceptées. Laissez vide pour autoriser tous les domaines" - -#: mod/admin.php:749 -msgid "Block public" -msgstr "Interdire la publication globale" - -#: mod/admin.php:749 -msgid "" -"Check to block public access to all otherwise public personal pages on this " -"site unless you are currently logged in." -msgstr "Cocher pour bloquer les accès anonymes (non-connectés) à tout sauf aux pages personnelles publiques." - -#: mod/admin.php:750 -msgid "Force publish" -msgstr "Forcer la publication globale" - -#: mod/admin.php:750 -msgid "" -"Check to force all profiles on this site to be listed in the site directory." -msgstr "Cocher pour publier obligatoirement tous les profils locaux dans l'annuaire du site." - -#: mod/admin.php:751 -msgid "Global directory URL" -msgstr "URL de l'annuaire global" - -#: mod/admin.php:751 -msgid "" -"URL to the global directory. If this is not set, the global directory is " -"completely unavailable to the application." -msgstr "URL de l'annuaire global. Si ce champ n'est pas défini, l'annuaire global sera complètement indisponible pour l'application." - -#: mod/admin.php:752 -msgid "Allow threaded items" -msgstr "autoriser le suivi des éléments par fil conducteur" - -#: mod/admin.php:752 -msgid "Allow infinite level threading for items on this site." -msgstr "Permettre une imbrication infinie des commentaires." - -#: mod/admin.php:753 -msgid "Private posts by default for new users" -msgstr "Publications privées par défaut pour les nouveaux utilisateurs" - -#: mod/admin.php:753 -msgid "" -"Set default post permissions for all new members to the default privacy " -"group rather than public." -msgstr "Rendre les publications de tous les nouveaux utilisateurs accessibles seulement par le groupe de contacts par défaut, et non par tout le monde." - -#: mod/admin.php:754 -msgid "Don't include post content in email notifications" -msgstr "Ne pas inclure le contenu posté dans l'e-mail de notification" - -#: mod/admin.php:754 -msgid "" -"Don't include the content of a post/comment/private message/etc. in the " -"email notifications that are sent out from this site, as a privacy measure." -msgstr "Ne pas inclure le contenu de publication/commentaire/message privé/etc dans l'e-mail de notification qui est envoyé à partir du site, par mesure de confidentialité." - -#: mod/admin.php:755 -msgid "Disallow public access to addons listed in the apps menu." -msgstr "Interdire l’accès public pour les greffons listées dans le menu apps." - -#: mod/admin.php:755 -msgid "" -"Checking this box will restrict addons listed in the apps menu to members " -"only." -msgstr "Cocher cette case restreint la liste des greffons dans le menu des applications seulement aux membres." - -#: mod/admin.php:756 -msgid "Don't embed private images in posts" -msgstr "Ne pas miniaturiser les images privées dans les publications" - -#: mod/admin.php:756 -msgid "" -"Don't replace locally-hosted private photos in posts with an embedded copy " -"of the image. This means that contacts who receive posts containing private " -"photos will have to authenticate and load each image, which may take a " -"while." -msgstr "Ne remplacez pas les images privées hébergées localement dans les publications avec une image attaché en copie, car cela signifie que le contact qui reçoit les publications contenant ces photos privées devra s’authentifier pour charger chaque image, ce qui peut prendre du temps." - -#: mod/admin.php:757 -msgid "Allow Users to set remote_self" -msgstr "Autoriser les utilisateurs à définir remote_self" - -#: mod/admin.php:757 -msgid "" -"With checking this, every user is allowed to mark every contact as a " -"remote_self in the repair contact dialog. Setting this flag on a contact " -"causes mirroring every posting of that contact in the users stream." -msgstr "Cocher cette case, permet à chaque utilisateur de marquer chaque contact comme un remote_self dans la boîte de dialogue de réparation des contacts. Activer cette fonction à un contact engendre la réplique de toutes les publications d'un contact dans le flux d'activités des utilisateurs." - -#: mod/admin.php:758 -msgid "Block multiple registrations" -msgstr "Interdire les inscriptions multiples" - -#: mod/admin.php:758 -msgid "Disallow users to register additional accounts for use as pages." -msgstr "Ne pas permettre l'inscription de comptes multiples comme des pages." - -#: mod/admin.php:759 -msgid "OpenID support" -msgstr "Support OpenID" - -#: mod/admin.php:759 -msgid "OpenID support for registration and logins." -msgstr "Supporter OpenID pour les inscriptions et connexions." - -#: mod/admin.php:760 -msgid "Fullname check" -msgstr "Vérification du \"Prénom Nom\"" - -#: mod/admin.php:760 -msgid "" -"Force users to register with a space between firstname and lastname in Full " -"name, as an antispam measure" -msgstr "Imposer l'utilisation d'un espace entre le prénom et le nom (dans le Nom complet), pour limiter les abus" - -#: mod/admin.php:761 -msgid "UTF-8 Regular expressions" -msgstr "Regex UTF-8" - -#: mod/admin.php:761 -msgid "Use PHP UTF8 regular expressions" -msgstr "Utiliser les expressions rationnelles de PHP en UTF8" - -#: mod/admin.php:762 -msgid "Community Page Style" -msgstr "Style de la page de communauté" - -#: mod/admin.php:762 -msgid "" -"Type of community page to show. 'Global community' shows every public " -"posting from an open distributed network that arrived on this server." -msgstr "Type de page de la communauté à afficher. « Communauté globale » montre toutes les publications publiques des réseaux distribués ouverts qui arrivent sur ce serveur." - -#: mod/admin.php:763 -msgid "Posts per user on community page" -msgstr "Nombre de publications par utilisateur sur la page de la communauté (n'est pas valide pour " - -#: mod/admin.php:763 -msgid "" -"The maximum number of posts per user on the community page. (Not valid for " -"'Global Community')" -msgstr "Nombre maximal de publications par utilisateurs sur la page de la communauté (ne s'applique pas pour « Communauté globale »)." - -#: mod/admin.php:764 -msgid "Enable OStatus support" -msgstr "Activer le support d'OStatus" - -#: mod/admin.php:764 -msgid "" -"Provide built-in OStatus (StatusNet, GNU Social etc.) compatibility. All " -"communications in OStatus are public, so privacy warnings will be " -"occasionally displayed." -msgstr "Fourni nativement la compatibilité avec OStatus (StatusNet, GNU Social etc.). Touts les communications utilisant OStatus sont public, des avertissements liés à la vie privée seront affichés si utile." - -#: mod/admin.php:765 -msgid "OStatus conversation completion interval" -msgstr "Achèvement de l'intervalle de conversation OStatus " - -#: mod/admin.php:765 -msgid "" -"How often shall the poller check for new entries in OStatus conversations? " -"This can be a very ressource task." -msgstr "Combien de fois le poller devra vérifier les nouvelles entrées dans les conversations OStatus? Cela peut utilisé beaucoup de ressources." - -#: mod/admin.php:766 -msgid "OStatus support can only be enabled if threading is enabled." -msgstr "Le support OStatus ne peut être activé que si l'imbrication des commentaires est activée." - -#: mod/admin.php:768 -msgid "" -"Diaspora support can't be enabled because Friendica was installed into a sub" -" directory." -msgstr "Le support de Diaspora ne peut pas être activé parce que Friendica a été installé dans un sous-répertoire." - -#: mod/admin.php:769 -msgid "Enable Diaspora support" -msgstr "Activer le support de Diaspora" - -#: mod/admin.php:769 -msgid "Provide built-in Diaspora network compatibility." -msgstr "Fournir une compatibilité Diaspora intégrée." - -#: mod/admin.php:770 -msgid "Only allow Friendica contacts" -msgstr "N'autoriser que les contacts Friendica" - -#: mod/admin.php:770 -msgid "" -"All contacts must use Friendica protocols. All other built-in communication " -"protocols disabled." -msgstr "Tous les contacts doivent utiliser les protocoles de Friendica. Tous les autres protocoles de communication intégrés sont désactivés." - -#: mod/admin.php:771 -msgid "Verify SSL" -msgstr "Vérifier SSL" - -#: mod/admin.php:771 -msgid "" -"If you wish, you can turn on strict certificate checking. This will mean you" -" cannot connect (at all) to self-signed SSL sites." -msgstr "Si vous le souhaitez, vous pouvez activier la vérification stricte des certificats. Cela signifie que vous ne pourrez pas vous connecter (du tout) aux sites SSL munis d'un certificat auto-signé." - -#: mod/admin.php:772 -msgid "Proxy user" -msgstr "Utilisateur du proxy" - -#: mod/admin.php:773 -msgid "Proxy URL" -msgstr "URL du proxy" - -#: mod/admin.php:774 -msgid "Network timeout" -msgstr "Dépassement du délai d'attente du réseau" - -#: mod/admin.php:774 -msgid "Value is in seconds. Set to 0 for unlimited (not recommended)." -msgstr "Valeur en secondes. Mettre à 0 pour 'illimité' (pas recommandé)." - -#: mod/admin.php:775 -msgid "Delivery interval" -msgstr "Intervalle de transmission" - -#: mod/admin.php:775 -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 "Rallonge le processus de transmissions pour réduire la charge système (en secondes). Valeurs recommandées : 4-5 pour les serveurs mutualisés, 2-3 pour les VPS, 0-1 pour les gros servers dédiés." - -#: mod/admin.php:776 -msgid "Poll interval" -msgstr "Intervalle de réception" - -#: mod/admin.php:776 -msgid "" -"Delay background polling processes by this many seconds to reduce system " -"load. If 0, use delivery interval." -msgstr "Rajouter un délai - en secondes - au processus de 'polling', afin de réduire la charge système. Mettre à 0 pour utiliser l'intervalle d'émission." - -#: mod/admin.php:777 -msgid "Maximum Load Average" -msgstr "Plafond de la charge moyenne" - -#: mod/admin.php:777 -msgid "" -"Maximum system load before delivery and poll processes are deferred - " -"default 50." -msgstr "Charge système maximale à partir de laquelle l'émission et la réception seront soumises à un délai supplémentaire. Par défaut, 50." - -#: mod/admin.php:778 -msgid "Maximum Load Average (Frontend)" -msgstr "Plafond de la charge moyenne (frontale)" - -#: mod/admin.php:778 -msgid "Maximum system load before the frontend quits service - default 50." -msgstr "" - -#: mod/admin.php:779 -msgid "Maximum table size for optimization" -msgstr "" - -#: mod/admin.php:779 -msgid "" -"Maximum table size (in MB) for the automatic optimization - default 100 MB. " -"Enter -1 to disable it." -msgstr "" - -#: mod/admin.php:780 -msgid "Minimum level of fragmentation" -msgstr "" - -#: mod/admin.php:780 -msgid "" -"Minimum fragmenation level to start the automatic optimization - default " -"value is 30%." -msgstr "" - -#: mod/admin.php:782 -msgid "Periodical check of global contacts" -msgstr "Vérification périodique des contacts globaux" - -#: mod/admin.php:782 -msgid "" -"If enabled, the global contacts are checked periodically for missing or " -"outdated data and the vitality of the contacts and servers." -msgstr "Si activé, les données manquantes et obsolètes et la vitalité des contacts et des serveurs seront vérifiées périodiquement dans les contacts globaux." - -#: mod/admin.php:783 -msgid "Days between requery" -msgstr "Nombre de jours entre les requêtes" - -#: mod/admin.php:783 -msgid "Number of days after which a server is requeried for his contacts." -msgstr "Nombre de jours avant qu'une requête de contacts soient envoyée à nouveau à un serveur." - -#: mod/admin.php:784 -msgid "Discover contacts from other servers" -msgstr "Découvrir des contacts des autres serveurs" - -#: mod/admin.php:784 -msgid "" -"Periodically query other servers for contacts. You can choose between " -"'users': the users on the remote system, 'Global Contacts': active contacts " -"that are known on the system. The fallback is meant for Redmatrix servers " -"and older friendica servers, where global contacts weren't available. The " -"fallback increases the server load, so the recommened setting is 'Users, " -"Global Contacts'." -msgstr "" - -#: mod/admin.php:785 -msgid "Timeframe for fetching global contacts" -msgstr "" - -#: mod/admin.php:785 -msgid "" -"When the discovery is activated, this value defines the timeframe for the " -"activity of the global contacts that are fetched from other servers." -msgstr "" - -#: mod/admin.php:786 -msgid "Search the local directory" -msgstr "" - -#: mod/admin.php:786 -msgid "" -"Search the local directory instead of the global directory. When searching " -"locally, every search will be executed on the global directory in the " -"background. This improves the search results when the search is repeated." -msgstr "" - -#: mod/admin.php:788 -msgid "Publish server information" -msgstr "Publier les informations du serveur" - -#: mod/admin.php:788 -msgid "" -"If enabled, general server and usage data will be published. The data " -"contains the name and version of the server, number of users with public " -"profiles, number of posts and the activated protocols and connectors. See the-federation.info for details." -msgstr "Si cette option est activée, des informations sur le serveur et son utilisation seront publiées. Ces informations incluent le nom et la version du serveur, le nombre d’utilisateurs avec des profils publics, le nombre de messages, les protocoles supportés et les connecteurs disponibles. Plus de détails sur the-federation.info." - -#: mod/admin.php:790 -msgid "Use MySQL full text engine" -msgstr "Utiliser le moteur de recherche plein texte de MySQL" - -#: mod/admin.php:790 -msgid "" -"Activates the full text engine. Speeds up search - but can only search for " -"four and more characters." -msgstr "Activer le moteur de recherche plein texte. Accélère la recherche mais peut seulement rechercher quatre lettres ou plus." - -#: mod/admin.php:791 -msgid "Suppress Language" -msgstr "Supprimer un langage" - -#: mod/admin.php:791 -msgid "Suppress language information in meta information about a posting." -msgstr "Supprimer les informations de langue dans les métadonnées des publications." - -#: mod/admin.php:792 -msgid "Suppress Tags" -msgstr "Masquer les tags" - -#: mod/admin.php:792 -msgid "Suppress showing a list of hashtags at the end of the posting." -msgstr "Ne pas afficher la liste des hashtags à la fin d’un message." - -#: mod/admin.php:793 -msgid "Path to item cache" -msgstr "Chemin vers le cache des objets." - -#: mod/admin.php:793 -msgid "The item caches buffers generated bbcode and external images." -msgstr "" - -#: mod/admin.php:794 -msgid "Cache duration in seconds" -msgstr "Durée du cache en secondes" - -#: mod/admin.php:794 -msgid "" -"How long should the cache files be hold? Default value is 86400 seconds (One" -" day). To disable the item cache, set the value to -1." -msgstr "Combien de temps les fichiers de cache doivent être maintenu? La valeur par défaut est 86400 secondes (une journée). Pour désactiver le cache de l'item, définissez la valeur à -1." - -#: mod/admin.php:795 -msgid "Maximum numbers of comments per post" -msgstr "Nombre maximum de commentaires par publication" - -#: mod/admin.php:795 -msgid "How much comments should be shown for each post? Default value is 100." -msgstr "Combien de commentaires doivent être affichés pour chaque publication? Valeur par défaut: 100." - -#: mod/admin.php:796 -msgid "Path for lock file" -msgstr "Chemin vers le ficher de verrouillage" - -#: mod/admin.php:796 -msgid "" -"The lock file is used to avoid multiple pollers at one time. Only define a " -"folder here." -msgstr "" - -#: mod/admin.php:797 -msgid "Temp path" -msgstr "Chemin des fichiers temporaires" - -#: mod/admin.php:797 -msgid "" -"If you have a restricted system where the webserver can't access the system " -"temp path, enter another path here." -msgstr "" - -#: mod/admin.php:798 -msgid "Base path to installation" -msgstr "Chemin de base de l'installation" - -#: mod/admin.php:798 -msgid "" -"If the system cannot detect the correct path to your installation, enter the" -" correct path here. This setting should only be set if you are using a " -"restricted system and symbolic links to your webroot." -msgstr "" - -#: mod/admin.php:799 -msgid "Disable picture proxy" -msgstr "Désactiver le proxy image " - -#: mod/admin.php:799 -msgid "" -"The picture proxy increases performance and privacy. It shouldn't be used on" -" systems with very low bandwith." -msgstr "Le proxy d'image augmente les performances et l'intimité. Il ne devrait pas être utilisé sur des systèmes avec une très faible bande passante." - -#: mod/admin.php:800 -msgid "Enable old style pager" -msgstr "" - -#: mod/admin.php:800 -msgid "" -"The old style pager has page numbers but slows down massively the page " -"speed." -msgstr "" - -#: mod/admin.php:801 -msgid "Only search in tags" -msgstr "Rechercher seulement dans les étiquettes" - -#: mod/admin.php:801 -msgid "On large systems the text search can slow down the system extremely." -msgstr "La recherche textuelle peut ralentir considérablement les systèmes de grande taille." - -#: mod/admin.php:803 -msgid "New base url" -msgstr "Nouvelle URL de base" - -#: mod/admin.php:803 -msgid "" -"Change base url for this server. Sends relocate message to all DFRN contacts" -" of all users." -msgstr "Changer d'URL de base pour ce serveur. Envoie un message de relocalisation à tous les contacts des réseaux distribués d'amis et de relations (DFRN) de tous les utilisateurs." - -#: mod/admin.php:805 -msgid "RINO Encryption" -msgstr "Chiffrement RINO" - -#: mod/admin.php:805 -msgid "Encryption layer between nodes." -msgstr "Couche de chiffrement entre les nœuds du réseau." - -#: mod/admin.php:806 -msgid "Embedly API key" -msgstr "Clé API d'Embedly" - -#: mod/admin.php:806 -msgid "" -"Embedly is used to fetch additional data for " -"web pages. This is an optional parameter." -msgstr "" - -#: mod/admin.php:824 -msgid "Update has been marked successful" -msgstr "Mise-à-jour validée comme 'réussie'" - -#: mod/admin.php:832 -#, php-format -msgid "Database structure update %s was successfully applied." -msgstr "La structure de base de données pour la mise à jour %s a été appliquée avec succès." - -#: mod/admin.php:835 -#, php-format -msgid "Executing of database structure update %s failed with error: %s" -msgstr "L'exécution de la mise à jour %s pour la structure de base de données a échoué avec l'erreur: %s" - -#: mod/admin.php:847 -#, php-format -msgid "Executing %s failed with error: %s" -msgstr "L'exécution %s a échoué avec l'erreur: %s" - -#: mod/admin.php:850 -#, php-format -msgid "Update %s was successfully applied." -msgstr "Mise-à-jour %s appliquée avec succès." - -#: mod/admin.php:854 -#, php-format -msgid "Update %s did not return a status. Unknown if it succeeded." -msgstr "La mise-à-jour %s n'a pas retourné de détails. Impossible de savoir si elle a réussi." - -#: mod/admin.php:856 -#, php-format -msgid "There was no additional update function %s that needed to be called." -msgstr "Il n'y avait aucune fonction supplémentaire de mise à jour %s qui devait être appelé" - -#: mod/admin.php:875 -msgid "No failed updates." -msgstr "Pas de mises-à-jour échouées." - -#: mod/admin.php:876 -msgid "Check database structure" -msgstr "Vérifier la structure de la base de données" - -#: mod/admin.php:881 -msgid "Failed Updates" -msgstr "Mises-à-jour échouées" - -#: mod/admin.php:882 -msgid "" -"This does not include updates prior to 1139, which did not return a status." -msgstr "Ceci n'inclut pas les versions antérieures à la 1139, qui ne retournaient jamais de détails." - -#: mod/admin.php:883 -msgid "Mark success (if update was manually applied)" -msgstr "Marquer comme 'réussie' (dans le cas d'une mise-à-jour manuelle)" - -#: mod/admin.php:884 -msgid "Attempt to execute this update step automatically" -msgstr "Tenter d'éxecuter cette étape automatiquement" - -#: mod/admin.php:916 -#, php-format -msgid "" -"\n" -"\t\t\tDear %1$s,\n" -"\t\t\t\tthe administrator of %2$s has set up an account for you." -msgstr "\n\t\t\tChère/Cher %1$s,\n\t\t\t\tL’administrateur de %2$s vous a ouvert un compte." - -#: mod/admin.php:919 -#, php-format -msgid "" -"\n" -"\t\t\tThe login details are as follows:\n" -"\n" -"\t\t\tSite Location:\t%1$s\n" -"\t\t\tLogin Name:\t\t%2$s\n" -"\t\t\tPassword:\t\t%3$s\n" -"\n" -"\t\t\tYou may change your password from your account \"Settings\" page after logging\n" -"\t\t\tin.\n" -"\n" -"\t\t\tPlease take a few moments to review the other account settings on that page.\n" -"\n" -"\t\t\tYou may also wish to add some basic information to your default profile\n" -"\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n" -"\n" -"\t\t\tWe recommend setting your full name, adding a profile photo,\n" -"\t\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n" -"\t\t\tperhaps what country you live in; if you do not wish to be more specific\n" -"\t\t\tthan that.\n" -"\n" -"\t\t\tWe fully respect your right to privacy, and none of these items are necessary.\n" -"\t\t\tIf you are new and do not know anybody here, they may help\n" -"\t\t\tyou to make some new and interesting friends.\n" -"\n" -"\t\t\tThank you and welcome to %4$s." -msgstr "\n\t\t\tVoici vos informations de connexion :\n\n\t\t\tAdresse :\t%1$s\n\t\t\tIdentifiant :\t\t%2$s\n\t\t\tMot de passe :\t\t%3$s\n\n\t\t\tVous pourrez changer votre mot de passe dans les paramètres de votre compte une fois connecté.\n\n\t\t\tProfitez-en pour prendre le temps de passer en revue les autres paramètres de votre compte.\n\n\t\t\tVous pourrez aussi ajouter quelques informations élémentaires à votre profil par défaut (sur la page « Profils ») pour permettre à d’autres personnes de vous trouver facilement.\n\n\t\t\tNous recommandons de préciser votre nom complet, d’ajouter une photo et quelques mots-clefs (c’est très utile pour découvrir de nouveaux amis), et peut-être aussi d’indiquer au moins le pays dans lequel vous vivez, à défaut d’être plus précis.\n\n\t\t\tNous respectons pleinement votre droit à une vie privée, et vous n’avez aucune obligation de donner toutes ces informations. Mais si vous êtes nouveau et ne connaissez encore personne ici, cela peut vous aider à vous faire de nouveaux amis intéressants.\n\n\t\t\tMerci et bienvenu sur %4$s." - -#: mod/admin.php:951 include/user.php:423 -#, php-format -msgid "Registration details for %s" -msgstr "Détails d'inscription pour %s" - -#: mod/admin.php:963 -#, php-format -msgid "%s user blocked/unblocked" -msgid_plural "%s users blocked/unblocked" -msgstr[0] "%s utilisateur a (dé)bloqué" -msgstr[1] "%s utilisateurs ont (dé)bloqué" - -#: mod/admin.php:970 -#, php-format -msgid "%s user deleted" -msgid_plural "%s users deleted" -msgstr[0] "%s utilisateur supprimé" -msgstr[1] "%s utilisateurs supprimés" - -#: mod/admin.php:1009 -#, php-format -msgid "User '%s' deleted" -msgstr "Utilisateur '%s' supprimé" - -#: mod/admin.php:1017 -#, php-format -msgid "User '%s' unblocked" -msgstr "Utilisateur '%s' débloqué" - -#: mod/admin.php:1017 -#, php-format -msgid "User '%s' blocked" -msgstr "Utilisateur '%s' bloqué" - -#: mod/admin.php:1110 -msgid "Add User" -msgstr "Ajouter l'utilisateur" - -#: mod/admin.php:1111 -msgid "select all" -msgstr "tout sélectionner" - -#: mod/admin.php:1112 -msgid "User registrations waiting for confirm" -msgstr "Inscriptions d'utilisateurs en attente de confirmation" - -#: mod/admin.php:1113 -msgid "User waiting for permanent deletion" -msgstr "Utilisateur en attente de suppression définitive" - -#: mod/admin.php:1114 -msgid "Request date" -msgstr "Date de la demande" - -#: mod/admin.php:1114 mod/admin.php:1126 mod/admin.php:1127 mod/admin.php:1142 -#: include/contact_selectors.php:79 include/contact_selectors.php:86 -msgid "Email" -msgstr "Courriel" - -#: mod/admin.php:1115 -msgid "No registrations." -msgstr "Pas d'inscriptions." - -#: mod/admin.php:1117 -msgid "Deny" -msgstr "Rejetter" - -#: mod/admin.php:1121 -msgid "Site admin" -msgstr "Administration du Site" - -#: mod/admin.php:1122 -msgid "Account expired" -msgstr "Compte expiré" - -#: mod/admin.php:1125 -msgid "New User" -msgstr "Nouvel utilisateur" - -#: mod/admin.php:1126 mod/admin.php:1127 -msgid "Register date" -msgstr "Date d'inscription" - -#: mod/admin.php:1126 mod/admin.php:1127 -msgid "Last login" -msgstr "Dernière connexion" - -#: mod/admin.php:1126 mod/admin.php:1127 -msgid "Last item" -msgstr "Dernier élément" - -#: mod/admin.php:1126 -msgid "Deleted since" -msgstr "Supprimé depuis" - -#: mod/admin.php:1127 mod/settings.php:41 -msgid "Account" -msgstr "Compte" - -#: mod/admin.php:1129 -msgid "" -"Selected users will be deleted!\\n\\nEverything these users had posted on " -"this site will be permanently deleted!\\n\\nAre you sure?" -msgstr "Les utilisateurs sélectionnés vont être supprimés!\\n\\nTout ce qu'ils ont posté sur ce site sera définitivement effacé!\\n\\nÊtes-vous certain?" - -#: mod/admin.php:1130 -msgid "" -"The user {0} will be deleted!\\n\\nEverything this user has posted on this " -"site will be permanently deleted!\\n\\nAre you sure?" -msgstr "L'utilisateur {0} va être supprimé!\\n\\nTout ce qu'il a posté sur ce site sera définitivement perdu!\\n\\nÊtes-vous certain?" - -#: mod/admin.php:1140 -msgid "Name of the new user." -msgstr "Nom du nouvel utilisateur." - -#: mod/admin.php:1141 -msgid "Nickname" -msgstr "Pseudo" - -#: mod/admin.php:1141 -msgid "Nickname of the new user." -msgstr "Pseudo du nouvel utilisateur." - -#: mod/admin.php:1142 -msgid "Email address of the new user." -msgstr "Adresse mail du nouvel utilisateur." - -#: mod/admin.php:1175 -#, php-format -msgid "Plugin %s disabled." -msgstr "Extension %s désactivée." - -#: mod/admin.php:1179 -#, php-format -msgid "Plugin %s enabled." -msgstr "Extension %s activée." - -#: mod/admin.php:1189 mod/admin.php:1413 -msgid "Disable" -msgstr "Désactiver" - -#: mod/admin.php:1191 mod/admin.php:1415 -msgid "Enable" -msgstr "Activer" - -#: mod/admin.php:1214 mod/admin.php:1459 -msgid "Toggle" -msgstr "Activer/Désactiver" - -#: mod/admin.php:1222 mod/admin.php:1469 -msgid "Author: " -msgstr "Auteur: " - -#: mod/admin.php:1223 mod/admin.php:1470 -msgid "Maintainer: " -msgstr "Mainteneur: " - -#: mod/admin.php:1275 -#: view/smarty3/compiled/f835364006028b1061f37be121c9bd9db5fa50a9.file.admin_plugins.tpl.php:42 -msgid "Reload active plugins" -msgstr "Recharger les extensions actives" - -#: mod/admin.php:1373 -msgid "No themes found." -msgstr "Aucun thème trouvé." - -#: mod/admin.php:1451 -msgid "Screenshot" -msgstr "Capture d'écran" - -#: mod/admin.php:1511 -msgid "Reload active themes" -msgstr "Recharger les thèmes actifs" - -#: mod/admin.php:1515 -msgid "[Experimental]" -msgstr "[Expérimental]" - -#: mod/admin.php:1516 -msgid "[Unsupported]" -msgstr "[Non supporté]" - -#: mod/admin.php:1543 -msgid "Log settings updated." -msgstr "Réglages des journaux mis-à-jour." - -#: mod/admin.php:1599 -msgid "Clear" -msgstr "Effacer" - -#: mod/admin.php:1605 -msgid "Enable Debugging" -msgstr "Activer le déboggage" - -#: mod/admin.php:1606 -msgid "Log file" -msgstr "Fichier de journaux" - -#: mod/admin.php:1606 -msgid "" -"Must be writable by web server. Relative to your Friendica top-level " -"directory." -msgstr "Accès en écriture par le serveur web requis. Relatif à la racine de votre installation de Friendica." - -#: mod/admin.php:1607 -msgid "Log level" -msgstr "Niveau de journalisaton" - -#: mod/admin.php:1657 include/acl_selectors.php:348 -msgid "Close" -msgstr "Fermer" - -#: mod/admin.php:1663 -msgid "FTP Host" -msgstr "Hôte FTP" - -#: mod/admin.php:1664 -msgid "FTP Path" -msgstr "Chemin FTP" - -#: mod/admin.php:1665 -msgid "FTP User" -msgstr "Utilisateur FTP" - -#: mod/admin.php:1666 -msgid "FTP Password" -msgstr "Mot de passe FTP" - -#: mod/network.php:146 -#, php-format -msgid "Search Results For: %s" -msgstr "Résultats de la recherche pour %s" - -#: mod/network.php:191 mod/search.php:25 -msgid "Remove term" -msgstr "Retirer le terme" - -#: mod/network.php:200 mod/search.php:34 include/features.php:79 -msgid "Saved Searches" -msgstr "Recherches" - -#: mod/network.php:201 include/group.php:293 -msgid "add" -msgstr "ajouter" - -#: mod/network.php:362 -msgid "Commented Order" -msgstr "Tri par commentaires" - -#: mod/network.php:365 -msgid "Sort by Comment Date" -msgstr "Trier par date de commentaire" - -#: mod/network.php:370 -msgid "Posted Order" -msgstr "Tri des publications" - -#: mod/network.php:373 -msgid "Sort by Post Date" -msgstr "Trier par date de publication" - -#: mod/network.php:384 -msgid "Posts that mention or involve you" -msgstr "Publications qui vous concernent" - -#: mod/network.php:392 -msgid "New" -msgstr "Nouveau" - -#: mod/network.php:395 -msgid "Activity Stream - by date" -msgstr "Flux d'activités - par date" - -#: mod/network.php:403 -msgid "Shared Links" -msgstr "Liens partagés" - -#: mod/network.php:406 -msgid "Interesting Links" -msgstr "Liens intéressants" - -#: mod/network.php:414 -msgid "Starred" -msgstr "Mis en avant" - -#: mod/network.php:417 -msgid "Favourite Posts" -msgstr "Publications favorites" - -#: mod/network.php:476 -#, php-format -msgid "Warning: This group contains %s member from an insecure network." -msgid_plural "" -"Warning: This group contains %s members from an insecure network." -msgstr[0] "Attention: Ce groupe contient %s membre d'un réseau non-sûr." -msgstr[1] "Attention: Ce groupe contient %s membres d'un réseau non-sûr." - -#: mod/network.php:479 -msgid "Private messages to this group are at risk of public disclosure." -msgstr "Les messages privés envoyés à ce groupe s'exposent à une diffusion incontrôlée." - -#: mod/network.php:546 mod/content.php:119 -msgid "No such group" -msgstr "Groupe inexistant" - -#: mod/network.php:574 mod/content.php:135 -#, php-format -msgid "Group: %s" -msgstr "Group : %s" - -#: mod/network.php:606 -msgid "Private messages to this person are at risk of public disclosure." -msgstr "Les messages privés envoyés à ce contact s'exposent à une diffusion incontrôlée." - -#: mod/network.php:611 -msgid "Invalid contact." -msgstr "Contact invalide." - -#: mod/allfriends.php:43 -msgid "No friends to display." -msgstr "Pas d'amis à afficher." - -#: mod/events.php:71 mod/events.php:73 -msgid "Event can not end before it has started." -msgstr "L'événement ne peut pas se terminer avant d'avoir commencé." - -#: mod/events.php:80 mod/events.php:82 -msgid "Event title and start time are required." -msgstr "Vous devez donner un nom et un horaire de début à l'événement." - -#: mod/events.php:201 -msgid "Sun" -msgstr "Dim" - -#: mod/events.php:202 -msgid "Mon" -msgstr "Lun" - -#: mod/events.php:203 -msgid "Tue" -msgstr "Mar" - -#: mod/events.php:204 -msgid "Wed" -msgstr "Mer" - -#: mod/events.php:205 -msgid "Thu" -msgstr "Jeu" - -#: mod/events.php:206 -msgid "Fri" -msgstr "Ven" - -#: mod/events.php:207 -msgid "Sat" -msgstr "Sam" - -#: mod/events.php:208 mod/settings.php:939 include/text.php:1274 -msgid "Sunday" -msgstr "Dimanche" - -#: mod/events.php:209 mod/settings.php:939 include/text.php:1274 -msgid "Monday" -msgstr "Lundi" - -#: mod/events.php:210 include/text.php:1274 -msgid "Tuesday" -msgstr "Mardi" - -#: mod/events.php:211 include/text.php:1274 -msgid "Wednesday" -msgstr "Mercredi" - -#: mod/events.php:212 include/text.php:1274 -msgid "Thursday" -msgstr "Jeudi" - -#: mod/events.php:213 include/text.php:1274 -msgid "Friday" -msgstr "Vendredi" - -#: mod/events.php:214 include/text.php:1274 -msgid "Saturday" -msgstr "Samedi" - -#: mod/events.php:215 -msgid "Jan" -msgstr "Jan" - -#: mod/events.php:216 -msgid "Feb" -msgstr "Fév" - -#: mod/events.php:217 -msgid "Mar" -msgstr "Mar" - -#: mod/events.php:218 -msgid "Apr" -msgstr "Avr" - -#: mod/events.php:219 mod/events.php:231 include/text.php:1278 -msgid "May" -msgstr "Mai" - -#: mod/events.php:220 -msgid "Jun" -msgstr "Jun" - -#: mod/events.php:221 -msgid "Jul" -msgstr "Jul" - -#: mod/events.php:222 -msgid "Aug" -msgstr "Aoû" - -#: mod/events.php:223 -msgid "Sept" -msgstr "Sep" - -#: mod/events.php:224 -msgid "Oct" -msgstr "Oct" - -#: mod/events.php:225 -msgid "Nov" -msgstr "Nov" - -#: mod/events.php:226 -msgid "Dec" -msgstr "Déc" - -#: mod/events.php:227 include/text.php:1278 -msgid "January" -msgstr "Janvier" - -#: mod/events.php:228 include/text.php:1278 -msgid "February" -msgstr "Février" - -#: mod/events.php:229 include/text.php:1278 -msgid "March" -msgstr "Mars" - -#: mod/events.php:230 include/text.php:1278 -msgid "April" -msgstr "Avril" - -#: mod/events.php:232 include/text.php:1278 -msgid "June" -msgstr "Juin" - -#: mod/events.php:233 include/text.php:1278 -msgid "July" -msgstr "Juillet" - -#: mod/events.php:234 include/text.php:1278 -msgid "August" -msgstr "Août" - -#: mod/events.php:235 include/text.php:1278 -msgid "September" -msgstr "Septembre" - -#: mod/events.php:236 include/text.php:1278 -msgid "October" -msgstr "Octobre" - -#: mod/events.php:237 include/text.php:1278 -msgid "November" -msgstr "Novembre" - -#: mod/events.php:238 include/text.php:1278 -msgid "December" -msgstr "Décembre" - -#: mod/events.php:239 -msgid "today" -msgstr "aujourd'hui" - -#: mod/events.php:240 include/datetime.php:288 -msgid "month" -msgstr "mois" - -#: mod/events.php:241 include/datetime.php:289 -msgid "week" -msgstr "semaine" - -#: mod/events.php:242 include/datetime.php:290 -msgid "day" -msgstr "jour" - -#: mod/events.php:377 -msgid "l, F j" -msgstr "l, F j" - -#: mod/events.php:399 -msgid "Edit event" -msgstr "Editer l'événement" - -#: mod/events.php:421 include/text.php:1721 include/text.php:1728 -msgid "link to source" -msgstr "lien original" - -#: mod/events.php:456 include/identity.php:722 include/nav.php:79 -#: include/nav.php:140 view/theme/diabook/theme.php:127 -msgid "Events" -msgstr "Événements" - -#: mod/events.php:457 -msgid "Create New Event" -msgstr "Créer un nouvel événement" - -#: mod/events.php:458 -msgid "Previous" -msgstr "Précédent" - -#: mod/events.php:459 mod/install.php:220 -msgid "Next" -msgstr "Suivant" - -#: mod/events.php:554 -msgid "Event details" -msgstr "Détails de l'événement" - -#: mod/events.php:555 -msgid "Starting date and Title are required." -msgstr "La date de début et le titre sont requis." - -#: mod/events.php:556 -msgid "Event Starts:" -msgstr "Début de l'événement :" - -#: mod/events.php:556 mod/events.php:568 -msgid "Required" -msgstr "Requis" - -#: mod/events.php:558 -msgid "Finish date/time is not known or not relevant" -msgstr "Date / heure de fin inconnue ou sans objet" - -#: mod/events.php:560 -msgid "Event Finishes:" -msgstr "Fin de l'événement:" - -#: mod/events.php:562 -msgid "Adjust for viewer timezone" -msgstr "Ajuster à la zone horaire du visiteur" - -#: mod/events.php:564 -msgid "Description:" -msgstr "Description:" - -#: mod/events.php:568 -msgid "Title:" -msgstr "Titre :" - -#: mod/events.php:570 -msgid "Share this event" -msgstr "Partager cet événement" - -#: mod/events.php:572 mod/content.php:721 mod/editpost.php:145 -#: mod/photos.php:1631 mod/photos.php:1679 mod/photos.php:1767 -#: object/Item.php:719 include/conversation.php:1217 -msgid "Preview" -msgstr "Aperçu" - -#: mod/credits.php:16 -msgid "Credits" -msgstr "Remerciements" - -#: mod/credits.php:17 -msgid "" -"Friendica is a community project, that would not be possible without the " -"help of many people. Here is a list of those who have contributed to the " -"code or the translation of Friendica. Thank you all!" -msgstr "Friendica est un projet communautaire, qui ne serait pas possible sans l'aide de beaucoup de gens. Voici une liste de ceux qui ont contribué au code ou à la traduction de Friendica. Merci à tous!" - -#: mod/content.php:439 mod/content.php:742 mod/photos.php:1722 -#: object/Item.php:133 include/conversation.php:634 -msgid "Select" -msgstr "Sélectionner" - -#: mod/content.php:473 mod/content.php:854 mod/content.php:855 -#: object/Item.php:357 object/Item.php:358 include/conversation.php:675 -#, php-format -msgid "View %s's profile @ %s" -msgstr "Voir le profil de %s @ %s" - -#: mod/content.php:483 mod/content.php:866 object/Item.php:371 -#: include/conversation.php:695 -#, php-format -msgid "%s from %s" -msgstr "%s de %s" - -#: mod/content.php:499 include/conversation.php:711 -msgid "View in context" -msgstr "Voir dans le contexte" - -#: mod/content.php:605 object/Item.php:419 -#, php-format -msgid "%d comment" -msgid_plural "%d comments" -msgstr[0] "%d commentaire" -msgstr[1] "%d commentaires" - -#: mod/content.php:607 object/Item.php:421 object/Item.php:434 -#: include/text.php:1997 -msgid "comment" -msgid_plural "comments" -msgstr[0] "" -msgstr[1] "commentaire" - -#: mod/content.php:608 boot.php:788 object/Item.php:422 -#: include/contact_widgets.php:242 include/forums.php:110 -#: include/items.php:5181 view/theme/vier/theme.php:264 -msgid "show more" -msgstr "montrer plus" - -#: mod/content.php:622 mod/photos.php:1418 object/Item.php:117 -msgid "Private Message" -msgstr "Message privé" - -#: mod/content.php:686 mod/photos.php:1607 object/Item.php:253 -msgid "I like this (toggle)" -msgstr "J'aime" - -#: mod/content.php:686 object/Item.php:253 -msgid "like" -msgstr "aime" - -#: mod/content.php:687 mod/photos.php:1608 object/Item.php:254 -msgid "I don't like this (toggle)" -msgstr "Je n'aime pas" - -#: mod/content.php:687 object/Item.php:254 -msgid "dislike" -msgstr "n'aime pas" - -#: mod/content.php:689 object/Item.php:256 -msgid "Share this" -msgstr "Partager" - -#: mod/content.php:689 object/Item.php:256 -msgid "share" -msgstr "partager" - -#: mod/content.php:709 mod/photos.php:1627 mod/photos.php:1675 -#: mod/photos.php:1763 object/Item.php:707 -msgid "This is you" -msgstr "C'est vous" - -#: mod/content.php:711 mod/photos.php:1629 mod/photos.php:1677 -#: mod/photos.php:1765 boot.php:787 object/Item.php:393 object/Item.php:709 -msgid "Comment" -msgstr "Commenter" - -#: mod/content.php:713 object/Item.php:711 -msgid "Bold" -msgstr "Gras" - -#: mod/content.php:714 object/Item.php:712 -msgid "Italic" -msgstr "Italique" - -#: mod/content.php:715 object/Item.php:713 -msgid "Underline" -msgstr "Souligné" - -#: mod/content.php:716 object/Item.php:714 -msgid "Quote" -msgstr "Citation" - -#: mod/content.php:717 object/Item.php:715 -msgid "Code" -msgstr "Code" - -#: mod/content.php:718 object/Item.php:716 -msgid "Image" -msgstr "Image" - -#: mod/content.php:719 object/Item.php:717 -msgid "Link" -msgstr "Lien" - -#: mod/content.php:720 object/Item.php:718 -msgid "Video" -msgstr "Vidéo" - -#: mod/content.php:730 mod/settings.php:712 object/Item.php:122 -#: object/Item.php:124 -msgid "Edit" -msgstr "Éditer" - -#: mod/content.php:755 object/Item.php:217 -msgid "add star" -msgstr "mett en avant" - -#: mod/content.php:756 object/Item.php:218 -msgid "remove star" -msgstr "ne plus mettre en avant" - -#: mod/content.php:757 object/Item.php:219 -msgid "toggle star status" -msgstr "mettre en avant" - -#: mod/content.php:760 object/Item.php:222 -msgid "starred" -msgstr "mis en avant" - -#: mod/content.php:761 object/Item.php:242 -msgid "add tag" -msgstr "ajouter une étiquette" - -#: mod/content.php:765 object/Item.php:137 -msgid "save to folder" -msgstr "sauver vers dossier" - -#: mod/content.php:856 object/Item.php:359 -msgid "to" -msgstr "à" - -#: mod/content.php:857 object/Item.php:361 -msgid "Wall-to-Wall" -msgstr "Inter-mur" - -#: mod/content.php:858 object/Item.php:362 -msgid "via Wall-To-Wall:" -msgstr "en Inter-mur:" - -#: mod/removeme.php:46 mod/removeme.php:49 -msgid "Remove My Account" -msgstr "Supprimer mon compte" - -#: mod/removeme.php:47 -msgid "" -"This will completely remove your account. Once this has been done it is not " -"recoverable." -msgstr "Ceci supprimera totalement votre compte. Cette opération est irréversible." - -#: mod/removeme.php:48 -msgid "Please enter your password for verification:" -msgstr "Merci de saisir votre mot de passe pour vérification :" - -#: mod/install.php:128 -msgid "Friendica Communications Server - Setup" -msgstr "Serveur de communications Friendica - Configuration" - -#: mod/install.php:134 -msgid "Could not connect to database." -msgstr "Impossible de se connecter à la base." - -#: mod/install.php:138 -msgid "Could not create table." -msgstr "Impossible de créer une table." - -#: mod/install.php:144 -msgid "Your Friendica site database has been installed." -msgstr "La base de données de votre site Friendica a bien été installée." - -#: mod/install.php:149 -msgid "" -"You may need to import the file \"database.sql\" manually using phpmyadmin " -"or mysql." -msgstr "Vous pourriez avoir besoin d'importer le fichier \"database.sql\" manuellement au moyen de phpmyadmin ou de la commande mysql." - -#: mod/install.php:150 mod/install.php:219 mod/install.php:577 -msgid "Please see the file \"INSTALL.txt\"." -msgstr "Référez-vous au fichier \"INSTALL.txt\"." - -#: mod/install.php:162 -msgid "Database already in use." -msgstr "Base de données déjà en cours d'utilisation." - -#: mod/install.php:216 -msgid "System check" -msgstr "Vérifications système" - -#: mod/install.php:221 -msgid "Check again" -msgstr "Vérifier à nouveau" - -#: mod/install.php:240 -msgid "Database connection" -msgstr "Connexion à la base de données" - -#: mod/install.php:241 -msgid "" -"In order to install Friendica we need to know how to connect to your " -"database." -msgstr "Pour installer Friendica, nous avons besoin de savoir comment contacter votre base de données." - -#: mod/install.php:242 -msgid "" -"Please contact your hosting provider or site administrator if you have " -"questions about these settings." -msgstr "Merci de vous tourner vers votre hébergeur et/ou administrateur pour toute question concernant ces réglages." - -#: mod/install.php:243 -msgid "" -"The database you specify below should already exist. If it does not, please " -"create it before continuing." -msgstr "La base de données que vous spécifierez doit exister. Si ce n'est pas encore le cas, merci de la créer avant de continuer." - -#: mod/install.php:247 -msgid "Database Server Name" -msgstr "Serveur de base de données" - -#: mod/install.php:248 -msgid "Database Login Name" -msgstr "Nom d'utilisateur de la base" - -#: mod/install.php:249 -msgid "Database Login Password" -msgstr "Mot de passe de la base" - -#: mod/install.php:250 -msgid "Database Name" -msgstr "Nom de la base" - -#: mod/install.php:251 mod/install.php:290 -msgid "Site administrator email address" -msgstr "Adresse électronique de l'administrateur du site" - -#: mod/install.php:251 mod/install.php:290 -msgid "" -"Your account email address must match this in order to use the web admin " -"panel." -msgstr "Votre adresse électronique doit correspondre à celle-ci pour pouvoir utiliser l'interface d'administration." - -#: mod/install.php:255 mod/install.php:293 -msgid "Please select a default timezone for your website" -msgstr "Sélectionner un fuseau horaire par défaut pour votre site" - -#: mod/install.php:280 -msgid "Site settings" -msgstr "Réglages du site" - -#: mod/install.php:334 -msgid "Could not find a command line version of PHP in the web server PATH." -msgstr "Impossible de trouver la version \"ligne de commande\" de PHP dans le PATH du serveur web." - -#: mod/install.php:335 -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. See 'Setup the poller'" -msgstr "Si vous n'avez pas une version en ligne de commande de PHP sur votre serveur, vous ne pourrez pas exécuter l'attente active ou « polling » en arrière-plan via cron. Voir 'Setup the poller'." - -#: mod/install.php:339 -msgid "PHP executable path" -msgstr "Chemin vers l'exécutable de PHP" - -#: mod/install.php:339 -msgid "" -"Enter full path to php executable. You can leave this blank to continue the " -"installation." -msgstr "Entrez le chemin (absolu) vers l'exécutable 'php'. Vous pouvez laisser cette ligne vide pour continuer l'installation." - -#: mod/install.php:344 -msgid "Command line PHP" -msgstr "Version \"ligne de commande\" de PHP" - -#: mod/install.php:353 -msgid "PHP executable is not the php cli binary (could be cgi-fgci version)" -msgstr "L'executable PHP n'est pas le binaire php client (c'est peut être la version cgi-fcgi)" - -#: mod/install.php:354 -msgid "Found PHP version: " -msgstr "Version de PHP:" - -#: mod/install.php:356 -msgid "PHP cli binary" -msgstr "PHP cli binary" - -#: mod/install.php:367 -msgid "" -"The command line version of PHP on your system does not have " -"\"register_argc_argv\" enabled." -msgstr "La version \"ligne de commande\" de PHP de votre système n'a pas \"register_argc_argv\" d'activé." - -#: mod/install.php:368 -msgid "This is required for message delivery to work." -msgstr "Ceci est requis pour que la livraison des messages fonctionne." - -#: mod/install.php:370 -msgid "PHP register_argc_argv" -msgstr "PHP register_argc_argv" - -#: mod/install.php:391 -msgid "" -"Error: the \"openssl_pkey_new\" function on this system is not able to " -"generate encryption keys" -msgstr "Erreur: la fonction \"openssl_pkey_new\" de ce système ne permet pas de générer des clés de chiffrement" - -#: mod/install.php:392 -msgid "" -"If running under Windows, please see " -"\"http://www.php.net/manual/en/openssl.installation.php\"." -msgstr "Si vous utilisez Windows, merci de vous réferer à \"http://www.php.net/manual/en/openssl.installation.php\"." - -#: mod/install.php:394 -msgid "Generate encryption keys" -msgstr "Générer les clés de chiffrement" - -#: mod/install.php:401 -msgid "libCurl PHP module" -msgstr "Module libCurl de PHP" - -#: mod/install.php:402 -msgid "GD graphics PHP module" -msgstr "Module GD (graphiques) de PHP" - -#: mod/install.php:403 -msgid "OpenSSL PHP module" -msgstr "Module OpenSSL de PHP" - -#: mod/install.php:404 -msgid "mysqli PHP module" -msgstr "Module Mysqli de PHP" - -#: mod/install.php:405 -msgid "mb_string PHP module" -msgstr "Module mb_string de PHP" - -#: mod/install.php:406 -msgid "mcrypt PHP module" -msgstr "Module PHP mcrypt" - -#: mod/install.php:411 mod/install.php:413 -msgid "Apache mod_rewrite module" -msgstr "Module mod_rewrite Apache" - -#: mod/install.php:411 -msgid "" -"Error: Apache webserver mod-rewrite module is required but not installed." -msgstr "Erreur : Le module \"rewrite\" du serveur web Apache est requis mais pas installé." - -#: mod/install.php:419 -msgid "Error: libCURL PHP module required but not installed." -msgstr "Erreur : Le module PHP \"libCURL\" est requis mais pas installé." - -#: mod/install.php:423 -msgid "" -"Error: GD graphics PHP module with JPEG support required but not installed." -msgstr "Erreur : Le module PHP \"GD\" disposant du support JPEG est requis mais pas installé." - -#: mod/install.php:427 -msgid "Error: openssl PHP module required but not installed." -msgstr "Erreur : Le module PHP \"openssl\" est requis mais pas installé." - -#: mod/install.php:431 -msgid "Error: mysqli PHP module required but not installed." -msgstr "Erreur : Le module PHP \"mysqli\" est requis mais pas installé." - -#: mod/install.php:435 -msgid "Error: mb_string PHP module required but not installed." -msgstr "Erreur : le module PHP mb_string est requis mais pas installé." - -#: mod/install.php:439 -msgid "Error: mcrypt PHP module required but not installed." -msgstr "Erreur : le module PHP mcrypt est nécessaire, mais n'es pas installé." - -#: mod/install.php:451 -msgid "" -"Function mcrypt_create_iv() is not defined. This is needed to enable RINO2 " -"encryption layer." -msgstr "" - -#: mod/install.php:453 -msgid "mcrypt_create_iv() function" -msgstr "" - -#: mod/install.php:469 -msgid "" -"The web installer needs to be able to create a file called \".htconfig.php\"" -" in the top folder of your web server and it is unable to do so." -msgstr "L'installeur web doit être en mesure de créer un fichier \".htconfig.php\" à la racine de votre serveur web, mais il en est incapable." - -#: mod/install.php:470 -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 "Le plus souvent, il s'agit d'un problème de permission. Le serveur web peut ne pas être capable d'écrire dans votre répertoire - alors que vous-même le pouvez." - -#: mod/install.php:471 -msgid "" -"At the end of this procedure, we will give you a text to save in a file " -"named .htconfig.php in your Friendica top folder." -msgstr "A la fin de cette étape, nous vous fournirons un texte à sauvegarder dans un fichier nommé .htconfig.php à la racine de votre répertoire Friendica." - -#: mod/install.php:472 -msgid "" -"You can alternatively skip this procedure and perform a manual installation." -" Please see the file \"INSTALL.txt\" for instructions." -msgstr "Vous pouvez également sauter cette étape et procéder à une installation manuelle. Pour cela, merci de lire le fichier \"INSTALL.txt\"." - -#: mod/install.php:475 -msgid ".htconfig.php is writable" -msgstr "Fichier .htconfig.php accessible en écriture" - -#: mod/install.php:485 -msgid "" -"Friendica uses the Smarty3 template engine to render its web views. Smarty3 " -"compiles templates to PHP to speed up rendering." -msgstr "Friendica utilise le moteur de modèles Smarty3 pour le rendu d'affichage web. Smarty3 compile les modèles en PHP pour accélérer le rendu." - -#: mod/install.php:486 -msgid "" -"In order to store these compiled templates, the web server needs to have " -"write access to the directory view/smarty3/ under the Friendica top level " -"folder." -msgstr "Pour pouvoir stocker ces modèles compilés, le serveur internet doit avoir accès au droit d'écriture pour le répertoire view/smarty3/ sous le dossier racine de Friendica." - -#: mod/install.php:487 -msgid "" -"Please ensure that the user that your web server runs as (e.g. www-data) has" -" write access to this folder." -msgstr "Veuillez vous assurer que l'utilisateur qui exécute votre serveur internet (p. ex. www-data) détient le droit d'accès en écriture sur ce dossier." - -#: mod/install.php:488 -msgid "" -"Note: as a security measure, you should give the web server write access to " -"view/smarty3/ only--not the template files (.tpl) that it contains." -msgstr "Note: pour plus de sécurité, vous devriez ne donner le droit d'accès en écriture qu'à view/smarty3/ et pas aux fichiers modèles (.tpl) qu'il contient." - -#: mod/install.php:491 -msgid "view/smarty3 is writable" -msgstr "view/smarty3 est autorisé à l écriture" - -#: mod/install.php:507 -msgid "" -"Url rewrite in .htaccess is not working. Check your server configuration." -msgstr "La réécriture d'URL dans le fichier .htaccess ne fonctionne pas. Vérifiez la configuration de votre serveur." - -#: mod/install.php:509 -msgid "Url rewrite is working" -msgstr "La réécriture d'URL fonctionne." - -#: mod/install.php:526 -msgid "ImageMagick PHP extension is installed" -msgstr "L’extension PHP ImageMagick est installée" - -#: mod/install.php:528 -msgid "ImageMagick supports GIF" -msgstr "ImageMagick supporte le format GIF" - -#: mod/install.php:536 -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 "Le fichier de configuration de la base (\".htconfig.php\") ne peut être créé. Merci d'utiliser le texte ci-joint pour créer ce fichier à la racine de votre hébergement." - -#: mod/install.php:575 -msgid "

      What next

      " -msgstr "

      Ensuite

      " - -#: mod/install.php:576 -msgid "" -"IMPORTANT: You will need to [manually] setup a scheduled task for the " -"poller." -msgstr "IMPORTANT: Vous devez configurer [manuellement] une tâche programmée pour le \"poller\"." - -#: mod/wallmessage.php:42 mod/wallmessage.php:112 -#, php-format -msgid "Number of daily wall messages for %s exceeded. Message failed." -msgstr "Nombre de messages de mur quotidiens pour %s dépassé. Échec du message." - -#: mod/wallmessage.php:59 -msgid "Unable to check your home location." -msgstr "Impossible de vérifier votre localisation." - -#: mod/wallmessage.php:86 mod/wallmessage.php:95 -msgid "No recipient." -msgstr "Pas de destinataire." - -#: mod/wallmessage.php:143 -#, php-format -msgid "" -"If you wish for %s to respond, please check that the privacy settings on " -"your site allow private mail from unknown senders." -msgstr "Si vous souhaitez que %s réponde, merci de vérifier vos réglages pour autoriser les messages privés venant d'inconnus." - -#: mod/help.php:31 -msgid "Help:" -msgstr "Aide :" - -#: mod/help.php:36 include/nav.php:113 view/theme/vier/theme.php:302 -msgid "Help" -msgstr "Aide" - -#: mod/help.php:42 mod/p.php:16 mod/p.php:25 index.php:270 -msgid "Not Found" -msgstr "Non trouvé" - -#: mod/help.php:45 index.php:273 -msgid "Page not found." -msgstr "Page introuvable." - -#: mod/dfrn_poll.php:103 mod/dfrn_poll.php:536 -#, php-format -msgid "%1$s welcomes %2$s" -msgstr "%1$s accueille %2$s" - -#: mod/home.php:35 -#, php-format -msgid "Welcome to %s" -msgstr "Bienvenue sur %s" - -#: mod/wall_attach.php:94 -msgid "Sorry, maybe your upload is bigger than the PHP configuration allows" -msgstr "Désolé, il semble que votre fichier est plus important que ce que la configuration de PHP autorise" - -#: mod/wall_attach.php:94 -msgid "Or - did you try to upload an empty file?" -msgstr "Ou — auriez-vous essayé de télécharger un fichier vide ?" - -#: mod/wall_attach.php:105 -#, php-format -msgid "File exceeds size limit of %s" -msgstr "La taille du fichier dépasse la limite de %s" - -#: mod/wall_attach.php:156 mod/wall_attach.php:172 -msgid "File upload failed." -msgstr "Le téléversement a échoué." - -#: mod/match.php:33 -msgid "No keywords to match. Please add keywords to your default profile." -msgstr "Aucun mot-clé en correspondance. Merci d'ajouter des mots-clés à votre profil par défaut." - -#: mod/match.php:84 -msgid "is interested in:" -msgstr "s'intéresse à :" - -#: mod/match.php:98 -msgid "Profile Match" -msgstr "Correpondance de profils" - -#: mod/share.php:38 -msgid "link" -msgstr "lien" - -#: mod/community.php:23 -msgid "Not available." -msgstr "Indisponible." - -#: mod/community.php:32 include/nav.php:136 include/nav.php:138 -#: view/theme/diabook/theme.php:129 -msgid "Community" -msgstr "Communauté" - -#: mod/community.php:62 mod/community.php:71 mod/search.php:228 -msgid "No results." -msgstr "Aucun résultat." - -#: mod/settings.php:34 mod/photos.php:117 -msgid "everybody" -msgstr "tout le monde" - -#: mod/settings.php:47 -msgid "Additional features" -msgstr "Fonctions supplémentaires" - -#: mod/settings.php:53 -msgid "Display" -msgstr "Afficher" - -#: mod/settings.php:60 mod/settings.php:855 -msgid "Social Networks" -msgstr "Réseaux sociaux" - -#: mod/settings.php:72 include/nav.php:180 -msgid "Delegations" -msgstr "Délégations" - -#: mod/settings.php:78 -msgid "Connected apps" -msgstr "Applications connectées" - -#: mod/settings.php:84 mod/uexport.php:85 -msgid "Export personal data" -msgstr "Exporter" - -#: mod/settings.php:90 -msgid "Remove account" -msgstr "Supprimer le compte" - -#: mod/settings.php:143 -msgid "Missing some important data!" -msgstr "Il manque certaines informations importantes!" - -#: mod/settings.php:256 -msgid "Failed to connect with email account using the settings provided." -msgstr "Impossible de se connecter au compte courriel configuré." - -#: mod/settings.php:261 -msgid "Email settings updated." -msgstr "Réglages de courriel mis-à-jour." - -#: mod/settings.php:276 -msgid "Features updated" -msgstr "Fonctionnalités mises à jour" - -#: mod/settings.php:343 -msgid "Relocate message has been send to your contacts" -msgstr "Un message de relocalisation a été envoyé à vos contacts." - -#: mod/settings.php:357 include/user.php:39 -msgid "Passwords do not match. Password unchanged." -msgstr "Les mots de passe ne correspondent pas. Aucun changement appliqué." - -#: mod/settings.php:362 -msgid "Empty passwords are not allowed. Password unchanged." -msgstr "Les mots de passe vides sont interdits. Aucun changement appliqué." - -#: mod/settings.php:370 -msgid "Wrong password." -msgstr "Mauvais mot de passe." - -#: mod/settings.php:381 -msgid "Password changed." -msgstr "Mots de passe changés." - -#: mod/settings.php:383 -msgid "Password update failed. Please try again." -msgstr "Le changement de mot de passe a échoué. Merci de recommencer." - -#: mod/settings.php:452 -msgid " Please use a shorter name." -msgstr " Merci d'utiliser un nom plus court." - -#: mod/settings.php:454 -msgid " Name too short." -msgstr " Nom trop court." - -#: mod/settings.php:463 -msgid "Wrong Password" -msgstr "Mauvais mot de passe" - -#: mod/settings.php:468 -msgid " Not valid email." -msgstr " Email invalide." - -#: mod/settings.php:474 -msgid " Cannot change to that email." -msgstr " Impossible de changer pour cet email." - -#: mod/settings.php:530 -msgid "Private forum has no privacy permissions. Using default privacy group." -msgstr "Ce forum privé n'a pas de paramètres de vie privée. Utilisation des paramètres de confidentialité par défaut." - -#: mod/settings.php:534 -msgid "Private forum has no privacy permissions and no default privacy group." -msgstr "Ce forum privé n'a pas de paramètres de vie privée ni de paramètres de confidentialité par défaut." - -#: mod/settings.php:573 -msgid "Settings updated." -msgstr "Réglages mis à jour." - -#: mod/settings.php:649 mod/settings.php:675 mod/settings.php:711 -msgid "Add application" -msgstr "Ajouter une application" - -#: mod/settings.php:653 mod/settings.php:679 -msgid "Consumer Key" -msgstr "Clé utilisateur" - -#: mod/settings.php:654 mod/settings.php:680 -msgid "Consumer Secret" -msgstr "Secret utilisateur" - -#: mod/settings.php:655 mod/settings.php:681 -msgid "Redirect" -msgstr "Rediriger" - -#: mod/settings.php:656 mod/settings.php:682 -msgid "Icon url" -msgstr "URL de l'icône" - -#: mod/settings.php:667 -msgid "You can't edit this application." -msgstr "Vous ne pouvez pas éditer cette application." - -#: mod/settings.php:710 -msgid "Connected Apps" -msgstr "Applications connectées" - -#: mod/settings.php:714 -msgid "Client key starts with" -msgstr "La clé cliente commence par" - -#: mod/settings.php:715 -msgid "No name" -msgstr "Sans nom" - -#: mod/settings.php:716 -msgid "Remove authorization" -msgstr "Révoquer l'autorisation" - -#: mod/settings.php:728 -msgid "No Plugin settings configured" -msgstr "Pas de réglages d'extensions configurés" - -#: mod/settings.php:736 -msgid "Plugin Settings" -msgstr "Extensions" - -#: mod/settings.php:750 -msgid "Off" -msgstr "Éteint" - -#: mod/settings.php:750 -msgid "On" -msgstr "Allumé" - -#: mod/settings.php:758 -msgid "Additional Features" -msgstr "Fonctions supplémentaires" - -#: mod/settings.php:768 mod/settings.php:772 -msgid "General Social Media Settings" -msgstr "Paramètres généraux des réseaux sociaux" - -#: mod/settings.php:778 -msgid "Disable intelligent shortening" -msgstr "Désactiver la réduction d'URL" - -#: mod/settings.php:780 -msgid "" -"Normally the system tries to find the best link to add to shortened posts. " -"If this option is enabled then every shortened post will always point to the" -" original friendica post." -msgstr "Normalement, le système tente de trouver le meilleur lien à ajouter aux publications raccourcies. Si cette option est activée, les publications raccourcies dirigeront toujours vers leur publication d'origine sur Friendica." - -#: mod/settings.php:786 -msgid "Automatically follow any GNU Social (OStatus) followers/mentioners" -msgstr "Suivre automatiquement ceux qui me suivent ou me mentionnent sur GNU Social (OStatus)" - -#: mod/settings.php:788 -msgid "" -"If you receive a message from an unknown OStatus user, this option decides " -"what to do. If it is checked, a new contact will be created for every " -"unknown user." -msgstr "Si vous recevez un message d'un utilisateur OStatus inconnu, cette option détermine ce qui sera fait. Si elle est cochée, un nouveau contact sera créé pour chaque utilisateur inconnu." - -#: mod/settings.php:797 -msgid "Your legacy GNU Social account" -msgstr "Le compte GNU Social que vous avez déjà" - -#: mod/settings.php:799 -msgid "" -"If you enter your old GNU Social/Statusnet account name here (in the format " -"user@domain.tld), your contacts will be added automatically. The field will " -"be emptied when done." -msgstr "Si vous entrez le nom de votre ancien compte GNU Social / StatusNet ici (utiliser le format utilisateur@domaine.tld), vos contacts seront ajoutés automatiquement. Le champ sera vidé lorsque ce sera terminé." - -#: mod/settings.php:802 -msgid "Repair OStatus subscriptions" -msgstr "Réparer les abonnements OStatus" - -#: mod/settings.php:811 mod/settings.php:812 -#, php-format -msgid "Built-in support for %s connectivity is %s" -msgstr "Le support natif pour la connectivité %s est %s" - -#: mod/settings.php:811 mod/dfrn_request.php:858 -#: include/contact_selectors.php:80 -msgid "Diaspora" -msgstr "Diaspora" - -#: mod/settings.php:811 mod/settings.php:812 -msgid "enabled" -msgstr "activé" - -#: mod/settings.php:811 mod/settings.php:812 -msgid "disabled" -msgstr "désactivé" - -#: mod/settings.php:812 -msgid "GNU Social (OStatus)" -msgstr "GNU Social (OStatus)" - -#: mod/settings.php:848 -msgid "Email access is disabled on this site." -msgstr "L'accès courriel est désactivé sur ce site." - -#: mod/settings.php:860 -msgid "Email/Mailbox Setup" -msgstr "Réglages de courriel/boîte à lettre" - -#: mod/settings.php:861 -msgid "" -"If you wish to communicate with email contacts using this service " -"(optional), please specify how to connect to your mailbox." -msgstr "Si vous souhaitez communiquer avec vos contacts \"courriel\" (facultatif), merci de nous indiquer comment vous connecter à votre boîte." - -#: mod/settings.php:862 -msgid "Last successful email check:" -msgstr "Dernière vérification réussie des courriels:" - -#: mod/settings.php:864 -msgid "IMAP server name:" -msgstr "Nom du serveur IMAP:" - -#: mod/settings.php:865 -msgid "IMAP port:" -msgstr "Port IMAP:" - -#: mod/settings.php:866 -msgid "Security:" -msgstr "Sécurité:" - -#: mod/settings.php:866 mod/settings.php:871 -msgid "None" -msgstr "Aucun(e)" - -#: mod/settings.php:867 -msgid "Email login name:" -msgstr "Nom de connexion:" - -#: mod/settings.php:868 -msgid "Email password:" -msgstr "Mot de passe:" - -#: mod/settings.php:869 -msgid "Reply-to address:" -msgstr "Adresse de réponse:" - -#: mod/settings.php:870 -msgid "Send public posts to all email contacts:" -msgstr "Envoyer les publications publiques à tous les contacts courriels:" - -#: mod/settings.php:871 -msgid "Action after import:" -msgstr "Action après import:" - -#: mod/settings.php:871 -msgid "Mark as seen" -msgstr "Marquer comme vu" - -#: mod/settings.php:871 -msgid "Move to folder" -msgstr "Déplacer vers" - -#: mod/settings.php:872 -msgid "Move to folder:" -msgstr "Déplacer vers:" - -#: mod/settings.php:958 -msgid "Display Settings" -msgstr "Affichage" - -#: mod/settings.php:964 mod/settings.php:982 -msgid "Display Theme:" -msgstr "Thème d'affichage:" - -#: mod/settings.php:965 -msgid "Mobile Theme:" -msgstr "Thème mobile:" - -#: mod/settings.php:966 -msgid "Update browser every xx seconds" -msgstr "Mettre-à-jour l'affichage toutes les xx secondes" - -#: mod/settings.php:966 -msgid "Minimum of 10 seconds. Enter -1 to disable it." -msgstr "Minimum de 10 secondes. Saisir -1 pour désactiver." - -#: mod/settings.php:967 -msgid "Number of items to display per page:" -msgstr "Nombre d’éléments par page:" - -#: mod/settings.php:967 mod/settings.php:968 -msgid "Maximum of 100 items" -msgstr "Maximum de 100 éléments" - -#: mod/settings.php:968 -msgid "Number of items to display per page when viewed from mobile device:" -msgstr "Nombre d'éléments a afficher par page pour un appareil mobile" - -#: mod/settings.php:969 -msgid "Don't show emoticons" -msgstr "Ne pas afficher les émoticônes (smileys grahiques)" - -#: mod/settings.php:970 -msgid "Calendar" -msgstr "Calendrier" - -#: mod/settings.php:971 -msgid "Beginning of week:" -msgstr "Début de la semaine :" - -#: mod/settings.php:972 -msgid "Don't show notices" -msgstr "Ne plus afficher les avis" - -#: mod/settings.php:973 -msgid "Infinite scroll" -msgstr "Défilement infini" - -#: mod/settings.php:974 -msgid "Automatic updates only at the top of the network page" -msgstr "Mises à jour automatiques seulement en haut de la page du réseau." - -#: mod/settings.php:976 view/theme/cleanzero/config.php:82 -#: view/theme/dispy/config.php:72 view/theme/quattro/config.php:66 -#: view/theme/diabook/config.php:150 view/theme/clean/config.php:85 -#: view/theme/vier/config.php:109 view/theme/duepuntozero/config.php:61 -msgid "Theme settings" -msgstr "Réglages du thème graphique" - -#: mod/settings.php:1053 -msgid "User Types" -msgstr "Types d'utilisateurs" - -#: mod/settings.php:1054 -msgid "Community Types" -msgstr "Genre de communautés" - -#: mod/settings.php:1055 -msgid "Normal Account Page" -msgstr "Compte normal" - -#: mod/settings.php:1056 -msgid "This account is a normal personal profile" -msgstr "Ce compte correspond à un profil normal, pour une seule personne (physique, généralement)" - -#: mod/settings.php:1059 -msgid "Soapbox Page" -msgstr "Compte \"boîte à savon\"" - -#: mod/settings.php:1060 -msgid "Automatically approve all connection/friend requests as read-only fans" -msgstr "Accepter automatiquement toutes les demandes d'amitié/connexion comme étant des fans 'en lecture seule'" - -#: mod/settings.php:1063 -msgid "Community Forum/Celebrity Account" -msgstr "Compte de communauté/célébrité" - -#: mod/settings.php:1064 -msgid "" -"Automatically approve all connection/friend requests as read-write fans" -msgstr "Accepter automatiquement toutes les demandes d'amitié/connexion comme étant des fans en 'lecture/écriture'" - -#: mod/settings.php:1067 -msgid "Automatic Friend Page" -msgstr "Compte d'\"amitié automatique\"" - -#: mod/settings.php:1068 -msgid "Automatically approve all connection/friend requests as friends" -msgstr "Accepter automatiquement toutes les demandes d'amitié/connexion comme étant des amis" - -#: mod/settings.php:1071 -msgid "Private Forum [Experimental]" -msgstr "Forum privé [expérimental]" - -#: mod/settings.php:1072 -msgid "Private forum - approved members only" -msgstr "Forum privé - modéré en inscription" - -#: mod/settings.php:1084 -msgid "OpenID:" -msgstr "OpenID:" - -#: mod/settings.php:1084 -msgid "(Optional) Allow this OpenID to login to this account." -msgstr "&nbsp;(Facultatif) Autoriser cet OpenID à se connecter à ce compte." - -#: mod/settings.php:1094 -msgid "Publish your default profile in your local site directory?" -msgstr "Publier votre profil par défaut sur l'annuaire local de ce site?" - -#: mod/settings.php:1100 -msgid "Publish your default profile in the global social directory?" -msgstr "Publier votre profil par défaut sur l'annuaire social global?" - -#: mod/settings.php:1108 -msgid "Hide your contact/friend list from viewers of your default profile?" -msgstr "Cacher votre liste de contacts/amis des visiteurs de votre profil par défaut?" - -#: mod/settings.php:1112 include/acl_selectors.php:331 -msgid "Hide your profile details from unknown viewers?" -msgstr "Cacher les détails du profil aux visiteurs inconnus?" - -#: mod/settings.php:1112 -msgid "" -"If enabled, posting public messages to Diaspora and other networks isn't " -"possible." -msgstr "" - -#: mod/settings.php:1117 -msgid "Allow friends to post to your profile page?" -msgstr "Autoriser vos amis à publier sur votre profil?" - -#: mod/settings.php:1123 -msgid "Allow friends to tag your posts?" -msgstr "Autoriser vos amis à étiqueter vos publications?" - -#: mod/settings.php:1129 -msgid "Allow us to suggest you as a potential friend to new members?" -msgstr "Autoriser les suggestions d'amis potentiels aux nouveaux arrivants?" - -#: mod/settings.php:1135 -msgid "Permit unknown people to send you private mail?" -msgstr "Autoriser les messages privés d'inconnus?" - -#: mod/settings.php:1143 -msgid "Profile is not published." -msgstr "Ce profil n'est pas publié." - -#: mod/settings.php:1151 -#, php-format -msgid "Your Identity Address is '%s' or '%s'." -msgstr "L’adresse de votre identité est '%s' or '%s'." - -#: mod/settings.php:1158 -msgid "Automatically expire posts after this many days:" -msgstr "Les publications expirent automatiquement après (en jours) :" - -#: mod/settings.php:1158 -msgid "If empty, posts will not expire. Expired posts will be deleted" -msgstr "Si ce champ est vide, les publications n'expireront pas. Les publications expirées seront supprimées" - -#: mod/settings.php:1159 -msgid "Advanced expiration settings" -msgstr "Réglages avancés de l'expiration" - -#: mod/settings.php:1160 -msgid "Advanced Expiration" -msgstr "Expiration (avancé)" - -#: mod/settings.php:1161 -msgid "Expire posts:" -msgstr "Faire expirer les publications:" - -#: mod/settings.php:1162 -msgid "Expire personal notes:" -msgstr "Faire expirer les notes personnelles:" - -#: mod/settings.php:1163 -msgid "Expire starred posts:" -msgstr "Faire expirer les publications marqués:" - -#: mod/settings.php:1164 -msgid "Expire photos:" -msgstr "Faire expirer les photos:" - -#: mod/settings.php:1165 -msgid "Only expire posts by others:" -msgstr "Faire expirer seulement les publications des autres:" - -#: mod/settings.php:1193 -msgid "Account Settings" -msgstr "Compte" - -#: mod/settings.php:1201 -msgid "Password Settings" -msgstr "Réglages de mot de passe" - -#: mod/settings.php:1202 mod/register.php:274 -msgid "New Password:" -msgstr "Nouveau mot de passe:" - -#: mod/settings.php:1203 mod/register.php:275 -msgid "Confirm:" -msgstr "Confirmer:" - -#: mod/settings.php:1203 -msgid "Leave password fields blank unless changing" -msgstr "Laissez les champs de mot de passe vierges, sauf si vous désirez les changer" - -#: mod/settings.php:1204 -msgid "Current Password:" -msgstr "Mot de passe actuel:" - -#: mod/settings.php:1204 mod/settings.php:1205 -msgid "Your current password to confirm the changes" -msgstr "Votre mot de passe actuel pour confirmer les modifications" - -#: mod/settings.php:1205 -msgid "Password:" -msgstr "Mot de passe:" - -#: mod/settings.php:1209 -msgid "Basic Settings" -msgstr "Réglages basiques" - -#: mod/settings.php:1210 include/identity.php:587 -msgid "Full Name:" -msgstr "Nom complet:" - -#: mod/settings.php:1211 -msgid "Email Address:" -msgstr "Adresse courriel:" - -#: mod/settings.php:1212 -msgid "Your Timezone:" -msgstr "Votre fuseau horaire:" - -#: mod/settings.php:1213 -msgid "Your Language:" -msgstr "Votre langue :" - -#: mod/settings.php:1213 -msgid "" -"Set the language we use to show you friendica interface and to send you " -"emails" -msgstr "Détermine la langue que nous utilisons pour afficher votre interface Friendica et pour vous envoyer des courriels" - -#: mod/settings.php:1214 -msgid "Default Post Location:" -msgstr "Emplacement de publication par défaut:" - -#: mod/settings.php:1215 -msgid "Use Browser Location:" -msgstr "Utiliser la localisation géographique du navigateur:" - -#: mod/settings.php:1218 -msgid "Security and Privacy Settings" -msgstr "Réglages de sécurité et vie privée" - -#: mod/settings.php:1220 -msgid "Maximum Friend Requests/Day:" -msgstr "Nombre maximal de requêtes d'amitié/jour:" - -#: mod/settings.php:1220 mod/settings.php:1250 -msgid "(to prevent spam abuse)" -msgstr "(pour limiter l'impact du spam)" - -#: mod/settings.php:1221 -msgid "Default Post Permissions" -msgstr "Permissions de publication par défaut" - -#: mod/settings.php:1222 -msgid "(click to open/close)" -msgstr "(cliquer pour ouvrir/fermer)" - -#: mod/settings.php:1231 mod/photos.php:1199 mod/photos.php:1584 -msgid "Show to Groups" -msgstr "Montrer aux groupes" - -#: mod/settings.php:1232 mod/photos.php:1200 mod/photos.php:1585 -msgid "Show to Contacts" -msgstr "Montrer aux Contacts" - -#: mod/settings.php:1233 -msgid "Default Private Post" -msgstr "Message privé par défaut" - -#: mod/settings.php:1234 -msgid "Default Public Post" -msgstr "Message publique par défaut" - -#: mod/settings.php:1238 -msgid "Default Permissions for New Posts" -msgstr "Permissions par défaut pour les nouvelles publications" - -#: mod/settings.php:1250 -msgid "Maximum private messages per day from unknown people:" -msgstr "Maximum de messages privés d'inconnus par jour:" - -#: mod/settings.php:1253 -msgid "Notification Settings" -msgstr "Réglages de notification" - -#: mod/settings.php:1254 -msgid "By default post a status message when:" -msgstr "Par défaut, poster un statut quand:" - -#: mod/settings.php:1255 -msgid "accepting a friend request" -msgstr "j'accepte un ami" - -#: mod/settings.php:1256 -msgid "joining a forum/community" -msgstr "joignant un forum/une communauté" - -#: mod/settings.php:1257 -msgid "making an interesting profile change" -msgstr "je fais une modification intéressante de mon profil" - -#: mod/settings.php:1258 -msgid "Send a notification email when:" -msgstr "Envoyer un courriel de notification quand:" - -#: mod/settings.php:1259 -msgid "You receive an introduction" -msgstr "Vous recevez une introduction" - -#: mod/settings.php:1260 -msgid "Your introductions are confirmed" -msgstr "Vos introductions sont confirmées" - -#: mod/settings.php:1261 -msgid "Someone writes on your profile wall" -msgstr "Quelqu'un écrit sur votre mur" - -#: mod/settings.php:1262 -msgid "Someone writes a followup comment" -msgstr "Quelqu'un vous commente" - -#: mod/settings.php:1263 -msgid "You receive a private message" -msgstr "Vous recevez un message privé" - -#: mod/settings.php:1264 -msgid "You receive a friend suggestion" -msgstr "Vous avez reçu une suggestion d'ami" - -#: mod/settings.php:1265 -msgid "You are tagged in a post" -msgstr "Vous avez été étiquetté dans une publication" - -#: mod/settings.php:1266 -msgid "You are poked/prodded/etc. in a post" -msgstr "Vous avez été sollicité dans une publication" - -#: mod/settings.php:1268 -msgid "Activate desktop notifications" -msgstr "Activer les notifications de bureau" - -#: mod/settings.php:1268 -msgid "Show desktop popup on new notifications" -msgstr "Afficher dans des pops-ups les nouvelles notifications" - -#: mod/settings.php:1270 -msgid "Text-only notification emails" -msgstr "Courriels de notification en format texte" - -#: mod/settings.php:1272 -msgid "Send text only notification emails, without the html part" -msgstr "Envoyer le texte des courriels de notification, sans la composante html" - -#: mod/settings.php:1274 -msgid "Advanced Account/Page Type Settings" -msgstr "Paramètres avancés de compte/page" - -#: mod/settings.php:1275 -msgid "Change the behaviour of this account for special situations" -msgstr "Modifier le comportement de ce compte dans certaines situations" - -#: mod/settings.php:1278 -msgid "Relocate" -msgstr "Relocaliser" - -#: mod/settings.php:1279 -msgid "" -"If you have moved this profile from another server, and some of your " -"contacts don't receive your updates, try pushing this button." -msgstr "Si vous avez migré ce profil depuis un autre serveur et que vos contacts ne reçoivent plus vos mises à jour, essayez ce bouton." - -#: mod/settings.php:1280 -msgid "Resend relocate message to contacts" -msgstr "Renvoyer un message de relocalisation aux contacts." - -#: mod/dfrn_request.php:95 -msgid "This introduction has already been accepted." -msgstr "Cette introduction a déjà été acceptée." - -#: mod/dfrn_request.php:120 mod/dfrn_request.php:519 -msgid "Profile location is not valid or does not contain profile information." -msgstr "L'emplacement du profil est invalide ou ne contient pas de profil valide." - -#: mod/dfrn_request.php:125 mod/dfrn_request.php:524 -msgid "Warning: profile location has no identifiable owner name." -msgstr "Attention: l'emplacement du profil n'a pas de nom identifiable." - -#: mod/dfrn_request.php:127 mod/dfrn_request.php:526 -msgid "Warning: profile location has no profile photo." -msgstr "Attention: l'emplacement du profil n'a pas de photo de profil." - -#: mod/dfrn_request.php:130 mod/dfrn_request.php:529 -#, 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 paramètre requis n'a pas été trouvé à l'endroit indiqué" -msgstr[1] "%d paramètres requis n'ont pas été trouvés à l'endroit indiqué" - -#: mod/dfrn_request.php:173 -msgid "Introduction complete." -msgstr "Phase d'introduction achevée." - -#: mod/dfrn_request.php:215 -msgid "Unrecoverable protocol error." -msgstr "Erreur de protocole non-récupérable." - -#: mod/dfrn_request.php:243 -msgid "Profile unavailable." -msgstr "Profil indisponible." - -#: mod/dfrn_request.php:268 -#, php-format -msgid "%s has received too many connection requests today." -msgstr "%s a reçu trop de demandes d'introduction aujourd'hui." - -#: mod/dfrn_request.php:269 -msgid "Spam protection measures have been invoked." -msgstr "Des mesures de protection contre le spam ont été déclenchées." - -#: mod/dfrn_request.php:270 -msgid "Friends are advised to please try again in 24 hours." -msgstr "Les relations sont encouragées à attendre 24 heures pour recommencer." - -#: mod/dfrn_request.php:332 -msgid "Invalid locator" -msgstr "Localisateur invalide" - -#: mod/dfrn_request.php:341 -msgid "Invalid email address." -msgstr "Adresse courriel invalide." - -#: mod/dfrn_request.php:368 -msgid "This account has not been configured for email. Request failed." -msgstr "Ce compte n'a pas été configuré pour les échanges de courriel. Requête avortée." - -#: mod/dfrn_request.php:464 -msgid "Unable to resolve your name at the provided location." -msgstr "Impossible de résoudre votre nom à l'emplacement fourni." - -#: mod/dfrn_request.php:477 -msgid "You have already introduced yourself here." -msgstr "Vous vous êtes déjà présenté ici." - -#: mod/dfrn_request.php:481 -#, php-format -msgid "Apparently you are already friends with %s." -msgstr "Il semblerait que vous soyez déjà ami avec %s." - -#: mod/dfrn_request.php:502 -msgid "Invalid profile URL." -msgstr "URL de profil invalide." - -#: mod/dfrn_request.php:508 include/follow.php:72 -msgid "Disallowed profile URL." -msgstr "URL de profil interdite." - -#: mod/dfrn_request.php:599 -msgid "Your introduction has been sent." -msgstr "Votre introduction a été envoyée." - -#: mod/dfrn_request.php:652 -msgid "Please login to confirm introduction." -msgstr "Connectez-vous pour confirmer l'introduction." - -#: mod/dfrn_request.php:662 -msgid "" -"Incorrect identity currently logged in. Please login to " -"this profile." -msgstr "Identité incorrecte actuellement connectée. Merci de vous connecter à ce profil." - -#: mod/dfrn_request.php:676 mod/dfrn_request.php:693 -msgid "Confirm" -msgstr "Confirmer" - -#: mod/dfrn_request.php:688 -msgid "Hide this contact" -msgstr "Cacher ce contact" - -#: mod/dfrn_request.php:691 -#, php-format -msgid "Welcome home %s." -msgstr "Bienvenue chez vous, %s." - -#: mod/dfrn_request.php:692 -#, php-format -msgid "Please confirm your introduction/connection request to %s." -msgstr "Merci de confirmer votre demande d'introduction auprès de %s." - -#: mod/dfrn_request.php:821 -msgid "" -"Please enter your 'Identity Address' from one of the following supported " -"communications networks:" -msgstr "Merci d'entrer votre \"adresse d'identité\" de l'un des réseaux de communication suivant:" - -#: mod/dfrn_request.php:842 -#, 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 vous n’êtes pas encore membre du web social libre, suivez ce lien pour trouver un site Friendica ouvert au public et nous rejoindre dès aujourd’hui." - -#: mod/dfrn_request.php:847 -msgid "Friend/Connection Request" -msgstr "Requête de relation/amitié" - -#: mod/dfrn_request.php:848 -msgid "" -"Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, " -"testuser@identi.ca" -msgstr "Exemples : jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, testuser@identi.ca" - -#: mod/dfrn_request.php:856 include/contact_selectors.php:76 -msgid "Friendica" -msgstr "Friendica" - -#: mod/dfrn_request.php:857 -msgid "StatusNet/Federated Social Web" -msgstr "StatusNet/Federated Social Web" - -#: mod/dfrn_request.php:859 -#, php-format -msgid "" -" - please do not use this form. Instead, enter %s into your Diaspora search" -" bar." -msgstr " - merci de ne pas utiliser ce formulaire. Entrez plutôt %s dans votre barre de recherche Diaspora." - -#: mod/register.php:92 -msgid "" -"Registration successful. Please check your email for further instructions." -msgstr "Inscription réussie. Vérifiez vos emails pour la suite des instructions." - -#: mod/register.php:97 -#, php-format -msgid "" -"Failed to send email message. Here your accout details:
      login: %s
      " -"password: %s

      You can change your password after login." -msgstr "Impossible d’envoyer le courriel de confirmation. Voici vos informations de connexion:
      identifiant : %s
      mot de passe : %s

      Vous pourrez changer votre mot de passe une fois connecté." - -#: mod/register.php:104 -msgid "Registration successful." -msgstr "Inscription réussie." - -#: mod/register.php:110 -msgid "Your registration can not be processed." -msgstr "Votre inscription ne peut être traitée." - -#: mod/register.php:153 -msgid "Your registration is pending approval by the site owner." -msgstr "Votre inscription attend une validation du propriétaire du site." - -#: mod/register.php:191 mod/uimport.php:50 -msgid "" -"This site has exceeded the number of allowed daily account registrations. " -"Please try again tomorrow." -msgstr "Le nombre d'inscriptions quotidiennes pour ce site a été dépassé. Merci de réessayer demain." - -#: mod/register.php:219 -msgid "" -"You may (optionally) fill in this form via OpenID by supplying your OpenID " -"and clicking 'Register'." -msgstr "Vous pouvez (si vous le souhaitez) remplir ce formulaire via OpenID. Fournissez votre OpenID et cliquez \"S'inscrire\"." - -#: mod/register.php:220 -msgid "" -"If you are not familiar with OpenID, please leave that field blank and fill " -"in the rest of the items." -msgstr "Si vous n'êtes pas familier avec OpenID, laissez ce champ vide et remplissez le reste." - -#: mod/register.php:221 -msgid "Your OpenID (optional): " -msgstr "Votre OpenID (facultatif): " - -#: mod/register.php:235 -msgid "Include your profile in member directory?" -msgstr "Inclure votre profil dans l'annuaire des membres?" - -#: mod/register.php:259 -msgid "Membership on this site is by invitation only." -msgstr "L'inscription à ce site se fait uniquement sur invitation." - -#: mod/register.php:260 -msgid "Your invitation ID: " -msgstr "Votre ID d'invitation: " - -#: mod/register.php:271 -msgid "Your Full Name (e.g. Joe Smith, real or real-looking): " -msgstr "Votre nom complet (p. ex. Michel Dupont):" - -#: mod/register.php:272 -msgid "Your Email Address: " -msgstr "Votre adresse courriel: " - -#: mod/register.php:274 -msgid "Leave empty for an auto generated password." -msgstr "Laisser ce champ libre pour obtenir un mot de passe généré automatiquement." - -#: mod/register.php:276 -msgid "" -"Choose a profile nickname. This must begin with a text character. Your " -"profile address on this site will then be " -"'nickname@$sitename'." -msgstr "Choisissez un pseudo. Celui devra commencer par une lettre. L'adresse de votre profil en découlera sous la forme '<strong>pseudo@$sitename</strong>'." - -#: mod/register.php:277 -msgid "Choose a nickname: " -msgstr "Choisir un pseudo: " - -#: mod/register.php:280 boot.php:1271 include/nav.php:108 -msgid "Register" -msgstr "S'inscrire" - -#: mod/register.php:286 mod/uimport.php:64 -msgid "Import" -msgstr "Importer" - -#: mod/register.php:287 -msgid "Import your profile to this friendica instance" -msgstr "Importer votre profile dans cette instance de friendica" - -#: mod/maintenance.php:5 -msgid "System down for maintenance" -msgstr "Système indisponible pour cause de maintenance" - -#: mod/search.php:100 -msgid "Only logged in users are permitted to perform a search." -msgstr "Seuls les utilisateurs inscrits sont autorisés à lancer une recherche." - -#: mod/search.php:124 -msgid "Too Many Requests" -msgstr "Trop de requêtes" - -#: mod/search.php:125 -msgid "Only one search per minute is permitted for not logged in users." -msgstr "Une seule recherche par minute pour les utilisateurs qui ne sont pas connectés." - -#: mod/search.php:136 include/text.php:1003 include/nav.php:118 -msgid "Search" -msgstr "Recherche" - -#: mod/search.php:234 -#, php-format -msgid "Items tagged with: %s" -msgstr "" - -#: mod/search.php:236 -#, php-format -msgid "Search results for: %s" -msgstr "" - -#: mod/directory.php:149 include/identity.php:309 include/identity.php:609 -msgid "Status:" -msgstr "Statut:" - -#: mod/directory.php:151 include/identity.php:311 include/identity.php:620 -msgid "Homepage:" -msgstr "Page personnelle:" - -#: mod/directory.php:203 view/theme/diabook/theme.php:525 -#: view/theme/vier/theme.php:205 -msgid "Global Directory" -msgstr "Annuaire global" - -#: mod/directory.php:205 -msgid "Find on this site" -msgstr "Trouver sur ce site" - -#: mod/directory.php:207 -msgid "Finding:" -msgstr "" - -#: mod/directory.php:209 -msgid "Site Directory" -msgstr "Annuaire local" - -#: mod/directory.php:216 -msgid "No entries (some entries may be hidden)." -msgstr "Aucune entrée (certaines peuvent être cachées)." - -#: mod/delegate.php:101 -msgid "No potential page delegates located." -msgstr "Pas de délégataire potentiel." - -#: mod/delegate.php:130 include/nav.php:180 -msgid "Delegate Page Management" -msgstr "Déléguer la gestion de la page" - -#: mod/delegate.php:132 -msgid "" -"Delegates are able to manage all aspects of this account/page except for " -"basic account settings. Please do not delegate your personal account to " -"anybody that you do not trust completely." -msgstr "Les délégataires seront capables de gérer tous les aspects de ce compte ou de cette page, à l'exception des réglages de compte. Merci de ne pas déléguer votre compte principal à quelqu'un en qui vous n'avez pas une confiance absolue." - -#: mod/delegate.php:133 -msgid "Existing Page Managers" -msgstr "Gestionnaires existants" - -#: mod/delegate.php:135 -msgid "Existing Page Delegates" -msgstr "Délégataires existants" - -#: mod/delegate.php:137 -msgid "Potential Delegates" -msgstr "Délégataires potentiels" - -#: mod/delegate.php:140 -msgid "Add" -msgstr "Ajouter" - -#: mod/delegate.php:141 -msgid "No entries." -msgstr "Aucune entrée." - -#: mod/common.php:86 -msgid "No contacts in common." -msgstr "Pas de contacts en commun." - -#: mod/uexport.php:77 -msgid "Export account" -msgstr "Exporter le compte" - -#: mod/uexport.php:77 -msgid "" -"Export your account info and contacts. Use this to make a backup of your " -"account and/or to move it to another server." -msgstr "Exportez votre compte, vos infos et vos contacts. Vous pourrez utiliser le résultat comme sauvegarde et/ou pour le ré-importer sur un autre serveur." - -#: mod/uexport.php:78 -msgid "Export all" -msgstr "Tout exporter" - -#: mod/uexport.php:78 -msgid "" -"Export your accout info, contacts and all your items as json. Could be a " -"very big file, and could take a lot of time. Use this to make a full backup " -"of your account (photos are not exported)" -msgstr "Exportez votre compte, vos infos, vos contacts et toutes vos publications (en JSON). Le fichier résultant peut être extrêmement volumineux, et sa production peut durer longtemps. Vous pourrez l'utiliser pour faire une sauvegarde complète (à part les photos)." - -#: mod/mood.php:62 include/conversation.php:239 -#, php-format -msgid "%1$s is currently %2$s" -msgstr "%1$s est d'humeur %2$s" - -#: mod/mood.php:133 -msgid "Mood" -msgstr "Humeur" - -#: mod/mood.php:134 -msgid "Set your current mood and tell your friends" -msgstr "Spécifiez votre humeur du moment, et informez vos amis" - -#: mod/suggest.php:27 -msgid "Do you really want to delete this suggestion?" -msgstr "Voulez-vous vraiment supprimer cette suggestion ?" - -#: mod/suggest.php:71 -msgid "" -"No suggestions available. If this is a new site, please try again in 24 " -"hours." -msgstr "Aucune suggestion. Si ce site est récent, merci de recommencer dans 24h." - -#: mod/suggest.php:83 mod/suggest.php:101 -msgid "Ignore/Hide" -msgstr "Ignorer/cacher" - -#: mod/suggest.php:111 include/contact_widgets.php:35 -#: view/theme/diabook/theme.php:527 view/theme/vier/theme.php:207 -msgid "Friend Suggestions" -msgstr "Suggestions d'amitiés/contacts" - -#: mod/profiles.php:37 -msgid "Profile deleted." -msgstr "Profil supprimé." - -#: mod/profiles.php:55 mod/profiles.php:89 -msgid "Profile-" -msgstr "Profil-" - -#: mod/profiles.php:74 mod/profiles.php:117 -msgid "New profile created." -msgstr "Nouveau profil créé." - -#: mod/profiles.php:95 -msgid "Profile unavailable to clone." -msgstr "Ce profil ne peut être cloné." - -#: mod/profiles.php:189 -msgid "Profile Name is required." -msgstr "Le nom du profil est requis." - -#: mod/profiles.php:336 -msgid "Marital Status" -msgstr "Statut marital" - -#: mod/profiles.php:340 -msgid "Romantic Partner" -msgstr "Partenaire / conjoint" - -#: mod/profiles.php:344 mod/photos.php:1647 include/conversation.php:508 -msgid "Likes" -msgstr "Derniers \"J'aime\"" - -#: mod/profiles.php:348 mod/photos.php:1647 include/conversation.php:508 -msgid "Dislikes" -msgstr "Derniers \"Je n'aime pas\"" - -#: mod/profiles.php:352 -msgid "Work/Employment" -msgstr "Travail / Occupation" - -#: mod/profiles.php:355 -msgid "Religion" -msgstr "Religion" - -#: mod/profiles.php:359 -msgid "Political Views" -msgstr "Tendance politique" - -#: mod/profiles.php:363 -msgid "Gender" -msgstr "Sexe" - -#: mod/profiles.php:367 -msgid "Sexual Preference" -msgstr "Préférence sexuelle" - -#: mod/profiles.php:371 -msgid "Homepage" -msgstr "Site internet" - -#: mod/profiles.php:375 mod/profiles.php:708 -msgid "Interests" -msgstr "Centres d'intérêt" - -#: mod/profiles.php:379 -msgid "Address" -msgstr "Adresse" - -#: mod/profiles.php:386 mod/profiles.php:704 -msgid "Location" -msgstr "Localisation" - -#: mod/profiles.php:469 -msgid "Profile updated." -msgstr "Profil mis à jour." - -#: mod/profiles.php:565 -msgid " and " -msgstr " et " - -#: mod/profiles.php:573 -msgid "public profile" -msgstr "profil public" - -#: mod/profiles.php:576 -#, php-format -msgid "%1$s changed %2$s to “%3$s”" -msgstr "%1$s a changé %2$s en “%3$s”" - -#: mod/profiles.php:577 -#, php-format -msgid " - Visit %1$s's %2$s" -msgstr "Visiter le %2$s de %1$s" - -#: mod/profiles.php:580 -#, php-format -msgid "%1$s has an updated %2$s, changing %3$s." -msgstr "%1$s a mis à jour son %2$s, en modifiant %3$s." - -#: mod/profiles.php:655 -msgid "Hide contacts and friends:" -msgstr "Cacher mes contacts et amis :" - -#: mod/profiles.php:660 -msgid "Hide your contact/friend list from viewers of this profile?" -msgstr "Cacher ma liste d'amis / contacts des visiteurs de ce profil ?" - -#: mod/profiles.php:684 -msgid "Show more profile fields:" -msgstr "" - -#: mod/profiles.php:695 -msgid "Edit Profile Details" -msgstr "Éditer les détails du profil" - -#: mod/profiles.php:697 -msgid "Change Profile Photo" -msgstr "Changer la photo du profil" - -#: mod/profiles.php:698 -msgid "View this profile" -msgstr "Voir ce profil" - -#: mod/profiles.php:699 -msgid "Create a new profile using these settings" -msgstr "Créer un nouveau profil en utilisant ces réglages" - -#: mod/profiles.php:700 -msgid "Clone this profile" -msgstr "Cloner ce profil" - -#: mod/profiles.php:701 -msgid "Delete this profile" -msgstr "Supprimer ce profil" - -#: mod/profiles.php:702 -msgid "Basic information" -msgstr "Information de base" - -#: mod/profiles.php:703 -msgid "Profile picture" -msgstr "Image de profil" - -#: mod/profiles.php:705 -msgid "Preferences" -msgstr "Préférences" - -#: mod/profiles.php:706 -msgid "Status information" -msgstr "Information sur le statut" - -#: mod/profiles.php:707 -msgid "Additional information" -msgstr "Information additionnelle" - -#: mod/profiles.php:710 -msgid "Profile Name:" -msgstr "Nom du profil :" - -#: mod/profiles.php:711 -msgid "Your Full Name:" -msgstr "Votre nom complet :" - -#: mod/profiles.php:712 -msgid "Title/Description:" -msgstr "Titre / Description :" - -#: mod/profiles.php:713 -msgid "Your Gender:" -msgstr "Votre genre :" - -#: mod/profiles.php:714 -msgid "Birthday :" -msgstr "Anniversaire :" - -#: mod/profiles.php:715 -msgid "Street Address:" -msgstr "Adresse postale :" - -#: mod/profiles.php:716 -msgid "Locality/City:" -msgstr "Ville / Localité :" - -#: mod/profiles.php:717 -msgid "Postal/Zip Code:" -msgstr "Code postal :" - -#: mod/profiles.php:718 -msgid "Country:" -msgstr "Pays :" - -#: mod/profiles.php:719 -msgid "Region/State:" -msgstr "Région / État :" - -#: mod/profiles.php:720 -msgid " Marital Status:" -msgstr " Statut marital :" - -#: mod/profiles.php:721 -msgid "Who: (if applicable)" -msgstr "Qui : (si pertinent)" - -#: mod/profiles.php:722 -msgid "Examples: cathy123, Cathy Williams, cathy@example.com" -msgstr "Exemples: cathy123, Cathy Williams, cathy@example.com" - -#: mod/profiles.php:723 -msgid "Since [date]:" -msgstr "Depuis [date] :" - -#: mod/profiles.php:724 include/identity.php:618 -msgid "Sexual Preference:" -msgstr "Préférence sexuelle:" - -#: mod/profiles.php:725 -msgid "Homepage URL:" -msgstr "Page personnelle :" - -#: mod/profiles.php:726 include/identity.php:622 -msgid "Hometown:" -msgstr " Ville d'origine:" - -#: mod/profiles.php:727 include/identity.php:626 -msgid "Political Views:" -msgstr "Opinions politiques:" - -#: mod/profiles.php:728 -msgid "Religious Views:" -msgstr "Opinions religieuses :" - -#: mod/profiles.php:729 -msgid "Public Keywords:" -msgstr "Mots-clés publics :" - -#: mod/profiles.php:730 -msgid "Private Keywords:" -msgstr "Mots-clés privés :" - -#: mod/profiles.php:731 include/identity.php:634 -msgid "Likes:" -msgstr "J'aime :" - -#: mod/profiles.php:732 include/identity.php:636 -msgid "Dislikes:" -msgstr "Je n'aime pas :" - -#: mod/profiles.php:733 -msgid "Example: fishing photography software" -msgstr "Exemple : football dessin programmation" - -#: mod/profiles.php:734 -msgid "(Used for suggesting potential friends, can be seen by others)" -msgstr "(Utilisés pour vous suggérer des amis potentiels, peuvent être vus par autrui)" - -#: mod/profiles.php:735 -msgid "(Used for searching profiles, never shown to others)" -msgstr "(Utilisés pour rechercher dans les profils, ne seront jamais montrés à autrui)" - -#: mod/profiles.php:736 -msgid "Tell us about yourself..." -msgstr "Parlez-nous de vous..." - -#: mod/profiles.php:737 -msgid "Hobbies/Interests" -msgstr "Passe-temps / Centres d'intérêt" - -#: mod/profiles.php:738 -msgid "Contact information and Social Networks" -msgstr "Coordonnées / Réseaux sociaux" - -#: mod/profiles.php:739 -msgid "Musical interests" -msgstr "Goûts musicaux" - -#: mod/profiles.php:740 -msgid "Books, literature" -msgstr "Lectures" - -#: mod/profiles.php:741 -msgid "Television" -msgstr "Télévision" - -#: mod/profiles.php:742 -msgid "Film/dance/culture/entertainment" -msgstr "Cinéma / Danse / Culture / Divertissement" - -#: mod/profiles.php:743 -msgid "Love/romance" -msgstr "Amour / Romance" - -#: mod/profiles.php:744 -msgid "Work/employment" -msgstr "Activité professionnelle / Occupation" - -#: mod/profiles.php:745 -msgid "School/education" -msgstr "Études / Formation" - -#: mod/profiles.php:750 -msgid "" -"This is your public profile.
      It may " -"be visible to anybody using the internet." -msgstr "Ceci est votre profil public.
      Il peut être visible par n'importe quel utilisateur d'Internet." - -#: mod/profiles.php:760 +#: include/datetime.php:185 mod/profiles.php:721 msgid "Age: " msgstr "Age : " -#: mod/profiles.php:813 -msgid "Edit/Manage Profiles" -msgstr "Editer / gérer les profils" +#: include/datetime.php:187 +msgid "YYYY-MM-DD or MM-DD" +msgstr "AAAA-MM-JJ ou MM-JJ" -#: mod/profiles.php:814 include/identity.php:257 include/identity.php:283 -msgid "Change profile photo" -msgstr "Changer de photo de profil" +#: include/datetime.php:341 +msgid "never" +msgstr "jamais" -#: mod/profiles.php:815 include/identity.php:258 -msgid "Create New Profile" -msgstr "Créer un nouveau profil" +#: include/datetime.php:347 +msgid "less than a second ago" +msgstr "il y a moins d'une seconde" -#: mod/profiles.php:826 include/identity.php:268 -msgid "Profile Image" -msgstr "Image du profil" +#: include/datetime.php:357 +msgid "year" +msgstr "an" -#: mod/profiles.php:828 include/identity.php:271 -msgid "visible to everybody" -msgstr "visible par tous" +#: include/datetime.php:357 +msgid "years" +msgstr "ans" -#: mod/profiles.php:829 include/identity.php:272 -msgid "Edit visibility" -msgstr "Changer la visibilité" +#: include/datetime.php:358 include/event.php:480 mod/cal.php:287 +#: mod/events.php:389 +msgid "month" +msgstr "mois" -#: mod/editpost.php:17 mod/editpost.php:27 -msgid "Item not found" -msgstr "Élément introuvable" +#: include/datetime.php:358 +msgid "months" +msgstr "mois" -#: mod/editpost.php:40 -msgid "Edit post" -msgstr "Éditer la publication" +#: include/datetime.php:359 include/event.php:481 mod/cal.php:288 +#: mod/events.php:390 +msgid "week" +msgstr "semaine" -#: mod/editpost.php:111 include/conversation.php:1185 -msgid "upload photo" -msgstr "envoi image" +#: include/datetime.php:359 +msgid "weeks" +msgstr "semaines" -#: mod/editpost.php:112 include/conversation.php:1186 -msgid "Attach file" -msgstr "Joindre fichier" +#: include/datetime.php:360 include/event.php:482 mod/cal.php:289 +#: mod/events.php:391 +msgid "day" +msgstr "jour" -#: mod/editpost.php:113 include/conversation.php:1187 -msgid "attach file" -msgstr "ajout fichier" +#: include/datetime.php:360 +msgid "days" +msgstr "jours" -#: mod/editpost.php:115 include/conversation.php:1189 -msgid "web link" -msgstr "lien web" +#: include/datetime.php:361 +msgid "hour" +msgstr "heure" -#: mod/editpost.php:116 include/conversation.php:1190 -msgid "Insert video link" -msgstr "Insérer un lien video" +#: include/datetime.php:361 +msgid "hours" +msgstr "heures" -#: mod/editpost.php:117 include/conversation.php:1191 -msgid "video link" -msgstr "lien vidéo" +#: include/datetime.php:362 +msgid "minute" +msgstr "minute" -#: mod/editpost.php:118 include/conversation.php:1192 -msgid "Insert audio link" -msgstr "Insérer un lien audio" +#: include/datetime.php:362 +msgid "minutes" +msgstr "minutes" -#: mod/editpost.php:119 include/conversation.php:1193 -msgid "audio link" -msgstr "lien audio" +#: include/datetime.php:363 +msgid "second" +msgstr "seconde" -#: mod/editpost.php:120 include/conversation.php:1194 -msgid "Set your location" -msgstr "Définir votre localisation" +#: include/datetime.php:363 +msgid "seconds" +msgstr "secondes" -#: mod/editpost.php:121 include/conversation.php:1195 -msgid "set location" -msgstr "spéc. localisation" - -#: mod/editpost.php:122 include/conversation.php:1196 -msgid "Clear browser location" -msgstr "Effacer la localisation du navigateur" - -#: mod/editpost.php:123 include/conversation.php:1197 -msgid "clear location" -msgstr "supp. localisation" - -#: mod/editpost.php:125 include/conversation.php:1203 -msgid "Permission settings" -msgstr "Réglages des permissions" - -#: mod/editpost.php:133 include/acl_selectors.php:344 -msgid "CC: email addresses" -msgstr "CC: adresses de courriel" - -#: mod/editpost.php:134 include/conversation.php:1212 -msgid "Public post" -msgstr "Publication publique" - -#: mod/editpost.php:137 include/conversation.php:1199 -msgid "Set title" -msgstr "Définir un titre" - -#: mod/editpost.php:139 include/conversation.php:1201 -msgid "Categories (comma-separated list)" -msgstr "Catégories (séparées par des virgules)" - -#: mod/editpost.php:140 include/acl_selectors.php:345 -msgid "Example: bob@example.com, mary@example.com" -msgstr "Exemple: bob@exemple.com, mary@exemple.com" - -#: mod/friendica.php:59 -msgid "This is Friendica, version" -msgstr "Motorisé par Friendica version" - -#: mod/friendica.php:60 -msgid "running at web location" -msgstr "hébergé sur" - -#: mod/friendica.php:62 -msgid "" -"Please visit Friendica.com to learn " -"more about the Friendica project." -msgstr "Merci de vous rendre sur Friendica.com si vous souhaitez en savoir plus sur le projet Friendica." - -#: mod/friendica.php:64 -msgid "Bug reports and issues: please visit" -msgstr "Pour les rapports de bugs: rendez vous sur" - -#: mod/friendica.php:64 -msgid "the bugtracker at github" -msgstr "" - -#: mod/friendica.php:65 -msgid "" -"Suggestions, praise, donations, etc. - please email \"Info\" at Friendica - " -"dot com" -msgstr "Suggestions, remerciements, donations, etc. - écrivez à \"Info\" arob. Friendica - point com" - -#: mod/friendica.php:79 -msgid "Installed plugins/addons/apps:" -msgstr "Extensions/greffons/applications installées:" - -#: mod/friendica.php:92 -msgid "No installed plugins/addons/apps" -msgstr "Extensions/greffons/applications non installées:" - -#: mod/api.php:76 mod/api.php:102 -msgid "Authorize application connection" -msgstr "Autoriser l'application à se connecter" - -#: mod/api.php:77 -msgid "Return to your app and insert this Securty Code:" -msgstr "Retournez à votre application et saisissez ce Code de Sécurité : " - -#: mod/api.php:89 -msgid "Please login to continue." -msgstr "Merci de vous connecter pour continuer." - -#: mod/api.php:104 -msgid "" -"Do you want to authorize this application to access your posts and contacts," -" and/or create new posts for you?" -msgstr "Voulez-vous autoriser cette application à accéder à vos publications et contacts, et/ou à créer des billets à votre place?" - -#: mod/lockview.php:31 mod/lockview.php:39 -msgid "Remote privacy information not available." -msgstr "Informations de confidentialité indisponibles." - -#: mod/lockview.php:48 -msgid "Visible to:" -msgstr "Visible par:" - -#: mod/notes.php:46 include/identity.php:730 -msgid "Personal Notes" -msgstr "Notes personnelles" - -#: mod/localtime.php:12 include/bb2diaspora.php:148 include/event.php:13 -msgid "l F d, Y \\@ g:i A" -msgstr "l F d, Y \\@ g:i A" - -#: mod/localtime.php:24 -msgid "Time Conversion" -msgstr "Conversion temporelle" - -#: mod/localtime.php:26 -msgid "" -"Friendica provides this service for sharing events with other networks and " -"friends in unknown timezones." -msgstr "Friendica fournit ce service pour partager des événements avec d'autres réseaux et amis indépendament de leur fuseau horaire." - -#: mod/localtime.php:30 +#: include/datetime.php:372 #, php-format -msgid "UTC time: %s" -msgstr "Temps UTC : %s" +msgid "%1$d %2$s ago" +msgstr "%1$d %2$s auparavant" -#: mod/localtime.php:33 +#: include/datetime.php:578 #, php-format -msgid "Current timezone: %s" -msgstr "Zone de temps courante : %s" +msgid "%s's birthday" +msgstr "Anniversaire de %s's" -#: mod/localtime.php:36 +#: include/datetime.php:579 include/dfrn.php:1111 #, php-format -msgid "Converted localtime: %s" -msgstr "Temps local converti : %s" - -#: mod/localtime.php:41 -msgid "Please select your timezone:" -msgstr "Sélectionner votre zone :" - -#: mod/poke.php:191 -msgid "Poke/Prod" -msgstr "Solliciter" - -#: mod/poke.php:192 -msgid "poke, prod or do other things to somebody" -msgstr "solliciter (poke/...) quelqu'un" - -#: mod/poke.php:193 -msgid "Recipient" -msgstr "Destinataire" - -#: mod/poke.php:194 -msgid "Choose what you wish to do to recipient" -msgstr "Choisissez ce que vous voulez faire au destinataire" - -#: mod/poke.php:197 -msgid "Make this post private" -msgstr "Rendez ce message privé" - -#: mod/repair_ostatus.php:14 -msgid "Resubscribing to OStatus contacts" -msgstr "" - -#: mod/repair_ostatus.php:30 -msgid "Error" -msgstr "Erreur" - -#: mod/invite.php:27 -msgid "Total invitation limit exceeded." -msgstr "La limite d'invitation totale est éxédée." - -#: mod/invite.php:49 -#, php-format -msgid "%s : Not a valid email address." -msgstr "%s : Adresse de courriel invalide." - -#: mod/invite.php:73 -msgid "Please join us on Friendica" -msgstr "Rejoignez-nous sur Friendica" - -#: mod/invite.php:84 -msgid "Invitation limit exceeded. Please contact your site administrator." -msgstr "Limite d'invitation exédée. Veuillez contacter l'administrateur de votre site." - -#: mod/invite.php:89 -#, php-format -msgid "%s : Message delivery failed." -msgstr "%s : L'envoi du message a échoué." - -#: mod/invite.php:93 -#, php-format -msgid "%d message sent." -msgid_plural "%d messages sent." -msgstr[0] "%d message envoyé." -msgstr[1] "%d messages envoyés." - -#: mod/invite.php:112 -msgid "You have no more invitations available" -msgstr "Vous n'avez plus d'invitations disponibles" - -#: mod/invite.php:120 -#, php-format -msgid "" -"Visit %s for a list of public sites that you can join. Friendica members on " -"other sites can all connect with each other, as well as with members of many" -" other social networks." -msgstr "Visitez %s pour une liste des sites publics que vous pouvez rejoindre. Les membres de Friendica appartenant à d'autres sites peuvent s'interconnecter, ainsi qu'avec les membres de plusieurs autres réseaux sociaux." - -#: mod/invite.php:122 -#, php-format -msgid "" -"To accept this invitation, please visit and register at %s or any other " -"public Friendica website." -msgstr "Pour accepter cette invitation, merci d'aller vous inscrire sur %s, ou n'importe quel autre site Friendica public." - -#: mod/invite.php:123 -#, php-format -msgid "" -"Friendica sites all inter-connect to create a huge privacy-enhanced social " -"web that is owned and controlled by its members. They can also connect with " -"many traditional social networks. See %s for a list of alternate Friendica " -"sites you can join." -msgstr "Les sites Friendica sont tous interconnectés pour créer un immense réseau social respectueux de la vie privée, possédé et contrôllé par ses membres. Ils peuvent également interagir avec plusieurs réseaux sociaux traditionnels. Voir %s pour une liste d'autres sites Friendica que vous pourriez rejoindre." - -#: mod/invite.php:126 -msgid "" -"Our apologies. This system is not currently configured to connect with other" -" public sites or invite members." -msgstr "Toutes nos excuses. Ce système n'est pas configuré pour se connecter à d'autres sites publics ou inviter de nouveaux membres." - -#: mod/invite.php:132 -msgid "Send invitations" -msgstr "Envoyer des invitations" - -#: mod/invite.php:133 -msgid "Enter email addresses, one per line:" -msgstr "Entrez les adresses email, une par ligne :" - -#: mod/invite.php:135 -msgid "" -"You are cordially invited to join me and other close friends on Friendica - " -"and help us to create a better social web." -msgstr "Vous êtes cordialement invité à me rejoindre sur Friendica, et nous aider ainsi à créer un meilleur web social." - -#: mod/invite.php:137 -msgid "You will need to supply this invitation code: $invite_code" -msgstr "Vous devrez fournir ce code d'invitation : $invite_code" - -#: mod/invite.php:137 -msgid "" -"Once you have registered, please connect with me via my profile page at:" -msgstr "Une fois inscrit, connectez-vous à la page de mon profil sur :" - -#: mod/invite.php:139 -msgid "" -"For more information about the Friendica project and why we feel it is " -"important, please visit http://friendica.com" -msgstr "Pour plus d'information sur le projet Friendica, et pourquoi nous croyons qu'il est important, merci de visiter http://friendica.com" - -#: mod/photos.php:99 include/identity.php:705 -msgid "Photo Albums" -msgstr "Albums photo" - -#: mod/photos.php:100 mod/photos.php:1899 -msgid "Recent Photos" -msgstr "Photos récentes" - -#: mod/photos.php:103 mod/photos.php:1320 mod/photos.php:1901 -msgid "Upload New Photos" -msgstr "Téléverser de nouvelles photos" - -#: mod/photos.php:181 -msgid "Contact information unavailable" -msgstr "Informations de contact indisponibles" - -#: mod/photos.php:202 -msgid "Album not found." -msgstr "Album introuvable." - -#: mod/photos.php:232 mod/photos.php:244 mod/photos.php:1262 -msgid "Delete Album" -msgstr "Effacer l'album" - -#: mod/photos.php:242 -msgid "Do you really want to delete this photo album and all its photos?" -msgstr "Voulez-vous vraiment supprimer cet album photo et toutes ses photos ?" - -#: mod/photos.php:322 mod/photos.php:333 mod/photos.php:1580 -msgid "Delete Photo" -msgstr "Effacer la photo" - -#: mod/photos.php:331 -msgid "Do you really want to delete this photo?" -msgstr "Voulez-vous vraiment supprimer cette photo ?" - -#: mod/photos.php:706 -#, php-format -msgid "%1$s was tagged in %2$s by %3$s" -msgstr "%1$s a été étiqueté dans %2$s par %3$s" - -#: mod/photos.php:706 -msgid "a photo" -msgstr "une photo" - -#: mod/photos.php:819 -msgid "Image file is empty." -msgstr "Fichier image vide." - -#: mod/photos.php:986 -msgid "No photos selected" -msgstr "Aucune photo sélectionnée" - -#: mod/photos.php:1147 -#, php-format -msgid "You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage." -msgstr "Vous avez utilisé %1$.2f Mo sur %2$.2f d'espace de stockage pour les photos." - -#: mod/photos.php:1182 -msgid "Upload Photos" -msgstr "Téléverser des photos" - -#: mod/photos.php:1186 mod/photos.php:1257 -msgid "New album name: " -msgstr "Nom du nouvel album: " - -#: mod/photos.php:1187 -msgid "or existing album name: " -msgstr "ou nom d'un album existant: " - -#: mod/photos.php:1188 -msgid "Do not show a status post for this upload" -msgstr "Ne pas publier de notice de statut pour cet envoi" - -#: mod/photos.php:1190 mod/photos.php:1575 include/acl_selectors.php:347 -msgid "Permissions" -msgstr "Permissions" - -#: mod/photos.php:1201 -msgid "Private Photo" -msgstr "Photo privée" - -#: mod/photos.php:1202 -msgid "Public Photo" -msgstr "Photo publique" - -#: mod/photos.php:1270 -msgid "Edit Album" -msgstr "Éditer l'album" - -#: mod/photos.php:1276 -msgid "Show Newest First" -msgstr "Plus récent d'abord" - -#: mod/photos.php:1278 -msgid "Show Oldest First" -msgstr "Plus ancien d'abord" - -#: mod/photos.php:1306 mod/photos.php:1884 -msgid "View Photo" -msgstr "Voir la photo" - -#: mod/photos.php:1353 -msgid "Permission denied. Access to this item may be restricted." -msgstr "Interdit. L'accès à cet élément peut avoir été restreint." - -#: mod/photos.php:1355 -msgid "Photo not available" -msgstr "Photo indisponible" - -#: mod/photos.php:1411 -msgid "View photo" -msgstr "Voir photo" - -#: mod/photos.php:1411 -msgid "Edit photo" -msgstr "Éditer la photo" - -#: mod/photos.php:1412 -msgid "Use as profile photo" -msgstr "Utiliser comme photo de profil" - -#: mod/photos.php:1437 -msgid "View Full Size" -msgstr "Voir en taille réelle" - -#: mod/photos.php:1523 -msgid "Tags: " -msgstr "Étiquettes:" - -#: mod/photos.php:1526 -msgid "[Remove any tag]" -msgstr "[Retirer toutes les étiquettes]" - -#: mod/photos.php:1566 -msgid "New album name" -msgstr "Nom du nouvel album" - -#: mod/photos.php:1567 -msgid "Caption" -msgstr "Titre" - -#: mod/photos.php:1568 -msgid "Add a Tag" -msgstr "Ajouter une étiquette" - -#: mod/photos.php:1568 -msgid "" -"Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping" -msgstr "Exemples: @bob, @Barbara_Jensen, @jim@example.com, #Californie, #vacances" - -#: mod/photos.php:1569 -msgid "Do not rotate" -msgstr "Pas de rotation" - -#: mod/photos.php:1570 -msgid "Rotate CW (right)" -msgstr "Tourner dans le sens des aiguilles d'une montre (vers la droite)" - -#: mod/photos.php:1571 -msgid "Rotate CCW (left)" -msgstr "Tourner dans le sens contraire des aiguilles d'une montre (vers la gauche)" - -#: mod/photos.php:1586 -msgid "Private photo" -msgstr "Photo privée" - -#: mod/photos.php:1587 -msgid "Public photo" -msgstr "Photo publique" - -#: mod/photos.php:1609 include/conversation.php:1183 -msgid "Share" -msgstr "Partager" - -#: mod/photos.php:1648 include/conversation.php:509 -#: include/conversation.php:1414 -msgid "Attending" -msgid_plural "Attending" -msgstr[0] "" -msgstr[1] "" - -#: mod/photos.php:1648 include/conversation.php:509 -msgid "Not attending" -msgstr "Ne participe pas" - -#: mod/photos.php:1648 include/conversation.php:509 -msgid "Might attend" -msgstr "Participera peut-être" - -#: mod/photos.php:1813 -msgid "Map" -msgstr "Carte" - -#: mod/p.php:9 -msgid "Not Extended" -msgstr "" - -#: mod/regmod.php:55 -msgid "Account approved." -msgstr "Inscription validée." - -#: mod/regmod.php:92 -#, php-format -msgid "Registration revoked for %s" -msgstr "Inscription révoquée pour %s" - -#: mod/regmod.php:104 -msgid "Please login." -msgstr "Merci de vous connecter." - -#: mod/uimport.php:66 -msgid "Move account" -msgstr "Migrer le compte" - -#: mod/uimport.php:67 -msgid "You can import an account from another Friendica server." -msgstr "Vous pouvez importer un compte d'un autre serveur Friendica." - -#: mod/uimport.php:68 -msgid "" -"You need to export your account from the old server and upload it here. We " -"will recreate your old account here with all your contacts. We will try also" -" to inform your friends that you moved here." -msgstr "Vous devez exporter votre compte à partir de l'ancien serveur et le téléverser ici. Nous recréerons votre ancien compte ici avec tous vos contacts. Nous tenterons également d'informer vos amis que vous avez déménagé ici." - -#: mod/uimport.php:69 -msgid "" -"This feature is experimental. We can't import contacts from the OStatus " -"network (GNU Social/Statusnet) or from Diaspora" -msgstr "" - -#: mod/uimport.php:70 -msgid "Account file" -msgstr "Fichier du compte" - -#: mod/uimport.php:70 -msgid "" -"To export your account, go to \"Settings->Export your personal data\" and " -"select \"Export account\"" -msgstr "Pour exporter votre compte, allez dans \"Paramètres> Exporter vos données personnelles\" et sélectionnez \"exportation de compte\"" - -#: mod/attach.php:8 -msgid "Item not available." -msgstr "Elément non disponible." - -#: mod/attach.php:20 -msgid "Item was not found." -msgstr "Element introuvable." - -#: boot.php:786 -msgid "Delete this item?" -msgstr "Effacer cet élément?" - -#: boot.php:789 -msgid "show fewer" -msgstr "montrer moins" - -#: boot.php:1163 -#, php-format -msgid "Update %s failed. See error logs." -msgstr "Mise-à-jour %s échouée. Voir les journaux d'erreur." - -#: boot.php:1270 -msgid "Create a New Account" -msgstr "Créer un nouveau compte" - -#: boot.php:1295 include/nav.php:72 -msgid "Logout" -msgstr "Se déconnecter" - -#: boot.php:1298 -msgid "Nickname or Email address: " -msgstr "Pseudo ou courriel: " - -#: boot.php:1299 -msgid "Password: " -msgstr "Mot de passe: " - -#: boot.php:1300 -msgid "Remember me" -msgstr "Se souvenir de moi" - -#: boot.php:1303 -msgid "Or login using OpenID: " -msgstr "Ou connectez-vous via OpenID: " - -#: boot.php:1309 -msgid "Forgot your password?" -msgstr "Mot de passe oublié?" - -#: boot.php:1312 -msgid "Website Terms of Service" -msgstr "Conditions d'utilisation du site internet" - -#: boot.php:1313 -msgid "terms of service" -msgstr "conditions d'utilisation" - -#: boot.php:1315 -msgid "Website Privacy Policy" -msgstr "Politique de confidentialité du site internet" - -#: boot.php:1316 -msgid "privacy policy" -msgstr "politique de confidentialité" - -#: object/Item.php:95 -msgid "This entry was edited" -msgstr "Cette entrée à été édité" - -#: object/Item.php:191 -msgid "I will attend" -msgstr "Je vais participer" - -#: object/Item.php:191 -msgid "I will not attend" -msgstr "Je ne vais pas participer" - -#: object/Item.php:191 -msgid "I might attend" -msgstr "Je vais peut-être participer" - -#: object/Item.php:230 -msgid "ignore thread" -msgstr "ignorer le fil" - -#: object/Item.php:231 -msgid "unignore thread" -msgstr "Ne plus ignorer le fil" - -#: object/Item.php:232 -msgid "toggle ignore status" -msgstr "Ignorer le statut" - -#: object/Item.php:345 include/conversation.php:687 -msgid "Categories:" -msgstr "Catégories:" - -#: object/Item.php:346 include/conversation.php:688 -msgid "Filed under:" -msgstr "Rangé sous:" - -#: object/Item.php:360 -msgid "via" -msgstr "via" - -#: include/dbstructure.php:26 -#, php-format -msgid "" -"\n" -"\t\t\tThe friendica developers released update %s recently,\n" -"\t\t\tbut when I tried to install it, something went terribly wrong.\n" -"\t\t\tThis needs to be fixed soon and I can't do it alone. Please contact a\n" -"\t\t\tfriendica developer if you can not help me on your own. My database might be invalid." -msgstr "\nLes développeurs de Friendica ont récemment publié la mise à jour %s, mais en tentant de l’installer, quelque chose s’est terriblement mal passé. Une réparation s’impose et je ne peux pas la faire tout seul. Contactez un développeur Friendica si vous ne pouvez pas corriger le problème vous-même. Il est possible que ma base de données soit corrompue." - -#: include/dbstructure.php:31 -#, php-format -msgid "" -"The error message is\n" -"[pre]%s[/pre]" -msgstr "Le message d’erreur est\n[pre]%s[/pre]" - -#: include/dbstructure.php:151 -msgid "Errors encountered creating database tables." -msgstr "Des erreurs ont été signalées lors de la création des tables." - -#: include/dbstructure.php:209 -msgid "Errors encountered performing database changes." -msgstr "Des erreurs sont survenues lors de la mise à jour de la base de données." - -#: include/auth.php:38 -msgid "Logged out." -msgstr "Déconnecté." - -#: include/auth.php:128 include/user.php:75 -msgid "" -"We encountered a problem while logging in with the OpenID you provided. " -"Please check the correct spelling of the ID." -msgstr "Nous avons eu un souci avec l'OpenID que vous avez fourni. merci de vérifier l'orthographe correcte de ce dernier." - -#: include/auth.php:128 include/user.php:75 -msgid "The error message was:" -msgstr "Le message d'erreur était :" +msgid "Happy Birthday %s" +msgstr "Joyeux anniversaire, %s !" #: include/contact_widgets.php:6 msgid "Add New Contact" @@ -6296,6 +142,11 @@ msgstr "Entrez son adresse ou sa localisation web" msgid "Example: bob@example.com, http://example.com/barbara" msgstr "Exemple: bob@example.com, http://example.com/barbara" +#: include/contact_widgets.php:10 include/identity.php:212 mod/match.php:87 +#: mod/allfriends.php:82 mod/suggest.php:101 mod/dirfind.php:201 +msgid "Connect" +msgstr "Relier" + #: include/contact_widgets.php:24 #, php-format msgid "%d invitation available" @@ -6311,12 +162,28 @@ msgstr "Trouver des personnes" msgid "Enter name or interest" msgstr "Entrez un nom ou un centre d'intérêt" +#: include/contact_widgets.php:32 include/Contact.php:324 +#: include/conversation.php:976 mod/match.php:72 mod/allfriends.php:66 +#: mod/follow.php:103 mod/suggest.php:83 mod/contacts.php:602 +#: mod/dirfind.php:204 +msgid "Connect/Follow" +msgstr "Connecter/Suivre" + #: include/contact_widgets.php:33 msgid "Examples: Robert Morgenstein, Fishing" msgstr "Exemples: Robert Morgenstein, Pêche" -#: include/contact_widgets.php:36 view/theme/diabook/theme.php:526 -#: view/theme/vier/theme.php:206 +#: include/contact_widgets.php:34 mod/directory.php:212 mod/contacts.php:796 +msgid "Find" +msgstr "Trouver" + +#: include/contact_widgets.php:35 mod/suggest.php:114 +#: view/theme/vier/theme.php:203 view/theme/diabook/theme.php:527 +msgid "Friend Suggestions" +msgstr "Suggestions d'amitiés/contacts" + +#: include/contact_widgets.php:36 view/theme/vier/theme.php:202 +#: view/theme/diabook/theme.php:526 msgid "Similar Interests" msgstr "Intérêts similaires" @@ -6324,8 +191,8 @@ msgstr "Intérêts similaires" msgid "Random Profile" msgstr "Profil au hasard" -#: include/contact_widgets.php:38 view/theme/diabook/theme.php:528 -#: view/theme/vier/theme.php:208 +#: include/contact_widgets.php:38 view/theme/vier/theme.php:204 +#: view/theme/diabook/theme.php:528 msgid "Invite Friends" msgstr "Inviter des amis" @@ -6337,7 +204,7 @@ msgstr "Réseaux" msgid "All Networks" msgstr "Tous réseaux" -#: include/contact_widgets.php:141 include/features.php:97 +#: include/contact_widgets.php:141 include/features.php:103 msgid "Saved Folders" msgstr "Dossiers sauvegardés" @@ -6356,553 +223,317 @@ msgid_plural "%d contacts in common" msgstr[0] "%d contact en commun" msgstr[1] "%d contacts en commun" -#: include/features.php:58 -msgid "General Features" -msgstr "Fonctions générales" +#: include/contact_widgets.php:242 include/ForumManager.php:119 +#: include/items.php:2122 mod/content.php:624 object/Item.php:432 +#: view/theme/vier/theme.php:260 boot.php:904 +msgid "show more" +msgstr "montrer plus" -#: include/features.php:60 -msgid "Multiple Profiles" -msgstr "Profils multiples" +#: include/enotify.php:24 +msgid "Friendica Notification" +msgstr "Notification Friendica" -#: include/features.php:60 -msgid "Ability to create multiple profiles" -msgstr "Possibilité de créer plusieurs profils" +#: include/enotify.php:27 +msgid "Thank You," +msgstr "Merci, " -#: include/features.php:61 -msgid "Photo Location" -msgstr "Lieu de prise de la photo" - -#: include/features.php:61 -msgid "" -"Photo metadata is normally stripped. This extracts the location (if present)" -" prior to stripping metadata and links it to a map." -msgstr "" - -#: include/features.php:66 -msgid "Post Composition Features" -msgstr "Caractéristiques de composition de publication" - -#: include/features.php:67 -msgid "Richtext Editor" -msgstr "Éditeur de texte enrichi" - -#: include/features.php:67 -msgid "Enable richtext editor" -msgstr "Activer l'éditeur de texte enrichi" - -#: include/features.php:68 -msgid "Post Preview" -msgstr "Aperçu de la publication" - -#: include/features.php:68 -msgid "Allow previewing posts and comments before publishing them" -msgstr "Permet la prévisualisation des publications et commentaires avant de les publier" - -#: include/features.php:69 -msgid "Auto-mention Forums" -msgstr "" - -#: include/features.php:69 -msgid "" -"Add/remove mention when a fourm page is selected/deselected in ACL window." -msgstr "" - -#: include/features.php:74 -msgid "Network Sidebar Widgets" -msgstr "Widgets réseau pour barre latérale" - -#: include/features.php:75 -msgid "Search by Date" -msgstr "Rechercher par Date" - -#: include/features.php:75 -msgid "Ability to select posts by date ranges" -msgstr "Capacité de sélectionner les publications par intervalles de dates" - -#: include/features.php:76 include/features.php:106 -msgid "List Forums" -msgstr "" - -#: include/features.php:76 -msgid "Enable widget to display the forums your are connected with" -msgstr "" - -#: include/features.php:77 -msgid "Group Filter" -msgstr "Filtre de groupe" - -#: include/features.php:77 -msgid "Enable widget to display Network posts only from selected group" -msgstr "Activer le widget d’affichage des publications du réseau seulement pour le groupe sélectionné" - -#: include/features.php:78 -msgid "Network Filter" -msgstr "Filtre de réseau" - -#: include/features.php:78 -msgid "Enable widget to display Network posts only from selected network" -msgstr "Activer le widget d’affichage des publications du réseau seulement pour le réseau sélectionné" - -#: include/features.php:79 -msgid "Save search terms for re-use" -msgstr "Sauvegarder la recherche pour une utilisation ultérieure" - -#: include/features.php:84 -msgid "Network Tabs" -msgstr "Onglets Réseau" - -#: include/features.php:85 -msgid "Network Personal Tab" -msgstr "Onglet Réseau Personnel" - -#: include/features.php:85 -msgid "Enable tab to display only Network posts that you've interacted on" -msgstr "Activer l'onglet pour afficher seulement les publications du réseau où vous avez interagit" - -#: include/features.php:86 -msgid "Network New Tab" -msgstr "Nouvel onglet réseaux" - -#: include/features.php:86 -msgid "Enable tab to display only new Network posts (from the last 12 hours)" -msgstr "Activer l'onglet pour afficher seulement les publications du réseau (dans les 12 dernières heures)" - -#: include/features.php:87 -msgid "Network Shared Links Tab" -msgstr "Onglet réseau partagé" - -#: include/features.php:87 -msgid "Enable tab to display only Network posts with links in them" -msgstr "Activer l'onglet pour afficher seulement les publications du réseau contenant des liens" - -#: include/features.php:92 -msgid "Post/Comment Tools" -msgstr "outils de publication/commentaire" - -#: include/features.php:93 -msgid "Multiple Deletion" -msgstr "Suppression multiple" - -#: include/features.php:93 -msgid "Select and delete multiple posts/comments at once" -msgstr "Sélectionner et supprimer plusieurs publications/commentaires à la fois" - -#: include/features.php:94 -msgid "Edit Sent Posts" -msgstr "Éditer les publications envoyées" - -#: include/features.php:94 -msgid "Edit and correct posts and comments after sending" -msgstr "Éditer et corriger les publications et commentaires après l'envoi" - -#: include/features.php:95 -msgid "Tagging" -msgstr "Étiquettage" - -#: include/features.php:95 -msgid "Ability to tag existing posts" -msgstr "Possibilité d'étiqueter les publications existantes" - -#: include/features.php:96 -msgid "Post Categories" -msgstr "Catégories des publications" - -#: include/features.php:96 -msgid "Add categories to your posts" -msgstr "Ajouter des catégories à vos publications" - -#: include/features.php:97 -msgid "Ability to file posts under folders" -msgstr "Possibilité d'afficher les publications sous les répertoires" - -#: include/features.php:98 -msgid "Dislike Posts" -msgstr "Publications non aimées" - -#: include/features.php:98 -msgid "Ability to dislike posts/comments" -msgstr "Possibilité de ne pas aimer les publications/commentaires" - -#: include/features.php:99 -msgid "Star Posts" -msgstr "Publications spéciales" - -#: include/features.php:99 -msgid "Ability to mark special posts with a star indicator" -msgstr "Possibilité de marquer les publications spéciales d'une étoile" - -#: include/features.php:100 -msgid "Mute Post Notifications" -msgstr "" - -#: include/features.php:100 -msgid "Ability to mute notifications for a thread" -msgstr "" - -#: include/features.php:105 -msgid "Advanced Profile Settings" -msgstr "" - -#: include/features.php:106 -msgid "Show visitors public community forums at the Advanced Profile Page" -msgstr "" - -#: include/follow.php:77 -msgid "Connect URL missing." -msgstr "URL de connexion manquante." - -#: include/follow.php:104 -msgid "" -"This site is not configured to allow communications with other networks." -msgstr "Ce site n'est pas configuré pour dialoguer avec d'autres réseaux." - -#: include/follow.php:105 include/follow.php:125 -msgid "No compatible communication protocols or feeds were discovered." -msgstr "Aucun protocole de communication ni aucun flux n'a pu être découvert." - -#: include/follow.php:123 -msgid "The profile address specified does not provide adequate information." -msgstr "L'adresse de profil indiquée ne fournit par les informations adéquates." - -#: include/follow.php:127 -msgid "An author or name was not found." -msgstr "Aucun auteur ou nom d'auteur n'a pu être trouvé." - -#: include/follow.php:129 -msgid "No browser URL could be matched to this address." -msgstr "Aucune URL de navigation ne correspond à cette adresse." - -#: include/follow.php:131 -msgid "" -"Unable to match @-style Identity Address with a known protocol or email " -"contact." -msgstr "Impossible de faire correspondre l'adresse d'identité en \"@\" avec un protocole connu ou un contact courriel." - -#: include/follow.php:132 -msgid "Use mailto: in front of address to force email check." -msgstr "Utilisez mailto: en face d'une adresse pour l'obliger à être reconnue comme courriel." - -#: include/follow.php:138 -msgid "" -"The profile address specified belongs to a network which has been disabled " -"on this site." -msgstr "L'adresse de profil spécifiée correspond à un réseau qui a été désactivé sur ce site." - -#: include/follow.php:148 -msgid "" -"Limited profile. This person will be unable to receive direct/personal " -"notifications from you." -msgstr "Profil limité. Cette personne ne sera pas capable de recevoir des notifications directes/personnelles de votre part." - -#: include/follow.php:249 -msgid "Unable to retrieve contact information." -msgstr "Impossible de récupérer les informations du contact." - -#: include/follow.php:302 -msgid "following" -msgstr "following" - -#: include/group.php:25 -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 groupe supprimé a été recréé. Les permissions existantes pourraient s'appliquer à ce groupe et aux futurs membres. Si ce n'est pas le comportement attendu, merci de re-créer un autre groupe sous un autre nom." - -#: include/group.php:209 -msgid "Default privacy group for new contacts" -msgstr "Paramètres de confidentialité par défaut pour les nouveaux contacts" - -#: include/group.php:239 -msgid "Everybody" -msgstr "Tout le monde" - -#: include/group.php:262 -msgid "edit" -msgstr "éditer" - -#: include/group.php:285 -msgid "Edit groups" -msgstr "Modifier les groupes" - -#: include/group.php:287 -msgid "Edit group" -msgstr "Editer groupe" - -#: include/group.php:288 -msgid "Create a new group" -msgstr "Créer un nouveau groupe" - -#: include/group.php:291 -msgid "Contacts not in any group" -msgstr "Contacts n'appartenant à aucun groupe" - -#: include/datetime.php:43 include/datetime.php:45 -msgid "Miscellaneous" -msgstr "Divers" - -#: include/datetime.php:141 -msgid "YYYY-MM-DD or MM-DD" -msgstr "AAAA-MM-JJ ou MM-JJ" - -#: include/datetime.php:271 -msgid "never" -msgstr "jamais" - -#: include/datetime.php:277 -msgid "less than a second ago" -msgstr "il y a moins d'une seconde" - -#: include/datetime.php:287 -msgid "year" -msgstr "an" - -#: include/datetime.php:287 -msgid "years" -msgstr "ans" - -#: include/datetime.php:288 -msgid "months" -msgstr "mois" - -#: include/datetime.php:289 -msgid "weeks" -msgstr "semaines" - -#: include/datetime.php:290 -msgid "days" -msgstr "jours" - -#: include/datetime.php:291 -msgid "hour" -msgstr "heure" - -#: include/datetime.php:291 -msgid "hours" -msgstr "heures" - -#: include/datetime.php:292 -msgid "minute" -msgstr "minute" - -#: include/datetime.php:292 -msgid "minutes" -msgstr "minutes" - -#: include/datetime.php:293 -msgid "second" -msgstr "seconde" - -#: include/datetime.php:293 -msgid "seconds" -msgstr "secondes" - -#: include/datetime.php:302 +#: include/enotify.php:30 #, php-format -msgid "%1$d %2$s ago" -msgstr "%1$d %2$s auparavant" +msgid "%s Administrator" +msgstr "L'administrateur de %s" -#: include/datetime.php:474 include/items.php:2473 +#: include/enotify.php:32 #, php-format -msgid "%s's birthday" -msgstr "Anniversaire de %s's" +msgid "%1$s, %2$s Administrator" +msgstr "%1$s,, l'administrateur de %2$s" -#: include/datetime.php:475 include/items.php:2474 +#: include/enotify.php:43 include/delivery.php:450 +msgid "noreply" +msgstr "noreply" + +#: include/enotify.php:70 #, php-format -msgid "Happy Birthday %s" -msgstr "Joyeux anniversaire, %s !" +msgid "%s " +msgstr "%s " -#: include/identity.php:44 -msgid "Requested account is not available." -msgstr "Le compte demandé n'est pas disponible." - -#: include/identity.php:97 include/identity.php:281 include/identity.php:661 -msgid "Edit profile" -msgstr "Editer le profil" - -#: include/identity.php:241 -msgid "Atom feed" -msgstr "Flux Atom" - -#: include/identity.php:246 -msgid "Message" -msgstr "Message" - -#: include/identity.php:252 include/nav.php:185 -msgid "Profiles" -msgstr "Profils" - -#: include/identity.php:252 -msgid "Manage/edit profiles" -msgstr "Gérer/éditer les profils" - -#: include/identity.php:421 include/identity.php:507 -msgid "g A l F d" -msgstr "g A | F d" - -#: include/identity.php:422 include/identity.php:508 -msgid "F d" -msgstr "F d" - -#: include/identity.php:467 include/identity.php:554 -msgid "[today]" -msgstr "[aujourd'hui]" - -#: include/identity.php:479 -msgid "Birthday Reminders" -msgstr "Rappels d'anniversaires" - -#: include/identity.php:480 -msgid "Birthdays this week:" -msgstr "Anniversaires cette semaine:" - -#: include/identity.php:541 -msgid "[No description]" -msgstr "[Sans description]" - -#: include/identity.php:565 -msgid "Event Reminders" -msgstr "Rappels d'événements" - -#: include/identity.php:566 -msgid "Events this week:" -msgstr "Evénements cette semaine :" - -#: include/identity.php:594 -msgid "j F, Y" -msgstr "j F, Y" - -#: include/identity.php:595 -msgid "j F" -msgstr "j F" - -#: include/identity.php:602 -msgid "Birthday:" -msgstr "Anniversaire:" - -#: include/identity.php:606 -msgid "Age:" -msgstr "Age:" - -#: include/identity.php:615 +#: include/enotify.php:83 #, php-format -msgid "for %1$d %2$s" -msgstr "depuis %1$d %2$s" +msgid "[Friendica:Notify] New mail received at %s" +msgstr "[Friendica:Notification] Nouveau courriel reçu sur %s" -#: include/identity.php:628 -msgid "Religion:" -msgstr "Religion:" - -#: include/identity.php:632 -msgid "Hobbies/Interests:" -msgstr "Passe-temps/Centres d'intérêt:" - -#: include/identity.php:639 -msgid "Contact information and Social Networks:" -msgstr "Coordonnées/Réseaux sociaux:" - -#: include/identity.php:641 -msgid "Musical interests:" -msgstr "Goûts musicaux:" - -#: include/identity.php:643 -msgid "Books, literature:" -msgstr "Lectures:" - -#: include/identity.php:645 -msgid "Television:" -msgstr "Télévision:" - -#: include/identity.php:647 -msgid "Film/dance/culture/entertainment:" -msgstr "Cinéma/Danse/Culture/Divertissement:" - -#: include/identity.php:649 -msgid "Love/Romance:" -msgstr "Amour/Romance:" - -#: include/identity.php:651 -msgid "Work/employment:" -msgstr "Activité professionnelle/Occupation:" - -#: include/identity.php:653 -msgid "School/education:" -msgstr "Études/Formation:" - -#: include/identity.php:657 -msgid "Forums:" -msgstr "Forums :" - -#: include/identity.php:710 include/identity.php:713 include/nav.php:78 -msgid "Videos" -msgstr "Vidéos" - -#: include/identity.php:725 include/nav.php:140 -msgid "Events and Calendar" -msgstr "Événements et agenda" - -#: include/identity.php:733 -msgid "Only You Can See This" -msgstr "Vous seul pouvez voir ça" - -#: include/acl_selectors.php:325 -msgid "Post to Email" -msgstr "Publier aux courriels" - -#: include/acl_selectors.php:330 +#: include/enotify.php:85 #, php-format -msgid "Connectors disabled, since \"%s\" is enabled." -msgstr "Les connecteurs sont désactivés parce que \"%s\" est activé." +msgid "%1$s sent you a new private message at %2$s." +msgstr "%1$s vous a envoyé un nouveau message privé sur %2$s." -#: include/acl_selectors.php:336 -msgid "Visible to everybody" -msgstr "Visible par tout le monde" +#: include/enotify.php:86 +#, php-format +msgid "%1$s sent you %2$s." +msgstr "%1$s vous a envoyé %2$s." -#: include/acl_selectors.php:337 view/theme/diabook/config.php:142 -#: view/theme/diabook/theme.php:621 view/theme/vier/config.php:103 -msgid "show" -msgstr "montrer" +#: include/enotify.php:86 +msgid "a private message" +msgstr "un message privé" -#: include/acl_selectors.php:338 view/theme/diabook/config.php:142 -#: view/theme/diabook/theme.php:621 view/theme/vier/config.php:103 -msgid "don't show" -msgstr "cacher" +#: include/enotify.php:88 +#, php-format +msgid "Please visit %s to view and/or reply to your private messages." +msgstr "Merci de visiter %s pour voir vos messages privés et/ou y répondre." -#: include/message.php:15 include/message.php:173 -msgid "[no subject]" -msgstr "[pas de sujet]" +#: include/enotify.php:134 +#, php-format +msgid "%1$s commented on [url=%2$s]a %3$s[/url]" +msgstr "%1$s a commenté sur [url=%2$s]un %3$s[/url]" -#: include/Contact.php:119 -msgid "stopped following" -msgstr "retiré de la liste de suivi" +#: include/enotify.php:141 +#, php-format +msgid "%1$s commented on [url=%2$s]%3$s's %4$s[/url]" +msgstr "%1$s a commenté sur [url=%2$s]le %4$s de %3$s[/url]" -#: include/Contact.php:350 include/conversation.php:911 -msgid "View Status" -msgstr "Voir les statuts" +#: include/enotify.php:149 +#, php-format +msgid "%1$s commented on [url=%2$s]your %3$s[/url]" +msgstr "%1$s commented on [url=%2$s]your %3$s[/url]" -#: include/Contact.php:352 include/conversation.php:913 -msgid "View Photos" -msgstr "Voir les photos" +#: include/enotify.php:159 +#, php-format +msgid "[Friendica:Notify] Comment to conversation #%1$d by %2$s" +msgstr "[Friendica:Notification] Commentaire de %2$s sur la conversation #%1$d" -#: include/Contact.php:353 include/conversation.php:914 -msgid "Network Posts" -msgstr "Publications du réseau" +#: include/enotify.php:161 +#, php-format +msgid "%s commented on an item/conversation you have been following." +msgstr "%s a commenté un élément que vous suivez." -#: include/Contact.php:354 include/conversation.php:915 -msgid "Edit Contact" -msgstr "Éditer le contact" +#: include/enotify.php:164 include/enotify.php:178 include/enotify.php:192 +#: include/enotify.php:206 include/enotify.php:224 include/enotify.php:238 +#, php-format +msgid "Please visit %s to view and/or reply to the conversation." +msgstr "Merci de visiter %s pour voir la conversation et/ou y répondre." -#: include/Contact.php:355 -msgid "Drop Contact" -msgstr "Supprimer le contact" +#: include/enotify.php:171 +#, php-format +msgid "[Friendica:Notify] %s posted to your profile wall" +msgstr "[Friendica:Notification] %s a posté sur votre mur de profil" -#: include/Contact.php:356 include/conversation.php:916 -msgid "Send PM" -msgstr "Message privé" +#: include/enotify.php:173 +#, php-format +msgid "%1$s posted to your profile wall at %2$s" +msgstr "%1$s a publié sur votre mur à %2$s" -#: include/Contact.php:357 include/conversation.php:920 -msgid "Poke" -msgstr "Sollicitations (pokes)" +#: include/enotify.php:174 +#, php-format +msgid "%1$s posted to [url=%2$s]your wall[/url]" +msgstr "%1$s a posté sur [url=%2$s]votre mur[/url]" + +#: include/enotify.php:185 +#, php-format +msgid "[Friendica:Notify] %s tagged you" +msgstr "[Friendica:Notification] %s vous a étiqueté" + +#: include/enotify.php:187 +#, php-format +msgid "%1$s tagged you at %2$s" +msgstr "%1$s vous a étiqueté sur %2$s" + +#: include/enotify.php:188 +#, php-format +msgid "%1$s [url=%2$s]tagged you[/url]." +msgstr "%1$s [url=%2$s]vous a étiqueté[/url]." + +#: include/enotify.php:199 +#, php-format +msgid "[Friendica:Notify] %s shared a new post" +msgstr "[Friendica:Notification] %s partage une nouvelle publication" + +#: include/enotify.php:201 +#, php-format +msgid "%1$s shared a new post at %2$s" +msgstr "%1$s a partagé une nouvelle publication sur %2$s" + +#: include/enotify.php:202 +#, php-format +msgid "%1$s [url=%2$s]shared a post[/url]." +msgstr "%1$s [url=%2$s]partage une publication[/url]." + +#: include/enotify.php:213 +#, php-format +msgid "[Friendica:Notify] %1$s poked you" +msgstr "[Friendica:Notify] %1$s vous a sollicité" + +#: include/enotify.php:215 +#, php-format +msgid "%1$s poked you at %2$s" +msgstr "%1$s vous a sollicité via %2$s" + +#: include/enotify.php:216 +#, php-format +msgid "%1$s [url=%2$s]poked you[/url]." +msgstr "%1$s vous a [url=%2$s]sollicité[/url]." + +#: include/enotify.php:231 +#, php-format +msgid "[Friendica:Notify] %s tagged your post" +msgstr "[Friendica:Notification] %s a étiqueté votre publication" + +#: include/enotify.php:233 +#, php-format +msgid "%1$s tagged your post at %2$s" +msgstr "%1$s a étiqueté votre publication sur %2$s" + +#: include/enotify.php:234 +#, php-format +msgid "%1$s tagged [url=%2$s]your post[/url]" +msgstr "%1$s a étiqueté [url=%2$s]votre publication[/url]" + +#: include/enotify.php:245 +msgid "[Friendica:Notify] Introduction received" +msgstr "[Friendica:Notification] Introduction reçue" + +#: include/enotify.php:247 +#, php-format +msgid "You've received an introduction from '%1$s' at %2$s" +msgstr "Vous avez reçu une introduction de '%1$s' sur %2$s" + +#: include/enotify.php:248 +#, php-format +msgid "You've received [url=%1$s]an introduction[/url] from %2$s." +msgstr "Vous avez reçu [url=%1$s]une introduction[/url] de %2$s." + +#: include/enotify.php:252 include/enotify.php:295 +#, php-format +msgid "You may visit their profile at %s" +msgstr "Vous pouvez visiter son profil sur %s" + +#: include/enotify.php:254 +#, php-format +msgid "Please visit %s to approve or reject the introduction." +msgstr "Merci de visiter %s pour approuver ou rejeter l'introduction." + +#: include/enotify.php:262 +msgid "[Friendica:Notify] A new person is sharing with you" +msgstr "[Notification Friendica] Une nouvelle personne partage avec vous" + +#: include/enotify.php:264 include/enotify.php:265 +#, php-format +msgid "%1$s is sharing with you at %2$s" +msgstr "%1$s partage avec vous sur %2$s" + +#: include/enotify.php:271 +msgid "[Friendica:Notify] You have a new follower" +msgstr "[Friendica:Notification] Vous avez un nouvel abonné" + +#: include/enotify.php:273 include/enotify.php:274 +#, php-format +msgid "You have a new follower at %2$s : %1$s" +msgstr "Vous avez un nouvel abonné à %2$s : %1$s" + +#: include/enotify.php:285 +msgid "[Friendica:Notify] Friend suggestion received" +msgstr "[Friendica:Notification] Nouvelle suggestion d'amitié" + +#: include/enotify.php:287 +#, php-format +msgid "You've received a friend suggestion from '%1$s' at %2$s" +msgstr "Vous avez reçu une suggestion de '%1$s' sur %2$s" + +#: include/enotify.php:288 +#, php-format +msgid "" +"You've received [url=%1$s]a friend suggestion[/url] for %2$s from %3$s." +msgstr "Vous avez reçu [url=%1$s]une suggestion[/url] de %3$s pour %2$s." + +#: include/enotify.php:293 +msgid "Name:" +msgstr "Nom :" + +#: include/enotify.php:294 +msgid "Photo:" +msgstr "Photo :" + +#: include/enotify.php:297 +#, php-format +msgid "Please visit %s to approve or reject the suggestion." +msgstr "Merci de visiter %s pour approuver ou rejeter la suggestion." + +#: include/enotify.php:305 include/enotify.php:319 +msgid "[Friendica:Notify] Connection accepted" +msgstr "[Friendica:Notification] Connexion acceptée" + +#: include/enotify.php:307 include/enotify.php:321 +#, php-format +msgid "'%1$s' has accepted your connection request at %2$s" +msgstr "'%1$s' a accepté votre demande de connexion à %2$s" + +#: include/enotify.php:308 include/enotify.php:322 +#, php-format +msgid "%2$s has accepted your [url=%1$s]connection request[/url]." +msgstr "%2$s a accepté votre [url=%1$s]demande de connexion[/url]." + +#: include/enotify.php:312 +msgid "" +"You are now mutual friends and may exchange status updates, photos, and " +"email without restriction." +msgstr "Vous êtes désormais mutuellement amis, et pouvez échanger des mises-à-jour d'état, des photos, et des messages sans restriction." + +#: include/enotify.php:314 +#, php-format +msgid "Please visit %s if you wish to make any changes to this relationship." +msgstr "Veuillez visiter %s si vous souhaitez modifier cette relation." + +#: include/enotify.php:326 +#, php-format +msgid "" +"'%1$s' has chosen to accept you a \"fan\", which restricts some forms of " +"communication - such as private messaging and some profile interactions. If " +"this is a celebrity or community page, these settings were applied " +"automatically." +msgstr "%1$s a choisi de vous accepter comme \"fan\", ce qui limite les moyens de communication - comme les messages privés et certaines interactions de profil. Si c'est une page de célébrité ou de communauté, ce réglage a été appliqué automatiquement." + +#: include/enotify.php:328 +#, php-format +msgid "" +"'%1$s' may choose to extend this into a two-way or more permissive " +"relationship in the future." +msgstr "%1$s peut choisir à l'avenir de rendre cette relation réciproque ou au moins plus permissive." + +#: include/enotify.php:330 +#, php-format +msgid "Please visit %s if you wish to make any changes to this relationship." +msgstr "Veuillez visiter %s si vous souhaitez modifier cette relation." + +#: include/enotify.php:340 +msgid "[Friendica System:Notify] registration request" +msgstr "[Système Friendica:Notification] demande d'inscription" + +#: include/enotify.php:342 +#, php-format +msgid "You've received a registration request from '%1$s' at %2$s" +msgstr "Vous avez reçu une demande d'inscription de %1$s sur %2$s" + +#: include/enotify.php:343 +#, php-format +msgid "You've received a [url=%1$s]registration request[/url] from %2$s." +msgstr "Vous avez reçu une [url=%1$s]demande de création de compte[/url] de %2$s." + +#: include/enotify.php:347 +#, php-format +msgid "Full Name:\t%1$s\\nSite Location:\t%2$s\\nLogin Name:\t%3$s (%4$s)" +msgstr "Nom complet :\t%1$s\\nAdresse :\t%2$s\\nIdentifiant :\t%3$s (%4$s)" + +#: include/enotify.php:350 +#, php-format +msgid "Please visit %s to approve or reject the request." +msgstr "Veuillez visiter %s pour approuver ou rejeter la demande." + +#: include/ForumManager.php:114 include/nav.php:130 include/text.php:1007 +#: view/theme/vier/theme.php:255 +msgid "Forums" +msgstr "Forums" + +#: include/ForumManager.php:116 view/theme/vier/theme.php:257 +msgid "External link to forum" +msgstr "Lien sortant vers le forum" #: include/security.php:22 msgid "Welcome " @@ -6922,890 +553,6 @@ msgid "" "form has been opened for too long (>3 hours) before submitting it." msgstr "Le jeton de sécurité du formulaire n'est pas correct. Ceci veut probablement dire que le formulaire est resté ouvert trop longtemps (plus de 3 heures) avant d'être validé." -#: include/conversation.php:147 -#, php-format -msgid "%1$s attends %2$s's %3$s" -msgstr "%1$s participe à %3$s de %2$s" - -#: include/conversation.php:150 -#, php-format -msgid "%1$s doesn't attend %2$s's %3$s" -msgstr "%1$s ne participe pas à %3$s de %2$s" - -#: include/conversation.php:153 -#, php-format -msgid "%1$s attends maybe %2$s's %3$s" -msgstr "%1$s participe peut-être à %3$s de %2$s" - -#: include/conversation.php:219 -#, php-format -msgid "%1$s poked %2$s" -msgstr "%1$s a sollicité %2$s" - -#: include/conversation.php:303 -msgid "post/item" -msgstr "publication/élément" - -#: include/conversation.php:304 -#, php-format -msgid "%1$s marked %2$s's %3$s as favorite" -msgstr "%1$s a marqué le %3$s de %2$s comme favori" - -#: include/conversation.php:792 -msgid "remove" -msgstr "enlever" - -#: include/conversation.php:796 -msgid "Delete Selected Items" -msgstr "Supprimer les éléments sélectionnés" - -#: include/conversation.php:910 -msgid "Follow Thread" -msgstr "Suivre le fil" - -#: include/conversation.php:1035 -#, php-format -msgid "%s likes this." -msgstr "%s aime ça." - -#: include/conversation.php:1038 -#, php-format -msgid "%s doesn't like this." -msgstr "%s n'aime pas ça." - -#: include/conversation.php:1041 -#, php-format -msgid "%s attends." -msgstr "%s participe" - -#: include/conversation.php:1044 -#, php-format -msgid "%s doesn't attend." -msgstr "%s ne participe pas" - -#: include/conversation.php:1047 -#, php-format -msgid "%s attends maybe." -msgstr "%s participe peut-être" - -#: include/conversation.php:1057 -msgid "and" -msgstr "et" - -#: include/conversation.php:1063 -#, php-format -msgid ", and %d other people" -msgstr ", et %d autres personnes" - -#: include/conversation.php:1072 -#, php-format -msgid "%2$d people like this" -msgstr "%2$d personnes aiment ça" - -#: include/conversation.php:1073 -#, php-format -msgid "%s like this." -msgstr "%s aime ça." - -#: include/conversation.php:1076 -#, php-format -msgid "%2$d people don't like this" -msgstr "%2$d personnes n'aiment pas ça" - -#: include/conversation.php:1077 -#, php-format -msgid "%s don't like this." -msgstr "%s n'aiment pas ça." - -#: include/conversation.php:1080 -#, php-format -msgid "%2$d people attend" -msgstr "" - -#: include/conversation.php:1081 -#, php-format -msgid "%s attend." -msgstr "%s participent." - -#: include/conversation.php:1084 -#, php-format -msgid "%2$d people don't attend" -msgstr "" - -#: include/conversation.php:1085 -#, php-format -msgid "%s don't attend." -msgstr "%s ne participent pas." - -#: include/conversation.php:1088 -#, php-format -msgid "%2$d people anttend maybe" -msgstr "" - -#: include/conversation.php:1089 -#, php-format -msgid "%s anttend maybe." -msgstr "%s participent peut-être." - -#: include/conversation.php:1128 include/conversation.php:1146 -msgid "Visible to everybody" -msgstr "Visible par tout le monde" - -#: include/conversation.php:1130 include/conversation.php:1148 -msgid "Please enter a video link/URL:" -msgstr "Entrez un lien/URL video :" - -#: include/conversation.php:1131 include/conversation.php:1149 -msgid "Please enter an audio link/URL:" -msgstr "Entrez un lien/URL audio :" - -#: include/conversation.php:1132 include/conversation.php:1150 -msgid "Tag term:" -msgstr "Terme d'étiquette:" - -#: include/conversation.php:1134 include/conversation.php:1152 -msgid "Where are you right now?" -msgstr "Où êtes-vous présentemment?" - -#: include/conversation.php:1135 -msgid "Delete item(s)?" -msgstr "Supprimer les élément(s) ?" - -#: include/conversation.php:1204 -msgid "permissions" -msgstr "permissions" - -#: include/conversation.php:1227 -msgid "Post to Groups" -msgstr "Publier aux groupes" - -#: include/conversation.php:1228 -msgid "Post to Contacts" -msgstr "Publier aux contacts" - -#: include/conversation.php:1229 -msgid "Private post" -msgstr "Message privé" - -#: include/conversation.php:1386 -msgid "View all" -msgstr "Voir tout" - -#: include/conversation.php:1408 -msgid "Like" -msgid_plural "Likes" -msgstr[0] "" -msgstr[1] "" - -#: include/conversation.php:1411 -msgid "Dislike" -msgid_plural "Dislikes" -msgstr[0] "" -msgstr[1] "" - -#: include/conversation.php:1417 -msgid "Not Attending" -msgid_plural "Not Attending" -msgstr[0] "" -msgstr[1] "" - -#: include/conversation.php:1420 include/profile_selectors.php:6 -msgid "Undecided" -msgid_plural "Undecided" -msgstr[0] "" -msgstr[1] "" - -#: include/forums.php:105 include/text.php:1015 include/nav.php:126 -#: view/theme/vier/theme.php:259 -msgid "Forums" -msgstr "Forums" - -#: include/forums.php:107 view/theme/vier/theme.php:261 -msgid "External link to forum" -msgstr "" - -#: include/network.php:967 -msgid "view full size" -msgstr "voir en pleine taille" - -#: include/text.php:303 -msgid "newer" -msgstr "Plus récent" - -#: include/text.php:305 -msgid "older" -msgstr "Plus ancien" - -#: include/text.php:310 -msgid "prev" -msgstr "précédent" - -#: include/text.php:312 -msgid "first" -msgstr "premier" - -#: include/text.php:344 -msgid "last" -msgstr "dernier" - -#: include/text.php:347 -msgid "next" -msgstr "suivant" - -#: include/text.php:402 -msgid "Loading more entries..." -msgstr "" - -#: include/text.php:403 -msgid "The end" -msgstr "" - -#: include/text.php:894 -msgid "No contacts" -msgstr "Aucun contact" - -#: include/text.php:909 -#, php-format -msgid "%d Contact" -msgid_plural "%d Contacts" -msgstr[0] "%d contact" -msgstr[1] "%d contacts" - -#: include/text.php:921 -msgid "View Contacts" -msgstr "Voir les contacts" - -#: include/text.php:1010 include/nav.php:121 -msgid "Full Text" -msgstr "" - -#: include/text.php:1011 include/nav.php:122 -msgid "Tags" -msgstr "" - -#: include/text.php:1066 -msgid "poke" -msgstr "titiller" - -#: include/text.php:1066 -msgid "poked" -msgstr "a titillé" - -#: include/text.php:1067 -msgid "ping" -msgstr "attirer l'attention" - -#: include/text.php:1067 -msgid "pinged" -msgstr "a attiré l'attention de" - -#: include/text.php:1068 -msgid "prod" -msgstr "aiguillonner" - -#: include/text.php:1068 -msgid "prodded" -msgstr "a aiguillonné" - -#: include/text.php:1069 -msgid "slap" -msgstr "gifler" - -#: include/text.php:1069 -msgid "slapped" -msgstr "a giflé" - -#: include/text.php:1070 -msgid "finger" -msgstr "tripoter" - -#: include/text.php:1070 -msgid "fingered" -msgstr "a tripoté" - -#: include/text.php:1071 -msgid "rebuff" -msgstr "rabrouer" - -#: include/text.php:1071 -msgid "rebuffed" -msgstr "a rabroué" - -#: include/text.php:1085 -msgid "happy" -msgstr "heureuse" - -#: include/text.php:1086 -msgid "sad" -msgstr "triste" - -#: include/text.php:1087 -msgid "mellow" -msgstr "suave" - -#: include/text.php:1088 -msgid "tired" -msgstr "fatiguée" - -#: include/text.php:1089 -msgid "perky" -msgstr "guillerette" - -#: include/text.php:1090 -msgid "angry" -msgstr "colérique" - -#: include/text.php:1091 -msgid "stupified" -msgstr "stupéfaite" - -#: include/text.php:1092 -msgid "puzzled" -msgstr "perplexe" - -#: include/text.php:1093 -msgid "interested" -msgstr "intéressée" - -#: include/text.php:1094 -msgid "bitter" -msgstr "amère" - -#: include/text.php:1095 -msgid "cheerful" -msgstr "entraînante" - -#: include/text.php:1096 -msgid "alive" -msgstr "vivante" - -#: include/text.php:1097 -msgid "annoyed" -msgstr "ennuyée" - -#: include/text.php:1098 -msgid "anxious" -msgstr "anxieuse" - -#: include/text.php:1099 -msgid "cranky" -msgstr "excentrique" - -#: include/text.php:1100 -msgid "disturbed" -msgstr "dérangée" - -#: include/text.php:1101 -msgid "frustrated" -msgstr "frustrée" - -#: include/text.php:1102 -msgid "motivated" -msgstr "motivée" - -#: include/text.php:1103 -msgid "relaxed" -msgstr "détendue" - -#: include/text.php:1104 -msgid "surprised" -msgstr "surprise" - -#: include/text.php:1497 -msgid "bytes" -msgstr "octets" - -#: include/text.php:1529 include/text.php:1541 -msgid "Click to open/close" -msgstr "Cliquer pour ouvrir/fermer" - -#: include/text.php:1715 -msgid "View on separate page" -msgstr "" - -#: include/text.php:1716 -msgid "view on separate page" -msgstr "" - -#: include/text.php:1995 -msgid "activity" -msgstr "activité" - -#: include/text.php:1998 -msgid "post" -msgstr "publication" - -#: include/text.php:2166 -msgid "Item filed" -msgstr "Élément classé" - -#: include/bbcode.php:483 include/bbcode.php:1143 include/bbcode.php:1144 -msgid "Image/photo" -msgstr "Image/photo" - -#: include/bbcode.php:581 -#, php-format -msgid "%2$s %3$s" -msgstr "" - -#: include/bbcode.php:615 -#, php-format -msgid "" -"%s wrote the following post" -msgstr "" - -#: include/bbcode.php:1103 include/bbcode.php:1123 -msgid "$1 wrote:" -msgstr "$1 a écrit:" - -#: include/bbcode.php:1152 include/bbcode.php:1153 -msgid "Encrypted content" -msgstr "Contenu chiffré" - -#: include/notifier.php:843 include/delivery.php:459 -msgid "(no subject)" -msgstr "(sans titre)" - -#: include/notifier.php:853 include/delivery.php:470 include/enotify.php:37 -msgid "noreply" -msgstr "noreply" - -#: include/dba_pdo.php:72 include/dba.php:55 -#, php-format -msgid "Cannot locate DNS info for database server '%s'" -msgstr "Impossible de localiser les informations DNS pour le serveur de base de données '%s'" - -#: include/contact_selectors.php:32 -msgid "Unknown | Not categorised" -msgstr "Inconnu | Non-classé" - -#: include/contact_selectors.php:33 -msgid "Block immediately" -msgstr "Bloquer immédiatement" - -#: include/contact_selectors.php:34 -msgid "Shady, spammer, self-marketer" -msgstr "Douteux, spammeur, accro à l'auto-promotion" - -#: include/contact_selectors.php:35 -msgid "Known to me, but no opinion" -msgstr "Connu de moi, mais sans opinion" - -#: include/contact_selectors.php:36 -msgid "OK, probably harmless" -msgstr "OK, probablement inoffensif" - -#: include/contact_selectors.php:37 -msgid "Reputable, has my trust" -msgstr "Réputé, a toute ma confiance" - -#: include/contact_selectors.php:60 -msgid "Weekly" -msgstr "Chaque semaine" - -#: include/contact_selectors.php:61 -msgid "Monthly" -msgstr "Chaque mois" - -#: include/contact_selectors.php:77 -msgid "OStatus" -msgstr "OStatus" - -#: include/contact_selectors.php:78 -msgid "RSS/Atom" -msgstr "RSS/Atom" - -#: include/contact_selectors.php:82 -msgid "Zot!" -msgstr "Zot!" - -#: include/contact_selectors.php:83 -msgid "LinkedIn" -msgstr "LinkedIn" - -#: include/contact_selectors.php:84 -msgid "XMPP/IM" -msgstr "XMPP/IM" - -#: include/contact_selectors.php:85 -msgid "MySpace" -msgstr "MySpace" - -#: include/contact_selectors.php:87 -msgid "Google+" -msgstr "Google+" - -#: include/contact_selectors.php:88 -msgid "pump.io" -msgstr "pump.io" - -#: include/contact_selectors.php:89 -msgid "Twitter" -msgstr "Twitter" - -#: include/contact_selectors.php:90 -msgid "Diaspora Connector" -msgstr "Connecteur Diaspora" - -#: include/contact_selectors.php:91 -msgid "GNU Social" -msgstr "" - -#: include/contact_selectors.php:92 -msgid "App.net" -msgstr "App.net" - -#: include/contact_selectors.php:103 -msgid "Redmatrix" -msgstr "" - -#: include/Scrape.php:610 -msgid " on Last.fm" -msgstr "sur Last.fm" - -#: include/bb2diaspora.php:154 include/event.php:30 include/event.php:48 -msgid "Starts:" -msgstr "Débute:" - -#: include/bb2diaspora.php:162 include/event.php:33 include/event.php:54 -msgid "Finishes:" -msgstr "Finit:" - -#: include/plugin.php:522 include/plugin.php:524 -msgid "Click here to upgrade." -msgstr "Cliquez ici pour mettre à jour." - -#: include/plugin.php:530 -msgid "This action exceeds the limits set by your subscription plan." -msgstr "Cette action dépasse les limites définies par votre abonnement." - -#: include/plugin.php:535 -msgid "This action is not available under your subscription plan." -msgstr "Cette action n'est pas disponible avec votre abonnement." - -#: include/nav.php:72 -msgid "End this session" -msgstr "Mettre fin à cette session" - -#: include/nav.php:75 include/nav.php:157 view/theme/diabook/theme.php:123 -msgid "Your posts and conversations" -msgstr "Vos publications et conversations" - -#: include/nav.php:76 view/theme/diabook/theme.php:124 -msgid "Your profile page" -msgstr "Votre page de profil" - -#: include/nav.php:77 view/theme/diabook/theme.php:126 -msgid "Your photos" -msgstr "Vos photos" - -#: include/nav.php:78 -msgid "Your videos" -msgstr "Vos vidéos" - -#: include/nav.php:79 view/theme/diabook/theme.php:127 -msgid "Your events" -msgstr "Vos événements" - -#: include/nav.php:80 view/theme/diabook/theme.php:128 -msgid "Personal notes" -msgstr "Notes personnelles" - -#: include/nav.php:80 -msgid "Your personal notes" -msgstr "Vos notes personnelles" - -#: include/nav.php:91 -msgid "Sign in" -msgstr "Se connecter" - -#: include/nav.php:104 -msgid "Home Page" -msgstr "Page d'accueil" - -#: include/nav.php:108 -msgid "Create an account" -msgstr "Créer un compte" - -#: include/nav.php:113 -msgid "Help and documentation" -msgstr "Aide et documentation" - -#: include/nav.php:116 -msgid "Apps" -msgstr "Applications" - -#: include/nav.php:116 -msgid "Addon applications, utilities, games" -msgstr "Applications supplémentaires, utilitaires, jeux" - -#: include/nav.php:118 -msgid "Search site content" -msgstr "Rechercher dans le contenu du site" - -#: include/nav.php:136 -msgid "Conversations on this site" -msgstr "Conversations ayant cours sur ce site" - -#: include/nav.php:138 -msgid "Conversations on the network" -msgstr "" - -#: include/nav.php:142 -msgid "Directory" -msgstr "Annuaire" - -#: include/nav.php:142 -msgid "People directory" -msgstr "Annuaire des utilisateurs" - -#: include/nav.php:144 -msgid "Information" -msgstr "Information" - -#: include/nav.php:144 -msgid "Information about this friendica instance" -msgstr "Information au sujet de cette instance de friendica" - -#: include/nav.php:154 -msgid "Conversations from your friends" -msgstr "Conversations de vos amis" - -#: include/nav.php:155 -msgid "Network Reset" -msgstr "Réinitialiser le réseau" - -#: include/nav.php:155 -msgid "Load Network page with no filters" -msgstr "Chargement des pages du réseau sans filtre" - -#: include/nav.php:162 -msgid "Friend Requests" -msgstr "Demande d'amitié" - -#: include/nav.php:166 -msgid "See all notifications" -msgstr "Voir toute notification" - -#: include/nav.php:167 -msgid "Mark all system notifications seen" -msgstr "Marquer toutes les notifications système comme 'vues'" - -#: include/nav.php:171 -msgid "Private mail" -msgstr "Messages privés" - -#: include/nav.php:172 -msgid "Inbox" -msgstr "Messages entrants" - -#: include/nav.php:173 -msgid "Outbox" -msgstr "Messages sortants" - -#: include/nav.php:177 -msgid "Manage" -msgstr "Gérer" - -#: include/nav.php:177 -msgid "Manage other pages" -msgstr "Gérer les autres pages" - -#: include/nav.php:182 -msgid "Account settings" -msgstr "Compte" - -#: include/nav.php:185 -msgid "Manage/Edit Profiles" -msgstr "Gérer/Éditer les profiles" - -#: include/nav.php:187 -msgid "Manage/edit friends and contacts" -msgstr "Gérer/éditer les amitiés et contacts" - -#: include/nav.php:194 -msgid "Site setup and configuration" -msgstr "Démarrage et configuration du site" - -#: include/nav.php:198 -msgid "Navigation" -msgstr "Navigation" - -#: include/nav.php:198 -msgid "Site map" -msgstr "Carte du site" - -#: include/api.php:345 include/api.php:356 include/api.php:465 -#: include/api.php:1184 include/api.php:1186 -msgid "User not found." -msgstr "Utilisateur non trouvé" - -#: include/api.php:832 -#, php-format -msgid "Daily posting limit of %d posts reached. The post was rejected." -msgstr "Le quota journalier de %d publications a été atteint. La publication a été rejetée." - -#: include/api.php:851 -#, php-format -msgid "Weekly posting limit of %d posts reached. The post was rejected." -msgstr "Le quota hebdomadaire de %d publications a été atteint. La publication a été rejetée." - -#: include/api.php:870 -#, php-format -msgid "Monthly posting limit of %d posts reached. The post was rejected." -msgstr "Le quota mensuel de %d publications a été atteint. La publication a été rejetée." - -#: include/api.php:1393 -msgid "There is no status with this id." -msgstr "Il n'y a pas de statut avec cet id." - -#: include/api.php:1467 -msgid "There is no conversation with this id." -msgstr "Il n'y a pas de conversation avec cet id." - -#: include/api.php:1746 -msgid "Invalid item." -msgstr "Item invalide." - -#: include/api.php:1756 -msgid "Invalid action. " -msgstr "Action invalide." - -#: include/api.php:1764 -msgid "DB error" -msgstr "" - -#: include/user.php:48 -msgid "An invitation is required." -msgstr "Une invitation est requise." - -#: include/user.php:53 -msgid "Invitation could not be verified." -msgstr "L'invitation fournie n'a pu être validée." - -#: include/user.php:61 -msgid "Invalid OpenID url" -msgstr "Adresse OpenID invalide" - -#: include/user.php:82 -msgid "Please enter the required information." -msgstr "Entrez les informations requises." - -#: include/user.php:96 -msgid "Please use a shorter name." -msgstr "Utilisez un nom plus court." - -#: include/user.php:98 -msgid "Name too short." -msgstr "Nom trop court." - -#: include/user.php:113 -msgid "That doesn't appear to be your full (First Last) name." -msgstr "Ceci ne semble pas être votre nom complet (Prénom Nom)." - -#: include/user.php:118 -msgid "Your email domain is not among those allowed on this site." -msgstr "Votre domaine de courriel n'est pas autorisé sur ce site." - -#: include/user.php:121 -msgid "Not a valid email address." -msgstr "Ceci n'est pas une adresse courriel valide." - -#: include/user.php:134 -msgid "Cannot use that email." -msgstr "Impossible d'utiliser ce courriel." - -#: include/user.php:140 -msgid "Your \"nickname\" can only contain \"a-z\", \"0-9\" and \"_\"." -msgstr "" - -#: include/user.php:147 include/user.php:245 -msgid "Nickname is already registered. Please choose another." -msgstr "Pseudo déjà utilisé. Merci d'en choisir un autre." - -#: include/user.php:157 -msgid "" -"Nickname was once registered here and may not be re-used. Please choose " -"another." -msgstr "Ce surnom a déjà été utilisé ici, et ne peut re-servir. Merci d'en choisir un autre." - -#: include/user.php:173 -msgid "SERIOUS ERROR: Generation of security keys failed." -msgstr "ERREUR SÉRIEUSE: La génération des clés de sécurité a échoué." - -#: include/user.php:231 -msgid "An error occurred during registration. Please try again." -msgstr "Une erreur est survenue lors de l'inscription. Merci de recommencer." - -#: include/user.php:256 view/theme/clean/config.php:56 -#: view/theme/duepuntozero/config.php:44 -msgid "default" -msgstr "défaut" - -#: include/user.php:266 -msgid "An error occurred creating your default profile. Please try again." -msgstr "Une erreur est survenue lors de la création de votre profil par défaut. Merci de recommencer." - -#: include/user.php:299 include/user.php:303 include/profile_selectors.php:42 -msgid "Friends" -msgstr "Amis" - -#: include/user.php:387 -#, php-format -msgid "" -"\n" -"\t\tDear %1$s,\n" -"\t\t\tThank you for registering at %2$s. Your account has been created.\n" -"\t" -msgstr "\n\t\tChère/Cher %1$s,\n\t\t\tMerci de vous être inscrit sur %2$s. Votre compte a bien été créé.\n\t" - -#: include/user.php:391 -#, php-format -msgid "" -"\n" -"\t\tThe login details are as follows:\n" -"\t\t\tSite Location:\t%3$s\n" -"\t\t\tLogin Name:\t%1$s\n" -"\t\t\tPassword:\t%5$s\n" -"\n" -"\t\tYou may change your password from your account \"Settings\" page after logging\n" -"\t\tin.\n" -"\n" -"\t\tPlease take a few moments to review the other account settings on that page.\n" -"\n" -"\t\tYou may also wish to add some basic information to your default profile\n" -"\t\t(on the \"Profiles\" page) so that other people can easily find you.\n" -"\n" -"\t\tWe recommend setting your full name, adding a profile photo,\n" -"\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n" -"\t\tperhaps what country you live in; if you do not wish to be more specific\n" -"\t\tthan that.\n" -"\n" -"\t\tWe fully respect your right to privacy, and none of these items are necessary.\n" -"\t\tIf you are new and do not know anybody here, they may help\n" -"\t\tyou to make some new and interesting friends.\n" -"\n" -"\n" -"\t\tThank you and welcome to %2$s." -msgstr "\n\t\tVoici vos informations de connexion :\n\t\t\tAdresse :\t%3$s\n\t\t\tIdentifiant :\t%1$s\n\t\t\tMot de passe :\t%5$s\n\n\t\tVous pourrez changer votre mot de passe dans les paramètres de votre compte une fois connecté.\n\n\t\tProfitez-en pour prendre le temps de passer en revue les autres paramètres de votre compte.\n\n\t\tVous pourrez aussi ajouter quelques informations élémentaires à votre profil par défaut (sur la page « Profils ») pour permettre à d’autres personnes de vous trouver facilement.\n\n\t\tNous recommandons de préciser votre nom complet, d’ajouter une photo et quelques mots-clefs (c’est très utile pour découvrir de nouveaux amis), et peut-être aussi d’indiquer au moins le pays dans lequel vous vivez, à défaut d’être plus précis.\n\n\t\tNous respectons pleinement votre droit à une vie privée, et vous n’avez aucune obligation de donner toutes ces informations. Mais si vous êtes nouveau et ne connaissez encore personne ici, cela peut vous aider à vous faire de nouveaux amis intéressants.\n\n\n\t\tMerci et bienvenu sur %2$s." - -#: include/diaspora.php:720 -msgid "Sharing notification from Diaspora network" -msgstr "Notification de partage du réseau Diaspora" - -#: include/diaspora.php:2607 -msgid "Attachments:" -msgstr "Pièces jointes : " - -#: include/items.php:4900 -msgid "Do you really want to delete this item?" -msgstr "Voulez-vous vraiment supprimer cet élément ?" - -#: include/items.php:5175 -msgid "Archives" -msgstr "Archives" - #: include/profile_selectors.php:6 msgid "Male" msgstr "Masculin" @@ -7858,6 +605,12 @@ msgstr "Non-spécifique" msgid "Other" msgstr "Autre" +#: include/profile_selectors.php:6 include/conversation.php:1475 +msgid "Undecided" +msgid_plural "Undecided" +msgstr[0] "" +msgstr[1] "" + #: include/profile_selectors.php:23 msgid "Males" msgstr "Hommes" @@ -7946,6 +699,10 @@ msgstr "Infidèle" msgid "Sex Addict" msgstr "Accro au sexe" +#: include/profile_selectors.php:42 include/user.php:299 include/user.php:303 +msgid "Friends" +msgstr "Amis" + #: include/profile_selectors.php:42 msgid "Friends/Benefits" msgstr "Amis par intérêt" @@ -8030,302 +787,1424 @@ msgstr "S'en désintéresse" msgid "Ask me" msgstr "Me demander" -#: include/enotify.php:18 -msgid "Friendica Notification" -msgstr "Notification Friendica" +#: include/bb2diaspora.php:148 include/event.php:16 mod/localtime.php:12 +msgid "l F d, Y \\@ g:i A" +msgstr "l F d, Y \\@ g:i A" -#: include/enotify.php:21 -msgid "Thank You," -msgstr "Merci, " +#: include/bb2diaspora.php:154 include/event.php:33 include/event.php:51 +msgid "Starts:" +msgstr "Débute:" -#: include/enotify.php:24 -#, php-format -msgid "%s Administrator" -msgstr "L'administrateur de %s" +#: include/bb2diaspora.php:162 include/event.php:36 include/event.php:57 +msgid "Finishes:" +msgstr "Finit:" -#: include/enotify.php:26 -#, php-format -msgid "%1$s, %2$s Administrator" -msgstr "" +#: include/bb2diaspora.php:170 include/event.php:39 include/event.php:63 +#: include/identity.php:329 mod/directory.php:145 mod/contacts.php:628 +#: mod/events.php:495 mod/notifications.php:232 +msgid "Location:" +msgstr "Localisation:" -#: include/enotify.php:68 -#, php-format -msgid "%s " -msgstr "%s " - -#: include/enotify.php:82 -#, php-format -msgid "[Friendica:Notify] New mail received at %s" -msgstr "[Friendica:Notification] Nouveau courriel reçu sur %s" - -#: include/enotify.php:84 -#, php-format -msgid "%1$s sent you a new private message at %2$s." -msgstr "%1$s vous a envoyé un nouveau message privé sur %2$s." - -#: include/enotify.php:85 -#, php-format -msgid "%1$s sent you %2$s." -msgstr "%1$s vous a envoyé %2$s." - -#: include/enotify.php:85 -msgid "a private message" -msgstr "un message privé" - -#: include/enotify.php:86 -#, php-format -msgid "Please visit %s to view and/or reply to your private messages." -msgstr "Merci de visiter %s pour voir vos messages privés et/ou y répondre." - -#: include/enotify.php:138 -#, php-format -msgid "%1$s commented on [url=%2$s]a %3$s[/url]" -msgstr "%1$s a commenté sur [url=%2$s]un %3$s[/url]" - -#: include/enotify.php:145 -#, php-format -msgid "%1$s commented on [url=%2$s]%3$s's %4$s[/url]" -msgstr "%1$s a commenté sur [url=%2$s]le %4$s de %3$s[/url]" - -#: include/enotify.php:153 -#, php-format -msgid "%1$s commented on [url=%2$s]your %3$s[/url]" -msgstr "%1$s commented on [url=%2$s]your %3$s[/url]" - -#: include/enotify.php:163 -#, php-format -msgid "[Friendica:Notify] Comment to conversation #%1$d by %2$s" -msgstr "[Friendica:Notification] Commentaire de %2$s sur la conversation #%1$d" - -#: include/enotify.php:164 -#, php-format -msgid "%s commented on an item/conversation you have been following." -msgstr "%s a commenté un élément que vous suivez." - -#: include/enotify.php:167 include/enotify.php:182 include/enotify.php:195 -#: include/enotify.php:208 include/enotify.php:226 include/enotify.php:239 -#, php-format -msgid "Please visit %s to view and/or reply to the conversation." -msgstr "Merci de visiter %s pour voir la conversation et/ou y répondre." - -#: include/enotify.php:174 -#, php-format -msgid "[Friendica:Notify] %s posted to your profile wall" -msgstr "[Friendica:Notification] %s a posté sur votre mur de profil" - -#: include/enotify.php:176 -#, php-format -msgid "%1$s posted to your profile wall at %2$s" -msgstr "%1$s a publié sur votre mur à %2$s" - -#: include/enotify.php:178 -#, php-format -msgid "%1$s posted to [url=%2$s]your wall[/url]" -msgstr "%1$s a posté sur [url=%2$s]votre mur[/url]" - -#: include/enotify.php:189 -#, php-format -msgid "[Friendica:Notify] %s tagged you" -msgstr "[Friendica:Notification] %s vous a étiqueté" - -#: include/enotify.php:190 -#, php-format -msgid "%1$s tagged you at %2$s" -msgstr "%1$s vous a étiqueté sur %2$s" - -#: include/enotify.php:191 -#, php-format -msgid "%1$s [url=%2$s]tagged you[/url]." -msgstr "%1$s [url=%2$s]vous a étiqueté[/url]." - -#: include/enotify.php:202 -#, php-format -msgid "[Friendica:Notify] %s shared a new post" -msgstr "[Friendica:Notification] %s partage une nouvelle publication" - -#: include/enotify.php:203 -#, php-format -msgid "%1$s shared a new post at %2$s" -msgstr "%1$s a partagé une nouvelle publication sur %2$s" - -#: include/enotify.php:204 -#, php-format -msgid "%1$s [url=%2$s]shared a post[/url]." -msgstr "%1$s [url=%2$s]partage une publication[/url]." - -#: include/enotify.php:216 -#, php-format -msgid "[Friendica:Notify] %1$s poked you" -msgstr "[Friendica:Notify] %1$s vous a sollicité" - -#: include/enotify.php:217 -#, php-format -msgid "%1$s poked you at %2$s" -msgstr "%1$s vous a sollicité via %2$s" - -#: include/enotify.php:218 -#, php-format -msgid "%1$s [url=%2$s]poked you[/url]." -msgstr "%1$s vous a [url=%2$s]sollicité[/url]." - -#: include/enotify.php:233 -#, php-format -msgid "[Friendica:Notify] %s tagged your post" -msgstr "[Friendica:Notification] %s a étiqueté votre publication" - -#: include/enotify.php:234 -#, php-format -msgid "%1$s tagged your post at %2$s" -msgstr "%1$s a étiqueté votre publication sur %2$s" - -#: include/enotify.php:235 -#, php-format -msgid "%1$s tagged [url=%2$s]your post[/url]" -msgstr "%1$s a étiqueté [url=%2$s]votre publication[/url]" - -#: include/enotify.php:246 -msgid "[Friendica:Notify] Introduction received" -msgstr "[Friendica:Notification] Introduction reçue" - -#: include/enotify.php:247 -#, php-format -msgid "You've received an introduction from '%1$s' at %2$s" -msgstr "Vous avez reçu une introduction de '%1$s' sur %2$s" - -#: include/enotify.php:248 -#, php-format -msgid "You've received [url=%1$s]an introduction[/url] from %2$s." -msgstr "Vous avez reçu [url=%1$s]une introduction[/url] de %2$s." - -#: include/enotify.php:251 include/enotify.php:293 -#, php-format -msgid "You may visit their profile at %s" -msgstr "Vous pouvez visiter son profil sur %s" - -#: include/enotify.php:253 -#, php-format -msgid "Please visit %s to approve or reject the introduction." -msgstr "Merci de visiter %s pour approuver ou rejeter l'introduction." - -#: include/enotify.php:261 -msgid "[Friendica:Notify] A new person is sharing with you" -msgstr "[Notification Friendica] Une nouvelle personne partage avec vous" - -#: include/enotify.php:262 include/enotify.php:263 -#, php-format -msgid "%1$s is sharing with you at %2$s" -msgstr "" - -#: include/enotify.php:269 -msgid "[Friendica:Notify] You have a new follower" -msgstr "" - -#: include/enotify.php:270 include/enotify.php:271 -#, php-format -msgid "You have a new follower at %2$s : %1$s" -msgstr "" - -#: include/enotify.php:284 -msgid "[Friendica:Notify] Friend suggestion received" -msgstr "[Friendica:Notification] Nouvelle suggestion d'amitié" - -#: include/enotify.php:285 -#, php-format -msgid "You've received a friend suggestion from '%1$s' at %2$s" -msgstr "Vous avez reçu une suggestion de '%1$s' sur %2$s" - -#: include/enotify.php:286 -#, php-format -msgid "" -"You've received [url=%1$s]a friend suggestion[/url] for %2$s from %3$s." -msgstr "Vous avez reçu [url=%1$s]une suggestion[/url] de %3$s pour %2$s." - -#: include/enotify.php:291 -msgid "Name:" -msgstr "Nom :" - -#: include/enotify.php:292 -msgid "Photo:" -msgstr "Photo :" - -#: include/enotify.php:295 -#, php-format -msgid "Please visit %s to approve or reject the suggestion." -msgstr "Merci de visiter %s pour approuver ou rejeter la suggestion." - -#: include/enotify.php:303 include/enotify.php:316 -msgid "[Friendica:Notify] Connection accepted" -msgstr "" - -#: include/enotify.php:304 include/enotify.php:317 -#, php-format -msgid "'%1$s' has accepted your connection request at %2$s" -msgstr "" - -#: include/enotify.php:305 include/enotify.php:318 -#, php-format -msgid "%2$s has accepted your [url=%1$s]connection request[/url]." -msgstr "" - -#: include/enotify.php:308 -msgid "" -"You are now mutual friends and may exchange status updates, photos, and email\n" -"\twithout restriction." -msgstr "" - -#: include/enotify.php:311 include/enotify.php:325 -#, php-format -msgid "Please visit %s if you wish to make any changes to this relationship." -msgstr "" - -#: include/enotify.php:321 -#, php-format -msgid "" -"'%1$s' has chosen to accept you a \"fan\", which restricts some forms of " -"communication - such as private messaging and some profile interactions. If " -"this is a celebrity or community page, these settings were applied " -"automatically." -msgstr "" - -#: include/enotify.php:323 -#, php-format -msgid "" -"'%1$s' may choose to extend this into a two-way or more permissive " -"relationship in the future. " -msgstr "" - -#: include/enotify.php:336 -msgid "[Friendica System:Notify] registration request" -msgstr "" - -#: include/enotify.php:337 -#, php-format -msgid "You've received a registration request from '%1$s' at %2$s" -msgstr "" - -#: include/enotify.php:338 -#, php-format -msgid "You've received a [url=%1$s]registration request[/url] from %2$s." -msgstr "Vous avez reçu une [url=%1$s]demande de création de compte[/url] de %2$s." - -#: include/enotify.php:341 -#, php-format -msgid "Full Name:\t%1$s\\nSite Location:\t%2$s\\nLogin Name:\t%3$s (%4$s)" -msgstr "Nom complet :\t%1$s\\nAdresse :\t%2$s\\nIdentifiant :\t%3$s (%4$s)" - -#: include/enotify.php:344 -#, php-format -msgid "Please visit %s to approve or reject the request." -msgstr "Veuillez visiter %s pour approuver ou rejeter la demande." - -#: include/oembed.php:220 +#: include/oembed.php:229 msgid "Embedded content" msgstr "Contenu incorporé" -#: include/oembed.php:229 +#: include/oembed.php:238 msgid "Embedding disabled" msgstr "Incorporation désactivée" +#: include/dba_pdo.php:72 include/dba.php:56 +#, php-format +msgid "Cannot locate DNS info for database server '%s'" +msgstr "Impossible de localiser les informations DNS pour le serveur de base de données '%s'" + +#: include/auth.php:45 +msgid "Logged out." +msgstr "Déconnecté." + +#: include/auth.php:116 include/auth.php:178 mod/openid.php:100 +msgid "Login failed." +msgstr "Échec de connexion." + +#: include/auth.php:132 include/user.php:75 +msgid "" +"We encountered a problem while logging in with the OpenID you provided. " +"Please check the correct spelling of the ID." +msgstr "Nous avons eu un souci avec l'OpenID que vous avez fourni. merci de vérifier l'orthographe correcte de ce dernier." + +#: include/auth.php:132 include/user.php:75 +msgid "The error message was:" +msgstr "Le message d'erreur était :" + +#: include/group.php:25 +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 groupe supprimé a été recréé. Les permissions existantes pourraient s'appliquer à ce groupe et aux futurs membres. Si ce n'est pas le comportement attendu, merci de re-créer un autre groupe sous un autre nom." + +#: include/group.php:209 +msgid "Default privacy group for new contacts" +msgstr "Paramètres de confidentialité par défaut pour les nouveaux contacts" + +#: include/group.php:242 +msgid "Everybody" +msgstr "Tout le monde" + +#: include/group.php:265 +msgid "edit" +msgstr "éditer" + +#: include/group.php:286 mod/newmember.php:61 +msgid "Groups" +msgstr "Groupes" + +#: include/group.php:288 +msgid "Edit groups" +msgstr "Modifier les groupes" + +#: include/group.php:290 +msgid "Edit group" +msgstr "Editer groupe" + +#: include/group.php:291 +msgid "Create a new group" +msgstr "Créer un nouveau groupe" + +#: include/group.php:292 mod/group.php:94 mod/group.php:178 +msgid "Group Name: " +msgstr "Nom du groupe: " + +#: include/group.php:294 +msgid "Contacts not in any group" +msgstr "Contacts n'appartenant à aucun groupe" + +#: include/group.php:296 mod/network.php:201 +msgid "add" +msgstr "ajouter" + +#: include/Photo.php:996 include/Photo.php:1011 include/Photo.php:1018 +#: include/Photo.php:1040 include/message.php:145 mod/wall_upload.php:218 +#: mod/wall_upload.php:232 mod/wall_upload.php:239 mod/item.php:472 +msgid "Wall Photos" +msgstr "Photos du mur" + +#: include/delivery.php:439 +msgid "(no subject)" +msgstr "(sans titre)" + +#: include/user.php:39 mod/settings.php:370 +msgid "Passwords do not match. Password unchanged." +msgstr "Les mots de passe ne correspondent pas. Aucun changement appliqué." + +#: include/user.php:48 +msgid "An invitation is required." +msgstr "Une invitation est requise." + +#: include/user.php:53 +msgid "Invitation could not be verified." +msgstr "L'invitation fournie n'a pu être validée." + +#: include/user.php:61 +msgid "Invalid OpenID url" +msgstr "Adresse OpenID invalide" + +#: include/user.php:82 +msgid "Please enter the required information." +msgstr "Entrez les informations requises." + +#: include/user.php:96 +msgid "Please use a shorter name." +msgstr "Utilisez un nom plus court." + +#: include/user.php:98 +msgid "Name too short." +msgstr "Nom trop court." + +#: include/user.php:113 +msgid "That doesn't appear to be your full (First Last) name." +msgstr "Ceci ne semble pas être votre nom complet (Prénom Nom)." + +#: include/user.php:118 +msgid "Your email domain is not among those allowed on this site." +msgstr "Votre domaine de courriel n'est pas autorisé sur ce site." + +#: include/user.php:121 +msgid "Not a valid email address." +msgstr "Ceci n'est pas une adresse courriel valide." + +#: include/user.php:134 +msgid "Cannot use that email." +msgstr "Impossible d'utiliser ce courriel." + +#: include/user.php:140 +msgid "Your \"nickname\" can only contain \"a-z\", \"0-9\" and \"_\"." +msgstr "Votre \"pseudonyme\" peut seulement contenir les caractères \"a-z\", \"0-9\" et \"_\"." + +#: include/user.php:147 include/user.php:245 +msgid "Nickname is already registered. Please choose another." +msgstr "Pseudo déjà utilisé. Merci d'en choisir un autre." + +#: include/user.php:157 +msgid "" +"Nickname was once registered here and may not be re-used. Please choose " +"another." +msgstr "Ce surnom a déjà été utilisé ici, et ne peut re-servir. Merci d'en choisir un autre." + +#: include/user.php:173 +msgid "SERIOUS ERROR: Generation of security keys failed." +msgstr "ERREUR SÉRIEUSE: La génération des clés de sécurité a échoué." + +#: include/user.php:231 +msgid "An error occurred during registration. Please try again." +msgstr "Une erreur est survenue lors de l'inscription. Merci de recommencer." + +#: include/user.php:256 view/theme/duepuntozero/config.php:44 +msgid "default" +msgstr "défaut" + +#: include/user.php:266 +msgid "An error occurred creating your default profile. Please try again." +msgstr "Une erreur est survenue lors de la création de votre profil par défaut. Merci de recommencer." + +#: include/user.php:345 include/user.php:352 include/user.php:359 +#: mod/profile_photo.php:74 mod/profile_photo.php:81 mod/profile_photo.php:88 +#: mod/profile_photo.php:210 mod/profile_photo.php:302 +#: mod/profile_photo.php:311 mod/photos.php:79 mod/photos.php:193 +#: mod/photos.php:770 mod/photos.php:1233 mod/photos.php:1256 +#: mod/photos.php:1849 view/theme/diabook/theme.php:500 +msgid "Profile Photos" +msgstr "Photos du profil" + +#: include/user.php:387 +#, php-format +msgid "" +"\n" +"\t\tDear %1$s,\n" +"\t\t\tThank you for registering at %2$s. Your account has been created.\n" +"\t" +msgstr "\n\t\tChère/Cher %1$s,\n\t\t\tMerci de vous être inscrit sur %2$s. Votre compte a bien été créé.\n\t" + +#: include/user.php:391 +#, php-format +msgid "" +"\n" +"\t\tThe login details are as follows:\n" +"\t\t\tSite Location:\t%3$s\n" +"\t\t\tLogin Name:\t%1$s\n" +"\t\t\tPassword:\t%5$s\n" +"\n" +"\t\tYou may change your password from your account \"Settings\" page after logging\n" +"\t\tin.\n" +"\n" +"\t\tPlease take a few moments to review the other account settings on that page.\n" +"\n" +"\t\tYou may also wish to add some basic information to your default profile\n" +"\t\t(on the \"Profiles\" page) so that other people can easily find you.\n" +"\n" +"\t\tWe recommend setting your full name, adding a profile photo,\n" +"\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n" +"\t\tperhaps what country you live in; if you do not wish to be more specific\n" +"\t\tthan that.\n" +"\n" +"\t\tWe fully respect your right to privacy, and none of these items are necessary.\n" +"\t\tIf you are new and do not know anybody here, they may help\n" +"\t\tyou to make some new and interesting friends.\n" +"\n" +"\n" +"\t\tThank you and welcome to %2$s." +msgstr "\n\t\tVoici vos informations de connexion :\n\t\t\tAdresse :\t%3$s\n\t\t\tIdentifiant :\t%1$s\n\t\t\tMot de passe :\t%5$s\n\n\t\tVous pourrez changer votre mot de passe dans les paramètres de votre compte une fois connecté.\n\n\t\tProfitez-en pour prendre le temps de passer en revue les autres paramètres de votre compte.\n\n\t\tVous pourrez aussi ajouter quelques informations élémentaires à votre profil par défaut (sur la page « Profils ») pour permettre à d’autres personnes de vous trouver facilement.\n\n\t\tNous recommandons de préciser votre nom complet, d’ajouter une photo et quelques mots-clefs (c’est très utile pour découvrir de nouveaux amis), et peut-être aussi d’indiquer au moins le pays dans lequel vous vivez, à défaut d’être plus précis.\n\n\t\tNous respectons pleinement votre droit à une vie privée, et vous n’avez aucune obligation de donner toutes ces informations. Mais si vous êtes nouveau et ne connaissez encore personne ici, cela peut vous aider à vous faire de nouveaux amis intéressants.\n\n\n\t\tMerci et bienvenu sur %2$s." + +#: include/user.php:423 mod/admin.php:1182 +#, php-format +msgid "Registration details for %s" +msgstr "Détails d'inscription pour %s" + +#: include/features.php:63 +msgid "General Features" +msgstr "Fonctions générales" + +#: include/features.php:65 +msgid "Multiple Profiles" +msgstr "Profils multiples" + +#: include/features.php:65 +msgid "Ability to create multiple profiles" +msgstr "Possibilité de créer plusieurs profils" + +#: include/features.php:66 +msgid "Photo Location" +msgstr "Lieu de prise de la photo" + +#: include/features.php:66 +msgid "" +"Photo metadata is normally stripped. This extracts the location (if present)" +" prior to stripping metadata and links it to a map." +msgstr "Les métadonnées des photos sont normalement retirées. Ceci permet de sauver l'emplacement (si présent) et de positionner la photo sur une carte." + +#: include/features.php:67 +msgid "Export Public Calendar" +msgstr "Exporter le Calendrier Public" + +#: include/features.php:67 +msgid "Ability for visitors to download the public calendar" +msgstr "Les visiteurs peuvent télécharger le calendrier public" + +#: include/features.php:72 +msgid "Post Composition Features" +msgstr "Caractéristiques de composition de publication" + +#: include/features.php:73 +msgid "Richtext Editor" +msgstr "Éditeur de texte enrichi" + +#: include/features.php:73 +msgid "Enable richtext editor" +msgstr "Activer l'éditeur de texte enrichi" + +#: include/features.php:74 +msgid "Post Preview" +msgstr "Aperçu de la publication" + +#: include/features.php:74 +msgid "Allow previewing posts and comments before publishing them" +msgstr "Permet la prévisualisation des publications et commentaires avant de les publier" + +#: include/features.php:75 +msgid "Auto-mention Forums" +msgstr "" + +#: include/features.php:75 +msgid "" +"Add/remove mention when a fourm page is selected/deselected in ACL window." +msgstr "" + +#: include/features.php:80 +msgid "Network Sidebar Widgets" +msgstr "Widgets réseau pour barre latérale" + +#: include/features.php:81 +msgid "Search by Date" +msgstr "Rechercher par Date" + +#: include/features.php:81 +msgid "Ability to select posts by date ranges" +msgstr "Capacité de sélectionner les publications par intervalles de dates" + +#: include/features.php:82 include/features.php:112 +msgid "List Forums" +msgstr "Liste des forums" + +#: include/features.php:82 +msgid "Enable widget to display the forums your are connected with" +msgstr "Activer le widget pour afficher les forums auxquels vous êtes connecté" + +#: include/features.php:83 +msgid "Group Filter" +msgstr "Filtre de groupe" + +#: include/features.php:83 +msgid "Enable widget to display Network posts only from selected group" +msgstr "Activer le widget d’affichage des publications du réseau seulement pour le groupe sélectionné" + +#: include/features.php:84 +msgid "Network Filter" +msgstr "Filtre de réseau" + +#: include/features.php:84 +msgid "Enable widget to display Network posts only from selected network" +msgstr "Activer le widget d’affichage des publications du réseau seulement pour le réseau sélectionné" + +#: include/features.php:85 mod/search.php:34 mod/network.php:200 +msgid "Saved Searches" +msgstr "Recherches" + +#: include/features.php:85 +msgid "Save search terms for re-use" +msgstr "Sauvegarder la recherche pour une utilisation ultérieure" + +#: include/features.php:90 +msgid "Network Tabs" +msgstr "Onglets Réseau" + +#: include/features.php:91 +msgid "Network Personal Tab" +msgstr "Onglet Réseau Personnel" + +#: include/features.php:91 +msgid "Enable tab to display only Network posts that you've interacted on" +msgstr "Activer l'onglet pour afficher seulement les publications du réseau où vous avez interagit" + +#: include/features.php:92 +msgid "Network New Tab" +msgstr "Nouvel onglet réseaux" + +#: include/features.php:92 +msgid "Enable tab to display only new Network posts (from the last 12 hours)" +msgstr "Activer l'onglet pour afficher seulement les publications du réseau (dans les 12 dernières heures)" + +#: include/features.php:93 +msgid "Network Shared Links Tab" +msgstr "Onglet réseau partagé" + +#: include/features.php:93 +msgid "Enable tab to display only Network posts with links in them" +msgstr "Activer l'onglet pour afficher seulement les publications du réseau contenant des liens" + +#: include/features.php:98 +msgid "Post/Comment Tools" +msgstr "outils de publication/commentaire" + +#: include/features.php:99 +msgid "Multiple Deletion" +msgstr "Suppression multiple" + +#: include/features.php:99 +msgid "Select and delete multiple posts/comments at once" +msgstr "Sélectionner et supprimer plusieurs publications/commentaires à la fois" + +#: include/features.php:100 +msgid "Edit Sent Posts" +msgstr "Éditer les publications envoyées" + +#: include/features.php:100 +msgid "Edit and correct posts and comments after sending" +msgstr "Éditer et corriger les publications et commentaires après l'envoi" + +#: include/features.php:101 +msgid "Tagging" +msgstr "Étiquettage" + +#: include/features.php:101 +msgid "Ability to tag existing posts" +msgstr "Possibilité d'étiqueter les publications existantes" + +#: include/features.php:102 +msgid "Post Categories" +msgstr "Catégories des publications" + +#: include/features.php:102 +msgid "Add categories to your posts" +msgstr "Ajouter des catégories à vos publications" + +#: include/features.php:103 +msgid "Ability to file posts under folders" +msgstr "Possibilité d'afficher les publications sous les répertoires" + +#: include/features.php:104 +msgid "Dislike Posts" +msgstr "Publications non aimées" + +#: include/features.php:104 +msgid "Ability to dislike posts/comments" +msgstr "Possibilité de ne pas aimer les publications/commentaires" + +#: include/features.php:105 +msgid "Star Posts" +msgstr "Publications spéciales" + +#: include/features.php:105 +msgid "Ability to mark special posts with a star indicator" +msgstr "Possibilité de marquer les publications spéciales d'une étoile" + +#: include/features.php:106 +msgid "Mute Post Notifications" +msgstr "Ignorer les notifications du post" + +#: include/features.php:106 +msgid "Ability to mute notifications for a thread" +msgstr "Permettre d'ignorer les notifications d'un fil de discussion" + +#: include/features.php:111 +msgid "Advanced Profile Settings" +msgstr "Paramètres Avancés du Profil" + +#: include/features.php:112 +msgid "Show visitors public community forums at the Advanced Profile Page" +msgstr "Montrer les forums communautaires aux visiteurs sur la Page de profil avancé" + +#: include/nav.php:35 mod/navigation.php:19 +msgid "Nothing new here" +msgstr "Rien de neuf ici" + +#: include/nav.php:39 mod/navigation.php:23 +msgid "Clear notifications" +msgstr "Effacer les notifications" + +#: include/nav.php:40 include/text.php:997 +msgid "@name, !forum, #tags, content" +msgstr "@nom, !forum, #tags, contenu" + +#: include/nav.php:75 view/theme/frio/theme.php:243 boot.php:1704 +msgid "Logout" +msgstr "Se déconnecter" + +#: include/nav.php:75 view/theme/frio/theme.php:243 +msgid "End this session" +msgstr "Mettre fin à cette session" + +#: include/nav.php:78 include/identity.php:712 mod/contacts.php:635 +#: mod/contacts.php:831 view/theme/frio/theme.php:246 +msgid "Status" +msgstr "Statut" + +#: include/nav.php:78 include/nav.php:163 view/theme/frio/theme.php:246 +#: view/theme/diabook/theme.php:123 +msgid "Your posts and conversations" +msgstr "Vos publications et conversations" + +#: include/nav.php:79 include/identity.php:603 include/identity.php:689 +#: include/identity.php:720 mod/profperm.php:104 mod/newmember.php:32 +#: mod/contacts.php:637 mod/contacts.php:839 view/theme/frio/theme.php:247 +#: view/theme/diabook/theme.php:124 +msgid "Profile" +msgstr "Profil" + +#: include/nav.php:79 view/theme/frio/theme.php:247 +#: view/theme/diabook/theme.php:124 +msgid "Your profile page" +msgstr "Votre page de profil" + +#: include/nav.php:80 include/identity.php:728 mod/fbrowser.php:32 +#: view/theme/frio/theme.php:248 view/theme/diabook/theme.php:126 +msgid "Photos" +msgstr "Photos" + +#: include/nav.php:80 view/theme/frio/theme.php:248 +#: view/theme/diabook/theme.php:126 +msgid "Your photos" +msgstr "Vos photos" + +#: include/nav.php:81 include/identity.php:736 include/identity.php:739 +#: view/theme/frio/theme.php:249 +msgid "Videos" +msgstr "Vidéos" + +#: include/nav.php:81 view/theme/frio/theme.php:249 +msgid "Your videos" +msgstr "Vos vidéos" + +#: include/nav.php:82 include/nav.php:146 include/identity.php:748 +#: include/identity.php:759 mod/cal.php:278 mod/events.php:379 +#: view/theme/frio/theme.php:250 view/theme/frio/theme.php:254 +#: view/theme/diabook/theme.php:127 +msgid "Events" +msgstr "Événements" + +#: include/nav.php:82 view/theme/frio/theme.php:250 +#: view/theme/diabook/theme.php:127 +msgid "Your events" +msgstr "Vos événements" + +#: include/nav.php:83 view/theme/diabook/theme.php:128 +msgid "Personal notes" +msgstr "Notes personnelles" + +#: include/nav.php:83 +msgid "Your personal notes" +msgstr "Vos notes personnelles" + +#: include/nav.php:94 mod/bookmarklet.php:12 boot.php:1705 +msgid "Login" +msgstr "Connexion" + +#: include/nav.php:94 +msgid "Sign in" +msgstr "Se connecter" + +#: include/nav.php:107 include/nav.php:163 +#: include/NotificationsManager.php:174 view/theme/diabook/theme.php:123 +msgid "Home" +msgstr "Profil" + +#: include/nav.php:107 +msgid "Home Page" +msgstr "Page d'accueil" + +#: include/nav.php:111 mod/register.php:280 boot.php:1680 +msgid "Register" +msgstr "S'inscrire" + +#: include/nav.php:111 +msgid "Create an account" +msgstr "Créer un compte" + +#: include/nav.php:116 mod/help.php:47 view/theme/vier/theme.php:298 +msgid "Help" +msgstr "Aide" + +#: include/nav.php:116 +msgid "Help and documentation" +msgstr "Aide et documentation" + +#: include/nav.php:119 +msgid "Apps" +msgstr "Applications" + +#: include/nav.php:119 +msgid "Addon applications, utilities, games" +msgstr "Applications supplémentaires, utilitaires, jeux" + +#: include/nav.php:122 include/text.php:994 mod/search.php:149 +msgid "Search" +msgstr "Recherche" + +#: include/nav.php:122 +msgid "Search site content" +msgstr "Rechercher dans le contenu du site" + +#: include/nav.php:125 include/text.php:1002 +msgid "Full Text" +msgstr "Texte Entier" + +#: include/nav.php:126 include/text.php:1003 +msgid "Tags" +msgstr "Tags" + +#: include/nav.php:127 include/nav.php:193 include/text.php:1004 +#: include/identity.php:781 include/identity.php:784 mod/viewcontacts.php:116 +#: mod/contacts.php:790 mod/contacts.php:851 view/theme/frio/theme.php:257 +#: view/theme/diabook/theme.php:125 +msgid "Contacts" +msgstr "Contacts" + +#: include/nav.php:141 include/nav.php:143 mod/community.php:36 +#: view/theme/diabook/theme.php:129 +msgid "Community" +msgstr "Communauté" + +#: include/nav.php:141 +msgid "Conversations on this site" +msgstr "Conversations ayant cours sur ce site" + +#: include/nav.php:143 +msgid "Conversations on the network" +msgstr "Conversations sur le réseau" + +#: include/nav.php:146 include/identity.php:751 include/identity.php:762 +#: view/theme/frio/theme.php:254 +msgid "Events and Calendar" +msgstr "Événements et agenda" + +#: include/nav.php:148 +msgid "Directory" +msgstr "Annuaire" + +#: include/nav.php:148 +msgid "People directory" +msgstr "Annuaire des utilisateurs" + +#: include/nav.php:150 +msgid "Information" +msgstr "Information" + +#: include/nav.php:150 +msgid "Information about this friendica instance" +msgstr "Information au sujet de cette instance de friendica" + +#: include/nav.php:160 include/NotificationsManager.php:160 mod/admin.php:402 +#: view/theme/frio/theme.php:253 +msgid "Network" +msgstr "Réseau" + +#: include/nav.php:160 view/theme/frio/theme.php:253 +msgid "Conversations from your friends" +msgstr "Conversations de vos amis" + +#: include/nav.php:161 +msgid "Network Reset" +msgstr "Réinitialiser le réseau" + +#: include/nav.php:161 +msgid "Load Network page with no filters" +msgstr "Chargement des pages du réseau sans filtre" + +#: include/nav.php:168 include/NotificationsManager.php:181 +msgid "Introductions" +msgstr "Introductions" + +#: include/nav.php:168 +msgid "Friend Requests" +msgstr "Demande d'amitié" + +#: include/nav.php:171 mod/notifications.php:96 +msgid "Notifications" +msgstr "Notifications" + +#: include/nav.php:172 +msgid "See all notifications" +msgstr "Voir toute notification" + +#: include/nav.php:173 mod/settings.php:887 +msgid "Mark as seen" +msgstr "Marquer comme vu" + +#: include/nav.php:173 +msgid "Mark all system notifications seen" +msgstr "Marquer toutes les notifications système comme 'vues'" + +#: include/nav.php:177 mod/message.php:190 view/theme/frio/theme.php:255 +msgid "Messages" +msgstr "Messages" + +#: include/nav.php:177 view/theme/frio/theme.php:255 +msgid "Private mail" +msgstr "Messages privés" + +#: include/nav.php:178 +msgid "Inbox" +msgstr "Messages entrants" + +#: include/nav.php:179 +msgid "Outbox" +msgstr "Messages sortants" + +#: include/nav.php:180 mod/message.php:16 +msgid "New Message" +msgstr "Nouveau message" + +#: include/nav.php:183 +msgid "Manage" +msgstr "Gérer" + +#: include/nav.php:183 +msgid "Manage other pages" +msgstr "Gérer les autres pages" + +#: include/nav.php:186 mod/settings.php:81 +msgid "Delegations" +msgstr "Délégations" + +#: include/nav.php:186 mod/delegate.php:130 +msgid "Delegate Page Management" +msgstr "Déléguer la gestion de la page" + +#: include/nav.php:188 mod/newmember.php:22 mod/settings.php:111 +#: mod/admin.php:1502 mod/admin.php:1760 view/theme/frio/theme.php:256 +#: view/theme/diabook/theme.php:544 view/theme/diabook/theme.php:648 +msgid "Settings" +msgstr "Réglages" + +#: include/nav.php:188 view/theme/frio/theme.php:256 +msgid "Account settings" +msgstr "Compte" + +#: include/nav.php:191 include/identity.php:276 +msgid "Profiles" +msgstr "Profils" + +#: include/nav.php:191 +msgid "Manage/Edit Profiles" +msgstr "Gérer/Éditer les profiles" + +#: include/nav.php:193 view/theme/frio/theme.php:257 +msgid "Manage/edit friends and contacts" +msgstr "Gérer/éditer les amitiés et contacts" + +#: include/nav.php:200 mod/admin.php:186 +msgid "Admin" +msgstr "Admin" + +#: include/nav.php:200 +msgid "Site setup and configuration" +msgstr "Démarrage et configuration du site" + +#: include/nav.php:204 +msgid "Navigation" +msgstr "Navigation" + +#: include/nav.php:204 +msgid "Site map" +msgstr "Carte du site" + +#: include/contact_selectors.php:32 +msgid "Unknown | Not categorised" +msgstr "Inconnu | Non-classé" + +#: include/contact_selectors.php:33 +msgid "Block immediately" +msgstr "Bloquer immédiatement" + +#: include/contact_selectors.php:34 +msgid "Shady, spammer, self-marketer" +msgstr "Douteux, spammeur, accro à l'auto-promotion" + +#: include/contact_selectors.php:35 +msgid "Known to me, but no opinion" +msgstr "Connu de moi, mais sans opinion" + +#: include/contact_selectors.php:36 +msgid "OK, probably harmless" +msgstr "OK, probablement inoffensif" + +#: include/contact_selectors.php:37 +msgid "Reputable, has my trust" +msgstr "Réputé, a toute ma confiance" + +#: include/contact_selectors.php:56 mod/admin.php:862 +msgid "Frequently" +msgstr "Fréquemment" + +#: include/contact_selectors.php:57 mod/admin.php:863 +msgid "Hourly" +msgstr "Toutes les heures" + +#: include/contact_selectors.php:58 mod/admin.php:864 +msgid "Twice daily" +msgstr "Deux fois par jour" + +#: include/contact_selectors.php:59 mod/admin.php:865 +msgid "Daily" +msgstr "Chaque jour" + +#: include/contact_selectors.php:60 +msgid "Weekly" +msgstr "Chaque semaine" + +#: include/contact_selectors.php:61 +msgid "Monthly" +msgstr "Chaque mois" + +#: include/contact_selectors.php:76 mod/dfrn_request.php:867 +msgid "Friendica" +msgstr "Friendica" + +#: include/contact_selectors.php:77 +msgid "OStatus" +msgstr "OStatus" + +#: include/contact_selectors.php:78 +msgid "RSS/Atom" +msgstr "RSS/Atom" + +#: include/contact_selectors.php:79 include/contact_selectors.php:86 +#: mod/admin.php:1375 mod/admin.php:1388 mod/admin.php:1400 mod/admin.php:1418 +msgid "Email" +msgstr "Courriel" + +#: include/contact_selectors.php:80 mod/dfrn_request.php:869 +#: mod/settings.php:827 +msgid "Diaspora" +msgstr "Diaspora" + +#: include/contact_selectors.php:81 +msgid "Facebook" +msgstr "Facebook" + +#: include/contact_selectors.php:82 +msgid "Zot!" +msgstr "Zot!" + +#: include/contact_selectors.php:83 +msgid "LinkedIn" +msgstr "LinkedIn" + +#: include/contact_selectors.php:84 +msgid "XMPP/IM" +msgstr "XMPP/IM" + +#: include/contact_selectors.php:85 +msgid "MySpace" +msgstr "MySpace" + +#: include/contact_selectors.php:87 +msgid "Google+" +msgstr "Google+" + +#: include/contact_selectors.php:88 +msgid "pump.io" +msgstr "pump.io" + +#: include/contact_selectors.php:89 +msgid "Twitter" +msgstr "Twitter" + +#: include/contact_selectors.php:90 +msgid "Diaspora Connector" +msgstr "Connecteur Diaspora" + +#: include/contact_selectors.php:91 +msgid "GNU Social" +msgstr "GNU Social" + +#: include/contact_selectors.php:92 +msgid "App.net" +msgstr "App.net" + +#: include/contact_selectors.php:103 +msgid "Hubzilla/Redmatrix" +msgstr "Hubzilla/Redmatrix" + +#: include/network.php:595 +msgid "view full size" +msgstr "voir en pleine taille" + +#: include/Contact.php:119 +msgid "stopped following" +msgstr "retiré de la liste de suivi" + +#: include/Contact.php:310 include/Contact.php:323 include/Contact.php:365 +#: include/conversation.php:964 include/conversation.php:978 +#: mod/directory.php:163 mod/match.php:71 mod/allfriends.php:65 +#: mod/suggest.php:82 mod/dirfind.php:203 +msgid "View Profile" +msgstr "Voir le profil" + +#: include/Contact.php:364 include/conversation.php:963 +msgid "View Status" +msgstr "Voir les statuts" + +#: include/Contact.php:366 include/conversation.php:965 +msgid "View Photos" +msgstr "Voir les photos" + +#: include/Contact.php:367 include/conversation.php:966 +msgid "Network Posts" +msgstr "Publications du réseau" + +#: include/Contact.php:368 include/conversation.php:967 +msgid "Edit Contact" +msgstr "Éditer le contact" + +#: include/Contact.php:369 +msgid "Drop Contact" +msgstr "Supprimer le contact" + +#: include/Contact.php:370 include/conversation.php:968 +msgid "Send PM" +msgstr "Message privé" + +#: include/Contact.php:371 include/conversation.php:972 +msgid "Poke" +msgstr "Sollicitations (pokes)" + +#: include/acl_selectors.php:327 +msgid "Post to Email" +msgstr "Publier aux courriels" + +#: include/acl_selectors.php:332 +#, php-format +msgid "Connectors disabled, since \"%s\" is enabled." +msgstr "Les connecteurs sont désactivés parce que \"%s\" est activé." + +#: include/acl_selectors.php:333 mod/settings.php:1131 +msgid "Hide your profile details from unknown viewers?" +msgstr "Cacher les détails du profil aux visiteurs inconnus?" + +#: include/acl_selectors.php:338 +msgid "Visible to everybody" +msgstr "Visible par tout le monde" + +#: include/acl_selectors.php:339 view/theme/vier/config.php:103 +#: view/theme/diabook/theme.php:621 view/theme/diabook/config.php:142 +msgid "show" +msgstr "montrer" + +#: include/acl_selectors.php:340 view/theme/vier/config.php:103 +#: view/theme/diabook/theme.php:621 view/theme/diabook/config.php:142 +msgid "don't show" +msgstr "cacher" + +#: include/acl_selectors.php:346 mod/editpost.php:133 +msgid "CC: email addresses" +msgstr "CC: adresses de courriel" + +#: include/acl_selectors.php:347 mod/editpost.php:140 +msgid "Example: bob@example.com, mary@example.com" +msgstr "Exemple: bob@exemple.com, mary@exemple.com" + +#: include/acl_selectors.php:349 mod/photos.php:1178 mod/photos.php:1562 +#: mod/events.php:510 +msgid "Permissions" +msgstr "Permissions" + +#: include/acl_selectors.php:350 +msgid "Close" +msgstr "Fermer" + +#: include/dfrn.php:1110 +#, php-format +msgid "%s\\'s birthday" +msgstr "Anniversaire de %s" + +#: include/follow.php:77 mod/dfrn_request.php:507 +msgid "Disallowed profile URL." +msgstr "URL de profil interdite." + +#: include/follow.php:82 +msgid "Connect URL missing." +msgstr "URL de connexion manquante." + +#: include/follow.php:109 +msgid "" +"This site is not configured to allow communications with other networks." +msgstr "Ce site n'est pas configuré pour dialoguer avec d'autres réseaux." + +#: include/follow.php:110 include/follow.php:130 +msgid "No compatible communication protocols or feeds were discovered." +msgstr "Aucun protocole de communication ni aucun flux n'a pu être découvert." + +#: include/follow.php:128 +msgid "The profile address specified does not provide adequate information." +msgstr "L'adresse de profil indiquée ne fournit par les informations adéquates." + +#: include/follow.php:132 +msgid "An author or name was not found." +msgstr "Aucun auteur ou nom d'auteur n'a pu être trouvé." + +#: include/follow.php:134 +msgid "No browser URL could be matched to this address." +msgstr "Aucune URL de navigation ne correspond à cette adresse." + +#: include/follow.php:136 +msgid "" +"Unable to match @-style Identity Address with a known protocol or email " +"contact." +msgstr "Impossible de faire correspondre l'adresse d'identité en \"@\" avec un protocole connu ou un contact courriel." + +#: include/follow.php:137 +msgid "Use mailto: in front of address to force email check." +msgstr "Utilisez mailto: en face d'une adresse pour l'obliger à être reconnue comme courriel." + +#: include/follow.php:143 +msgid "" +"The profile address specified belongs to a network which has been disabled " +"on this site." +msgstr "L'adresse de profil spécifiée correspond à un réseau qui a été désactivé sur ce site." + +#: include/follow.php:153 +msgid "" +"Limited profile. This person will be unable to receive direct/personal " +"notifications from you." +msgstr "Profil limité. Cette personne ne sera pas capable de recevoir des notifications directes/personnelles de votre part." + +#: include/follow.php:254 +msgid "Unable to retrieve contact information." +msgstr "Impossible de récupérer les informations du contact." + +#: include/follow.php:287 +msgid "following" +msgstr "following" + +#: include/items.php:1447 mod/dfrn_request.php:745 mod/dfrn_confirm.php:726 +msgid "[Name Withheld]" +msgstr "[Nom non-publié]" + +#: include/items.php:1805 mod/viewsrc.php:15 mod/display.php:104 +#: mod/display.php:279 mod/display.php:478 mod/notice.php:15 mod/admin.php:234 +#: mod/admin.php:1449 mod/admin.php:1683 +msgid "Item not found." +msgstr "Élément introuvable." + +#: include/items.php:1844 +msgid "Do you really want to delete this item?" +msgstr "Voulez-vous vraiment supprimer cet élément ?" + +#: include/items.php:1846 mod/follow.php:110 mod/suggest.php:29 +#: mod/api.php:105 mod/message.php:217 mod/dfrn_request.php:861 +#: mod/contacts.php:442 mod/profiles.php:641 mod/profiles.php:644 +#: mod/profiles.php:670 mod/register.php:238 mod/settings.php:1113 +#: mod/settings.php:1119 mod/settings.php:1127 mod/settings.php:1131 +#: mod/settings.php:1136 mod/settings.php:1142 mod/settings.php:1148 +#: mod/settings.php:1154 mod/settings.php:1180 mod/settings.php:1181 +#: mod/settings.php:1182 mod/settings.php:1183 mod/settings.php:1184 +msgid "Yes" +msgstr "Oui" + +#: include/items.php:1849 include/conversation.php:1272 mod/fbrowser.php:101 +#: mod/fbrowser.php:136 mod/tagrm.php:11 mod/tagrm.php:94 mod/follow.php:121 +#: mod/suggest.php:32 mod/editpost.php:148 mod/message.php:220 +#: mod/dfrn_request.php:875 mod/contacts.php:445 mod/settings.php:664 +#: mod/settings.php:690 mod/videos.php:131 mod/photos.php:248 +#: mod/photos.php:337 +msgid "Cancel" +msgstr "Annuler" + +#: include/items.php:2011 mod/wall_upload.php:77 mod/wall_upload.php:80 +#: mod/notes.php:22 mod/uimport.php:23 mod/nogroup.php:25 mod/invite.php:15 +#: mod/invite.php:101 mod/viewcontacts.php:45 mod/wall_attach.php:67 +#: mod/wall_attach.php:70 mod/allfriends.php:12 mod/repair_ostatus.php:9 +#: mod/delegate.php:12 mod/attach.php:33 mod/follow.php:11 mod/follow.php:73 +#: mod/follow.php:155 mod/suggest.php:58 mod/display.php:474 mod/common.php:18 +#: mod/editpost.php:10 mod/network.php:4 mod/group.php:19 +#: mod/wallmessage.php:9 mod/wallmessage.php:33 mod/wallmessage.php:79 +#: mod/wallmessage.php:103 mod/api.php:26 mod/api.php:31 +#: mod/ostatus_subscribe.php:9 mod/message.php:46 mod/message.php:182 +#: mod/manage.php:96 mod/crepair.php:100 mod/contacts.php:350 +#: mod/dfrn_confirm.php:57 mod/dirfind.php:11 mod/fsuggest.php:78 +#: mod/item.php:185 mod/item.php:197 mod/mood.php:114 mod/poke.php:150 +#: mod/profile_photo.php:19 mod/profile_photo.php:175 +#: mod/profile_photo.php:186 mod/profile_photo.php:199 mod/profiles.php:166 +#: mod/profiles.php:598 mod/register.php:42 mod/regmod.php:110 +#: mod/settings.php:22 mod/settings.php:128 mod/settings.php:650 +#: mod/photos.php:172 mod/photos.php:1093 mod/cal.php:308 mod/events.php:190 +#: mod/notifications.php:71 index.php:397 +msgid "Permission denied." +msgstr "Permission refusée." + +#: include/items.php:2116 +msgid "Archives" +msgstr "Archives" + +#: include/like.php:163 include/text.php:1790 include/conversation.php:130 +#: include/conversation.php:266 mod/subthread.php:87 mod/tagger.php:62 +#: view/theme/diabook/theme.php:471 +msgid "photo" +msgstr "photo" + +#: include/like.php:163 include/conversation.php:125 +#: include/conversation.php:134 include/conversation.php:261 +#: include/conversation.php:270 include/diaspora.php:1402 mod/subthread.php:87 +#: mod/tagger.php:62 view/theme/diabook/theme.php:466 +#: view/theme/diabook/theme.php:475 +msgid "status" +msgstr "le statut" + +#: include/like.php:165 include/text.php:1788 include/conversation.php:122 +#: include/conversation.php:258 view/theme/diabook/theme.php:463 +msgid "event" +msgstr "évènement" + +#: include/like.php:182 include/conversation.php:141 include/diaspora.php:1398 +#: view/theme/diabook/theme.php:480 +#, php-format +msgid "%1$s likes %2$s's %3$s" +msgstr "%1$s aime %3$s de %2$s" + +#: include/like.php:184 include/conversation.php:144 +#, php-format +msgid "%1$s doesn't like %2$s's %3$s" +msgstr "%1$s n'aime pas %3$s de %2$s" + +#: include/like.php:186 +#, php-format +msgid "%1$s is attending %2$s's %3$s" +msgstr "%1$s participe à %3$s de %2$s" + +#: include/like.php:188 +#, php-format +msgid "%1$s is not attending %2$s's %3$s" +msgstr "%1$s ne participe pas à %3$s de %2$s" + +#: include/like.php:190 +#, php-format +msgid "%1$s may attend %2$s's %3$s" +msgstr "%1$s participera peut-être à %3$s de %2$s" + +#: include/message.php:15 include/message.php:173 +msgid "[no subject]" +msgstr "[pas de sujet]" + +#: include/plugin.php:526 include/plugin.php:528 +msgid "Click here to upgrade." +msgstr "Cliquez ici pour mettre à jour." + +#: include/plugin.php:534 +msgid "This action exceeds the limits set by your subscription plan." +msgstr "Cette action dépasse les limites définies par votre abonnement." + +#: include/plugin.php:539 +msgid "This action is not available under your subscription plan." +msgstr "Cette action n'est pas disponible avec votre abonnement." + +#: include/text.php:304 +msgid "newer" +msgstr "Plus récent" + +#: include/text.php:306 +msgid "older" +msgstr "Plus ancien" + +#: include/text.php:311 +msgid "prev" +msgstr "précédent" + +#: include/text.php:313 +msgid "first" +msgstr "premier" + +#: include/text.php:345 +msgid "last" +msgstr "dernier" + +#: include/text.php:348 +msgid "next" +msgstr "suivant" + +#: include/text.php:403 +msgid "Loading more entries..." +msgstr "Chargement de résultats supplémentaires..." + +#: include/text.php:404 +msgid "The end" +msgstr "Fin" + +#: include/text.php:871 +msgid "No contacts" +msgstr "Aucun contact" + +#: include/text.php:894 +#, php-format +msgid "%d Contact" +msgid_plural "%d Contacts" +msgstr[0] "%d contact" +msgstr[1] "%d contacts" + +#: include/text.php:907 +msgid "View Contacts" +msgstr "Voir les contacts" + +#: include/text.php:995 mod/notes.php:61 mod/filer.php:31 mod/editpost.php:109 +msgid "Save" +msgstr "Sauver" + +#: include/text.php:1058 +msgid "poke" +msgstr "titiller" + +#: include/text.php:1058 +msgid "poked" +msgstr "a titillé" + +#: include/text.php:1059 +msgid "ping" +msgstr "attirer l'attention" + +#: include/text.php:1059 +msgid "pinged" +msgstr "a attiré l'attention de" + +#: include/text.php:1060 +msgid "prod" +msgstr "aiguillonner" + +#: include/text.php:1060 +msgid "prodded" +msgstr "a aiguillonné" + +#: include/text.php:1061 +msgid "slap" +msgstr "gifler" + +#: include/text.php:1061 +msgid "slapped" +msgstr "a giflé" + +#: include/text.php:1062 +msgid "finger" +msgstr "tripoter" + +#: include/text.php:1062 +msgid "fingered" +msgstr "a tripoté" + +#: include/text.php:1063 +msgid "rebuff" +msgstr "rabrouer" + +#: include/text.php:1063 +msgid "rebuffed" +msgstr "a rabroué" + +#: include/text.php:1077 +msgid "happy" +msgstr "heureuse" + +#: include/text.php:1078 +msgid "sad" +msgstr "triste" + +#: include/text.php:1079 +msgid "mellow" +msgstr "suave" + +#: include/text.php:1080 +msgid "tired" +msgstr "fatiguée" + +#: include/text.php:1081 +msgid "perky" +msgstr "guillerette" + +#: include/text.php:1082 +msgid "angry" +msgstr "colérique" + +#: include/text.php:1083 +msgid "stupified" +msgstr "stupéfaite" + +#: include/text.php:1084 +msgid "puzzled" +msgstr "perplexe" + +#: include/text.php:1085 +msgid "interested" +msgstr "intéressée" + +#: include/text.php:1086 +msgid "bitter" +msgstr "amère" + +#: include/text.php:1087 +msgid "cheerful" +msgstr "entraînante" + +#: include/text.php:1088 +msgid "alive" +msgstr "vivante" + +#: include/text.php:1089 +msgid "annoyed" +msgstr "ennuyée" + +#: include/text.php:1090 +msgid "anxious" +msgstr "anxieuse" + +#: include/text.php:1091 +msgid "cranky" +msgstr "excentrique" + +#: include/text.php:1092 +msgid "disturbed" +msgstr "dérangée" + +#: include/text.php:1093 +msgid "frustrated" +msgstr "frustrée" + +#: include/text.php:1094 +msgid "motivated" +msgstr "motivée" + +#: include/text.php:1095 +msgid "relaxed" +msgstr "détendue" + +#: include/text.php:1096 +msgid "surprised" +msgstr "surprise" + +#: include/text.php:1112 include/event.php:449 mod/settings.php:955 +msgid "Monday" +msgstr "Lundi" + +#: include/text.php:1112 include/event.php:450 +msgid "Tuesday" +msgstr "Mardi" + +#: include/text.php:1112 include/event.php:451 +msgid "Wednesday" +msgstr "Mercredi" + +#: include/text.php:1112 include/event.php:452 +msgid "Thursday" +msgstr "Jeudi" + +#: include/text.php:1112 include/event.php:453 +msgid "Friday" +msgstr "Vendredi" + +#: include/text.php:1112 include/event.php:454 +msgid "Saturday" +msgstr "Samedi" + +#: include/text.php:1112 include/event.php:448 mod/settings.php:955 +msgid "Sunday" +msgstr "Dimanche" + +#: include/text.php:1116 include/event.php:467 +msgid "January" +msgstr "Janvier" + +#: include/text.php:1116 include/event.php:468 +msgid "February" +msgstr "Février" + +#: include/text.php:1116 include/event.php:469 +msgid "March" +msgstr "Mars" + +#: include/text.php:1116 include/event.php:470 +msgid "April" +msgstr "Avril" + +#: include/text.php:1116 include/event.php:459 include/event.php:471 +msgid "May" +msgstr "Mai" + +#: include/text.php:1116 include/event.php:472 +msgid "June" +msgstr "Juin" + +#: include/text.php:1116 include/event.php:473 +msgid "July" +msgstr "Juillet" + +#: include/text.php:1116 include/event.php:474 +msgid "August" +msgstr "Août" + +#: include/text.php:1116 include/event.php:475 +msgid "September" +msgstr "Septembre" + +#: include/text.php:1116 include/event.php:476 +msgid "October" +msgstr "Octobre" + +#: include/text.php:1116 include/event.php:477 +msgid "November" +msgstr "Novembre" + +#: include/text.php:1116 include/event.php:478 +msgid "December" +msgstr "Décembre" + +#: include/text.php:1310 mod/videos.php:383 +msgid "View Video" +msgstr "Regarder la vidéo" + +#: include/text.php:1342 +msgid "bytes" +msgstr "octets" + +#: include/text.php:1374 include/text.php:1386 +msgid "Click to open/close" +msgstr "Cliquer pour ouvrir/fermer" + +#: include/text.php:1512 +msgid "View on separate page" +msgstr "Voir dans une nouvelle page" + +#: include/text.php:1513 +msgid "view on separate page" +msgstr "voir dans une nouvelle page" + +#: include/text.php:1518 include/text.php:1525 include/event.php:608 +msgid "link to source" +msgstr "lien original" + +#: include/text.php:1792 +msgid "activity" +msgstr "activité" + +#: include/text.php:1794 mod/content.php:623 object/Item.php:431 +#: object/Item.php:444 +msgid "comment" +msgid_plural "comments" +msgstr[0] "" +msgstr[1] "commentaire" + +#: include/text.php:1795 +msgid "post" +msgstr "publication" + +#: include/text.php:1963 +msgid "Item filed" +msgstr "Élément classé" + #: include/uimport.php:94 msgid "Error decoding account file" msgstr "Une erreur a été détecté en décodant un fichier utilisateur" @@ -8362,9 +2241,6374 @@ msgstr[1] "%d contacts non importés" msgid "Done. You can now login with your username and password" msgstr "Action réalisé. Vous pouvez désormais vous connecter avec votre nom d'utilisateur et votre mot de passe" -#: index.php:442 -msgid "toggle mobile" -msgstr "activ. mobile" +#: include/NotificationsManager.php:153 +msgid "System" +msgstr "Système" + +#: include/NotificationsManager.php:167 mod/network.php:844 +#: mod/profiles.php:696 +msgid "Personal" +msgstr "Personnel" + +#: include/NotificationsManager.php:234 include/NotificationsManager.php:245 +#, php-format +msgid "%s commented on %s's post" +msgstr "%s a commenté la publication de %s" + +#: include/NotificationsManager.php:244 +#, php-format +msgid "%s created a new post" +msgstr "%s a créé une nouvelle publication" + +#: include/NotificationsManager.php:258 +#, php-format +msgid "%s liked %s's post" +msgstr "%s a aimé la publication de %s" + +#: include/NotificationsManager.php:269 +#, php-format +msgid "%s disliked %s's post" +msgstr "%s n'a pas aimé la publication de %s" + +#: include/NotificationsManager.php:280 +#, php-format +msgid "%s is attending %s's event" +msgstr "%s participe à l'événement de %s" + +#: include/NotificationsManager.php:291 +#, php-format +msgid "%s is not attending %s's event" +msgstr "%s ne participe pas à l'événement de %s" + +#: include/NotificationsManager.php:302 +#, php-format +msgid "%s may attend %s's event" +msgstr "%s participera peut-être à l'événement de %s" + +#: include/NotificationsManager.php:317 +#, php-format +msgid "%s is now friends with %s" +msgstr "%s est désormais ami(e) avec %s" + +#: include/NotificationsManager.php:750 +msgid "Friend Suggestion" +msgstr "Suggestion d'amitié/contact" + +#: include/NotificationsManager.php:783 +msgid "Friend/Connect Request" +msgstr "Demande de connexion/relation" + +#: include/NotificationsManager.php:783 +msgid "New Follower" +msgstr "Nouvel abonné" + +#: include/api.php:975 +#, php-format +msgid "Daily posting limit of %d posts reached. The post was rejected." +msgstr "Le quota journalier de %d publications a été atteint. La publication a été rejetée." + +#: include/api.php:995 +#, php-format +msgid "Weekly posting limit of %d posts reached. The post was rejected." +msgstr "Le quota hebdomadaire de %d publications a été atteint. La publication a été rejetée." + +#: include/api.php:1016 +#, php-format +msgid "Monthly posting limit of %d posts reached. The post was rejected." +msgstr "Le quota mensuel de %d publications a été atteint. La publication a été rejetée." + +#: include/bbcode.php:348 include/bbcode.php:1056 include/bbcode.php:1057 +msgid "Image/photo" +msgstr "Image/photo" + +#: include/bbcode.php:465 +#, php-format +msgid "%2$s %3$s" +msgstr "%2$s %3$s" + +#: include/bbcode.php:1016 include/bbcode.php:1036 +msgid "$1 wrote:" +msgstr "$1 a écrit:" + +#: include/bbcode.php:1065 include/bbcode.php:1066 +msgid "Encrypted content" +msgstr "Contenu chiffré" + +#: include/conversation.php:147 +#, php-format +msgid "%1$s attends %2$s's %3$s" +msgstr "%1$s participe à %3$s de %2$s" + +#: include/conversation.php:150 +#, php-format +msgid "%1$s doesn't attend %2$s's %3$s" +msgstr "%1$s ne participe pas à %3$s de %2$s" + +#: include/conversation.php:153 +#, php-format +msgid "%1$s attends maybe %2$s's %3$s" +msgstr "%1$s participe peut-être à %3$s de %2$s" + +#: include/conversation.php:185 mod/dfrn_confirm.php:473 +#, php-format +msgid "%1$s is now friends with %2$s" +msgstr "%1$s est désormais lié à %2$s" + +#: include/conversation.php:219 +#, php-format +msgid "%1$s poked %2$s" +msgstr "%1$s a sollicité %2$s" + +#: include/conversation.php:239 mod/mood.php:62 +#, php-format +msgid "%1$s is currently %2$s" +msgstr "%1$s est d'humeur %2$s" + +#: include/conversation.php:278 mod/tagger.php:95 +#, php-format +msgid "%1$s tagged %2$s's %3$s with %4$s" +msgstr "%1$s a étiqueté %3$s de %2$s avec %4$s" + +#: include/conversation.php:303 +msgid "post/item" +msgstr "publication/élément" + +#: include/conversation.php:304 +#, php-format +msgid "%1$s marked %2$s's %3$s as favorite" +msgstr "%1$s a marqué le %3$s de %2$s comme favori" + +#: include/conversation.php:585 mod/content.php:372 mod/profiles.php:345 +#: mod/photos.php:1634 +msgid "Likes" +msgstr "Derniers \"J'aime\"" + +#: include/conversation.php:585 mod/content.php:372 mod/profiles.php:349 +#: mod/photos.php:1634 +msgid "Dislikes" +msgstr "Derniers \"Je n'aime pas\"" + +#: include/conversation.php:586 include/conversation.php:1469 +#: mod/content.php:373 mod/photos.php:1635 +msgid "Attending" +msgid_plural "Attending" +msgstr[0] "" +msgstr[1] "" + +#: include/conversation.php:586 mod/content.php:373 mod/photos.php:1635 +msgid "Not attending" +msgstr "Ne participe pas" + +#: include/conversation.php:586 mod/content.php:373 mod/photos.php:1635 +msgid "Might attend" +msgstr "Participera peut-être" + +#: include/conversation.php:708 mod/content.php:453 mod/content.php:758 +#: mod/photos.php:1709 object/Item.php:133 +msgid "Select" +msgstr "Sélectionner" + +#: include/conversation.php:709 mod/group.php:171 mod/content.php:454 +#: mod/content.php:759 mod/contacts.php:806 mod/contacts.php:1021 +#: mod/settings.php:726 mod/photos.php:1710 mod/admin.php:1392 +#: object/Item.php:134 +msgid "Delete" +msgstr "Supprimer" + +#: include/conversation.php:753 mod/content.php:487 mod/content.php:910 +#: mod/content.php:911 object/Item.php:367 object/Item.php:368 +#, php-format +msgid "View %s's profile @ %s" +msgstr "Voir le profil de %s @ %s" + +#: include/conversation.php:765 object/Item.php:355 +msgid "Categories:" +msgstr "Catégories:" + +#: include/conversation.php:766 object/Item.php:356 +msgid "Filed under:" +msgstr "Rangé sous:" + +#: include/conversation.php:773 mod/content.php:497 mod/content.php:923 +#: object/Item.php:381 +#, php-format +msgid "%s from %s" +msgstr "%s de %s" + +#: include/conversation.php:789 mod/content.php:513 +msgid "View in context" +msgstr "Voir dans le contexte" + +#: include/conversation.php:791 include/conversation.php:1253 +#: mod/editpost.php:124 mod/wallmessage.php:156 mod/message.php:356 +#: mod/message.php:548 mod/content.php:515 mod/content.php:948 +#: mod/photos.php:1597 object/Item.php:406 +msgid "Please wait" +msgstr "Patientez" + +#: include/conversation.php:870 +msgid "remove" +msgstr "enlever" + +#: include/conversation.php:874 +msgid "Delete Selected Items" +msgstr "Supprimer les éléments sélectionnés" + +#: include/conversation.php:962 +msgid "Follow Thread" +msgstr "Suivre le fil" + +#: include/conversation.php:1086 +#, php-format +msgid "%s likes this." +msgstr "%s aime ça." + +#: include/conversation.php:1089 +#, php-format +msgid "%s doesn't like this." +msgstr "%s n'aime pas ça." + +#: include/conversation.php:1092 +#, php-format +msgid "%s attends." +msgstr "%s participe" + +#: include/conversation.php:1095 +#, php-format +msgid "%s doesn't attend." +msgstr "%s ne participe pas" + +#: include/conversation.php:1098 +#, php-format +msgid "%s attends maybe." +msgstr "%s participe peut-être" + +#: include/conversation.php:1108 +msgid "and" +msgstr "et" + +#: include/conversation.php:1114 +#, php-format +msgid ", and %d other people" +msgstr ", et %d autres personnes" + +#: include/conversation.php:1123 +#, php-format +msgid "%2$d people like this" +msgstr "%2$d personnes aiment ça" + +#: include/conversation.php:1124 +#, php-format +msgid "%s like this." +msgstr "%s aime ça." + +#: include/conversation.php:1127 +#, php-format +msgid "%2$d people don't like this" +msgstr "%2$d personnes n'aiment pas ça" + +#: include/conversation.php:1128 +#, php-format +msgid "%s don't like this." +msgstr "%s n'aiment pas ça." + +#: include/conversation.php:1131 +#, php-format +msgid "%2$d people attend" +msgstr "%2$d personnes participent" + +#: include/conversation.php:1132 +#, php-format +msgid "%s attend." +msgstr "%s participent." + +#: include/conversation.php:1135 +#, php-format +msgid "%2$d people don't attend" +msgstr "%2$d personnes ne participent pas" + +#: include/conversation.php:1136 +#, php-format +msgid "%s don't attend." +msgstr "%s ne participent pas." + +#: include/conversation.php:1139 +#, php-format +msgid "%2$d people anttend maybe" +msgstr "%2$d personnes participeront peut-être" + +#: include/conversation.php:1140 +#, php-format +msgid "%s anttend maybe." +msgstr "%s participent peut-être." + +#: include/conversation.php:1179 include/conversation.php:1197 +msgid "Visible to everybody" +msgstr "Visible par tout le monde" + +#: include/conversation.php:1180 include/conversation.php:1198 +#: mod/wallmessage.php:127 mod/wallmessage.php:135 mod/message.php:291 +#: mod/message.php:299 mod/message.php:442 mod/message.php:450 +msgid "Please enter a link URL:" +msgstr "Entrez un lien web:" + +#: include/conversation.php:1181 include/conversation.php:1199 +msgid "Please enter a video link/URL:" +msgstr "Entrez un lien/URL video :" + +#: include/conversation.php:1182 include/conversation.php:1200 +msgid "Please enter an audio link/URL:" +msgstr "Entrez un lien/URL audio :" + +#: include/conversation.php:1183 include/conversation.php:1201 +msgid "Tag term:" +msgstr "Terme d'étiquette:" + +#: include/conversation.php:1184 include/conversation.php:1202 +#: mod/filer.php:30 +msgid "Save to Folder:" +msgstr "Sauver dans le Dossier:" + +#: include/conversation.php:1185 include/conversation.php:1203 +msgid "Where are you right now?" +msgstr "Où êtes-vous présentemment?" + +#: include/conversation.php:1186 +msgid "Delete item(s)?" +msgstr "Supprimer les élément(s) ?" + +#: include/conversation.php:1234 mod/photos.php:1596 +msgid "Share" +msgstr "Partager" + +#: include/conversation.php:1235 mod/editpost.php:110 mod/wallmessage.php:154 +#: mod/message.php:354 mod/message.php:545 +msgid "Upload photo" +msgstr "Joindre photo" + +#: include/conversation.php:1236 mod/editpost.php:111 +msgid "upload photo" +msgstr "envoi image" + +#: include/conversation.php:1237 mod/editpost.php:112 +msgid "Attach file" +msgstr "Joindre fichier" + +#: include/conversation.php:1238 mod/editpost.php:113 +msgid "attach file" +msgstr "ajout fichier" + +#: include/conversation.php:1239 mod/editpost.php:114 mod/wallmessage.php:155 +#: mod/message.php:355 mod/message.php:546 +msgid "Insert web link" +msgstr "Insérer lien web" + +#: include/conversation.php:1240 mod/editpost.php:115 +msgid "web link" +msgstr "lien web" + +#: include/conversation.php:1241 mod/editpost.php:116 +msgid "Insert video link" +msgstr "Insérer un lien video" + +#: include/conversation.php:1242 mod/editpost.php:117 +msgid "video link" +msgstr "lien vidéo" + +#: include/conversation.php:1243 mod/editpost.php:118 +msgid "Insert audio link" +msgstr "Insérer un lien audio" + +#: include/conversation.php:1244 mod/editpost.php:119 +msgid "audio link" +msgstr "lien audio" + +#: include/conversation.php:1245 mod/editpost.php:120 +msgid "Set your location" +msgstr "Définir votre localisation" + +#: include/conversation.php:1246 mod/editpost.php:121 +msgid "set location" +msgstr "spéc. localisation" + +#: include/conversation.php:1247 mod/editpost.php:122 +msgid "Clear browser location" +msgstr "Effacer la localisation du navigateur" + +#: include/conversation.php:1248 mod/editpost.php:123 +msgid "clear location" +msgstr "supp. localisation" + +#: include/conversation.php:1250 mod/editpost.php:137 +msgid "Set title" +msgstr "Définir un titre" + +#: include/conversation.php:1252 mod/editpost.php:139 +msgid "Categories (comma-separated list)" +msgstr "Catégories (séparées par des virgules)" + +#: include/conversation.php:1254 mod/editpost.php:125 +msgid "Permission settings" +msgstr "Réglages des permissions" + +#: include/conversation.php:1255 mod/editpost.php:154 +msgid "permissions" +msgstr "permissions" + +#: include/conversation.php:1263 mod/editpost.php:134 +msgid "Public post" +msgstr "Publication publique" + +#: include/conversation.php:1268 mod/editpost.php:145 mod/content.php:737 +#: mod/photos.php:1618 mod/photos.php:1666 mod/photos.php:1754 +#: mod/events.php:505 object/Item.php:729 +msgid "Preview" +msgstr "Aperçu" + +#: include/conversation.php:1278 +msgid "Post to Groups" +msgstr "Publier aux groupes" + +#: include/conversation.php:1279 +msgid "Post to Contacts" +msgstr "Publier aux contacts" + +#: include/conversation.php:1280 +msgid "Private post" +msgstr "Message privé" + +#: include/conversation.php:1285 include/identity.php:250 mod/editpost.php:152 +msgid "Message" +msgstr "Message" + +#: include/conversation.php:1286 mod/editpost.php:153 +msgid "Browser" +msgstr "Navigateur" + +#: include/conversation.php:1441 +msgid "View all" +msgstr "Voir tout" + +#: include/conversation.php:1463 +msgid "Like" +msgid_plural "Likes" +msgstr[0] "" +msgstr[1] "" + +#: include/conversation.php:1466 +msgid "Dislike" +msgid_plural "Dislikes" +msgstr[0] "" +msgstr[1] "" + +#: include/conversation.php:1472 +msgid "Not Attending" +msgid_plural "Not Attending" +msgstr[0] "" +msgstr[1] "" + +#: include/dbstructure.php:26 +#, php-format +msgid "" +"\n" +"\t\t\tThe friendica developers released update %s recently,\n" +"\t\t\tbut when I tried to install it, something went terribly wrong.\n" +"\t\t\tThis needs to be fixed soon and I can't do it alone. Please contact a\n" +"\t\t\tfriendica developer if you can not help me on your own. My database might be invalid." +msgstr "\nLes développeurs de Friendica ont récemment publié la mise à jour %s, mais en tentant de l’installer, quelque chose s’est terriblement mal passé. Une réparation s’impose et je ne peux pas la faire tout seul. Contactez un développeur Friendica si vous ne pouvez pas corriger le problème vous-même. Il est possible que ma base de données soit corrompue." + +#: include/dbstructure.php:31 +#, php-format +msgid "" +"The error message is\n" +"[pre]%s[/pre]" +msgstr "Le message d’erreur est\n[pre]%s[/pre]" + +#: include/dbstructure.php:153 +msgid "Errors encountered creating database tables." +msgstr "Des erreurs ont été signalées lors de la création des tables." + +#: include/dbstructure.php:230 +msgid "Errors encountered performing database changes." +msgstr "Des erreurs sont survenues lors de la mise à jour de la base de données." + +#: include/diaspora.php:1954 +msgid "Sharing notification from Diaspora network" +msgstr "Notification de partage du réseau Diaspora" + +#: include/diaspora.php:2854 +msgid "Attachments:" +msgstr "Pièces jointes : " + +#: include/event.php:441 +msgid "Sun" +msgstr "Dim" + +#: include/event.php:442 +msgid "Mon" +msgstr "Lun" + +#: include/event.php:443 +msgid "Tue" +msgstr "Mar" + +#: include/event.php:444 +msgid "Wed" +msgstr "Mer" + +#: include/event.php:445 +msgid "Thu" +msgstr "Jeu" + +#: include/event.php:446 +msgid "Fri" +msgstr "Ven" + +#: include/event.php:447 +msgid "Sat" +msgstr "Sam" + +#: include/event.php:455 +msgid "Jan" +msgstr "Jan" + +#: include/event.php:456 +msgid "Feb" +msgstr "Fév" + +#: include/event.php:457 +msgid "Mar" +msgstr "Mar" + +#: include/event.php:458 +msgid "Apr" +msgstr "Avr" + +#: include/event.php:460 +msgid "Jun" +msgstr "Jun" + +#: include/event.php:461 +msgid "Jul" +msgstr "Jul" + +#: include/event.php:462 +msgid "Aug" +msgstr "Aoû" + +#: include/event.php:463 +msgid "Sept" +msgstr "Sep" + +#: include/event.php:464 +msgid "Oct" +msgstr "Oct" + +#: include/event.php:465 +msgid "Nov" +msgstr "Nov" + +#: include/event.php:466 +msgid "Dec" +msgstr "Déc" + +#: include/event.php:479 mod/cal.php:286 mod/events.php:388 +msgid "today" +msgstr "aujourd'hui" + +#: include/event.php:567 +msgid "l, F j" +msgstr "l, F j" + +#: include/event.php:586 +msgid "Edit event" +msgstr "Editer l'événement" + +#: include/event.php:843 +msgid "Export" +msgstr "Exporter" + +#: include/event.php:844 +msgid "Export calendar as ical" +msgstr "Exporter au format iCal" + +#: include/event.php:845 +msgid "Export calendar as csv" +msgstr "Exporter au format CSV" + +#: include/identity.php:42 +msgid "Requested account is not available." +msgstr "Le compte demandé n'est pas disponible." + +#: include/identity.php:51 mod/profile.php:21 +msgid "Requested profile is not available." +msgstr "Le profil demandé n'est pas disponible." + +#: include/identity.php:95 include/identity.php:305 include/identity.php:686 +msgid "Edit profile" +msgstr "Editer le profil" + +#: include/identity.php:245 +msgid "Atom feed" +msgstr "Flux Atom" + +#: include/identity.php:276 +msgid "Manage/edit profiles" +msgstr "Gérer/éditer les profils" + +#: include/identity.php:281 include/identity.php:307 mod/profiles.php:787 +msgid "Change profile photo" +msgstr "Changer de photo de profil" + +#: include/identity.php:282 mod/profiles.php:788 +msgid "Create New Profile" +msgstr "Créer un nouveau profil" + +#: include/identity.php:292 mod/profiles.php:777 +msgid "Profile Image" +msgstr "Image du profil" + +#: include/identity.php:295 mod/profiles.php:779 +msgid "visible to everybody" +msgstr "visible par tous" + +#: include/identity.php:296 mod/profiles.php:684 mod/profiles.php:780 +msgid "Edit visibility" +msgstr "Changer la visibilité" + +#: include/identity.php:319 mod/directory.php:174 mod/match.php:84 +#: mod/viewcontacts.php:105 mod/allfriends.php:79 mod/suggest.php:98 +#: mod/hovercard.php:80 mod/common.php:123 mod/network.php:517 +#: mod/contacts.php:51 mod/contacts.php:626 mod/contacts.php:953 +#: mod/dirfind.php:223 mod/videos.php:37 mod/photos.php:42 mod/cal.php:44 +msgid "Forum" +msgstr "Forum" + +#: include/identity.php:331 include/identity.php:614 mod/directory.php:147 +#: mod/notifications.php:238 +msgid "Gender:" +msgstr "Genre:" + +#: include/identity.php:334 include/identity.php:634 mod/directory.php:149 +msgid "Status:" +msgstr "Statut:" + +#: include/identity.php:336 include/identity.php:645 mod/directory.php:151 +msgid "Homepage:" +msgstr "Page personnelle:" + +#: include/identity.php:338 include/identity.php:655 mod/directory.php:153 +#: mod/contacts.php:630 mod/notifications.php:234 +msgid "About:" +msgstr "À propos:" + +#: include/identity.php:420 mod/contacts.php:50 mod/notifications.php:246 +msgid "Network:" +msgstr "Réseau" + +#: include/identity.php:449 include/identity.php:533 +msgid "g A l F d" +msgstr "g A | F d" + +#: include/identity.php:450 include/identity.php:534 +msgid "F d" +msgstr "F d" + +#: include/identity.php:495 include/identity.php:580 +msgid "[today]" +msgstr "[aujourd'hui]" + +#: include/identity.php:507 +msgid "Birthday Reminders" +msgstr "Rappels d'anniversaires" + +#: include/identity.php:508 +msgid "Birthdays this week:" +msgstr "Anniversaires cette semaine:" + +#: include/identity.php:567 +msgid "[No description]" +msgstr "[Sans description]" + +#: include/identity.php:591 +msgid "Event Reminders" +msgstr "Rappels d'événements" + +#: include/identity.php:592 +msgid "Events this week:" +msgstr "Evénements cette semaine :" + +#: include/identity.php:612 mod/settings.php:1229 +msgid "Full Name:" +msgstr "Nom complet:" + +#: include/identity.php:619 +msgid "j F, Y" +msgstr "j F, Y" + +#: include/identity.php:620 +msgid "j F" +msgstr "j F" + +#: include/identity.php:631 +msgid "Age:" +msgstr "Age:" + +#: include/identity.php:640 +#, php-format +msgid "for %1$d %2$s" +msgstr "depuis %1$d %2$s" + +#: include/identity.php:643 mod/profiles.php:703 +msgid "Sexual Preference:" +msgstr "Préférence sexuelle:" + +#: include/identity.php:647 mod/profiles.php:729 +msgid "Hometown:" +msgstr " Ville d'origine:" + +#: include/identity.php:649 mod/follow.php:134 mod/contacts.php:632 +#: mod/notifications.php:236 +msgid "Tags:" +msgstr "Étiquette:" + +#: include/identity.php:651 mod/profiles.php:730 +msgid "Political Views:" +msgstr "Opinions politiques:" + +#: include/identity.php:653 +msgid "Religion:" +msgstr "Religion:" + +#: include/identity.php:657 +msgid "Hobbies/Interests:" +msgstr "Passe-temps/Centres d'intérêt:" + +#: include/identity.php:659 mod/profiles.php:734 +msgid "Likes:" +msgstr "J'aime :" + +#: include/identity.php:661 mod/profiles.php:735 +msgid "Dislikes:" +msgstr "Je n'aime pas :" + +#: include/identity.php:664 +msgid "Contact information and Social Networks:" +msgstr "Coordonnées/Réseaux sociaux:" + +#: include/identity.php:666 +msgid "Musical interests:" +msgstr "Goûts musicaux:" + +#: include/identity.php:668 +msgid "Books, literature:" +msgstr "Lectures:" + +#: include/identity.php:670 +msgid "Television:" +msgstr "Télévision:" + +#: include/identity.php:672 +msgid "Film/dance/culture/entertainment:" +msgstr "Cinéma/Danse/Culture/Divertissement:" + +#: include/identity.php:674 +msgid "Love/Romance:" +msgstr "Amour/Romance:" + +#: include/identity.php:676 +msgid "Work/employment:" +msgstr "Activité professionnelle/Occupation:" + +#: include/identity.php:678 +msgid "School/education:" +msgstr "Études/Formation:" + +#: include/identity.php:682 +msgid "Forums:" +msgstr "Forums :" + +#: include/identity.php:690 mod/events.php:508 +msgid "Basic" +msgstr "Simple" + +#: include/identity.php:691 mod/contacts.php:868 mod/events.php:509 +#: mod/admin.php:931 +msgid "Advanced" +msgstr "Avancé" + +#: include/identity.php:715 mod/follow.php:143 mod/contacts.php:834 +msgid "Status Messages and Posts" +msgstr "Messages d'état et publications" + +#: include/identity.php:723 mod/contacts.php:842 +msgid "Profile Details" +msgstr "Détails du profil" + +#: include/identity.php:731 mod/photos.php:100 +msgid "Photo Albums" +msgstr "Albums photo" + +#: include/identity.php:770 mod/notes.php:46 +msgid "Personal Notes" +msgstr "Notes personnelles" + +#: include/identity.php:773 +msgid "Only You Can See This" +msgstr "Vous seul pouvez voir ça" + +#: mod/oexchange.php:25 +msgid "Post successful." +msgstr "Publication réussie." + +#: mod/update_community.php:18 mod/update_notes.php:37 +#: mod/update_display.php:22 mod/update_profile.php:41 +#: mod/update_network.php:25 +msgid "[Embedded content - reload page to view]" +msgstr "[contenu incorporé - rechargez la page pour le voir]" + +#: mod/viewsrc.php:7 +msgid "Access denied." +msgstr "Accès refusé." + +#: mod/home.php:35 +#, php-format +msgid "Welcome to %s" +msgstr "Bienvenue sur %s" + +#: mod/notify.php:60 +msgid "No more system notifications." +msgstr "Pas plus de notifications système." + +#: mod/notify.php:64 mod/notifications.php:111 +msgid "System Notifications" +msgstr "Notifications du système" + +#: mod/search.php:25 mod/network.php:191 +msgid "Remove term" +msgstr "Retirer le terme" + +#: mod/search.php:93 mod/search.php:99 mod/directory.php:37 +#: mod/viewcontacts.php:35 mod/display.php:199 mod/community.php:22 +#: mod/dfrn_request.php:790 mod/videos.php:197 mod/photos.php:964 +msgid "Public access denied." +msgstr "Accès public refusé." + +#: mod/search.php:100 +msgid "Only logged in users are permitted to perform a search." +msgstr "Seuls les utilisateurs inscrits sont autorisés à lancer une recherche." + +#: mod/search.php:124 +msgid "Too Many Requests" +msgstr "Trop de requêtes" + +#: mod/search.php:125 +msgid "Only one search per minute is permitted for not logged in users." +msgstr "Une seule recherche par minute pour les utilisateurs qui ne sont pas connectés." + +#: mod/search.php:224 mod/community.php:66 mod/community.php:75 +msgid "No results." +msgstr "Aucun résultat." + +#: mod/search.php:230 +#, php-format +msgid "Items tagged with: %s" +msgstr "Éléments taggés %s" + +#: mod/search.php:232 mod/network.php:146 mod/contacts.php:795 +#, php-format +msgid "Results for: %s" +msgstr "Résultats pour : %s" + +#: mod/friendica.php:70 +msgid "This is Friendica, version" +msgstr "Motorisé par Friendica version" + +#: mod/friendica.php:71 +msgid "running at web location" +msgstr "hébergé sur" + +#: mod/friendica.php:73 +msgid "" +"Please visit Friendica.com to learn " +"more about the Friendica project." +msgstr "Merci de vous rendre sur Friendica.com si vous souhaitez en savoir plus sur le projet Friendica." + +#: mod/friendica.php:75 +msgid "Bug reports and issues: please visit" +msgstr "Pour les rapports de bugs: rendez vous sur" + +#: mod/friendica.php:75 +msgid "the bugtracker at github" +msgstr "le bugtracker sur GitHub" + +#: mod/friendica.php:76 +msgid "" +"Suggestions, praise, donations, etc. - please email \"Info\" at Friendica - " +"dot com" +msgstr "Suggestions, remerciements, donations, etc. - écrivez à \"Info\" arob. Friendica - point com" + +#: mod/friendica.php:90 +msgid "Installed plugins/addons/apps:" +msgstr "Extensions/greffons/applications installées:" + +#: mod/friendica.php:103 +msgid "No installed plugins/addons/apps" +msgstr "Extensions/greffons/applications non installées:" + +#: mod/lostpass.php:19 +msgid "No valid account found." +msgstr "Impossible de trouver un compte valide." + +#: mod/lostpass.php:35 +msgid "Password reset request issued. Check your email." +msgstr "Réinitialisation du mot de passe en cours. Vérifiez votre courriel." + +#: mod/lostpass.php:42 +#, php-format +msgid "" +"\n" +"\t\tDear %1$s,\n" +"\t\t\tA request was recently received at \"%2$s\" to reset your account\n" +"\t\tpassword. In order to confirm this request, please select the verification link\n" +"\t\tbelow or paste it into your web browser address bar.\n" +"\n" +"\t\tIf you did NOT request this change, please DO NOT follow the link\n" +"\t\tprovided and ignore and/or delete this email.\n" +"\n" +"\t\tYour password will not be changed unless we can verify that you\n" +"\t\tissued this request." +msgstr "\n\t\tChère/Cher %1$s,\n\t\t\tNous avons reçu une demande de ré-initialisation du mot de passe de votre compte sur \"%2$s\". Pour confirmer cette demande, veuillez cliquer sur le lien de vérification ci-dessous ou le coller dans la barre d’adresse de votre navigateur.\n\n\t\tSi vous n’êtes PAS à l’origine de cette demande, NE suivez PAS le lien—ignorez et/ou supprimez ce message.\n\n\t\tVotre mot de passe ne sera pas modifié si nous n’avons pas de confirmation que la demande émane de vous." + +#: mod/lostpass.php:53 +#, php-format +msgid "" +"\n" +"\t\tFollow this link to verify your identity:\n" +"\n" +"\t\t%1$s\n" +"\n" +"\t\tYou will then receive a follow-up message containing the new password.\n" +"\t\tYou may change that password from your account settings page after logging in.\n" +"\n" +"\t\tThe login details are as follows:\n" +"\n" +"\t\tSite Location:\t%2$s\n" +"\t\tLogin Name:\t%3$s" +msgstr "\n\t\tSuivez ce lien pour confirmer votre identité :\n\n\t\t%1$s\n\n\t\tVous recevrez alors a message contenant votre nouveau mot de passe.\n\t\tVous pourrez changer ce mot de passe depuis les paramètres de votre compte une fois connecté.\n\n\t\tInformations de connexion :\n\n\t\tAdresse :\t%2$s\n\t\tIdentifiant :\t%3$s" + +#: mod/lostpass.php:72 +#, php-format +msgid "Password reset requested at %s" +msgstr "Requête de réinitialisation de mot de passe à %s" + +#: mod/lostpass.php:92 +msgid "" +"Request could not be verified. (You may have previously submitted it.) " +"Password reset failed." +msgstr "Impossible d'honorer cette demande. (Vous l'avez peut-être déjà utilisée par le passé.) La réinitialisation a échoué." + +#: mod/lostpass.php:109 boot.php:1719 +msgid "Password Reset" +msgstr "Réinitialiser le mot de passe" + +#: mod/lostpass.php:110 +msgid "Your password has been reset as requested." +msgstr "Votre mot de passe a bien été réinitialisé." + +#: mod/lostpass.php:111 +msgid "Your new password is" +msgstr "Votre nouveau mot de passe est " + +#: mod/lostpass.php:112 +msgid "Save or copy your new password - and then" +msgstr "Sauvez ou copiez ce nouveau mot de passe - puis" + +#: mod/lostpass.php:113 +msgid "click here to login" +msgstr "cliquez ici pour vous connecter" + +#: mod/lostpass.php:114 +msgid "" +"Your password may be changed from the Settings page after " +"successful login." +msgstr "Votre mot de passe peut être changé depuis la page <em>Réglages</em>, une fois que vous serez connecté." + +#: mod/lostpass.php:125 +#, php-format +msgid "" +"\n" +"\t\t\t\tDear %1$s,\n" +"\t\t\t\t\tYour password has been changed as requested. Please retain this\n" +"\t\t\t\tinformation for your records (or change your password immediately to\n" +"\t\t\t\tsomething that you will remember).\n" +"\t\t\t" +msgstr "\n\t\t\t\tChère/Cher %1$s,\n\t\t\t\t\tVotre mot de passe a été changé ainsi que vous l’avez demandé. Veuillez conserver cette informations dans vos archives (ou changer immédiatement votre mot de passe pour un autre dont vous vous souviendrez).\n\t\t\t" + +#: mod/lostpass.php:131 +#, php-format +msgid "" +"\n" +"\t\t\t\tYour login details are as follows:\n" +"\n" +"\t\t\t\tSite Location:\t%1$s\n" +"\t\t\t\tLogin Name:\t%2$s\n" +"\t\t\t\tPassword:\t%3$s\n" +"\n" +"\t\t\t\tYou may change that password from your account settings page after logging in.\n" +"\t\t\t" +msgstr "\n\t\t\t\tVoici vos informations de connexion :\n\n\t\t\t\tAdresse :\t%1$s\n\t\t\t\tIdentifiant :\t%2$s\n\t\t\t\tMot de passe :\t%3$s\n\n\t\t\t\tVous pourrez changer votre mot de passe dans les paramètres de votre compte une fois connecté.\n\t\t\t" + +#: mod/lostpass.php:147 +#, php-format +msgid "Your password has been changed at %s" +msgstr "Votre mot de passe a été modifié à %s" + +#: mod/lostpass.php:159 +msgid "Forgot your Password?" +msgstr "Mot de passe oublié ?" + +#: mod/lostpass.php:160 +msgid "" +"Enter your email address and submit to have your password reset. Then check " +"your email for further instructions." +msgstr "Entrez votre adresse de courriel et validez pour réinitialiser votre mot de passe. Vous recevrez la suite des instructions par courriel." + +#: mod/lostpass.php:161 boot.php:1707 +msgid "Nickname or Email: " +msgstr "Pseudo ou eMail : " + +#: mod/lostpass.php:162 +msgid "Reset" +msgstr "Réinitialiser" + +#: mod/hcard.php:10 +msgid "No profile" +msgstr "Aucun profil" + +#: mod/help.php:41 +msgid "Help:" +msgstr "Aide :" + +#: mod/help.php:53 mod/p.php:16 mod/p.php:43 mod/p.php:52 mod/fetch.php:12 +#: mod/fetch.php:39 mod/fetch.php:48 index.php:284 +msgid "Not Found" +msgstr "Non trouvé" + +#: mod/help.php:56 index.php:287 +msgid "Page not found." +msgstr "Page introuvable." + +#: mod/wall_upload.php:20 mod/wall_upload.php:33 mod/wall_upload.php:86 +#: mod/wall_upload.php:122 mod/wall_upload.php:125 mod/wall_attach.php:17 +#: mod/wall_attach.php:25 mod/wall_attach.php:76 +msgid "Invalid request." +msgstr "Requête invalide." + +#: mod/wall_upload.php:151 mod/profile_photo.php:150 mod/photos.php:806 +#, php-format +msgid "Image exceeds size limit of %s" +msgstr "L'image dépasse la taille limite de %s" + +#: mod/wall_upload.php:188 mod/profile_photo.php:159 mod/photos.php:846 +msgid "Unable to process image." +msgstr "Impossible de traiter l'image." + +#: mod/wall_upload.php:221 mod/profile_photo.php:307 mod/photos.php:873 +msgid "Image upload failed." +msgstr "Le téléversement de l'image a échoué." + +#: mod/lockview.php:31 mod/lockview.php:39 +msgid "Remote privacy information not available." +msgstr "Informations de confidentialité indisponibles." + +#: mod/lockview.php:48 +msgid "Visible to:" +msgstr "Visible par:" + +#: mod/directory.php:205 view/theme/vier/theme.php:201 +#: view/theme/diabook/theme.php:525 +msgid "Global Directory" +msgstr "Annuaire global" + +#: mod/directory.php:207 +msgid "Find on this site" +msgstr "Trouver sur ce site" + +#: mod/directory.php:209 +msgid "Results for:" +msgstr "Résultats pour :" + +#: mod/directory.php:211 +msgid "Site Directory" +msgstr "Annuaire local" + +#: mod/directory.php:218 +msgid "No entries (some entries may be hidden)." +msgstr "Aucune entrée (certaines peuvent être cachées)." + +#: mod/openid.php:24 +msgid "OpenID protocol error. No ID returned." +msgstr "Erreur de protocole OpenID. Pas d'ID en retour." + +#: mod/openid.php:60 +msgid "" +"Account not found and OpenID registration is not permitted on this site." +msgstr "Compte introuvable, et l'inscription OpenID n'est pas autorisée sur ce site." + +#: mod/uimport.php:50 mod/register.php:191 +msgid "" +"This site has exceeded the number of allowed daily account registrations. " +"Please try again tomorrow." +msgstr "Le nombre d'inscriptions quotidiennes pour ce site a été dépassé. Merci de réessayer demain." + +#: mod/uimport.php:64 mod/register.php:286 +msgid "Import" +msgstr "Importer" + +#: mod/uimport.php:66 +msgid "Move account" +msgstr "Migrer le compte" + +#: mod/uimport.php:67 +msgid "You can import an account from another Friendica server." +msgstr "Vous pouvez importer un compte d'un autre serveur Friendica." + +#: mod/uimport.php:68 +msgid "" +"You need to export your account from the old server and upload it here. We " +"will recreate your old account here with all your contacts. We will try also" +" to inform your friends that you moved here." +msgstr "Vous devez exporter votre compte à partir de l'ancien serveur et le téléverser ici. Nous recréerons votre ancien compte ici avec tous vos contacts. Nous tenterons également d'informer vos amis que vous avez déménagé ici." + +#: mod/uimport.php:69 +msgid "" +"This feature is experimental. We can't import contacts from the OStatus " +"network (GNU Social/Statusnet) or from Diaspora" +msgstr "Cette fonctionalité est expérimentale. Il n'est pas possible d'importer des contacts depuis le réseau OStatus (GNU Social/Statusnet) ou depuis Diaspora." + +#: mod/uimport.php:70 +msgid "Account file" +msgstr "Fichier du compte" + +#: mod/uimport.php:70 +msgid "" +"To export your account, go to \"Settings->Export your personal data\" and " +"select \"Export account\"" +msgstr "Pour exporter votre compte, allez dans \"Paramètres> Exporter vos données personnelles\" et sélectionnez \"exportation de compte\"" + +#: mod/nogroup.php:41 mod/viewcontacts.php:97 mod/contacts.php:586 +#: mod/contacts.php:944 +#, php-format +msgid "Visit %s's profile [%s]" +msgstr "Visiter le profil de %s [%s]" + +#: mod/nogroup.php:42 mod/contacts.php:945 +msgid "Edit contact" +msgstr "Éditer le contact" + +#: mod/nogroup.php:63 +msgid "Contacts who are not members of a group" +msgstr "Contacts qui n’appartiennent à aucun groupe" + +#: mod/match.php:33 +msgid "No keywords to match. Please add keywords to your default profile." +msgstr "Aucun mot-clé en correspondance. Merci d'ajouter des mots-clés à votre profil par défaut." + +#: mod/match.php:86 +msgid "is interested in:" +msgstr "s'intéresse à :" + +#: mod/match.php:100 +msgid "Profile Match" +msgstr "Correpondance de profils" + +#: mod/match.php:107 mod/dirfind.php:240 +msgid "No matches" +msgstr "Aucune correspondance" + +#: mod/uexport.php:29 +msgid "Export account" +msgstr "Exporter le compte" + +#: mod/uexport.php:29 +msgid "" +"Export your account info and contacts. Use this to make a backup of your " +"account and/or to move it to another server." +msgstr "Exportez votre compte, vos infos et vos contacts. Vous pourrez utiliser le résultat comme sauvegarde et/ou pour le ré-importer sur un autre serveur." + +#: mod/uexport.php:30 +msgid "Export all" +msgstr "Tout exporter" + +#: mod/uexport.php:30 +msgid "" +"Export your accout info, contacts and all your items as json. Could be a " +"very big file, and could take a lot of time. Use this to make a full backup " +"of your account (photos are not exported)" +msgstr "Exportez votre compte, vos infos, vos contacts et toutes vos publications (en JSON). Le fichier résultant peut être extrêmement volumineux, et sa production peut durer longtemps. Vous pourrez l'utiliser pour faire une sauvegarde complète (à part les photos)." + +#: mod/uexport.php:37 mod/settings.php:95 +msgid "Export personal data" +msgstr "Exporter" + +#: mod/invite.php:27 +msgid "Total invitation limit exceeded." +msgstr "La limite d'invitation totale est éxédée." + +#: mod/invite.php:49 +#, php-format +msgid "%s : Not a valid email address." +msgstr "%s : Adresse de courriel invalide." + +#: mod/invite.php:73 +msgid "Please join us on Friendica" +msgstr "Rejoignez-nous sur Friendica" + +#: mod/invite.php:84 +msgid "Invitation limit exceeded. Please contact your site administrator." +msgstr "Limite d'invitation exédée. Veuillez contacter l'administrateur de votre site." + +#: mod/invite.php:89 +#, php-format +msgid "%s : Message delivery failed." +msgstr "%s : L'envoi du message a échoué." + +#: mod/invite.php:93 +#, php-format +msgid "%d message sent." +msgid_plural "%d messages sent." +msgstr[0] "%d message envoyé." +msgstr[1] "%d messages envoyés." + +#: mod/invite.php:112 +msgid "You have no more invitations available" +msgstr "Vous n'avez plus d'invitations disponibles" + +#: mod/invite.php:120 +#, php-format +msgid "" +"Visit %s for a list of public sites that you can join. Friendica members on " +"other sites can all connect with each other, as well as with members of many" +" other social networks." +msgstr "Visitez %s pour une liste des sites publics que vous pouvez rejoindre. Les membres de Friendica appartenant à d'autres sites peuvent s'interconnecter, ainsi qu'avec les membres de plusieurs autres réseaux sociaux." + +#: mod/invite.php:122 +#, php-format +msgid "" +"To accept this invitation, please visit and register at %s or any other " +"public Friendica website." +msgstr "Pour accepter cette invitation, merci d'aller vous inscrire sur %s, ou n'importe quel autre site Friendica public." + +#: mod/invite.php:123 +#, php-format +msgid "" +"Friendica sites all inter-connect to create a huge privacy-enhanced social " +"web that is owned and controlled by its members. They can also connect with " +"many traditional social networks. See %s for a list of alternate Friendica " +"sites you can join." +msgstr "Les sites Friendica sont tous interconnectés pour créer un immense réseau social respectueux de la vie privée, possédé et contrôllé par ses membres. Ils peuvent également interagir avec plusieurs réseaux sociaux traditionnels. Voir %s pour une liste d'autres sites Friendica que vous pourriez rejoindre." + +#: mod/invite.php:126 +msgid "" +"Our apologies. This system is not currently configured to connect with other" +" public sites or invite members." +msgstr "Toutes nos excuses. Ce système n'est pas configuré pour se connecter à d'autres sites publics ou inviter de nouveaux membres." + +#: mod/invite.php:132 +msgid "Send invitations" +msgstr "Envoyer des invitations" + +#: mod/invite.php:133 +msgid "Enter email addresses, one per line:" +msgstr "Entrez les adresses email, une par ligne :" + +#: mod/invite.php:134 mod/wallmessage.php:151 mod/message.php:351 +#: mod/message.php:541 +msgid "Your message:" +msgstr "Votre message:" + +#: mod/invite.php:135 +msgid "" +"You are cordially invited to join me and other close friends on Friendica - " +"and help us to create a better social web." +msgstr "Vous êtes cordialement invité à me rejoindre sur Friendica, et nous aider ainsi à créer un meilleur web social." + +#: mod/invite.php:137 +msgid "You will need to supply this invitation code: $invite_code" +msgstr "Vous devrez fournir ce code d'invitation : $invite_code" + +#: mod/invite.php:137 +msgid "" +"Once you have registered, please connect with me via my profile page at:" +msgstr "Une fois inscrit, connectez-vous à la page de mon profil sur :" + +#: mod/invite.php:139 +msgid "" +"For more information about the Friendica project and why we feel it is " +"important, please visit http://friendica.com" +msgstr "Pour plus d'information sur le projet Friendica, et pourquoi nous croyons qu'il est important, merci de visiter http://friendica.com" + +#: mod/invite.php:140 mod/localtime.php:45 mod/message.php:357 +#: mod/message.php:547 mod/manage.php:143 mod/crepair.php:154 +#: mod/content.php:728 mod/contacts.php:577 mod/fsuggest.php:107 +#: mod/mood.php:137 mod/poke.php:199 mod/profiles.php:681 mod/install.php:272 +#: mod/install.php:312 mod/photos.php:1125 mod/photos.php:1249 +#: mod/photos.php:1566 mod/photos.php:1617 mod/photos.php:1665 +#: mod/photos.php:1753 mod/events.php:507 object/Item.php:720 +#: view/theme/frio/config.php:59 view/theme/cleanzero/config.php:80 +#: view/theme/quattro/config.php:64 view/theme/dispy/config.php:70 +#: view/theme/vier/config.php:107 view/theme/diabook/theme.php:633 +#: view/theme/diabook/config.php:148 view/theme/duepuntozero/config.php:59 +msgid "Submit" +msgstr "Envoyer" + +#: mod/fbrowser.php:41 mod/fbrowser.php:62 mod/photos.php:63 +#: mod/photos.php:193 mod/photos.php:1107 mod/photos.php:1233 +#: mod/photos.php:1256 mod/photos.php:1825 mod/photos.php:1837 +#: view/theme/diabook/theme.php:499 +msgid "Contact Photos" +msgstr "Photos du contact" + +#: mod/fbrowser.php:133 +msgid "Files" +msgstr "Fichiers" + +#: mod/maintenance.php:5 +msgid "System down for maintenance" +msgstr "Système indisponible pour cause de maintenance" + +#: mod/profperm.php:19 mod/group.php:72 index.php:396 +msgid "Permission denied" +msgstr "Permission refusée" + +#: mod/profperm.php:25 mod/profperm.php:56 +msgid "Invalid profile identifier." +msgstr "Identifiant de profil invalide." + +#: mod/profperm.php:102 +msgid "Profile Visibility Editor" +msgstr "Éditer la visibilité du profil" + +#: mod/profperm.php:106 mod/group.php:223 +msgid "Click on a contact to add or remove." +msgstr "Cliquez sur un contact pour l'ajouter ou le supprimer." + +#: mod/profperm.php:115 +msgid "Visible To" +msgstr "Visible par" + +#: mod/profperm.php:131 +msgid "All Contacts (with secure profile access)" +msgstr "Tous les contacts (ayant un accès sécurisé)" + +#: mod/viewcontacts.php:72 +msgid "No contacts." +msgstr "Aucun contact." + +#: mod/tagrm.php:41 +msgid "Tag removed" +msgstr "Étiquette supprimée" + +#: mod/tagrm.php:79 +msgid "Remove Item Tag" +msgstr "Enlever l'étiquette de l'élément" + +#: mod/tagrm.php:81 +msgid "Select a tag to remove: " +msgstr "Sélectionner une étiquette à supprimer: " + +#: mod/tagrm.php:93 mod/delegate.php:139 +msgid "Remove" +msgstr "Utiliser comme photo de profil" + +#: mod/wall_attach.php:94 +msgid "Sorry, maybe your upload is bigger than the PHP configuration allows" +msgstr "Désolé, il semble que votre fichier est plus important que ce que la configuration de PHP autorise" + +#: mod/wall_attach.php:94 +msgid "Or - did you try to upload an empty file?" +msgstr "Ou — auriez-vous essayé de télécharger un fichier vide ?" + +#: mod/wall_attach.php:105 +#, php-format +msgid "File exceeds size limit of %s" +msgstr "La taille du fichier dépasse la limite de %s" + +#: mod/wall_attach.php:156 mod/wall_attach.php:172 +msgid "File upload failed." +msgstr "Le téléversement a échoué." + +#: mod/allfriends.php:43 +msgid "No friends to display." +msgstr "Pas d'amis à afficher." + +#: mod/repair_ostatus.php:14 +msgid "Resubscribing to OStatus contacts" +msgstr "Réinscription aux contacts OStatus" + +#: mod/repair_ostatus.php:30 +msgid "Error" +msgstr "Erreur" + +#: mod/repair_ostatus.php:44 mod/ostatus_subscribe.php:51 +msgid "Done" +msgstr "Terminé" + +#: mod/repair_ostatus.php:50 mod/ostatus_subscribe.php:73 +msgid "Keep this window open until done." +msgstr "Veuillez garder cette fenêtre ouverte jusqu'à la fin." + +#: mod/delegate.php:101 +msgid "No potential page delegates located." +msgstr "Pas de délégataire potentiel." + +#: mod/delegate.php:132 +msgid "" +"Delegates are able to manage all aspects of this account/page except for " +"basic account settings. Please do not delegate your personal account to " +"anybody that you do not trust completely." +msgstr "Les délégataires seront capables de gérer tous les aspects de ce compte ou de cette page, à l'exception des réglages de compte. Merci de ne pas déléguer votre compte principal à quelqu'un en qui vous n'avez pas une confiance absolue." + +#: mod/delegate.php:133 +msgid "Existing Page Managers" +msgstr "Gestionnaires existants" + +#: mod/delegate.php:135 +msgid "Existing Page Delegates" +msgstr "Délégataires existants" + +#: mod/delegate.php:137 +msgid "Potential Delegates" +msgstr "Délégataires potentiels" + +#: mod/delegate.php:140 +msgid "Add" +msgstr "Ajouter" + +#: mod/delegate.php:141 +msgid "No entries." +msgstr "Aucune entrée." + +#: mod/credits.php:16 +msgid "Credits" +msgstr "Remerciements" + +#: mod/credits.php:17 +msgid "" +"Friendica is a community project, that would not be possible without the " +"help of many people. Here is a list of those who have contributed to the " +"code or the translation of Friendica. Thank you all!" +msgstr "Friendica est un projet communautaire, qui ne serait pas possible sans l'aide de beaucoup de gens. Voici une liste de ceux qui ont contribué au code ou à la traduction de Friendica. Merci à tous!" + +#: mod/filer.php:30 +msgid "- select -" +msgstr "- choisir -" + +#: mod/subthread.php:103 +#, php-format +msgid "%1$s is following %2$s's %3$s" +msgstr "%1$s suit les %3$s de %2$s" + +#: mod/attach.php:8 +msgid "Item not available." +msgstr "Elément non disponible." + +#: mod/attach.php:20 +msgid "Item was not found." +msgstr "Element introuvable." + +#: mod/follow.php:19 mod/dfrn_request.php:874 +msgid "Submit Request" +msgstr "Envoyer la requête" + +#: mod/follow.php:30 +msgid "You already added this contact." +msgstr "Vous avez déjà ajouté ce contact." + +#: mod/follow.php:39 +msgid "Diaspora support isn't enabled. Contact can't be added." +msgstr "Le support de Diaspora est désactivé. Le contact ne peut pas être ajouté." + +#: mod/follow.php:46 +msgid "OStatus support is disabled. Contact can't be added." +msgstr "Le support d'OStatus est désactivé. Le contact ne peut pas être ajouté." + +#: mod/follow.php:53 +msgid "The network type couldn't be detected. Contact can't be added." +msgstr "Impossible de détecter le type de réseau. Le contact ne peut pas être ajouté." + +#: mod/follow.php:109 mod/dfrn_request.php:860 +msgid "Please answer the following:" +msgstr "Merci de répondre à ce qui suit:" + +#: mod/follow.php:110 mod/dfrn_request.php:861 +#, php-format +msgid "Does %s know you?" +msgstr "Est-ce que %s vous connaît?" + +#: mod/follow.php:110 mod/api.php:106 mod/dfrn_request.php:861 +#: mod/profiles.php:641 mod/profiles.php:645 mod/profiles.php:670 +#: mod/register.php:239 mod/settings.php:1113 mod/settings.php:1119 +#: mod/settings.php:1127 mod/settings.php:1131 mod/settings.php:1136 +#: mod/settings.php:1142 mod/settings.php:1148 mod/settings.php:1154 +#: mod/settings.php:1180 mod/settings.php:1181 mod/settings.php:1182 +#: mod/settings.php:1183 mod/settings.php:1184 +msgid "No" +msgstr "Non" + +#: mod/follow.php:111 mod/dfrn_request.php:865 +msgid "Add a personal note:" +msgstr "Ajouter une note personnelle:" + +#: mod/follow.php:117 mod/dfrn_request.php:871 +msgid "Your Identity Address:" +msgstr "Votre adresse d'identité:" + +#: mod/follow.php:126 mod/contacts.php:624 mod/notifications.php:243 +msgid "Profile URL" +msgstr "URL du Profil" + +#: mod/follow.php:180 +msgid "Contact added" +msgstr "Contact ajouté" + +#: mod/apps.php:7 index.php:240 +msgid "You must be logged in to use addons. " +msgstr "Vous devez être connecté pour utiliser les greffons." + +#: mod/apps.php:11 +msgid "Applications" +msgstr "Applications" + +#: mod/apps.php:14 +msgid "No installed applications." +msgstr "Pas d'application installée." + +#: mod/suggest.php:27 +msgid "Do you really want to delete this suggestion?" +msgstr "Voulez-vous vraiment supprimer cette suggestion ?" + +#: mod/suggest.php:71 +msgid "" +"No suggestions available. If this is a new site, please try again in 24 " +"hours." +msgstr "Aucune suggestion. Si ce site est récent, merci de recommencer dans 24h." + +#: mod/suggest.php:84 mod/suggest.php:104 +msgid "Ignore/Hide" +msgstr "Ignorer/cacher" + +#: mod/p.php:9 +msgid "Not Extended" +msgstr "" + +#: mod/display.php:328 mod/profile.php:155 mod/cal.php:152 +msgid "Access to this profile has been restricted." +msgstr "L'accès au profil a été restreint." + +#: mod/display.php:471 +msgid "Item has been removed." +msgstr "Cet élément a été enlevé." + +#: mod/common.php:86 +msgid "No contacts in common." +msgstr "Pas de contacts en commun." + +#: mod/common.php:134 mod/contacts.php:861 +msgid "Common Friends" +msgstr "Amis communs" + +#: mod/newmember.php:6 +msgid "Welcome to Friendica" +msgstr "Bienvenue sur Friendica" + +#: mod/newmember.php:8 +msgid "New Member Checklist" +msgstr "Checklist du nouvel utilisateur" + +#: mod/newmember.php:12 +msgid "" +"We would like to offer some tips and links to help make your experience " +"enjoyable. Click any item to visit the relevant page. A link to this page " +"will be visible from your home page for two weeks after your initial " +"registration and then will quietly disappear." +msgstr "Nous souhaiterions vous donner quelques astuces et ressources pour rendre votre expérience la plus agréable possible. Cliquez sur n'importe lequel de ces éléments pour visiter la page correspondante. Un lien vers cette page restera visible sur votre page d'accueil pendant les deux semaines qui suivent votre inscription initiale, puis disparaîtra silencieusement." + +#: mod/newmember.php:14 +msgid "Getting Started" +msgstr "Bien démarrer" + +#: mod/newmember.php:18 +msgid "Friendica Walk-Through" +msgstr "Friendica pas-à-pas" + +#: mod/newmember.php:18 +msgid "" +"On your Quick Start page - find a brief introduction to your " +"profile and network tabs, make some new connections, and find some groups to" +" join." +msgstr "Sur votre page d'accueil, dans Conseils aux nouveaux venus - vous trouverez une rapide introduction aux onglets Profil et Réseau, pourrez vous connecter à Facebook, établir de nouvelles relations, et choisir des groupes à rejoindre." + +#: mod/newmember.php:26 +msgid "Go to Your Settings" +msgstr "Éditer vos Réglages" + +#: mod/newmember.php:26 +msgid "" +"On your Settings page - change your initial password. Also make a " +"note of your Identity Address. This looks just like an email address - and " +"will be useful in making friends on the free social web." +msgstr "Sur la page des Réglages - changez votre mot de passe initial. Notez bien votre Identité. Elle ressemble à une adresse de courriel - et vous sera utile pour vous faire des amis dans le web social libre." + +#: mod/newmember.php:28 +msgid "" +"Review the other settings, particularly the privacy settings. An unpublished" +" directory listing is like having an unlisted phone number. In general, you " +"should probably publish your listing - unless all of your friends and " +"potential friends know exactly how to find you." +msgstr "Vérifiez les autres réglages, tout particulièrement ceux liés à la vie privée. Un profil non listé, c'est un peu comme un numéro sur liste rouge. En général, vous devriez probablement publier votre profil - à moins que tous vos amis (potentiels) sachent déjà comment vous trouver." + +#: mod/newmember.php:36 mod/profile_photo.php:250 mod/profiles.php:700 +msgid "Upload Profile Photo" +msgstr "Téléverser une photo de profil" + +#: mod/newmember.php:36 +msgid "" +"Upload a profile photo if you have not done so already. Studies have shown " +"that people with real photos of themselves are ten times more likely to make" +" friends than people who do not." +msgstr "Téléversez (envoyez) une photo de profil si vous n'en avez pas déjà une. Les études montrent que les gens qui affichent de vraies photos d'eux sont dix fois plus susceptibles de se faire des amis." + +#: mod/newmember.php:38 +msgid "Edit Your Profile" +msgstr "Éditer votre Profil" + +#: mod/newmember.php:38 +msgid "" +"Edit your default profile to your liking. Review the " +"settings for hiding your list of friends and hiding the profile from unknown" +" visitors." +msgstr "Éditez votre profil par défaut à votre convenance. Vérifiez les réglages concernant la visibilité de votre liste d'amis par les visiteurs inconnus." + +#: mod/newmember.php:40 +msgid "Profile Keywords" +msgstr "Mots-clés du profil" + +#: mod/newmember.php:40 +msgid "" +"Set some public keywords for your default profile which describe your " +"interests. We may be able to find other people with similar interests and " +"suggest friendships." +msgstr "Choisissez quelques mots-clé publics pour votre profil par défaut. Ils pourront ainsi décrire vos centres d'intérêt, et nous pourrons vous proposer des contacts qui les partagent." + +#: mod/newmember.php:44 +msgid "Connecting" +msgstr "Connexions" + +#: mod/newmember.php:51 +msgid "Importing Emails" +msgstr "Importer courriels" + +#: mod/newmember.php:51 +msgid "" +"Enter your email access information on your Connector Settings page if you " +"wish to import and interact with friends or mailing lists from your email " +"INBOX" +msgstr "Entrez vos paramètres de courriel dans les Réglages des connecteurs si vous souhaitez importer et interagir avec des amis ou des listes venant de votre Boîte de Réception." + +#: mod/newmember.php:53 +msgid "Go to Your Contacts Page" +msgstr "Consulter vos Contacts" + +#: mod/newmember.php:53 +msgid "" +"Your Contacts page is your gateway to managing friendships and connecting " +"with friends on other networks. Typically you enter their address or site " +"URL in the Add New Contact dialog." +msgstr "Votre page Contacts est le point d'entrée vers la gestion de vos amitiés/relations et la connexion à des amis venant d'autres réseaux. Typiquement, vous pourrez y rentrer leur adresse d'Identité ou l'URL de leur site dans le formulaire Ajouter un nouveau contact." + +#: mod/newmember.php:55 +msgid "Go to Your Site's Directory" +msgstr "Consulter l'Annuaire de votre Site" + +#: mod/newmember.php:55 +msgid "" +"The Directory page lets you find other people in this network or other " +"federated sites. Look for a Connect or Follow link on " +"their profile page. Provide your own Identity Address if requested." +msgstr "La page Annuaire vous permet de trouver d'autres personnes au sein de ce réseaux ou parmi d'autres sites fédérés. Cherchez un lien Relier ou Suivre sur leur profil. Vous pourrez avoir besoin d'indiquer votre adresse d'identité." + +#: mod/newmember.php:57 +msgid "Finding New People" +msgstr "Trouver de nouvelles personnes" + +#: mod/newmember.php:57 +msgid "" +"On the side panel of the Contacts page are several tools to find new " +"friends. We can match people by interest, look up people by name or " +"interest, and provide suggestions based on network relationships. On a brand" +" new site, friend suggestions will usually begin to be populated within 24 " +"hours." +msgstr "Sur le panneau latéral de la page Contacts, il y a plusieurs moyens de trouver de nouveaux amis. Nous pouvons mettre les gens en relation selon leurs intérêts, rechercher des amis par nom ou intérêt, et fournir des suggestions en fonction de la topologie du réseau. Sur un site tout neuf, les suggestions d'amitié devraient commencer à apparaître au bout de 24 heures." + +#: mod/newmember.php:65 +msgid "Group Your Contacts" +msgstr "Grouper vos contacts" + +#: mod/newmember.php:65 +msgid "" +"Once you have made some friends, organize them into private conversation " +"groups from the sidebar of your Contacts page and then you can interact with" +" each group privately on your Network page." +msgstr "Une fois que vous avez trouvé quelques amis, organisez-les en groupes de conversation privés depuis le panneau latéral de la page Contacts. Vous pourrez ensuite interagir avec chaque groupe de manière privée depuis la page Réseau." + +#: mod/newmember.php:68 +msgid "Why Aren't My Posts Public?" +msgstr "Pourquoi mes éléments ne sont pas publics ?" + +#: mod/newmember.php:68 +msgid "" +"Friendica respects your privacy. By default, your posts will only show up to" +" people you've added as friends. For more information, see the help section " +"from the link above." +msgstr "Friendica respecte votre vie privée. Par défaut, toutes vos publications seront seulement montrés à vos amis. Pour plus d'information, consultez la section \"aide\" du lien ci-dessus." + +#: mod/newmember.php:73 +msgid "Getting Help" +msgstr "Obtenir de l'aide" + +#: mod/newmember.php:77 +msgid "Go to the Help Section" +msgstr "Aller à la section Aide" + +#: mod/newmember.php:77 +msgid "" +"Our help pages may be consulted for detail on other program" +" features and resources." +msgstr "Nos pages d'aide peuvent être consultées pour davantage de détails sur les fonctionnalités ou les ressources." + +#: mod/removeme.php:46 mod/removeme.php:49 +msgid "Remove My Account" +msgstr "Supprimer mon compte" + +#: mod/removeme.php:47 +msgid "" +"This will completely remove your account. Once this has been done it is not " +"recoverable." +msgstr "Ceci supprimera totalement votre compte. Cette opération est irréversible." + +#: mod/removeme.php:48 +msgid "Please enter your password for verification:" +msgstr "Merci de saisir votre mot de passe pour vérification :" + +#: mod/editpost.php:17 mod/editpost.php:27 +msgid "Item not found" +msgstr "Élément introuvable" + +#: mod/editpost.php:40 +msgid "Edit post" +msgstr "Éditer la publication" + +#: mod/network.php:398 +#, php-format +msgid "Warning: This group contains %s member from an insecure network." +msgid_plural "" +"Warning: This group contains %s members from an insecure network." +msgstr[0] "Attention: Ce groupe contient %s membre d'un réseau non-sûr." +msgstr[1] "Attention: Ce groupe contient %s membres d'un réseau non-sûr." + +#: mod/network.php:401 +msgid "Private messages to this group are at risk of public disclosure." +msgstr "Les messages privés envoyés à ce groupe s'exposent à une diffusion incontrôlée." + +#: mod/network.php:468 mod/content.php:119 +msgid "No such group" +msgstr "Groupe inexistant" + +#: mod/network.php:495 mod/group.php:193 mod/content.php:130 +msgid "Group is empty" +msgstr "Groupe vide" + +#: mod/network.php:499 mod/content.php:135 +#, php-format +msgid "Group: %s" +msgstr "Group : %s" + +#: mod/network.php:527 +msgid "Private messages to this person are at risk of public disclosure." +msgstr "Les messages privés envoyés à ce contact s'exposent à une diffusion incontrôlée." + +#: mod/network.php:532 +msgid "Invalid contact." +msgstr "Contact invalide." + +#: mod/network.php:825 +msgid "Commented Order" +msgstr "Tri par commentaires" + +#: mod/network.php:828 +msgid "Sort by Comment Date" +msgstr "Trier par date de commentaire" + +#: mod/network.php:833 +msgid "Posted Order" +msgstr "Tri des publications" + +#: mod/network.php:836 +msgid "Sort by Post Date" +msgstr "Trier par date de publication" + +#: mod/network.php:847 +msgid "Posts that mention or involve you" +msgstr "Publications qui vous concernent" + +#: mod/network.php:855 +msgid "New" +msgstr "Nouveau" + +#: mod/network.php:858 +msgid "Activity Stream - by date" +msgstr "Flux d'activités - par date" + +#: mod/network.php:866 +msgid "Shared Links" +msgstr "Liens partagés" + +#: mod/network.php:869 +msgid "Interesting Links" +msgstr "Liens intéressants" + +#: mod/network.php:877 +msgid "Starred" +msgstr "Mis en avant" + +#: mod/network.php:880 +msgid "Favourite Posts" +msgstr "Publications favorites" + +#: mod/community.php:27 +msgid "Not available." +msgstr "Indisponible." + +#: mod/localtime.php:24 +msgid "Time Conversion" +msgstr "Conversion temporelle" + +#: mod/localtime.php:26 +msgid "" +"Friendica provides this service for sharing events with other networks and " +"friends in unknown timezones." +msgstr "Friendica fournit ce service pour partager des événements avec d'autres réseaux et amis indépendament de leur fuseau horaire." + +#: mod/localtime.php:30 +#, php-format +msgid "UTC time: %s" +msgstr "Temps UTC : %s" + +#: mod/localtime.php:33 +#, php-format +msgid "Current timezone: %s" +msgstr "Zone de temps courante : %s" + +#: mod/localtime.php:36 +#, php-format +msgid "Converted localtime: %s" +msgstr "Temps local converti : %s" + +#: mod/localtime.php:41 +msgid "Please select your timezone:" +msgstr "Sélectionner votre zone :" + +#: mod/bookmarklet.php:41 +msgid "The post was created" +msgstr "La publication a été créée" + +#: mod/group.php:29 +msgid "Group created." +msgstr "Groupe créé." + +#: mod/group.php:35 +msgid "Could not create group." +msgstr "Impossible de créer le groupe." + +#: mod/group.php:47 mod/group.php:140 +msgid "Group not found." +msgstr "Groupe introuvable." + +#: mod/group.php:60 +msgid "Group name changed." +msgstr "Groupe renommé." + +#: mod/group.php:87 +msgid "Save Group" +msgstr "Sauvegarder le groupe" + +#: mod/group.php:93 +msgid "Create a group of contacts/friends." +msgstr "Créez un groupe de contacts/amis." + +#: mod/group.php:113 +msgid "Group removed." +msgstr "Groupe enlevé." + +#: mod/group.php:115 +msgid "Unable to remove group." +msgstr "Impossible d'enlever le groupe." + +#: mod/group.php:177 +msgid "Group Editor" +msgstr "Éditeur de groupe" + +#: mod/group.php:190 +msgid "Members" +msgstr "Membres" + +#: mod/group.php:192 mod/contacts.php:690 +msgid "All Contacts" +msgstr "Tous les contacts" + +#: mod/wallmessage.php:42 mod/wallmessage.php:112 +#, php-format +msgid "Number of daily wall messages for %s exceeded. Message failed." +msgstr "Nombre de messages de mur quotidiens pour %s dépassé. Échec du message." + +#: mod/wallmessage.php:56 mod/message.php:71 +msgid "No recipient selected." +msgstr "Pas de destinataire sélectionné." + +#: mod/wallmessage.php:59 +msgid "Unable to check your home location." +msgstr "Impossible de vérifier votre localisation." + +#: mod/wallmessage.php:62 mod/message.php:78 +msgid "Message could not be sent." +msgstr "Impossible d'envoyer le message." + +#: mod/wallmessage.php:65 mod/message.php:81 +msgid "Message collection failure." +msgstr "Récupération des messages infructueuse." + +#: mod/wallmessage.php:68 mod/message.php:84 +msgid "Message sent." +msgstr "Message envoyé." + +#: mod/wallmessage.php:86 mod/wallmessage.php:95 +msgid "No recipient." +msgstr "Pas de destinataire." + +#: mod/wallmessage.php:142 mod/message.php:341 +msgid "Send Private Message" +msgstr "Envoyer un message privé" + +#: mod/wallmessage.php:143 +#, php-format +msgid "" +"If you wish for %s to respond, please check that the privacy settings on " +"your site allow private mail from unknown senders." +msgstr "Si vous souhaitez que %s réponde, merci de vérifier vos réglages pour autoriser les messages privés venant d'inconnus." + +#: mod/wallmessage.php:144 mod/message.php:342 mod/message.php:536 +msgid "To:" +msgstr "À:" + +#: mod/wallmessage.php:145 mod/message.php:347 mod/message.php:538 +msgid "Subject:" +msgstr "Sujet:" + +#: mod/share.php:38 +msgid "link" +msgstr "lien" + +#: mod/api.php:76 mod/api.php:102 +msgid "Authorize application connection" +msgstr "Autoriser l'application à se connecter" + +#: mod/api.php:77 +msgid "Return to your app and insert this Securty Code:" +msgstr "Retournez à votre application et saisissez ce Code de Sécurité : " + +#: mod/api.php:89 +msgid "Please login to continue." +msgstr "Merci de vous connecter pour continuer." + +#: mod/api.php:104 +msgid "" +"Do you want to authorize this application to access your posts and contacts," +" and/or create new posts for you?" +msgstr "Voulez-vous autoriser cette application à accéder à vos publications et contacts, et/ou à créer des billets à votre place?" + +#: mod/babel.php:17 +msgid "Source (bbcode) text:" +msgstr "Texte source (bbcode) :" + +#: mod/babel.php:23 +msgid "Source (Diaspora) text to convert to BBcode:" +msgstr "Texte source (Diaspora) à convertir en BBcode :" + +#: mod/babel.php:31 +msgid "Source input: " +msgstr "Source input : " + +#: mod/babel.php:35 +msgid "bb2html (raw HTML): " +msgstr "bb2html (HTML brut)" + +#: mod/babel.php:39 +msgid "bb2html: " +msgstr "bb2html : " + +#: mod/babel.php:43 +msgid "bb2html2bb: " +msgstr "bb2html2bb : " + +#: mod/babel.php:47 +msgid "bb2md: " +msgstr "bb2md : " + +#: mod/babel.php:51 +msgid "bb2md2html: " +msgstr "bb2md2html : " + +#: mod/babel.php:55 +msgid "bb2dia2bb: " +msgstr "bb2dia2bb : " + +#: mod/babel.php:59 +msgid "bb2md2html2bb: " +msgstr "bb2md2html2bb : " + +#: mod/babel.php:69 +msgid "Source input (Diaspora format): " +msgstr "Texte source (format Diaspora) :" + +#: mod/babel.php:74 +msgid "diaspora2bb: " +msgstr "diaspora2bb :" + +#: mod/ostatus_subscribe.php:14 +msgid "Subscribing to OStatus contacts" +msgstr "Inscription aux contacts OStatus" + +#: mod/ostatus_subscribe.php:25 +msgid "No contact provided." +msgstr "Pas de contact fourni." + +#: mod/ostatus_subscribe.php:30 +msgid "Couldn't fetch information for contact." +msgstr "Impossible de récupérer les informations pour ce contact." + +#: mod/ostatus_subscribe.php:38 +msgid "Couldn't fetch friends for contact." +msgstr "Impossible de récupérer les amis de ce contact." + +#: mod/ostatus_subscribe.php:65 +msgid "success" +msgstr "réussite" + +#: mod/ostatus_subscribe.php:67 +msgid "failed" +msgstr "échec" + +#: mod/ostatus_subscribe.php:69 mod/content.php:792 object/Item.php:245 +msgid "ignored" +msgstr "ignoré" + +#: mod/dfrn_poll.php:104 mod/dfrn_poll.php:537 +#, php-format +msgid "%1$s welcomes %2$s" +msgstr "%1$s accueille %2$s" + +#: mod/profile.php:179 +msgid "Tips for New Members" +msgstr "Conseils aux nouveaux venus" + +#: mod/message.php:75 +msgid "Unable to locate contact information." +msgstr "Impossible de localiser les informations du contact." + +#: mod/message.php:215 +msgid "Do you really want to delete this message?" +msgstr "Voulez-vous vraiment supprimer ce message ?" + +#: mod/message.php:235 +msgid "Message deleted." +msgstr "Message supprimé." + +#: mod/message.php:266 +msgid "Conversation removed." +msgstr "Conversation supprimée." + +#: mod/message.php:383 +msgid "No messages." +msgstr "Aucun message." + +#: mod/message.php:426 +msgid "Message not available." +msgstr "Message indisponible." + +#: mod/message.php:503 +msgid "Delete message" +msgstr "Effacer message" + +#: mod/message.php:529 mod/message.php:609 +msgid "Delete conversation" +msgstr "Effacer conversation" + +#: mod/message.php:531 +msgid "" +"No secure communications available. You may be able to " +"respond from the sender's profile page." +msgstr "Pas de communications sécurisées possibles. Vous serez peut-être en mesure de répondre depuis la page de profil de l'émetteur." + +#: mod/message.php:535 +msgid "Send Reply" +msgstr "Répondre" + +#: mod/message.php:579 +#, php-format +msgid "Unknown sender - %s" +msgstr "Émetteur inconnu - %s" + +#: mod/message.php:581 +#, php-format +msgid "You and %s" +msgstr "Vous et %s" + +#: mod/message.php:583 +#, php-format +msgid "%s and You" +msgstr "%s et vous" + +#: mod/message.php:612 +msgid "D, d M Y - g:i A" +msgstr "D, d M Y - g:i A" + +#: mod/message.php:615 +#, php-format +msgid "%d message" +msgid_plural "%d messages" +msgstr[0] "%d message" +msgstr[1] "%d messages" + +#: mod/manage.php:139 +msgid "Manage Identities and/or Pages" +msgstr "Gérer les identités et/ou les pages" + +#: mod/manage.php:140 +msgid "" +"Toggle between different identities or community/group pages which share " +"your account details or which you have been granted \"manage\" permissions" +msgstr "Basculez entre les différentes identités ou pages (groupes/communautés) qui se partagent votre compte ou que vous avez été autorisé à gérer." + +#: mod/manage.php:141 +msgid "Select an identity to manage: " +msgstr "Choisir une identité à gérer: " + +#: mod/crepair.php:87 +msgid "Contact settings applied." +msgstr "Réglages du contact appliqués." + +#: mod/crepair.php:89 +msgid "Contact update failed." +msgstr "Impossible d'appliquer les réglages." + +#: mod/crepair.php:114 mod/dfrn_confirm.php:122 mod/fsuggest.php:20 +#: mod/fsuggest.php:92 +msgid "Contact not found." +msgstr "Contact introuvable." + +#: mod/crepair.php:120 +msgid "" +"WARNING: This is highly advanced and if you enter incorrect" +" information your communications with this contact may stop working." +msgstr "ATTENTION: Manipulation réservée aux experts, toute information incorrecte pourrait empêcher la communication avec ce contact." + +#: mod/crepair.php:121 +msgid "" +"Please use your browser 'Back' button now if you are " +"uncertain what to do on this page." +msgstr "une photo" + +#: mod/crepair.php:134 mod/crepair.php:136 +msgid "No mirroring" +msgstr "Pas de miroir" + +#: mod/crepair.php:134 +msgid "Mirror as forwarded posting" +msgstr "" + +#: mod/crepair.php:134 mod/crepair.php:136 +msgid "Mirror as my own posting" +msgstr "" + +#: mod/crepair.php:150 +msgid "Return to contact editor" +msgstr "Retour à l'éditeur de contact" + +#: mod/crepair.php:152 +msgid "Refetch contact data" +msgstr "Récupérer à nouveau les données de contact" + +#: mod/crepair.php:156 +msgid "Remote Self" +msgstr "Identité à distance" + +#: mod/crepair.php:159 +msgid "Mirror postings from this contact" +msgstr "Copier les publications de ce contact" + +#: mod/crepair.php:161 +msgid "" +"Mark this contact as remote_self, this will cause friendica to repost new " +"entries from this contact." +msgstr "Marquer ce contact comme étant remote_self, friendica republiera alors les nouvelles entrées de ce contact." + +#: mod/crepair.php:165 mod/settings.php:665 mod/settings.php:691 +#: mod/admin.php:1375 mod/admin.php:1388 mod/admin.php:1400 mod/admin.php:1416 +msgid "Name" +msgstr "Nom" + +#: mod/crepair.php:166 +msgid "Account Nickname" +msgstr "Pseudo du compte" + +#: mod/crepair.php:167 +msgid "@Tagname - overrides Name/Nickname" +msgstr "@NomEtiquette - prend le pas sur Nom/Pseudo" + +#: mod/crepair.php:168 +msgid "Account URL" +msgstr "URL du compte" + +#: mod/crepair.php:169 +msgid "Friend Request URL" +msgstr "Echec du téléversement de l'image." + +#: mod/crepair.php:170 +msgid "Friend Confirm URL" +msgstr "Accès public refusé." + +#: mod/crepair.php:171 +msgid "Notification Endpoint URL" +msgstr "Aucune photo sélectionnée" + +#: mod/crepair.php:172 +msgid "Poll/Feed URL" +msgstr "Téléverser des photos" + +#: mod/crepair.php:173 +msgid "New photo from this URL" +msgstr "Nouvelle photo depuis cette URL" + +#: mod/dfrn_request.php:100 +msgid "This introduction has already been accepted." +msgstr "Cette introduction a déjà été acceptée." + +#: mod/dfrn_request.php:123 mod/dfrn_request.php:518 +msgid "Profile location is not valid or does not contain profile information." +msgstr "L'emplacement du profil est invalide ou ne contient pas de profil valide." + +#: mod/dfrn_request.php:128 mod/dfrn_request.php:523 +msgid "Warning: profile location has no identifiable owner name." +msgstr "Attention: l'emplacement du profil n'a pas de nom identifiable." + +#: mod/dfrn_request.php:130 mod/dfrn_request.php:525 +msgid "Warning: profile location has no profile photo." +msgstr "Attention: l'emplacement du profil n'a pas de photo de profil." + +#: mod/dfrn_request.php:133 mod/dfrn_request.php:528 +#, 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 paramètre requis n'a pas été trouvé à l'endroit indiqué" +msgstr[1] "%d paramètres requis n'ont pas été trouvés à l'endroit indiqué" + +#: mod/dfrn_request.php:178 +msgid "Introduction complete." +msgstr "Phase d'introduction achevée." + +#: mod/dfrn_request.php:220 +msgid "Unrecoverable protocol error." +msgstr "Erreur de protocole non-récupérable." + +#: mod/dfrn_request.php:248 +msgid "Profile unavailable." +msgstr "Profil indisponible." + +#: mod/dfrn_request.php:273 +#, php-format +msgid "%s has received too many connection requests today." +msgstr "%s a reçu trop de demandes d'introduction aujourd'hui." + +#: mod/dfrn_request.php:274 +msgid "Spam protection measures have been invoked." +msgstr "Des mesures de protection contre le spam ont été déclenchées." + +#: mod/dfrn_request.php:275 +msgid "Friends are advised to please try again in 24 hours." +msgstr "Les relations sont encouragées à attendre 24 heures pour recommencer." + +#: mod/dfrn_request.php:337 +msgid "Invalid locator" +msgstr "Localisateur invalide" + +#: mod/dfrn_request.php:346 +msgid "Invalid email address." +msgstr "Adresse courriel invalide." + +#: mod/dfrn_request.php:373 +msgid "This account has not been configured for email. Request failed." +msgstr "Ce compte n'a pas été configuré pour les échanges de courriel. Requête avortée." + +#: mod/dfrn_request.php:476 +msgid "You have already introduced yourself here." +msgstr "Vous vous êtes déjà présenté ici." + +#: mod/dfrn_request.php:480 +#, php-format +msgid "Apparently you are already friends with %s." +msgstr "Il semblerait que vous soyez déjà ami avec %s." + +#: mod/dfrn_request.php:501 +msgid "Invalid profile URL." +msgstr "URL de profil invalide." + +#: mod/dfrn_request.php:579 mod/contacts.php:208 +msgid "Failed to update contact record." +msgstr "Échec de mise à jour du contact." + +#: mod/dfrn_request.php:600 +msgid "Your introduction has been sent." +msgstr "Votre introduction a été envoyée." + +#: mod/dfrn_request.php:640 +msgid "" +"Remote subscription can't be done for your network. Please subscribe " +"directly on your system." +msgstr "" + +#: mod/dfrn_request.php:663 +msgid "Please login to confirm introduction." +msgstr "Connectez-vous pour confirmer l'introduction." + +#: mod/dfrn_request.php:673 +msgid "" +"Incorrect identity currently logged in. Please login to " +"this profile." +msgstr "Identité incorrecte actuellement connectée. Merci de vous connecter à ce profil." + +#: mod/dfrn_request.php:687 mod/dfrn_request.php:704 +msgid "Confirm" +msgstr "Confirmer" + +#: mod/dfrn_request.php:699 +msgid "Hide this contact" +msgstr "Cacher ce contact" + +#: mod/dfrn_request.php:702 +#, php-format +msgid "Welcome home %s." +msgstr "Bienvenue chez vous, %s." + +#: mod/dfrn_request.php:703 +#, php-format +msgid "Please confirm your introduction/connection request to %s." +msgstr "Merci de confirmer votre demande d'introduction auprès de %s." + +#: mod/dfrn_request.php:832 +msgid "" +"Please enter your 'Identity Address' from one of the following supported " +"communications networks:" +msgstr "Merci d'entrer votre \"adresse d'identité\" de l'un des réseaux de communication suivant:" + +#: mod/dfrn_request.php:853 +#, 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 vous n’êtes pas encore membre du web social libre, suivez ce lien pour trouver un site Friendica ouvert au public et nous rejoindre dès aujourd’hui." + +#: mod/dfrn_request.php:858 +msgid "Friend/Connection Request" +msgstr "Requête de relation/amitié" + +#: mod/dfrn_request.php:859 +msgid "" +"Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, " +"testuser@identi.ca" +msgstr "Exemples : jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, testuser@identi.ca" + +#: mod/dfrn_request.php:868 +msgid "StatusNet/Federated Social Web" +msgstr "StatusNet/Federated Social Web" + +#: mod/dfrn_request.php:870 +#, php-format +msgid "" +" - please do not use this form. Instead, enter %s into your Diaspora search" +" bar." +msgstr " - merci de ne pas utiliser ce formulaire. Entrez plutôt %s dans votre barre de recherche Diaspora." + +#: mod/content.php:325 object/Item.php:95 +msgid "This entry was edited" +msgstr "Cette entrée à été édité" + +#: mod/content.php:621 object/Item.php:429 +#, php-format +msgid "%d comment" +msgid_plural "%d comments" +msgstr[0] "%d commentaire" +msgstr[1] "%d commentaires" + +#: mod/content.php:638 mod/photos.php:1405 object/Item.php:117 +msgid "Private Message" +msgstr "Message privé" + +#: mod/content.php:702 mod/photos.php:1594 object/Item.php:263 +msgid "I like this (toggle)" +msgstr "J'aime" + +#: mod/content.php:702 object/Item.php:263 +msgid "like" +msgstr "aime" + +#: mod/content.php:703 mod/photos.php:1595 object/Item.php:264 +msgid "I don't like this (toggle)" +msgstr "Je n'aime pas" + +#: mod/content.php:703 object/Item.php:264 +msgid "dislike" +msgstr "n'aime pas" + +#: mod/content.php:705 object/Item.php:266 +msgid "Share this" +msgstr "Partager" + +#: mod/content.php:705 object/Item.php:266 +msgid "share" +msgstr "partager" + +#: mod/content.php:725 mod/photos.php:1614 mod/photos.php:1662 +#: mod/photos.php:1750 object/Item.php:717 +msgid "This is you" +msgstr "C'est vous" + +#: mod/content.php:727 mod/content.php:945 mod/photos.php:1616 +#: mod/photos.php:1664 mod/photos.php:1752 object/Item.php:403 +#: object/Item.php:719 boot.php:903 +msgid "Comment" +msgstr "Commenter" + +#: mod/content.php:729 object/Item.php:721 +msgid "Bold" +msgstr "Gras" + +#: mod/content.php:730 object/Item.php:722 +msgid "Italic" +msgstr "Italique" + +#: mod/content.php:731 object/Item.php:723 +msgid "Underline" +msgstr "Souligné" + +#: mod/content.php:732 object/Item.php:724 +msgid "Quote" +msgstr "Citation" + +#: mod/content.php:733 object/Item.php:725 +msgid "Code" +msgstr "Code" + +#: mod/content.php:734 object/Item.php:726 +msgid "Image" +msgstr "Image" + +#: mod/content.php:735 object/Item.php:727 +msgid "Link" +msgstr "Lien" + +#: mod/content.php:736 object/Item.php:728 +msgid "Video" +msgstr "Vidéo" + +#: mod/content.php:746 mod/settings.php:725 object/Item.php:122 +#: object/Item.php:124 +msgid "Edit" +msgstr "Éditer" + +#: mod/content.php:771 object/Item.php:227 +msgid "add star" +msgstr "mett en avant" + +#: mod/content.php:772 object/Item.php:228 +msgid "remove star" +msgstr "ne plus mettre en avant" + +#: mod/content.php:773 object/Item.php:229 +msgid "toggle star status" +msgstr "mettre en avant" + +#: mod/content.php:776 object/Item.php:232 +msgid "starred" +msgstr "mis en avant" + +#: mod/content.php:777 mod/content.php:798 object/Item.php:252 +msgid "add tag" +msgstr "ajouter une étiquette" + +#: mod/content.php:787 object/Item.php:240 +msgid "ignore thread" +msgstr "ignorer le fil" + +#: mod/content.php:788 object/Item.php:241 +msgid "unignore thread" +msgstr "Ne plus ignorer le fil" + +#: mod/content.php:789 object/Item.php:242 +msgid "toggle ignore status" +msgstr "Ignorer le statut" + +#: mod/content.php:803 object/Item.php:137 +msgid "save to folder" +msgstr "sauver vers dossier" + +#: mod/content.php:848 object/Item.php:201 +msgid "I will attend" +msgstr "Je vais participer" + +#: mod/content.php:848 object/Item.php:201 +msgid "I will not attend" +msgstr "Je ne vais pas participer" + +#: mod/content.php:848 object/Item.php:201 +msgid "I might attend" +msgstr "Je vais peut-être participer" + +#: mod/content.php:912 object/Item.php:369 +msgid "to" +msgstr "à" + +#: mod/content.php:913 object/Item.php:371 +msgid "Wall-to-Wall" +msgstr "Inter-mur" + +#: mod/content.php:914 object/Item.php:372 +msgid "via Wall-To-Wall:" +msgstr "en Inter-mur:" + +#: mod/contacts.php:128 +#, php-format +msgid "%d contact edited." +msgid_plural "%d contacts edited." +msgstr[0] "" +msgstr[1] "" + +#: mod/contacts.php:159 mod/contacts.php:368 +msgid "Could not access contact record." +msgstr "Impossible d'accéder à l'enregistrement du contact." + +#: mod/contacts.php:173 +msgid "Could not locate selected profile." +msgstr "Impossible de localiser le profil séléctionné." + +#: mod/contacts.php:206 +msgid "Contact updated." +msgstr "Contact mis à jour." + +#: mod/contacts.php:389 +msgid "Contact has been blocked" +msgstr "Le contact a été bloqué" + +#: mod/contacts.php:389 +msgid "Contact has been unblocked" +msgstr "Le contact n'est plus bloqué" + +#: mod/contacts.php:400 +msgid "Contact has been ignored" +msgstr "Le contact a été ignoré" + +#: mod/contacts.php:400 +msgid "Contact has been unignored" +msgstr "Le contact n'est plus ignoré" + +#: mod/contacts.php:412 +msgid "Contact has been archived" +msgstr "Contact archivé" + +#: mod/contacts.php:412 +msgid "Contact has been unarchived" +msgstr "Contact désarchivé" + +#: mod/contacts.php:437 +msgid "Drop contact" +msgstr "Supprimer contact" + +#: mod/contacts.php:440 mod/contacts.php:799 +msgid "Do you really want to delete this contact?" +msgstr "Voulez-vous vraiment supprimer ce contact?" + +#: mod/contacts.php:457 +msgid "Contact has been removed." +msgstr "Ce contact a été retiré." + +#: mod/contacts.php:498 +#, php-format +msgid "You are mutual friends with %s" +msgstr "Vous êtes ami (et réciproquement) avec %s" + +#: mod/contacts.php:502 +#, php-format +msgid "You are sharing with %s" +msgstr "Vous partagez avec %s" + +#: mod/contacts.php:507 +#, php-format +msgid "%s is sharing with you" +msgstr "%s partage avec vous" + +#: mod/contacts.php:527 +msgid "Private communications are not available for this contact." +msgstr "Les communications privées ne sont pas disponibles pour ce contact." + +#: mod/contacts.php:530 mod/admin.php:860 +msgid "Never" +msgstr "Jamais" + +#: mod/contacts.php:534 +msgid "(Update was successful)" +msgstr "(Mise à jour effectuée avec succès)" + +#: mod/contacts.php:534 +msgid "(Update was not successful)" +msgstr "(Échec de la mise à jour)" + +#: mod/contacts.php:536 mod/contacts.php:978 +msgid "Suggest friends" +msgstr "Suggérer amitié/contact" + +#: mod/contacts.php:540 +#, php-format +msgid "Network type: %s" +msgstr "Type de réseau %s" + +#: mod/contacts.php:553 +msgid "Communications lost with this contact!" +msgstr "Communications perdues avec ce contact !" + +#: mod/contacts.php:556 +msgid "Fetch further information for feeds" +msgstr "Chercher plus d'informations pour les flux" + +#: mod/contacts.php:557 mod/admin.php:869 +msgid "Disabled" +msgstr "Désactivé" + +#: mod/contacts.php:557 +msgid "Fetch information" +msgstr "Récupérer informations" + +#: mod/contacts.php:557 +msgid "Fetch information and keywords" +msgstr "Récupérer informations" + +#: mod/contacts.php:575 +msgid "Contact" +msgstr "Contact" + +#: mod/contacts.php:578 +msgid "Profile Visibility" +msgstr "Visibilité du profil" + +#: mod/contacts.php:579 +#, php-format +msgid "" +"Please choose the profile you would like to display to %s when viewing your " +"profile securely." +msgstr "Merci de choisir le profil que vous souhaitez montrer à %s lorsqu'il vous rend visite de manière sécurisée." + +#: mod/contacts.php:580 +msgid "Contact Information / Notes" +msgstr "Informations de contact / Notes" + +#: mod/contacts.php:581 +msgid "Edit contact notes" +msgstr "Éditer les notes des contacts" + +#: mod/contacts.php:587 +msgid "Block/Unblock contact" +msgstr "Bloquer/débloquer ce contact" + +#: mod/contacts.php:588 +msgid "Ignore contact" +msgstr "Ignorer ce contact" + +#: mod/contacts.php:589 +msgid "Repair URL settings" +msgstr "Réglages de réparation des URL" + +#: mod/contacts.php:590 +msgid "View conversations" +msgstr "Voir les conversations" + +#: mod/contacts.php:596 +msgid "Last update:" +msgstr "Dernière mise-à-jour :" + +#: mod/contacts.php:598 +msgid "Update public posts" +msgstr "Mettre à jour les publications publiques:" + +#: mod/contacts.php:600 mod/contacts.php:988 +msgid "Update now" +msgstr "Mettre à jour" + +#: mod/contacts.php:605 mod/contacts.php:803 mod/contacts.php:997 +#: mod/admin.php:1394 +msgid "Unblock" +msgstr "Débloquer" + +#: mod/contacts.php:605 mod/contacts.php:803 mod/contacts.php:997 +#: mod/admin.php:1393 +msgid "Block" +msgstr "Bloquer" + +#: mod/contacts.php:606 mod/contacts.php:804 mod/contacts.php:1005 +msgid "Unignore" +msgstr "Ne plus ignorer" + +#: mod/contacts.php:606 mod/contacts.php:804 mod/contacts.php:1005 +#: mod/notifications.php:60 mod/notifications.php:179 +#: mod/notifications.php:251 +msgid "Ignore" +msgstr "Ignorer" + +#: mod/contacts.php:610 +msgid "Currently blocked" +msgstr "Actuellement bloqué" + +#: mod/contacts.php:611 +msgid "Currently ignored" +msgstr "Actuellement ignoré" + +#: mod/contacts.php:612 +msgid "Currently archived" +msgstr "Actuellement archivé" + +#: mod/contacts.php:613 mod/notifications.php:172 mod/notifications.php:239 +msgid "Hide this contact from others" +msgstr "Cacher ce contact aux autres" + +#: mod/contacts.php:613 +msgid "" +"Replies/likes to your public posts may still be visible" +msgstr "Les réponses et \"j'aime\" à vos publications publiques peuvent être toujours visibles" + +#: mod/contacts.php:614 +msgid "Notification for new posts" +msgstr "Notification des nouvelles publications" + +#: mod/contacts.php:614 +msgid "Send a notification of every new post of this contact" +msgstr "Envoyer une notification de chaque nouveau message en provenance de ce contact" + +#: mod/contacts.php:617 +msgid "Blacklisted keywords" +msgstr "Mots-clés sur la liste noire" + +#: mod/contacts.php:617 +msgid "" +"Comma separated list of keywords that should not be converted to hashtags, " +"when \"Fetch information and keywords\" is selected" +msgstr "Liste de mots-clés separés par des virgules qui ne doivent pas être converti en mots-dièse quand « Récupérer informations et mots-clés » est sélectionné." + +#: mod/contacts.php:633 +msgid "Actions" +msgstr "Actions" + +#: mod/contacts.php:636 +msgid "Contact Settings" +msgstr "Paramètres du Contact" + +#: mod/contacts.php:682 +msgid "Suggestions" +msgstr "Suggestions" + +#: mod/contacts.php:685 +msgid "Suggest potential friends" +msgstr "Suggérer des amis potentiels" + +#: mod/contacts.php:693 +msgid "Show all contacts" +msgstr "Montrer tous les contacts" + +#: mod/contacts.php:698 +msgid "Unblocked" +msgstr "Non-bloqués" + +#: mod/contacts.php:701 +msgid "Only show unblocked contacts" +msgstr "Ne montrer que les contacts non-bloqués" + +#: mod/contacts.php:707 +msgid "Blocked" +msgstr "Bloqués" + +#: mod/contacts.php:710 +msgid "Only show blocked contacts" +msgstr "Ne montrer que les contacts bloqués" + +#: mod/contacts.php:716 +msgid "Ignored" +msgstr "Ignorés" + +#: mod/contacts.php:719 +msgid "Only show ignored contacts" +msgstr "Ne montrer que les contacts ignorés" + +#: mod/contacts.php:725 +msgid "Archived" +msgstr "Archivés" + +#: mod/contacts.php:728 +msgid "Only show archived contacts" +msgstr "Ne montrer que les contacts archivés" + +#: mod/contacts.php:734 +msgid "Hidden" +msgstr "Cachés" + +#: mod/contacts.php:737 +msgid "Only show hidden contacts" +msgstr "Ne montrer que les contacts masqués" + +#: mod/contacts.php:794 +msgid "Search your contacts" +msgstr "Rechercher dans vos contacts" + +#: mod/contacts.php:802 mod/settings.php:158 mod/settings.php:689 +msgid "Update" +msgstr "Mises-à-jour" + +#: mod/contacts.php:805 mod/contacts.php:1013 +msgid "Archive" +msgstr "Archiver" + +#: mod/contacts.php:805 mod/contacts.php:1013 +msgid "Unarchive" +msgstr "Désarchiver" + +#: mod/contacts.php:808 +msgid "Batch Actions" +msgstr "Actions multiples" + +#: mod/contacts.php:854 +msgid "View all contacts" +msgstr "Voir tous les contacts" + +#: mod/contacts.php:864 +msgid "View all common friends" +msgstr "Voir tous les amis communs" + +#: mod/contacts.php:871 +msgid "Advanced Contact Settings" +msgstr "Réglages avancés du contact" + +#: mod/contacts.php:916 +msgid "Mutual Friendship" +msgstr "Relation réciproque" + +#: mod/contacts.php:920 +msgid "is a fan of yours" +msgstr "Vous suit" + +#: mod/contacts.php:924 +msgid "you are a fan of" +msgstr "Vous le/la suivez" + +#: mod/contacts.php:999 +msgid "Toggle Blocked status" +msgstr "(dés)activer l'état \"bloqué\"" + +#: mod/contacts.php:1007 +msgid "Toggle Ignored status" +msgstr "(dés)activer l'état \"ignoré\"" + +#: mod/contacts.php:1015 +msgid "Toggle Archive status" +msgstr "(dés)activer l'état \"archivé\"" + +#: mod/contacts.php:1023 +msgid "Delete contact" +msgstr "Effacer ce contact" + +#: mod/dfrn_confirm.php:66 mod/profiles.php:19 mod/profiles.php:134 +#: mod/profiles.php:180 mod/profiles.php:610 +msgid "Profile not found." +msgstr "Profil introuvable." + +#: mod/dfrn_confirm.php:123 +msgid "" +"This may occasionally happen if contact was requested by both persons and it" +" has already been approved." +msgstr "Ceci peut se produire lorsque le contact a été requis par les deux personnes et a déjà été approuvé." + +#: mod/dfrn_confirm.php:242 +msgid "Response from remote site was not understood." +msgstr "Réponse du site distant incomprise." + +#: mod/dfrn_confirm.php:251 mod/dfrn_confirm.php:256 +msgid "Unexpected response from remote site: " +msgstr "Réponse inattendue du site distant : " + +#: mod/dfrn_confirm.php:265 +msgid "Confirmation completed successfully." +msgstr "Confirmation achevée avec succès." + +#: mod/dfrn_confirm.php:267 mod/dfrn_confirm.php:281 mod/dfrn_confirm.php:288 +msgid "Remote site reported: " +msgstr "Alerte du site distant : " + +#: mod/dfrn_confirm.php:279 +msgid "Temporary failure. Please wait and try again." +msgstr "Échec temporaire. Merci de recommencer ultérieurement." + +#: mod/dfrn_confirm.php:286 +msgid "Introduction failed or was revoked." +msgstr "Introduction échouée ou annulée." + +#: mod/dfrn_confirm.php:415 +msgid "Unable to set contact photo." +msgstr "Impossible de définir la photo du contact." + +#: mod/dfrn_confirm.php:553 +#, php-format +msgid "No user record found for '%s' " +msgstr "Pas d'utilisateur trouvé pour '%s' " + +#: mod/dfrn_confirm.php:563 +msgid "Our site encryption key is apparently messed up." +msgstr "Notre clé de chiffrement de site est apparemment corrompue." + +#: mod/dfrn_confirm.php:574 +msgid "Empty site URL was provided or URL could not be decrypted by us." +msgstr "URL de site absente ou indéchiffrable." + +#: mod/dfrn_confirm.php:595 +msgid "Contact record was not found for you on our site." +msgstr "Pas d'entrée pour ce contact sur notre site." + +#: mod/dfrn_confirm.php:609 +#, php-format +msgid "Site public key not available in contact record for URL %s." +msgstr "La clé publique du site ne se trouve pas dans l'enregistrement du contact pour l'URL %s." + +#: mod/dfrn_confirm.php:629 +msgid "" +"The ID provided by your system is a duplicate on our system. It should work " +"if you try again." +msgstr "L'identifiant fourni par votre système fait doublon sur le notre. Cela peut fonctionner si vous réessayez." + +#: mod/dfrn_confirm.php:640 +msgid "Unable to set your contact credentials on our system." +msgstr "Impossible de vous définir des permissions sur notre système." + +#: mod/dfrn_confirm.php:699 +msgid "Unable to update your contact profile details on our system" +msgstr "Impossible de mettre les détails de votre profil à jour sur notre système" + +#: mod/dfrn_confirm.php:771 +#, php-format +msgid "%1$s has joined %2$s" +msgstr "%1$s a rejoint %2$s" + +#: mod/dirfind.php:36 +#, php-format +msgid "People Search - %s" +msgstr "Recherche de personne - %s" + +#: mod/dirfind.php:47 +#, php-format +msgid "Forum Search - %s" +msgstr "Recherche de Forum - %s" + +#: mod/fsuggest.php:63 +msgid "Friend suggestion sent." +msgstr "Suggestion d'amitié/contact envoyée." + +#: mod/fsuggest.php:97 +msgid "Suggest Friends" +msgstr "Suggérer des amis/contacts" + +#: mod/fsuggest.php:99 +#, php-format +msgid "Suggest a friend for %s" +msgstr "Suggérer un ami/contact pour %s" + +#: mod/item.php:116 +msgid "Unable to locate original post." +msgstr "Impossible de localiser la publication originale." + +#: mod/item.php:334 +msgid "Empty post discarded." +msgstr "Publication vide rejetée." + +#: mod/item.php:867 +msgid "System error. Post not saved." +msgstr "Erreur système. Publication non sauvée." + +#: mod/item.php:993 +#, php-format +msgid "" +"This message was sent to you by %s, a member of the Friendica social " +"network." +msgstr "Ce message vous a été envoyé par %s, membre du réseau social Friendica." + +#: mod/item.php:995 +#, php-format +msgid "You may visit them online at %s" +msgstr "Vous pouvez leur rendre visite sur %s" + +#: mod/item.php:996 +msgid "" +"Please contact the sender by replying to this post if you do not wish to " +"receive these messages." +msgstr "Merci de contacter l’émetteur en répondant à cette publication si vous ne souhaitez pas recevoir ces messages." + +#: mod/item.php:1000 +#, php-format +msgid "%s posted an update." +msgstr "%s a publié une mise à jour." + +#: mod/mood.php:133 +msgid "Mood" +msgstr "Humeur" + +#: mod/mood.php:134 +msgid "Set your current mood and tell your friends" +msgstr "Spécifiez votre humeur du moment, et informez vos amis" + +#: mod/poke.php:192 +msgid "Poke/Prod" +msgstr "Solliciter" + +#: mod/poke.php:193 +msgid "poke, prod or do other things to somebody" +msgstr "solliciter (poke/...) quelqu'un" + +#: mod/poke.php:194 +msgid "Recipient" +msgstr "Destinataire" + +#: mod/poke.php:195 +msgid "Choose what you wish to do to recipient" +msgstr "Choisissez ce que vous voulez faire au destinataire" + +#: mod/poke.php:198 +msgid "Make this post private" +msgstr "Rendez ce message privé" + +#: mod/profile_photo.php:44 +msgid "Image uploaded but image cropping failed." +msgstr "Image envoyée, mais impossible de la retailler." + +#: mod/profile_photo.php:77 mod/profile_photo.php:84 mod/profile_photo.php:91 +#: mod/profile_photo.php:314 +#, php-format +msgid "Image size reduction [%s] failed." +msgstr "Réduction de la taille de l'image [%s] échouée." + +#: mod/profile_photo.php:124 +msgid "" +"Shift-reload the page or clear browser cache if the new photo does not " +"display immediately." +msgstr "Rechargez la page avec la touche Maj pressée, ou bien effacez le cache du navigateur, si d'aventure la nouvelle photo n'apparaissait pas immédiatement." + +#: mod/profile_photo.php:134 +msgid "Unable to process image" +msgstr "Impossible de traiter l'image" + +#: mod/profile_photo.php:248 +msgid "Upload File:" +msgstr "Fichier à téléverser:" + +#: mod/profile_photo.php:249 +msgid "Select a profile:" +msgstr "Choisir un profil:" + +#: mod/profile_photo.php:251 +msgid "Upload" +msgstr "Téléverser" + +#: mod/profile_photo.php:254 +msgid "or" +msgstr "ou" + +#: mod/profile_photo.php:254 +msgid "skip this step" +msgstr "ignorer cette étape" + +#: mod/profile_photo.php:254 +msgid "select a photo from your photo albums" +msgstr "choisissez une photo depuis vos albums" + +#: mod/profile_photo.php:268 +msgid "Crop Image" +msgstr "(Re)cadrer l'image" + +#: mod/profile_photo.php:269 +msgid "Please adjust the image cropping for optimum viewing." +msgstr "Ajustez le cadre de l'image pour une visualisation optimale." + +#: mod/profile_photo.php:271 +msgid "Done Editing" +msgstr "Édition terminée" + +#: mod/profile_photo.php:305 +msgid "Image uploaded successfully." +msgstr "Image téléversée avec succès." + +#: mod/profiles.php:38 +msgid "Profile deleted." +msgstr "Profil supprimé." + +#: mod/profiles.php:56 mod/profiles.php:90 +msgid "Profile-" +msgstr "Profil-" + +#: mod/profiles.php:75 mod/profiles.php:118 +msgid "New profile created." +msgstr "Nouveau profil créé." + +#: mod/profiles.php:96 +msgid "Profile unavailable to clone." +msgstr "Ce profil ne peut être cloné." + +#: mod/profiles.php:190 +msgid "Profile Name is required." +msgstr "Le nom du profil est requis." + +#: mod/profiles.php:337 +msgid "Marital Status" +msgstr "Statut marital" + +#: mod/profiles.php:341 +msgid "Romantic Partner" +msgstr "Partenaire / conjoint" + +#: mod/profiles.php:353 +msgid "Work/Employment" +msgstr "Travail / Occupation" + +#: mod/profiles.php:356 +msgid "Religion" +msgstr "Religion" + +#: mod/profiles.php:360 +msgid "Political Views" +msgstr "Tendance politique" + +#: mod/profiles.php:364 +msgid "Gender" +msgstr "Sexe" + +#: mod/profiles.php:368 +msgid "Sexual Preference" +msgstr "Préférence sexuelle" + +#: mod/profiles.php:372 +msgid "Homepage" +msgstr "Site internet" + +#: mod/profiles.php:376 mod/profiles.php:695 +msgid "Interests" +msgstr "Centres d'intérêt" + +#: mod/profiles.php:380 +msgid "Address" +msgstr "Adresse" + +#: mod/profiles.php:387 mod/profiles.php:691 +msgid "Location" +msgstr "Localisation" + +#: mod/profiles.php:470 +msgid "Profile updated." +msgstr "Profil mis à jour." + +#: mod/profiles.php:557 +msgid " and " +msgstr " et " + +#: mod/profiles.php:565 +msgid "public profile" +msgstr "profil public" + +#: mod/profiles.php:568 +#, php-format +msgid "%1$s changed %2$s to “%3$s”" +msgstr "%1$s a changé %2$s en “%3$s”" + +#: mod/profiles.php:569 +#, php-format +msgid " - Visit %1$s's %2$s" +msgstr "Visiter le %2$s de %1$s" + +#: mod/profiles.php:572 +#, php-format +msgid "%1$s has an updated %2$s, changing %3$s." +msgstr "%1$s a mis à jour son %2$s, en modifiant %3$s." + +#: mod/profiles.php:638 +msgid "Hide contacts and friends:" +msgstr "Cacher mes contacts et amis :" + +#: mod/profiles.php:643 +msgid "Hide your contact/friend list from viewers of this profile?" +msgstr "Cacher ma liste d'amis / contacts des visiteurs de ce profil ?" + +#: mod/profiles.php:667 +msgid "Show more profile fields:" +msgstr "Afficher plus d'infos de profil:" + +#: mod/profiles.php:679 +msgid "Profile Actions" +msgstr "Actions de Profil" + +#: mod/profiles.php:680 +msgid "Edit Profile Details" +msgstr "Éditer les détails du profil" + +#: mod/profiles.php:682 +msgid "Change Profile Photo" +msgstr "Changer la photo du profil" + +#: mod/profiles.php:683 +msgid "View this profile" +msgstr "Voir ce profil" + +#: mod/profiles.php:685 +msgid "Create a new profile using these settings" +msgstr "Créer un nouveau profil en utilisant ces réglages" + +#: mod/profiles.php:686 +msgid "Clone this profile" +msgstr "Cloner ce profil" + +#: mod/profiles.php:687 +msgid "Delete this profile" +msgstr "Supprimer ce profil" + +#: mod/profiles.php:689 +msgid "Basic information" +msgstr "Information de base" + +#: mod/profiles.php:690 +msgid "Profile picture" +msgstr "Image de profil" + +#: mod/profiles.php:692 +msgid "Preferences" +msgstr "Préférences" + +#: mod/profiles.php:693 +msgid "Status information" +msgstr "Information sur le statut" + +#: mod/profiles.php:694 +msgid "Additional information" +msgstr "Information additionnelle" + +#: mod/profiles.php:697 +msgid "Relation" +msgstr "Relation" + +#: mod/profiles.php:701 +msgid "Your Gender:" +msgstr "Votre genre :" + +#: mod/profiles.php:702 +msgid " Marital Status:" +msgstr " Statut marital :" + +#: mod/profiles.php:704 +msgid "Example: fishing photography software" +msgstr "Exemple : football dessin programmation" + +#: mod/profiles.php:709 +msgid "Profile Name:" +msgstr "Nom du profil :" + +#: mod/profiles.php:709 mod/events.php:485 mod/events.php:497 +msgid "Required" +msgstr "Requis" + +#: mod/profiles.php:711 +msgid "" +"This is your public profile.
      It may " +"be visible to anybody using the internet." +msgstr "Ceci est votre profil public.
      Il peut être visible par n'importe quel utilisateur d'Internet." + +#: mod/profiles.php:712 +msgid "Your Full Name:" +msgstr "Votre nom complet :" + +#: mod/profiles.php:713 +msgid "Title/Description:" +msgstr "Titre / Description :" + +#: mod/profiles.php:716 +msgid "Street Address:" +msgstr "Adresse postale :" + +#: mod/profiles.php:717 +msgid "Locality/City:" +msgstr "Ville / Localité :" + +#: mod/profiles.php:718 +msgid "Region/State:" +msgstr "Région / État :" + +#: mod/profiles.php:719 +msgid "Postal/Zip Code:" +msgstr "Code postal :" + +#: mod/profiles.php:720 +msgid "Country:" +msgstr "Pays :" + +#: mod/profiles.php:724 +msgid "Who: (if applicable)" +msgstr "Qui : (si pertinent)" + +#: mod/profiles.php:724 +msgid "Examples: cathy123, Cathy Williams, cathy@example.com" +msgstr "Exemples: cathy123, Cathy Williams, cathy@example.com" + +#: mod/profiles.php:725 +msgid "Since [date]:" +msgstr "Depuis [date] :" + +#: mod/profiles.php:727 +msgid "Tell us about yourself..." +msgstr "Parlez-nous de vous..." + +#: mod/profiles.php:728 +msgid "Homepage URL:" +msgstr "Page personnelle :" + +#: mod/profiles.php:731 +msgid "Religious Views:" +msgstr "Opinions religieuses :" + +#: mod/profiles.php:732 +msgid "Public Keywords:" +msgstr "Mots-clés publics :" + +#: mod/profiles.php:732 +msgid "(Used for suggesting potential friends, can be seen by others)" +msgstr "(Utilisés pour vous suggérer des amis potentiels, peuvent être vus par autrui)" + +#: mod/profiles.php:733 +msgid "Private Keywords:" +msgstr "Mots-clés privés :" + +#: mod/profiles.php:733 +msgid "(Used for searching profiles, never shown to others)" +msgstr "(Utilisés pour rechercher dans les profils, ne seront jamais montrés à autrui)" + +#: mod/profiles.php:736 +msgid "Musical interests" +msgstr "Goûts musicaux" + +#: mod/profiles.php:737 +msgid "Books, literature" +msgstr "Lectures" + +#: mod/profiles.php:738 +msgid "Television" +msgstr "Télévision" + +#: mod/profiles.php:739 +msgid "Film/dance/culture/entertainment" +msgstr "Cinéma / Danse / Culture / Divertissement" + +#: mod/profiles.php:740 +msgid "Hobbies/Interests" +msgstr "Passe-temps / Centres d'intérêt" + +#: mod/profiles.php:741 +msgid "Love/romance" +msgstr "Amour / Romance" + +#: mod/profiles.php:742 +msgid "Work/employment" +msgstr "Activité professionnelle / Occupation" + +#: mod/profiles.php:743 +msgid "School/education" +msgstr "Études / Formation" + +#: mod/profiles.php:744 +msgid "Contact information and Social Networks" +msgstr "Coordonnées / Réseaux sociaux" + +#: mod/profiles.php:786 +msgid "Edit/Manage Profiles" +msgstr "Editer / gérer les profils" + +#: mod/register.php:92 +msgid "" +"Registration successful. Please check your email for further instructions." +msgstr "Inscription réussie. Vérifiez vos emails pour la suite des instructions." + +#: mod/register.php:97 +#, php-format +msgid "" +"Failed to send email message. Here your accout details:
      login: %s
      " +"password: %s

      You can change your password after login." +msgstr "Impossible d’envoyer le courriel de confirmation. Voici vos informations de connexion:
      identifiant : %s
      mot de passe : %s

      Vous pourrez changer votre mot de passe une fois connecté." + +#: mod/register.php:104 +msgid "Registration successful." +msgstr "Inscription réussie." + +#: mod/register.php:110 +msgid "Your registration can not be processed." +msgstr "Votre inscription ne peut être traitée." + +#: mod/register.php:153 +msgid "Your registration is pending approval by the site owner." +msgstr "Votre inscription attend une validation du propriétaire du site." + +#: mod/register.php:219 +msgid "" +"You may (optionally) fill in this form via OpenID by supplying your OpenID " +"and clicking 'Register'." +msgstr "Vous pouvez (si vous le souhaitez) remplir ce formulaire via OpenID. Fournissez votre OpenID et cliquez \"S'inscrire\"." + +#: mod/register.php:220 +msgid "" +"If you are not familiar with OpenID, please leave that field blank and fill " +"in the rest of the items." +msgstr "Si vous n'êtes pas familier avec OpenID, laissez ce champ vide et remplissez le reste." + +#: mod/register.php:221 +msgid "Your OpenID (optional): " +msgstr "Votre OpenID (facultatif): " + +#: mod/register.php:235 +msgid "Include your profile in member directory?" +msgstr "Inclure votre profil dans l'annuaire des membres?" + +#: mod/register.php:259 +msgid "Membership on this site is by invitation only." +msgstr "L'inscription à ce site se fait uniquement sur invitation." + +#: mod/register.php:260 +msgid "Your invitation ID: " +msgstr "Votre ID d'invitation: " + +#: mod/register.php:263 mod/admin.php:928 +msgid "Registration" +msgstr "Inscription" + +#: mod/register.php:271 +msgid "Your Full Name (e.g. Joe Smith, real or real-looking): " +msgstr "Votre nom complet (p. ex. Michel Dupont):" + +#: mod/register.php:272 +msgid "Your Email Address: " +msgstr "Votre adresse courriel: " + +#: mod/register.php:274 mod/settings.php:1221 +msgid "New Password:" +msgstr "Nouveau mot de passe:" + +#: mod/register.php:274 +msgid "Leave empty for an auto generated password." +msgstr "Laisser ce champ libre pour obtenir un mot de passe généré automatiquement." + +#: mod/register.php:275 mod/settings.php:1222 +msgid "Confirm:" +msgstr "Confirmer:" + +#: mod/register.php:276 +msgid "" +"Choose a profile nickname. This must begin with a text character. Your " +"profile address on this site will then be " +"'nickname@$sitename'." +msgstr "Choisissez un pseudo. Celui devra commencer par une lettre. L'adresse de votre profil en découlera sous la forme '<strong>pseudo@$sitename</strong>'." + +#: mod/register.php:277 +msgid "Choose a nickname: " +msgstr "Choisir un pseudo: " + +#: mod/register.php:287 +msgid "Import your profile to this friendica instance" +msgstr "Importer votre profile dans cette instance de friendica" + +#: mod/regmod.php:55 +msgid "Account approved." +msgstr "Inscription validée." + +#: mod/regmod.php:92 +#, php-format +msgid "Registration revoked for %s" +msgstr "Inscription révoquée pour %s" + +#: mod/regmod.php:104 +msgid "Please login." +msgstr "Merci de vous connecter." + +#: mod/settings.php:36 mod/photos.php:118 +msgid "everybody" +msgstr "tout le monde" + +#: mod/settings.php:43 mod/admin.php:1375 +msgid "Account" +msgstr "Compte" + +#: mod/settings.php:52 mod/admin.php:160 +msgid "Additional features" +msgstr "Fonctions supplémentaires" + +#: mod/settings.php:60 +msgid "Display" +msgstr "Afficher" + +#: mod/settings.php:67 mod/settings.php:871 +msgid "Social Networks" +msgstr "Réseaux sociaux" + +#: mod/settings.php:74 mod/admin.php:158 mod/admin.php:1500 mod/admin.php:1560 +msgid "Plugins" +msgstr "Extensions" + +#: mod/settings.php:88 +msgid "Connected apps" +msgstr "Applications connectées" + +#: mod/settings.php:102 +msgid "Remove account" +msgstr "Supprimer le compte" + +#: mod/settings.php:155 +msgid "Missing some important data!" +msgstr "Il manque certaines informations importantes!" + +#: mod/settings.php:269 +msgid "Failed to connect with email account using the settings provided." +msgstr "Impossible de se connecter au compte courriel configuré." + +#: mod/settings.php:274 +msgid "Email settings updated." +msgstr "Réglages de courriel mis-à-jour." + +#: mod/settings.php:289 +msgid "Features updated" +msgstr "Fonctionnalités mises à jour" + +#: mod/settings.php:356 +msgid "Relocate message has been send to your contacts" +msgstr "Un message de relocalisation a été envoyé à vos contacts." + +#: mod/settings.php:375 +msgid "Empty passwords are not allowed. Password unchanged." +msgstr "Les mots de passe vides sont interdits. Aucun changement appliqué." + +#: mod/settings.php:383 +msgid "Wrong password." +msgstr "Mauvais mot de passe." + +#: mod/settings.php:394 +msgid "Password changed." +msgstr "Mots de passe changés." + +#: mod/settings.php:396 +msgid "Password update failed. Please try again." +msgstr "Le changement de mot de passe a échoué. Merci de recommencer." + +#: mod/settings.php:465 +msgid " Please use a shorter name." +msgstr " Merci d'utiliser un nom plus court." + +#: mod/settings.php:467 +msgid " Name too short." +msgstr " Nom trop court." + +#: mod/settings.php:476 +msgid "Wrong Password" +msgstr "Mauvais mot de passe" + +#: mod/settings.php:481 +msgid " Not valid email." +msgstr " Email invalide." + +#: mod/settings.php:487 +msgid " Cannot change to that email." +msgstr " Impossible de changer pour cet email." + +#: mod/settings.php:543 +msgid "Private forum has no privacy permissions. Using default privacy group." +msgstr "Ce forum privé n'a pas de paramètres de vie privée. Utilisation des paramètres de confidentialité par défaut." + +#: mod/settings.php:547 +msgid "Private forum has no privacy permissions and no default privacy group." +msgstr "Ce forum privé n'a pas de paramètres de vie privée ni de paramètres de confidentialité par défaut." + +#: mod/settings.php:586 +msgid "Settings updated." +msgstr "Réglages mis à jour." + +#: mod/settings.php:662 mod/settings.php:688 mod/settings.php:724 +msgid "Add application" +msgstr "Ajouter une application" + +#: mod/settings.php:663 mod/settings.php:773 mod/settings.php:820 +#: mod/settings.php:889 mod/settings.php:976 mod/settings.php:1214 +#: mod/admin.php:927 mod/admin.php:1561 mod/admin.php:1809 mod/admin.php:1883 +#: mod/admin.php:2033 +msgid "Save Settings" +msgstr "Sauvegarder les paramétres" + +#: mod/settings.php:666 mod/settings.php:692 +msgid "Consumer Key" +msgstr "Clé utilisateur" + +#: mod/settings.php:667 mod/settings.php:693 +msgid "Consumer Secret" +msgstr "Secret utilisateur" + +#: mod/settings.php:668 mod/settings.php:694 +msgid "Redirect" +msgstr "Rediriger" + +#: mod/settings.php:669 mod/settings.php:695 +msgid "Icon url" +msgstr "URL de l'icône" + +#: mod/settings.php:680 +msgid "You can't edit this application." +msgstr "Vous ne pouvez pas éditer cette application." + +#: mod/settings.php:723 +msgid "Connected Apps" +msgstr "Applications connectées" + +#: mod/settings.php:727 +msgid "Client key starts with" +msgstr "La clé cliente commence par" + +#: mod/settings.php:728 +msgid "No name" +msgstr "Sans nom" + +#: mod/settings.php:729 +msgid "Remove authorization" +msgstr "Révoquer l'autorisation" + +#: mod/settings.php:741 +msgid "No Plugin settings configured" +msgstr "Pas de réglages d'extensions configurés" + +#: mod/settings.php:749 +msgid "Plugin Settings" +msgstr "Extensions" + +#: mod/settings.php:763 mod/admin.php:2022 mod/admin.php:2023 +msgid "Off" +msgstr "Éteint" + +#: mod/settings.php:763 mod/admin.php:2022 mod/admin.php:2023 +msgid "On" +msgstr "Allumé" + +#: mod/settings.php:771 +msgid "Additional Features" +msgstr "Fonctions supplémentaires" + +#: mod/settings.php:781 mod/settings.php:785 +msgid "General Social Media Settings" +msgstr "Paramètres généraux des réseaux sociaux" + +#: mod/settings.php:791 +msgid "Disable intelligent shortening" +msgstr "Désactiver la réduction d'URL" + +#: mod/settings.php:793 +msgid "" +"Normally the system tries to find the best link to add to shortened posts. " +"If this option is enabled then every shortened post will always point to the" +" original friendica post." +msgstr "Normalement, le système tente de trouver le meilleur lien à ajouter aux publications raccourcies. Si cette option est activée, les publications raccourcies dirigeront toujours vers leur publication d'origine sur Friendica." + +#: mod/settings.php:799 +msgid "Automatically follow any GNU Social (OStatus) followers/mentioners" +msgstr "Suivre automatiquement ceux qui me suivent ou me mentionnent sur GNU Social (OStatus)" + +#: mod/settings.php:801 +msgid "" +"If you receive a message from an unknown OStatus user, this option decides " +"what to do. If it is checked, a new contact will be created for every " +"unknown user." +msgstr "Si vous recevez un message d'un utilisateur OStatus inconnu, cette option détermine ce qui sera fait. Si elle est cochée, un nouveau contact sera créé pour chaque utilisateur inconnu." + +#: mod/settings.php:807 +msgid "Default group for OStatus contacts" +msgstr "Groupe par défaut pour les contacts OStatus" + +#: mod/settings.php:813 +msgid "Your legacy GNU Social account" +msgstr "Le compte GNU Social que vous avez déjà" + +#: mod/settings.php:815 +msgid "" +"If you enter your old GNU Social/Statusnet account name here (in the format " +"user@domain.tld), your contacts will be added automatically. The field will " +"be emptied when done." +msgstr "Si vous entrez le nom de votre ancien compte GNU Social / StatusNet ici (utiliser le format utilisateur@domaine.tld), vos contacts seront ajoutés automatiquement. Le champ sera vidé lorsque ce sera terminé." + +#: mod/settings.php:818 +msgid "Repair OStatus subscriptions" +msgstr "Réparer les abonnements OStatus" + +#: mod/settings.php:827 mod/settings.php:828 +#, php-format +msgid "Built-in support for %s connectivity is %s" +msgstr "Le support natif pour la connectivité %s est %s" + +#: mod/settings.php:827 mod/settings.php:828 +msgid "enabled" +msgstr "activé" + +#: mod/settings.php:827 mod/settings.php:828 +msgid "disabled" +msgstr "désactivé" + +#: mod/settings.php:828 +msgid "GNU Social (OStatus)" +msgstr "GNU Social (OStatus)" + +#: mod/settings.php:864 +msgid "Email access is disabled on this site." +msgstr "L'accès courriel est désactivé sur ce site." + +#: mod/settings.php:876 +msgid "Email/Mailbox Setup" +msgstr "Réglages de courriel/boîte à lettre" + +#: mod/settings.php:877 +msgid "" +"If you wish to communicate with email contacts using this service " +"(optional), please specify how to connect to your mailbox." +msgstr "Si vous souhaitez communiquer avec vos contacts \"courriel\" (facultatif), merci de nous indiquer comment vous connecter à votre boîte." + +#: mod/settings.php:878 +msgid "Last successful email check:" +msgstr "Dernière vérification réussie des courriels:" + +#: mod/settings.php:880 +msgid "IMAP server name:" +msgstr "Nom du serveur IMAP:" + +#: mod/settings.php:881 +msgid "IMAP port:" +msgstr "Port IMAP:" + +#: mod/settings.php:882 +msgid "Security:" +msgstr "Sécurité:" + +#: mod/settings.php:882 mod/settings.php:887 +msgid "None" +msgstr "Aucun(e)" + +#: mod/settings.php:883 +msgid "Email login name:" +msgstr "Nom de connexion:" + +#: mod/settings.php:884 +msgid "Email password:" +msgstr "Mot de passe:" + +#: mod/settings.php:885 +msgid "Reply-to address:" +msgstr "Adresse de réponse:" + +#: mod/settings.php:886 +msgid "Send public posts to all email contacts:" +msgstr "Envoyer les publications publiques à tous les contacts courriels:" + +#: mod/settings.php:887 +msgid "Action after import:" +msgstr "Action après import:" + +#: mod/settings.php:887 +msgid "Move to folder" +msgstr "Déplacer vers" + +#: mod/settings.php:888 +msgid "Move to folder:" +msgstr "Déplacer vers:" + +#: mod/settings.php:919 mod/admin.php:834 +msgid "No special theme for mobile devices" +msgstr "Pas de thème particulier pour les terminaux mobiles" + +#: mod/settings.php:974 +msgid "Display Settings" +msgstr "Affichage" + +#: mod/settings.php:980 mod/settings.php:1001 +msgid "Display Theme:" +msgstr "Thème d'affichage:" + +#: mod/settings.php:981 +msgid "Mobile Theme:" +msgstr "Thème mobile:" + +#: mod/settings.php:982 +msgid "Update browser every xx seconds" +msgstr "Mettre-à-jour l'affichage toutes les xx secondes" + +#: mod/settings.php:982 +msgid "Minimum of 10 seconds. Enter -1 to disable it." +msgstr "Minimum de 10 secondes. Saisir -1 pour désactiver." + +#: mod/settings.php:983 +msgid "Number of items to display per page:" +msgstr "Nombre d’éléments par page:" + +#: mod/settings.php:983 mod/settings.php:984 +msgid "Maximum of 100 items" +msgstr "Maximum de 100 éléments" + +#: mod/settings.php:984 +msgid "Number of items to display per page when viewed from mobile device:" +msgstr "Nombre d'éléments a afficher par page pour un appareil mobile" + +#: mod/settings.php:985 +msgid "Don't show emoticons" +msgstr "Ne pas afficher les émoticônes (smileys grahiques)" + +#: mod/settings.php:986 +msgid "Calendar" +msgstr "Calendrier" + +#: mod/settings.php:987 +msgid "Beginning of week:" +msgstr "Début de la semaine :" + +#: mod/settings.php:988 +msgid "Don't show notices" +msgstr "Ne plus afficher les avis" + +#: mod/settings.php:989 +msgid "Infinite scroll" +msgstr "Défilement infini" + +#: mod/settings.php:990 +msgid "Automatic updates only at the top of the network page" +msgstr "Mises à jour automatiques seulement en haut de la page du réseau." + +#: mod/settings.php:992 +msgid "General Theme Settings" +msgstr "Paramètres généraux de thème" + +#: mod/settings.php:993 +msgid "Custom Theme Settings" +msgstr "Paramètres personnalisés de thème" + +#: mod/settings.php:994 +msgid "Content Settings" +msgstr "Paramètres de contenu" + +#: mod/settings.php:995 view/theme/frio/config.php:61 +#: view/theme/cleanzero/config.php:82 view/theme/quattro/config.php:66 +#: view/theme/dispy/config.php:72 view/theme/vier/config.php:109 +#: view/theme/diabook/config.php:150 view/theme/duepuntozero/config.php:61 +msgid "Theme settings" +msgstr "Réglages du thème graphique" + +#: mod/settings.php:1072 +msgid "User Types" +msgstr "Types d'utilisateurs" + +#: mod/settings.php:1073 +msgid "Community Types" +msgstr "Genre de communautés" + +#: mod/settings.php:1074 +msgid "Normal Account Page" +msgstr "Compte normal" + +#: mod/settings.php:1075 +msgid "This account is a normal personal profile" +msgstr "Ce compte correspond à un profil normal, pour une seule personne (physique, généralement)" + +#: mod/settings.php:1078 +msgid "Soapbox Page" +msgstr "Compte \"boîte à savon\"" + +#: mod/settings.php:1079 +msgid "Automatically approve all connection/friend requests as read-only fans" +msgstr "Accepter automatiquement toutes les demandes d'amitié/connexion comme étant des fans 'en lecture seule'" + +#: mod/settings.php:1082 +msgid "Community Forum/Celebrity Account" +msgstr "Compte de communauté/célébrité" + +#: mod/settings.php:1083 +msgid "" +"Automatically approve all connection/friend requests as read-write fans" +msgstr "Accepter automatiquement toutes les demandes d'amitié/connexion comme étant des fans en 'lecture/écriture'" + +#: mod/settings.php:1086 +msgid "Automatic Friend Page" +msgstr "Compte d'\"amitié automatique\"" + +#: mod/settings.php:1087 +msgid "Automatically approve all connection/friend requests as friends" +msgstr "Accepter automatiquement toutes les demandes d'amitié/connexion comme étant des amis" + +#: mod/settings.php:1090 +msgid "Private Forum [Experimental]" +msgstr "Forum privé [expérimental]" + +#: mod/settings.php:1091 +msgid "Private forum - approved members only" +msgstr "Forum privé - modéré en inscription" + +#: mod/settings.php:1103 +msgid "OpenID:" +msgstr "OpenID:" + +#: mod/settings.php:1103 +msgid "(Optional) Allow this OpenID to login to this account." +msgstr "&nbsp;(Facultatif) Autoriser cet OpenID à se connecter à ce compte." + +#: mod/settings.php:1113 +msgid "Publish your default profile in your local site directory?" +msgstr "Publier votre profil par défaut sur l'annuaire local de ce site?" + +#: mod/settings.php:1119 +msgid "Publish your default profile in the global social directory?" +msgstr "Publier votre profil par défaut sur l'annuaire social global?" + +#: mod/settings.php:1127 +msgid "Hide your contact/friend list from viewers of your default profile?" +msgstr "Cacher votre liste de contacts/amis des visiteurs de votre profil par défaut?" + +#: mod/settings.php:1131 +msgid "" +"If enabled, posting public messages to Diaspora and other networks isn't " +"possible." +msgstr "Si activé, il est impossible de publier les messages publics sur Diaspora et autres réseaux." + +#: mod/settings.php:1136 +msgid "Allow friends to post to your profile page?" +msgstr "Autoriser vos amis à publier sur votre profil?" + +#: mod/settings.php:1142 +msgid "Allow friends to tag your posts?" +msgstr "Autoriser vos amis à étiqueter vos publications?" + +#: mod/settings.php:1148 +msgid "Allow us to suggest you as a potential friend to new members?" +msgstr "Autoriser les suggestions d'amis potentiels aux nouveaux arrivants?" + +#: mod/settings.php:1154 +msgid "Permit unknown people to send you private mail?" +msgstr "Autoriser les messages privés d'inconnus?" + +#: mod/settings.php:1162 +msgid "Profile is not published." +msgstr "Ce profil n'est pas publié." + +#: mod/settings.php:1170 +#, php-format +msgid "Your Identity Address is '%s' or '%s'." +msgstr "L’adresse de votre identité est '%s' or '%s'." + +#: mod/settings.php:1177 +msgid "Automatically expire posts after this many days:" +msgstr "Les publications expirent automatiquement après (en jours) :" + +#: mod/settings.php:1177 +msgid "If empty, posts will not expire. Expired posts will be deleted" +msgstr "Si ce champ est vide, les publications n'expireront pas. Les publications expirées seront supprimées" + +#: mod/settings.php:1178 +msgid "Advanced expiration settings" +msgstr "Réglages avancés de l'expiration" + +#: mod/settings.php:1179 +msgid "Advanced Expiration" +msgstr "Expiration (avancé)" + +#: mod/settings.php:1180 +msgid "Expire posts:" +msgstr "Faire expirer les publications:" + +#: mod/settings.php:1181 +msgid "Expire personal notes:" +msgstr "Faire expirer les notes personnelles:" + +#: mod/settings.php:1182 +msgid "Expire starred posts:" +msgstr "Faire expirer les publications marqués:" + +#: mod/settings.php:1183 +msgid "Expire photos:" +msgstr "Faire expirer les photos:" + +#: mod/settings.php:1184 +msgid "Only expire posts by others:" +msgstr "Faire expirer seulement les publications des autres:" + +#: mod/settings.php:1212 +msgid "Account Settings" +msgstr "Compte" + +#: mod/settings.php:1220 +msgid "Password Settings" +msgstr "Réglages de mot de passe" + +#: mod/settings.php:1222 +msgid "Leave password fields blank unless changing" +msgstr "Laissez les champs de mot de passe vierges, sauf si vous désirez les changer" + +#: mod/settings.php:1223 +msgid "Current Password:" +msgstr "Mot de passe actuel:" + +#: mod/settings.php:1223 mod/settings.php:1224 +msgid "Your current password to confirm the changes" +msgstr "Votre mot de passe actuel pour confirmer les modifications" + +#: mod/settings.php:1224 +msgid "Password:" +msgstr "Mot de passe:" + +#: mod/settings.php:1228 +msgid "Basic Settings" +msgstr "Réglages basiques" + +#: mod/settings.php:1230 +msgid "Email Address:" +msgstr "Adresse courriel:" + +#: mod/settings.php:1231 +msgid "Your Timezone:" +msgstr "Votre fuseau horaire:" + +#: mod/settings.php:1232 +msgid "Your Language:" +msgstr "Votre langue :" + +#: mod/settings.php:1232 +msgid "" +"Set the language we use to show you friendica interface and to send you " +"emails" +msgstr "Détermine la langue que nous utilisons pour afficher votre interface Friendica et pour vous envoyer des courriels" + +#: mod/settings.php:1233 +msgid "Default Post Location:" +msgstr "Emplacement de publication par défaut:" + +#: mod/settings.php:1234 +msgid "Use Browser Location:" +msgstr "Utiliser la localisation géographique du navigateur:" + +#: mod/settings.php:1237 +msgid "Security and Privacy Settings" +msgstr "Réglages de sécurité et vie privée" + +#: mod/settings.php:1239 +msgid "Maximum Friend Requests/Day:" +msgstr "Nombre maximal de requêtes d'amitié/jour:" + +#: mod/settings.php:1239 mod/settings.php:1269 +msgid "(to prevent spam abuse)" +msgstr "(pour limiter l'impact du spam)" + +#: mod/settings.php:1240 +msgid "Default Post Permissions" +msgstr "Permissions de publication par défaut" + +#: mod/settings.php:1241 +msgid "(click to open/close)" +msgstr "(cliquer pour ouvrir/fermer)" + +#: mod/settings.php:1250 mod/photos.php:1187 mod/photos.php:1571 +msgid "Show to Groups" +msgstr "Montrer aux groupes" + +#: mod/settings.php:1251 mod/photos.php:1188 mod/photos.php:1572 +msgid "Show to Contacts" +msgstr "Montrer aux Contacts" + +#: mod/settings.php:1252 +msgid "Default Private Post" +msgstr "Message privé par défaut" + +#: mod/settings.php:1253 +msgid "Default Public Post" +msgstr "Message publique par défaut" + +#: mod/settings.php:1257 +msgid "Default Permissions for New Posts" +msgstr "Permissions par défaut pour les nouvelles publications" + +#: mod/settings.php:1269 +msgid "Maximum private messages per day from unknown people:" +msgstr "Maximum de messages privés d'inconnus par jour:" + +#: mod/settings.php:1272 +msgid "Notification Settings" +msgstr "Réglages de notification" + +#: mod/settings.php:1273 +msgid "By default post a status message when:" +msgstr "Par défaut, poster un statut quand:" + +#: mod/settings.php:1274 +msgid "accepting a friend request" +msgstr "j'accepte un ami" + +#: mod/settings.php:1275 +msgid "joining a forum/community" +msgstr "joignant un forum/une communauté" + +#: mod/settings.php:1276 +msgid "making an interesting profile change" +msgstr "je fais une modification intéressante de mon profil" + +#: mod/settings.php:1277 +msgid "Send a notification email when:" +msgstr "Envoyer un courriel de notification quand:" + +#: mod/settings.php:1278 +msgid "You receive an introduction" +msgstr "Vous recevez une introduction" + +#: mod/settings.php:1279 +msgid "Your introductions are confirmed" +msgstr "Vos introductions sont confirmées" + +#: mod/settings.php:1280 +msgid "Someone writes on your profile wall" +msgstr "Quelqu'un écrit sur votre mur" + +#: mod/settings.php:1281 +msgid "Someone writes a followup comment" +msgstr "Quelqu'un vous commente" + +#: mod/settings.php:1282 +msgid "You receive a private message" +msgstr "Vous recevez un message privé" + +#: mod/settings.php:1283 +msgid "You receive a friend suggestion" +msgstr "Vous avez reçu une suggestion d'ami" + +#: mod/settings.php:1284 +msgid "You are tagged in a post" +msgstr "Vous avez été étiquetté dans une publication" + +#: mod/settings.php:1285 +msgid "You are poked/prodded/etc. in a post" +msgstr "Vous avez été sollicité dans une publication" + +#: mod/settings.php:1287 +msgid "Activate desktop notifications" +msgstr "Activer les notifications de bureau" + +#: mod/settings.php:1287 +msgid "Show desktop popup on new notifications" +msgstr "Afficher dans des pops-ups les nouvelles notifications" + +#: mod/settings.php:1289 +msgid "Text-only notification emails" +msgstr "Courriels de notification en format texte" + +#: mod/settings.php:1291 +msgid "Send text only notification emails, without the html part" +msgstr "Envoyer le texte des courriels de notification, sans la composante html" + +#: mod/settings.php:1293 +msgid "Advanced Account/Page Type Settings" +msgstr "Paramètres avancés de compte/page" + +#: mod/settings.php:1294 +msgid "Change the behaviour of this account for special situations" +msgstr "Modifier le comportement de ce compte dans certaines situations" + +#: mod/settings.php:1297 +msgid "Relocate" +msgstr "Relocaliser" + +#: mod/settings.php:1298 +msgid "" +"If you have moved this profile from another server, and some of your " +"contacts don't receive your updates, try pushing this button." +msgstr "Si vous avez migré ce profil depuis un autre serveur et que vos contacts ne reçoivent plus vos mises à jour, essayez ce bouton." + +#: mod/settings.php:1299 +msgid "Resend relocate message to contacts" +msgstr "Renvoyer un message de relocalisation aux contacts." + +#: mod/videos.php:123 +msgid "Do you really want to delete this video?" +msgstr "Voulez-vous vraiment supprimer cette vidéo?" + +#: mod/videos.php:128 +msgid "Delete Video" +msgstr "Supprimer la vidéo" + +#: mod/videos.php:207 +msgid "No videos selected" +msgstr "Pas de vidéo sélectionné" + +#: mod/videos.php:308 mod/photos.php:1075 +msgid "Access to this item is restricted." +msgstr "Accès restreint à cet élément." + +#: mod/videos.php:390 mod/photos.php:1877 +msgid "View Album" +msgstr "Voir l'album" + +#: mod/videos.php:399 +msgid "Recent Videos" +msgstr "Vidéos récente" + +#: mod/videos.php:401 +msgid "Upload New Videos" +msgstr "Téléversé une nouvelle vidéo" + +#: mod/install.php:139 +msgid "Friendica Communications Server - Setup" +msgstr "Serveur de communications Friendica - Configuration" + +#: mod/install.php:145 +msgid "Could not connect to database." +msgstr "Impossible de se connecter à la base." + +#: mod/install.php:149 +msgid "Could not create table." +msgstr "Impossible de créer une table." + +#: mod/install.php:155 +msgid "Your Friendica site database has been installed." +msgstr "La base de données de votre site Friendica a bien été installée." + +#: mod/install.php:160 +msgid "" +"You may need to import the file \"database.sql\" manually using phpmyadmin " +"or mysql." +msgstr "Vous pourriez avoir besoin d'importer le fichier \"database.sql\" manuellement au moyen de phpmyadmin ou de la commande mysql." + +#: mod/install.php:161 mod/install.php:230 mod/install.php:602 +msgid "Please see the file \"INSTALL.txt\"." +msgstr "Référez-vous au fichier \"INSTALL.txt\"." + +#: mod/install.php:173 +msgid "Database already in use." +msgstr "Base de données déjà en cours d'utilisation." + +#: mod/install.php:227 +msgid "System check" +msgstr "Vérifications système" + +#: mod/install.php:231 mod/cal.php:281 mod/events.php:383 +msgid "Next" +msgstr "Suivant" + +#: mod/install.php:232 +msgid "Check again" +msgstr "Vérifier à nouveau" + +#: mod/install.php:251 +msgid "Database connection" +msgstr "Connexion à la base de données" + +#: mod/install.php:252 +msgid "" +"In order to install Friendica we need to know how to connect to your " +"database." +msgstr "Pour installer Friendica, nous avons besoin de savoir comment contacter votre base de données." + +#: mod/install.php:253 +msgid "" +"Please contact your hosting provider or site administrator if you have " +"questions about these settings." +msgstr "Merci de vous tourner vers votre hébergeur et/ou administrateur pour toute question concernant ces réglages." + +#: mod/install.php:254 +msgid "" +"The database you specify below should already exist. If it does not, please " +"create it before continuing." +msgstr "La base de données que vous spécifierez doit exister. Si ce n'est pas encore le cas, merci de la créer avant de continuer." + +#: mod/install.php:258 +msgid "Database Server Name" +msgstr "Serveur de base de données" + +#: mod/install.php:259 +msgid "Database Login Name" +msgstr "Nom d'utilisateur de la base" + +#: mod/install.php:260 +msgid "Database Login Password" +msgstr "Mot de passe de la base" + +#: mod/install.php:261 +msgid "Database Name" +msgstr "Nom de la base" + +#: mod/install.php:262 mod/install.php:303 +msgid "Site administrator email address" +msgstr "Adresse électronique de l'administrateur du site" + +#: mod/install.php:262 mod/install.php:303 +msgid "" +"Your account email address must match this in order to use the web admin " +"panel." +msgstr "Votre adresse électronique doit correspondre à celle-ci pour pouvoir utiliser l'interface d'administration." + +#: mod/install.php:266 mod/install.php:306 +msgid "Please select a default timezone for your website" +msgstr "Sélectionner un fuseau horaire par défaut pour votre site" + +#: mod/install.php:293 +msgid "Site settings" +msgstr "Réglages du site" + +#: mod/install.php:307 +msgid "System Language:" +msgstr "Langue système:" + +#: mod/install.php:307 +msgid "" +"Set the default language for your Friendica installation interface and to " +"send emails." +msgstr "Définit la langue par défaut pour l'interface de votre instance Friendica et les mails envoyés." + +#: mod/install.php:347 +msgid "Could not find a command line version of PHP in the web server PATH." +msgstr "Impossible de trouver la version \"ligne de commande\" de PHP dans le PATH du serveur web." + +#: mod/install.php:348 +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. See 'Setup the poller'" +msgstr "Si vous n'avez pas une version en ligne de commande de PHP sur votre serveur, vous ne pourrez pas exécuter l'attente active ou « polling » en arrière-plan via cron. Voir 'Setup the poller'." + +#: mod/install.php:352 +msgid "PHP executable path" +msgstr "Chemin vers l'exécutable de PHP" + +#: mod/install.php:352 +msgid "" +"Enter full path to php executable. You can leave this blank to continue the " +"installation." +msgstr "Entrez le chemin (absolu) vers l'exécutable 'php'. Vous pouvez laisser cette ligne vide pour continuer l'installation." + +#: mod/install.php:357 +msgid "Command line PHP" +msgstr "Version \"ligne de commande\" de PHP" + +#: mod/install.php:366 +msgid "PHP executable is not the php cli binary (could be cgi-fgci version)" +msgstr "L'executable PHP n'est pas le binaire php client (c'est peut être la version cgi-fcgi)" + +#: mod/install.php:367 +msgid "Found PHP version: " +msgstr "Version de PHP:" + +#: mod/install.php:369 +msgid "PHP cli binary" +msgstr "PHP cli binary" + +#: mod/install.php:380 +msgid "" +"The command line version of PHP on your system does not have " +"\"register_argc_argv\" enabled." +msgstr "La version \"ligne de commande\" de PHP de votre système n'a pas \"register_argc_argv\" d'activé." + +#: mod/install.php:381 +msgid "This is required for message delivery to work." +msgstr "Ceci est requis pour que la livraison des messages fonctionne." + +#: mod/install.php:383 +msgid "PHP register_argc_argv" +msgstr "PHP register_argc_argv" + +#: mod/install.php:404 +msgid "" +"Error: the \"openssl_pkey_new\" function on this system is not able to " +"generate encryption keys" +msgstr "Erreur: la fonction \"openssl_pkey_new\" de ce système ne permet pas de générer des clés de chiffrement" + +#: mod/install.php:405 +msgid "" +"If running under Windows, please see " +"\"http://www.php.net/manual/en/openssl.installation.php\"." +msgstr "Si vous utilisez Windows, merci de vous réferer à \"http://www.php.net/manual/en/openssl.installation.php\"." + +#: mod/install.php:407 +msgid "Generate encryption keys" +msgstr "Générer les clés de chiffrement" + +#: mod/install.php:414 +msgid "libCurl PHP module" +msgstr "Module libCurl de PHP" + +#: mod/install.php:415 +msgid "GD graphics PHP module" +msgstr "Module GD (graphiques) de PHP" + +#: mod/install.php:416 +msgid "OpenSSL PHP module" +msgstr "Module OpenSSL de PHP" + +#: mod/install.php:417 +msgid "mysqli PHP module" +msgstr "Module Mysqli de PHP" + +#: mod/install.php:418 +msgid "mb_string PHP module" +msgstr "Module mb_string de PHP" + +#: mod/install.php:419 +msgid "mcrypt PHP module" +msgstr "Module PHP mcrypt" + +#: mod/install.php:420 +msgid "XML PHP module" +msgstr "Module PHP XML" + +#: mod/install.php:421 +msgid "iconv module" +msgstr "Module iconv" + +#: mod/install.php:425 mod/install.php:427 +msgid "Apache mod_rewrite module" +msgstr "Module mod_rewrite Apache" + +#: mod/install.php:425 +msgid "" +"Error: Apache webserver mod-rewrite module is required but not installed." +msgstr "Erreur : Le module \"rewrite\" du serveur web Apache est requis mais pas installé." + +#: mod/install.php:433 +msgid "Error: libCURL PHP module required but not installed." +msgstr "Erreur : Le module PHP \"libCURL\" est requis mais pas installé." + +#: mod/install.php:437 +msgid "" +"Error: GD graphics PHP module with JPEG support required but not installed." +msgstr "Erreur : Le module PHP \"GD\" disposant du support JPEG est requis mais pas installé." + +#: mod/install.php:441 +msgid "Error: openssl PHP module required but not installed." +msgstr "Erreur : Le module PHP \"openssl\" est requis mais pas installé." + +#: mod/install.php:445 +msgid "Error: mysqli PHP module required but not installed." +msgstr "Erreur : Le module PHP \"mysqli\" est requis mais pas installé." + +#: mod/install.php:449 +msgid "Error: mb_string PHP module required but not installed." +msgstr "Erreur : le module PHP mb_string est requis mais pas installé." + +#: mod/install.php:453 +msgid "Error: mcrypt PHP module required but not installed." +msgstr "Erreur : le module PHP mcrypt est nécessaire, mais n'es pas installé." + +#: mod/install.php:457 +msgid "Error: iconv PHP module required but not installed." +msgstr "Erreur : Le module PHP iconv requis est absent." + +#: mod/install.php:466 +msgid "" +"If you are using php_cli, please make sure that mcrypt module is enabled in " +"its config file" +msgstr "Si vous utilisez php_cli, veuillez vous assurer que le module mcrypt est activé dans le fichier de configuration" + +#: mod/install.php:469 +msgid "" +"Function mcrypt_create_iv() is not defined. This is needed to enable RINO2 " +"encryption layer." +msgstr "La fonction mcrypt_create_iv() n'est pas définie. Elle est requise pour activer le chiffrement RINO2." + +#: mod/install.php:471 +msgid "mcrypt_create_iv() function" +msgstr "fonction mcrypt_create_iv()" + +#: mod/install.php:479 +msgid "Error, XML PHP module required but not installed." +msgstr "Erreur : le module PHP XML requis est absent." + +#: mod/install.php:494 +msgid "" +"The web installer needs to be able to create a file called \".htconfig.php\"" +" in the top folder of your web server and it is unable to do so." +msgstr "L'installeur web doit être en mesure de créer un fichier \".htconfig.php\" à la racine de votre serveur web, mais il en est incapable." + +#: mod/install.php:495 +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 "Le plus souvent, il s'agit d'un problème de permission. Le serveur web peut ne pas être capable d'écrire dans votre répertoire - alors que vous-même le pouvez." + +#: mod/install.php:496 +msgid "" +"At the end of this procedure, we will give you a text to save in a file " +"named .htconfig.php in your Friendica top folder." +msgstr "A la fin de cette étape, nous vous fournirons un texte à sauvegarder dans un fichier nommé .htconfig.php à la racine de votre répertoire Friendica." + +#: mod/install.php:497 +msgid "" +"You can alternatively skip this procedure and perform a manual installation." +" Please see the file \"INSTALL.txt\" for instructions." +msgstr "Vous pouvez également sauter cette étape et procéder à une installation manuelle. Pour cela, merci de lire le fichier \"INSTALL.txt\"." + +#: mod/install.php:500 +msgid ".htconfig.php is writable" +msgstr "Fichier .htconfig.php accessible en écriture" + +#: mod/install.php:510 +msgid "" +"Friendica uses the Smarty3 template engine to render its web views. Smarty3 " +"compiles templates to PHP to speed up rendering." +msgstr "Friendica utilise le moteur de modèles Smarty3 pour le rendu d'affichage web. Smarty3 compile les modèles en PHP pour accélérer le rendu." + +#: mod/install.php:511 +msgid "" +"In order to store these compiled templates, the web server needs to have " +"write access to the directory view/smarty3/ under the Friendica top level " +"folder." +msgstr "Pour pouvoir stocker ces modèles compilés, le serveur internet doit avoir accès au droit d'écriture pour le répertoire view/smarty3/ sous le dossier racine de Friendica." + +#: mod/install.php:512 +msgid "" +"Please ensure that the user that your web server runs as (e.g. www-data) has" +" write access to this folder." +msgstr "Veuillez vous assurer que l'utilisateur qui exécute votre serveur internet (p. ex. www-data) détient le droit d'accès en écriture sur ce dossier." + +#: mod/install.php:513 +msgid "" +"Note: as a security measure, you should give the web server write access to " +"view/smarty3/ only--not the template files (.tpl) that it contains." +msgstr "Note: pour plus de sécurité, vous devriez ne donner le droit d'accès en écriture qu'à view/smarty3/ et pas aux fichiers modèles (.tpl) qu'il contient." + +#: mod/install.php:516 +msgid "view/smarty3 is writable" +msgstr "view/smarty3 est autorisé à l écriture" + +#: mod/install.php:532 +msgid "" +"Url rewrite in .htaccess is not working. Check your server configuration." +msgstr "La réécriture d'URL dans le fichier .htaccess ne fonctionne pas. Vérifiez la configuration de votre serveur." + +#: mod/install.php:534 +msgid "Url rewrite is working" +msgstr "La réécriture d'URL fonctionne." + +#: mod/install.php:551 +msgid "ImageMagick PHP extension is installed" +msgstr "L’extension PHP ImageMagick est installée" + +#: mod/install.php:553 +msgid "ImageMagick supports GIF" +msgstr "ImageMagick supporte le format GIF" + +#: mod/install.php:561 +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 "Le fichier de configuration de la base (\".htconfig.php\") ne peut être créé. Merci d'utiliser le texte ci-joint pour créer ce fichier à la racine de votre hébergement." + +#: mod/install.php:600 +msgid "

      What next

      " +msgstr "

      Ensuite

      " + +#: mod/install.php:601 +msgid "" +"IMPORTANT: You will need to [manually] setup a scheduled task for the " +"poller." +msgstr "IMPORTANT: Vous devez configurer [manuellement] une tâche programmée pour le \"poller\"." + +#: mod/photos.php:101 mod/photos.php:1886 +msgid "Recent Photos" +msgstr "Photos récentes" + +#: mod/photos.php:104 mod/photos.php:1308 mod/photos.php:1888 +msgid "Upload New Photos" +msgstr "Téléverser de nouvelles photos" + +#: mod/photos.php:182 +msgid "Contact information unavailable" +msgstr "Informations de contact indisponibles" + +#: mod/photos.php:203 +msgid "Album not found." +msgstr "Album introuvable." + +#: mod/photos.php:233 mod/photos.php:245 mod/photos.php:1250 +msgid "Delete Album" +msgstr "Effacer l'album" + +#: mod/photos.php:243 +msgid "Do you really want to delete this photo album and all its photos?" +msgstr "Voulez-vous vraiment supprimer cet album photo et toutes ses photos ?" + +#: mod/photos.php:323 mod/photos.php:334 mod/photos.php:1567 +msgid "Delete Photo" +msgstr "Effacer la photo" + +#: mod/photos.php:332 +msgid "Do you really want to delete this photo?" +msgstr "Voulez-vous vraiment supprimer cette photo ?" + +#: mod/photos.php:707 +#, php-format +msgid "%1$s was tagged in %2$s by %3$s" +msgstr "%1$s a été étiqueté dans %2$s par %3$s" + +#: mod/photos.php:707 +msgid "a photo" +msgstr "une photo" + +#: mod/photos.php:814 +msgid "Image file is empty." +msgstr "Fichier image vide." + +#: mod/photos.php:974 +msgid "No photos selected" +msgstr "Aucune photo sélectionnée" + +#: mod/photos.php:1135 +#, php-format +msgid "You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage." +msgstr "Vous avez utilisé %1$.2f Mo sur %2$.2f d'espace de stockage pour les photos." + +#: mod/photos.php:1170 +msgid "Upload Photos" +msgstr "Téléverser des photos" + +#: mod/photos.php:1174 mod/photos.php:1245 +msgid "New album name: " +msgstr "Nom du nouvel album: " + +#: mod/photos.php:1175 +msgid "or existing album name: " +msgstr "ou nom d'un album existant: " + +#: mod/photos.php:1176 +msgid "Do not show a status post for this upload" +msgstr "Ne pas publier de notice de statut pour cet envoi" + +#: mod/photos.php:1189 +msgid "Private Photo" +msgstr "Photo privée" + +#: mod/photos.php:1190 +msgid "Public Photo" +msgstr "Photo publique" + +#: mod/photos.php:1258 +msgid "Edit Album" +msgstr "Éditer l'album" + +#: mod/photos.php:1264 +msgid "Show Newest First" +msgstr "Plus récent d'abord" + +#: mod/photos.php:1266 +msgid "Show Oldest First" +msgstr "Plus ancien d'abord" + +#: mod/photos.php:1294 mod/photos.php:1871 +msgid "View Photo" +msgstr "Voir la photo" + +#: mod/photos.php:1340 +msgid "Permission denied. Access to this item may be restricted." +msgstr "Interdit. L'accès à cet élément peut avoir été restreint." + +#: mod/photos.php:1342 +msgid "Photo not available" +msgstr "Photo indisponible" + +#: mod/photos.php:1398 +msgid "View photo" +msgstr "Voir photo" + +#: mod/photos.php:1398 +msgid "Edit photo" +msgstr "Éditer la photo" + +#: mod/photos.php:1399 +msgid "Use as profile photo" +msgstr "Utiliser comme photo de profil" + +#: mod/photos.php:1424 +msgid "View Full Size" +msgstr "Voir en taille réelle" + +#: mod/photos.php:1510 +msgid "Tags: " +msgstr "Étiquettes:" + +#: mod/photos.php:1513 +msgid "[Remove any tag]" +msgstr "[Retirer toutes les étiquettes]" + +#: mod/photos.php:1553 +msgid "New album name" +msgstr "Nom du nouvel album" + +#: mod/photos.php:1554 +msgid "Caption" +msgstr "Titre" + +#: mod/photos.php:1555 +msgid "Add a Tag" +msgstr "Ajouter une étiquette" + +#: mod/photos.php:1555 +msgid "" +"Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping" +msgstr "Exemples: @bob, @Barbara_Jensen, @jim@example.com, #Californie, #vacances" + +#: mod/photos.php:1556 +msgid "Do not rotate" +msgstr "Pas de rotation" + +#: mod/photos.php:1557 +msgid "Rotate CW (right)" +msgstr "Tourner dans le sens des aiguilles d'une montre (vers la droite)" + +#: mod/photos.php:1558 +msgid "Rotate CCW (left)" +msgstr "Tourner dans le sens contraire des aiguilles d'une montre (vers la gauche)" + +#: mod/photos.php:1573 +msgid "Private photo" +msgstr "Photo privée" + +#: mod/photos.php:1574 +msgid "Public photo" +msgstr "Photo publique" + +#: mod/photos.php:1800 +msgid "Map" +msgstr "Carte" + +#: mod/cal.php:279 mod/events.php:380 +msgid "View" +msgstr "Vue" + +#: mod/cal.php:280 mod/events.php:382 +msgid "Previous" +msgstr "Précédent" + +#: mod/cal.php:301 +msgid "User not found" +msgstr "Utilisateur introuvable" + +#: mod/cal.php:317 +msgid "This calendar format is not supported" +msgstr "Format de calendrier inconnu" + +#: mod/cal.php:319 +msgid "No exportable data found" +msgstr "Rien à exporter" + +#: mod/cal.php:334 +msgid "calendar" +msgstr "calendrier" + +#: mod/events.php:95 mod/events.php:97 +msgid "Event can not end before it has started." +msgstr "L'événement ne peut pas se terminer avant d'avoir commencé." + +#: mod/events.php:104 mod/events.php:106 +msgid "Event title and start time are required." +msgstr "Vous devez donner un nom et un horaire de début à l'événement." + +#: mod/events.php:381 +msgid "Create New Event" +msgstr "Créer un nouvel événement" + +#: mod/events.php:483 +msgid "Event details" +msgstr "Détails de l'événement" + +#: mod/events.php:484 +msgid "Starting date and Title are required." +msgstr "La date de début et le titre sont requis." + +#: mod/events.php:485 mod/events.php:486 +msgid "Event Starts:" +msgstr "Début de l'événement :" + +#: mod/events.php:487 mod/events.php:503 +msgid "Finish date/time is not known or not relevant" +msgstr "Date / heure de fin inconnue ou sans objet" + +#: mod/events.php:489 mod/events.php:490 +msgid "Event Finishes:" +msgstr "Fin de l'événement:" + +#: mod/events.php:491 mod/events.php:504 +msgid "Adjust for viewer timezone" +msgstr "Ajuster à la zone horaire du visiteur" + +#: mod/events.php:493 +msgid "Description:" +msgstr "Description:" + +#: mod/events.php:497 mod/events.php:499 +msgid "Title:" +msgstr "Titre :" + +#: mod/events.php:500 mod/events.php:501 +msgid "Share this event" +msgstr "Partager cet événement" + +#: mod/notifications.php:35 +msgid "Invalid request identifier." +msgstr "Identifiant de demande invalide." + +#: mod/notifications.php:44 mod/notifications.php:180 +#: mod/notifications.php:252 +msgid "Discard" +msgstr "Rejeter" + +#: mod/notifications.php:105 +msgid "Network Notifications" +msgstr "Notifications du réseau" + +#: mod/notifications.php:117 +msgid "Personal Notifications" +msgstr "Notifications personnelles" + +#: mod/notifications.php:123 +msgid "Home Notifications" +msgstr "Notifications de page d'accueil" + +#: mod/notifications.php:152 +msgid "Show Ignored Requests" +msgstr "Voir les demandes ignorées" + +#: mod/notifications.php:152 +msgid "Hide Ignored Requests" +msgstr "Cacher les demandes ignorées" + +#: mod/notifications.php:164 mod/notifications.php:222 +msgid "Notification type: " +msgstr "Type de notification: " + +#: mod/notifications.php:167 +#, php-format +msgid "suggested by %s" +msgstr "suggéré(e) par %s" + +#: mod/notifications.php:173 mod/notifications.php:240 +msgid "Post a new friend activity" +msgstr "Poster une nouvelle avtivité d'ami" + +#: mod/notifications.php:173 mod/notifications.php:240 +msgid "if applicable" +msgstr "si possible" + +#: mod/notifications.php:176 mod/notifications.php:249 mod/admin.php:1390 +msgid "Approve" +msgstr "Approuver" + +#: mod/notifications.php:195 +msgid "Claims to be known to you: " +msgstr "Prétend que vous le connaissez: " + +#: mod/notifications.php:196 +msgid "yes" +msgstr "oui" + +#: mod/notifications.php:196 +msgid "no" +msgstr "non" + +#: mod/notifications.php:197 +msgid "" +"Shall your connection be bidirectional or not? \"Friend\" implies that you " +"allow to read and you subscribe to their posts. \"Fan/Admirer\" means that " +"you allow to read but you do not want to read theirs. Approve as: " +msgstr "Doit être votre connexion bidirectionnelle ou non? \"Ami\" implique que vous autorisiez à lire et vous vous abonnez à leurs postes. \"Fan / Admirateur\" signifie que vous permettez de lire, mais vous ne voulez pas lire les leurs. Approuver en:" + +#: mod/notifications.php:200 +msgid "" +"Shall your connection be bidirectional or not? \"Friend\" implies that you " +"allow to read and you subscribe to their posts. \"Sharer\" means that you " +"allow to read but you do not want to read theirs. Approve as: " +msgstr "Doit être votre connexion bidirectionnelle ou non? \"Ami\" implique que vous autorisiez à lire et vous vous abonnez à leurs postes. \"Fan / Admirateur\" signifie que vous permettez de lire, mais vous ne voulez pas lire les leurs. Approuver en:" + +#: mod/notifications.php:209 +msgid "Friend" +msgstr "Ami" + +#: mod/notifications.php:210 +msgid "Sharer" +msgstr "Initiateur du partage" + +#: mod/notifications.php:210 +msgid "Fan/Admirer" +msgstr "Fan/Admirateur" + +#: mod/notifications.php:260 +msgid "No introductions." +msgstr "Aucune demande d'introduction." + +#: mod/notifications.php:299 +msgid "Show unread" +msgstr "Afficher non-lus" + +#: mod/notifications.php:299 +msgid "Show all" +msgstr "Tout afficher" + +#: mod/notifications.php:305 +#, php-format +msgid "No more %s notifications." +msgstr "Aucune notification de %s" + +#: mod/ping.php:234 +msgid "{0} wants to be your friend" +msgstr "{0} souhaite être votre ami(e)" + +#: mod/ping.php:249 +msgid "{0} sent you a message" +msgstr "{0} vous a envoyé un message" + +#: mod/ping.php:264 +msgid "{0} requested registration" +msgstr "{0} a demandé à s'inscrire" + +#: mod/admin.php:92 +msgid "Theme settings updated." +msgstr "Réglages du thème sauvés." + +#: mod/admin.php:156 mod/admin.php:926 +msgid "Site" +msgstr "Site" + +#: mod/admin.php:157 mod/admin.php:870 mod/admin.php:1383 mod/admin.php:1398 +msgid "Users" +msgstr "Utilisateurs" + +#: mod/admin.php:159 mod/admin.php:1758 mod/admin.php:1808 +msgid "Themes" +msgstr "Thèmes" + +#: mod/admin.php:161 +msgid "DB updates" +msgstr "Mise-à-jour de la base" + +#: mod/admin.php:162 mod/admin.php:397 +msgid "Inspect Queue" +msgstr "Inspecter la file d'attente" + +#: mod/admin.php:163 mod/admin.php:363 +msgid "Federation Statistics" +msgstr "Statistiques Federation" + +#: mod/admin.php:177 mod/admin.php:188 mod/admin.php:1882 +msgid "Logs" +msgstr "Journaux" + +#: mod/admin.php:178 mod/admin.php:1950 +msgid "View Logs" +msgstr "Voir les logs" + +#: mod/admin.php:179 +msgid "probe address" +msgstr "Tester une adresse" + +#: mod/admin.php:180 +msgid "check webfinger" +msgstr "vérification de webfinger" + +#: mod/admin.php:187 +msgid "Plugin Features" +msgstr "Propriétés des extensions" + +#: mod/admin.php:189 +msgid "diagnostics" +msgstr "diagnostic" + +#: mod/admin.php:190 +msgid "User registrations waiting for confirmation" +msgstr "Inscriptions en attente de confirmation" + +#: mod/admin.php:356 +msgid "" +"This page offers you some numbers to the known part of the federated social " +"network your Friendica node is part of. These numbers are not complete but " +"only reflect the part of the network your node is aware of." +msgstr "Cette page montre quelques statistiques de la partie connue du réseau social fédéré dont votre instance Friendica fait partie. Ces chiffres sont partiels et ne reflètent que la portion du réseau dont votre instance a connaissance." + +#: mod/admin.php:357 +msgid "" +"The Auto Discovered Contact Directory feature is not enabled, it " +"will improve the data displayed here." +msgstr "En activant la fonctionnalité Répertoire de Contacts Découverts Automatiquement, cela améliorera la qualité des chiffres présentés ici." + +#: mod/admin.php:362 mod/admin.php:396 mod/admin.php:460 mod/admin.php:925 +#: mod/admin.php:1382 mod/admin.php:1499 mod/admin.php:1559 mod/admin.php:1757 +#: mod/admin.php:1807 mod/admin.php:1881 mod/admin.php:1949 +msgid "Administration" +msgstr "Administration" + +#: mod/admin.php:369 +#, php-format +msgid "Currently this node is aware of %d nodes from the following platforms:" +msgstr "Actuellement cette instance est en relation avec %d autres instances des plate-formes suivantes :" + +#: mod/admin.php:399 +msgid "ID" +msgstr "ID" + +#: mod/admin.php:400 +msgid "Recipient Name" +msgstr "Nom du destinataire" + +#: mod/admin.php:401 +msgid "Recipient Profile" +msgstr "Profil du destinataire" + +#: mod/admin.php:403 +msgid "Created" +msgstr "Créé" + +#: mod/admin.php:404 +msgid "Last Tried" +msgstr "Dernier essai" + +#: mod/admin.php:405 +msgid "" +"This page lists the content of the queue for outgoing postings. These are " +"postings the initial delivery failed for. They will be resend later and " +"eventually deleted if the delivery fails permanently." +msgstr "Cette page présente le contenu de la file d'attente pour les publications sortantes. Ce sont des messages dont la première livraison a échoué. Ils seront réenvoyés plus tard et éventuellement supprimés si l'envoi échoue de façon permanente." + +#: mod/admin.php:424 mod/admin.php:1331 +msgid "Normal Account" +msgstr "Compte normal" + +#: mod/admin.php:425 mod/admin.php:1332 +msgid "Soapbox Account" +msgstr "Compte \"boîte à savon\"" + +#: mod/admin.php:426 mod/admin.php:1333 +msgid "Community/Celebrity Account" +msgstr "Compte de communauté/célébrité" + +#: mod/admin.php:427 mod/admin.php:1334 +msgid "Automatic Friend Account" +msgstr "Compte auto-amical" + +#: mod/admin.php:428 +msgid "Blog Account" +msgstr "Compte de blog" + +#: mod/admin.php:429 +msgid "Private Forum" +msgstr "Forum privé" + +#: mod/admin.php:455 +msgid "Message queues" +msgstr "Files d'attente des messages" + +#: mod/admin.php:461 +msgid "Summary" +msgstr "Résumé" + +#: mod/admin.php:464 +msgid "Registered users" +msgstr "Utilisateurs inscrits" + +#: mod/admin.php:466 +msgid "Pending registrations" +msgstr "Inscriptions en attente" + +#: mod/admin.php:467 +msgid "Version" +msgstr "Versio" + +#: mod/admin.php:472 +msgid "Active plugins" +msgstr "Extensions activés" + +#: mod/admin.php:495 +msgid "Can not parse base url. Must have at least ://" +msgstr "Impossible d'analyser l'URL de base. Doit contenir au moins ://" + +#: mod/admin.php:798 +msgid "RINO2 needs mcrypt php extension to work." +msgstr "RINO2 a besoin du module php mcrypt pour fonctionner." + +#: mod/admin.php:806 +msgid "Site settings updated." +msgstr "Réglages du site mis-à-jour." + +#: mod/admin.php:853 +msgid "No community page" +msgstr "Aucune page de communauté" + +#: mod/admin.php:854 +msgid "Public postings from users of this site" +msgstr "Publications publiques des utilisateurs de ce site" + +#: mod/admin.php:855 +msgid "Global community page" +msgstr "Page de la communauté globale" + +#: mod/admin.php:861 +msgid "At post arrival" +msgstr "A l'arrivé d'une publication" + +#: mod/admin.php:871 +msgid "Users, Global Contacts" +msgstr "Utilisateurs, Contacts Globaux" + +#: mod/admin.php:872 +msgid "Users, Global Contacts/fallback" +msgstr "Utilisateurs, Contacts Globaux/alternative" + +#: mod/admin.php:876 +msgid "One month" +msgstr "Un mois" + +#: mod/admin.php:877 +msgid "Three months" +msgstr "Trois mois" + +#: mod/admin.php:878 +msgid "Half a year" +msgstr "Six mois" + +#: mod/admin.php:879 +msgid "One year" +msgstr "Un an" + +#: mod/admin.php:884 +msgid "Multi user instance" +msgstr "Instance multi-utilisateurs" + +#: mod/admin.php:907 +msgid "Closed" +msgstr "Fermé" + +#: mod/admin.php:908 +msgid "Requires approval" +msgstr "Demande une apptrobation" + +#: mod/admin.php:909 +msgid "Open" +msgstr "Ouvert" + +#: mod/admin.php:913 +msgid "No SSL policy, links will track page SSL state" +msgstr "Pas de politique SSL, le liens conserveront l'état SSL de la page" + +#: mod/admin.php:914 +msgid "Force all links to use SSL" +msgstr "Forcer tous les liens à utiliser SSL" + +#: mod/admin.php:915 +msgid "Self-signed certificate, use SSL for local links only (discouraged)" +msgstr "Certificat auto-signé, n'utiliser SSL que pour les liens locaux (non recommandé)" + +#: mod/admin.php:929 +msgid "File upload" +msgstr "Téléversement de fichier" + +#: mod/admin.php:930 +msgid "Policies" +msgstr "Politiques" + +#: mod/admin.php:932 +msgid "Auto Discovered Contact Directory" +msgstr "Répertoire de Contacts Découverts Automatiquement" + +#: mod/admin.php:933 +msgid "Performance" +msgstr "Performance" + +#: mod/admin.php:934 +msgid "Worker" +msgstr "Worker" + +#: mod/admin.php:935 +msgid "" +"Relocate - WARNING: advanced function. Could make this server unreachable." +msgstr "Relocalisation - ATTENTION: fonction avancée. Peut rendre ce serveur inaccessible." + +#: mod/admin.php:938 +msgid "Site name" +msgstr "Nom du site" + +#: mod/admin.php:939 +msgid "Host name" +msgstr "Nom de la machine hôte" + +#: mod/admin.php:940 +msgid "Sender Email" +msgstr "Courriel de l'émetteur" + +#: mod/admin.php:940 +msgid "" +"The email address your server shall use to send notification emails from." +msgstr "L'adresse courriel à partir de laquelle votre serveur enverra des courriels." + +#: mod/admin.php:941 +msgid "Banner/Logo" +msgstr "Bannière/Logo" + +#: mod/admin.php:942 +msgid "Shortcut icon" +msgstr "Icône de raccourci" + +#: mod/admin.php:942 +msgid "Link to an icon that will be used for browsers." +msgstr "Lien vers une icône qui sera utilisée pour les navigateurs." + +#: mod/admin.php:943 +msgid "Touch icon" +msgstr "Icône pour systèmes tactiles" + +#: mod/admin.php:943 +msgid "Link to an icon that will be used for tablets and mobiles." +msgstr "Lien vers une icône qui sera utilisée pour les tablettes et les mobiles." + +#: mod/admin.php:944 +msgid "Additional Info" +msgstr "Informations supplémentaires" + +#: mod/admin.php:944 +#, php-format +msgid "" +"For public servers: you can add additional information here that will be " +"listed at %s/siteinfo." +msgstr "Pour les serveurs publics : vous pouvez ajouter des informations supplémentaires ici, qui figureront dans %s/siteinfo." + +#: mod/admin.php:945 +msgid "System language" +msgstr "Langue du système" + +#: mod/admin.php:946 +msgid "System theme" +msgstr "Thème du système" + +#: mod/admin.php:946 +msgid "" +"Default system theme - may be over-ridden by user profiles - change theme settings" +msgstr "Thème par défaut sur ce site - peut être changé au niveau du profile utilisateur - changer les réglages du thème" + +#: mod/admin.php:947 +msgid "Mobile system theme" +msgstr "Thème mobile" + +#: mod/admin.php:947 +msgid "Theme for mobile devices" +msgstr "Thème pour les terminaux mobiles" + +#: mod/admin.php:948 +msgid "SSL link policy" +msgstr "Politique SSL pour les liens" + +#: mod/admin.php:948 +msgid "Determines whether generated links should be forced to use SSL" +msgstr "Détermine si les liens générés doivent forcer l'utilisation de SSL" + +#: mod/admin.php:949 +msgid "Force SSL" +msgstr "SSL obligatoire" + +#: mod/admin.php:949 +msgid "" +"Force all Non-SSL requests to SSL - Attention: on some systems it could lead" +" to endless loops." +msgstr "Redirige toutes les requêtes en clair vers des requêtes SSL. Attention : sur certains systèmes cela peut conduire à des boucles de redirection infinies." + +#: mod/admin.php:950 +msgid "Old style 'Share'" +msgstr "Anciens style 'Partage'" + +#: mod/admin.php:950 +msgid "Deactivates the bbcode element 'share' for repeating items." +msgstr "Désactive l'élément 'partage' de bbcode pour répéter les articles." + +#: mod/admin.php:951 +msgid "Hide help entry from navigation menu" +msgstr "Cacher l'aide du menu de navigation" + +#: mod/admin.php:951 +msgid "" +"Hides the menu entry for the Help pages from the navigation menu. You can " +"still access it calling /help directly." +msgstr "Cacher du menu de navigation le l'entrée des vers les pages d'aide. Vous pouvez toujours y accéder en tapant directement /help." + +#: mod/admin.php:952 +msgid "Single user instance" +msgstr "Instance mono-utilisateur" + +#: mod/admin.php:952 +msgid "Make this instance multi-user or single-user for the named user" +msgstr "Transformer cette en instance en multi-utilisateur ou mono-utilisateur pour cet l'utilisateur." + +#: mod/admin.php:953 +msgid "Maximum image size" +msgstr "Taille maximale des images" + +#: mod/admin.php:953 +msgid "" +"Maximum size in bytes of uploaded images. Default is 0, which means no " +"limits." +msgstr "Taille maximale des images envoyées (en octets). 0 par défaut, c'est à dire \"aucune limite\"." + +#: mod/admin.php:954 +msgid "Maximum image length" +msgstr "Longueur maximale des images" + +#: mod/admin.php:954 +msgid "" +"Maximum length in pixels of the longest side of uploaded images. Default is " +"-1, which means no limits." +msgstr "Longueur maximale (en pixels) du plus long côté des images téléversées. La valeur par défaut est -1, soit une absence de limite." + +#: mod/admin.php:955 +msgid "JPEG image quality" +msgstr "Qualité JPEG des images" + +#: mod/admin.php:955 +msgid "" +"Uploaded JPEGS will be saved at this quality setting [0-100]. Default is " +"100, which is full quality." +msgstr "Les JPEGs téléversés seront sauvegardés avec ce niveau de qualité [0-100]. La valeur par défaut est 100, soit la qualité maximale." + +#: mod/admin.php:957 +msgid "Register policy" +msgstr "Politique d'inscription" + +#: mod/admin.php:958 +msgid "Maximum Daily Registrations" +msgstr "Inscriptions maximum par jour" + +#: mod/admin.php:958 +msgid "" +"If registration is permitted above, this sets the maximum number of new user" +" registrations to accept per day. If register is set to closed, this " +"setting has no effect." +msgstr "Si les inscriptions sont permises ci-dessus, ceci fixe le nombre maximum d'inscriptions de nouveaux utilisateurs acceptées par jour. Si les inscriptions ne sont pas ouvertes, ce paramètre n'a aucun effet." + +#: mod/admin.php:959 +msgid "Register text" +msgstr "Texte d'inscription" + +#: mod/admin.php:959 +msgid "Will be displayed prominently on the registration page." +msgstr "Sera affiché de manière bien visible sur la page d'accueil." + +#: mod/admin.php:960 +msgid "Accounts abandoned after x days" +msgstr "Les comptes sont abandonnés après x jours" + +#: mod/admin.php:960 +msgid "" +"Will not waste system resources polling external sites for abandonded " +"accounts. Enter 0 for no time limit." +msgstr "Pour ne pas gaspiller les ressources système, on cesse d'interroger les sites distants pour les comptes abandonnés. Mettre 0 pour désactiver cette fonction." + +#: mod/admin.php:961 +msgid "Allowed friend domains" +msgstr "Domaines autorisés" + +#: mod/admin.php:961 +msgid "" +"Comma separated list of domains which are allowed to establish friendships " +"with this site. Wildcards are accepted. Empty to allow any domains" +msgstr "Une liste de domaines, séparés par des virgules, autorisés à établir des relations avec les utilisateurs de ce site. Les '*' sont acceptés. Laissez vide pour autoriser tous les domaines" + +#: mod/admin.php:962 +msgid "Allowed email domains" +msgstr "Domaines courriel autorisés" + +#: mod/admin.php:962 +msgid "" +"Comma separated list of domains which are allowed in email addresses for " +"registrations to this site. Wildcards are accepted. Empty to allow any " +"domains" +msgstr "Liste de domaines - séparés par des virgules - dont les adresses e-mail sont autorisées à s'inscrire sur ce site. Les '*' sont acceptées. Laissez vide pour autoriser tous les domaines" + +#: mod/admin.php:963 +msgid "Block public" +msgstr "Interdire la publication globale" + +#: mod/admin.php:963 +msgid "" +"Check to block public access to all otherwise public personal pages on this " +"site unless you are currently logged in." +msgstr "Cocher pour bloquer les accès anonymes (non-connectés) à tout sauf aux pages personnelles publiques." + +#: mod/admin.php:964 +msgid "Force publish" +msgstr "Forcer la publication globale" + +#: mod/admin.php:964 +msgid "" +"Check to force all profiles on this site to be listed in the site directory." +msgstr "Cocher pour publier obligatoirement tous les profils locaux dans l'annuaire du site." + +#: mod/admin.php:965 +msgid "Global directory URL" +msgstr "URL de l'annuaire global" + +#: mod/admin.php:965 +msgid "" +"URL to the global directory. If this is not set, the global directory is " +"completely unavailable to the application." +msgstr "URL de l'annuaire global. Si ce champ n'est pas défini, l'annuaire global sera complètement indisponible pour l'application." + +#: mod/admin.php:966 +msgid "Allow threaded items" +msgstr "autoriser le suivi des éléments par fil conducteur" + +#: mod/admin.php:966 +msgid "Allow infinite level threading for items on this site." +msgstr "Permettre une imbrication infinie des commentaires." + +#: mod/admin.php:967 +msgid "Private posts by default for new users" +msgstr "Publications privées par défaut pour les nouveaux utilisateurs" + +#: mod/admin.php:967 +msgid "" +"Set default post permissions for all new members to the default privacy " +"group rather than public." +msgstr "Rendre les publications de tous les nouveaux utilisateurs accessibles seulement par le groupe de contacts par défaut, et non par tout le monde." + +#: mod/admin.php:968 +msgid "Don't include post content in email notifications" +msgstr "Ne pas inclure le contenu posté dans l'e-mail de notification" + +#: mod/admin.php:968 +msgid "" +"Don't include the content of a post/comment/private message/etc. in the " +"email notifications that are sent out from this site, as a privacy measure." +msgstr "Ne pas inclure le contenu de publication/commentaire/message privé/etc dans l'e-mail de notification qui est envoyé à partir du site, par mesure de confidentialité." + +#: mod/admin.php:969 +msgid "Disallow public access to addons listed in the apps menu." +msgstr "Interdire l’accès public pour les greffons listées dans le menu apps." + +#: mod/admin.php:969 +msgid "" +"Checking this box will restrict addons listed in the apps menu to members " +"only." +msgstr "Cocher cette case restreint la liste des greffons dans le menu des applications seulement aux membres." + +#: mod/admin.php:970 +msgid "Don't embed private images in posts" +msgstr "Ne pas miniaturiser les images privées dans les publications" + +#: mod/admin.php:970 +msgid "" +"Don't replace locally-hosted private photos in posts with an embedded copy " +"of the image. This means that contacts who receive posts containing private " +"photos will have to authenticate and load each image, which may take a " +"while." +msgstr "Ne remplacez pas les images privées hébergées localement dans les publications avec une image attaché en copie, car cela signifie que le contact qui reçoit les publications contenant ces photos privées devra s’authentifier pour charger chaque image, ce qui peut prendre du temps." + +#: mod/admin.php:971 +msgid "Allow Users to set remote_self" +msgstr "Autoriser les utilisateurs à définir remote_self" + +#: mod/admin.php:971 +msgid "" +"With checking this, every user is allowed to mark every contact as a " +"remote_self in the repair contact dialog. Setting this flag on a contact " +"causes mirroring every posting of that contact in the users stream." +msgstr "Cocher cette case, permet à chaque utilisateur de marquer chaque contact comme un remote_self dans la boîte de dialogue de réparation des contacts. Activer cette fonction à un contact engendre la réplique de toutes les publications d'un contact dans le flux d'activités des utilisateurs." + +#: mod/admin.php:972 +msgid "Block multiple registrations" +msgstr "Interdire les inscriptions multiples" + +#: mod/admin.php:972 +msgid "Disallow users to register additional accounts for use as pages." +msgstr "Ne pas permettre l'inscription de comptes multiples comme des pages." + +#: mod/admin.php:973 +msgid "OpenID support" +msgstr "Support OpenID" + +#: mod/admin.php:973 +msgid "OpenID support for registration and logins." +msgstr "Supporter OpenID pour les inscriptions et connexions." + +#: mod/admin.php:974 +msgid "Fullname check" +msgstr "Vérification du \"Prénom Nom\"" + +#: mod/admin.php:974 +msgid "" +"Force users to register with a space between firstname and lastname in Full " +"name, as an antispam measure" +msgstr "Imposer l'utilisation d'un espace entre le prénom et le nom (dans le Nom complet), pour limiter les abus" + +#: mod/admin.php:975 +msgid "UTF-8 Regular expressions" +msgstr "Regex UTF-8" + +#: mod/admin.php:975 +msgid "Use PHP UTF8 regular expressions" +msgstr "Utiliser les expressions rationnelles de PHP en UTF8" + +#: mod/admin.php:976 +msgid "Community Page Style" +msgstr "Style de la page de communauté" + +#: mod/admin.php:976 +msgid "" +"Type of community page to show. 'Global community' shows every public " +"posting from an open distributed network that arrived on this server." +msgstr "Type de page de la communauté à afficher. « Communauté globale » montre toutes les publications publiques des réseaux distribués ouverts qui arrivent sur ce serveur." + +#: mod/admin.php:977 +msgid "Posts per user on community page" +msgstr "Nombre de publications par utilisateur sur la page de la communauté (n'est pas valide pour " + +#: mod/admin.php:977 +msgid "" +"The maximum number of posts per user on the community page. (Not valid for " +"'Global Community')" +msgstr "Nombre maximal de publications par utilisateurs sur la page de la communauté (ne s'applique pas pour « Communauté globale »)." + +#: mod/admin.php:978 +msgid "Enable OStatus support" +msgstr "Activer le support d'OStatus" + +#: mod/admin.php:978 +msgid "" +"Provide built-in OStatus (StatusNet, GNU Social etc.) compatibility. All " +"communications in OStatus are public, so privacy warnings will be " +"occasionally displayed." +msgstr "Fourni nativement la compatibilité avec OStatus (StatusNet, GNU Social etc.). Touts les communications utilisant OStatus sont public, des avertissements liés à la vie privée seront affichés si utile." + +#: mod/admin.php:979 +msgid "OStatus conversation completion interval" +msgstr "Achèvement de l'intervalle de conversation OStatus " + +#: mod/admin.php:979 +msgid "" +"How often shall the poller check for new entries in OStatus conversations? " +"This can be a very ressource task." +msgstr "Combien de fois le poller devra vérifier les nouvelles entrées dans les conversations OStatus? Cela peut utilisé beaucoup de ressources." + +#: mod/admin.php:980 +msgid "Only import OStatus threads from our contacts" +msgstr "Importer seulement les fils OStatus de nos contacts" + +#: mod/admin.php:980 +msgid "" +"Normally we import every content from our OStatus contacts. With this option" +" we only store threads that are started by a contact that is known on our " +"system." +msgstr "" + +#: mod/admin.php:981 +msgid "OStatus support can only be enabled if threading is enabled." +msgstr "Le support OStatus ne peut être activé que si l'imbrication des commentaires est activée." + +#: mod/admin.php:983 +msgid "" +"Diaspora support can't be enabled because Friendica was installed into a sub" +" directory." +msgstr "Le support de Diaspora ne peut pas être activé parce que Friendica a été installé dans un sous-répertoire." + +#: mod/admin.php:984 +msgid "Enable Diaspora support" +msgstr "Activer le support de Diaspora" + +#: mod/admin.php:984 +msgid "Provide built-in Diaspora network compatibility." +msgstr "Fournir une compatibilité Diaspora intégrée." + +#: mod/admin.php:985 +msgid "Only allow Friendica contacts" +msgstr "N'autoriser que les contacts Friendica" + +#: mod/admin.php:985 +msgid "" +"All contacts must use Friendica protocols. All other built-in communication " +"protocols disabled." +msgstr "Tous les contacts doivent utiliser les protocoles de Friendica. Tous les autres protocoles de communication intégrés sont désactivés." + +#: mod/admin.php:986 +msgid "Verify SSL" +msgstr "Vérifier SSL" + +#: mod/admin.php:986 +msgid "" +"If you wish, you can turn on strict certificate checking. This will mean you" +" cannot connect (at all) to self-signed SSL sites." +msgstr "Si vous le souhaitez, vous pouvez activier la vérification stricte des certificats. Cela signifie que vous ne pourrez pas vous connecter (du tout) aux sites SSL munis d'un certificat auto-signé." + +#: mod/admin.php:987 +msgid "Proxy user" +msgstr "Utilisateur du proxy" + +#: mod/admin.php:988 +msgid "Proxy URL" +msgstr "URL du proxy" + +#: mod/admin.php:989 +msgid "Network timeout" +msgstr "Dépassement du délai d'attente du réseau" + +#: mod/admin.php:989 +msgid "Value is in seconds. Set to 0 for unlimited (not recommended)." +msgstr "Valeur en secondes. Mettre à 0 pour 'illimité' (pas recommandé)." + +#: mod/admin.php:990 +msgid "Delivery interval" +msgstr "Intervalle de transmission" + +#: mod/admin.php:990 +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 "Rallonge le processus de transmissions pour réduire la charge système (en secondes). Valeurs recommandées : 4-5 pour les serveurs mutualisés, 2-3 pour les VPS, 0-1 pour les gros servers dédiés." + +#: mod/admin.php:991 +msgid "Poll interval" +msgstr "Intervalle de réception" + +#: mod/admin.php:991 +msgid "" +"Delay background polling processes by this many seconds to reduce system " +"load. If 0, use delivery interval." +msgstr "Rajouter un délai - en secondes - au processus de 'polling', afin de réduire la charge système. Mettre à 0 pour utiliser l'intervalle d'émission." + +#: mod/admin.php:992 +msgid "Maximum Load Average" +msgstr "Plafond de la charge moyenne" + +#: mod/admin.php:992 +msgid "" +"Maximum system load before delivery and poll processes are deferred - " +"default 50." +msgstr "Charge système maximale à partir de laquelle l'émission et la réception seront soumises à un délai supplémentaire. Par défaut, 50." + +#: mod/admin.php:993 +msgid "Maximum Load Average (Frontend)" +msgstr "Plafond de la charge moyenne (frontale)" + +#: mod/admin.php:993 +msgid "Maximum system load before the frontend quits service - default 50." +msgstr "Limite de charge système pour le rendu des pages - défaut 50." + +#: mod/admin.php:994 +msgid "Maximum table size for optimization" +msgstr "Limite de taille de table pour l'optimisation" + +#: mod/admin.php:994 +msgid "" +"Maximum table size (in MB) for the automatic optimization - default 100 MB. " +"Enter -1 to disable it." +msgstr "Limite de taille de table (en Mo) pour l'optimisation automatique - défaut 100 Mo. -1 pour désactiver la limite." + +#: mod/admin.php:995 +msgid "Minimum level of fragmentation" +msgstr "Seuil de fragmentation" + +#: mod/admin.php:995 +msgid "" +"Minimum fragmenation level to start the automatic optimization - default " +"value is 30%." +msgstr "Seuil de fragmentation pour que l'optimisation automatique se déclenche - défaut 30%." + +#: mod/admin.php:997 +msgid "Periodical check of global contacts" +msgstr "Vérification périodique des contacts globaux" + +#: mod/admin.php:997 +msgid "" +"If enabled, the global contacts are checked periodically for missing or " +"outdated data and the vitality of the contacts and servers." +msgstr "Si activé, les données manquantes et obsolètes et la vitalité des contacts et des serveurs seront vérifiées périodiquement dans les contacts globaux." + +#: mod/admin.php:998 +msgid "Days between requery" +msgstr "Nombre de jours entre les requêtes" + +#: mod/admin.php:998 +msgid "Number of days after which a server is requeried for his contacts." +msgstr "Nombre de jours avant qu'une requête de contacts soient envoyée à nouveau à un serveur." + +#: mod/admin.php:999 +msgid "Discover contacts from other servers" +msgstr "Découvrir des contacts des autres serveurs" + +#: mod/admin.php:999 +msgid "" +"Periodically query other servers for contacts. You can choose between " +"'users': the users on the remote system, 'Global Contacts': active contacts " +"that are known on the system. The fallback is meant for Redmatrix servers " +"and older friendica servers, where global contacts weren't available. The " +"fallback increases the server load, so the recommened setting is 'Users, " +"Global Contacts'." +msgstr "" + +#: mod/admin.php:1000 +msgid "Timeframe for fetching global contacts" +msgstr "Fréquence de récupération des contacts globaux" + +#: mod/admin.php:1000 +msgid "" +"When the discovery is activated, this value defines the timeframe for the " +"activity of the global contacts that are fetched from other servers." +msgstr "Quand la découverte de contacts est activée, cette valeur détermine la fréquence de récupération des données des contacts globaux présents sur d'autres serveurs." + +#: mod/admin.php:1001 +msgid "Search the local directory" +msgstr "Chercher dans le répertoire local" + +#: mod/admin.php:1001 +msgid "" +"Search the local directory instead of the global directory. When searching " +"locally, every search will be executed on the global directory in the " +"background. This improves the search results when the search is repeated." +msgstr "Cherche dans le répertoire local au lieu du répertoire local. Quand une recherche locale est effectuée, la même recherche est effectuée dans le répertoire global en tâche de fond. Cela améliore les résultats de la recherche si elle est réitérée." + +#: mod/admin.php:1003 +msgid "Publish server information" +msgstr "Publier les informations du serveur" + +#: mod/admin.php:1003 +msgid "" +"If enabled, general server and usage data will be published. The data " +"contains the name and version of the server, number of users with public " +"profiles, number of posts and the activated protocols and connectors. See the-federation.info for details." +msgstr "Si cette option est activée, des informations sur le serveur et son utilisation seront publiées. Ces informations incluent le nom et la version du serveur, le nombre d’utilisateurs avec des profils publics, le nombre de messages, les protocoles supportés et les connecteurs disponibles. Plus de détails sur the-federation.info." + +#: mod/admin.php:1005 +msgid "Use MySQL full text engine" +msgstr "Utiliser le moteur de recherche plein texte de MySQL" + +#: mod/admin.php:1005 +msgid "" +"Activates the full text engine. Speeds up search - but can only search for " +"four and more characters." +msgstr "Activer le moteur de recherche plein texte. Accélère la recherche mais peut seulement rechercher quatre lettres ou plus." + +#: mod/admin.php:1006 +msgid "Suppress Language" +msgstr "Supprimer un langage" + +#: mod/admin.php:1006 +msgid "Suppress language information in meta information about a posting." +msgstr "Supprimer les informations de langue dans les métadonnées des publications." + +#: mod/admin.php:1007 +msgid "Suppress Tags" +msgstr "Masquer les tags" + +#: mod/admin.php:1007 +msgid "Suppress showing a list of hashtags at the end of the posting." +msgstr "Ne pas afficher la liste des hashtags à la fin d’un message." + +#: mod/admin.php:1008 +msgid "Path to item cache" +msgstr "Chemin vers le cache des objets." + +#: mod/admin.php:1008 +msgid "The item caches buffers generated bbcode and external images." +msgstr "" + +#: mod/admin.php:1009 +msgid "Cache duration in seconds" +msgstr "Durée du cache en secondes" + +#: mod/admin.php:1009 +msgid "" +"How long should the cache files be hold? Default value is 86400 seconds (One" +" day). To disable the item cache, set the value to -1." +msgstr "Combien de temps les fichiers de cache doivent être maintenu? La valeur par défaut est 86400 secondes (une journée). Pour désactiver le cache de l'item, définissez la valeur à -1." + +#: mod/admin.php:1010 +msgid "Maximum numbers of comments per post" +msgstr "Nombre maximum de commentaires par publication" + +#: mod/admin.php:1010 +msgid "How much comments should be shown for each post? Default value is 100." +msgstr "Combien de commentaires doivent être affichés pour chaque publication? Valeur par défaut: 100." + +#: mod/admin.php:1011 +msgid "Path for lock file" +msgstr "Chemin vers le ficher de verrouillage" + +#: mod/admin.php:1011 +msgid "" +"The lock file is used to avoid multiple pollers at one time. Only define a " +"folder here." +msgstr "" + +#: mod/admin.php:1012 +msgid "Temp path" +msgstr "Chemin des fichiers temporaires" + +#: mod/admin.php:1012 +msgid "" +"If you have a restricted system where the webserver can't access the system " +"temp path, enter another path here." +msgstr "" + +#: mod/admin.php:1013 +msgid "Base path to installation" +msgstr "Chemin de base de l'installation" + +#: mod/admin.php:1013 +msgid "" +"If the system cannot detect the correct path to your installation, enter the" +" correct path here. This setting should only be set if you are using a " +"restricted system and symbolic links to your webroot." +msgstr "" + +#: mod/admin.php:1014 +msgid "Disable picture proxy" +msgstr "Désactiver le proxy image " + +#: mod/admin.php:1014 +msgid "" +"The picture proxy increases performance and privacy. It shouldn't be used on" +" systems with very low bandwith." +msgstr "Le proxy d'image augmente les performances et l'intimité. Il ne devrait pas être utilisé sur des systèmes avec une très faible bande passante." + +#: mod/admin.php:1015 +msgid "Enable old style pager" +msgstr "" + +#: mod/admin.php:1015 +msgid "" +"The old style pager has page numbers but slows down massively the page " +"speed." +msgstr "" + +#: mod/admin.php:1016 +msgid "Only search in tags" +msgstr "Rechercher seulement dans les étiquettes" + +#: mod/admin.php:1016 +msgid "On large systems the text search can slow down the system extremely." +msgstr "La recherche textuelle peut ralentir considérablement les systèmes de grande taille." + +#: mod/admin.php:1018 +msgid "New base url" +msgstr "Nouvelle URL de base" + +#: mod/admin.php:1018 +msgid "" +"Change base url for this server. Sends relocate message to all DFRN contacts" +" of all users." +msgstr "Changer d'URL de base pour ce serveur. Envoie un message de relocalisation à tous les contacts des réseaux distribués d'amis et de relations (DFRN) de tous les utilisateurs." + +#: mod/admin.php:1020 +msgid "RINO Encryption" +msgstr "Chiffrement RINO" + +#: mod/admin.php:1020 +msgid "Encryption layer between nodes." +msgstr "Couche de chiffrement entre les nœuds du réseau." + +#: mod/admin.php:1021 +msgid "Embedly API key" +msgstr "Clé API d'Embedly" + +#: mod/admin.php:1021 +msgid "" +"Embedly is used to fetch additional data for " +"web pages. This is an optional parameter." +msgstr "" + +#: mod/admin.php:1023 +msgid "Enable 'worker' background processing" +msgstr "" + +#: mod/admin.php:1023 +msgid "" +"The worker background processing limits the number of parallel background " +"jobs to a maximum number and respects the system load." +msgstr "" + +#: mod/admin.php:1024 +msgid "Maximum number of parallel workers" +msgstr "" + +#: mod/admin.php:1024 +msgid "" +"On shared hosters set this to 2. On larger systems, values of 10 are great. " +"Default value is 4." +msgstr "" + +#: mod/admin.php:1025 +msgid "Don't use 'proc_open' with the worker" +msgstr "" + +#: mod/admin.php:1025 +msgid "" +"Enable this if your system doesn't allow the use of 'proc_open'. This can " +"happen on shared hosters. If this is enabled you should increase the " +"frequency of poller calls in your crontab." +msgstr "" + +#: mod/admin.php:1026 +msgid "Enable fastlane" +msgstr "" + +#: mod/admin.php:1026 +msgid "" +"When enabed, the fastlane mechanism starts an additional worker if processes" +" with higher priority are blocked by processes of lower priority." +msgstr "" + +#: mod/admin.php:1055 +msgid "Update has been marked successful" +msgstr "Mise-à-jour validée comme 'réussie'" + +#: mod/admin.php:1063 +#, php-format +msgid "Database structure update %s was successfully applied." +msgstr "La structure de base de données pour la mise à jour %s a été appliquée avec succès." + +#: mod/admin.php:1066 +#, php-format +msgid "Executing of database structure update %s failed with error: %s" +msgstr "L'exécution de la mise à jour %s pour la structure de base de données a échoué avec l'erreur: %s" + +#: mod/admin.php:1078 +#, php-format +msgid "Executing %s failed with error: %s" +msgstr "L'exécution %s a échoué avec l'erreur: %s" + +#: mod/admin.php:1081 +#, php-format +msgid "Update %s was successfully applied." +msgstr "Mise-à-jour %s appliquée avec succès." + +#: mod/admin.php:1085 +#, php-format +msgid "Update %s did not return a status. Unknown if it succeeded." +msgstr "La mise-à-jour %s n'a pas retourné de détails. Impossible de savoir si elle a réussi." + +#: mod/admin.php:1087 +#, php-format +msgid "There was no additional update function %s that needed to be called." +msgstr "Il n'y avait aucune fonction supplémentaire de mise à jour %s qui devait être appelé" + +#: mod/admin.php:1106 +msgid "No failed updates." +msgstr "Pas de mises-à-jour échouées." + +#: mod/admin.php:1107 +msgid "Check database structure" +msgstr "Vérifier la structure de la base de données" + +#: mod/admin.php:1112 +msgid "Failed Updates" +msgstr "Mises-à-jour échouées" + +#: mod/admin.php:1113 +msgid "" +"This does not include updates prior to 1139, which did not return a status." +msgstr "Ceci n'inclut pas les versions antérieures à la 1139, qui ne retournaient jamais de détails." + +#: mod/admin.php:1114 +msgid "Mark success (if update was manually applied)" +msgstr "Marquer comme 'réussie' (dans le cas d'une mise-à-jour manuelle)" + +#: mod/admin.php:1115 +msgid "Attempt to execute this update step automatically" +msgstr "Tenter d'éxecuter cette étape automatiquement" + +#: mod/admin.php:1147 +#, php-format +msgid "" +"\n" +"\t\t\tDear %1$s,\n" +"\t\t\t\tthe administrator of %2$s has set up an account for you." +msgstr "\n\t\t\tChère/Cher %1$s,\n\t\t\t\tL’administrateur de %2$s vous a ouvert un compte." + +#: mod/admin.php:1150 +#, php-format +msgid "" +"\n" +"\t\t\tThe login details are as follows:\n" +"\n" +"\t\t\tSite Location:\t%1$s\n" +"\t\t\tLogin Name:\t\t%2$s\n" +"\t\t\tPassword:\t\t%3$s\n" +"\n" +"\t\t\tYou may change your password from your account \"Settings\" page after logging\n" +"\t\t\tin.\n" +"\n" +"\t\t\tPlease take a few moments to review the other account settings on that page.\n" +"\n" +"\t\t\tYou may also wish to add some basic information to your default profile\n" +"\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n" +"\n" +"\t\t\tWe recommend setting your full name, adding a profile photo,\n" +"\t\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n" +"\t\t\tperhaps what country you live in; if you do not wish to be more specific\n" +"\t\t\tthan that.\n" +"\n" +"\t\t\tWe fully respect your right to privacy, and none of these items are necessary.\n" +"\t\t\tIf you are new and do not know anybody here, they may help\n" +"\t\t\tyou to make some new and interesting friends.\n" +"\n" +"\t\t\tThank you and welcome to %4$s." +msgstr "\n\t\t\tVoici vos informations de connexion :\n\n\t\t\tAdresse :\t%1$s\n\t\t\tIdentifiant :\t\t%2$s\n\t\t\tMot de passe :\t\t%3$s\n\n\t\t\tVous pourrez changer votre mot de passe dans les paramètres de votre compte une fois connecté.\n\n\t\t\tProfitez-en pour prendre le temps de passer en revue les autres paramètres de votre compte.\n\n\t\t\tVous pourrez aussi ajouter quelques informations élémentaires à votre profil par défaut (sur la page « Profils ») pour permettre à d’autres personnes de vous trouver facilement.\n\n\t\t\tNous recommandons de préciser votre nom complet, d’ajouter une photo et quelques mots-clefs (c’est très utile pour découvrir de nouveaux amis), et peut-être aussi d’indiquer au moins le pays dans lequel vous vivez, à défaut d’être plus précis.\n\n\t\t\tNous respectons pleinement votre droit à une vie privée, et vous n’avez aucune obligation de donner toutes ces informations. Mais si vous êtes nouveau et ne connaissez encore personne ici, cela peut vous aider à vous faire de nouveaux amis intéressants.\n\n\t\t\tMerci et bienvenu sur %4$s." + +#: mod/admin.php:1194 +#, php-format +msgid "%s user blocked/unblocked" +msgid_plural "%s users blocked/unblocked" +msgstr[0] "%s utilisateur a (dé)bloqué" +msgstr[1] "%s utilisateurs ont (dé)bloqué" + +#: mod/admin.php:1201 +#, php-format +msgid "%s user deleted" +msgid_plural "%s users deleted" +msgstr[0] "%s utilisateur supprimé" +msgstr[1] "%s utilisateurs supprimés" + +#: mod/admin.php:1248 +#, php-format +msgid "User '%s' deleted" +msgstr "Utilisateur '%s' supprimé" + +#: mod/admin.php:1256 +#, php-format +msgid "User '%s' unblocked" +msgstr "Utilisateur '%s' débloqué" + +#: mod/admin.php:1256 +#, php-format +msgid "User '%s' blocked" +msgstr "Utilisateur '%s' bloqué" + +#: mod/admin.php:1375 mod/admin.php:1400 +msgid "Register date" +msgstr "Date d'inscription" + +#: mod/admin.php:1375 mod/admin.php:1400 +msgid "Last login" +msgstr "Dernière connexion" + +#: mod/admin.php:1375 mod/admin.php:1400 +msgid "Last item" +msgstr "Dernier élément" + +#: mod/admin.php:1384 +msgid "Add User" +msgstr "Ajouter l'utilisateur" + +#: mod/admin.php:1385 +msgid "select all" +msgstr "tout sélectionner" + +#: mod/admin.php:1386 +msgid "User registrations waiting for confirm" +msgstr "Inscriptions d'utilisateurs en attente de confirmation" + +#: mod/admin.php:1387 +msgid "User waiting for permanent deletion" +msgstr "Utilisateur en attente de suppression définitive" + +#: mod/admin.php:1388 +msgid "Request date" +msgstr "Date de la demande" + +#: mod/admin.php:1389 +msgid "No registrations." +msgstr "Pas d'inscriptions." + +#: mod/admin.php:1391 +msgid "Deny" +msgstr "Rejetter" + +#: mod/admin.php:1395 +msgid "Site admin" +msgstr "Administration du Site" + +#: mod/admin.php:1396 +msgid "Account expired" +msgstr "Compte expiré" + +#: mod/admin.php:1399 +msgid "New User" +msgstr "Nouvel utilisateur" + +#: mod/admin.php:1400 +msgid "Deleted since" +msgstr "Supprimé depuis" + +#: mod/admin.php:1405 +msgid "" +"Selected users will be deleted!\\n\\nEverything these users had posted on " +"this site will be permanently deleted!\\n\\nAre you sure?" +msgstr "Les utilisateurs sélectionnés vont être supprimés!\\n\\nTout ce qu'ils ont posté sur ce site sera définitivement effacé!\\n\\nÊtes-vous certain?" + +#: mod/admin.php:1406 +msgid "" +"The user {0} will be deleted!\\n\\nEverything this user has posted on this " +"site will be permanently deleted!\\n\\nAre you sure?" +msgstr "L'utilisateur {0} va être supprimé!\\n\\nTout ce qu'il a posté sur ce site sera définitivement perdu!\\n\\nÊtes-vous certain?" + +#: mod/admin.php:1416 +msgid "Name of the new user." +msgstr "Nom du nouvel utilisateur." + +#: mod/admin.php:1417 +msgid "Nickname" +msgstr "Pseudo" + +#: mod/admin.php:1417 +msgid "Nickname of the new user." +msgstr "Pseudo du nouvel utilisateur." + +#: mod/admin.php:1418 +msgid "Email address of the new user." +msgstr "Adresse mail du nouvel utilisateur." + +#: mod/admin.php:1461 +#, php-format +msgid "Plugin %s disabled." +msgstr "Extension %s désactivée." + +#: mod/admin.php:1465 +#, php-format +msgid "Plugin %s enabled." +msgstr "Extension %s activée." + +#: mod/admin.php:1476 mod/admin.php:1712 +msgid "Disable" +msgstr "Désactiver" + +#: mod/admin.php:1478 mod/admin.php:1714 +msgid "Enable" +msgstr "Activer" + +#: mod/admin.php:1501 mod/admin.php:1759 +msgid "Toggle" +msgstr "Activer/Désactiver" + +#: mod/admin.php:1509 mod/admin.php:1768 +msgid "Author: " +msgstr "Auteur: " + +#: mod/admin.php:1510 mod/admin.php:1769 +msgid "Maintainer: " +msgstr "Mainteneur: " + +#: mod/admin.php:1562 +msgid "Reload active plugins" +msgstr "Recharger les extensions actives" + +#: mod/admin.php:1567 +#, php-format +msgid "" +"There are currently no plugins available on your node. You can find the " +"official plugin repository at %1$s and might find other interesting plugins " +"in the open plugin registry at %2$s" +msgstr "" + +#: mod/admin.php:1672 +msgid "No themes found." +msgstr "Aucun thème trouvé." + +#: mod/admin.php:1750 +msgid "Screenshot" +msgstr "Capture d'écran" + +#: mod/admin.php:1810 +msgid "Reload active themes" +msgstr "Recharger les thèmes actifs" + +#: mod/admin.php:1815 +#, php-format +msgid "No themes found on the system. They should be paced in %1$s" +msgstr "" + +#: mod/admin.php:1816 +msgid "[Experimental]" +msgstr "[Expérimental]" + +#: mod/admin.php:1817 +msgid "[Unsupported]" +msgstr "[Non supporté]" + +#: mod/admin.php:1841 +msgid "Log settings updated." +msgstr "Réglages des journaux mis-à-jour." + +#: mod/admin.php:1873 +msgid "PHP log currently enabled." +msgstr "" + +#: mod/admin.php:1875 +msgid "PHP log currently disabled." +msgstr "" + +#: mod/admin.php:1884 +msgid "Clear" +msgstr "Effacer" + +#: mod/admin.php:1889 +msgid "Enable Debugging" +msgstr "Activer le déboggage" + +#: mod/admin.php:1890 +msgid "Log file" +msgstr "Fichier de journaux" + +#: mod/admin.php:1890 +msgid "" +"Must be writable by web server. Relative to your Friendica top-level " +"directory." +msgstr "Accès en écriture par le serveur web requis. Relatif à la racine de votre installation de Friendica." + +#: mod/admin.php:1891 +msgid "Log level" +msgstr "Niveau de journalisaton" + +#: mod/admin.php:1894 +msgid "PHP logging" +msgstr "" + +#: mod/admin.php:1895 +msgid "" +"To enable logging of PHP errors and warnings you can add the following to " +"the .htconfig.php file of your installation. The filename set in the " +"'error_log' line is relative to the friendica top-level directory and must " +"be writeable by the web server. The option '1' for 'log_errors' and " +"'display_errors' is to enable these options, set to '0' to disable them." +msgstr "" + +#: mod/admin.php:2023 +#, php-format +msgid "Lock feature %s" +msgstr "" + +#: mod/admin.php:2031 +msgid "Manage Additional Features" +msgstr "" + +#: object/Item.php:370 +msgid "via" +msgstr "via" + +#: view/theme/frio/php/Image.php:23 +msgid "Repeat the image" +msgstr "" + +#: view/theme/frio/php/Image.php:23 +msgid "Will repeat your image to fill the background." +msgstr "" + +#: view/theme/frio/php/Image.php:25 +msgid "Stretch" +msgstr "" + +#: view/theme/frio/php/Image.php:25 +msgid "Will stretch to width/height of the image." +msgstr "" + +#: view/theme/frio/php/Image.php:27 +msgid "Resize fill and-clip" +msgstr "" + +#: view/theme/frio/php/Image.php:27 +msgid "Resize to fill and retain aspect ratio." +msgstr "" + +#: view/theme/frio/php/Image.php:29 +msgid "Resize best fit" +msgstr "" + +#: view/theme/frio/php/Image.php:29 +msgid "Resize to best fit and retain aspect ratio." +msgstr "" + +#: view/theme/frio/config.php:42 +msgid "Default" +msgstr "" + +#: view/theme/frio/config.php:54 +msgid "Note: " +msgstr "" + +#: view/theme/frio/config.php:54 +msgid "Check image permissions if all users are allowed to visit the image" +msgstr "" + +#: view/theme/frio/config.php:62 +msgid "Select scheme" +msgstr "" + +#: view/theme/frio/config.php:63 +msgid "Navigation bar background color" +msgstr "" + +#: view/theme/frio/config.php:64 +msgid "Navigation bar icon color " +msgstr "" + +#: view/theme/frio/config.php:65 +msgid "Link color" +msgstr "" + +#: view/theme/frio/config.php:66 +msgid "Set the background color" +msgstr "" + +#: view/theme/frio/config.php:67 +msgid "Content background transparency" +msgstr "" + +#: view/theme/frio/config.php:68 +msgid "Set the background image" +msgstr "" + +#: view/theme/frio/theme.php:226 +msgid "Guest" +msgstr "" + +#: view/theme/frio/theme.php:232 +msgid "Visitor" +msgstr "" #: view/theme/cleanzero/config.php:83 msgid "Set resize level for images in posts and comments (width and height)" @@ -8380,18 +8624,9 @@ msgid "Set theme width" msgstr "Largeur du thème" #: view/theme/cleanzero/config.php:86 view/theme/quattro/config.php:68 -#: view/theme/clean/config.php:88 msgid "Color scheme" msgstr "Palette de couleurs" -#: view/theme/dispy/config.php:74 view/theme/diabook/config.php:152 -msgid "Set line-height for posts and comments" -msgstr "Réglez 'line-height' (hauteur de police) pour publications et commentaires" - -#: view/theme/dispy/config.php:75 -msgid "Set colour scheme" -msgstr "Choisir le schéma de couleurs" - #: view/theme/quattro/config.php:67 msgid "Alignment" msgstr "Alignement" @@ -8412,6 +8647,104 @@ msgstr "Taille de texte des publications" msgid "Textareas font size" msgstr "Taille de police des zones de texte" +#: view/theme/dispy/config.php:74 view/theme/diabook/config.php:152 +msgid "Set line-height for posts and comments" +msgstr "Réglez 'line-height' (hauteur de police) pour publications et commentaires" + +#: view/theme/dispy/config.php:75 +msgid "Set colour scheme" +msgstr "Choisir le schéma de couleurs" + +#: view/theme/vier/theme.php:152 view/theme/vier/config.php:112 +#: view/theme/diabook/theme.php:391 view/theme/diabook/theme.php:626 +#: view/theme/diabook/config.php:160 +msgid "Community Profiles" +msgstr "Profils communautaires" + +#: view/theme/vier/theme.php:181 view/theme/vier/config.php:116 +#: view/theme/diabook/theme.php:412 view/theme/diabook/theme.php:630 +#: view/theme/diabook/config.php:164 +msgid "Last users" +msgstr "Derniers utilisateurs" + +#: view/theme/vier/theme.php:199 view/theme/vier/config.php:115 +#: view/theme/diabook/theme.php:523 view/theme/diabook/theme.php:629 +#: view/theme/diabook/config.php:163 +msgid "Find Friends" +msgstr "Trouver des amis" + +#: view/theme/vier/theme.php:200 view/theme/diabook/theme.php:524 +msgid "Local Directory" +msgstr "Annuaire local" + +#: view/theme/vier/theme.php:291 +msgid "Quick Start" +msgstr "Démarrage rapide" + +#: view/theme/vier/theme.php:373 view/theme/vier/config.php:114 +#: view/theme/diabook/theme.php:606 view/theme/diabook/theme.php:628 +#: view/theme/diabook/config.php:162 +msgid "Connect Services" +msgstr "Connecter des services" + +#: view/theme/vier/config.php:64 +msgid "Comma separated list of helper forums" +msgstr "" + +#: view/theme/vier/config.php:110 +msgid "Set style" +msgstr "Définir le style" + +#: view/theme/vier/config.php:111 view/theme/diabook/theme.php:130 +#: view/theme/diabook/theme.php:544 view/theme/diabook/theme.php:624 +#: view/theme/diabook/config.php:158 +msgid "Community Pages" +msgstr "Pages de Communauté" + +#: view/theme/vier/config.php:113 view/theme/diabook/theme.php:599 +#: view/theme/diabook/theme.php:627 view/theme/diabook/config.php:161 +msgid "Help or @NewHere ?" +msgstr "Aide ou @NewHere?" + +#: view/theme/diabook/theme.php:125 +msgid "Your contacts" +msgstr "Vos contacts" + +#: view/theme/diabook/theme.php:128 +msgid "Your personal photos" +msgstr "Vos photos personnelles" + +#: view/theme/diabook/theme.php:441 view/theme/diabook/theme.php:632 +#: view/theme/diabook/config.php:166 +msgid "Last likes" +msgstr "Dernièrement aimé" + +#: view/theme/diabook/theme.php:486 view/theme/diabook/theme.php:631 +#: view/theme/diabook/config.php:165 +msgid "Last photos" +msgstr "Dernières photos" + +#: view/theme/diabook/theme.php:579 view/theme/diabook/theme.php:625 +#: view/theme/diabook/config.php:159 +msgid "Earth Layers" +msgstr "Géolocalisation" + +#: view/theme/diabook/theme.php:584 +msgid "Set zoomfactor for Earth Layers" +msgstr "Régler le niveau de zoom pour la géolocalisation" + +#: view/theme/diabook/theme.php:585 view/theme/diabook/config.php:156 +msgid "Set longitude (X) for Earth Layers" +msgstr "Régler la longitude (X) pour la géolocalisation" + +#: view/theme/diabook/theme.php:586 view/theme/diabook/config.php:157 +msgid "Set latitude (Y) for Earth Layers" +msgstr "Régler la latitude (Y) pour la géolocalisation" + +#: view/theme/diabook/theme.php:622 +msgid "Show/hide boxes at right-hand column:" +msgstr "Montrer/cacher les boîtes dans la colonne de droite :" + #: view/theme/diabook/config.php:153 msgid "Set resolution for middle column" msgstr "Réglez la résolution de la colonne centrale" @@ -8424,146 +8757,6 @@ msgstr "Choisir le schéma de couleurs" msgid "Set zoomfactor for Earth Layer" msgstr "Niveau de zoom" -#: view/theme/diabook/config.php:156 view/theme/diabook/theme.php:585 -msgid "Set longitude (X) for Earth Layers" -msgstr "Régler la longitude (X) pour la géolocalisation" - -#: view/theme/diabook/config.php:157 view/theme/diabook/theme.php:586 -msgid "Set latitude (Y) for Earth Layers" -msgstr "Régler la latitude (Y) pour la géolocalisation" - -#: view/theme/diabook/config.php:158 view/theme/diabook/theme.php:130 -#: view/theme/diabook/theme.php:544 view/theme/diabook/theme.php:624 -#: view/theme/vier/config.php:111 -msgid "Community Pages" -msgstr "Pages de Communauté" - -#: view/theme/diabook/config.php:159 view/theme/diabook/theme.php:579 -#: view/theme/diabook/theme.php:625 -msgid "Earth Layers" -msgstr "Géolocalisation" - -#: view/theme/diabook/config.php:160 view/theme/diabook/theme.php:391 -#: view/theme/diabook/theme.php:626 view/theme/vier/config.php:112 -#: view/theme/vier/theme.php:156 -msgid "Community Profiles" -msgstr "Profils communautaires" - -#: view/theme/diabook/config.php:161 view/theme/diabook/theme.php:599 -#: view/theme/diabook/theme.php:627 view/theme/vier/config.php:113 -msgid "Help or @NewHere ?" -msgstr "Aide ou @NewHere?" - -#: view/theme/diabook/config.php:162 view/theme/diabook/theme.php:606 -#: view/theme/diabook/theme.php:628 view/theme/vier/config.php:114 -#: view/theme/vier/theme.php:377 -msgid "Connect Services" -msgstr "Connecter des services" - -#: view/theme/diabook/config.php:163 view/theme/diabook/theme.php:523 -#: view/theme/diabook/theme.php:629 view/theme/vier/config.php:115 -#: view/theme/vier/theme.php:203 -msgid "Find Friends" -msgstr "Trouver des amis" - -#: view/theme/diabook/config.php:164 view/theme/diabook/theme.php:412 -#: view/theme/diabook/theme.php:630 view/theme/vier/config.php:116 -#: view/theme/vier/theme.php:185 -msgid "Last users" -msgstr "Derniers utilisateurs" - -#: view/theme/diabook/config.php:165 view/theme/diabook/theme.php:486 -#: view/theme/diabook/theme.php:631 -msgid "Last photos" -msgstr "Dernières photos" - -#: view/theme/diabook/config.php:166 view/theme/diabook/theme.php:441 -#: view/theme/diabook/theme.php:632 -msgid "Last likes" -msgstr "Dernièrement aimé" - -#: view/theme/diabook/theme.php:125 -msgid "Your contacts" -msgstr "Vos contacts" - -#: view/theme/diabook/theme.php:128 -msgid "Your personal photos" -msgstr "Vos photos personnelles" - -#: view/theme/diabook/theme.php:524 view/theme/vier/theme.php:204 -msgid "Local Directory" -msgstr "Annuaire local" - -#: view/theme/diabook/theme.php:584 -msgid "Set zoomfactor for Earth Layers" -msgstr "Régler le niveau de zoom pour la géolocalisation" - -#: view/theme/diabook/theme.php:622 -msgid "Show/hide boxes at right-hand column:" -msgstr "Montrer/cacher les boîtes dans la colonne de droite :" - -#: view/theme/clean/config.php:57 -msgid "Midnight" -msgstr "" - -#: view/theme/clean/config.php:58 -msgid "Zenburn" -msgstr "" - -#: view/theme/clean/config.php:59 -msgid "Bootstrap" -msgstr "" - -#: view/theme/clean/config.php:60 -msgid "Shades of Pink" -msgstr "" - -#: view/theme/clean/config.php:61 -msgid "Lime and Orange" -msgstr "" - -#: view/theme/clean/config.php:62 -msgid "GeoCities Retro" -msgstr "" - -#: view/theme/clean/config.php:86 -msgid "Background Image" -msgstr "" - -#: view/theme/clean/config.php:86 -msgid "" -"The URL to a picture (e.g. from your photo album) that should be used as " -"background image." -msgstr "" - -#: view/theme/clean/config.php:87 -msgid "Background Color" -msgstr "" - -#: view/theme/clean/config.php:87 -msgid "HEX value for the background color. Don't include the #" -msgstr "" - -#: view/theme/clean/config.php:89 -msgid "font size" -msgstr "" - -#: view/theme/clean/config.php:89 -msgid "base font size for your interface" -msgstr "" - -#: view/theme/vier/config.php:64 -msgid "Comma separated list of helper forums" -msgstr "" - -#: view/theme/vier/config.php:110 -msgid "Set style" -msgstr "Définir le style" - -#: view/theme/vier/theme.php:295 -msgid "Quick Start" -msgstr "Démarrage rapide" - #: view/theme/duepuntozero/config.php:45 msgid "greenzero" msgstr "" @@ -8591,3 +8784,56 @@ msgstr "" #: view/theme/duepuntozero/config.php:62 msgid "Variations" msgstr "Variations" + +#: boot.php:902 +msgid "Delete this item?" +msgstr "Effacer cet élément?" + +#: boot.php:905 +msgid "show fewer" +msgstr "montrer moins" + +#: boot.php:1567 +#, php-format +msgid "Update %s failed. See error logs." +msgstr "Mise-à-jour %s échouée. Voir les journaux d'erreur." + +#: boot.php:1679 +msgid "Create a New Account" +msgstr "Créer un nouveau compte" + +#: boot.php:1708 +msgid "Password: " +msgstr "Mot de passe: " + +#: boot.php:1709 +msgid "Remember me" +msgstr "Se souvenir de moi" + +#: boot.php:1712 +msgid "Or login using OpenID: " +msgstr "Ou connectez-vous via OpenID: " + +#: boot.php:1718 +msgid "Forgot your password?" +msgstr "Mot de passe oublié?" + +#: boot.php:1721 +msgid "Website Terms of Service" +msgstr "Conditions d'utilisation du site internet" + +#: boot.php:1722 +msgid "terms of service" +msgstr "conditions d'utilisation" + +#: boot.php:1724 +msgid "Website Privacy Policy" +msgstr "Politique de confidentialité du site internet" + +#: boot.php:1725 +msgid "privacy policy" +msgstr "politique de confidentialité" + +#: index.php:447 +msgid "toggle mobile" +msgstr "activ. mobile" diff --git a/view/fr/strings.php b/view/lang/fr/strings.php similarity index 92% rename from view/fr/strings.php rename to view/lang/fr/strings.php index 9166419b8..c0cb973d3 100644 --- a/view/fr/strings.php +++ b/view/lang/fr/strings.php @@ -5,272 +5,736 @@ function string_plural_select_fr($n){ return ($n > 1);; }} ; -$a->strings["Network:"] = "Réseau"; -$a->strings["Forum"] = "Forum"; -$a->strings["%d contact edited."] = array( - 0 => "%d contact édité", - 1 => "%d contacts édités.", +$a->strings["Miscellaneous"] = "Divers"; +$a->strings["Birthday:"] = "Anniversaire:"; +$a->strings["Age: "] = "Age : "; +$a->strings["YYYY-MM-DD or MM-DD"] = "AAAA-MM-JJ ou MM-JJ"; +$a->strings["never"] = "jamais"; +$a->strings["less than a second ago"] = "il y a moins d'une seconde"; +$a->strings["year"] = "an"; +$a->strings["years"] = "ans"; +$a->strings["month"] = "mois"; +$a->strings["months"] = "mois"; +$a->strings["week"] = "semaine"; +$a->strings["weeks"] = "semaines"; +$a->strings["day"] = "jour"; +$a->strings["days"] = "jours"; +$a->strings["hour"] = "heure"; +$a->strings["hours"] = "heures"; +$a->strings["minute"] = "minute"; +$a->strings["minutes"] = "minutes"; +$a->strings["second"] = "seconde"; +$a->strings["seconds"] = "secondes"; +$a->strings["%1\$d %2\$s ago"] = "%1\$d %2\$s auparavant"; +$a->strings["%s's birthday"] = "Anniversaire de %s's"; +$a->strings["Happy Birthday %s"] = "Joyeux anniversaire, %s !"; +$a->strings["Add New Contact"] = "Ajouter un nouveau contact"; +$a->strings["Enter address or web location"] = "Entrez son adresse ou sa localisation web"; +$a->strings["Example: bob@example.com, http://example.com/barbara"] = "Exemple: bob@example.com, http://example.com/barbara"; +$a->strings["Connect"] = "Relier"; +$a->strings["%d invitation available"] = array( + 0 => "%d invitation disponible", + 1 => "%d invitations disponibles", ); -$a->strings["Could not access contact record."] = "Impossible d'accéder à l'enregistrement du contact."; -$a->strings["Could not locate selected profile."] = "Impossible de localiser le profil séléctionné."; -$a->strings["Contact updated."] = "Contact mis à jour."; -$a->strings["Failed to update contact record."] = "Échec de mise à jour du contact."; -$a->strings["Permission denied."] = "Permission refusée."; -$a->strings["Contact has been blocked"] = "Le contact a été bloqué"; -$a->strings["Contact has been unblocked"] = "Le contact n'est plus bloqué"; -$a->strings["Contact has been ignored"] = "Le contact a été ignoré"; -$a->strings["Contact has been unignored"] = "Le contact n'est plus ignoré"; -$a->strings["Contact has been archived"] = "Contact archivé"; -$a->strings["Contact has been unarchived"] = "Contact désarchivé"; -$a->strings["Do you really want to delete this contact?"] = "Voulez-vous vraiment supprimer ce contact?"; +$a->strings["Find People"] = "Trouver des personnes"; +$a->strings["Enter name or interest"] = "Entrez un nom ou un centre d'intérêt"; +$a->strings["Connect/Follow"] = "Connecter/Suivre"; +$a->strings["Examples: Robert Morgenstein, Fishing"] = "Exemples: Robert Morgenstein, Pêche"; +$a->strings["Find"] = "Trouver"; +$a->strings["Friend Suggestions"] = "Suggestions d'amitiés/contacts"; +$a->strings["Similar Interests"] = "Intérêts similaires"; +$a->strings["Random Profile"] = "Profil au hasard"; +$a->strings["Invite Friends"] = "Inviter des amis"; +$a->strings["Networks"] = "Réseaux"; +$a->strings["All Networks"] = "Tous réseaux"; +$a->strings["Saved Folders"] = "Dossiers sauvegardés"; +$a->strings["Everything"] = "Tout"; +$a->strings["Categories"] = "Catégories"; +$a->strings["%d contact in common"] = array( + 0 => "%d contact en commun", + 1 => "%d contacts en commun", +); +$a->strings["show more"] = "montrer plus"; +$a->strings["Friendica Notification"] = "Notification Friendica"; +$a->strings["Thank You,"] = "Merci, "; +$a->strings["%s Administrator"] = "L'administrateur de %s"; +$a->strings["%1\$s, %2\$s Administrator"] = "%1\$s,, l'administrateur de %2\$s"; +$a->strings["noreply"] = "noreply"; +$a->strings["%s "] = "%s "; +$a->strings["[Friendica:Notify] New mail received at %s"] = "[Friendica:Notification] Nouveau courriel reçu sur %s"; +$a->strings["%1\$s sent you a new private message at %2\$s."] = "%1\$s vous a envoyé un nouveau message privé sur %2\$s."; +$a->strings["%1\$s sent you %2\$s."] = "%1\$s vous a envoyé %2\$s."; +$a->strings["a private message"] = "un message privé"; +$a->strings["Please visit %s to view and/or reply to your private messages."] = "Merci de visiter %s pour voir vos messages privés et/ou y répondre."; +$a->strings["%1\$s commented on [url=%2\$s]a %3\$s[/url]"] = "%1\$s a commenté sur [url=%2\$s]un %3\$s[/url]"; +$a->strings["%1\$s commented on [url=%2\$s]%3\$s's %4\$s[/url]"] = "%1\$s a commenté sur [url=%2\$s]le %4\$s de %3\$s[/url]"; +$a->strings["%1\$s commented on [url=%2\$s]your %3\$s[/url]"] = "%1\$s commented on [url=%2\$s]your %3\$s[/url]"; +$a->strings["[Friendica:Notify] Comment to conversation #%1\$d by %2\$s"] = "[Friendica:Notification] Commentaire de %2\$s sur la conversation #%1\$d"; +$a->strings["%s commented on an item/conversation you have been following."] = "%s a commenté un élément que vous suivez."; +$a->strings["Please visit %s to view and/or reply to the conversation."] = "Merci de visiter %s pour voir la conversation et/ou y répondre."; +$a->strings["[Friendica:Notify] %s posted to your profile wall"] = "[Friendica:Notification] %s a posté sur votre mur de profil"; +$a->strings["%1\$s posted to your profile wall at %2\$s"] = "%1\$s a publié sur votre mur à %2\$s"; +$a->strings["%1\$s posted to [url=%2\$s]your wall[/url]"] = "%1\$s a posté sur [url=%2\$s]votre mur[/url]"; +$a->strings["[Friendica:Notify] %s tagged you"] = "[Friendica:Notification] %s vous a étiqueté"; +$a->strings["%1\$s tagged you at %2\$s"] = "%1\$s vous a étiqueté sur %2\$s"; +$a->strings["%1\$s [url=%2\$s]tagged you[/url]."] = "%1\$s [url=%2\$s]vous a étiqueté[/url]."; +$a->strings["[Friendica:Notify] %s shared a new post"] = "[Friendica:Notification] %s partage une nouvelle publication"; +$a->strings["%1\$s shared a new post at %2\$s"] = "%1\$s a partagé une nouvelle publication sur %2\$s"; +$a->strings["%1\$s [url=%2\$s]shared a post[/url]."] = "%1\$s [url=%2\$s]partage une publication[/url]."; +$a->strings["[Friendica:Notify] %1\$s poked you"] = "[Friendica:Notify] %1\$s vous a sollicité"; +$a->strings["%1\$s poked you at %2\$s"] = "%1\$s vous a sollicité via %2\$s"; +$a->strings["%1\$s [url=%2\$s]poked you[/url]."] = "%1\$s vous a [url=%2\$s]sollicité[/url]."; +$a->strings["[Friendica:Notify] %s tagged your post"] = "[Friendica:Notification] %s a étiqueté votre publication"; +$a->strings["%1\$s tagged your post at %2\$s"] = "%1\$s a étiqueté votre publication sur %2\$s"; +$a->strings["%1\$s tagged [url=%2\$s]your post[/url]"] = "%1\$s a étiqueté [url=%2\$s]votre publication[/url]"; +$a->strings["[Friendica:Notify] Introduction received"] = "[Friendica:Notification] Introduction reçue"; +$a->strings["You've received an introduction from '%1\$s' at %2\$s"] = "Vous avez reçu une introduction de '%1\$s' sur %2\$s"; +$a->strings["You've received [url=%1\$s]an introduction[/url] from %2\$s."] = "Vous avez reçu [url=%1\$s]une introduction[/url] de %2\$s."; +$a->strings["You may visit their profile at %s"] = "Vous pouvez visiter son profil sur %s"; +$a->strings["Please visit %s to approve or reject the introduction."] = "Merci de visiter %s pour approuver ou rejeter l'introduction."; +$a->strings["[Friendica:Notify] A new person is sharing with you"] = "[Notification Friendica] Une nouvelle personne partage avec vous"; +$a->strings["%1\$s is sharing with you at %2\$s"] = "%1\$s partage avec vous sur %2\$s"; +$a->strings["[Friendica:Notify] You have a new follower"] = "[Friendica:Notification] Vous avez un nouvel abonné"; +$a->strings["You have a new follower at %2\$s : %1\$s"] = "Vous avez un nouvel abonné à %2\$s : %1\$s"; +$a->strings["[Friendica:Notify] Friend suggestion received"] = "[Friendica:Notification] Nouvelle suggestion d'amitié"; +$a->strings["You've received a friend suggestion from '%1\$s' at %2\$s"] = "Vous avez reçu une suggestion de '%1\$s' sur %2\$s"; +$a->strings["You've received [url=%1\$s]a friend suggestion[/url] for %2\$s from %3\$s."] = "Vous avez reçu [url=%1\$s]une suggestion[/url] de %3\$s pour %2\$s."; +$a->strings["Name:"] = "Nom :"; +$a->strings["Photo:"] = "Photo :"; +$a->strings["Please visit %s to approve or reject the suggestion."] = "Merci de visiter %s pour approuver ou rejeter la suggestion."; +$a->strings["[Friendica:Notify] Connection accepted"] = "[Friendica:Notification] Connexion acceptée"; +$a->strings["'%1\$s' has accepted your connection request at %2\$s"] = "'%1\$s' a accepté votre demande de connexion à %2\$s"; +$a->strings["%2\$s has accepted your [url=%1\$s]connection request[/url]."] = "%2\$s a accepté votre [url=%1\$s]demande de connexion[/url]."; +$a->strings["You are now mutual friends and may exchange status updates, photos, and email without restriction."] = "Vous êtes désormais mutuellement amis, et pouvez échanger des mises-à-jour d'état, des photos, et des messages sans restriction."; +$a->strings["Please visit %s if you wish to make any changes to this relationship."] = "Veuillez visiter %s si vous souhaitez modifier cette relation."; +$a->strings["'%1\$s' has chosen to accept you a \"fan\", which restricts some forms of communication - such as private messaging and some profile interactions. If this is a celebrity or community page, these settings were applied automatically."] = "%1\$s a choisi de vous accepter comme \"fan\", ce qui limite les moyens de communication - comme les messages privés et certaines interactions de profil. Si c'est une page de célébrité ou de communauté, ce réglage a été appliqué automatiquement."; +$a->strings["'%1\$s' may choose to extend this into a two-way or more permissive relationship in the future."] = "%1\$s peut choisir à l'avenir de rendre cette relation réciproque ou au moins plus permissive."; +$a->strings["Please visit %s if you wish to make any changes to this relationship."] = "Veuillez visiter %s si vous souhaitez modifier cette relation."; +$a->strings["[Friendica System:Notify] registration request"] = "[Système Friendica:Notification] demande d'inscription"; +$a->strings["You've received a registration request from '%1\$s' at %2\$s"] = "Vous avez reçu une demande d'inscription de %1\$s sur %2\$s"; +$a->strings["You've received a [url=%1\$s]registration request[/url] from %2\$s."] = "Vous avez reçu une [url=%1\$s]demande de création de compte[/url] de %2\$s."; +$a->strings["Full Name:\t%1\$s\\nSite Location:\t%2\$s\\nLogin Name:\t%3\$s (%4\$s)"] = "Nom complet :\t%1\$s\\nAdresse :\t%2\$s\\nIdentifiant :\t%3\$s (%4\$s)"; +$a->strings["Please visit %s to approve or reject the request."] = "Veuillez visiter %s pour approuver ou rejeter la demande."; +$a->strings["Forums"] = "Forums"; +$a->strings["External link to forum"] = "Lien sortant vers le forum"; +$a->strings["Welcome "] = "Bienvenue "; +$a->strings["Please upload a profile photo."] = "Merci d'illustrer votre profil d'une image."; +$a->strings["Welcome back "] = "Bienvenue à nouveau, "; +$a->strings["The form security token was not correct. This probably happened because the form has been opened for too long (>3 hours) before submitting it."] = "Le jeton de sécurité du formulaire n'est pas correct. Ceci veut probablement dire que le formulaire est resté ouvert trop longtemps (plus de 3 heures) avant d'être validé."; +$a->strings["Male"] = "Masculin"; +$a->strings["Female"] = "Féminin"; +$a->strings["Currently Male"] = "Actuellement masculin"; +$a->strings["Currently Female"] = "Actuellement féminin"; +$a->strings["Mostly Male"] = "Principalement masculin"; +$a->strings["Mostly Female"] = "Principalement féminin"; +$a->strings["Transgender"] = "Transgenre"; +$a->strings["Intersex"] = "Inter-sexe"; +$a->strings["Transsexual"] = "Transsexuel"; +$a->strings["Hermaphrodite"] = "Hermaphrodite"; +$a->strings["Neuter"] = "Neutre"; +$a->strings["Non-specific"] = "Non-spécifique"; +$a->strings["Other"] = "Autre"; +$a->strings["Undecided"] = array( + 0 => "", + 1 => "", +); +$a->strings["Males"] = "Hommes"; +$a->strings["Females"] = "Femmes"; +$a->strings["Gay"] = "Gay"; +$a->strings["Lesbian"] = "Lesbienne"; +$a->strings["No Preference"] = "Sans préférence"; +$a->strings["Bisexual"] = "Bisexuel"; +$a->strings["Autosexual"] = "Auto-sexuel"; +$a->strings["Abstinent"] = "Abstinent"; +$a->strings["Virgin"] = "Vierge"; +$a->strings["Deviant"] = "Déviant"; +$a->strings["Fetish"] = "Fétichiste"; +$a->strings["Oodles"] = "Oodles"; +$a->strings["Nonsexual"] = "Non-sexuel"; +$a->strings["Single"] = "Célibataire"; +$a->strings["Lonely"] = "Esseulé"; +$a->strings["Available"] = "Disponible"; +$a->strings["Unavailable"] = "Indisponible"; +$a->strings["Has crush"] = "Attiré par quelqu'un"; +$a->strings["Infatuated"] = "Entiché"; +$a->strings["Dating"] = "Dans une relation"; +$a->strings["Unfaithful"] = "Infidèle"; +$a->strings["Sex Addict"] = "Accro au sexe"; +$a->strings["Friends"] = "Amis"; +$a->strings["Friends/Benefits"] = "Amis par intérêt"; +$a->strings["Casual"] = "Casual"; +$a->strings["Engaged"] = "Fiancé"; +$a->strings["Married"] = "Marié"; +$a->strings["Imaginarily married"] = "Se croit marié"; +$a->strings["Partners"] = "Partenaire"; +$a->strings["Cohabiting"] = "En cohabitation"; +$a->strings["Common law"] = "Marié \"de fait\"/\"sui juris\" (concubin)"; +$a->strings["Happy"] = "Heureux"; +$a->strings["Not looking"] = "Pas intéressé"; +$a->strings["Swinger"] = "Échangiste"; +$a->strings["Betrayed"] = "Trahi(e)"; +$a->strings["Separated"] = "Séparé"; +$a->strings["Unstable"] = "Instable"; +$a->strings["Divorced"] = "Divorcé"; +$a->strings["Imaginarily divorced"] = "Se croit divorcé"; +$a->strings["Widowed"] = "Veuf/Veuve"; +$a->strings["Uncertain"] = "Incertain"; +$a->strings["It's complicated"] = "C'est compliqué"; +$a->strings["Don't care"] = "S'en désintéresse"; +$a->strings["Ask me"] = "Me demander"; +$a->strings["l F d, Y \\@ g:i A"] = "l F d, Y \\@ g:i A"; +$a->strings["Starts:"] = "Débute:"; +$a->strings["Finishes:"] = "Finit:"; +$a->strings["Location:"] = "Localisation:"; +$a->strings["Embedded content"] = "Contenu incorporé"; +$a->strings["Embedding disabled"] = "Incorporation désactivée"; +$a->strings["Cannot locate DNS info for database server '%s'"] = "Impossible de localiser les informations DNS pour le serveur de base de données '%s'"; +$a->strings["Logged out."] = "Déconnecté."; +$a->strings["Login failed."] = "Échec de connexion."; +$a->strings["We encountered a problem while logging in with the OpenID you provided. Please check the correct spelling of the ID."] = "Nous avons eu un souci avec l'OpenID que vous avez fourni. merci de vérifier l'orthographe correcte de ce dernier."; +$a->strings["The error message was:"] = "Le message d'erreur était :"; +$a->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 groupe supprimé a été recréé. Les permissions existantes pourraient s'appliquer à ce groupe et aux futurs membres. Si ce n'est pas le comportement attendu, merci de re-créer un autre groupe sous un autre nom."; +$a->strings["Default privacy group for new contacts"] = "Paramètres de confidentialité par défaut pour les nouveaux contacts"; +$a->strings["Everybody"] = "Tout le monde"; +$a->strings["edit"] = "éditer"; +$a->strings["Groups"] = "Groupes"; +$a->strings["Edit groups"] = "Modifier les groupes"; +$a->strings["Edit group"] = "Editer groupe"; +$a->strings["Create a new group"] = "Créer un nouveau groupe"; +$a->strings["Group Name: "] = "Nom du groupe: "; +$a->strings["Contacts not in any group"] = "Contacts n'appartenant à aucun groupe"; +$a->strings["add"] = "ajouter"; +$a->strings["Wall Photos"] = "Photos du mur"; +$a->strings["(no subject)"] = "(sans titre)"; +$a->strings["Passwords do not match. Password unchanged."] = "Les mots de passe ne correspondent pas. Aucun changement appliqué."; +$a->strings["An invitation is required."] = "Une invitation est requise."; +$a->strings["Invitation could not be verified."] = "L'invitation fournie n'a pu être validée."; +$a->strings["Invalid OpenID url"] = "Adresse OpenID invalide"; +$a->strings["Please enter the required information."] = "Entrez les informations requises."; +$a->strings["Please use a shorter name."] = "Utilisez un nom plus court."; +$a->strings["Name too short."] = "Nom trop court."; +$a->strings["That doesn't appear to be your full (First Last) name."] = "Ceci ne semble pas être votre nom complet (Prénom Nom)."; +$a->strings["Your email domain is not among those allowed on this site."] = "Votre domaine de courriel n'est pas autorisé sur ce site."; +$a->strings["Not a valid email address."] = "Ceci n'est pas une adresse courriel valide."; +$a->strings["Cannot use that email."] = "Impossible d'utiliser ce courriel."; +$a->strings["Your \"nickname\" can only contain \"a-z\", \"0-9\" and \"_\"."] = "Votre \"pseudonyme\" peut seulement contenir les caractères \"a-z\", \"0-9\" et \"_\"."; +$a->strings["Nickname is already registered. Please choose another."] = "Pseudo déjà utilisé. Merci d'en choisir un autre."; +$a->strings["Nickname was once registered here and may not be re-used. Please choose another."] = "Ce surnom a déjà été utilisé ici, et ne peut re-servir. Merci d'en choisir un autre."; +$a->strings["SERIOUS ERROR: Generation of security keys failed."] = "ERREUR SÉRIEUSE: La génération des clés de sécurité a échoué."; +$a->strings["An error occurred during registration. Please try again."] = "Une erreur est survenue lors de l'inscription. Merci de recommencer."; +$a->strings["default"] = "défaut"; +$a->strings["An error occurred creating your default profile. Please try again."] = "Une erreur est survenue lors de la création de votre profil par défaut. Merci de recommencer."; +$a->strings["Profile Photos"] = "Photos du profil"; +$a->strings["\n\t\tDear %1\$s,\n\t\t\tThank you for registering at %2\$s. Your account has been created.\n\t"] = "\n\t\tChère/Cher %1\$s,\n\t\t\tMerci de vous être inscrit sur %2\$s. Votre compte a bien été créé.\n\t"; +$a->strings["\n\t\tThe login details are as follows:\n\t\t\tSite Location:\t%3\$s\n\t\t\tLogin Name:\t%1\$s\n\t\t\tPassword:\t%5\$s\n\n\t\tYou may change your password from your account \"Settings\" page after logging\n\t\tin.\n\n\t\tPlease take a few moments to review the other account settings on that page.\n\n\t\tYou may also wish to add some basic information to your default profile\n\t\t(on the \"Profiles\" page) so that other people can easily find you.\n\n\t\tWe recommend setting your full name, adding a profile photo,\n\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n\t\tperhaps what country you live in; if you do not wish to be more specific\n\t\tthan that.\n\n\t\tWe fully respect your right to privacy, and none of these items are necessary.\n\t\tIf you are new and do not know anybody here, they may help\n\t\tyou to make some new and interesting friends.\n\n\n\t\tThank you and welcome to %2\$s."] = "\n\t\tVoici vos informations de connexion :\n\t\t\tAdresse :\t%3\$s\n\t\t\tIdentifiant :\t%1\$s\n\t\t\tMot de passe :\t%5\$s\n\n\t\tVous pourrez changer votre mot de passe dans les paramètres de votre compte une fois connecté.\n\n\t\tProfitez-en pour prendre le temps de passer en revue les autres paramètres de votre compte.\n\n\t\tVous pourrez aussi ajouter quelques informations élémentaires à votre profil par défaut (sur la page « Profils ») pour permettre à d’autres personnes de vous trouver facilement.\n\n\t\tNous recommandons de préciser votre nom complet, d’ajouter une photo et quelques mots-clefs (c’est très utile pour découvrir de nouveaux amis), et peut-être aussi d’indiquer au moins le pays dans lequel vous vivez, à défaut d’être plus précis.\n\n\t\tNous respectons pleinement votre droit à une vie privée, et vous n’avez aucune obligation de donner toutes ces informations. Mais si vous êtes nouveau et ne connaissez encore personne ici, cela peut vous aider à vous faire de nouveaux amis intéressants.\n\n\n\t\tMerci et bienvenu sur %2\$s."; +$a->strings["Registration details for %s"] = "Détails d'inscription pour %s"; +$a->strings["General Features"] = "Fonctions générales"; +$a->strings["Multiple Profiles"] = "Profils multiples"; +$a->strings["Ability to create multiple profiles"] = "Possibilité de créer plusieurs profils"; +$a->strings["Photo Location"] = "Lieu de prise de la photo"; +$a->strings["Photo metadata is normally stripped. This extracts the location (if present) prior to stripping metadata and links it to a map."] = "Les métadonnées des photos sont normalement retirées. Ceci permet de sauver l'emplacement (si présent) et de positionner la photo sur une carte."; +$a->strings["Export Public Calendar"] = "Exporter le Calendrier Public"; +$a->strings["Ability for visitors to download the public calendar"] = "Les visiteurs peuvent télécharger le calendrier public"; +$a->strings["Post Composition Features"] = "Caractéristiques de composition de publication"; +$a->strings["Richtext Editor"] = "Éditeur de texte enrichi"; +$a->strings["Enable richtext editor"] = "Activer l'éditeur de texte enrichi"; +$a->strings["Post Preview"] = "Aperçu de la publication"; +$a->strings["Allow previewing posts and comments before publishing them"] = "Permet la prévisualisation des publications et commentaires avant de les publier"; +$a->strings["Auto-mention Forums"] = ""; +$a->strings["Add/remove mention when a fourm page is selected/deselected in ACL window."] = ""; +$a->strings["Network Sidebar Widgets"] = "Widgets réseau pour barre latérale"; +$a->strings["Search by Date"] = "Rechercher par Date"; +$a->strings["Ability to select posts by date ranges"] = "Capacité de sélectionner les publications par intervalles de dates"; +$a->strings["List Forums"] = "Liste des forums"; +$a->strings["Enable widget to display the forums your are connected with"] = "Activer le widget pour afficher les forums auxquels vous êtes connecté"; +$a->strings["Group Filter"] = "Filtre de groupe"; +$a->strings["Enable widget to display Network posts only from selected group"] = "Activer le widget d’affichage des publications du réseau seulement pour le groupe sélectionné"; +$a->strings["Network Filter"] = "Filtre de réseau"; +$a->strings["Enable widget to display Network posts only from selected network"] = "Activer le widget d’affichage des publications du réseau seulement pour le réseau sélectionné"; +$a->strings["Saved Searches"] = "Recherches"; +$a->strings["Save search terms for re-use"] = "Sauvegarder la recherche pour une utilisation ultérieure"; +$a->strings["Network Tabs"] = "Onglets Réseau"; +$a->strings["Network Personal Tab"] = "Onglet Réseau Personnel"; +$a->strings["Enable tab to display only Network posts that you've interacted on"] = "Activer l'onglet pour afficher seulement les publications du réseau où vous avez interagit"; +$a->strings["Network New Tab"] = "Nouvel onglet réseaux"; +$a->strings["Enable tab to display only new Network posts (from the last 12 hours)"] = "Activer l'onglet pour afficher seulement les publications du réseau (dans les 12 dernières heures)"; +$a->strings["Network Shared Links Tab"] = "Onglet réseau partagé"; +$a->strings["Enable tab to display only Network posts with links in them"] = "Activer l'onglet pour afficher seulement les publications du réseau contenant des liens"; +$a->strings["Post/Comment Tools"] = "outils de publication/commentaire"; +$a->strings["Multiple Deletion"] = "Suppression multiple"; +$a->strings["Select and delete multiple posts/comments at once"] = "Sélectionner et supprimer plusieurs publications/commentaires à la fois"; +$a->strings["Edit Sent Posts"] = "Éditer les publications envoyées"; +$a->strings["Edit and correct posts and comments after sending"] = "Éditer et corriger les publications et commentaires après l'envoi"; +$a->strings["Tagging"] = "Étiquettage"; +$a->strings["Ability to tag existing posts"] = "Possibilité d'étiqueter les publications existantes"; +$a->strings["Post Categories"] = "Catégories des publications"; +$a->strings["Add categories to your posts"] = "Ajouter des catégories à vos publications"; +$a->strings["Ability to file posts under folders"] = "Possibilité d'afficher les publications sous les répertoires"; +$a->strings["Dislike Posts"] = "Publications non aimées"; +$a->strings["Ability to dislike posts/comments"] = "Possibilité de ne pas aimer les publications/commentaires"; +$a->strings["Star Posts"] = "Publications spéciales"; +$a->strings["Ability to mark special posts with a star indicator"] = "Possibilité de marquer les publications spéciales d'une étoile"; +$a->strings["Mute Post Notifications"] = "Ignorer les notifications du post"; +$a->strings["Ability to mute notifications for a thread"] = "Permettre d'ignorer les notifications d'un fil de discussion"; +$a->strings["Advanced Profile Settings"] = "Paramètres Avancés du Profil"; +$a->strings["Show visitors public community forums at the Advanced Profile Page"] = "Montrer les forums communautaires aux visiteurs sur la Page de profil avancé"; +$a->strings["Nothing new here"] = "Rien de neuf ici"; +$a->strings["Clear notifications"] = "Effacer les notifications"; +$a->strings["@name, !forum, #tags, content"] = "@nom, !forum, #tags, contenu"; +$a->strings["Logout"] = "Se déconnecter"; +$a->strings["End this session"] = "Mettre fin à cette session"; +$a->strings["Status"] = "Statut"; +$a->strings["Your posts and conversations"] = "Vos publications et conversations"; +$a->strings["Profile"] = "Profil"; +$a->strings["Your profile page"] = "Votre page de profil"; +$a->strings["Photos"] = "Photos"; +$a->strings["Your photos"] = "Vos photos"; +$a->strings["Videos"] = "Vidéos"; +$a->strings["Your videos"] = "Vos vidéos"; +$a->strings["Events"] = "Événements"; +$a->strings["Your events"] = "Vos événements"; +$a->strings["Personal notes"] = "Notes personnelles"; +$a->strings["Your personal notes"] = "Vos notes personnelles"; +$a->strings["Login"] = "Connexion"; +$a->strings["Sign in"] = "Se connecter"; +$a->strings["Home"] = "Profil"; +$a->strings["Home Page"] = "Page d'accueil"; +$a->strings["Register"] = "S'inscrire"; +$a->strings["Create an account"] = "Créer un compte"; +$a->strings["Help"] = "Aide"; +$a->strings["Help and documentation"] = "Aide et documentation"; +$a->strings["Apps"] = "Applications"; +$a->strings["Addon applications, utilities, games"] = "Applications supplémentaires, utilitaires, jeux"; +$a->strings["Search"] = "Recherche"; +$a->strings["Search site content"] = "Rechercher dans le contenu du site"; +$a->strings["Full Text"] = "Texte Entier"; +$a->strings["Tags"] = "Tags"; +$a->strings["Contacts"] = "Contacts"; +$a->strings["Community"] = "Communauté"; +$a->strings["Conversations on this site"] = "Conversations ayant cours sur ce site"; +$a->strings["Conversations on the network"] = "Conversations sur le réseau"; +$a->strings["Events and Calendar"] = "Événements et agenda"; +$a->strings["Directory"] = "Annuaire"; +$a->strings["People directory"] = "Annuaire des utilisateurs"; +$a->strings["Information"] = "Information"; +$a->strings["Information about this friendica instance"] = "Information au sujet de cette instance de friendica"; +$a->strings["Network"] = "Réseau"; +$a->strings["Conversations from your friends"] = "Conversations de vos amis"; +$a->strings["Network Reset"] = "Réinitialiser le réseau"; +$a->strings["Load Network page with no filters"] = "Chargement des pages du réseau sans filtre"; +$a->strings["Introductions"] = "Introductions"; +$a->strings["Friend Requests"] = "Demande d'amitié"; +$a->strings["Notifications"] = "Notifications"; +$a->strings["See all notifications"] = "Voir toute notification"; +$a->strings["Mark as seen"] = "Marquer comme vu"; +$a->strings["Mark all system notifications seen"] = "Marquer toutes les notifications système comme 'vues'"; +$a->strings["Messages"] = "Messages"; +$a->strings["Private mail"] = "Messages privés"; +$a->strings["Inbox"] = "Messages entrants"; +$a->strings["Outbox"] = "Messages sortants"; +$a->strings["New Message"] = "Nouveau message"; +$a->strings["Manage"] = "Gérer"; +$a->strings["Manage other pages"] = "Gérer les autres pages"; +$a->strings["Delegations"] = "Délégations"; +$a->strings["Delegate Page Management"] = "Déléguer la gestion de la page"; +$a->strings["Settings"] = "Réglages"; +$a->strings["Account settings"] = "Compte"; +$a->strings["Profiles"] = "Profils"; +$a->strings["Manage/Edit Profiles"] = "Gérer/Éditer les profiles"; +$a->strings["Manage/edit friends and contacts"] = "Gérer/éditer les amitiés et contacts"; +$a->strings["Admin"] = "Admin"; +$a->strings["Site setup and configuration"] = "Démarrage et configuration du site"; +$a->strings["Navigation"] = "Navigation"; +$a->strings["Site map"] = "Carte du site"; +$a->strings["Unknown | Not categorised"] = "Inconnu | Non-classé"; +$a->strings["Block immediately"] = "Bloquer immédiatement"; +$a->strings["Shady, spammer, self-marketer"] = "Douteux, spammeur, accro à l'auto-promotion"; +$a->strings["Known to me, but no opinion"] = "Connu de moi, mais sans opinion"; +$a->strings["OK, probably harmless"] = "OK, probablement inoffensif"; +$a->strings["Reputable, has my trust"] = "Réputé, a toute ma confiance"; +$a->strings["Frequently"] = "Fréquemment"; +$a->strings["Hourly"] = "Toutes les heures"; +$a->strings["Twice daily"] = "Deux fois par jour"; +$a->strings["Daily"] = "Chaque jour"; +$a->strings["Weekly"] = "Chaque semaine"; +$a->strings["Monthly"] = "Chaque mois"; +$a->strings["Friendica"] = "Friendica"; +$a->strings["OStatus"] = "OStatus"; +$a->strings["RSS/Atom"] = "RSS/Atom"; +$a->strings["Email"] = "Courriel"; +$a->strings["Diaspora"] = "Diaspora"; +$a->strings["Facebook"] = "Facebook"; +$a->strings["Zot!"] = "Zot!"; +$a->strings["LinkedIn"] = "LinkedIn"; +$a->strings["XMPP/IM"] = "XMPP/IM"; +$a->strings["MySpace"] = "MySpace"; +$a->strings["Google+"] = "Google+"; +$a->strings["pump.io"] = "pump.io"; +$a->strings["Twitter"] = "Twitter"; +$a->strings["Diaspora Connector"] = "Connecteur Diaspora"; +$a->strings["GNU Social"] = "GNU Social"; +$a->strings["App.net"] = "App.net"; +$a->strings["Hubzilla/Redmatrix"] = "Hubzilla/Redmatrix"; +$a->strings["view full size"] = "voir en pleine taille"; +$a->strings["stopped following"] = "retiré de la liste de suivi"; +$a->strings["View Profile"] = "Voir le profil"; +$a->strings["View Status"] = "Voir les statuts"; +$a->strings["View Photos"] = "Voir les photos"; +$a->strings["Network Posts"] = "Publications du réseau"; +$a->strings["Edit Contact"] = "Éditer le contact"; +$a->strings["Drop Contact"] = "Supprimer le contact"; +$a->strings["Send PM"] = "Message privé"; +$a->strings["Poke"] = "Sollicitations (pokes)"; +$a->strings["Post to Email"] = "Publier aux courriels"; +$a->strings["Connectors disabled, since \"%s\" is enabled."] = "Les connecteurs sont désactivés parce que \"%s\" est activé."; +$a->strings["Hide your profile details from unknown viewers?"] = "Cacher les détails du profil aux visiteurs inconnus?"; +$a->strings["Visible to everybody"] = "Visible par tout le monde"; +$a->strings["show"] = "montrer"; +$a->strings["don't show"] = "cacher"; +$a->strings["CC: email addresses"] = "CC: adresses de courriel"; +$a->strings["Example: bob@example.com, mary@example.com"] = "Exemple: bob@exemple.com, mary@exemple.com"; +$a->strings["Permissions"] = "Permissions"; +$a->strings["Close"] = "Fermer"; +$a->strings["%s\\'s birthday"] = "Anniversaire de %s"; +$a->strings["Disallowed profile URL."] = "URL de profil interdite."; +$a->strings["Connect URL missing."] = "URL de connexion manquante."; +$a->strings["This site is not configured to allow communications with other networks."] = "Ce site n'est pas configuré pour dialoguer avec d'autres réseaux."; +$a->strings["No compatible communication protocols or feeds were discovered."] = "Aucun protocole de communication ni aucun flux n'a pu être découvert."; +$a->strings["The profile address specified does not provide adequate information."] = "L'adresse de profil indiquée ne fournit par les informations adéquates."; +$a->strings["An author or name was not found."] = "Aucun auteur ou nom d'auteur n'a pu être trouvé."; +$a->strings["No browser URL could be matched to this address."] = "Aucune URL de navigation ne correspond à cette adresse."; +$a->strings["Unable to match @-style Identity Address with a known protocol or email contact."] = "Impossible de faire correspondre l'adresse d'identité en \"@\" avec un protocole connu ou un contact courriel."; +$a->strings["Use mailto: in front of address to force email check."] = "Utilisez mailto: en face d'une adresse pour l'obliger à être reconnue comme courriel."; +$a->strings["The profile address specified belongs to a network which has been disabled on this site."] = "L'adresse de profil spécifiée correspond à un réseau qui a été désactivé sur ce site."; +$a->strings["Limited profile. This person will be unable to receive direct/personal notifications from you."] = "Profil limité. Cette personne ne sera pas capable de recevoir des notifications directes/personnelles de votre part."; +$a->strings["Unable to retrieve contact information."] = "Impossible de récupérer les informations du contact."; +$a->strings["following"] = "following"; +$a->strings["[Name Withheld]"] = "[Nom non-publié]"; +$a->strings["Item not found."] = "Élément introuvable."; +$a->strings["Do you really want to delete this item?"] = "Voulez-vous vraiment supprimer cet élément ?"; $a->strings["Yes"] = "Oui"; $a->strings["Cancel"] = "Annuler"; -$a->strings["Contact has been removed."] = "Ce contact a été retiré."; -$a->strings["You are mutual friends with %s"] = "Vous êtes ami (et réciproquement) avec %s"; -$a->strings["You are sharing with %s"] = "Vous partagez avec %s"; -$a->strings["%s is sharing with you"] = "%s partage avec vous"; -$a->strings["Private communications are not available for this contact."] = "Les communications privées ne sont pas disponibles pour ce contact."; -$a->strings["Never"] = "Jamais"; -$a->strings["(Update was successful)"] = "(Mise à jour effectuée avec succès)"; -$a->strings["(Update was not successful)"] = "(Échec de la mise à jour)"; -$a->strings["Suggest friends"] = "Suggérer amitié/contact"; -$a->strings["Network type: %s"] = "Type de réseau %s"; -$a->strings["Communications lost with this contact!"] = "Communications perdues avec ce contact !"; -$a->strings["Fetch further information for feeds"] = "Chercher plus d'informations pour les flux"; -$a->strings["Disabled"] = "Désactivé"; -$a->strings["Fetch information"] = "Récupérer informations"; -$a->strings["Fetch information and keywords"] = "Récupérer informations"; -$a->strings["Submit"] = "Envoyer"; -$a->strings["Profile Visibility"] = "Visibilité du profil"; -$a->strings["Please choose the profile you would like to display to %s when viewing your profile securely."] = "Merci de choisir le profil que vous souhaitez montrer à %s lorsqu'il vous rend visite de manière sécurisée."; -$a->strings["Contact Information / Notes"] = "Informations de contact / Notes"; -$a->strings["Edit contact notes"] = "Éditer les notes des contacts"; -$a->strings["Visit %s's profile [%s]"] = "Visiter le profil de %s [%s]"; -$a->strings["Block/Unblock contact"] = "Bloquer/débloquer ce contact"; -$a->strings["Ignore contact"] = "Ignorer ce contact"; -$a->strings["Repair URL settings"] = "Réglages de réparation des URL"; -$a->strings["View conversations"] = "Voir les conversations"; -$a->strings["Delete contact"] = "Effacer ce contact"; -$a->strings["Last update:"] = "Dernière mise-à-jour :"; -$a->strings["Update public posts"] = "Mettre à jour les publications publiques:"; -$a->strings["Update now"] = "Mettre à jour"; -$a->strings["Connect/Follow"] = "Connecter/Suivre"; -$a->strings["Unblock"] = "Débloquer"; -$a->strings["Block"] = "Bloquer"; -$a->strings["Unignore"] = "Ne plus ignorer"; -$a->strings["Ignore"] = "Ignorer"; -$a->strings["Currently blocked"] = "Actuellement bloqué"; -$a->strings["Currently ignored"] = "Actuellement ignoré"; -$a->strings["Currently archived"] = "Actuellement archivé"; -$a->strings["Hide this contact from others"] = "Cacher ce contact aux autres"; -$a->strings["Replies/likes to your public posts may still be visible"] = "Les réponses et \"j'aime\" à vos publications publiques peuvent être toujours visibles"; -$a->strings["Notification for new posts"] = "Notification des nouvelles publications"; -$a->strings["Send a notification of every new post of this contact"] = "Envoyer une notification de chaque nouveau message en provenance de ce contact"; -$a->strings["Blacklisted keywords"] = "Mots-clés sur la liste noire"; -$a->strings["Comma separated list of keywords that should not be converted to hashtags, when \"Fetch information and keywords\" is selected"] = "Liste de mots-clés separés par des virgules qui ne doivent pas être converti en mots-dièse quand « Récupérer informations et mots-clés » est sélectionné."; -$a->strings["Profile URL"] = "URL du Profil"; -$a->strings["Location:"] = "Localisation:"; -$a->strings["About:"] = "À propos:"; -$a->strings["Tags:"] = "Étiquette:"; -$a->strings["Suggestions"] = "Suggestions"; -$a->strings["Suggest potential friends"] = "Suggérer des amis potentiels"; -$a->strings["All Contacts"] = "Tous les contacts"; -$a->strings["Show all contacts"] = "Montrer tous les contacts"; -$a->strings["Unblocked"] = "Non-bloqués"; -$a->strings["Only show unblocked contacts"] = "Ne montrer que les contacts non-bloqués"; -$a->strings["Blocked"] = "Bloqués"; -$a->strings["Only show blocked contacts"] = "Ne montrer que les contacts bloqués"; -$a->strings["Ignored"] = "Ignorés"; -$a->strings["Only show ignored contacts"] = "Ne montrer que les contacts ignorés"; -$a->strings["Archived"] = "Archivés"; -$a->strings["Only show archived contacts"] = "Ne montrer que les contacts archivés"; -$a->strings["Hidden"] = "Cachés"; -$a->strings["Only show hidden contacts"] = "Ne montrer que les contacts masqués"; -$a->strings["Contacts"] = "Contacts"; -$a->strings["Search your contacts"] = "Rechercher dans vos contacts"; -$a->strings["Finding: "] = "Trouvé: "; -$a->strings["Find"] = "Trouver"; -$a->strings["Update"] = "Mises-à-jour"; -$a->strings["Archive"] = "Archiver"; -$a->strings["Unarchive"] = "Désarchiver"; -$a->strings["Delete"] = "Supprimer"; -$a->strings["Status"] = "Statut"; -$a->strings["Status Messages and Posts"] = "Messages d'état et publications"; -$a->strings["Profile"] = "Profil"; -$a->strings["Profile Details"] = "Détails du profil"; -$a->strings["View all contacts"] = "Voir tous les contacts"; -$a->strings["Common Friends"] = "Amis communs"; -$a->strings["View all common friends"] = "Voir tous les amis communs"; -$a->strings["Repair"] = "Réparer"; -$a->strings["Advanced Contact Settings"] = "Réglages avancés du contact"; -$a->strings["Toggle Blocked status"] = "(dés)activer l'état \"bloqué\""; -$a->strings["Toggle Ignored status"] = "(dés)activer l'état \"ignoré\""; -$a->strings["Toggle Archive status"] = "(dés)activer l'état \"archivé\""; -$a->strings["Mutual Friendship"] = "Relation réciproque"; -$a->strings["is a fan of yours"] = "Vous suit"; -$a->strings["you are a fan of"] = "Vous le/la suivez"; -$a->strings["Edit contact"] = "Éditer le contact"; -$a->strings["No profile"] = "Aucun profil"; -$a->strings["Manage Identities and/or Pages"] = "Gérer les identités et/ou les pages"; -$a->strings["Toggle between different identities or community/group pages which share your account details or which you have been granted \"manage\" permissions"] = "Basculez entre les différentes identités ou pages (groupes/communautés) qui se partagent votre compte ou que vous avez été autorisé à gérer."; -$a->strings["Select an identity to manage: "] = "Choisir une identité à gérer: "; -$a->strings["Post successful."] = "Publication réussie."; -$a->strings["Permission denied"] = "Permission refusée"; -$a->strings["Invalid profile identifier."] = "Identifiant de profil invalide."; -$a->strings["Profile Visibility Editor"] = "Éditer la visibilité du profil"; -$a->strings["Click on a contact to add or remove."] = "Cliquez sur un contact pour l'ajouter ou le supprimer."; -$a->strings["Visible To"] = "Visible par"; -$a->strings["All Contacts (with secure profile access)"] = "Tous les contacts (ayant un accès sécurisé)"; -$a->strings["Item not found."] = "Élément introuvable."; -$a->strings["Public access denied."] = "Accès public refusé."; -$a->strings["Access to this profile has been restricted."] = "L'accès au profil a été restreint."; -$a->strings["Item has been removed."] = "Cet élément a été enlevé."; -$a->strings["Welcome to Friendica"] = "Bienvenue sur Friendica"; -$a->strings["New Member Checklist"] = "Checklist du nouvel utilisateur"; -$a->strings["We would like to offer some tips and links to help make your experience enjoyable. Click any item to visit the relevant page. A link to this page will be visible from your home page for two weeks after your initial registration and then will quietly disappear."] = "Nous souhaiterions vous donner quelques astuces et ressources pour rendre votre expérience la plus agréable possible. Cliquez sur n'importe lequel de ces éléments pour visiter la page correspondante. Un lien vers cette page restera visible sur votre page d'accueil pendant les deux semaines qui suivent votre inscription initiale, puis disparaîtra silencieusement."; -$a->strings["Getting Started"] = "Bien démarrer"; -$a->strings["Friendica Walk-Through"] = "Friendica pas-à-pas"; -$a->strings["On your Quick Start page - find a brief introduction to your profile and network tabs, make some new connections, and find some groups to join."] = "Sur votre page d'accueil, dans Conseils aux nouveaux venus - vous trouverez une rapide introduction aux onglets Profil et Réseau, pourrez vous connecter à Facebook, établir de nouvelles relations, et choisir des groupes à rejoindre."; -$a->strings["Settings"] = "Réglages"; -$a->strings["Go to Your Settings"] = "Éditer vos Réglages"; -$a->strings["On your Settings page - change your initial password. Also make a note of your Identity Address. This looks just like an email address - and will be useful in making friends on the free social web."] = "Sur la page des Réglages - changez votre mot de passe initial. Notez bien votre Identité. Elle ressemble à une adresse de courriel - et vous sera utile pour vous faire des amis dans le web social libre."; -$a->strings["Review the other settings, particularly the privacy settings. An unpublished directory listing is like having an unlisted phone number. In general, you should probably publish your listing - unless all of your friends and potential friends know exactly how to find you."] = "Vérifiez les autres réglages, tout particulièrement ceux liés à la vie privée. Un profil non listé, c'est un peu comme un numéro sur liste rouge. En général, vous devriez probablement publier votre profil - à moins que tous vos amis (potentiels) sachent déjà comment vous trouver."; -$a->strings["Upload Profile Photo"] = "Téléverser une photo de profil"; -$a->strings["Upload a profile photo if you have not done so already. Studies have shown that people with real photos of themselves are ten times more likely to make friends than people who do not."] = "Téléversez (envoyez) une photo de profil si vous n'en avez pas déjà une. Les études montrent que les gens qui affichent de vraies photos d'eux sont dix fois plus susceptibles de se faire des amis."; -$a->strings["Edit Your Profile"] = "Éditer votre Profil"; -$a->strings["Edit your default profile to your liking. Review the settings for hiding your list of friends and hiding the profile from unknown visitors."] = "Éditez votre profil par défaut à votre convenance. Vérifiez les réglages concernant la visibilité de votre liste d'amis par les visiteurs inconnus."; -$a->strings["Profile Keywords"] = "Mots-clés du profil"; -$a->strings["Set some public keywords for your default profile which describe your interests. We may be able to find other people with similar interests and suggest friendships."] = "Choisissez quelques mots-clé publics pour votre profil par défaut. Ils pourront ainsi décrire vos centres d'intérêt, et nous pourrons vous proposer des contacts qui les partagent."; -$a->strings["Connecting"] = "Connexions"; -$a->strings["Facebook"] = "Facebook"; -$a->strings["Authorise the Facebook Connector if you currently have a Facebook account and we will (optionally) import all your Facebook friends and conversations."] = "Activez et paramétrez le connecteur Facebook si vous avez un compte Facebook et nous pourrons (de manière facultative) importer tous vos amis et conversations Facebook."; -$a->strings["If this is your own personal server, installing the Facebook addon may ease your transition to the free social web."] = "Si ceci est votre propre serveur, installer le connecteur Facebook peut adoucir votre transition vers le web social libre."; -$a->strings["Importing Emails"] = "Importer courriels"; -$a->strings["Enter your email access information on your Connector Settings page if you wish to import and interact with friends or mailing lists from your email INBOX"] = "Entrez vos paramètres de courriel dans les Réglages des connecteurs si vous souhaitez importer et interagir avec des amis ou des listes venant de votre Boîte de Réception."; -$a->strings["Go to Your Contacts Page"] = "Consulter vos Contacts"; -$a->strings["Your Contacts page is your gateway to managing friendships and connecting with friends on other networks. Typically you enter their address or site URL in the Add New Contact dialog."] = "Votre page Contacts est le point d'entrée vers la gestion de vos amitiés/relations et la connexion à des amis venant d'autres réseaux. Typiquement, vous pourrez y rentrer leur adresse d'Identité ou l'URL de leur site dans le formulaire Ajouter un nouveau contact."; -$a->strings["Go to Your Site's Directory"] = "Consulter l'Annuaire de votre Site"; -$a->strings["The Directory page lets you find other people in this network or other federated sites. Look for a Connect or Follow link on their profile page. Provide your own Identity Address if requested."] = "La page Annuaire vous permet de trouver d'autres personnes au sein de ce réseaux ou parmi d'autres sites fédérés. Cherchez un lien Relier ou Suivre sur leur profil. Vous pourrez avoir besoin d'indiquer votre adresse d'identité."; -$a->strings["Finding New People"] = "Trouver de nouvelles personnes"; -$a->strings["On the side panel of the Contacts page are several tools to find new friends. We can match people by interest, look up people by name or interest, and provide suggestions based on network relationships. On a brand new site, friend suggestions will usually begin to be populated within 24 hours."] = "Sur le panneau latéral de la page Contacts, il y a plusieurs moyens de trouver de nouveaux amis. Nous pouvons mettre les gens en relation selon leurs intérêts, rechercher des amis par nom ou intérêt, et fournir des suggestions en fonction de la topologie du réseau. Sur un site tout neuf, les suggestions d'amitié devraient commencer à apparaître au bout de 24 heures."; -$a->strings["Groups"] = "Groupes"; -$a->strings["Group Your Contacts"] = "Grouper vos contacts"; -$a->strings["Once you have made some friends, organize them into private conversation groups from the sidebar of your Contacts page and then you can interact with each group privately on your Network page."] = "Une fois que vous avez trouvé quelques amis, organisez-les en groupes de conversation privés depuis le panneau latéral de la page Contacts. Vous pourrez ensuite interagir avec chaque groupe de manière privée depuis la page Réseau."; -$a->strings["Why Aren't My Posts Public?"] = "Pourquoi mes éléments ne sont pas publics ?"; -$a->strings["Friendica respects your privacy. By default, your posts will only show up to people you've added as friends. For more information, see the help section from the link above."] = "Friendica respecte votre vie privée. Par défaut, toutes vos publications seront seulement montrés à vos amis. Pour plus d'information, consultez la section \"aide\" du lien ci-dessus."; -$a->strings["Getting Help"] = "Obtenir de l'aide"; -$a->strings["Go to the Help Section"] = "Aller à la section Aide"; -$a->strings["Our help pages may be consulted for detail on other program features and resources."] = "Nos pages d'aide peuvent être consultées pour davantage de détails sur les fonctionnalités ou les ressources."; -$a->strings["OpenID protocol error. No ID returned."] = "Erreur de protocole OpenID. Pas d'ID en retour."; -$a->strings["Account not found and OpenID registration is not permitted on this site."] = "Compte introuvable, et l'inscription OpenID n'est pas autorisée sur ce site."; -$a->strings["Login failed."] = "Échec de connexion."; -$a->strings["Image uploaded but image cropping failed."] = "Image envoyée, mais impossible de la retailler."; -$a->strings["Profile Photos"] = "Photos du profil"; -$a->strings["Image size reduction [%s] failed."] = "Réduction de la taille de l'image [%s] échouée."; -$a->strings["Shift-reload the page or clear browser cache if the new photo does not display immediately."] = "Rechargez la page avec la touche Maj pressée, ou bien effacez le cache du navigateur, si d'aventure la nouvelle photo n'apparaissait pas immédiatement."; -$a->strings["Unable to process image"] = "Impossible de traiter l'image"; -$a->strings["Image exceeds size limit of %s"] = "L'image dépasse la taille limite de %s"; -$a->strings["Unable to process image."] = "Impossible de traiter l'image."; -$a->strings["Upload File:"] = "Fichier à téléverser:"; -$a->strings["Select a profile:"] = "Choisir un profil:"; -$a->strings["Upload"] = "Téléverser"; -$a->strings["or"] = "ou"; -$a->strings["skip this step"] = "ignorer cette étape"; -$a->strings["select a photo from your photo albums"] = "choisissez une photo depuis vos albums"; -$a->strings["Crop Image"] = "(Re)cadrer l'image"; -$a->strings["Please adjust the image cropping for optimum viewing."] = "Ajustez le cadre de l'image pour une visualisation optimale."; -$a->strings["Done Editing"] = "Édition terminée"; -$a->strings["Image uploaded successfully."] = "Image téléversée avec succès."; -$a->strings["Image upload failed."] = "Le téléversement de l'image a échoué."; +$a->strings["Permission denied."] = "Permission refusée."; +$a->strings["Archives"] = "Archives"; $a->strings["photo"] = "photo"; $a->strings["status"] = "le statut"; -$a->strings["%1\$s is following %2\$s's %3\$s"] = "%1\$s suit les %3\$s de %2\$s"; -$a->strings["Tag removed"] = "Étiquette supprimée"; -$a->strings["Remove Item Tag"] = "Enlever l'étiquette de l'élément"; -$a->strings["Select a tag to remove: "] = "Sélectionner une étiquette à supprimer: "; -$a->strings["Remove"] = "Utiliser comme photo de profil"; -$a->strings["Subscribing to OStatus contacts"] = ""; -$a->strings["No contact provided."] = "Pas de contact fourni."; -$a->strings["Couldn't fetch information for contact."] = "Impossible de récupérer les informations pour ce contact."; -$a->strings["Couldn't fetch friends for contact."] = "Impossible de récupérer les amis de ce contact."; -$a->strings["Done"] = "Terminé"; -$a->strings["success"] = "réussite"; -$a->strings["failed"] = "échec"; -$a->strings["ignored"] = "ignoré"; -$a->strings["Keep this window open until done."] = "Veuillez garder cette fenêtre ouverte jusqu'à la fin."; -$a->strings["Save to Folder:"] = "Sauver dans le Dossier:"; -$a->strings["- select -"] = "- choisir -"; +$a->strings["event"] = "évènement"; +$a->strings["%1\$s likes %2\$s's %3\$s"] = "%1\$s aime %3\$s de %2\$s"; +$a->strings["%1\$s doesn't like %2\$s's %3\$s"] = "%1\$s n'aime pas %3\$s de %2\$s"; +$a->strings["%1\$s is attending %2\$s's %3\$s"] = "%1\$s participe à %3\$s de %2\$s"; +$a->strings["%1\$s is not attending %2\$s's %3\$s"] = "%1\$s ne participe pas à %3\$s de %2\$s"; +$a->strings["%1\$s may attend %2\$s's %3\$s"] = "%1\$s participera peut-être à %3\$s de %2\$s"; +$a->strings["[no subject]"] = "[pas de sujet]"; +$a->strings["Click here to upgrade."] = "Cliquez ici pour mettre à jour."; +$a->strings["This action exceeds the limits set by your subscription plan."] = "Cette action dépasse les limites définies par votre abonnement."; +$a->strings["This action is not available under your subscription plan."] = "Cette action n'est pas disponible avec votre abonnement."; +$a->strings["newer"] = "Plus récent"; +$a->strings["older"] = "Plus ancien"; +$a->strings["prev"] = "précédent"; +$a->strings["first"] = "premier"; +$a->strings["last"] = "dernier"; +$a->strings["next"] = "suivant"; +$a->strings["Loading more entries..."] = "Chargement de résultats supplémentaires..."; +$a->strings["The end"] = "Fin"; +$a->strings["No contacts"] = "Aucun contact"; +$a->strings["%d Contact"] = array( + 0 => "%d contact", + 1 => "%d contacts", +); +$a->strings["View Contacts"] = "Voir les contacts"; $a->strings["Save"] = "Sauver"; -$a->strings["Submit Request"] = "Envoyer la requête"; -$a->strings["You already added this contact."] = "Vous avez déjà ajouté ce contact."; -$a->strings["Diaspora support isn't enabled. Contact can't be added."] = "Le support de Diaspora est désactivé. Le contact ne peut pas être ajouté."; -$a->strings["OStatus support is disabled. Contact can't be added."] = "Le support d'OStatus est désactivé. Le contact ne peut pas être ajouté."; -$a->strings["The network type couldn't be detected. Contact can't be added."] = "Impossible de détecter le type de réseau. Le contact ne peut pas être ajouté."; -$a->strings["Please answer the following:"] = "Merci de répondre à ce qui suit:"; -$a->strings["Does %s know you?"] = "Est-ce que %s vous connaît?"; -$a->strings["No"] = "Non"; -$a->strings["Add a personal note:"] = "Ajouter une note personnelle:"; -$a->strings["Your Identity Address:"] = "Votre adresse d'identité:"; -$a->strings["Contact added"] = "Contact ajouté"; -$a->strings["Unable to locate original post."] = "Impossible de localiser la publication originale."; -$a->strings["Empty post discarded."] = "Publication vide rejetée."; -$a->strings["Wall Photos"] = "Photos du mur"; -$a->strings["System error. Post not saved."] = "Erreur système. Publication non sauvée."; -$a->strings["This message was sent to you by %s, a member of the Friendica social network."] = "Ce message vous a été envoyé par %s, membre du réseau social Friendica."; -$a->strings["You may visit them online at %s"] = "Vous pouvez leur rendre visite sur %s"; -$a->strings["Please contact the sender by replying to this post if you do not wish to receive these messages."] = "Merci de contacter l’émetteur en répondant à cette publication si vous ne souhaitez pas recevoir ces messages."; -$a->strings["%s posted an update."] = "%s a publié une mise à jour."; -$a->strings["Group created."] = "Groupe créé."; -$a->strings["Could not create group."] = "Impossible de créer le groupe."; -$a->strings["Group not found."] = "Groupe introuvable."; -$a->strings["Group name changed."] = "Groupe renommé."; -$a->strings["Save Group"] = "Sauvegarder le groupe"; -$a->strings["Create a group of contacts/friends."] = "Créez un groupe de contacts/amis."; -$a->strings["Group Name: "] = "Nom du groupe: "; -$a->strings["Group removed."] = "Groupe enlevé."; -$a->strings["Unable to remove group."] = "Impossible d'enlever le groupe."; -$a->strings["Group Editor"] = "Éditeur de groupe"; -$a->strings["Members"] = "Membres"; -$a->strings["Group is empty"] = "Groupe vide"; -$a->strings["You must be logged in to use addons. "] = "Vous devez être connecté pour utiliser les greffons."; -$a->strings["Applications"] = "Applications"; -$a->strings["No installed applications."] = "Pas d'application installée."; -$a->strings["Profile not found."] = "Profil introuvable."; -$a->strings["Contact not found."] = "Contact introuvable."; -$a->strings["This may occasionally happen if contact was requested by both persons and it has already been approved."] = "Ceci peut se produire lorsque le contact a été requis par les deux personnes et a déjà été approuvé."; -$a->strings["Response from remote site was not understood."] = "Réponse du site distant incomprise."; -$a->strings["Unexpected response from remote site: "] = "Réponse inattendue du site distant : "; -$a->strings["Confirmation completed successfully."] = "Confirmation achevée avec succès."; -$a->strings["Remote site reported: "] = "Alerte du site distant : "; -$a->strings["Temporary failure. Please wait and try again."] = "Échec temporaire. Merci de recommencer ultérieurement."; -$a->strings["Introduction failed or was revoked."] = "Introduction échouée ou annulée."; -$a->strings["Unable to set contact photo."] = "Impossible de définir la photo du contact."; -$a->strings["%1\$s is now friends with %2\$s"] = "%1\$s est désormais lié à %2\$s"; -$a->strings["No user record found for '%s' "] = "Pas d'utilisateur trouvé pour '%s' "; -$a->strings["Our site encryption key is apparently messed up."] = "Notre clé de chiffrement de site est apparemment corrompue."; -$a->strings["Empty site URL was provided or URL could not be decrypted by us."] = "URL de site absente ou indéchiffrable."; -$a->strings["Contact record was not found for you on our site."] = "Pas d'entrée pour ce contact sur notre site."; -$a->strings["Site public key not available in contact record for URL %s."] = "La clé publique du site ne se trouve pas dans l'enregistrement du contact pour l'URL %s."; -$a->strings["The ID provided by your system is a duplicate on our system. It should work if you try again."] = "L'identifiant fourni par votre système fait doublon sur le notre. Cela peut fonctionner si vous réessayez."; -$a->strings["Unable to set your contact credentials on our system."] = "Impossible de vous définir des permissions sur notre système."; -$a->strings["Unable to update your contact profile details on our system"] = "Impossible de mettre les détails de votre profil à jour sur notre système"; -$a->strings["[Name Withheld]"] = "[Nom non-publié]"; -$a->strings["%1\$s has joined %2\$s"] = "%1\$s a rejoint %2\$s"; -$a->strings["Requested profile is not available."] = "Le profil demandé n'est pas disponible."; -$a->strings["Tips for New Members"] = "Conseils aux nouveaux venus"; -$a->strings["Do you really want to delete this video?"] = "Voulez-vous vraiment supprimer cette vidéo?"; -$a->strings["Delete Video"] = "Supprimer la vidéo"; -$a->strings["No videos selected"] = "Pas de vidéo sélectionné"; -$a->strings["Access to this item is restricted."] = "Accès restreint à cet élément."; +$a->strings["poke"] = "titiller"; +$a->strings["poked"] = "a titillé"; +$a->strings["ping"] = "attirer l'attention"; +$a->strings["pinged"] = "a attiré l'attention de"; +$a->strings["prod"] = "aiguillonner"; +$a->strings["prodded"] = "a aiguillonné"; +$a->strings["slap"] = "gifler"; +$a->strings["slapped"] = "a giflé"; +$a->strings["finger"] = "tripoter"; +$a->strings["fingered"] = "a tripoté"; +$a->strings["rebuff"] = "rabrouer"; +$a->strings["rebuffed"] = "a rabroué"; +$a->strings["happy"] = "heureuse"; +$a->strings["sad"] = "triste"; +$a->strings["mellow"] = "suave"; +$a->strings["tired"] = "fatiguée"; +$a->strings["perky"] = "guillerette"; +$a->strings["angry"] = "colérique"; +$a->strings["stupified"] = "stupéfaite"; +$a->strings["puzzled"] = "perplexe"; +$a->strings["interested"] = "intéressée"; +$a->strings["bitter"] = "amère"; +$a->strings["cheerful"] = "entraînante"; +$a->strings["alive"] = "vivante"; +$a->strings["annoyed"] = "ennuyée"; +$a->strings["anxious"] = "anxieuse"; +$a->strings["cranky"] = "excentrique"; +$a->strings["disturbed"] = "dérangée"; +$a->strings["frustrated"] = "frustrée"; +$a->strings["motivated"] = "motivée"; +$a->strings["relaxed"] = "détendue"; +$a->strings["surprised"] = "surprise"; +$a->strings["Monday"] = "Lundi"; +$a->strings["Tuesday"] = "Mardi"; +$a->strings["Wednesday"] = "Mercredi"; +$a->strings["Thursday"] = "Jeudi"; +$a->strings["Friday"] = "Vendredi"; +$a->strings["Saturday"] = "Samedi"; +$a->strings["Sunday"] = "Dimanche"; +$a->strings["January"] = "Janvier"; +$a->strings["February"] = "Février"; +$a->strings["March"] = "Mars"; +$a->strings["April"] = "Avril"; +$a->strings["May"] = "Mai"; +$a->strings["June"] = "Juin"; +$a->strings["July"] = "Juillet"; +$a->strings["August"] = "Août"; +$a->strings["September"] = "Septembre"; +$a->strings["October"] = "Octobre"; +$a->strings["November"] = "Novembre"; +$a->strings["December"] = "Décembre"; $a->strings["View Video"] = "Regarder la vidéo"; -$a->strings["View Album"] = "Voir l'album"; -$a->strings["Recent Videos"] = "Vidéos récente"; -$a->strings["Upload New Videos"] = "Téléversé une nouvelle vidéo"; +$a->strings["bytes"] = "octets"; +$a->strings["Click to open/close"] = "Cliquer pour ouvrir/fermer"; +$a->strings["View on separate page"] = "Voir dans une nouvelle page"; +$a->strings["view on separate page"] = "voir dans une nouvelle page"; +$a->strings["link to source"] = "lien original"; +$a->strings["activity"] = "activité"; +$a->strings["comment"] = array( + 0 => "", + 1 => "commentaire", +); +$a->strings["post"] = "publication"; +$a->strings["Item filed"] = "Élément classé"; +$a->strings["Error decoding account file"] = "Une erreur a été détecté en décodant un fichier utilisateur"; +$a->strings["Error! No version data in file! This is not a Friendica account file?"] = "Erreur ! Pas de ficher de version existant ! Êtes vous sur un compte Friendica ?"; +$a->strings["Error! Cannot check nickname"] = "Erreur! Pseudo invalide"; +$a->strings["User '%s' already exists on this server!"] = "L'utilisateur '%s' existe déjà sur ce serveur!"; +$a->strings["User creation error"] = "Erreur de création d'utilisateur"; +$a->strings["User profile creation error"] = "Erreur de création du profil utilisateur"; +$a->strings["%d contact not imported"] = array( + 0 => "%d contacts non importés", + 1 => "%d contacts non importés", +); +$a->strings["Done. You can now login with your username and password"] = "Action réalisé. Vous pouvez désormais vous connecter avec votre nom d'utilisateur et votre mot de passe"; +$a->strings["System"] = "Système"; +$a->strings["Personal"] = "Personnel"; +$a->strings["%s commented on %s's post"] = "%s a commenté la publication de %s"; +$a->strings["%s created a new post"] = "%s a créé une nouvelle publication"; +$a->strings["%s liked %s's post"] = "%s a aimé la publication de %s"; +$a->strings["%s disliked %s's post"] = "%s n'a pas aimé la publication de %s"; +$a->strings["%s is attending %s's event"] = "%s participe à l'événement de %s"; +$a->strings["%s is not attending %s's event"] = "%s ne participe pas à l'événement de %s"; +$a->strings["%s may attend %s's event"] = "%s participera peut-être à l'événement de %s"; +$a->strings["%s is now friends with %s"] = "%s est désormais ami(e) avec %s"; +$a->strings["Friend Suggestion"] = "Suggestion d'amitié/contact"; +$a->strings["Friend/Connect Request"] = "Demande de connexion/relation"; +$a->strings["New Follower"] = "Nouvel abonné"; +$a->strings["Daily posting limit of %d posts reached. The post was rejected."] = "Le quota journalier de %d publications a été atteint. La publication a été rejetée."; +$a->strings["Weekly posting limit of %d posts reached. The post was rejected."] = "Le quota hebdomadaire de %d publications a été atteint. La publication a été rejetée."; +$a->strings["Monthly posting limit of %d posts reached. The post was rejected."] = "Le quota mensuel de %d publications a été atteint. La publication a été rejetée."; +$a->strings["Image/photo"] = "Image/photo"; +$a->strings["%2\$s %3\$s"] = "%2\$s %3\$s"; +$a->strings["$1 wrote:"] = "$1 a écrit:"; +$a->strings["Encrypted content"] = "Contenu chiffré"; +$a->strings["%1\$s attends %2\$s's %3\$s"] = "%1\$s participe à %3\$s de %2\$s"; +$a->strings["%1\$s doesn't attend %2\$s's %3\$s"] = "%1\$s ne participe pas à %3\$s de %2\$s"; +$a->strings["%1\$s attends maybe %2\$s's %3\$s"] = "%1\$s participe peut-être à %3\$s de %2\$s"; +$a->strings["%1\$s is now friends with %2\$s"] = "%1\$s est désormais lié à %2\$s"; +$a->strings["%1\$s poked %2\$s"] = "%1\$s a sollicité %2\$s"; +$a->strings["%1\$s is currently %2\$s"] = "%1\$s est d'humeur %2\$s"; $a->strings["%1\$s tagged %2\$s's %3\$s with %4\$s"] = "%1\$s a étiqueté %3\$s de %2\$s avec %4\$s"; -$a->strings["Friend suggestion sent."] = "Suggestion d'amitié/contact envoyée."; -$a->strings["Suggest Friends"] = "Suggérer des amis/contacts"; -$a->strings["Suggest a friend for %s"] = "Suggérer un ami/contact pour %s"; -$a->strings["Invalid request."] = "Requête invalide."; +$a->strings["post/item"] = "publication/élément"; +$a->strings["%1\$s marked %2\$s's %3\$s as favorite"] = "%1\$s a marqué le %3\$s de %2\$s comme favori"; +$a->strings["Likes"] = "Derniers \"J'aime\""; +$a->strings["Dislikes"] = "Derniers \"Je n'aime pas\""; +$a->strings["Attending"] = array( + 0 => "", + 1 => "", +); +$a->strings["Not attending"] = "Ne participe pas"; +$a->strings["Might attend"] = "Participera peut-être"; +$a->strings["Select"] = "Sélectionner"; +$a->strings["Delete"] = "Supprimer"; +$a->strings["View %s's profile @ %s"] = "Voir le profil de %s @ %s"; +$a->strings["Categories:"] = "Catégories:"; +$a->strings["Filed under:"] = "Rangé sous:"; +$a->strings["%s from %s"] = "%s de %s"; +$a->strings["View in context"] = "Voir dans le contexte"; +$a->strings["Please wait"] = "Patientez"; +$a->strings["remove"] = "enlever"; +$a->strings["Delete Selected Items"] = "Supprimer les éléments sélectionnés"; +$a->strings["Follow Thread"] = "Suivre le fil"; +$a->strings["%s likes this."] = "%s aime ça."; +$a->strings["%s doesn't like this."] = "%s n'aime pas ça."; +$a->strings["%s attends."] = "%s participe"; +$a->strings["%s doesn't attend."] = "%s ne participe pas"; +$a->strings["%s attends maybe."] = "%s participe peut-être"; +$a->strings["and"] = "et"; +$a->strings[", and %d other people"] = ", et %d autres personnes"; +$a->strings["%2\$d people like this"] = "%2\$d personnes aiment ça"; +$a->strings["%s like this."] = "%s aime ça."; +$a->strings["%2\$d people don't like this"] = "%2\$d personnes n'aiment pas ça"; +$a->strings["%s don't like this."] = "%s n'aiment pas ça."; +$a->strings["%2\$d people attend"] = "%2\$d personnes participent"; +$a->strings["%s attend."] = "%s participent."; +$a->strings["%2\$d people don't attend"] = "%2\$d personnes ne participent pas"; +$a->strings["%s don't attend."] = "%s ne participent pas."; +$a->strings["%2\$d people anttend maybe"] = "%2\$d personnes participeront peut-être"; +$a->strings["%s anttend maybe."] = "%s participent peut-être."; +$a->strings["Visible to everybody"] = "Visible par tout le monde"; +$a->strings["Please enter a link URL:"] = "Entrez un lien web:"; +$a->strings["Please enter a video link/URL:"] = "Entrez un lien/URL video :"; +$a->strings["Please enter an audio link/URL:"] = "Entrez un lien/URL audio :"; +$a->strings["Tag term:"] = "Terme d'étiquette:"; +$a->strings["Save to Folder:"] = "Sauver dans le Dossier:"; +$a->strings["Where are you right now?"] = "Où êtes-vous présentemment?"; +$a->strings["Delete item(s)?"] = "Supprimer les élément(s) ?"; +$a->strings["Share"] = "Partager"; +$a->strings["Upload photo"] = "Joindre photo"; +$a->strings["upload photo"] = "envoi image"; +$a->strings["Attach file"] = "Joindre fichier"; +$a->strings["attach file"] = "ajout fichier"; +$a->strings["Insert web link"] = "Insérer lien web"; +$a->strings["web link"] = "lien web"; +$a->strings["Insert video link"] = "Insérer un lien video"; +$a->strings["video link"] = "lien vidéo"; +$a->strings["Insert audio link"] = "Insérer un lien audio"; +$a->strings["audio link"] = "lien audio"; +$a->strings["Set your location"] = "Définir votre localisation"; +$a->strings["set location"] = "spéc. localisation"; +$a->strings["Clear browser location"] = "Effacer la localisation du navigateur"; +$a->strings["clear location"] = "supp. localisation"; +$a->strings["Set title"] = "Définir un titre"; +$a->strings["Categories (comma-separated list)"] = "Catégories (séparées par des virgules)"; +$a->strings["Permission settings"] = "Réglages des permissions"; +$a->strings["permissions"] = "permissions"; +$a->strings["Public post"] = "Publication publique"; +$a->strings["Preview"] = "Aperçu"; +$a->strings["Post to Groups"] = "Publier aux groupes"; +$a->strings["Post to Contacts"] = "Publier aux contacts"; +$a->strings["Private post"] = "Message privé"; +$a->strings["Message"] = "Message"; +$a->strings["Browser"] = "Navigateur"; +$a->strings["View all"] = "Voir tout"; +$a->strings["Like"] = array( + 0 => "", + 1 => "", +); +$a->strings["Dislike"] = array( + 0 => "", + 1 => "", +); +$a->strings["Not Attending"] = array( + 0 => "", + 1 => "", +); +$a->strings["\n\t\t\tThe friendica developers released update %s recently,\n\t\t\tbut when I tried to install it, something went terribly wrong.\n\t\t\tThis needs to be fixed soon and I can't do it alone. Please contact a\n\t\t\tfriendica developer if you can not help me on your own. My database might be invalid."] = "\nLes développeurs de Friendica ont récemment publié la mise à jour %s, mais en tentant de l’installer, quelque chose s’est terriblement mal passé. Une réparation s’impose et je ne peux pas la faire tout seul. Contactez un développeur Friendica si vous ne pouvez pas corriger le problème vous-même. Il est possible que ma base de données soit corrompue."; +$a->strings["The error message is\n[pre]%s[/pre]"] = "Le message d’erreur est\n[pre]%s[/pre]"; +$a->strings["Errors encountered creating database tables."] = "Des erreurs ont été signalées lors de la création des tables."; +$a->strings["Errors encountered performing database changes."] = "Des erreurs sont survenues lors de la mise à jour de la base de données."; +$a->strings["Sharing notification from Diaspora network"] = "Notification de partage du réseau Diaspora"; +$a->strings["Attachments:"] = "Pièces jointes : "; +$a->strings["Sun"] = "Dim"; +$a->strings["Mon"] = "Lun"; +$a->strings["Tue"] = "Mar"; +$a->strings["Wed"] = "Mer"; +$a->strings["Thu"] = "Jeu"; +$a->strings["Fri"] = "Ven"; +$a->strings["Sat"] = "Sam"; +$a->strings["Jan"] = "Jan"; +$a->strings["Feb"] = "Fév"; +$a->strings["Mar"] = "Mar"; +$a->strings["Apr"] = "Avr"; +$a->strings["Jun"] = "Jun"; +$a->strings["Jul"] = "Jul"; +$a->strings["Aug"] = "Aoû"; +$a->strings["Sept"] = "Sep"; +$a->strings["Oct"] = "Oct"; +$a->strings["Nov"] = "Nov"; +$a->strings["Dec"] = "Déc"; +$a->strings["today"] = "aujourd'hui"; +$a->strings["l, F j"] = "l, F j"; +$a->strings["Edit event"] = "Editer l'événement"; +$a->strings["Export"] = "Exporter"; +$a->strings["Export calendar as ical"] = "Exporter au format iCal"; +$a->strings["Export calendar as csv"] = "Exporter au format CSV"; +$a->strings["Requested account is not available."] = "Le compte demandé n'est pas disponible."; +$a->strings["Requested profile is not available."] = "Le profil demandé n'est pas disponible."; +$a->strings["Edit profile"] = "Editer le profil"; +$a->strings["Atom feed"] = "Flux Atom"; +$a->strings["Manage/edit profiles"] = "Gérer/éditer les profils"; +$a->strings["Change profile photo"] = "Changer de photo de profil"; +$a->strings["Create New Profile"] = "Créer un nouveau profil"; +$a->strings["Profile Image"] = "Image du profil"; +$a->strings["visible to everybody"] = "visible par tous"; +$a->strings["Edit visibility"] = "Changer la visibilité"; +$a->strings["Forum"] = "Forum"; +$a->strings["Gender:"] = "Genre:"; +$a->strings["Status:"] = "Statut:"; +$a->strings["Homepage:"] = "Page personnelle:"; +$a->strings["About:"] = "À propos:"; +$a->strings["Network:"] = "Réseau"; +$a->strings["g A l F d"] = "g A | F d"; +$a->strings["F d"] = "F d"; +$a->strings["[today]"] = "[aujourd'hui]"; +$a->strings["Birthday Reminders"] = "Rappels d'anniversaires"; +$a->strings["Birthdays this week:"] = "Anniversaires cette semaine:"; +$a->strings["[No description]"] = "[Sans description]"; +$a->strings["Event Reminders"] = "Rappels d'événements"; +$a->strings["Events this week:"] = "Evénements cette semaine :"; +$a->strings["Full Name:"] = "Nom complet:"; +$a->strings["j F, Y"] = "j F, Y"; +$a->strings["j F"] = "j F"; +$a->strings["Age:"] = "Age:"; +$a->strings["for %1\$d %2\$s"] = "depuis %1\$d %2\$s"; +$a->strings["Sexual Preference:"] = "Préférence sexuelle:"; +$a->strings["Hometown:"] = " Ville d'origine:"; +$a->strings["Tags:"] = "Étiquette:"; +$a->strings["Political Views:"] = "Opinions politiques:"; +$a->strings["Religion:"] = "Religion:"; +$a->strings["Hobbies/Interests:"] = "Passe-temps/Centres d'intérêt:"; +$a->strings["Likes:"] = "J'aime :"; +$a->strings["Dislikes:"] = "Je n'aime pas :"; +$a->strings["Contact information and Social Networks:"] = "Coordonnées/Réseaux sociaux:"; +$a->strings["Musical interests:"] = "Goûts musicaux:"; +$a->strings["Books, literature:"] = "Lectures:"; +$a->strings["Television:"] = "Télévision:"; +$a->strings["Film/dance/culture/entertainment:"] = "Cinéma/Danse/Culture/Divertissement:"; +$a->strings["Love/Romance:"] = "Amour/Romance:"; +$a->strings["Work/employment:"] = "Activité professionnelle/Occupation:"; +$a->strings["School/education:"] = "Études/Formation:"; +$a->strings["Forums:"] = "Forums :"; +$a->strings["Basic"] = "Simple"; +$a->strings["Advanced"] = "Avancé"; +$a->strings["Status Messages and Posts"] = "Messages d'état et publications"; +$a->strings["Profile Details"] = "Détails du profil"; +$a->strings["Photo Albums"] = "Albums photo"; +$a->strings["Personal Notes"] = "Notes personnelles"; +$a->strings["Only You Can See This"] = "Vous seul pouvez voir ça"; +$a->strings["Post successful."] = "Publication réussie."; +$a->strings["[Embedded content - reload page to view]"] = "[contenu incorporé - rechargez la page pour le voir]"; +$a->strings["Access denied."] = "Accès refusé."; +$a->strings["Welcome to %s"] = "Bienvenue sur %s"; +$a->strings["No more system notifications."] = "Pas plus de notifications système."; +$a->strings["System Notifications"] = "Notifications du système"; +$a->strings["Remove term"] = "Retirer le terme"; +$a->strings["Public access denied."] = "Accès public refusé."; +$a->strings["Only logged in users are permitted to perform a search."] = "Seuls les utilisateurs inscrits sont autorisés à lancer une recherche."; +$a->strings["Too Many Requests"] = "Trop de requêtes"; +$a->strings["Only one search per minute is permitted for not logged in users."] = "Une seule recherche par minute pour les utilisateurs qui ne sont pas connectés."; +$a->strings["No results."] = "Aucun résultat."; +$a->strings["Items tagged with: %s"] = "Éléments taggés %s"; +$a->strings["Results for: %s"] = "Résultats pour : %s"; +$a->strings["This is Friendica, version"] = "Motorisé par Friendica version"; +$a->strings["running at web location"] = "hébergé sur"; +$a->strings["Please visit Friendica.com to learn more about the Friendica project."] = "Merci de vous rendre sur Friendica.com si vous souhaitez en savoir plus sur le projet Friendica."; +$a->strings["Bug reports and issues: please visit"] = "Pour les rapports de bugs: rendez vous sur"; +$a->strings["the bugtracker at github"] = "le bugtracker sur GitHub"; +$a->strings["Suggestions, praise, donations, etc. - please email \"Info\" at Friendica - dot com"] = "Suggestions, remerciements, donations, etc. - écrivez à \"Info\" arob. Friendica - point com"; +$a->strings["Installed plugins/addons/apps:"] = "Extensions/greffons/applications installées:"; +$a->strings["No installed plugins/addons/apps"] = "Extensions/greffons/applications non installées:"; $a->strings["No valid account found."] = "Impossible de trouver un compte valide."; $a->strings["Password reset request issued. Check your email."] = "Réinitialisation du mot de passe en cours. Vérifiez votre courriel."; $a->strings["\n\t\tDear %1\$s,\n\t\t\tA request was recently received at \"%2\$s\" to reset your account\n\t\tpassword. In order to confirm this request, please select the verification link\n\t\tbelow or paste it into your web browser address bar.\n\n\t\tIf you did NOT request this change, please DO NOT follow the link\n\t\tprovided and ignore and/or delete this email.\n\n\t\tYour password will not be changed unless we can verify that you\n\t\tissued this request."] = "\n\t\tChère/Cher %1\$s,\n\t\t\tNous avons reçu une demande de ré-initialisation du mot de passe de votre compte sur \"%2\$s\". Pour confirmer cette demande, veuillez cliquer sur le lien de vérification ci-dessous ou le coller dans la barre d’adresse de votre navigateur.\n\n\t\tSi vous n’êtes PAS à l’origine de cette demande, NE suivez PAS le lien—ignorez et/ou supprimez ce message.\n\n\t\tVotre mot de passe ne sera pas modifié si nous n’avons pas de confirmation que la demande émane de vous."; @@ -290,57 +754,216 @@ $a->strings["Forgot your Password?"] = "Mot de passe oublié ?"; $a->strings["Enter your email address and submit to have your password reset. Then check your email for further instructions."] = "Entrez votre adresse de courriel et validez pour réinitialiser votre mot de passe. Vous recevrez la suite des instructions par courriel."; $a->strings["Nickname or Email: "] = "Pseudo ou eMail : "; $a->strings["Reset"] = "Réinitialiser"; -$a->strings["event"] = "évènement"; -$a->strings["%1\$s likes %2\$s's %3\$s"] = "%1\$s aime %3\$s de %2\$s"; -$a->strings["%1\$s doesn't like %2\$s's %3\$s"] = "%1\$s n'aime pas %3\$s de %2\$s"; -$a->strings["%1\$s is attending %2\$s's %3\$s"] = "%1\$s participe à %3\$s de %2\$s"; -$a->strings["%1\$s is not attending %2\$s's %3\$s"] = "%1\$s ne participe pas à %3\$s de %2\$s"; -$a->strings["%1\$s may attend %2\$s's %3\$s"] = "%1\$s participera peut-être à %3\$s de %2\$s"; -$a->strings["{0} wants to be your friend"] = "{0} souhaite être votre ami(e)"; -$a->strings["{0} sent you a message"] = "{0} vous a envoyé un message"; -$a->strings["{0} requested registration"] = "{0} a demandé à s'inscrire"; +$a->strings["No profile"] = "Aucun profil"; +$a->strings["Help:"] = "Aide :"; +$a->strings["Not Found"] = "Non trouvé"; +$a->strings["Page not found."] = "Page introuvable."; +$a->strings["Invalid request."] = "Requête invalide."; +$a->strings["Image exceeds size limit of %s"] = "L'image dépasse la taille limite de %s"; +$a->strings["Unable to process image."] = "Impossible de traiter l'image."; +$a->strings["Image upload failed."] = "Le téléversement de l'image a échoué."; +$a->strings["Remote privacy information not available."] = "Informations de confidentialité indisponibles."; +$a->strings["Visible to:"] = "Visible par:"; +$a->strings["Global Directory"] = "Annuaire global"; +$a->strings["Find on this site"] = "Trouver sur ce site"; +$a->strings["Results for:"] = "Résultats pour :"; +$a->strings["Site Directory"] = "Annuaire local"; +$a->strings["No entries (some entries may be hidden)."] = "Aucune entrée (certaines peuvent être cachées)."; +$a->strings["OpenID protocol error. No ID returned."] = "Erreur de protocole OpenID. Pas d'ID en retour."; +$a->strings["Account not found and OpenID registration is not permitted on this site."] = "Compte introuvable, et l'inscription OpenID n'est pas autorisée sur ce site."; +$a->strings["This site has exceeded the number of allowed daily account registrations. Please try again tomorrow."] = "Le nombre d'inscriptions quotidiennes pour ce site a été dépassé. Merci de réessayer demain."; +$a->strings["Import"] = "Importer"; +$a->strings["Move account"] = "Migrer le compte"; +$a->strings["You can import an account from another Friendica server."] = "Vous pouvez importer un compte d'un autre serveur Friendica."; +$a->strings["You need to export your account from the old server and upload it here. We will recreate your old account here with all your contacts. We will try also to inform your friends that you moved here."] = "Vous devez exporter votre compte à partir de l'ancien serveur et le téléverser ici. Nous recréerons votre ancien compte ici avec tous vos contacts. Nous tenterons également d'informer vos amis que vous avez déménagé ici."; +$a->strings["This feature is experimental. We can't import contacts from the OStatus network (GNU Social/Statusnet) or from Diaspora"] = "Cette fonctionalité est expérimentale. Il n'est pas possible d'importer des contacts depuis le réseau OStatus (GNU Social/Statusnet) ou depuis Diaspora."; +$a->strings["Account file"] = "Fichier du compte"; +$a->strings["To export your account, go to \"Settings->Export your personal data\" and select \"Export account\""] = "Pour exporter votre compte, allez dans \"Paramètres> Exporter vos données personnelles\" et sélectionnez \"exportation de compte\""; +$a->strings["Visit %s's profile [%s]"] = "Visiter le profil de %s [%s]"; +$a->strings["Edit contact"] = "Éditer le contact"; +$a->strings["Contacts who are not members of a group"] = "Contacts qui n’appartiennent à aucun groupe"; +$a->strings["No keywords to match. Please add keywords to your default profile."] = "Aucun mot-clé en correspondance. Merci d'ajouter des mots-clés à votre profil par défaut."; +$a->strings["is interested in:"] = "s'intéresse à :"; +$a->strings["Profile Match"] = "Correpondance de profils"; +$a->strings["No matches"] = "Aucune correspondance"; +$a->strings["Export account"] = "Exporter le compte"; +$a->strings["Export your account info and contacts. Use this to make a backup of your account and/or to move it to another server."] = "Exportez votre compte, vos infos et vos contacts. Vous pourrez utiliser le résultat comme sauvegarde et/ou pour le ré-importer sur un autre serveur."; +$a->strings["Export all"] = "Tout exporter"; +$a->strings["Export your accout info, contacts and all your items as json. Could be a very big file, and could take a lot of time. Use this to make a full backup of your account (photos are not exported)"] = "Exportez votre compte, vos infos, vos contacts et toutes vos publications (en JSON). Le fichier résultant peut être extrêmement volumineux, et sa production peut durer longtemps. Vous pourrez l'utiliser pour faire une sauvegarde complète (à part les photos)."; +$a->strings["Export personal data"] = "Exporter"; +$a->strings["Total invitation limit exceeded."] = "La limite d'invitation totale est éxédée."; +$a->strings["%s : Not a valid email address."] = "%s : Adresse de courriel invalide."; +$a->strings["Please join us on Friendica"] = "Rejoignez-nous sur Friendica"; +$a->strings["Invitation limit exceeded. Please contact your site administrator."] = "Limite d'invitation exédée. Veuillez contacter l'administrateur de votre site."; +$a->strings["%s : Message delivery failed."] = "%s : L'envoi du message a échoué."; +$a->strings["%d message sent."] = array( + 0 => "%d message envoyé.", + 1 => "%d messages envoyés.", +); +$a->strings["You have no more invitations available"] = "Vous n'avez plus d'invitations disponibles"; +$a->strings["Visit %s for a list of public sites that you can join. Friendica members on other sites can all connect with each other, as well as with members of many other social networks."] = "Visitez %s pour une liste des sites publics que vous pouvez rejoindre. Les membres de Friendica appartenant à d'autres sites peuvent s'interconnecter, ainsi qu'avec les membres de plusieurs autres réseaux sociaux."; +$a->strings["To accept this invitation, please visit and register at %s or any other public Friendica website."] = "Pour accepter cette invitation, merci d'aller vous inscrire sur %s, ou n'importe quel autre site Friendica public."; +$a->strings["Friendica sites all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks. See %s for a list of alternate Friendica sites you can join."] = "Les sites Friendica sont tous interconnectés pour créer un immense réseau social respectueux de la vie privée, possédé et contrôllé par ses membres. Ils peuvent également interagir avec plusieurs réseaux sociaux traditionnels. Voir %s pour une liste d'autres sites Friendica que vous pourriez rejoindre."; +$a->strings["Our apologies. This system is not currently configured to connect with other public sites or invite members."] = "Toutes nos excuses. Ce système n'est pas configuré pour se connecter à d'autres sites publics ou inviter de nouveaux membres."; +$a->strings["Send invitations"] = "Envoyer des invitations"; +$a->strings["Enter email addresses, one per line:"] = "Entrez les adresses email, une par ligne :"; +$a->strings["Your message:"] = "Votre message:"; +$a->strings["You are cordially invited to join me and other close friends on Friendica - and help us to create a better social web."] = "Vous êtes cordialement invité à me rejoindre sur Friendica, et nous aider ainsi à créer un meilleur web social."; +$a->strings["You will need to supply this invitation code: \$invite_code"] = "Vous devrez fournir ce code d'invitation : \$invite_code"; +$a->strings["Once you have registered, please connect with me via my profile page at:"] = "Une fois inscrit, connectez-vous à la page de mon profil sur :"; +$a->strings["For more information about the Friendica project and why we feel it is important, please visit http://friendica.com"] = "Pour plus d'information sur le projet Friendica, et pourquoi nous croyons qu'il est important, merci de visiter http://friendica.com"; +$a->strings["Submit"] = "Envoyer"; +$a->strings["Contact Photos"] = "Photos du contact"; +$a->strings["Files"] = "Fichiers"; +$a->strings["System down for maintenance"] = "Système indisponible pour cause de maintenance"; +$a->strings["Permission denied"] = "Permission refusée"; +$a->strings["Invalid profile identifier."] = "Identifiant de profil invalide."; +$a->strings["Profile Visibility Editor"] = "Éditer la visibilité du profil"; +$a->strings["Click on a contact to add or remove."] = "Cliquez sur un contact pour l'ajouter ou le supprimer."; +$a->strings["Visible To"] = "Visible par"; +$a->strings["All Contacts (with secure profile access)"] = "Tous les contacts (ayant un accès sécurisé)"; $a->strings["No contacts."] = "Aucun contact."; -$a->strings["Invalid request identifier."] = "Identifiant de demande invalide."; -$a->strings["Discard"] = "Rejeter"; -$a->strings["System"] = "Système"; -$a->strings["Network"] = "Réseau"; -$a->strings["Personal"] = "Personnel"; -$a->strings["Home"] = "Profil"; -$a->strings["Introductions"] = "Introductions"; -$a->strings["Show Ignored Requests"] = "Voir les demandes ignorées"; -$a->strings["Hide Ignored Requests"] = "Cacher les demandes ignorées"; -$a->strings["Notification type: "] = "Type de notification: "; -$a->strings["Friend Suggestion"] = "Suggestion d'amitié/contact"; -$a->strings["suggested by %s"] = "suggéré(e) par %s"; -$a->strings["Post a new friend activity"] = "Poster une nouvelle avtivité d'ami"; -$a->strings["if applicable"] = "si possible"; -$a->strings["Approve"] = "Approuver"; -$a->strings["Claims to be known to you: "] = "Prétend que vous le connaissez: "; -$a->strings["yes"] = "oui"; -$a->strings["no"] = "non"; -$a->strings["Shall your connection be bidirectional or not? \"Friend\" implies that you allow to read and you subscribe to their posts. \"Fan/Admirer\" means that you allow to read but you do not want to read theirs. Approve as: "] = "Doit être votre connexion bidirectionnelle ou non? \"Ami\" implique que vous autorisiez à lire et vous vous abonnez à leurs postes. \"Fan / Admirateur\" signifie que vous permettez de lire, mais vous ne voulez pas lire les leurs. Approuver en:"; -$a->strings["Shall your connection be bidirectional or not? \"Friend\" implies that you allow to read and you subscribe to their posts. \"Sharer\" means that you allow to read but you do not want to read theirs. Approve as: "] = "Doit être votre connexion bidirectionnelle ou non? \"Ami\" implique que vous autorisiez à lire et vous vous abonnez à leurs postes. \"Fan / Admirateur\" signifie que vous permettez de lire, mais vous ne voulez pas lire les leurs. Approuver en:"; -$a->strings["Friend"] = "Ami"; -$a->strings["Sharer"] = "Initiateur du partage"; -$a->strings["Fan/Admirer"] = "Fan/Admirateur"; -$a->strings["Friend/Connect Request"] = "Demande de connexion/relation"; -$a->strings["New Follower"] = "Nouvel abonné"; -$a->strings["Gender:"] = "Genre:"; -$a->strings["No introductions."] = "Aucune demande d'introduction."; -$a->strings["Notifications"] = "Notifications"; -$a->strings["%s liked %s's post"] = "%s a aimé la publication de %s"; -$a->strings["%s disliked %s's post"] = "%s n'a pas aimé la publication de %s"; -$a->strings["%s is now friends with %s"] = "%s est désormais ami(e) avec %s"; -$a->strings["%s created a new post"] = "%s a créé une nouvelle publication"; -$a->strings["%s commented on %s's post"] = "%s a commenté la publication de %s"; -$a->strings["No more network notifications."] = "Aucune notification du réseau."; -$a->strings["Network Notifications"] = "Notifications du réseau"; -$a->strings["No more system notifications."] = "Pas plus de notifications système."; -$a->strings["System Notifications"] = "Notifications du système"; -$a->strings["No more personal notifications."] = "Aucun notification personnelle."; -$a->strings["Personal Notifications"] = "Notifications personnelles"; -$a->strings["No more home notifications."] = "Aucune notification de la page d'accueil."; -$a->strings["Home Notifications"] = "Notifications de page d'accueil"; +$a->strings["Tag removed"] = "Étiquette supprimée"; +$a->strings["Remove Item Tag"] = "Enlever l'étiquette de l'élément"; +$a->strings["Select a tag to remove: "] = "Sélectionner une étiquette à supprimer: "; +$a->strings["Remove"] = "Utiliser comme photo de profil"; +$a->strings["Sorry, maybe your upload is bigger than the PHP configuration allows"] = "Désolé, il semble que votre fichier est plus important que ce que la configuration de PHP autorise"; +$a->strings["Or - did you try to upload an empty file?"] = "Ou — auriez-vous essayé de télécharger un fichier vide ?"; +$a->strings["File exceeds size limit of %s"] = "La taille du fichier dépasse la limite de %s"; +$a->strings["File upload failed."] = "Le téléversement a échoué."; +$a->strings["No friends to display."] = "Pas d'amis à afficher."; +$a->strings["Resubscribing to OStatus contacts"] = "Réinscription aux contacts OStatus"; +$a->strings["Error"] = "Erreur"; +$a->strings["Done"] = "Terminé"; +$a->strings["Keep this window open until done."] = "Veuillez garder cette fenêtre ouverte jusqu'à la fin."; +$a->strings["No potential page delegates located."] = "Pas de délégataire potentiel."; +$a->strings["Delegates are able to manage all aspects of this account/page except for basic account settings. Please do not delegate your personal account to anybody that you do not trust completely."] = "Les délégataires seront capables de gérer tous les aspects de ce compte ou de cette page, à l'exception des réglages de compte. Merci de ne pas déléguer votre compte principal à quelqu'un en qui vous n'avez pas une confiance absolue."; +$a->strings["Existing Page Managers"] = "Gestionnaires existants"; +$a->strings["Existing Page Delegates"] = "Délégataires existants"; +$a->strings["Potential Delegates"] = "Délégataires potentiels"; +$a->strings["Add"] = "Ajouter"; +$a->strings["No entries."] = "Aucune entrée."; +$a->strings["Credits"] = "Remerciements"; +$a->strings["Friendica is a community project, that would not be possible without the help of many people. Here is a list of those who have contributed to the code or the translation of Friendica. Thank you all!"] = "Friendica est un projet communautaire, qui ne serait pas possible sans l'aide de beaucoup de gens. Voici une liste de ceux qui ont contribué au code ou à la traduction de Friendica. Merci à tous!"; +$a->strings["- select -"] = "- choisir -"; +$a->strings["%1\$s is following %2\$s's %3\$s"] = "%1\$s suit les %3\$s de %2\$s"; +$a->strings["Item not available."] = "Elément non disponible."; +$a->strings["Item was not found."] = "Element introuvable."; +$a->strings["Submit Request"] = "Envoyer la requête"; +$a->strings["You already added this contact."] = "Vous avez déjà ajouté ce contact."; +$a->strings["Diaspora support isn't enabled. Contact can't be added."] = "Le support de Diaspora est désactivé. Le contact ne peut pas être ajouté."; +$a->strings["OStatus support is disabled. Contact can't be added."] = "Le support d'OStatus est désactivé. Le contact ne peut pas être ajouté."; +$a->strings["The network type couldn't be detected. Contact can't be added."] = "Impossible de détecter le type de réseau. Le contact ne peut pas être ajouté."; +$a->strings["Please answer the following:"] = "Merci de répondre à ce qui suit:"; +$a->strings["Does %s know you?"] = "Est-ce que %s vous connaît?"; +$a->strings["No"] = "Non"; +$a->strings["Add a personal note:"] = "Ajouter une note personnelle:"; +$a->strings["Your Identity Address:"] = "Votre adresse d'identité:"; +$a->strings["Profile URL"] = "URL du Profil"; +$a->strings["Contact added"] = "Contact ajouté"; +$a->strings["You must be logged in to use addons. "] = "Vous devez être connecté pour utiliser les greffons."; +$a->strings["Applications"] = "Applications"; +$a->strings["No installed applications."] = "Pas d'application installée."; +$a->strings["Do you really want to delete this suggestion?"] = "Voulez-vous vraiment supprimer cette suggestion ?"; +$a->strings["No suggestions available. If this is a new site, please try again in 24 hours."] = "Aucune suggestion. Si ce site est récent, merci de recommencer dans 24h."; +$a->strings["Ignore/Hide"] = "Ignorer/cacher"; +$a->strings["Not Extended"] = ""; +$a->strings["Access to this profile has been restricted."] = "L'accès au profil a été restreint."; +$a->strings["Item has been removed."] = "Cet élément a été enlevé."; +$a->strings["No contacts in common."] = "Pas de contacts en commun."; +$a->strings["Common Friends"] = "Amis communs"; +$a->strings["Welcome to Friendica"] = "Bienvenue sur Friendica"; +$a->strings["New Member Checklist"] = "Checklist du nouvel utilisateur"; +$a->strings["We would like to offer some tips and links to help make your experience enjoyable. Click any item to visit the relevant page. A link to this page will be visible from your home page for two weeks after your initial registration and then will quietly disappear."] = "Nous souhaiterions vous donner quelques astuces et ressources pour rendre votre expérience la plus agréable possible. Cliquez sur n'importe lequel de ces éléments pour visiter la page correspondante. Un lien vers cette page restera visible sur votre page d'accueil pendant les deux semaines qui suivent votre inscription initiale, puis disparaîtra silencieusement."; +$a->strings["Getting Started"] = "Bien démarrer"; +$a->strings["Friendica Walk-Through"] = "Friendica pas-à-pas"; +$a->strings["On your Quick Start page - find a brief introduction to your profile and network tabs, make some new connections, and find some groups to join."] = "Sur votre page d'accueil, dans Conseils aux nouveaux venus - vous trouverez une rapide introduction aux onglets Profil et Réseau, pourrez vous connecter à Facebook, établir de nouvelles relations, et choisir des groupes à rejoindre."; +$a->strings["Go to Your Settings"] = "Éditer vos Réglages"; +$a->strings["On your Settings page - change your initial password. Also make a note of your Identity Address. This looks just like an email address - and will be useful in making friends on the free social web."] = "Sur la page des Réglages - changez votre mot de passe initial. Notez bien votre Identité. Elle ressemble à une adresse de courriel - et vous sera utile pour vous faire des amis dans le web social libre."; +$a->strings["Review the other settings, particularly the privacy settings. An unpublished directory listing is like having an unlisted phone number. In general, you should probably publish your listing - unless all of your friends and potential friends know exactly how to find you."] = "Vérifiez les autres réglages, tout particulièrement ceux liés à la vie privée. Un profil non listé, c'est un peu comme un numéro sur liste rouge. En général, vous devriez probablement publier votre profil - à moins que tous vos amis (potentiels) sachent déjà comment vous trouver."; +$a->strings["Upload Profile Photo"] = "Téléverser une photo de profil"; +$a->strings["Upload a profile photo if you have not done so already. Studies have shown that people with real photos of themselves are ten times more likely to make friends than people who do not."] = "Téléversez (envoyez) une photo de profil si vous n'en avez pas déjà une. Les études montrent que les gens qui affichent de vraies photos d'eux sont dix fois plus susceptibles de se faire des amis."; +$a->strings["Edit Your Profile"] = "Éditer votre Profil"; +$a->strings["Edit your default profile to your liking. Review the settings for hiding your list of friends and hiding the profile from unknown visitors."] = "Éditez votre profil par défaut à votre convenance. Vérifiez les réglages concernant la visibilité de votre liste d'amis par les visiteurs inconnus."; +$a->strings["Profile Keywords"] = "Mots-clés du profil"; +$a->strings["Set some public keywords for your default profile which describe your interests. We may be able to find other people with similar interests and suggest friendships."] = "Choisissez quelques mots-clé publics pour votre profil par défaut. Ils pourront ainsi décrire vos centres d'intérêt, et nous pourrons vous proposer des contacts qui les partagent."; +$a->strings["Connecting"] = "Connexions"; +$a->strings["Importing Emails"] = "Importer courriels"; +$a->strings["Enter your email access information on your Connector Settings page if you wish to import and interact with friends or mailing lists from your email INBOX"] = "Entrez vos paramètres de courriel dans les Réglages des connecteurs si vous souhaitez importer et interagir avec des amis ou des listes venant de votre Boîte de Réception."; +$a->strings["Go to Your Contacts Page"] = "Consulter vos Contacts"; +$a->strings["Your Contacts page is your gateway to managing friendships and connecting with friends on other networks. Typically you enter their address or site URL in the Add New Contact dialog."] = "Votre page Contacts est le point d'entrée vers la gestion de vos amitiés/relations et la connexion à des amis venant d'autres réseaux. Typiquement, vous pourrez y rentrer leur adresse d'Identité ou l'URL de leur site dans le formulaire Ajouter un nouveau contact."; +$a->strings["Go to Your Site's Directory"] = "Consulter l'Annuaire de votre Site"; +$a->strings["The Directory page lets you find other people in this network or other federated sites. Look for a Connect or Follow link on their profile page. Provide your own Identity Address if requested."] = "La page Annuaire vous permet de trouver d'autres personnes au sein de ce réseaux ou parmi d'autres sites fédérés. Cherchez un lien Relier ou Suivre sur leur profil. Vous pourrez avoir besoin d'indiquer votre adresse d'identité."; +$a->strings["Finding New People"] = "Trouver de nouvelles personnes"; +$a->strings["On the side panel of the Contacts page are several tools to find new friends. We can match people by interest, look up people by name or interest, and provide suggestions based on network relationships. On a brand new site, friend suggestions will usually begin to be populated within 24 hours."] = "Sur le panneau latéral de la page Contacts, il y a plusieurs moyens de trouver de nouveaux amis. Nous pouvons mettre les gens en relation selon leurs intérêts, rechercher des amis par nom ou intérêt, et fournir des suggestions en fonction de la topologie du réseau. Sur un site tout neuf, les suggestions d'amitié devraient commencer à apparaître au bout de 24 heures."; +$a->strings["Group Your Contacts"] = "Grouper vos contacts"; +$a->strings["Once you have made some friends, organize them into private conversation groups from the sidebar of your Contacts page and then you can interact with each group privately on your Network page."] = "Une fois que vous avez trouvé quelques amis, organisez-les en groupes de conversation privés depuis le panneau latéral de la page Contacts. Vous pourrez ensuite interagir avec chaque groupe de manière privée depuis la page Réseau."; +$a->strings["Why Aren't My Posts Public?"] = "Pourquoi mes éléments ne sont pas publics ?"; +$a->strings["Friendica respects your privacy. By default, your posts will only show up to people you've added as friends. For more information, see the help section from the link above."] = "Friendica respecte votre vie privée. Par défaut, toutes vos publications seront seulement montrés à vos amis. Pour plus d'information, consultez la section \"aide\" du lien ci-dessus."; +$a->strings["Getting Help"] = "Obtenir de l'aide"; +$a->strings["Go to the Help Section"] = "Aller à la section Aide"; +$a->strings["Our help pages may be consulted for detail on other program features and resources."] = "Nos pages d'aide peuvent être consultées pour davantage de détails sur les fonctionnalités ou les ressources."; +$a->strings["Remove My Account"] = "Supprimer mon compte"; +$a->strings["This will completely remove your account. Once this has been done it is not recoverable."] = "Ceci supprimera totalement votre compte. Cette opération est irréversible."; +$a->strings["Please enter your password for verification:"] = "Merci de saisir votre mot de passe pour vérification :"; +$a->strings["Item not found"] = "Élément introuvable"; +$a->strings["Edit post"] = "Éditer la publication"; +$a->strings["Warning: This group contains %s member from an insecure network."] = array( + 0 => "Attention: Ce groupe contient %s membre d'un réseau non-sûr.", + 1 => "Attention: Ce groupe contient %s membres d'un réseau non-sûr.", +); +$a->strings["Private messages to this group are at risk of public disclosure."] = "Les messages privés envoyés à ce groupe s'exposent à une diffusion incontrôlée."; +$a->strings["No such group"] = "Groupe inexistant"; +$a->strings["Group is empty"] = "Groupe vide"; +$a->strings["Group: %s"] = "Group : %s"; +$a->strings["Private messages to this person are at risk of public disclosure."] = "Les messages privés envoyés à ce contact s'exposent à une diffusion incontrôlée."; +$a->strings["Invalid contact."] = "Contact invalide."; +$a->strings["Commented Order"] = "Tri par commentaires"; +$a->strings["Sort by Comment Date"] = "Trier par date de commentaire"; +$a->strings["Posted Order"] = "Tri des publications"; +$a->strings["Sort by Post Date"] = "Trier par date de publication"; +$a->strings["Posts that mention or involve you"] = "Publications qui vous concernent"; +$a->strings["New"] = "Nouveau"; +$a->strings["Activity Stream - by date"] = "Flux d'activités - par date"; +$a->strings["Shared Links"] = "Liens partagés"; +$a->strings["Interesting Links"] = "Liens intéressants"; +$a->strings["Starred"] = "Mis en avant"; +$a->strings["Favourite Posts"] = "Publications favorites"; +$a->strings["Not available."] = "Indisponible."; +$a->strings["Time Conversion"] = "Conversion temporelle"; +$a->strings["Friendica provides this service for sharing events with other networks and friends in unknown timezones."] = "Friendica fournit ce service pour partager des événements avec d'autres réseaux et amis indépendament de leur fuseau horaire."; +$a->strings["UTC time: %s"] = "Temps UTC : %s"; +$a->strings["Current timezone: %s"] = "Zone de temps courante : %s"; +$a->strings["Converted localtime: %s"] = "Temps local converti : %s"; +$a->strings["Please select your timezone:"] = "Sélectionner votre zone :"; +$a->strings["The post was created"] = "La publication a été créée"; +$a->strings["Group created."] = "Groupe créé."; +$a->strings["Could not create group."] = "Impossible de créer le groupe."; +$a->strings["Group not found."] = "Groupe introuvable."; +$a->strings["Group name changed."] = "Groupe renommé."; +$a->strings["Save Group"] = "Sauvegarder le groupe"; +$a->strings["Create a group of contacts/friends."] = "Créez un groupe de contacts/amis."; +$a->strings["Group removed."] = "Groupe enlevé."; +$a->strings["Unable to remove group."] = "Impossible d'enlever le groupe."; +$a->strings["Group Editor"] = "Éditeur de groupe"; +$a->strings["Members"] = "Membres"; +$a->strings["All Contacts"] = "Tous les contacts"; +$a->strings["Number of daily wall messages for %s exceeded. Message failed."] = "Nombre de messages de mur quotidiens pour %s dépassé. Échec du message."; +$a->strings["No recipient selected."] = "Pas de destinataire sélectionné."; +$a->strings["Unable to check your home location."] = "Impossible de vérifier votre localisation."; +$a->strings["Message could not be sent."] = "Impossible d'envoyer le message."; +$a->strings["Message collection failure."] = "Récupération des messages infructueuse."; +$a->strings["Message sent."] = "Message envoyé."; +$a->strings["No recipient."] = "Pas de destinataire."; +$a->strings["Send Private Message"] = "Envoyer un message privé"; +$a->strings["If you wish for %s to respond, please check that the privacy settings on your site allow private mail from unknown senders."] = "Si vous souhaitez que %s réponde, merci de vérifier vos réglages pour autoriser les messages privés venant d'inconnus."; +$a->strings["To:"] = "À:"; +$a->strings["Subject:"] = "Sujet:"; +$a->strings["link"] = "lien"; +$a->strings["Authorize application connection"] = "Autoriser l'application à se connecter"; +$a->strings["Return to your app and insert this Securty Code:"] = "Retournez à votre application et saisissez ce Code de Sécurité : "; +$a->strings["Please login to continue."] = "Merci de vous connecter pour continuer."; +$a->strings["Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?"] = "Voulez-vous autoriser cette application à accéder à vos publications et contacts, et/ou à créer des billets à votre place?"; $a->strings["Source (bbcode) text:"] = "Texte source (bbcode) :"; $a->strings["Source (Diaspora) text to convert to BBcode:"] = "Texte source (Diaspora) à convertir en BBcode :"; $a->strings["Source input: "] = "Source input : "; @@ -353,26 +976,19 @@ $a->strings["bb2dia2bb: "] = "bb2dia2bb : "; $a->strings["bb2md2html2bb: "] = "bb2md2html2bb : "; $a->strings["Source input (Diaspora format): "] = "Texte source (format Diaspora) :"; $a->strings["diaspora2bb: "] = "diaspora2bb :"; -$a->strings["Nothing new here"] = "Rien de neuf ici"; -$a->strings["Clear notifications"] = "Effacer les notifications"; -$a->strings["New Message"] = "Nouveau message"; -$a->strings["No recipient selected."] = "Pas de destinataire sélectionné."; +$a->strings["Subscribing to OStatus contacts"] = "Inscription aux contacts OStatus"; +$a->strings["No contact provided."] = "Pas de contact fourni."; +$a->strings["Couldn't fetch information for contact."] = "Impossible de récupérer les informations pour ce contact."; +$a->strings["Couldn't fetch friends for contact."] = "Impossible de récupérer les amis de ce contact."; +$a->strings["success"] = "réussite"; +$a->strings["failed"] = "échec"; +$a->strings["ignored"] = "ignoré"; +$a->strings["%1\$s welcomes %2\$s"] = "%1\$s accueille %2\$s"; +$a->strings["Tips for New Members"] = "Conseils aux nouveaux venus"; $a->strings["Unable to locate contact information."] = "Impossible de localiser les informations du contact."; -$a->strings["Message could not be sent."] = "Impossible d'envoyer le message."; -$a->strings["Message collection failure."] = "Récupération des messages infructueuse."; -$a->strings["Message sent."] = "Message envoyé."; -$a->strings["Messages"] = "Messages"; $a->strings["Do you really want to delete this message?"] = "Voulez-vous vraiment supprimer ce message ?"; $a->strings["Message deleted."] = "Message supprimé."; $a->strings["Conversation removed."] = "Conversation supprimée."; -$a->strings["Please enter a link URL:"] = "Entrez un lien web:"; -$a->strings["Send Private Message"] = "Envoyer un message privé"; -$a->strings["To:"] = "À:"; -$a->strings["Subject:"] = "Sujet:"; -$a->strings["Your message:"] = "Votre message:"; -$a->strings["Upload photo"] = "Joindre photo"; -$a->strings["Insert web link"] = "Insérer lien web"; -$a->strings["Please wait"] = "Patientez"; $a->strings["No messages."] = "Aucun message."; $a->strings["Message not available."] = "Message indisponible."; $a->strings["Delete message"] = "Effacer message"; @@ -387,9 +1003,12 @@ $a->strings["%d message"] = array( 0 => "%d message", 1 => "%d messages", ); -$a->strings["[Embedded content - reload page to view]"] = "[contenu incorporé - rechargez la page pour le voir]"; +$a->strings["Manage Identities and/or Pages"] = "Gérer les identités et/ou les pages"; +$a->strings["Toggle between different identities or community/group pages which share your account details or which you have been granted \"manage\" permissions"] = "Basculez entre les différentes identités ou pages (groupes/communautés) qui se partagent votre compte ou que vous avez été autorisé à gérer."; +$a->strings["Select an identity to manage: "] = "Choisir une identité à gérer: "; $a->strings["Contact settings applied."] = "Réglages du contact appliqués."; $a->strings["Contact update failed."] = "Impossible d'appliquer les réglages."; +$a->strings["Contact not found."] = "Contact introuvable."; $a->strings["WARNING: This is highly advanced and if you enter incorrect information your communications with this contact may stop working."] = "ATTENTION: Manipulation réservée aux experts, toute information incorrecte pourrait empêcher la communication avec ce contact."; $a->strings["Please use your browser 'Back' button now if you are uncertain what to do on this page."] = "une photo"; $a->strings["No mirroring"] = "Pas de miroir"; @@ -397,6 +1016,9 @@ $a->strings["Mirror as forwarded posting"] = ""; $a->strings["Mirror as my own posting"] = ""; $a->strings["Return to contact editor"] = "Retour à l'éditeur de contact"; $a->strings["Refetch contact data"] = "Récupérer à nouveau les données de contact"; +$a->strings["Remote Self"] = "Identité à distance"; +$a->strings["Mirror postings from this contact"] = "Copier les publications de ce contact"; +$a->strings["Mark this contact as remote_self, this will cause friendica to repost new entries from this contact."] = "Marquer ce contact comme étant remote_self, friendica republiera alors les nouvelles entrées de ce contact."; $a->strings["Name"] = "Nom"; $a->strings["Account Nickname"] = "Pseudo du compte"; $a->strings["@Tagname - overrides Name/Nickname"] = "@NomEtiquette - prend le pas sur Nom/Pseudo"; @@ -406,35 +1028,664 @@ $a->strings["Friend Confirm URL"] = "Accès public refusé."; $a->strings["Notification Endpoint URL"] = "Aucune photo sélectionnée"; $a->strings["Poll/Feed URL"] = "Téléverser des photos"; $a->strings["New photo from this URL"] = "Nouvelle photo depuis cette URL"; -$a->strings["Remote Self"] = "Identité à distance"; -$a->strings["Mirror postings from this contact"] = ""; -$a->strings["Mark this contact as remote_self, this will cause friendica to repost new entries from this contact."] = "Marquer ce contact comme étant remote_self, friendica republiera alors les nouvelles entrées de ce contact."; -$a->strings["Login"] = "Connexion"; -$a->strings["The post was created"] = "La publication a été créée"; -$a->strings["Access denied."] = "Accès refusé."; -$a->strings["Connect"] = "Relier"; -$a->strings["View Profile"] = "Voir le profil"; +$a->strings["This introduction has already been accepted."] = "Cette introduction a déjà été acceptée."; +$a->strings["Profile location is not valid or does not contain profile information."] = "L'emplacement du profil est invalide ou ne contient pas de profil valide."; +$a->strings["Warning: profile location has no identifiable owner name."] = "Attention: l'emplacement du profil n'a pas de nom identifiable."; +$a->strings["Warning: profile location has no profile photo."] = "Attention: l'emplacement du profil n'a pas de photo de profil."; +$a->strings["%d required parameter was not found at the given location"] = array( + 0 => "%d paramètre requis n'a pas été trouvé à l'endroit indiqué", + 1 => "%d paramètres requis n'ont pas été trouvés à l'endroit indiqué", +); +$a->strings["Introduction complete."] = "Phase d'introduction achevée."; +$a->strings["Unrecoverable protocol error."] = "Erreur de protocole non-récupérable."; +$a->strings["Profile unavailable."] = "Profil indisponible."; +$a->strings["%s has received too many connection requests today."] = "%s a reçu trop de demandes d'introduction aujourd'hui."; +$a->strings["Spam protection measures have been invoked."] = "Des mesures de protection contre le spam ont été déclenchées."; +$a->strings["Friends are advised to please try again in 24 hours."] = "Les relations sont encouragées à attendre 24 heures pour recommencer."; +$a->strings["Invalid locator"] = "Localisateur invalide"; +$a->strings["Invalid email address."] = "Adresse courriel invalide."; +$a->strings["This account has not been configured for email. Request failed."] = "Ce compte n'a pas été configuré pour les échanges de courriel. Requête avortée."; +$a->strings["You have already introduced yourself here."] = "Vous vous êtes déjà présenté ici."; +$a->strings["Apparently you are already friends with %s."] = "Il semblerait que vous soyez déjà ami avec %s."; +$a->strings["Invalid profile URL."] = "URL de profil invalide."; +$a->strings["Failed to update contact record."] = "Échec de mise à jour du contact."; +$a->strings["Your introduction has been sent."] = "Votre introduction a été envoyée."; +$a->strings["Remote subscription can't be done for your network. Please subscribe directly on your system."] = ""; +$a->strings["Please login to confirm introduction."] = "Connectez-vous pour confirmer l'introduction."; +$a->strings["Incorrect identity currently logged in. Please login to this profile."] = "Identité incorrecte actuellement connectée. Merci de vous connecter à ce profil."; +$a->strings["Confirm"] = "Confirmer"; +$a->strings["Hide this contact"] = "Cacher ce contact"; +$a->strings["Welcome home %s."] = "Bienvenue chez vous, %s."; +$a->strings["Please confirm your introduction/connection request to %s."] = "Merci de confirmer votre demande d'introduction auprès de %s."; +$a->strings["Please enter your 'Identity Address' from one of the following supported communications networks:"] = "Merci d'entrer votre \"adresse d'identité\" de l'un des réseaux de communication suivant:"; +$a->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 vous n’êtes pas encore membre du web social libre, suivez ce lien pour trouver un site Friendica ouvert au public et nous rejoindre dès aujourd’hui."; +$a->strings["Friend/Connection Request"] = "Requête de relation/amitié"; +$a->strings["Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, testuser@identi.ca"] = "Exemples : jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, testuser@identi.ca"; +$a->strings["StatusNet/Federated Social Web"] = "StatusNet/Federated Social Web"; +$a->strings[" - please do not use this form. Instead, enter %s into your Diaspora search bar."] = " - merci de ne pas utiliser ce formulaire. Entrez plutôt %s dans votre barre de recherche Diaspora."; +$a->strings["This entry was edited"] = "Cette entrée à été édité"; +$a->strings["%d comment"] = array( + 0 => "%d commentaire", + 1 => "%d commentaires", +); +$a->strings["Private Message"] = "Message privé"; +$a->strings["I like this (toggle)"] = "J'aime"; +$a->strings["like"] = "aime"; +$a->strings["I don't like this (toggle)"] = "Je n'aime pas"; +$a->strings["dislike"] = "n'aime pas"; +$a->strings["Share this"] = "Partager"; +$a->strings["share"] = "partager"; +$a->strings["This is you"] = "C'est vous"; +$a->strings["Comment"] = "Commenter"; +$a->strings["Bold"] = "Gras"; +$a->strings["Italic"] = "Italique"; +$a->strings["Underline"] = "Souligné"; +$a->strings["Quote"] = "Citation"; +$a->strings["Code"] = "Code"; +$a->strings["Image"] = "Image"; +$a->strings["Link"] = "Lien"; +$a->strings["Video"] = "Vidéo"; +$a->strings["Edit"] = "Éditer"; +$a->strings["add star"] = "mett en avant"; +$a->strings["remove star"] = "ne plus mettre en avant"; +$a->strings["toggle star status"] = "mettre en avant"; +$a->strings["starred"] = "mis en avant"; +$a->strings["add tag"] = "ajouter une étiquette"; +$a->strings["ignore thread"] = "ignorer le fil"; +$a->strings["unignore thread"] = "Ne plus ignorer le fil"; +$a->strings["toggle ignore status"] = "Ignorer le statut"; +$a->strings["save to folder"] = "sauver vers dossier"; +$a->strings["I will attend"] = "Je vais participer"; +$a->strings["I will not attend"] = "Je ne vais pas participer"; +$a->strings["I might attend"] = "Je vais peut-être participer"; +$a->strings["to"] = "à"; +$a->strings["Wall-to-Wall"] = "Inter-mur"; +$a->strings["via Wall-To-Wall:"] = "en Inter-mur:"; +$a->strings["%d contact edited."] = array( + 0 => "", + 1 => "", +); +$a->strings["Could not access contact record."] = "Impossible d'accéder à l'enregistrement du contact."; +$a->strings["Could not locate selected profile."] = "Impossible de localiser le profil séléctionné."; +$a->strings["Contact updated."] = "Contact mis à jour."; +$a->strings["Contact has been blocked"] = "Le contact a été bloqué"; +$a->strings["Contact has been unblocked"] = "Le contact n'est plus bloqué"; +$a->strings["Contact has been ignored"] = "Le contact a été ignoré"; +$a->strings["Contact has been unignored"] = "Le contact n'est plus ignoré"; +$a->strings["Contact has been archived"] = "Contact archivé"; +$a->strings["Contact has been unarchived"] = "Contact désarchivé"; +$a->strings["Drop contact"] = "Supprimer contact"; +$a->strings["Do you really want to delete this contact?"] = "Voulez-vous vraiment supprimer ce contact?"; +$a->strings["Contact has been removed."] = "Ce contact a été retiré."; +$a->strings["You are mutual friends with %s"] = "Vous êtes ami (et réciproquement) avec %s"; +$a->strings["You are sharing with %s"] = "Vous partagez avec %s"; +$a->strings["%s is sharing with you"] = "%s partage avec vous"; +$a->strings["Private communications are not available for this contact."] = "Les communications privées ne sont pas disponibles pour ce contact."; +$a->strings["Never"] = "Jamais"; +$a->strings["(Update was successful)"] = "(Mise à jour effectuée avec succès)"; +$a->strings["(Update was not successful)"] = "(Échec de la mise à jour)"; +$a->strings["Suggest friends"] = "Suggérer amitié/contact"; +$a->strings["Network type: %s"] = "Type de réseau %s"; +$a->strings["Communications lost with this contact!"] = "Communications perdues avec ce contact !"; +$a->strings["Fetch further information for feeds"] = "Chercher plus d'informations pour les flux"; +$a->strings["Disabled"] = "Désactivé"; +$a->strings["Fetch information"] = "Récupérer informations"; +$a->strings["Fetch information and keywords"] = "Récupérer informations"; +$a->strings["Contact"] = "Contact"; +$a->strings["Profile Visibility"] = "Visibilité du profil"; +$a->strings["Please choose the profile you would like to display to %s when viewing your profile securely."] = "Merci de choisir le profil que vous souhaitez montrer à %s lorsqu'il vous rend visite de manière sécurisée."; +$a->strings["Contact Information / Notes"] = "Informations de contact / Notes"; +$a->strings["Edit contact notes"] = "Éditer les notes des contacts"; +$a->strings["Block/Unblock contact"] = "Bloquer/débloquer ce contact"; +$a->strings["Ignore contact"] = "Ignorer ce contact"; +$a->strings["Repair URL settings"] = "Réglages de réparation des URL"; +$a->strings["View conversations"] = "Voir les conversations"; +$a->strings["Last update:"] = "Dernière mise-à-jour :"; +$a->strings["Update public posts"] = "Mettre à jour les publications publiques:"; +$a->strings["Update now"] = "Mettre à jour"; +$a->strings["Unblock"] = "Débloquer"; +$a->strings["Block"] = "Bloquer"; +$a->strings["Unignore"] = "Ne plus ignorer"; +$a->strings["Ignore"] = "Ignorer"; +$a->strings["Currently blocked"] = "Actuellement bloqué"; +$a->strings["Currently ignored"] = "Actuellement ignoré"; +$a->strings["Currently archived"] = "Actuellement archivé"; +$a->strings["Hide this contact from others"] = "Cacher ce contact aux autres"; +$a->strings["Replies/likes to your public posts may still be visible"] = "Les réponses et \"j'aime\" à vos publications publiques peuvent être toujours visibles"; +$a->strings["Notification for new posts"] = "Notification des nouvelles publications"; +$a->strings["Send a notification of every new post of this contact"] = "Envoyer une notification de chaque nouveau message en provenance de ce contact"; +$a->strings["Blacklisted keywords"] = "Mots-clés sur la liste noire"; +$a->strings["Comma separated list of keywords that should not be converted to hashtags, when \"Fetch information and keywords\" is selected"] = "Liste de mots-clés separés par des virgules qui ne doivent pas être converti en mots-dièse quand « Récupérer informations et mots-clés » est sélectionné."; +$a->strings["Actions"] = "Actions"; +$a->strings["Contact Settings"] = "Paramètres du Contact"; +$a->strings["Suggestions"] = "Suggestions"; +$a->strings["Suggest potential friends"] = "Suggérer des amis potentiels"; +$a->strings["Show all contacts"] = "Montrer tous les contacts"; +$a->strings["Unblocked"] = "Non-bloqués"; +$a->strings["Only show unblocked contacts"] = "Ne montrer que les contacts non-bloqués"; +$a->strings["Blocked"] = "Bloqués"; +$a->strings["Only show blocked contacts"] = "Ne montrer que les contacts bloqués"; +$a->strings["Ignored"] = "Ignorés"; +$a->strings["Only show ignored contacts"] = "Ne montrer que les contacts ignorés"; +$a->strings["Archived"] = "Archivés"; +$a->strings["Only show archived contacts"] = "Ne montrer que les contacts archivés"; +$a->strings["Hidden"] = "Cachés"; +$a->strings["Only show hidden contacts"] = "Ne montrer que les contacts masqués"; +$a->strings["Search your contacts"] = "Rechercher dans vos contacts"; +$a->strings["Update"] = "Mises-à-jour"; +$a->strings["Archive"] = "Archiver"; +$a->strings["Unarchive"] = "Désarchiver"; +$a->strings["Batch Actions"] = "Actions multiples"; +$a->strings["View all contacts"] = "Voir tous les contacts"; +$a->strings["View all common friends"] = "Voir tous les amis communs"; +$a->strings["Advanced Contact Settings"] = "Réglages avancés du contact"; +$a->strings["Mutual Friendship"] = "Relation réciproque"; +$a->strings["is a fan of yours"] = "Vous suit"; +$a->strings["you are a fan of"] = "Vous le/la suivez"; +$a->strings["Toggle Blocked status"] = "(dés)activer l'état \"bloqué\""; +$a->strings["Toggle Ignored status"] = "(dés)activer l'état \"ignoré\""; +$a->strings["Toggle Archive status"] = "(dés)activer l'état \"archivé\""; +$a->strings["Delete contact"] = "Effacer ce contact"; +$a->strings["Profile not found."] = "Profil introuvable."; +$a->strings["This may occasionally happen if contact was requested by both persons and it has already been approved."] = "Ceci peut se produire lorsque le contact a été requis par les deux personnes et a déjà été approuvé."; +$a->strings["Response from remote site was not understood."] = "Réponse du site distant incomprise."; +$a->strings["Unexpected response from remote site: "] = "Réponse inattendue du site distant : "; +$a->strings["Confirmation completed successfully."] = "Confirmation achevée avec succès."; +$a->strings["Remote site reported: "] = "Alerte du site distant : "; +$a->strings["Temporary failure. Please wait and try again."] = "Échec temporaire. Merci de recommencer ultérieurement."; +$a->strings["Introduction failed or was revoked."] = "Introduction échouée ou annulée."; +$a->strings["Unable to set contact photo."] = "Impossible de définir la photo du contact."; +$a->strings["No user record found for '%s' "] = "Pas d'utilisateur trouvé pour '%s' "; +$a->strings["Our site encryption key is apparently messed up."] = "Notre clé de chiffrement de site est apparemment corrompue."; +$a->strings["Empty site URL was provided or URL could not be decrypted by us."] = "URL de site absente ou indéchiffrable."; +$a->strings["Contact record was not found for you on our site."] = "Pas d'entrée pour ce contact sur notre site."; +$a->strings["Site public key not available in contact record for URL %s."] = "La clé publique du site ne se trouve pas dans l'enregistrement du contact pour l'URL %s."; +$a->strings["The ID provided by your system is a duplicate on our system. It should work if you try again."] = "L'identifiant fourni par votre système fait doublon sur le notre. Cela peut fonctionner si vous réessayez."; +$a->strings["Unable to set your contact credentials on our system."] = "Impossible de vous définir des permissions sur notre système."; +$a->strings["Unable to update your contact profile details on our system"] = "Impossible de mettre les détails de votre profil à jour sur notre système"; +$a->strings["%1\$s has joined %2\$s"] = "%1\$s a rejoint %2\$s"; $a->strings["People Search - %s"] = "Recherche de personne - %s"; -$a->strings["No matches"] = "Aucune correspondance"; -$a->strings["Photos"] = "Photos"; -$a->strings["Contact Photos"] = "Photos du contact"; -$a->strings["Files"] = "Fichiers"; -$a->strings["Contacts who are not members of a group"] = "Contacts qui n’appartiennent à aucun groupe"; +$a->strings["Forum Search - %s"] = "Recherche de Forum - %s"; +$a->strings["Friend suggestion sent."] = "Suggestion d'amitié/contact envoyée."; +$a->strings["Suggest Friends"] = "Suggérer des amis/contacts"; +$a->strings["Suggest a friend for %s"] = "Suggérer un ami/contact pour %s"; +$a->strings["Unable to locate original post."] = "Impossible de localiser la publication originale."; +$a->strings["Empty post discarded."] = "Publication vide rejetée."; +$a->strings["System error. Post not saved."] = "Erreur système. Publication non sauvée."; +$a->strings["This message was sent to you by %s, a member of the Friendica social network."] = "Ce message vous a été envoyé par %s, membre du réseau social Friendica."; +$a->strings["You may visit them online at %s"] = "Vous pouvez leur rendre visite sur %s"; +$a->strings["Please contact the sender by replying to this post if you do not wish to receive these messages."] = "Merci de contacter l’émetteur en répondant à cette publication si vous ne souhaitez pas recevoir ces messages."; +$a->strings["%s posted an update."] = "%s a publié une mise à jour."; +$a->strings["Mood"] = "Humeur"; +$a->strings["Set your current mood and tell your friends"] = "Spécifiez votre humeur du moment, et informez vos amis"; +$a->strings["Poke/Prod"] = "Solliciter"; +$a->strings["poke, prod or do other things to somebody"] = "solliciter (poke/...) quelqu'un"; +$a->strings["Recipient"] = "Destinataire"; +$a->strings["Choose what you wish to do to recipient"] = "Choisissez ce que vous voulez faire au destinataire"; +$a->strings["Make this post private"] = "Rendez ce message privé"; +$a->strings["Image uploaded but image cropping failed."] = "Image envoyée, mais impossible de la retailler."; +$a->strings["Image size reduction [%s] failed."] = "Réduction de la taille de l'image [%s] échouée."; +$a->strings["Shift-reload the page or clear browser cache if the new photo does not display immediately."] = "Rechargez la page avec la touche Maj pressée, ou bien effacez le cache du navigateur, si d'aventure la nouvelle photo n'apparaissait pas immédiatement."; +$a->strings["Unable to process image"] = "Impossible de traiter l'image"; +$a->strings["Upload File:"] = "Fichier à téléverser:"; +$a->strings["Select a profile:"] = "Choisir un profil:"; +$a->strings["Upload"] = "Téléverser"; +$a->strings["or"] = "ou"; +$a->strings["skip this step"] = "ignorer cette étape"; +$a->strings["select a photo from your photo albums"] = "choisissez une photo depuis vos albums"; +$a->strings["Crop Image"] = "(Re)cadrer l'image"; +$a->strings["Please adjust the image cropping for optimum viewing."] = "Ajustez le cadre de l'image pour une visualisation optimale."; +$a->strings["Done Editing"] = "Édition terminée"; +$a->strings["Image uploaded successfully."] = "Image téléversée avec succès."; +$a->strings["Profile deleted."] = "Profil supprimé."; +$a->strings["Profile-"] = "Profil-"; +$a->strings["New profile created."] = "Nouveau profil créé."; +$a->strings["Profile unavailable to clone."] = "Ce profil ne peut être cloné."; +$a->strings["Profile Name is required."] = "Le nom du profil est requis."; +$a->strings["Marital Status"] = "Statut marital"; +$a->strings["Romantic Partner"] = "Partenaire / conjoint"; +$a->strings["Work/Employment"] = "Travail / Occupation"; +$a->strings["Religion"] = "Religion"; +$a->strings["Political Views"] = "Tendance politique"; +$a->strings["Gender"] = "Sexe"; +$a->strings["Sexual Preference"] = "Préférence sexuelle"; +$a->strings["Homepage"] = "Site internet"; +$a->strings["Interests"] = "Centres d'intérêt"; +$a->strings["Address"] = "Adresse"; +$a->strings["Location"] = "Localisation"; +$a->strings["Profile updated."] = "Profil mis à jour."; +$a->strings[" and "] = " et "; +$a->strings["public profile"] = "profil public"; +$a->strings["%1\$s changed %2\$s to “%3\$s”"] = "%1\$s a changé %2\$s en “%3\$s”"; +$a->strings[" - Visit %1\$s's %2\$s"] = "Visiter le %2\$s de %1\$s"; +$a->strings["%1\$s has an updated %2\$s, changing %3\$s."] = "%1\$s a mis à jour son %2\$s, en modifiant %3\$s."; +$a->strings["Hide contacts and friends:"] = "Cacher mes contacts et amis :"; +$a->strings["Hide your contact/friend list from viewers of this profile?"] = "Cacher ma liste d'amis / contacts des visiteurs de ce profil ?"; +$a->strings["Show more profile fields:"] = "Afficher plus d'infos de profil:"; +$a->strings["Profile Actions"] = "Actions de Profil"; +$a->strings["Edit Profile Details"] = "Éditer les détails du profil"; +$a->strings["Change Profile Photo"] = "Changer la photo du profil"; +$a->strings["View this profile"] = "Voir ce profil"; +$a->strings["Create a new profile using these settings"] = "Créer un nouveau profil en utilisant ces réglages"; +$a->strings["Clone this profile"] = "Cloner ce profil"; +$a->strings["Delete this profile"] = "Supprimer ce profil"; +$a->strings["Basic information"] = "Information de base"; +$a->strings["Profile picture"] = "Image de profil"; +$a->strings["Preferences"] = "Préférences"; +$a->strings["Status information"] = "Information sur le statut"; +$a->strings["Additional information"] = "Information additionnelle"; +$a->strings["Relation"] = "Relation"; +$a->strings["Your Gender:"] = "Votre genre :"; +$a->strings[" Marital Status:"] = " Statut marital :"; +$a->strings["Example: fishing photography software"] = "Exemple : football dessin programmation"; +$a->strings["Profile Name:"] = "Nom du profil :"; +$a->strings["Required"] = "Requis"; +$a->strings["This is your public profile.
      It may be visible to anybody using the internet."] = "Ceci est votre profil public.
      Il peut être visible par n'importe quel utilisateur d'Internet."; +$a->strings["Your Full Name:"] = "Votre nom complet :"; +$a->strings["Title/Description:"] = "Titre / Description :"; +$a->strings["Street Address:"] = "Adresse postale :"; +$a->strings["Locality/City:"] = "Ville / Localité :"; +$a->strings["Region/State:"] = "Région / État :"; +$a->strings["Postal/Zip Code:"] = "Code postal :"; +$a->strings["Country:"] = "Pays :"; +$a->strings["Who: (if applicable)"] = "Qui : (si pertinent)"; +$a->strings["Examples: cathy123, Cathy Williams, cathy@example.com"] = "Exemples: cathy123, Cathy Williams, cathy@example.com"; +$a->strings["Since [date]:"] = "Depuis [date] :"; +$a->strings["Tell us about yourself..."] = "Parlez-nous de vous..."; +$a->strings["Homepage URL:"] = "Page personnelle :"; +$a->strings["Religious Views:"] = "Opinions religieuses :"; +$a->strings["Public Keywords:"] = "Mots-clés publics :"; +$a->strings["(Used for suggesting potential friends, can be seen by others)"] = "(Utilisés pour vous suggérer des amis potentiels, peuvent être vus par autrui)"; +$a->strings["Private Keywords:"] = "Mots-clés privés :"; +$a->strings["(Used for searching profiles, never shown to others)"] = "(Utilisés pour rechercher dans les profils, ne seront jamais montrés à autrui)"; +$a->strings["Musical interests"] = "Goûts musicaux"; +$a->strings["Books, literature"] = "Lectures"; +$a->strings["Television"] = "Télévision"; +$a->strings["Film/dance/culture/entertainment"] = "Cinéma / Danse / Culture / Divertissement"; +$a->strings["Hobbies/Interests"] = "Passe-temps / Centres d'intérêt"; +$a->strings["Love/romance"] = "Amour / Romance"; +$a->strings["Work/employment"] = "Activité professionnelle / Occupation"; +$a->strings["School/education"] = "Études / Formation"; +$a->strings["Contact information and Social Networks"] = "Coordonnées / Réseaux sociaux"; +$a->strings["Edit/Manage Profiles"] = "Editer / gérer les profils"; +$a->strings["Registration successful. Please check your email for further instructions."] = "Inscription réussie. Vérifiez vos emails pour la suite des instructions."; +$a->strings["Failed to send email message. Here your accout details:
      login: %s
      password: %s

      You can change your password after login."] = "Impossible d’envoyer le courriel de confirmation. Voici vos informations de connexion:
      identifiant : %s
      mot de passe : %s

      Vous pourrez changer votre mot de passe une fois connecté."; +$a->strings["Registration successful."] = "Inscription réussie."; +$a->strings["Your registration can not be processed."] = "Votre inscription ne peut être traitée."; +$a->strings["Your registration is pending approval by the site owner."] = "Votre inscription attend une validation du propriétaire du site."; +$a->strings["You may (optionally) fill in this form via OpenID by supplying your OpenID and clicking 'Register'."] = "Vous pouvez (si vous le souhaitez) remplir ce formulaire via OpenID. Fournissez votre OpenID et cliquez \"S'inscrire\"."; +$a->strings["If you are not familiar with OpenID, please leave that field blank and fill in the rest of the items."] = "Si vous n'êtes pas familier avec OpenID, laissez ce champ vide et remplissez le reste."; +$a->strings["Your OpenID (optional): "] = "Votre OpenID (facultatif): "; +$a->strings["Include your profile in member directory?"] = "Inclure votre profil dans l'annuaire des membres?"; +$a->strings["Membership on this site is by invitation only."] = "L'inscription à ce site se fait uniquement sur invitation."; +$a->strings["Your invitation ID: "] = "Votre ID d'invitation: "; +$a->strings["Registration"] = "Inscription"; +$a->strings["Your Full Name (e.g. Joe Smith, real or real-looking): "] = "Votre nom complet (p. ex. Michel Dupont):"; +$a->strings["Your Email Address: "] = "Votre adresse courriel: "; +$a->strings["New Password:"] = "Nouveau mot de passe:"; +$a->strings["Leave empty for an auto generated password."] = "Laisser ce champ libre pour obtenir un mot de passe généré automatiquement."; +$a->strings["Confirm:"] = "Confirmer:"; +$a->strings["Choose a profile nickname. This must begin with a text character. Your profile address on this site will then be 'nickname@\$sitename'."] = "Choisissez un pseudo. Celui devra commencer par une lettre. L'adresse de votre profil en découlera sous la forme '<strong>pseudo@\$sitename</strong>'."; +$a->strings["Choose a nickname: "] = "Choisir un pseudo: "; +$a->strings["Import your profile to this friendica instance"] = "Importer votre profile dans cette instance de friendica"; +$a->strings["Account approved."] = "Inscription validée."; +$a->strings["Registration revoked for %s"] = "Inscription révoquée pour %s"; +$a->strings["Please login."] = "Merci de vous connecter."; +$a->strings["everybody"] = "tout le monde"; +$a->strings["Account"] = "Compte"; +$a->strings["Additional features"] = "Fonctions supplémentaires"; +$a->strings["Display"] = "Afficher"; +$a->strings["Social Networks"] = "Réseaux sociaux"; +$a->strings["Plugins"] = "Extensions"; +$a->strings["Connected apps"] = "Applications connectées"; +$a->strings["Remove account"] = "Supprimer le compte"; +$a->strings["Missing some important data!"] = "Il manque certaines informations importantes!"; +$a->strings["Failed to connect with email account using the settings provided."] = "Impossible de se connecter au compte courriel configuré."; +$a->strings["Email settings updated."] = "Réglages de courriel mis-à-jour."; +$a->strings["Features updated"] = "Fonctionnalités mises à jour"; +$a->strings["Relocate message has been send to your contacts"] = "Un message de relocalisation a été envoyé à vos contacts."; +$a->strings["Empty passwords are not allowed. Password unchanged."] = "Les mots de passe vides sont interdits. Aucun changement appliqué."; +$a->strings["Wrong password."] = "Mauvais mot de passe."; +$a->strings["Password changed."] = "Mots de passe changés."; +$a->strings["Password update failed. Please try again."] = "Le changement de mot de passe a échoué. Merci de recommencer."; +$a->strings[" Please use a shorter name."] = " Merci d'utiliser un nom plus court."; +$a->strings[" Name too short."] = " Nom trop court."; +$a->strings["Wrong Password"] = "Mauvais mot de passe"; +$a->strings[" Not valid email."] = " Email invalide."; +$a->strings[" Cannot change to that email."] = " Impossible de changer pour cet email."; +$a->strings["Private forum has no privacy permissions. Using default privacy group."] = "Ce forum privé n'a pas de paramètres de vie privée. Utilisation des paramètres de confidentialité par défaut."; +$a->strings["Private forum has no privacy permissions and no default privacy group."] = "Ce forum privé n'a pas de paramètres de vie privée ni de paramètres de confidentialité par défaut."; +$a->strings["Settings updated."] = "Réglages mis à jour."; +$a->strings["Add application"] = "Ajouter une application"; +$a->strings["Save Settings"] = "Sauvegarder les paramétres"; +$a->strings["Consumer Key"] = "Clé utilisateur"; +$a->strings["Consumer Secret"] = "Secret utilisateur"; +$a->strings["Redirect"] = "Rediriger"; +$a->strings["Icon url"] = "URL de l'icône"; +$a->strings["You can't edit this application."] = "Vous ne pouvez pas éditer cette application."; +$a->strings["Connected Apps"] = "Applications connectées"; +$a->strings["Client key starts with"] = "La clé cliente commence par"; +$a->strings["No name"] = "Sans nom"; +$a->strings["Remove authorization"] = "Révoquer l'autorisation"; +$a->strings["No Plugin settings configured"] = "Pas de réglages d'extensions configurés"; +$a->strings["Plugin Settings"] = "Extensions"; +$a->strings["Off"] = "Éteint"; +$a->strings["On"] = "Allumé"; +$a->strings["Additional Features"] = "Fonctions supplémentaires"; +$a->strings["General Social Media Settings"] = "Paramètres généraux des réseaux sociaux"; +$a->strings["Disable intelligent shortening"] = "Désactiver la réduction d'URL"; +$a->strings["Normally the system tries to find the best link to add to shortened posts. If this option is enabled then every shortened post will always point to the original friendica post."] = "Normalement, le système tente de trouver le meilleur lien à ajouter aux publications raccourcies. Si cette option est activée, les publications raccourcies dirigeront toujours vers leur publication d'origine sur Friendica."; +$a->strings["Automatically follow any GNU Social (OStatus) followers/mentioners"] = "Suivre automatiquement ceux qui me suivent ou me mentionnent sur GNU Social (OStatus)"; +$a->strings["If you receive a message from an unknown OStatus user, this option decides what to do. If it is checked, a new contact will be created for every unknown user."] = "Si vous recevez un message d'un utilisateur OStatus inconnu, cette option détermine ce qui sera fait. Si elle est cochée, un nouveau contact sera créé pour chaque utilisateur inconnu."; +$a->strings["Default group for OStatus contacts"] = "Groupe par défaut pour les contacts OStatus"; +$a->strings["Your legacy GNU Social account"] = "Le compte GNU Social que vous avez déjà"; +$a->strings["If you enter your old GNU Social/Statusnet account name here (in the format user@domain.tld), your contacts will be added automatically. The field will be emptied when done."] = "Si vous entrez le nom de votre ancien compte GNU Social / StatusNet ici (utiliser le format utilisateur@domaine.tld), vos contacts seront ajoutés automatiquement. Le champ sera vidé lorsque ce sera terminé."; +$a->strings["Repair OStatus subscriptions"] = "Réparer les abonnements OStatus"; +$a->strings["Built-in support for %s connectivity is %s"] = "Le support natif pour la connectivité %s est %s"; +$a->strings["enabled"] = "activé"; +$a->strings["disabled"] = "désactivé"; +$a->strings["GNU Social (OStatus)"] = "GNU Social (OStatus)"; +$a->strings["Email access is disabled on this site."] = "L'accès courriel est désactivé sur ce site."; +$a->strings["Email/Mailbox Setup"] = "Réglages de courriel/boîte à lettre"; +$a->strings["If you wish to communicate with email contacts using this service (optional), please specify how to connect to your mailbox."] = "Si vous souhaitez communiquer avec vos contacts \"courriel\" (facultatif), merci de nous indiquer comment vous connecter à votre boîte."; +$a->strings["Last successful email check:"] = "Dernière vérification réussie des courriels:"; +$a->strings["IMAP server name:"] = "Nom du serveur IMAP:"; +$a->strings["IMAP port:"] = "Port IMAP:"; +$a->strings["Security:"] = "Sécurité:"; +$a->strings["None"] = "Aucun(e)"; +$a->strings["Email login name:"] = "Nom de connexion:"; +$a->strings["Email password:"] = "Mot de passe:"; +$a->strings["Reply-to address:"] = "Adresse de réponse:"; +$a->strings["Send public posts to all email contacts:"] = "Envoyer les publications publiques à tous les contacts courriels:"; +$a->strings["Action after import:"] = "Action après import:"; +$a->strings["Move to folder"] = "Déplacer vers"; +$a->strings["Move to folder:"] = "Déplacer vers:"; +$a->strings["No special theme for mobile devices"] = "Pas de thème particulier pour les terminaux mobiles"; +$a->strings["Display Settings"] = "Affichage"; +$a->strings["Display Theme:"] = "Thème d'affichage:"; +$a->strings["Mobile Theme:"] = "Thème mobile:"; +$a->strings["Update browser every xx seconds"] = "Mettre-à-jour l'affichage toutes les xx secondes"; +$a->strings["Minimum of 10 seconds. Enter -1 to disable it."] = "Minimum de 10 secondes. Saisir -1 pour désactiver."; +$a->strings["Number of items to display per page:"] = "Nombre d’éléments par page:"; +$a->strings["Maximum of 100 items"] = "Maximum de 100 éléments"; +$a->strings["Number of items to display per page when viewed from mobile device:"] = "Nombre d'éléments a afficher par page pour un appareil mobile"; +$a->strings["Don't show emoticons"] = "Ne pas afficher les émoticônes (smileys grahiques)"; +$a->strings["Calendar"] = "Calendrier"; +$a->strings["Beginning of week:"] = "Début de la semaine :"; +$a->strings["Don't show notices"] = "Ne plus afficher les avis"; +$a->strings["Infinite scroll"] = "Défilement infini"; +$a->strings["Automatic updates only at the top of the network page"] = "Mises à jour automatiques seulement en haut de la page du réseau."; +$a->strings["General Theme Settings"] = "Paramètres généraux de thème"; +$a->strings["Custom Theme Settings"] = "Paramètres personnalisés de thème"; +$a->strings["Content Settings"] = "Paramètres de contenu"; +$a->strings["Theme settings"] = "Réglages du thème graphique"; +$a->strings["User Types"] = "Types d'utilisateurs"; +$a->strings["Community Types"] = "Genre de communautés"; +$a->strings["Normal Account Page"] = "Compte normal"; +$a->strings["This account is a normal personal profile"] = "Ce compte correspond à un profil normal, pour une seule personne (physique, généralement)"; +$a->strings["Soapbox Page"] = "Compte \"boîte à savon\""; +$a->strings["Automatically approve all connection/friend requests as read-only fans"] = "Accepter automatiquement toutes les demandes d'amitié/connexion comme étant des fans 'en lecture seule'"; +$a->strings["Community Forum/Celebrity Account"] = "Compte de communauté/célébrité"; +$a->strings["Automatically approve all connection/friend requests as read-write fans"] = "Accepter automatiquement toutes les demandes d'amitié/connexion comme étant des fans en 'lecture/écriture'"; +$a->strings["Automatic Friend Page"] = "Compte d'\"amitié automatique\""; +$a->strings["Automatically approve all connection/friend requests as friends"] = "Accepter automatiquement toutes les demandes d'amitié/connexion comme étant des amis"; +$a->strings["Private Forum [Experimental]"] = "Forum privé [expérimental]"; +$a->strings["Private forum - approved members only"] = "Forum privé - modéré en inscription"; +$a->strings["OpenID:"] = "OpenID:"; +$a->strings["(Optional) Allow this OpenID to login to this account."] = "&nbsp;(Facultatif) Autoriser cet OpenID à se connecter à ce compte."; +$a->strings["Publish your default profile in your local site directory?"] = "Publier votre profil par défaut sur l'annuaire local de ce site?"; +$a->strings["Publish your default profile in the global social directory?"] = "Publier votre profil par défaut sur l'annuaire social global?"; +$a->strings["Hide your contact/friend list from viewers of your default profile?"] = "Cacher votre liste de contacts/amis des visiteurs de votre profil par défaut?"; +$a->strings["If enabled, posting public messages to Diaspora and other networks isn't possible."] = "Si activé, il est impossible de publier les messages publics sur Diaspora et autres réseaux."; +$a->strings["Allow friends to post to your profile page?"] = "Autoriser vos amis à publier sur votre profil?"; +$a->strings["Allow friends to tag your posts?"] = "Autoriser vos amis à étiqueter vos publications?"; +$a->strings["Allow us to suggest you as a potential friend to new members?"] = "Autoriser les suggestions d'amis potentiels aux nouveaux arrivants?"; +$a->strings["Permit unknown people to send you private mail?"] = "Autoriser les messages privés d'inconnus?"; +$a->strings["Profile is not published."] = "Ce profil n'est pas publié."; +$a->strings["Your Identity Address is '%s' or '%s'."] = "L’adresse de votre identité est '%s' or '%s'."; +$a->strings["Automatically expire posts after this many days:"] = "Les publications expirent automatiquement après (en jours) :"; +$a->strings["If empty, posts will not expire. Expired posts will be deleted"] = "Si ce champ est vide, les publications n'expireront pas. Les publications expirées seront supprimées"; +$a->strings["Advanced expiration settings"] = "Réglages avancés de l'expiration"; +$a->strings["Advanced Expiration"] = "Expiration (avancé)"; +$a->strings["Expire posts:"] = "Faire expirer les publications:"; +$a->strings["Expire personal notes:"] = "Faire expirer les notes personnelles:"; +$a->strings["Expire starred posts:"] = "Faire expirer les publications marqués:"; +$a->strings["Expire photos:"] = "Faire expirer les photos:"; +$a->strings["Only expire posts by others:"] = "Faire expirer seulement les publications des autres:"; +$a->strings["Account Settings"] = "Compte"; +$a->strings["Password Settings"] = "Réglages de mot de passe"; +$a->strings["Leave password fields blank unless changing"] = "Laissez les champs de mot de passe vierges, sauf si vous désirez les changer"; +$a->strings["Current Password:"] = "Mot de passe actuel:"; +$a->strings["Your current password to confirm the changes"] = "Votre mot de passe actuel pour confirmer les modifications"; +$a->strings["Password:"] = "Mot de passe:"; +$a->strings["Basic Settings"] = "Réglages basiques"; +$a->strings["Email Address:"] = "Adresse courriel:"; +$a->strings["Your Timezone:"] = "Votre fuseau horaire:"; +$a->strings["Your Language:"] = "Votre langue :"; +$a->strings["Set the language we use to show you friendica interface and to send you emails"] = "Détermine la langue que nous utilisons pour afficher votre interface Friendica et pour vous envoyer des courriels"; +$a->strings["Default Post Location:"] = "Emplacement de publication par défaut:"; +$a->strings["Use Browser Location:"] = "Utiliser la localisation géographique du navigateur:"; +$a->strings["Security and Privacy Settings"] = "Réglages de sécurité et vie privée"; +$a->strings["Maximum Friend Requests/Day:"] = "Nombre maximal de requêtes d'amitié/jour:"; +$a->strings["(to prevent spam abuse)"] = "(pour limiter l'impact du spam)"; +$a->strings["Default Post Permissions"] = "Permissions de publication par défaut"; +$a->strings["(click to open/close)"] = "(cliquer pour ouvrir/fermer)"; +$a->strings["Show to Groups"] = "Montrer aux groupes"; +$a->strings["Show to Contacts"] = "Montrer aux Contacts"; +$a->strings["Default Private Post"] = "Message privé par défaut"; +$a->strings["Default Public Post"] = "Message publique par défaut"; +$a->strings["Default Permissions for New Posts"] = "Permissions par défaut pour les nouvelles publications"; +$a->strings["Maximum private messages per day from unknown people:"] = "Maximum de messages privés d'inconnus par jour:"; +$a->strings["Notification Settings"] = "Réglages de notification"; +$a->strings["By default post a status message when:"] = "Par défaut, poster un statut quand:"; +$a->strings["accepting a friend request"] = "j'accepte un ami"; +$a->strings["joining a forum/community"] = "joignant un forum/une communauté"; +$a->strings["making an interesting profile change"] = "je fais une modification intéressante de mon profil"; +$a->strings["Send a notification email when:"] = "Envoyer un courriel de notification quand:"; +$a->strings["You receive an introduction"] = "Vous recevez une introduction"; +$a->strings["Your introductions are confirmed"] = "Vos introductions sont confirmées"; +$a->strings["Someone writes on your profile wall"] = "Quelqu'un écrit sur votre mur"; +$a->strings["Someone writes a followup comment"] = "Quelqu'un vous commente"; +$a->strings["You receive a private message"] = "Vous recevez un message privé"; +$a->strings["You receive a friend suggestion"] = "Vous avez reçu une suggestion d'ami"; +$a->strings["You are tagged in a post"] = "Vous avez été étiquetté dans une publication"; +$a->strings["You are poked/prodded/etc. in a post"] = "Vous avez été sollicité dans une publication"; +$a->strings["Activate desktop notifications"] = "Activer les notifications de bureau"; +$a->strings["Show desktop popup on new notifications"] = "Afficher dans des pops-ups les nouvelles notifications"; +$a->strings["Text-only notification emails"] = "Courriels de notification en format texte"; +$a->strings["Send text only notification emails, without the html part"] = "Envoyer le texte des courriels de notification, sans la composante html"; +$a->strings["Advanced Account/Page Type Settings"] = "Paramètres avancés de compte/page"; +$a->strings["Change the behaviour of this account for special situations"] = "Modifier le comportement de ce compte dans certaines situations"; +$a->strings["Relocate"] = "Relocaliser"; +$a->strings["If you have moved this profile from another server, and some of your contacts don't receive your updates, try pushing this button."] = "Si vous avez migré ce profil depuis un autre serveur et que vos contacts ne reçoivent plus vos mises à jour, essayez ce bouton."; +$a->strings["Resend relocate message to contacts"] = "Renvoyer un message de relocalisation aux contacts."; +$a->strings["Do you really want to delete this video?"] = "Voulez-vous vraiment supprimer cette vidéo?"; +$a->strings["Delete Video"] = "Supprimer la vidéo"; +$a->strings["No videos selected"] = "Pas de vidéo sélectionné"; +$a->strings["Access to this item is restricted."] = "Accès restreint à cet élément."; +$a->strings["View Album"] = "Voir l'album"; +$a->strings["Recent Videos"] = "Vidéos récente"; +$a->strings["Upload New Videos"] = "Téléversé une nouvelle vidéo"; +$a->strings["Friendica Communications Server - Setup"] = "Serveur de communications Friendica - Configuration"; +$a->strings["Could not connect to database."] = "Impossible de se connecter à la base."; +$a->strings["Could not create table."] = "Impossible de créer une table."; +$a->strings["Your Friendica site database has been installed."] = "La base de données de votre site Friendica a bien été installée."; +$a->strings["You may need to import the file \"database.sql\" manually using phpmyadmin or mysql."] = "Vous pourriez avoir besoin d'importer le fichier \"database.sql\" manuellement au moyen de phpmyadmin ou de la commande mysql."; +$a->strings["Please see the file \"INSTALL.txt\"."] = "Référez-vous au fichier \"INSTALL.txt\"."; +$a->strings["Database already in use."] = "Base de données déjà en cours d'utilisation."; +$a->strings["System check"] = "Vérifications système"; +$a->strings["Next"] = "Suivant"; +$a->strings["Check again"] = "Vérifier à nouveau"; +$a->strings["Database connection"] = "Connexion à la base de données"; +$a->strings["In order to install Friendica we need to know how to connect to your database."] = "Pour installer Friendica, nous avons besoin de savoir comment contacter votre base de données."; +$a->strings["Please contact your hosting provider or site administrator if you have questions about these settings."] = "Merci de vous tourner vers votre hébergeur et/ou administrateur pour toute question concernant ces réglages."; +$a->strings["The database you specify below should already exist. If it does not, please create it before continuing."] = "La base de données que vous spécifierez doit exister. Si ce n'est pas encore le cas, merci de la créer avant de continuer."; +$a->strings["Database Server Name"] = "Serveur de base de données"; +$a->strings["Database Login Name"] = "Nom d'utilisateur de la base"; +$a->strings["Database Login Password"] = "Mot de passe de la base"; +$a->strings["Database Name"] = "Nom de la base"; +$a->strings["Site administrator email address"] = "Adresse électronique de l'administrateur du site"; +$a->strings["Your account email address must match this in order to use the web admin panel."] = "Votre adresse électronique doit correspondre à celle-ci pour pouvoir utiliser l'interface d'administration."; +$a->strings["Please select a default timezone for your website"] = "Sélectionner un fuseau horaire par défaut pour votre site"; +$a->strings["Site settings"] = "Réglages du site"; +$a->strings["System Language:"] = "Langue système:"; +$a->strings["Set the default language for your Friendica installation interface and to send emails."] = "Définit la langue par défaut pour l'interface de votre instance Friendica et les mails envoyés."; +$a->strings["Could not find a command line version of PHP in the web server PATH."] = "Impossible de trouver la version \"ligne de commande\" de PHP dans le PATH du serveur web."; +$a->strings["If you don't have a command line version of PHP installed on server, you will not be able to run background polling via cron. See 'Setup the poller'"] = "Si vous n'avez pas une version en ligne de commande de PHP sur votre serveur, vous ne pourrez pas exécuter l'attente active ou « polling » en arrière-plan via cron. Voir 'Setup the poller'."; +$a->strings["PHP executable path"] = "Chemin vers l'exécutable de PHP"; +$a->strings["Enter full path to php executable. You can leave this blank to continue the installation."] = "Entrez le chemin (absolu) vers l'exécutable 'php'. Vous pouvez laisser cette ligne vide pour continuer l'installation."; +$a->strings["Command line PHP"] = "Version \"ligne de commande\" de PHP"; +$a->strings["PHP executable is not the php cli binary (could be cgi-fgci version)"] = "L'executable PHP n'est pas le binaire php client (c'est peut être la version cgi-fcgi)"; +$a->strings["Found PHP version: "] = "Version de PHP:"; +$a->strings["PHP cli binary"] = "PHP cli binary"; +$a->strings["The command line version of PHP on your system does not have \"register_argc_argv\" enabled."] = "La version \"ligne de commande\" de PHP de votre système n'a pas \"register_argc_argv\" d'activé."; +$a->strings["This is required for message delivery to work."] = "Ceci est requis pour que la livraison des messages fonctionne."; +$a->strings["PHP register_argc_argv"] = "PHP register_argc_argv"; +$a->strings["Error: the \"openssl_pkey_new\" function on this system is not able to generate encryption keys"] = "Erreur: la fonction \"openssl_pkey_new\" de ce système ne permet pas de générer des clés de chiffrement"; +$a->strings["If running under Windows, please see \"http://www.php.net/manual/en/openssl.installation.php\"."] = "Si vous utilisez Windows, merci de vous réferer à \"http://www.php.net/manual/en/openssl.installation.php\"."; +$a->strings["Generate encryption keys"] = "Générer les clés de chiffrement"; +$a->strings["libCurl PHP module"] = "Module libCurl de PHP"; +$a->strings["GD graphics PHP module"] = "Module GD (graphiques) de PHP"; +$a->strings["OpenSSL PHP module"] = "Module OpenSSL de PHP"; +$a->strings["mysqli PHP module"] = "Module Mysqli de PHP"; +$a->strings["mb_string PHP module"] = "Module mb_string de PHP"; +$a->strings["mcrypt PHP module"] = "Module PHP mcrypt"; +$a->strings["XML PHP module"] = "Module PHP XML"; +$a->strings["iconv module"] = "Module iconv"; +$a->strings["Apache mod_rewrite module"] = "Module mod_rewrite Apache"; +$a->strings["Error: Apache webserver mod-rewrite module is required but not installed."] = "Erreur : Le module \"rewrite\" du serveur web Apache est requis mais pas installé."; +$a->strings["Error: libCURL PHP module required but not installed."] = "Erreur : Le module PHP \"libCURL\" est requis mais pas installé."; +$a->strings["Error: GD graphics PHP module with JPEG support required but not installed."] = "Erreur : Le module PHP \"GD\" disposant du support JPEG est requis mais pas installé."; +$a->strings["Error: openssl PHP module required but not installed."] = "Erreur : Le module PHP \"openssl\" est requis mais pas installé."; +$a->strings["Error: mysqli PHP module required but not installed."] = "Erreur : Le module PHP \"mysqli\" est requis mais pas installé."; +$a->strings["Error: mb_string PHP module required but not installed."] = "Erreur : le module PHP mb_string est requis mais pas installé."; +$a->strings["Error: mcrypt PHP module required but not installed."] = "Erreur : le module PHP mcrypt est nécessaire, mais n'es pas installé."; +$a->strings["Error: iconv PHP module required but not installed."] = "Erreur : Le module PHP iconv requis est absent."; +$a->strings["If you are using php_cli, please make sure that mcrypt module is enabled in its config file"] = "Si vous utilisez php_cli, veuillez vous assurer que le module mcrypt est activé dans le fichier de configuration"; +$a->strings["Function mcrypt_create_iv() is not defined. This is needed to enable RINO2 encryption layer."] = "La fonction mcrypt_create_iv() n'est pas définie. Elle est requise pour activer le chiffrement RINO2."; +$a->strings["mcrypt_create_iv() function"] = "fonction mcrypt_create_iv()"; +$a->strings["Error, XML PHP module required but not installed."] = "Erreur : le module PHP XML requis est absent."; +$a->strings["The web installer needs to be able to create a file called \".htconfig.php\" in the top folder of your web server and it is unable to do so."] = "L'installeur web doit être en mesure de créer un fichier \".htconfig.php\" à la racine de votre serveur web, mais il en est incapable."; +$a->strings["This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can."] = "Le plus souvent, il s'agit d'un problème de permission. Le serveur web peut ne pas être capable d'écrire dans votre répertoire - alors que vous-même le pouvez."; +$a->strings["At the end of this procedure, we will give you a text to save in a file named .htconfig.php in your Friendica top folder."] = "A la fin de cette étape, nous vous fournirons un texte à sauvegarder dans un fichier nommé .htconfig.php à la racine de votre répertoire Friendica."; +$a->strings["You can alternatively skip this procedure and perform a manual installation. Please see the file \"INSTALL.txt\" for instructions."] = "Vous pouvez également sauter cette étape et procéder à une installation manuelle. Pour cela, merci de lire le fichier \"INSTALL.txt\"."; +$a->strings[".htconfig.php is writable"] = "Fichier .htconfig.php accessible en écriture"; +$a->strings["Friendica uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering."] = "Friendica utilise le moteur de modèles Smarty3 pour le rendu d'affichage web. Smarty3 compile les modèles en PHP pour accélérer le rendu."; +$a->strings["In order to store these compiled templates, the web server needs to have write access to the directory view/smarty3/ under the Friendica top level folder."] = "Pour pouvoir stocker ces modèles compilés, le serveur internet doit avoir accès au droit d'écriture pour le répertoire view/smarty3/ sous le dossier racine de Friendica."; +$a->strings["Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder."] = "Veuillez vous assurer que l'utilisateur qui exécute votre serveur internet (p. ex. www-data) détient le droit d'accès en écriture sur ce dossier."; +$a->strings["Note: as a security measure, you should give the web server write access to view/smarty3/ only--not the template files (.tpl) that it contains."] = "Note: pour plus de sécurité, vous devriez ne donner le droit d'accès en écriture qu'à view/smarty3/ et pas aux fichiers modèles (.tpl) qu'il contient."; +$a->strings["view/smarty3 is writable"] = "view/smarty3 est autorisé à l écriture"; +$a->strings["Url rewrite in .htaccess is not working. Check your server configuration."] = "La réécriture d'URL dans le fichier .htaccess ne fonctionne pas. Vérifiez la configuration de votre serveur."; +$a->strings["Url rewrite is working"] = "La réécriture d'URL fonctionne."; +$a->strings["ImageMagick PHP extension is installed"] = "L’extension PHP ImageMagick est installée"; +$a->strings["ImageMagick supports GIF"] = "ImageMagick supporte le format GIF"; +$a->strings["The database configuration file \".htconfig.php\" could not be written. Please use the enclosed text to create a configuration file in your web server root."] = "Le fichier de configuration de la base (\".htconfig.php\") ne peut être créé. Merci d'utiliser le texte ci-joint pour créer ce fichier à la racine de votre hébergement."; +$a->strings["

      What next

      "] = "

      Ensuite

      "; +$a->strings["IMPORTANT: You will need to [manually] setup a scheduled task for the poller."] = "IMPORTANT: Vous devez configurer [manuellement] une tâche programmée pour le \"poller\"."; +$a->strings["Recent Photos"] = "Photos récentes"; +$a->strings["Upload New Photos"] = "Téléverser de nouvelles photos"; +$a->strings["Contact information unavailable"] = "Informations de contact indisponibles"; +$a->strings["Album not found."] = "Album introuvable."; +$a->strings["Delete Album"] = "Effacer l'album"; +$a->strings["Do you really want to delete this photo album and all its photos?"] = "Voulez-vous vraiment supprimer cet album photo et toutes ses photos ?"; +$a->strings["Delete Photo"] = "Effacer la photo"; +$a->strings["Do you really want to delete this photo?"] = "Voulez-vous vraiment supprimer cette photo ?"; +$a->strings["%1\$s was tagged in %2\$s by %3\$s"] = "%1\$s a été étiqueté dans %2\$s par %3\$s"; +$a->strings["a photo"] = "une photo"; +$a->strings["Image file is empty."] = "Fichier image vide."; +$a->strings["No photos selected"] = "Aucune photo sélectionnée"; +$a->strings["You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage."] = "Vous avez utilisé %1$.2f Mo sur %2$.2f d'espace de stockage pour les photos."; +$a->strings["Upload Photos"] = "Téléverser des photos"; +$a->strings["New album name: "] = "Nom du nouvel album: "; +$a->strings["or existing album name: "] = "ou nom d'un album existant: "; +$a->strings["Do not show a status post for this upload"] = "Ne pas publier de notice de statut pour cet envoi"; +$a->strings["Private Photo"] = "Photo privée"; +$a->strings["Public Photo"] = "Photo publique"; +$a->strings["Edit Album"] = "Éditer l'album"; +$a->strings["Show Newest First"] = "Plus récent d'abord"; +$a->strings["Show Oldest First"] = "Plus ancien d'abord"; +$a->strings["View Photo"] = "Voir la photo"; +$a->strings["Permission denied. Access to this item may be restricted."] = "Interdit. L'accès à cet élément peut avoir été restreint."; +$a->strings["Photo not available"] = "Photo indisponible"; +$a->strings["View photo"] = "Voir photo"; +$a->strings["Edit photo"] = "Éditer la photo"; +$a->strings["Use as profile photo"] = "Utiliser comme photo de profil"; +$a->strings["View Full Size"] = "Voir en taille réelle"; +$a->strings["Tags: "] = "Étiquettes:"; +$a->strings["[Remove any tag]"] = "[Retirer toutes les étiquettes]"; +$a->strings["New album name"] = "Nom du nouvel album"; +$a->strings["Caption"] = "Titre"; +$a->strings["Add a Tag"] = "Ajouter une étiquette"; +$a->strings["Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"] = "Exemples: @bob, @Barbara_Jensen, @jim@example.com, #Californie, #vacances"; +$a->strings["Do not rotate"] = "Pas de rotation"; +$a->strings["Rotate CW (right)"] = "Tourner dans le sens des aiguilles d'une montre (vers la droite)"; +$a->strings["Rotate CCW (left)"] = "Tourner dans le sens contraire des aiguilles d'une montre (vers la gauche)"; +$a->strings["Private photo"] = "Photo privée"; +$a->strings["Public photo"] = "Photo publique"; +$a->strings["Map"] = "Carte"; +$a->strings["View"] = "Vue"; +$a->strings["Previous"] = "Précédent"; +$a->strings["User not found"] = "Utilisateur introuvable"; +$a->strings["This calendar format is not supported"] = "Format de calendrier inconnu"; +$a->strings["No exportable data found"] = "Rien à exporter"; +$a->strings["calendar"] = "calendrier"; +$a->strings["Event can not end before it has started."] = "L'événement ne peut pas se terminer avant d'avoir commencé."; +$a->strings["Event title and start time are required."] = "Vous devez donner un nom et un horaire de début à l'événement."; +$a->strings["Create New Event"] = "Créer un nouvel événement"; +$a->strings["Event details"] = "Détails de l'événement"; +$a->strings["Starting date and Title are required."] = "La date de début et le titre sont requis."; +$a->strings["Event Starts:"] = "Début de l'événement :"; +$a->strings["Finish date/time is not known or not relevant"] = "Date / heure de fin inconnue ou sans objet"; +$a->strings["Event Finishes:"] = "Fin de l'événement:"; +$a->strings["Adjust for viewer timezone"] = "Ajuster à la zone horaire du visiteur"; +$a->strings["Description:"] = "Description:"; +$a->strings["Title:"] = "Titre :"; +$a->strings["Share this event"] = "Partager cet événement"; +$a->strings["Invalid request identifier."] = "Identifiant de demande invalide."; +$a->strings["Discard"] = "Rejeter"; +$a->strings["Network Notifications"] = "Notifications du réseau"; +$a->strings["Personal Notifications"] = "Notifications personnelles"; +$a->strings["Home Notifications"] = "Notifications de page d'accueil"; +$a->strings["Show Ignored Requests"] = "Voir les demandes ignorées"; +$a->strings["Hide Ignored Requests"] = "Cacher les demandes ignorées"; +$a->strings["Notification type: "] = "Type de notification: "; +$a->strings["suggested by %s"] = "suggéré(e) par %s"; +$a->strings["Post a new friend activity"] = "Poster une nouvelle avtivité d'ami"; +$a->strings["if applicable"] = "si possible"; +$a->strings["Approve"] = "Approuver"; +$a->strings["Claims to be known to you: "] = "Prétend que vous le connaissez: "; +$a->strings["yes"] = "oui"; +$a->strings["no"] = "non"; +$a->strings["Shall your connection be bidirectional or not? \"Friend\" implies that you allow to read and you subscribe to their posts. \"Fan/Admirer\" means that you allow to read but you do not want to read theirs. Approve as: "] = "Doit être votre connexion bidirectionnelle ou non? \"Ami\" implique que vous autorisiez à lire et vous vous abonnez à leurs postes. \"Fan / Admirateur\" signifie que vous permettez de lire, mais vous ne voulez pas lire les leurs. Approuver en:"; +$a->strings["Shall your connection be bidirectional or not? \"Friend\" implies that you allow to read and you subscribe to their posts. \"Sharer\" means that you allow to read but you do not want to read theirs. Approve as: "] = "Doit être votre connexion bidirectionnelle ou non? \"Ami\" implique que vous autorisiez à lire et vous vous abonnez à leurs postes. \"Fan / Admirateur\" signifie que vous permettez de lire, mais vous ne voulez pas lire les leurs. Approuver en:"; +$a->strings["Friend"] = "Ami"; +$a->strings["Sharer"] = "Initiateur du partage"; +$a->strings["Fan/Admirer"] = "Fan/Admirateur"; +$a->strings["No introductions."] = "Aucune demande d'introduction."; +$a->strings["Show unread"] = "Afficher non-lus"; +$a->strings["Show all"] = "Tout afficher"; +$a->strings["No more %s notifications."] = "Aucune notification de %s"; +$a->strings["{0} wants to be your friend"] = "{0} souhaite être votre ami(e)"; +$a->strings["{0} sent you a message"] = "{0} vous a envoyé un message"; +$a->strings["{0} requested registration"] = "{0} a demandé à s'inscrire"; $a->strings["Theme settings updated."] = "Réglages du thème sauvés."; $a->strings["Site"] = "Site"; $a->strings["Users"] = "Utilisateurs"; -$a->strings["Plugins"] = "Extensions"; $a->strings["Themes"] = "Thèmes"; $a->strings["DB updates"] = "Mise-à-jour de la base"; $a->strings["Inspect Queue"] = "Inspecter la file d'attente"; +$a->strings["Federation Statistics"] = "Statistiques Federation"; $a->strings["Logs"] = "Journaux"; +$a->strings["View Logs"] = "Voir les logs"; $a->strings["probe address"] = "Tester une adresse"; $a->strings["check webfinger"] = "vérification de webfinger"; -$a->strings["Admin"] = "Admin"; $a->strings["Plugin Features"] = "Propriétés des extensions"; $a->strings["diagnostics"] = "diagnostic"; $a->strings["User registrations waiting for confirmation"] = "Inscriptions en attente de confirmation"; +$a->strings["This page offers you some numbers to the known part of the federated social network your Friendica node is part of. These numbers are not complete but only reflect the part of the network your node is aware of."] = "Cette page montre quelques statistiques de la partie connue du réseau social fédéré dont votre instance Friendica fait partie. Ces chiffres sont partiels et ne reflètent que la portion du réseau dont votre instance a connaissance."; +$a->strings["The Auto Discovered Contact Directory feature is not enabled, it will improve the data displayed here."] = "En activant la fonctionnalité Répertoire de Contacts Découverts Automatiquement, cela améliorera la qualité des chiffres présentés ici."; $a->strings["Administration"] = "Administration"; +$a->strings["Currently this node is aware of %d nodes from the following platforms:"] = "Actuellement cette instance est en relation avec %d autres instances des plate-formes suivantes :"; $a->strings["ID"] = "ID"; $a->strings["Recipient Name"] = "Nom du destinataire"; $a->strings["Recipient Profile"] = "Profil du destinataire"; @@ -456,17 +1707,12 @@ $a->strings["Active plugins"] = "Extensions activés"; $a->strings["Can not parse base url. Must have at least ://"] = "Impossible d'analyser l'URL de base. Doit contenir au moins ://"; $a->strings["RINO2 needs mcrypt php extension to work."] = "RINO2 a besoin du module php mcrypt pour fonctionner."; $a->strings["Site settings updated."] = "Réglages du site mis-à-jour."; -$a->strings["No special theme for mobile devices"] = "Pas de thème particulier pour les terminaux mobiles"; $a->strings["No community page"] = "Aucune page de communauté"; $a->strings["Public postings from users of this site"] = "Publications publiques des utilisateurs de ce site"; $a->strings["Global community page"] = "Page de la communauté globale"; $a->strings["At post arrival"] = "A l'arrivé d'une publication"; -$a->strings["Frequently"] = "Fréquemment"; -$a->strings["Hourly"] = "Toutes les heures"; -$a->strings["Twice daily"] = "Deux fois par jour"; -$a->strings["Daily"] = "Chaque jour"; -$a->strings["Users, Global Contacts"] = ""; -$a->strings["Users, Global Contacts/fallback"] = ""; +$a->strings["Users, Global Contacts"] = "Utilisateurs, Contacts Globaux"; +$a->strings["Users, Global Contacts/fallback"] = "Utilisateurs, Contacts Globaux/alternative"; $a->strings["One month"] = "Un mois"; $a->strings["Three months"] = "Trois mois"; $a->strings["Half a year"] = "Six mois"; @@ -478,13 +1724,11 @@ $a->strings["Open"] = "Ouvert"; $a->strings["No SSL policy, links will track page SSL state"] = "Pas de politique SSL, le liens conserveront l'état SSL de la page"; $a->strings["Force all links to use SSL"] = "Forcer tous les liens à utiliser SSL"; $a->strings["Self-signed certificate, use SSL for local links only (discouraged)"] = "Certificat auto-signé, n'utiliser SSL que pour les liens locaux (non recommandé)"; -$a->strings["Save Settings"] = "Sauvegarder les paramétres"; -$a->strings["Registration"] = "Inscription"; $a->strings["File upload"] = "Téléversement de fichier"; $a->strings["Policies"] = "Politiques"; -$a->strings["Advanced"] = "Avancé"; -$a->strings["Auto Discovered Contact Directory"] = ""; +$a->strings["Auto Discovered Contact Directory"] = "Répertoire de Contacts Découverts Automatiquement"; $a->strings["Performance"] = "Performance"; +$a->strings["Worker"] = "Worker"; $a->strings["Relocate - WARNING: advanced function. Could make this server unreachable."] = "Relocalisation - ATTENTION: fonction avancée. Peut rendre ce serveur inaccessible."; $a->strings["Site name"] = "Nom du site"; $a->strings["Host name"] = "Nom de la machine hôte"; @@ -563,6 +1807,8 @@ $a->strings["Enable OStatus support"] = "Activer le support d'OStatus"; $a->strings["Provide built-in OStatus (StatusNet, GNU Social etc.) compatibility. All communications in OStatus are public, so privacy warnings will be occasionally displayed."] = "Fourni nativement la compatibilité avec OStatus (StatusNet, GNU Social etc.). Touts les communications utilisant OStatus sont public, des avertissements liés à la vie privée seront affichés si utile."; $a->strings["OStatus conversation completion interval"] = "Achèvement de l'intervalle de conversation OStatus "; $a->strings["How often shall the poller check for new entries in OStatus conversations? This can be a very ressource task."] = "Combien de fois le poller devra vérifier les nouvelles entrées dans les conversations OStatus? Cela peut utilisé beaucoup de ressources."; +$a->strings["Only import OStatus threads from our contacts"] = "Importer seulement les fils OStatus de nos contacts"; +$a->strings["Normally we import every content from our OStatus contacts. With this option we only store threads that are started by a contact that is known on our system."] = ""; $a->strings["OStatus support can only be enabled if threading is enabled."] = "Le support OStatus ne peut être activé que si l'imbrication des commentaires est activée."; $a->strings["Diaspora support can't be enabled because Friendica was installed into a sub directory."] = "Le support de Diaspora ne peut pas être activé parce que Friendica a été installé dans un sous-répertoire."; $a->strings["Enable Diaspora support"] = "Activer le support de Diaspora"; @@ -582,21 +1828,21 @@ $a->strings["Delay background polling processes by this many seconds to reduce s $a->strings["Maximum Load Average"] = "Plafond de la charge moyenne"; $a->strings["Maximum system load before delivery and poll processes are deferred - default 50."] = "Charge système maximale à partir de laquelle l'émission et la réception seront soumises à un délai supplémentaire. Par défaut, 50."; $a->strings["Maximum Load Average (Frontend)"] = "Plafond de la charge moyenne (frontale)"; -$a->strings["Maximum system load before the frontend quits service - default 50."] = ""; -$a->strings["Maximum table size for optimization"] = ""; -$a->strings["Maximum table size (in MB) for the automatic optimization - default 100 MB. Enter -1 to disable it."] = ""; -$a->strings["Minimum level of fragmentation"] = ""; -$a->strings["Minimum fragmenation level to start the automatic optimization - default value is 30%."] = ""; +$a->strings["Maximum system load before the frontend quits service - default 50."] = "Limite de charge système pour le rendu des pages - défaut 50."; +$a->strings["Maximum table size for optimization"] = "Limite de taille de table pour l'optimisation"; +$a->strings["Maximum table size (in MB) for the automatic optimization - default 100 MB. Enter -1 to disable it."] = "Limite de taille de table (en Mo) pour l'optimisation automatique - défaut 100 Mo. -1 pour désactiver la limite."; +$a->strings["Minimum level of fragmentation"] = "Seuil de fragmentation"; +$a->strings["Minimum fragmenation level to start the automatic optimization - default value is 30%."] = "Seuil de fragmentation pour que l'optimisation automatique se déclenche - défaut 30%."; $a->strings["Periodical check of global contacts"] = "Vérification périodique des contacts globaux"; $a->strings["If enabled, the global contacts are checked periodically for missing or outdated data and the vitality of the contacts and servers."] = "Si activé, les données manquantes et obsolètes et la vitalité des contacts et des serveurs seront vérifiées périodiquement dans les contacts globaux."; $a->strings["Days between requery"] = "Nombre de jours entre les requêtes"; $a->strings["Number of days after which a server is requeried for his contacts."] = "Nombre de jours avant qu'une requête de contacts soient envoyée à nouveau à un serveur."; $a->strings["Discover contacts from other servers"] = "Découvrir des contacts des autres serveurs"; $a->strings["Periodically query other servers for contacts. You can choose between 'users': the users on the remote system, 'Global Contacts': active contacts that are known on the system. The fallback is meant for Redmatrix servers and older friendica servers, where global contacts weren't available. The fallback increases the server load, so the recommened setting is 'Users, Global Contacts'."] = ""; -$a->strings["Timeframe for fetching global contacts"] = ""; -$a->strings["When the discovery is activated, this value defines the timeframe for the activity of the global contacts that are fetched from other servers."] = ""; -$a->strings["Search the local directory"] = ""; -$a->strings["Search the local directory instead of the global directory. When searching locally, every search will be executed on the global directory in the background. This improves the search results when the search is repeated."] = ""; +$a->strings["Timeframe for fetching global contacts"] = "Fréquence de récupération des contacts globaux"; +$a->strings["When the discovery is activated, this value defines the timeframe for the activity of the global contacts that are fetched from other servers."] = "Quand la découverte de contacts est activée, cette valeur détermine la fréquence de récupération des données des contacts globaux présents sur d'autres serveurs."; +$a->strings["Search the local directory"] = "Chercher dans le répertoire local"; +$a->strings["Search the local directory instead of the global directory. When searching locally, every search will be executed on the global directory in the background. This improves the search results when the search is repeated."] = "Cherche dans le répertoire local au lieu du répertoire local. Quand une recherche locale est effectuée, la même recherche est effectuée dans le répertoire global en tâche de fond. Cela améliore les résultats de la recherche si elle est réitérée."; $a->strings["Publish server information"] = "Publier les informations du serveur"; $a->strings["If enabled, general server and usage data will be published. The data contains the name and version of the server, number of users with public profiles, number of posts and the activated protocols and connectors. See the-federation.info for details."] = "Si cette option est activée, des informations sur le serveur et son utilisation seront publiées. Ces informations incluent le nom et la version du serveur, le nombre d’utilisateurs avec des profils publics, le nombre de messages, les protocoles supportés et les connecteurs disponibles. Plus de détails sur the-federation.info."; $a->strings["Use MySQL full text engine"] = "Utiliser le moteur de recherche plein texte de MySQL"; @@ -629,6 +1875,14 @@ $a->strings["RINO Encryption"] = "Chiffrement RINO"; $a->strings["Encryption layer between nodes."] = "Couche de chiffrement entre les nœuds du réseau."; $a->strings["Embedly API key"] = "Clé API d'Embedly"; $a->strings["Embedly is used to fetch additional data for web pages. This is an optional parameter."] = ""; +$a->strings["Enable 'worker' background processing"] = ""; +$a->strings["The worker background processing limits the number of parallel background jobs to a maximum number and respects the system load."] = ""; +$a->strings["Maximum number of parallel workers"] = ""; +$a->strings["On shared hosters set this to 2. On larger systems, values of 10 are great. Default value is 4."] = ""; +$a->strings["Don't use 'proc_open' with the worker"] = ""; +$a->strings["Enable this if your system doesn't allow the use of 'proc_open'. This can happen on shared hosters. If this is enabled you should increase the frequency of poller calls in your crontab."] = ""; +$a->strings["Enable fastlane"] = ""; +$a->strings["When enabed, the fastlane mechanism starts an additional worker if processes with higher priority are blocked by processes of lower priority."] = ""; $a->strings["Update has been marked successful"] = "Mise-à-jour validée comme 'réussie'"; $a->strings["Database structure update %s was successfully applied."] = "La structure de base de données pour la mise à jour %s a été appliquée avec succès."; $a->strings["Executing of database structure update %s failed with error: %s"] = "L'exécution de la mise à jour %s pour la structure de base de données a échoué avec l'erreur: %s"; @@ -644,7 +1898,6 @@ $a->strings["Mark success (if update was manually applied)"] = "Marquer comme 'r $a->strings["Attempt to execute this update step automatically"] = "Tenter d'éxecuter cette étape automatiquement"; $a->strings["\n\t\t\tDear %1\$s,\n\t\t\t\tthe administrator of %2\$s has set up an account for you."] = "\n\t\t\tChère/Cher %1\$s,\n\t\t\t\tL’administrateur de %2\$s vous a ouvert un compte."; $a->strings["\n\t\t\tThe login details are as follows:\n\n\t\t\tSite Location:\t%1\$s\n\t\t\tLogin Name:\t\t%2\$s\n\t\t\tPassword:\t\t%3\$s\n\n\t\t\tYou may change your password from your account \"Settings\" page after logging\n\t\t\tin.\n\n\t\t\tPlease take a few moments to review the other account settings on that page.\n\n\t\t\tYou may also wish to add some basic information to your default profile\n\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n\n\t\t\tWe recommend setting your full name, adding a profile photo,\n\t\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n\t\t\tperhaps what country you live in; if you do not wish to be more specific\n\t\t\tthan that.\n\n\t\t\tWe fully respect your right to privacy, and none of these items are necessary.\n\t\t\tIf you are new and do not know anybody here, they may help\n\t\t\tyou to make some new and interesting friends.\n\n\t\t\tThank you and welcome to %4\$s."] = "\n\t\t\tVoici vos informations de connexion :\n\n\t\t\tAdresse :\t%1\$s\n\t\t\tIdentifiant :\t\t%2\$s\n\t\t\tMot de passe :\t\t%3\$s\n\n\t\t\tVous pourrez changer votre mot de passe dans les paramètres de votre compte une fois connecté.\n\n\t\t\tProfitez-en pour prendre le temps de passer en revue les autres paramètres de votre compte.\n\n\t\t\tVous pourrez aussi ajouter quelques informations élémentaires à votre profil par défaut (sur la page « Profils ») pour permettre à d’autres personnes de vous trouver facilement.\n\n\t\t\tNous recommandons de préciser votre nom complet, d’ajouter une photo et quelques mots-clefs (c’est très utile pour découvrir de nouveaux amis), et peut-être aussi d’indiquer au moins le pays dans lequel vous vivez, à défaut d’être plus précis.\n\n\t\t\tNous respectons pleinement votre droit à une vie privée, et vous n’avez aucune obligation de donner toutes ces informations. Mais si vous êtes nouveau et ne connaissez encore personne ici, cela peut vous aider à vous faire de nouveaux amis intéressants.\n\n\t\t\tMerci et bienvenu sur %4\$s."; -$a->strings["Registration details for %s"] = "Détails d'inscription pour %s"; $a->strings["%s user blocked/unblocked"] = array( 0 => "%s utilisateur a (dé)bloqué", 1 => "%s utilisateurs ont (dé)bloqué", @@ -656,22 +1909,20 @@ $a->strings["%s user deleted"] = array( $a->strings["User '%s' deleted"] = "Utilisateur '%s' supprimé"; $a->strings["User '%s' unblocked"] = "Utilisateur '%s' débloqué"; $a->strings["User '%s' blocked"] = "Utilisateur '%s' bloqué"; +$a->strings["Register date"] = "Date d'inscription"; +$a->strings["Last login"] = "Dernière connexion"; +$a->strings["Last item"] = "Dernier élément"; $a->strings["Add User"] = "Ajouter l'utilisateur"; $a->strings["select all"] = "tout sélectionner"; $a->strings["User registrations waiting for confirm"] = "Inscriptions d'utilisateurs en attente de confirmation"; $a->strings["User waiting for permanent deletion"] = "Utilisateur en attente de suppression définitive"; $a->strings["Request date"] = "Date de la demande"; -$a->strings["Email"] = "Courriel"; $a->strings["No registrations."] = "Pas d'inscriptions."; $a->strings["Deny"] = "Rejetter"; $a->strings["Site admin"] = "Administration du Site"; $a->strings["Account expired"] = "Compte expiré"; $a->strings["New User"] = "Nouvel utilisateur"; -$a->strings["Register date"] = "Date d'inscription"; -$a->strings["Last login"] = "Dernière connexion"; -$a->strings["Last item"] = "Dernier élément"; $a->strings["Deleted since"] = "Supprimé depuis"; -$a->strings["Account"] = "Compte"; $a->strings["Selected users will be deleted!\\n\\nEverything these users had posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "Les utilisateurs sélectionnés vont être supprimés!\\n\\nTout ce qu'ils ont posté sur ce site sera définitivement effacé!\\n\\nÊtes-vous certain?"; $a->strings["The user {0} will be deleted!\\n\\nEverything this user has posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "L'utilisateur {0} va être supprimé!\\n\\nTout ce qu'il a posté sur ce site sera définitivement perdu!\\n\\nÊtes-vous certain?"; $a->strings["Name of the new user."] = "Nom du nouvel utilisateur."; @@ -686,720 +1937,90 @@ $a->strings["Toggle"] = "Activer/Désactiver"; $a->strings["Author: "] = "Auteur: "; $a->strings["Maintainer: "] = "Mainteneur: "; $a->strings["Reload active plugins"] = "Recharger les extensions actives"; +$a->strings["There are currently no plugins available on your node. You can find the official plugin repository at %1\$s and might find other interesting plugins in the open plugin registry at %2\$s"] = ""; $a->strings["No themes found."] = "Aucun thème trouvé."; $a->strings["Screenshot"] = "Capture d'écran"; $a->strings["Reload active themes"] = "Recharger les thèmes actifs"; +$a->strings["No themes found on the system. They should be paced in %1\$s"] = ""; $a->strings["[Experimental]"] = "[Expérimental]"; $a->strings["[Unsupported]"] = "[Non supporté]"; $a->strings["Log settings updated."] = "Réglages des journaux mis-à-jour."; +$a->strings["PHP log currently enabled."] = ""; +$a->strings["PHP log currently disabled."] = ""; $a->strings["Clear"] = "Effacer"; $a->strings["Enable Debugging"] = "Activer le déboggage"; $a->strings["Log file"] = "Fichier de journaux"; $a->strings["Must be writable by web server. Relative to your Friendica top-level directory."] = "Accès en écriture par le serveur web requis. Relatif à la racine de votre installation de Friendica."; $a->strings["Log level"] = "Niveau de journalisaton"; -$a->strings["Close"] = "Fermer"; -$a->strings["FTP Host"] = "Hôte FTP"; -$a->strings["FTP Path"] = "Chemin FTP"; -$a->strings["FTP User"] = "Utilisateur FTP"; -$a->strings["FTP Password"] = "Mot de passe FTP"; -$a->strings["Search Results For: %s"] = "Résultats de la recherche pour %s"; -$a->strings["Remove term"] = "Retirer le terme"; -$a->strings["Saved Searches"] = "Recherches"; -$a->strings["add"] = "ajouter"; -$a->strings["Commented Order"] = "Tri par commentaires"; -$a->strings["Sort by Comment Date"] = "Trier par date de commentaire"; -$a->strings["Posted Order"] = "Tri des publications"; -$a->strings["Sort by Post Date"] = "Trier par date de publication"; -$a->strings["Posts that mention or involve you"] = "Publications qui vous concernent"; -$a->strings["New"] = "Nouveau"; -$a->strings["Activity Stream - by date"] = "Flux d'activités - par date"; -$a->strings["Shared Links"] = "Liens partagés"; -$a->strings["Interesting Links"] = "Liens intéressants"; -$a->strings["Starred"] = "Mis en avant"; -$a->strings["Favourite Posts"] = "Publications favorites"; -$a->strings["Warning: This group contains %s member from an insecure network."] = array( - 0 => "Attention: Ce groupe contient %s membre d'un réseau non-sûr.", - 1 => "Attention: Ce groupe contient %s membres d'un réseau non-sûr.", -); -$a->strings["Private messages to this group are at risk of public disclosure."] = "Les messages privés envoyés à ce groupe s'exposent à une diffusion incontrôlée."; -$a->strings["No such group"] = "Groupe inexistant"; -$a->strings["Group: %s"] = "Group : %s"; -$a->strings["Private messages to this person are at risk of public disclosure."] = "Les messages privés envoyés à ce contact s'exposent à une diffusion incontrôlée."; -$a->strings["Invalid contact."] = "Contact invalide."; -$a->strings["No friends to display."] = "Pas d'amis à afficher."; -$a->strings["Event can not end before it has started."] = "L'événement ne peut pas se terminer avant d'avoir commencé."; -$a->strings["Event title and start time are required."] = "Vous devez donner un nom et un horaire de début à l'événement."; -$a->strings["Sun"] = "Dim"; -$a->strings["Mon"] = "Lun"; -$a->strings["Tue"] = "Mar"; -$a->strings["Wed"] = "Mer"; -$a->strings["Thu"] = "Jeu"; -$a->strings["Fri"] = "Ven"; -$a->strings["Sat"] = "Sam"; -$a->strings["Sunday"] = "Dimanche"; -$a->strings["Monday"] = "Lundi"; -$a->strings["Tuesday"] = "Mardi"; -$a->strings["Wednesday"] = "Mercredi"; -$a->strings["Thursday"] = "Jeudi"; -$a->strings["Friday"] = "Vendredi"; -$a->strings["Saturday"] = "Samedi"; -$a->strings["Jan"] = "Jan"; -$a->strings["Feb"] = "Fév"; -$a->strings["Mar"] = "Mar"; -$a->strings["Apr"] = "Avr"; -$a->strings["May"] = "Mai"; -$a->strings["Jun"] = "Jun"; -$a->strings["Jul"] = "Jul"; -$a->strings["Aug"] = "Aoû"; -$a->strings["Sept"] = "Sep"; -$a->strings["Oct"] = "Oct"; -$a->strings["Nov"] = "Nov"; -$a->strings["Dec"] = "Déc"; -$a->strings["January"] = "Janvier"; -$a->strings["February"] = "Février"; -$a->strings["March"] = "Mars"; -$a->strings["April"] = "Avril"; -$a->strings["June"] = "Juin"; -$a->strings["July"] = "Juillet"; -$a->strings["August"] = "Août"; -$a->strings["September"] = "Septembre"; -$a->strings["October"] = "Octobre"; -$a->strings["November"] = "Novembre"; -$a->strings["December"] = "Décembre"; -$a->strings["today"] = "aujourd'hui"; -$a->strings["month"] = "mois"; -$a->strings["week"] = "semaine"; -$a->strings["day"] = "jour"; -$a->strings["l, F j"] = "l, F j"; -$a->strings["Edit event"] = "Editer l'événement"; -$a->strings["link to source"] = "lien original"; -$a->strings["Events"] = "Événements"; -$a->strings["Create New Event"] = "Créer un nouvel événement"; -$a->strings["Previous"] = "Précédent"; -$a->strings["Next"] = "Suivant"; -$a->strings["Event details"] = "Détails de l'événement"; -$a->strings["Starting date and Title are required."] = "La date de début et le titre sont requis."; -$a->strings["Event Starts:"] = "Début de l'événement :"; -$a->strings["Required"] = "Requis"; -$a->strings["Finish date/time is not known or not relevant"] = "Date / heure de fin inconnue ou sans objet"; -$a->strings["Event Finishes:"] = "Fin de l'événement:"; -$a->strings["Adjust for viewer timezone"] = "Ajuster à la zone horaire du visiteur"; -$a->strings["Description:"] = "Description:"; -$a->strings["Title:"] = "Titre :"; -$a->strings["Share this event"] = "Partager cet événement"; -$a->strings["Preview"] = "Aperçu"; -$a->strings["Credits"] = "Remerciements"; -$a->strings["Friendica is a community project, that would not be possible without the help of many people. Here is a list of those who have contributed to the code or the translation of Friendica. Thank you all!"] = "Friendica est un projet communautaire, qui ne serait pas possible sans l'aide de beaucoup de gens. Voici une liste de ceux qui ont contribué au code ou à la traduction de Friendica. Merci à tous!"; -$a->strings["Select"] = "Sélectionner"; -$a->strings["View %s's profile @ %s"] = "Voir le profil de %s @ %s"; -$a->strings["%s from %s"] = "%s de %s"; -$a->strings["View in context"] = "Voir dans le contexte"; -$a->strings["%d comment"] = array( - 0 => "%d commentaire", - 1 => "%d commentaires", -); -$a->strings["comment"] = array( - 0 => "", - 1 => "commentaire", -); -$a->strings["show more"] = "montrer plus"; -$a->strings["Private Message"] = "Message privé"; -$a->strings["I like this (toggle)"] = "J'aime"; -$a->strings["like"] = "aime"; -$a->strings["I don't like this (toggle)"] = "Je n'aime pas"; -$a->strings["dislike"] = "n'aime pas"; -$a->strings["Share this"] = "Partager"; -$a->strings["share"] = "partager"; -$a->strings["This is you"] = "C'est vous"; -$a->strings["Comment"] = "Commenter"; -$a->strings["Bold"] = "Gras"; -$a->strings["Italic"] = "Italique"; -$a->strings["Underline"] = "Souligné"; -$a->strings["Quote"] = "Citation"; -$a->strings["Code"] = "Code"; -$a->strings["Image"] = "Image"; -$a->strings["Link"] = "Lien"; -$a->strings["Video"] = "Vidéo"; -$a->strings["Edit"] = "Éditer"; -$a->strings["add star"] = "mett en avant"; -$a->strings["remove star"] = "ne plus mettre en avant"; -$a->strings["toggle star status"] = "mettre en avant"; -$a->strings["starred"] = "mis en avant"; -$a->strings["add tag"] = "ajouter une étiquette"; -$a->strings["save to folder"] = "sauver vers dossier"; -$a->strings["to"] = "à"; -$a->strings["Wall-to-Wall"] = "Inter-mur"; -$a->strings["via Wall-To-Wall:"] = "en Inter-mur:"; -$a->strings["Remove My Account"] = "Supprimer mon compte"; -$a->strings["This will completely remove your account. Once this has been done it is not recoverable."] = "Ceci supprimera totalement votre compte. Cette opération est irréversible."; -$a->strings["Please enter your password for verification:"] = "Merci de saisir votre mot de passe pour vérification :"; -$a->strings["Friendica Communications Server - Setup"] = "Serveur de communications Friendica - Configuration"; -$a->strings["Could not connect to database."] = "Impossible de se connecter à la base."; -$a->strings["Could not create table."] = "Impossible de créer une table."; -$a->strings["Your Friendica site database has been installed."] = "La base de données de votre site Friendica a bien été installée."; -$a->strings["You may need to import the file \"database.sql\" manually using phpmyadmin or mysql."] = "Vous pourriez avoir besoin d'importer le fichier \"database.sql\" manuellement au moyen de phpmyadmin ou de la commande mysql."; -$a->strings["Please see the file \"INSTALL.txt\"."] = "Référez-vous au fichier \"INSTALL.txt\"."; -$a->strings["Database already in use."] = "Base de données déjà en cours d'utilisation."; -$a->strings["System check"] = "Vérifications système"; -$a->strings["Check again"] = "Vérifier à nouveau"; -$a->strings["Database connection"] = "Connexion à la base de données"; -$a->strings["In order to install Friendica we need to know how to connect to your database."] = "Pour installer Friendica, nous avons besoin de savoir comment contacter votre base de données."; -$a->strings["Please contact your hosting provider or site administrator if you have questions about these settings."] = "Merci de vous tourner vers votre hébergeur et/ou administrateur pour toute question concernant ces réglages."; -$a->strings["The database you specify below should already exist. If it does not, please create it before continuing."] = "La base de données que vous spécifierez doit exister. Si ce n'est pas encore le cas, merci de la créer avant de continuer."; -$a->strings["Database Server Name"] = "Serveur de base de données"; -$a->strings["Database Login Name"] = "Nom d'utilisateur de la base"; -$a->strings["Database Login Password"] = "Mot de passe de la base"; -$a->strings["Database Name"] = "Nom de la base"; -$a->strings["Site administrator email address"] = "Adresse électronique de l'administrateur du site"; -$a->strings["Your account email address must match this in order to use the web admin panel."] = "Votre adresse électronique doit correspondre à celle-ci pour pouvoir utiliser l'interface d'administration."; -$a->strings["Please select a default timezone for your website"] = "Sélectionner un fuseau horaire par défaut pour votre site"; -$a->strings["Site settings"] = "Réglages du site"; -$a->strings["Could not find a command line version of PHP in the web server PATH."] = "Impossible de trouver la version \"ligne de commande\" de PHP dans le PATH du serveur web."; -$a->strings["If you don't have a command line version of PHP installed on server, you will not be able to run background polling via cron. See 'Setup the poller'"] = "Si vous n'avez pas une version en ligne de commande de PHP sur votre serveur, vous ne pourrez pas exécuter l'attente active ou « polling » en arrière-plan via cron. Voir 'Setup the poller'."; -$a->strings["PHP executable path"] = "Chemin vers l'exécutable de PHP"; -$a->strings["Enter full path to php executable. You can leave this blank to continue the installation."] = "Entrez le chemin (absolu) vers l'exécutable 'php'. Vous pouvez laisser cette ligne vide pour continuer l'installation."; -$a->strings["Command line PHP"] = "Version \"ligne de commande\" de PHP"; -$a->strings["PHP executable is not the php cli binary (could be cgi-fgci version)"] = "L'executable PHP n'est pas le binaire php client (c'est peut être la version cgi-fcgi)"; -$a->strings["Found PHP version: "] = "Version de PHP:"; -$a->strings["PHP cli binary"] = "PHP cli binary"; -$a->strings["The command line version of PHP on your system does not have \"register_argc_argv\" enabled."] = "La version \"ligne de commande\" de PHP de votre système n'a pas \"register_argc_argv\" d'activé."; -$a->strings["This is required for message delivery to work."] = "Ceci est requis pour que la livraison des messages fonctionne."; -$a->strings["PHP register_argc_argv"] = "PHP register_argc_argv"; -$a->strings["Error: the \"openssl_pkey_new\" function on this system is not able to generate encryption keys"] = "Erreur: la fonction \"openssl_pkey_new\" de ce système ne permet pas de générer des clés de chiffrement"; -$a->strings["If running under Windows, please see \"http://www.php.net/manual/en/openssl.installation.php\"."] = "Si vous utilisez Windows, merci de vous réferer à \"http://www.php.net/manual/en/openssl.installation.php\"."; -$a->strings["Generate encryption keys"] = "Générer les clés de chiffrement"; -$a->strings["libCurl PHP module"] = "Module libCurl de PHP"; -$a->strings["GD graphics PHP module"] = "Module GD (graphiques) de PHP"; -$a->strings["OpenSSL PHP module"] = "Module OpenSSL de PHP"; -$a->strings["mysqli PHP module"] = "Module Mysqli de PHP"; -$a->strings["mb_string PHP module"] = "Module mb_string de PHP"; -$a->strings["mcrypt PHP module"] = "Module PHP mcrypt"; -$a->strings["Apache mod_rewrite module"] = "Module mod_rewrite Apache"; -$a->strings["Error: Apache webserver mod-rewrite module is required but not installed."] = "Erreur : Le module \"rewrite\" du serveur web Apache est requis mais pas installé."; -$a->strings["Error: libCURL PHP module required but not installed."] = "Erreur : Le module PHP \"libCURL\" est requis mais pas installé."; -$a->strings["Error: GD graphics PHP module with JPEG support required but not installed."] = "Erreur : Le module PHP \"GD\" disposant du support JPEG est requis mais pas installé."; -$a->strings["Error: openssl PHP module required but not installed."] = "Erreur : Le module PHP \"openssl\" est requis mais pas installé."; -$a->strings["Error: mysqli PHP module required but not installed."] = "Erreur : Le module PHP \"mysqli\" est requis mais pas installé."; -$a->strings["Error: mb_string PHP module required but not installed."] = "Erreur : le module PHP mb_string est requis mais pas installé."; -$a->strings["Error: mcrypt PHP module required but not installed."] = "Erreur : le module PHP mcrypt est nécessaire, mais n'es pas installé."; -$a->strings["Function mcrypt_create_iv() is not defined. This is needed to enable RINO2 encryption layer."] = ""; -$a->strings["mcrypt_create_iv() function"] = ""; -$a->strings["The web installer needs to be able to create a file called \".htconfig.php\" in the top folder of your web server and it is unable to do so."] = "L'installeur web doit être en mesure de créer un fichier \".htconfig.php\" à la racine de votre serveur web, mais il en est incapable."; -$a->strings["This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can."] = "Le plus souvent, il s'agit d'un problème de permission. Le serveur web peut ne pas être capable d'écrire dans votre répertoire - alors que vous-même le pouvez."; -$a->strings["At the end of this procedure, we will give you a text to save in a file named .htconfig.php in your Friendica top folder."] = "A la fin de cette étape, nous vous fournirons un texte à sauvegarder dans un fichier nommé .htconfig.php à la racine de votre répertoire Friendica."; -$a->strings["You can alternatively skip this procedure and perform a manual installation. Please see the file \"INSTALL.txt\" for instructions."] = "Vous pouvez également sauter cette étape et procéder à une installation manuelle. Pour cela, merci de lire le fichier \"INSTALL.txt\"."; -$a->strings[".htconfig.php is writable"] = "Fichier .htconfig.php accessible en écriture"; -$a->strings["Friendica uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering."] = "Friendica utilise le moteur de modèles Smarty3 pour le rendu d'affichage web. Smarty3 compile les modèles en PHP pour accélérer le rendu."; -$a->strings["In order to store these compiled templates, the web server needs to have write access to the directory view/smarty3/ under the Friendica top level folder."] = "Pour pouvoir stocker ces modèles compilés, le serveur internet doit avoir accès au droit d'écriture pour le répertoire view/smarty3/ sous le dossier racine de Friendica."; -$a->strings["Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder."] = "Veuillez vous assurer que l'utilisateur qui exécute votre serveur internet (p. ex. www-data) détient le droit d'accès en écriture sur ce dossier."; -$a->strings["Note: as a security measure, you should give the web server write access to view/smarty3/ only--not the template files (.tpl) that it contains."] = "Note: pour plus de sécurité, vous devriez ne donner le droit d'accès en écriture qu'à view/smarty3/ et pas aux fichiers modèles (.tpl) qu'il contient."; -$a->strings["view/smarty3 is writable"] = "view/smarty3 est autorisé à l écriture"; -$a->strings["Url rewrite in .htaccess is not working. Check your server configuration."] = "La réécriture d'URL dans le fichier .htaccess ne fonctionne pas. Vérifiez la configuration de votre serveur."; -$a->strings["Url rewrite is working"] = "La réécriture d'URL fonctionne."; -$a->strings["ImageMagick PHP extension is installed"] = "L’extension PHP ImageMagick est installée"; -$a->strings["ImageMagick supports GIF"] = "ImageMagick supporte le format GIF"; -$a->strings["The database configuration file \".htconfig.php\" could not be written. Please use the enclosed text to create a configuration file in your web server root."] = "Le fichier de configuration de la base (\".htconfig.php\") ne peut être créé. Merci d'utiliser le texte ci-joint pour créer ce fichier à la racine de votre hébergement."; -$a->strings["

      What next

      "] = "

      Ensuite

      "; -$a->strings["IMPORTANT: You will need to [manually] setup a scheduled task for the poller."] = "IMPORTANT: Vous devez configurer [manuellement] une tâche programmée pour le \"poller\"."; -$a->strings["Number of daily wall messages for %s exceeded. Message failed."] = "Nombre de messages de mur quotidiens pour %s dépassé. Échec du message."; -$a->strings["Unable to check your home location."] = "Impossible de vérifier votre localisation."; -$a->strings["No recipient."] = "Pas de destinataire."; -$a->strings["If you wish for %s to respond, please check that the privacy settings on your site allow private mail from unknown senders."] = "Si vous souhaitez que %s réponde, merci de vérifier vos réglages pour autoriser les messages privés venant d'inconnus."; -$a->strings["Help:"] = "Aide :"; -$a->strings["Help"] = "Aide"; -$a->strings["Not Found"] = "Non trouvé"; -$a->strings["Page not found."] = "Page introuvable."; -$a->strings["%1\$s welcomes %2\$s"] = "%1\$s accueille %2\$s"; -$a->strings["Welcome to %s"] = "Bienvenue sur %s"; -$a->strings["Sorry, maybe your upload is bigger than the PHP configuration allows"] = "Désolé, il semble que votre fichier est plus important que ce que la configuration de PHP autorise"; -$a->strings["Or - did you try to upload an empty file?"] = "Ou — auriez-vous essayé de télécharger un fichier vide ?"; -$a->strings["File exceeds size limit of %s"] = "La taille du fichier dépasse la limite de %s"; -$a->strings["File upload failed."] = "Le téléversement a échoué."; -$a->strings["No keywords to match. Please add keywords to your default profile."] = "Aucun mot-clé en correspondance. Merci d'ajouter des mots-clés à votre profil par défaut."; -$a->strings["is interested in:"] = "s'intéresse à :"; -$a->strings["Profile Match"] = "Correpondance de profils"; -$a->strings["link"] = "lien"; -$a->strings["Not available."] = "Indisponible."; -$a->strings["Community"] = "Communauté"; -$a->strings["No results."] = "Aucun résultat."; -$a->strings["everybody"] = "tout le monde"; -$a->strings["Additional features"] = "Fonctions supplémentaires"; -$a->strings["Display"] = "Afficher"; -$a->strings["Social Networks"] = "Réseaux sociaux"; -$a->strings["Delegations"] = "Délégations"; -$a->strings["Connected apps"] = "Applications connectées"; -$a->strings["Export personal data"] = "Exporter"; -$a->strings["Remove account"] = "Supprimer le compte"; -$a->strings["Missing some important data!"] = "Il manque certaines informations importantes!"; -$a->strings["Failed to connect with email account using the settings provided."] = "Impossible de se connecter au compte courriel configuré."; -$a->strings["Email settings updated."] = "Réglages de courriel mis-à-jour."; -$a->strings["Features updated"] = "Fonctionnalités mises à jour"; -$a->strings["Relocate message has been send to your contacts"] = "Un message de relocalisation a été envoyé à vos contacts."; -$a->strings["Passwords do not match. Password unchanged."] = "Les mots de passe ne correspondent pas. Aucun changement appliqué."; -$a->strings["Empty passwords are not allowed. Password unchanged."] = "Les mots de passe vides sont interdits. Aucun changement appliqué."; -$a->strings["Wrong password."] = "Mauvais mot de passe."; -$a->strings["Password changed."] = "Mots de passe changés."; -$a->strings["Password update failed. Please try again."] = "Le changement de mot de passe a échoué. Merci de recommencer."; -$a->strings[" Please use a shorter name."] = " Merci d'utiliser un nom plus court."; -$a->strings[" Name too short."] = " Nom trop court."; -$a->strings["Wrong Password"] = "Mauvais mot de passe"; -$a->strings[" Not valid email."] = " Email invalide."; -$a->strings[" Cannot change to that email."] = " Impossible de changer pour cet email."; -$a->strings["Private forum has no privacy permissions. Using default privacy group."] = "Ce forum privé n'a pas de paramètres de vie privée. Utilisation des paramètres de confidentialité par défaut."; -$a->strings["Private forum has no privacy permissions and no default privacy group."] = "Ce forum privé n'a pas de paramètres de vie privée ni de paramètres de confidentialité par défaut."; -$a->strings["Settings updated."] = "Réglages mis à jour."; -$a->strings["Add application"] = "Ajouter une application"; -$a->strings["Consumer Key"] = "Clé utilisateur"; -$a->strings["Consumer Secret"] = "Secret utilisateur"; -$a->strings["Redirect"] = "Rediriger"; -$a->strings["Icon url"] = "URL de l'icône"; -$a->strings["You can't edit this application."] = "Vous ne pouvez pas éditer cette application."; -$a->strings["Connected Apps"] = "Applications connectées"; -$a->strings["Client key starts with"] = "La clé cliente commence par"; -$a->strings["No name"] = "Sans nom"; -$a->strings["Remove authorization"] = "Révoquer l'autorisation"; -$a->strings["No Plugin settings configured"] = "Pas de réglages d'extensions configurés"; -$a->strings["Plugin Settings"] = "Extensions"; -$a->strings["Off"] = "Éteint"; -$a->strings["On"] = "Allumé"; -$a->strings["Additional Features"] = "Fonctions supplémentaires"; -$a->strings["General Social Media Settings"] = "Paramètres généraux des réseaux sociaux"; -$a->strings["Disable intelligent shortening"] = "Désactiver la réduction d'URL"; -$a->strings["Normally the system tries to find the best link to add to shortened posts. If this option is enabled then every shortened post will always point to the original friendica post."] = "Normalement, le système tente de trouver le meilleur lien à ajouter aux publications raccourcies. Si cette option est activée, les publications raccourcies dirigeront toujours vers leur publication d'origine sur Friendica."; -$a->strings["Automatically follow any GNU Social (OStatus) followers/mentioners"] = "Suivre automatiquement ceux qui me suivent ou me mentionnent sur GNU Social (OStatus)"; -$a->strings["If you receive a message from an unknown OStatus user, this option decides what to do. If it is checked, a new contact will be created for every unknown user."] = "Si vous recevez un message d'un utilisateur OStatus inconnu, cette option détermine ce qui sera fait. Si elle est cochée, un nouveau contact sera créé pour chaque utilisateur inconnu."; -$a->strings["Your legacy GNU Social account"] = "Le compte GNU Social que vous avez déjà"; -$a->strings["If you enter your old GNU Social/Statusnet account name here (in the format user@domain.tld), your contacts will be added automatically. The field will be emptied when done."] = "Si vous entrez le nom de votre ancien compte GNU Social / StatusNet ici (utiliser le format utilisateur@domaine.tld), vos contacts seront ajoutés automatiquement. Le champ sera vidé lorsque ce sera terminé."; -$a->strings["Repair OStatus subscriptions"] = "Réparer les abonnements OStatus"; -$a->strings["Built-in support for %s connectivity is %s"] = "Le support natif pour la connectivité %s est %s"; -$a->strings["Diaspora"] = "Diaspora"; -$a->strings["enabled"] = "activé"; -$a->strings["disabled"] = "désactivé"; -$a->strings["GNU Social (OStatus)"] = "GNU Social (OStatus)"; -$a->strings["Email access is disabled on this site."] = "L'accès courriel est désactivé sur ce site."; -$a->strings["Email/Mailbox Setup"] = "Réglages de courriel/boîte à lettre"; -$a->strings["If you wish to communicate with email contacts using this service (optional), please specify how to connect to your mailbox."] = "Si vous souhaitez communiquer avec vos contacts \"courriel\" (facultatif), merci de nous indiquer comment vous connecter à votre boîte."; -$a->strings["Last successful email check:"] = "Dernière vérification réussie des courriels:"; -$a->strings["IMAP server name:"] = "Nom du serveur IMAP:"; -$a->strings["IMAP port:"] = "Port IMAP:"; -$a->strings["Security:"] = "Sécurité:"; -$a->strings["None"] = "Aucun(e)"; -$a->strings["Email login name:"] = "Nom de connexion:"; -$a->strings["Email password:"] = "Mot de passe:"; -$a->strings["Reply-to address:"] = "Adresse de réponse:"; -$a->strings["Send public posts to all email contacts:"] = "Envoyer les publications publiques à tous les contacts courriels:"; -$a->strings["Action after import:"] = "Action après import:"; -$a->strings["Mark as seen"] = "Marquer comme vu"; -$a->strings["Move to folder"] = "Déplacer vers"; -$a->strings["Move to folder:"] = "Déplacer vers:"; -$a->strings["Display Settings"] = "Affichage"; -$a->strings["Display Theme:"] = "Thème d'affichage:"; -$a->strings["Mobile Theme:"] = "Thème mobile:"; -$a->strings["Update browser every xx seconds"] = "Mettre-à-jour l'affichage toutes les xx secondes"; -$a->strings["Minimum of 10 seconds. Enter -1 to disable it."] = "Minimum de 10 secondes. Saisir -1 pour désactiver."; -$a->strings["Number of items to display per page:"] = "Nombre d’éléments par page:"; -$a->strings["Maximum of 100 items"] = "Maximum de 100 éléments"; -$a->strings["Number of items to display per page when viewed from mobile device:"] = "Nombre d'éléments a afficher par page pour un appareil mobile"; -$a->strings["Don't show emoticons"] = "Ne pas afficher les émoticônes (smileys grahiques)"; -$a->strings["Calendar"] = "Calendrier"; -$a->strings["Beginning of week:"] = "Début de la semaine :"; -$a->strings["Don't show notices"] = "Ne plus afficher les avis"; -$a->strings["Infinite scroll"] = "Défilement infini"; -$a->strings["Automatic updates only at the top of the network page"] = "Mises à jour automatiques seulement en haut de la page du réseau."; -$a->strings["Theme settings"] = "Réglages du thème graphique"; -$a->strings["User Types"] = "Types d'utilisateurs"; -$a->strings["Community Types"] = "Genre de communautés"; -$a->strings["Normal Account Page"] = "Compte normal"; -$a->strings["This account is a normal personal profile"] = "Ce compte correspond à un profil normal, pour une seule personne (physique, généralement)"; -$a->strings["Soapbox Page"] = "Compte \"boîte à savon\""; -$a->strings["Automatically approve all connection/friend requests as read-only fans"] = "Accepter automatiquement toutes les demandes d'amitié/connexion comme étant des fans 'en lecture seule'"; -$a->strings["Community Forum/Celebrity Account"] = "Compte de communauté/célébrité"; -$a->strings["Automatically approve all connection/friend requests as read-write fans"] = "Accepter automatiquement toutes les demandes d'amitié/connexion comme étant des fans en 'lecture/écriture'"; -$a->strings["Automatic Friend Page"] = "Compte d'\"amitié automatique\""; -$a->strings["Automatically approve all connection/friend requests as friends"] = "Accepter automatiquement toutes les demandes d'amitié/connexion comme étant des amis"; -$a->strings["Private Forum [Experimental]"] = "Forum privé [expérimental]"; -$a->strings["Private forum - approved members only"] = "Forum privé - modéré en inscription"; -$a->strings["OpenID:"] = "OpenID:"; -$a->strings["(Optional) Allow this OpenID to login to this account."] = "&nbsp;(Facultatif) Autoriser cet OpenID à se connecter à ce compte."; -$a->strings["Publish your default profile in your local site directory?"] = "Publier votre profil par défaut sur l'annuaire local de ce site?"; -$a->strings["Publish your default profile in the global social directory?"] = "Publier votre profil par défaut sur l'annuaire social global?"; -$a->strings["Hide your contact/friend list from viewers of your default profile?"] = "Cacher votre liste de contacts/amis des visiteurs de votre profil par défaut?"; -$a->strings["Hide your profile details from unknown viewers?"] = "Cacher les détails du profil aux visiteurs inconnus?"; -$a->strings["If enabled, posting public messages to Diaspora and other networks isn't possible."] = ""; -$a->strings["Allow friends to post to your profile page?"] = "Autoriser vos amis à publier sur votre profil?"; -$a->strings["Allow friends to tag your posts?"] = "Autoriser vos amis à étiqueter vos publications?"; -$a->strings["Allow us to suggest you as a potential friend to new members?"] = "Autoriser les suggestions d'amis potentiels aux nouveaux arrivants?"; -$a->strings["Permit unknown people to send you private mail?"] = "Autoriser les messages privés d'inconnus?"; -$a->strings["Profile is not published."] = "Ce profil n'est pas publié."; -$a->strings["Your Identity Address is '%s' or '%s'."] = "L’adresse de votre identité est '%s' or '%s'."; -$a->strings["Automatically expire posts after this many days:"] = "Les publications expirent automatiquement après (en jours) :"; -$a->strings["If empty, posts will not expire. Expired posts will be deleted"] = "Si ce champ est vide, les publications n'expireront pas. Les publications expirées seront supprimées"; -$a->strings["Advanced expiration settings"] = "Réglages avancés de l'expiration"; -$a->strings["Advanced Expiration"] = "Expiration (avancé)"; -$a->strings["Expire posts:"] = "Faire expirer les publications:"; -$a->strings["Expire personal notes:"] = "Faire expirer les notes personnelles:"; -$a->strings["Expire starred posts:"] = "Faire expirer les publications marqués:"; -$a->strings["Expire photos:"] = "Faire expirer les photos:"; -$a->strings["Only expire posts by others:"] = "Faire expirer seulement les publications des autres:"; -$a->strings["Account Settings"] = "Compte"; -$a->strings["Password Settings"] = "Réglages de mot de passe"; -$a->strings["New Password:"] = "Nouveau mot de passe:"; -$a->strings["Confirm:"] = "Confirmer:"; -$a->strings["Leave password fields blank unless changing"] = "Laissez les champs de mot de passe vierges, sauf si vous désirez les changer"; -$a->strings["Current Password:"] = "Mot de passe actuel:"; -$a->strings["Your current password to confirm the changes"] = "Votre mot de passe actuel pour confirmer les modifications"; -$a->strings["Password:"] = "Mot de passe:"; -$a->strings["Basic Settings"] = "Réglages basiques"; -$a->strings["Full Name:"] = "Nom complet:"; -$a->strings["Email Address:"] = "Adresse courriel:"; -$a->strings["Your Timezone:"] = "Votre fuseau horaire:"; -$a->strings["Your Language:"] = "Votre langue :"; -$a->strings["Set the language we use to show you friendica interface and to send you emails"] = "Détermine la langue que nous utilisons pour afficher votre interface Friendica et pour vous envoyer des courriels"; -$a->strings["Default Post Location:"] = "Emplacement de publication par défaut:"; -$a->strings["Use Browser Location:"] = "Utiliser la localisation géographique du navigateur:"; -$a->strings["Security and Privacy Settings"] = "Réglages de sécurité et vie privée"; -$a->strings["Maximum Friend Requests/Day:"] = "Nombre maximal de requêtes d'amitié/jour:"; -$a->strings["(to prevent spam abuse)"] = "(pour limiter l'impact du spam)"; -$a->strings["Default Post Permissions"] = "Permissions de publication par défaut"; -$a->strings["(click to open/close)"] = "(cliquer pour ouvrir/fermer)"; -$a->strings["Show to Groups"] = "Montrer aux groupes"; -$a->strings["Show to Contacts"] = "Montrer aux Contacts"; -$a->strings["Default Private Post"] = "Message privé par défaut"; -$a->strings["Default Public Post"] = "Message publique par défaut"; -$a->strings["Default Permissions for New Posts"] = "Permissions par défaut pour les nouvelles publications"; -$a->strings["Maximum private messages per day from unknown people:"] = "Maximum de messages privés d'inconnus par jour:"; -$a->strings["Notification Settings"] = "Réglages de notification"; -$a->strings["By default post a status message when:"] = "Par défaut, poster un statut quand:"; -$a->strings["accepting a friend request"] = "j'accepte un ami"; -$a->strings["joining a forum/community"] = "joignant un forum/une communauté"; -$a->strings["making an interesting profile change"] = "je fais une modification intéressante de mon profil"; -$a->strings["Send a notification email when:"] = "Envoyer un courriel de notification quand:"; -$a->strings["You receive an introduction"] = "Vous recevez une introduction"; -$a->strings["Your introductions are confirmed"] = "Vos introductions sont confirmées"; -$a->strings["Someone writes on your profile wall"] = "Quelqu'un écrit sur votre mur"; -$a->strings["Someone writes a followup comment"] = "Quelqu'un vous commente"; -$a->strings["You receive a private message"] = "Vous recevez un message privé"; -$a->strings["You receive a friend suggestion"] = "Vous avez reçu une suggestion d'ami"; -$a->strings["You are tagged in a post"] = "Vous avez été étiquetté dans une publication"; -$a->strings["You are poked/prodded/etc. in a post"] = "Vous avez été sollicité dans une publication"; -$a->strings["Activate desktop notifications"] = "Activer les notifications de bureau"; -$a->strings["Show desktop popup on new notifications"] = "Afficher dans des pops-ups les nouvelles notifications"; -$a->strings["Text-only notification emails"] = "Courriels de notification en format texte"; -$a->strings["Send text only notification emails, without the html part"] = "Envoyer le texte des courriels de notification, sans la composante html"; -$a->strings["Advanced Account/Page Type Settings"] = "Paramètres avancés de compte/page"; -$a->strings["Change the behaviour of this account for special situations"] = "Modifier le comportement de ce compte dans certaines situations"; -$a->strings["Relocate"] = "Relocaliser"; -$a->strings["If you have moved this profile from another server, and some of your contacts don't receive your updates, try pushing this button."] = "Si vous avez migré ce profil depuis un autre serveur et que vos contacts ne reçoivent plus vos mises à jour, essayez ce bouton."; -$a->strings["Resend relocate message to contacts"] = "Renvoyer un message de relocalisation aux contacts."; -$a->strings["This introduction has already been accepted."] = "Cette introduction a déjà été acceptée."; -$a->strings["Profile location is not valid or does not contain profile information."] = "L'emplacement du profil est invalide ou ne contient pas de profil valide."; -$a->strings["Warning: profile location has no identifiable owner name."] = "Attention: l'emplacement du profil n'a pas de nom identifiable."; -$a->strings["Warning: profile location has no profile photo."] = "Attention: l'emplacement du profil n'a pas de photo de profil."; -$a->strings["%d required parameter was not found at the given location"] = array( - 0 => "%d paramètre requis n'a pas été trouvé à l'endroit indiqué", - 1 => "%d paramètres requis n'ont pas été trouvés à l'endroit indiqué", -); -$a->strings["Introduction complete."] = "Phase d'introduction achevée."; -$a->strings["Unrecoverable protocol error."] = "Erreur de protocole non-récupérable."; -$a->strings["Profile unavailable."] = "Profil indisponible."; -$a->strings["%s has received too many connection requests today."] = "%s a reçu trop de demandes d'introduction aujourd'hui."; -$a->strings["Spam protection measures have been invoked."] = "Des mesures de protection contre le spam ont été déclenchées."; -$a->strings["Friends are advised to please try again in 24 hours."] = "Les relations sont encouragées à attendre 24 heures pour recommencer."; -$a->strings["Invalid locator"] = "Localisateur invalide"; -$a->strings["Invalid email address."] = "Adresse courriel invalide."; -$a->strings["This account has not been configured for email. Request failed."] = "Ce compte n'a pas été configuré pour les échanges de courriel. Requête avortée."; -$a->strings["Unable to resolve your name at the provided location."] = "Impossible de résoudre votre nom à l'emplacement fourni."; -$a->strings["You have already introduced yourself here."] = "Vous vous êtes déjà présenté ici."; -$a->strings["Apparently you are already friends with %s."] = "Il semblerait que vous soyez déjà ami avec %s."; -$a->strings["Invalid profile URL."] = "URL de profil invalide."; -$a->strings["Disallowed profile URL."] = "URL de profil interdite."; -$a->strings["Your introduction has been sent."] = "Votre introduction a été envoyée."; -$a->strings["Please login to confirm introduction."] = "Connectez-vous pour confirmer l'introduction."; -$a->strings["Incorrect identity currently logged in. Please login to this profile."] = "Identité incorrecte actuellement connectée. Merci de vous connecter à ce profil."; -$a->strings["Confirm"] = "Confirmer"; -$a->strings["Hide this contact"] = "Cacher ce contact"; -$a->strings["Welcome home %s."] = "Bienvenue chez vous, %s."; -$a->strings["Please confirm your introduction/connection request to %s."] = "Merci de confirmer votre demande d'introduction auprès de %s."; -$a->strings["Please enter your 'Identity Address' from one of the following supported communications networks:"] = "Merci d'entrer votre \"adresse d'identité\" de l'un des réseaux de communication suivant:"; -$a->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 vous n’êtes pas encore membre du web social libre, suivez ce lien pour trouver un site Friendica ouvert au public et nous rejoindre dès aujourd’hui."; -$a->strings["Friend/Connection Request"] = "Requête de relation/amitié"; -$a->strings["Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, testuser@identi.ca"] = "Exemples : jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, testuser@identi.ca"; -$a->strings["Friendica"] = "Friendica"; -$a->strings["StatusNet/Federated Social Web"] = "StatusNet/Federated Social Web"; -$a->strings[" - please do not use this form. Instead, enter %s into your Diaspora search bar."] = " - merci de ne pas utiliser ce formulaire. Entrez plutôt %s dans votre barre de recherche Diaspora."; -$a->strings["Registration successful. Please check your email for further instructions."] = "Inscription réussie. Vérifiez vos emails pour la suite des instructions."; -$a->strings["Failed to send email message. Here your accout details:
      login: %s
      password: %s

      You can change your password after login."] = "Impossible d’envoyer le courriel de confirmation. Voici vos informations de connexion:
      identifiant : %s
      mot de passe : %s

      Vous pourrez changer votre mot de passe une fois connecté."; -$a->strings["Registration successful."] = "Inscription réussie."; -$a->strings["Your registration can not be processed."] = "Votre inscription ne peut être traitée."; -$a->strings["Your registration is pending approval by the site owner."] = "Votre inscription attend une validation du propriétaire du site."; -$a->strings["This site has exceeded the number of allowed daily account registrations. Please try again tomorrow."] = "Le nombre d'inscriptions quotidiennes pour ce site a été dépassé. Merci de réessayer demain."; -$a->strings["You may (optionally) fill in this form via OpenID by supplying your OpenID and clicking 'Register'."] = "Vous pouvez (si vous le souhaitez) remplir ce formulaire via OpenID. Fournissez votre OpenID et cliquez \"S'inscrire\"."; -$a->strings["If you are not familiar with OpenID, please leave that field blank and fill in the rest of the items."] = "Si vous n'êtes pas familier avec OpenID, laissez ce champ vide et remplissez le reste."; -$a->strings["Your OpenID (optional): "] = "Votre OpenID (facultatif): "; -$a->strings["Include your profile in member directory?"] = "Inclure votre profil dans l'annuaire des membres?"; -$a->strings["Membership on this site is by invitation only."] = "L'inscription à ce site se fait uniquement sur invitation."; -$a->strings["Your invitation ID: "] = "Votre ID d'invitation: "; -$a->strings["Your Full Name (e.g. Joe Smith, real or real-looking): "] = "Votre nom complet (p. ex. Michel Dupont):"; -$a->strings["Your Email Address: "] = "Votre adresse courriel: "; -$a->strings["Leave empty for an auto generated password."] = "Laisser ce champ libre pour obtenir un mot de passe généré automatiquement."; -$a->strings["Choose a profile nickname. This must begin with a text character. Your profile address on this site will then be 'nickname@\$sitename'."] = "Choisissez un pseudo. Celui devra commencer par une lettre. L'adresse de votre profil en découlera sous la forme '<strong>pseudo@\$sitename</strong>'."; -$a->strings["Choose a nickname: "] = "Choisir un pseudo: "; -$a->strings["Register"] = "S'inscrire"; -$a->strings["Import"] = "Importer"; -$a->strings["Import your profile to this friendica instance"] = "Importer votre profile dans cette instance de friendica"; -$a->strings["System down for maintenance"] = "Système indisponible pour cause de maintenance"; -$a->strings["Only logged in users are permitted to perform a search."] = "Seuls les utilisateurs inscrits sont autorisés à lancer une recherche."; -$a->strings["Too Many Requests"] = "Trop de requêtes"; -$a->strings["Only one search per minute is permitted for not logged in users."] = "Une seule recherche par minute pour les utilisateurs qui ne sont pas connectés."; -$a->strings["Search"] = "Recherche"; -$a->strings["Items tagged with: %s"] = ""; -$a->strings["Search results for: %s"] = ""; -$a->strings["Status:"] = "Statut:"; -$a->strings["Homepage:"] = "Page personnelle:"; -$a->strings["Global Directory"] = "Annuaire global"; -$a->strings["Find on this site"] = "Trouver sur ce site"; -$a->strings["Finding:"] = ""; -$a->strings["Site Directory"] = "Annuaire local"; -$a->strings["No entries (some entries may be hidden)."] = "Aucune entrée (certaines peuvent être cachées)."; -$a->strings["No potential page delegates located."] = "Pas de délégataire potentiel."; -$a->strings["Delegate Page Management"] = "Déléguer la gestion de la page"; -$a->strings["Delegates are able to manage all aspects of this account/page except for basic account settings. Please do not delegate your personal account to anybody that you do not trust completely."] = "Les délégataires seront capables de gérer tous les aspects de ce compte ou de cette page, à l'exception des réglages de compte. Merci de ne pas déléguer votre compte principal à quelqu'un en qui vous n'avez pas une confiance absolue."; -$a->strings["Existing Page Managers"] = "Gestionnaires existants"; -$a->strings["Existing Page Delegates"] = "Délégataires existants"; -$a->strings["Potential Delegates"] = "Délégataires potentiels"; -$a->strings["Add"] = "Ajouter"; -$a->strings["No entries."] = "Aucune entrée."; -$a->strings["No contacts in common."] = "Pas de contacts en commun."; -$a->strings["Export account"] = "Exporter le compte"; -$a->strings["Export your account info and contacts. Use this to make a backup of your account and/or to move it to another server."] = "Exportez votre compte, vos infos et vos contacts. Vous pourrez utiliser le résultat comme sauvegarde et/ou pour le ré-importer sur un autre serveur."; -$a->strings["Export all"] = "Tout exporter"; -$a->strings["Export your accout info, contacts and all your items as json. Could be a very big file, and could take a lot of time. Use this to make a full backup of your account (photos are not exported)"] = "Exportez votre compte, vos infos, vos contacts et toutes vos publications (en JSON). Le fichier résultant peut être extrêmement volumineux, et sa production peut durer longtemps. Vous pourrez l'utiliser pour faire une sauvegarde complète (à part les photos)."; -$a->strings["%1\$s is currently %2\$s"] = "%1\$s est d'humeur %2\$s"; -$a->strings["Mood"] = "Humeur"; -$a->strings["Set your current mood and tell your friends"] = "Spécifiez votre humeur du moment, et informez vos amis"; -$a->strings["Do you really want to delete this suggestion?"] = "Voulez-vous vraiment supprimer cette suggestion ?"; -$a->strings["No suggestions available. If this is a new site, please try again in 24 hours."] = "Aucune suggestion. Si ce site est récent, merci de recommencer dans 24h."; -$a->strings["Ignore/Hide"] = "Ignorer/cacher"; -$a->strings["Friend Suggestions"] = "Suggestions d'amitiés/contacts"; -$a->strings["Profile deleted."] = "Profil supprimé."; -$a->strings["Profile-"] = "Profil-"; -$a->strings["New profile created."] = "Nouveau profil créé."; -$a->strings["Profile unavailable to clone."] = "Ce profil ne peut être cloné."; -$a->strings["Profile Name is required."] = "Le nom du profil est requis."; -$a->strings["Marital Status"] = "Statut marital"; -$a->strings["Romantic Partner"] = "Partenaire / conjoint"; -$a->strings["Likes"] = "Derniers \"J'aime\""; -$a->strings["Dislikes"] = "Derniers \"Je n'aime pas\""; -$a->strings["Work/Employment"] = "Travail / Occupation"; -$a->strings["Religion"] = "Religion"; -$a->strings["Political Views"] = "Tendance politique"; -$a->strings["Gender"] = "Sexe"; -$a->strings["Sexual Preference"] = "Préférence sexuelle"; -$a->strings["Homepage"] = "Site internet"; -$a->strings["Interests"] = "Centres d'intérêt"; -$a->strings["Address"] = "Adresse"; -$a->strings["Location"] = "Localisation"; -$a->strings["Profile updated."] = "Profil mis à jour."; -$a->strings[" and "] = " et "; -$a->strings["public profile"] = "profil public"; -$a->strings["%1\$s changed %2\$s to “%3\$s”"] = "%1\$s a changé %2\$s en “%3\$s”"; -$a->strings[" - Visit %1\$s's %2\$s"] = "Visiter le %2\$s de %1\$s"; -$a->strings["%1\$s has an updated %2\$s, changing %3\$s."] = "%1\$s a mis à jour son %2\$s, en modifiant %3\$s."; -$a->strings["Hide contacts and friends:"] = "Cacher mes contacts et amis :"; -$a->strings["Hide your contact/friend list from viewers of this profile?"] = "Cacher ma liste d'amis / contacts des visiteurs de ce profil ?"; -$a->strings["Show more profile fields:"] = ""; -$a->strings["Edit Profile Details"] = "Éditer les détails du profil"; -$a->strings["Change Profile Photo"] = "Changer la photo du profil"; -$a->strings["View this profile"] = "Voir ce profil"; -$a->strings["Create a new profile using these settings"] = "Créer un nouveau profil en utilisant ces réglages"; -$a->strings["Clone this profile"] = "Cloner ce profil"; -$a->strings["Delete this profile"] = "Supprimer ce profil"; -$a->strings["Basic information"] = "Information de base"; -$a->strings["Profile picture"] = "Image de profil"; -$a->strings["Preferences"] = "Préférences"; -$a->strings["Status information"] = "Information sur le statut"; -$a->strings["Additional information"] = "Information additionnelle"; -$a->strings["Profile Name:"] = "Nom du profil :"; -$a->strings["Your Full Name:"] = "Votre nom complet :"; -$a->strings["Title/Description:"] = "Titre / Description :"; -$a->strings["Your Gender:"] = "Votre genre :"; -$a->strings["Birthday :"] = "Anniversaire :"; -$a->strings["Street Address:"] = "Adresse postale :"; -$a->strings["Locality/City:"] = "Ville / Localité :"; -$a->strings["Postal/Zip Code:"] = "Code postal :"; -$a->strings["Country:"] = "Pays :"; -$a->strings["Region/State:"] = "Région / État :"; -$a->strings[" Marital Status:"] = " Statut marital :"; -$a->strings["Who: (if applicable)"] = "Qui : (si pertinent)"; -$a->strings["Examples: cathy123, Cathy Williams, cathy@example.com"] = "Exemples: cathy123, Cathy Williams, cathy@example.com"; -$a->strings["Since [date]:"] = "Depuis [date] :"; -$a->strings["Sexual Preference:"] = "Préférence sexuelle:"; -$a->strings["Homepage URL:"] = "Page personnelle :"; -$a->strings["Hometown:"] = " Ville d'origine:"; -$a->strings["Political Views:"] = "Opinions politiques:"; -$a->strings["Religious Views:"] = "Opinions religieuses :"; -$a->strings["Public Keywords:"] = "Mots-clés publics :"; -$a->strings["Private Keywords:"] = "Mots-clés privés :"; -$a->strings["Likes:"] = "J'aime :"; -$a->strings["Dislikes:"] = "Je n'aime pas :"; -$a->strings["Example: fishing photography software"] = "Exemple : football dessin programmation"; -$a->strings["(Used for suggesting potential friends, can be seen by others)"] = "(Utilisés pour vous suggérer des amis potentiels, peuvent être vus par autrui)"; -$a->strings["(Used for searching profiles, never shown to others)"] = "(Utilisés pour rechercher dans les profils, ne seront jamais montrés à autrui)"; -$a->strings["Tell us about yourself..."] = "Parlez-nous de vous..."; -$a->strings["Hobbies/Interests"] = "Passe-temps / Centres d'intérêt"; -$a->strings["Contact information and Social Networks"] = "Coordonnées / Réseaux sociaux"; -$a->strings["Musical interests"] = "Goûts musicaux"; -$a->strings["Books, literature"] = "Lectures"; -$a->strings["Television"] = "Télévision"; -$a->strings["Film/dance/culture/entertainment"] = "Cinéma / Danse / Culture / Divertissement"; -$a->strings["Love/romance"] = "Amour / Romance"; -$a->strings["Work/employment"] = "Activité professionnelle / Occupation"; -$a->strings["School/education"] = "Études / Formation"; -$a->strings["This is your public profile.
      It may be visible to anybody using the internet."] = "Ceci est votre profil public.
      Il peut être visible par n'importe quel utilisateur d'Internet."; -$a->strings["Age: "] = "Age : "; -$a->strings["Edit/Manage Profiles"] = "Editer / gérer les profils"; -$a->strings["Change profile photo"] = "Changer de photo de profil"; -$a->strings["Create New Profile"] = "Créer un nouveau profil"; -$a->strings["Profile Image"] = "Image du profil"; -$a->strings["visible to everybody"] = "visible par tous"; -$a->strings["Edit visibility"] = "Changer la visibilité"; -$a->strings["Item not found"] = "Élément introuvable"; -$a->strings["Edit post"] = "Éditer la publication"; -$a->strings["upload photo"] = "envoi image"; -$a->strings["Attach file"] = "Joindre fichier"; -$a->strings["attach file"] = "ajout fichier"; -$a->strings["web link"] = "lien web"; -$a->strings["Insert video link"] = "Insérer un lien video"; -$a->strings["video link"] = "lien vidéo"; -$a->strings["Insert audio link"] = "Insérer un lien audio"; -$a->strings["audio link"] = "lien audio"; -$a->strings["Set your location"] = "Définir votre localisation"; -$a->strings["set location"] = "spéc. localisation"; -$a->strings["Clear browser location"] = "Effacer la localisation du navigateur"; -$a->strings["clear location"] = "supp. localisation"; -$a->strings["Permission settings"] = "Réglages des permissions"; -$a->strings["CC: email addresses"] = "CC: adresses de courriel"; -$a->strings["Public post"] = "Publication publique"; -$a->strings["Set title"] = "Définir un titre"; -$a->strings["Categories (comma-separated list)"] = "Catégories (séparées par des virgules)"; -$a->strings["Example: bob@example.com, mary@example.com"] = "Exemple: bob@exemple.com, mary@exemple.com"; -$a->strings["This is Friendica, version"] = "Motorisé par Friendica version"; -$a->strings["running at web location"] = "hébergé sur"; -$a->strings["Please visit Friendica.com to learn more about the Friendica project."] = "Merci de vous rendre sur Friendica.com si vous souhaitez en savoir plus sur le projet Friendica."; -$a->strings["Bug reports and issues: please visit"] = "Pour les rapports de bugs: rendez vous sur"; -$a->strings["the bugtracker at github"] = ""; -$a->strings["Suggestions, praise, donations, etc. - please email \"Info\" at Friendica - dot com"] = "Suggestions, remerciements, donations, etc. - écrivez à \"Info\" arob. Friendica - point com"; -$a->strings["Installed plugins/addons/apps:"] = "Extensions/greffons/applications installées:"; -$a->strings["No installed plugins/addons/apps"] = "Extensions/greffons/applications non installées:"; -$a->strings["Authorize application connection"] = "Autoriser l'application à se connecter"; -$a->strings["Return to your app and insert this Securty Code:"] = "Retournez à votre application et saisissez ce Code de Sécurité : "; -$a->strings["Please login to continue."] = "Merci de vous connecter pour continuer."; -$a->strings["Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?"] = "Voulez-vous autoriser cette application à accéder à vos publications et contacts, et/ou à créer des billets à votre place?"; -$a->strings["Remote privacy information not available."] = "Informations de confidentialité indisponibles."; -$a->strings["Visible to:"] = "Visible par:"; -$a->strings["Personal Notes"] = "Notes personnelles"; -$a->strings["l F d, Y \\@ g:i A"] = "l F d, Y \\@ g:i A"; -$a->strings["Time Conversion"] = "Conversion temporelle"; -$a->strings["Friendica provides this service for sharing events with other networks and friends in unknown timezones."] = "Friendica fournit ce service pour partager des événements avec d'autres réseaux et amis indépendament de leur fuseau horaire."; -$a->strings["UTC time: %s"] = "Temps UTC : %s"; -$a->strings["Current timezone: %s"] = "Zone de temps courante : %s"; -$a->strings["Converted localtime: %s"] = "Temps local converti : %s"; -$a->strings["Please select your timezone:"] = "Sélectionner votre zone :"; -$a->strings["Poke/Prod"] = "Solliciter"; -$a->strings["poke, prod or do other things to somebody"] = "solliciter (poke/...) quelqu'un"; -$a->strings["Recipient"] = "Destinataire"; -$a->strings["Choose what you wish to do to recipient"] = "Choisissez ce que vous voulez faire au destinataire"; -$a->strings["Make this post private"] = "Rendez ce message privé"; -$a->strings["Resubscribing to OStatus contacts"] = ""; -$a->strings["Error"] = "Erreur"; -$a->strings["Total invitation limit exceeded."] = "La limite d'invitation totale est éxédée."; -$a->strings["%s : Not a valid email address."] = "%s : Adresse de courriel invalide."; -$a->strings["Please join us on Friendica"] = "Rejoignez-nous sur Friendica"; -$a->strings["Invitation limit exceeded. Please contact your site administrator."] = "Limite d'invitation exédée. Veuillez contacter l'administrateur de votre site."; -$a->strings["%s : Message delivery failed."] = "%s : L'envoi du message a échoué."; -$a->strings["%d message sent."] = array( - 0 => "%d message envoyé.", - 1 => "%d messages envoyés.", -); -$a->strings["You have no more invitations available"] = "Vous n'avez plus d'invitations disponibles"; -$a->strings["Visit %s for a list of public sites that you can join. Friendica members on other sites can all connect with each other, as well as with members of many other social networks."] = "Visitez %s pour une liste des sites publics que vous pouvez rejoindre. Les membres de Friendica appartenant à d'autres sites peuvent s'interconnecter, ainsi qu'avec les membres de plusieurs autres réseaux sociaux."; -$a->strings["To accept this invitation, please visit and register at %s or any other public Friendica website."] = "Pour accepter cette invitation, merci d'aller vous inscrire sur %s, ou n'importe quel autre site Friendica public."; -$a->strings["Friendica sites all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks. See %s for a list of alternate Friendica sites you can join."] = "Les sites Friendica sont tous interconnectés pour créer un immense réseau social respectueux de la vie privée, possédé et contrôllé par ses membres. Ils peuvent également interagir avec plusieurs réseaux sociaux traditionnels. Voir %s pour une liste d'autres sites Friendica que vous pourriez rejoindre."; -$a->strings["Our apologies. This system is not currently configured to connect with other public sites or invite members."] = "Toutes nos excuses. Ce système n'est pas configuré pour se connecter à d'autres sites publics ou inviter de nouveaux membres."; -$a->strings["Send invitations"] = "Envoyer des invitations"; -$a->strings["Enter email addresses, one per line:"] = "Entrez les adresses email, une par ligne :"; -$a->strings["You are cordially invited to join me and other close friends on Friendica - and help us to create a better social web."] = "Vous êtes cordialement invité à me rejoindre sur Friendica, et nous aider ainsi à créer un meilleur web social."; -$a->strings["You will need to supply this invitation code: \$invite_code"] = "Vous devrez fournir ce code d'invitation : \$invite_code"; -$a->strings["Once you have registered, please connect with me via my profile page at:"] = "Une fois inscrit, connectez-vous à la page de mon profil sur :"; -$a->strings["For more information about the Friendica project and why we feel it is important, please visit http://friendica.com"] = "Pour plus d'information sur le projet Friendica, et pourquoi nous croyons qu'il est important, merci de visiter http://friendica.com"; -$a->strings["Photo Albums"] = "Albums photo"; -$a->strings["Recent Photos"] = "Photos récentes"; -$a->strings["Upload New Photos"] = "Téléverser de nouvelles photos"; -$a->strings["Contact information unavailable"] = "Informations de contact indisponibles"; -$a->strings["Album not found."] = "Album introuvable."; -$a->strings["Delete Album"] = "Effacer l'album"; -$a->strings["Do you really want to delete this photo album and all its photos?"] = "Voulez-vous vraiment supprimer cet album photo et toutes ses photos ?"; -$a->strings["Delete Photo"] = "Effacer la photo"; -$a->strings["Do you really want to delete this photo?"] = "Voulez-vous vraiment supprimer cette photo ?"; -$a->strings["%1\$s was tagged in %2\$s by %3\$s"] = "%1\$s a été étiqueté dans %2\$s par %3\$s"; -$a->strings["a photo"] = "une photo"; -$a->strings["Image file is empty."] = "Fichier image vide."; -$a->strings["No photos selected"] = "Aucune photo sélectionnée"; -$a->strings["You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage."] = "Vous avez utilisé %1$.2f Mo sur %2$.2f d'espace de stockage pour les photos."; -$a->strings["Upload Photos"] = "Téléverser des photos"; -$a->strings["New album name: "] = "Nom du nouvel album: "; -$a->strings["or existing album name: "] = "ou nom d'un album existant: "; -$a->strings["Do not show a status post for this upload"] = "Ne pas publier de notice de statut pour cet envoi"; -$a->strings["Permissions"] = "Permissions"; -$a->strings["Private Photo"] = "Photo privée"; -$a->strings["Public Photo"] = "Photo publique"; -$a->strings["Edit Album"] = "Éditer l'album"; -$a->strings["Show Newest First"] = "Plus récent d'abord"; -$a->strings["Show Oldest First"] = "Plus ancien d'abord"; -$a->strings["View Photo"] = "Voir la photo"; -$a->strings["Permission denied. Access to this item may be restricted."] = "Interdit. L'accès à cet élément peut avoir été restreint."; -$a->strings["Photo not available"] = "Photo indisponible"; -$a->strings["View photo"] = "Voir photo"; -$a->strings["Edit photo"] = "Éditer la photo"; -$a->strings["Use as profile photo"] = "Utiliser comme photo de profil"; -$a->strings["View Full Size"] = "Voir en taille réelle"; -$a->strings["Tags: "] = "Étiquettes:"; -$a->strings["[Remove any tag]"] = "[Retirer toutes les étiquettes]"; -$a->strings["New album name"] = "Nom du nouvel album"; -$a->strings["Caption"] = "Titre"; -$a->strings["Add a Tag"] = "Ajouter une étiquette"; -$a->strings["Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"] = "Exemples: @bob, @Barbara_Jensen, @jim@example.com, #Californie, #vacances"; -$a->strings["Do not rotate"] = "Pas de rotation"; -$a->strings["Rotate CW (right)"] = "Tourner dans le sens des aiguilles d'une montre (vers la droite)"; -$a->strings["Rotate CCW (left)"] = "Tourner dans le sens contraire des aiguilles d'une montre (vers la gauche)"; -$a->strings["Private photo"] = "Photo privée"; -$a->strings["Public photo"] = "Photo publique"; -$a->strings["Share"] = "Partager"; -$a->strings["Attending"] = array( - 0 => "", - 1 => "", -); -$a->strings["Not attending"] = "Ne participe pas"; -$a->strings["Might attend"] = "Participera peut-être"; -$a->strings["Map"] = "Carte"; -$a->strings["Not Extended"] = ""; -$a->strings["Account approved."] = "Inscription validée."; -$a->strings["Registration revoked for %s"] = "Inscription révoquée pour %s"; -$a->strings["Please login."] = "Merci de vous connecter."; -$a->strings["Move account"] = "Migrer le compte"; -$a->strings["You can import an account from another Friendica server."] = "Vous pouvez importer un compte d'un autre serveur Friendica."; -$a->strings["You need to export your account from the old server and upload it here. We will recreate your old account here with all your contacts. We will try also to inform your friends that you moved here."] = "Vous devez exporter votre compte à partir de l'ancien serveur et le téléverser ici. Nous recréerons votre ancien compte ici avec tous vos contacts. Nous tenterons également d'informer vos amis que vous avez déménagé ici."; -$a->strings["This feature is experimental. We can't import contacts from the OStatus network (GNU Social/Statusnet) or from Diaspora"] = ""; -$a->strings["Account file"] = "Fichier du compte"; -$a->strings["To export your account, go to \"Settings->Export your personal data\" and select \"Export account\""] = "Pour exporter votre compte, allez dans \"Paramètres> Exporter vos données personnelles\" et sélectionnez \"exportation de compte\""; -$a->strings["Item not available."] = "Elément non disponible."; -$a->strings["Item was not found."] = "Element introuvable."; +$a->strings["PHP logging"] = ""; +$a->strings["To enable logging of PHP errors and warnings you can add the following to the .htconfig.php file of your installation. The filename set in the 'error_log' line is relative to the friendica top-level directory and must be writeable by the web server. The option '1' for 'log_errors' and 'display_errors' is to enable these options, set to '0' to disable them."] = ""; +$a->strings["Lock feature %s"] = ""; +$a->strings["Manage Additional Features"] = ""; +$a->strings["via"] = "via"; +$a->strings["Repeat the image"] = ""; +$a->strings["Will repeat your image to fill the background."] = ""; +$a->strings["Stretch"] = ""; +$a->strings["Will stretch to width/height of the image."] = ""; +$a->strings["Resize fill and-clip"] = ""; +$a->strings["Resize to fill and retain aspect ratio."] = ""; +$a->strings["Resize best fit"] = ""; +$a->strings["Resize to best fit and retain aspect ratio."] = ""; +$a->strings["Default"] = ""; +$a->strings["Note: "] = ""; +$a->strings["Check image permissions if all users are allowed to visit the image"] = ""; +$a->strings["Select scheme"] = ""; +$a->strings["Navigation bar background color"] = ""; +$a->strings["Navigation bar icon color "] = ""; +$a->strings["Link color"] = ""; +$a->strings["Set the background color"] = ""; +$a->strings["Content background transparency"] = ""; +$a->strings["Set the background image"] = ""; +$a->strings["Guest"] = ""; +$a->strings["Visitor"] = ""; +$a->strings["Set resize level for images in posts and comments (width and height)"] = "Choisir une taille pour les images dans les publications et commentaires (largeur et hauteur)"; +$a->strings["Set font-size for posts and comments"] = "Réglez 'font-size' (taille de police) pour publications et commentaires"; +$a->strings["Set theme width"] = "Largeur du thème"; +$a->strings["Color scheme"] = "Palette de couleurs"; +$a->strings["Alignment"] = "Alignement"; +$a->strings["Left"] = "Gauche"; +$a->strings["Center"] = "Centre"; +$a->strings["Posts font size"] = "Taille de texte des publications"; +$a->strings["Textareas font size"] = "Taille de police des zones de texte"; +$a->strings["Set line-height for posts and comments"] = "Réglez 'line-height' (hauteur de police) pour publications et commentaires"; +$a->strings["Set colour scheme"] = "Choisir le schéma de couleurs"; +$a->strings["Community Profiles"] = "Profils communautaires"; +$a->strings["Last users"] = "Derniers utilisateurs"; +$a->strings["Find Friends"] = "Trouver des amis"; +$a->strings["Local Directory"] = "Annuaire local"; +$a->strings["Quick Start"] = "Démarrage rapide"; +$a->strings["Connect Services"] = "Connecter des services"; +$a->strings["Comma separated list of helper forums"] = ""; +$a->strings["Set style"] = "Définir le style"; +$a->strings["Community Pages"] = "Pages de Communauté"; +$a->strings["Help or @NewHere ?"] = "Aide ou @NewHere?"; +$a->strings["Your contacts"] = "Vos contacts"; +$a->strings["Your personal photos"] = "Vos photos personnelles"; +$a->strings["Last likes"] = "Dernièrement aimé"; +$a->strings["Last photos"] = "Dernières photos"; +$a->strings["Earth Layers"] = "Géolocalisation"; +$a->strings["Set zoomfactor for Earth Layers"] = "Régler le niveau de zoom pour la géolocalisation"; +$a->strings["Set longitude (X) for Earth Layers"] = "Régler la longitude (X) pour la géolocalisation"; +$a->strings["Set latitude (Y) for Earth Layers"] = "Régler la latitude (Y) pour la géolocalisation"; +$a->strings["Show/hide boxes at right-hand column:"] = "Montrer/cacher les boîtes dans la colonne de droite :"; +$a->strings["Set resolution for middle column"] = "Réglez la résolution de la colonne centrale"; +$a->strings["Set color scheme"] = "Choisir le schéma de couleurs"; +$a->strings["Set zoomfactor for Earth Layer"] = "Niveau de zoom"; +$a->strings["greenzero"] = ""; +$a->strings["purplezero"] = ""; +$a->strings["easterbunny"] = ""; +$a->strings["darkzero"] = ""; +$a->strings["comix"] = ""; +$a->strings["slackr"] = ""; +$a->strings["Variations"] = "Variations"; $a->strings["Delete this item?"] = "Effacer cet élément?"; $a->strings["show fewer"] = "montrer moins"; $a->strings["Update %s failed. See error logs."] = "Mise-à-jour %s échouée. Voir les journaux d'erreur."; $a->strings["Create a New Account"] = "Créer un nouveau compte"; -$a->strings["Logout"] = "Se déconnecter"; -$a->strings["Nickname or Email address: "] = "Pseudo ou courriel: "; $a->strings["Password: "] = "Mot de passe: "; $a->strings["Remember me"] = "Se souvenir de moi"; $a->strings["Or login using OpenID: "] = "Ou connectez-vous via OpenID: "; @@ -1408,575 +2029,4 @@ $a->strings["Website Terms of Service"] = "Conditions d'utilisation du site inte $a->strings["terms of service"] = "conditions d'utilisation"; $a->strings["Website Privacy Policy"] = "Politique de confidentialité du site internet"; $a->strings["privacy policy"] = "politique de confidentialité"; -$a->strings["This entry was edited"] = "Cette entrée à été édité"; -$a->strings["I will attend"] = "Je vais participer"; -$a->strings["I will not attend"] = "Je ne vais pas participer"; -$a->strings["I might attend"] = "Je vais peut-être participer"; -$a->strings["ignore thread"] = "ignorer le fil"; -$a->strings["unignore thread"] = "Ne plus ignorer le fil"; -$a->strings["toggle ignore status"] = "Ignorer le statut"; -$a->strings["Categories:"] = "Catégories:"; -$a->strings["Filed under:"] = "Rangé sous:"; -$a->strings["via"] = "via"; -$a->strings["\n\t\t\tThe friendica developers released update %s recently,\n\t\t\tbut when I tried to install it, something went terribly wrong.\n\t\t\tThis needs to be fixed soon and I can't do it alone. Please contact a\n\t\t\tfriendica developer if you can not help me on your own. My database might be invalid."] = "\nLes développeurs de Friendica ont récemment publié la mise à jour %s, mais en tentant de l’installer, quelque chose s’est terriblement mal passé. Une réparation s’impose et je ne peux pas la faire tout seul. Contactez un développeur Friendica si vous ne pouvez pas corriger le problème vous-même. Il est possible que ma base de données soit corrompue."; -$a->strings["The error message is\n[pre]%s[/pre]"] = "Le message d’erreur est\n[pre]%s[/pre]"; -$a->strings["Errors encountered creating database tables."] = "Des erreurs ont été signalées lors de la création des tables."; -$a->strings["Errors encountered performing database changes."] = "Des erreurs sont survenues lors de la mise à jour de la base de données."; -$a->strings["Logged out."] = "Déconnecté."; -$a->strings["We encountered a problem while logging in with the OpenID you provided. Please check the correct spelling of the ID."] = "Nous avons eu un souci avec l'OpenID que vous avez fourni. merci de vérifier l'orthographe correcte de ce dernier."; -$a->strings["The error message was:"] = "Le message d'erreur était :"; -$a->strings["Add New Contact"] = "Ajouter un nouveau contact"; -$a->strings["Enter address or web location"] = "Entrez son adresse ou sa localisation web"; -$a->strings["Example: bob@example.com, http://example.com/barbara"] = "Exemple: bob@example.com, http://example.com/barbara"; -$a->strings["%d invitation available"] = array( - 0 => "%d invitation disponible", - 1 => "%d invitations disponibles", -); -$a->strings["Find People"] = "Trouver des personnes"; -$a->strings["Enter name or interest"] = "Entrez un nom ou un centre d'intérêt"; -$a->strings["Examples: Robert Morgenstein, Fishing"] = "Exemples: Robert Morgenstein, Pêche"; -$a->strings["Similar Interests"] = "Intérêts similaires"; -$a->strings["Random Profile"] = "Profil au hasard"; -$a->strings["Invite Friends"] = "Inviter des amis"; -$a->strings["Networks"] = "Réseaux"; -$a->strings["All Networks"] = "Tous réseaux"; -$a->strings["Saved Folders"] = "Dossiers sauvegardés"; -$a->strings["Everything"] = "Tout"; -$a->strings["Categories"] = "Catégories"; -$a->strings["%d contact in common"] = array( - 0 => "%d contact en commun", - 1 => "%d contacts en commun", -); -$a->strings["General Features"] = "Fonctions générales"; -$a->strings["Multiple Profiles"] = "Profils multiples"; -$a->strings["Ability to create multiple profiles"] = "Possibilité de créer plusieurs profils"; -$a->strings["Photo Location"] = "Lieu de prise de la photo"; -$a->strings["Photo metadata is normally stripped. This extracts the location (if present) prior to stripping metadata and links it to a map."] = ""; -$a->strings["Post Composition Features"] = "Caractéristiques de composition de publication"; -$a->strings["Richtext Editor"] = "Éditeur de texte enrichi"; -$a->strings["Enable richtext editor"] = "Activer l'éditeur de texte enrichi"; -$a->strings["Post Preview"] = "Aperçu de la publication"; -$a->strings["Allow previewing posts and comments before publishing them"] = "Permet la prévisualisation des publications et commentaires avant de les publier"; -$a->strings["Auto-mention Forums"] = ""; -$a->strings["Add/remove mention when a fourm page is selected/deselected in ACL window."] = ""; -$a->strings["Network Sidebar Widgets"] = "Widgets réseau pour barre latérale"; -$a->strings["Search by Date"] = "Rechercher par Date"; -$a->strings["Ability to select posts by date ranges"] = "Capacité de sélectionner les publications par intervalles de dates"; -$a->strings["List Forums"] = ""; -$a->strings["Enable widget to display the forums your are connected with"] = ""; -$a->strings["Group Filter"] = "Filtre de groupe"; -$a->strings["Enable widget to display Network posts only from selected group"] = "Activer le widget d’affichage des publications du réseau seulement pour le groupe sélectionné"; -$a->strings["Network Filter"] = "Filtre de réseau"; -$a->strings["Enable widget to display Network posts only from selected network"] = "Activer le widget d’affichage des publications du réseau seulement pour le réseau sélectionné"; -$a->strings["Save search terms for re-use"] = "Sauvegarder la recherche pour une utilisation ultérieure"; -$a->strings["Network Tabs"] = "Onglets Réseau"; -$a->strings["Network Personal Tab"] = "Onglet Réseau Personnel"; -$a->strings["Enable tab to display only Network posts that you've interacted on"] = "Activer l'onglet pour afficher seulement les publications du réseau où vous avez interagit"; -$a->strings["Network New Tab"] = "Nouvel onglet réseaux"; -$a->strings["Enable tab to display only new Network posts (from the last 12 hours)"] = "Activer l'onglet pour afficher seulement les publications du réseau (dans les 12 dernières heures)"; -$a->strings["Network Shared Links Tab"] = "Onglet réseau partagé"; -$a->strings["Enable tab to display only Network posts with links in them"] = "Activer l'onglet pour afficher seulement les publications du réseau contenant des liens"; -$a->strings["Post/Comment Tools"] = "outils de publication/commentaire"; -$a->strings["Multiple Deletion"] = "Suppression multiple"; -$a->strings["Select and delete multiple posts/comments at once"] = "Sélectionner et supprimer plusieurs publications/commentaires à la fois"; -$a->strings["Edit Sent Posts"] = "Éditer les publications envoyées"; -$a->strings["Edit and correct posts and comments after sending"] = "Éditer et corriger les publications et commentaires après l'envoi"; -$a->strings["Tagging"] = "Étiquettage"; -$a->strings["Ability to tag existing posts"] = "Possibilité d'étiqueter les publications existantes"; -$a->strings["Post Categories"] = "Catégories des publications"; -$a->strings["Add categories to your posts"] = "Ajouter des catégories à vos publications"; -$a->strings["Ability to file posts under folders"] = "Possibilité d'afficher les publications sous les répertoires"; -$a->strings["Dislike Posts"] = "Publications non aimées"; -$a->strings["Ability to dislike posts/comments"] = "Possibilité de ne pas aimer les publications/commentaires"; -$a->strings["Star Posts"] = "Publications spéciales"; -$a->strings["Ability to mark special posts with a star indicator"] = "Possibilité de marquer les publications spéciales d'une étoile"; -$a->strings["Mute Post Notifications"] = ""; -$a->strings["Ability to mute notifications for a thread"] = ""; -$a->strings["Advanced Profile Settings"] = ""; -$a->strings["Show visitors public community forums at the Advanced Profile Page"] = ""; -$a->strings["Connect URL missing."] = "URL de connexion manquante."; -$a->strings["This site is not configured to allow communications with other networks."] = "Ce site n'est pas configuré pour dialoguer avec d'autres réseaux."; -$a->strings["No compatible communication protocols or feeds were discovered."] = "Aucun protocole de communication ni aucun flux n'a pu être découvert."; -$a->strings["The profile address specified does not provide adequate information."] = "L'adresse de profil indiquée ne fournit par les informations adéquates."; -$a->strings["An author or name was not found."] = "Aucun auteur ou nom d'auteur n'a pu être trouvé."; -$a->strings["No browser URL could be matched to this address."] = "Aucune URL de navigation ne correspond à cette adresse."; -$a->strings["Unable to match @-style Identity Address with a known protocol or email contact."] = "Impossible de faire correspondre l'adresse d'identité en \"@\" avec un protocole connu ou un contact courriel."; -$a->strings["Use mailto: in front of address to force email check."] = "Utilisez mailto: en face d'une adresse pour l'obliger à être reconnue comme courriel."; -$a->strings["The profile address specified belongs to a network which has been disabled on this site."] = "L'adresse de profil spécifiée correspond à un réseau qui a été désactivé sur ce site."; -$a->strings["Limited profile. This person will be unable to receive direct/personal notifications from you."] = "Profil limité. Cette personne ne sera pas capable de recevoir des notifications directes/personnelles de votre part."; -$a->strings["Unable to retrieve contact information."] = "Impossible de récupérer les informations du contact."; -$a->strings["following"] = "following"; -$a->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 groupe supprimé a été recréé. Les permissions existantes pourraient s'appliquer à ce groupe et aux futurs membres. Si ce n'est pas le comportement attendu, merci de re-créer un autre groupe sous un autre nom."; -$a->strings["Default privacy group for new contacts"] = "Paramètres de confidentialité par défaut pour les nouveaux contacts"; -$a->strings["Everybody"] = "Tout le monde"; -$a->strings["edit"] = "éditer"; -$a->strings["Edit groups"] = "Modifier les groupes"; -$a->strings["Edit group"] = "Editer groupe"; -$a->strings["Create a new group"] = "Créer un nouveau groupe"; -$a->strings["Contacts not in any group"] = "Contacts n'appartenant à aucun groupe"; -$a->strings["Miscellaneous"] = "Divers"; -$a->strings["YYYY-MM-DD or MM-DD"] = "AAAA-MM-JJ ou MM-JJ"; -$a->strings["never"] = "jamais"; -$a->strings["less than a second ago"] = "il y a moins d'une seconde"; -$a->strings["year"] = "an"; -$a->strings["years"] = "ans"; -$a->strings["months"] = "mois"; -$a->strings["weeks"] = "semaines"; -$a->strings["days"] = "jours"; -$a->strings["hour"] = "heure"; -$a->strings["hours"] = "heures"; -$a->strings["minute"] = "minute"; -$a->strings["minutes"] = "minutes"; -$a->strings["second"] = "seconde"; -$a->strings["seconds"] = "secondes"; -$a->strings["%1\$d %2\$s ago"] = "%1\$d %2\$s auparavant"; -$a->strings["%s's birthday"] = "Anniversaire de %s's"; -$a->strings["Happy Birthday %s"] = "Joyeux anniversaire, %s !"; -$a->strings["Requested account is not available."] = "Le compte demandé n'est pas disponible."; -$a->strings["Edit profile"] = "Editer le profil"; -$a->strings["Atom feed"] = "Flux Atom"; -$a->strings["Message"] = "Message"; -$a->strings["Profiles"] = "Profils"; -$a->strings["Manage/edit profiles"] = "Gérer/éditer les profils"; -$a->strings["g A l F d"] = "g A | F d"; -$a->strings["F d"] = "F d"; -$a->strings["[today]"] = "[aujourd'hui]"; -$a->strings["Birthday Reminders"] = "Rappels d'anniversaires"; -$a->strings["Birthdays this week:"] = "Anniversaires cette semaine:"; -$a->strings["[No description]"] = "[Sans description]"; -$a->strings["Event Reminders"] = "Rappels d'événements"; -$a->strings["Events this week:"] = "Evénements cette semaine :"; -$a->strings["j F, Y"] = "j F, Y"; -$a->strings["j F"] = "j F"; -$a->strings["Birthday:"] = "Anniversaire:"; -$a->strings["Age:"] = "Age:"; -$a->strings["for %1\$d %2\$s"] = "depuis %1\$d %2\$s"; -$a->strings["Religion:"] = "Religion:"; -$a->strings["Hobbies/Interests:"] = "Passe-temps/Centres d'intérêt:"; -$a->strings["Contact information and Social Networks:"] = "Coordonnées/Réseaux sociaux:"; -$a->strings["Musical interests:"] = "Goûts musicaux:"; -$a->strings["Books, literature:"] = "Lectures:"; -$a->strings["Television:"] = "Télévision:"; -$a->strings["Film/dance/culture/entertainment:"] = "Cinéma/Danse/Culture/Divertissement:"; -$a->strings["Love/Romance:"] = "Amour/Romance:"; -$a->strings["Work/employment:"] = "Activité professionnelle/Occupation:"; -$a->strings["School/education:"] = "Études/Formation:"; -$a->strings["Forums:"] = "Forums :"; -$a->strings["Videos"] = "Vidéos"; -$a->strings["Events and Calendar"] = "Événements et agenda"; -$a->strings["Only You Can See This"] = "Vous seul pouvez voir ça"; -$a->strings["Post to Email"] = "Publier aux courriels"; -$a->strings["Connectors disabled, since \"%s\" is enabled."] = "Les connecteurs sont désactivés parce que \"%s\" est activé."; -$a->strings["Visible to everybody"] = "Visible par tout le monde"; -$a->strings["show"] = "montrer"; -$a->strings["don't show"] = "cacher"; -$a->strings["[no subject]"] = "[pas de sujet]"; -$a->strings["stopped following"] = "retiré de la liste de suivi"; -$a->strings["View Status"] = "Voir les statuts"; -$a->strings["View Photos"] = "Voir les photos"; -$a->strings["Network Posts"] = "Publications du réseau"; -$a->strings["Edit Contact"] = "Éditer le contact"; -$a->strings["Drop Contact"] = "Supprimer le contact"; -$a->strings["Send PM"] = "Message privé"; -$a->strings["Poke"] = "Sollicitations (pokes)"; -$a->strings["Welcome "] = "Bienvenue "; -$a->strings["Please upload a profile photo."] = "Merci d'illustrer votre profil d'une image."; -$a->strings["Welcome back "] = "Bienvenue à nouveau, "; -$a->strings["The form security token was not correct. This probably happened because the form has been opened for too long (>3 hours) before submitting it."] = "Le jeton de sécurité du formulaire n'est pas correct. Ceci veut probablement dire que le formulaire est resté ouvert trop longtemps (plus de 3 heures) avant d'être validé."; -$a->strings["%1\$s attends %2\$s's %3\$s"] = "%1\$s participe à %3\$s de %2\$s"; -$a->strings["%1\$s doesn't attend %2\$s's %3\$s"] = "%1\$s ne participe pas à %3\$s de %2\$s"; -$a->strings["%1\$s attends maybe %2\$s's %3\$s"] = "%1\$s participe peut-être à %3\$s de %2\$s"; -$a->strings["%1\$s poked %2\$s"] = "%1\$s a sollicité %2\$s"; -$a->strings["post/item"] = "publication/élément"; -$a->strings["%1\$s marked %2\$s's %3\$s as favorite"] = "%1\$s a marqué le %3\$s de %2\$s comme favori"; -$a->strings["remove"] = "enlever"; -$a->strings["Delete Selected Items"] = "Supprimer les éléments sélectionnés"; -$a->strings["Follow Thread"] = "Suivre le fil"; -$a->strings["%s likes this."] = "%s aime ça."; -$a->strings["%s doesn't like this."] = "%s n'aime pas ça."; -$a->strings["%s attends."] = "%s participe"; -$a->strings["%s doesn't attend."] = "%s ne participe pas"; -$a->strings["%s attends maybe."] = "%s participe peut-être"; -$a->strings["and"] = "et"; -$a->strings[", and %d other people"] = ", et %d autres personnes"; -$a->strings["%2\$d people like this"] = "%2\$d personnes aiment ça"; -$a->strings["%s like this."] = "%s aime ça."; -$a->strings["%2\$d people don't like this"] = "%2\$d personnes n'aiment pas ça"; -$a->strings["%s don't like this."] = "%s n'aiment pas ça."; -$a->strings["%2\$d people attend"] = ""; -$a->strings["%s attend."] = "%s participent."; -$a->strings["%2\$d people don't attend"] = ""; -$a->strings["%s don't attend."] = "%s ne participent pas."; -$a->strings["%2\$d people anttend maybe"] = ""; -$a->strings["%s anttend maybe."] = "%s participent peut-être."; -$a->strings["Visible to everybody"] = "Visible par tout le monde"; -$a->strings["Please enter a video link/URL:"] = "Entrez un lien/URL video :"; -$a->strings["Please enter an audio link/URL:"] = "Entrez un lien/URL audio :"; -$a->strings["Tag term:"] = "Terme d'étiquette:"; -$a->strings["Where are you right now?"] = "Où êtes-vous présentemment?"; -$a->strings["Delete item(s)?"] = "Supprimer les élément(s) ?"; -$a->strings["permissions"] = "permissions"; -$a->strings["Post to Groups"] = "Publier aux groupes"; -$a->strings["Post to Contacts"] = "Publier aux contacts"; -$a->strings["Private post"] = "Message privé"; -$a->strings["View all"] = "Voir tout"; -$a->strings["Like"] = array( - 0 => "", - 1 => "", -); -$a->strings["Dislike"] = array( - 0 => "", - 1 => "", -); -$a->strings["Not Attending"] = array( - 0 => "", - 1 => "", -); -$a->strings["Undecided"] = array( - 0 => "", - 1 => "", -); -$a->strings["Forums"] = "Forums"; -$a->strings["External link to forum"] = ""; -$a->strings["view full size"] = "voir en pleine taille"; -$a->strings["newer"] = "Plus récent"; -$a->strings["older"] = "Plus ancien"; -$a->strings["prev"] = "précédent"; -$a->strings["first"] = "premier"; -$a->strings["last"] = "dernier"; -$a->strings["next"] = "suivant"; -$a->strings["Loading more entries..."] = ""; -$a->strings["The end"] = ""; -$a->strings["No contacts"] = "Aucun contact"; -$a->strings["%d Contact"] = array( - 0 => "%d contact", - 1 => "%d contacts", -); -$a->strings["View Contacts"] = "Voir les contacts"; -$a->strings["Full Text"] = ""; -$a->strings["Tags"] = ""; -$a->strings["poke"] = "titiller"; -$a->strings["poked"] = "a titillé"; -$a->strings["ping"] = "attirer l'attention"; -$a->strings["pinged"] = "a attiré l'attention de"; -$a->strings["prod"] = "aiguillonner"; -$a->strings["prodded"] = "a aiguillonné"; -$a->strings["slap"] = "gifler"; -$a->strings["slapped"] = "a giflé"; -$a->strings["finger"] = "tripoter"; -$a->strings["fingered"] = "a tripoté"; -$a->strings["rebuff"] = "rabrouer"; -$a->strings["rebuffed"] = "a rabroué"; -$a->strings["happy"] = "heureuse"; -$a->strings["sad"] = "triste"; -$a->strings["mellow"] = "suave"; -$a->strings["tired"] = "fatiguée"; -$a->strings["perky"] = "guillerette"; -$a->strings["angry"] = "colérique"; -$a->strings["stupified"] = "stupéfaite"; -$a->strings["puzzled"] = "perplexe"; -$a->strings["interested"] = "intéressée"; -$a->strings["bitter"] = "amère"; -$a->strings["cheerful"] = "entraînante"; -$a->strings["alive"] = "vivante"; -$a->strings["annoyed"] = "ennuyée"; -$a->strings["anxious"] = "anxieuse"; -$a->strings["cranky"] = "excentrique"; -$a->strings["disturbed"] = "dérangée"; -$a->strings["frustrated"] = "frustrée"; -$a->strings["motivated"] = "motivée"; -$a->strings["relaxed"] = "détendue"; -$a->strings["surprised"] = "surprise"; -$a->strings["bytes"] = "octets"; -$a->strings["Click to open/close"] = "Cliquer pour ouvrir/fermer"; -$a->strings["View on separate page"] = ""; -$a->strings["view on separate page"] = ""; -$a->strings["activity"] = "activité"; -$a->strings["post"] = "publication"; -$a->strings["Item filed"] = "Élément classé"; -$a->strings["Image/photo"] = "Image/photo"; -$a->strings["%2\$s %3\$s"] = ""; -$a->strings["%s wrote the following post"] = ""; -$a->strings["$1 wrote:"] = "$1 a écrit:"; -$a->strings["Encrypted content"] = "Contenu chiffré"; -$a->strings["(no subject)"] = "(sans titre)"; -$a->strings["noreply"] = "noreply"; -$a->strings["Cannot locate DNS info for database server '%s'"] = "Impossible de localiser les informations DNS pour le serveur de base de données '%s'"; -$a->strings["Unknown | Not categorised"] = "Inconnu | Non-classé"; -$a->strings["Block immediately"] = "Bloquer immédiatement"; -$a->strings["Shady, spammer, self-marketer"] = "Douteux, spammeur, accro à l'auto-promotion"; -$a->strings["Known to me, but no opinion"] = "Connu de moi, mais sans opinion"; -$a->strings["OK, probably harmless"] = "OK, probablement inoffensif"; -$a->strings["Reputable, has my trust"] = "Réputé, a toute ma confiance"; -$a->strings["Weekly"] = "Chaque semaine"; -$a->strings["Monthly"] = "Chaque mois"; -$a->strings["OStatus"] = "OStatus"; -$a->strings["RSS/Atom"] = "RSS/Atom"; -$a->strings["Zot!"] = "Zot!"; -$a->strings["LinkedIn"] = "LinkedIn"; -$a->strings["XMPP/IM"] = "XMPP/IM"; -$a->strings["MySpace"] = "MySpace"; -$a->strings["Google+"] = "Google+"; -$a->strings["pump.io"] = "pump.io"; -$a->strings["Twitter"] = "Twitter"; -$a->strings["Diaspora Connector"] = "Connecteur Diaspora"; -$a->strings["GNU Social"] = ""; -$a->strings["App.net"] = "App.net"; -$a->strings["Redmatrix"] = ""; -$a->strings[" on Last.fm"] = "sur Last.fm"; -$a->strings["Starts:"] = "Débute:"; -$a->strings["Finishes:"] = "Finit:"; -$a->strings["Click here to upgrade."] = "Cliquez ici pour mettre à jour."; -$a->strings["This action exceeds the limits set by your subscription plan."] = "Cette action dépasse les limites définies par votre abonnement."; -$a->strings["This action is not available under your subscription plan."] = "Cette action n'est pas disponible avec votre abonnement."; -$a->strings["End this session"] = "Mettre fin à cette session"; -$a->strings["Your posts and conversations"] = "Vos publications et conversations"; -$a->strings["Your profile page"] = "Votre page de profil"; -$a->strings["Your photos"] = "Vos photos"; -$a->strings["Your videos"] = "Vos vidéos"; -$a->strings["Your events"] = "Vos événements"; -$a->strings["Personal notes"] = "Notes personnelles"; -$a->strings["Your personal notes"] = "Vos notes personnelles"; -$a->strings["Sign in"] = "Se connecter"; -$a->strings["Home Page"] = "Page d'accueil"; -$a->strings["Create an account"] = "Créer un compte"; -$a->strings["Help and documentation"] = "Aide et documentation"; -$a->strings["Apps"] = "Applications"; -$a->strings["Addon applications, utilities, games"] = "Applications supplémentaires, utilitaires, jeux"; -$a->strings["Search site content"] = "Rechercher dans le contenu du site"; -$a->strings["Conversations on this site"] = "Conversations ayant cours sur ce site"; -$a->strings["Conversations on the network"] = ""; -$a->strings["Directory"] = "Annuaire"; -$a->strings["People directory"] = "Annuaire des utilisateurs"; -$a->strings["Information"] = "Information"; -$a->strings["Information about this friendica instance"] = "Information au sujet de cette instance de friendica"; -$a->strings["Conversations from your friends"] = "Conversations de vos amis"; -$a->strings["Network Reset"] = "Réinitialiser le réseau"; -$a->strings["Load Network page with no filters"] = "Chargement des pages du réseau sans filtre"; -$a->strings["Friend Requests"] = "Demande d'amitié"; -$a->strings["See all notifications"] = "Voir toute notification"; -$a->strings["Mark all system notifications seen"] = "Marquer toutes les notifications système comme 'vues'"; -$a->strings["Private mail"] = "Messages privés"; -$a->strings["Inbox"] = "Messages entrants"; -$a->strings["Outbox"] = "Messages sortants"; -$a->strings["Manage"] = "Gérer"; -$a->strings["Manage other pages"] = "Gérer les autres pages"; -$a->strings["Account settings"] = "Compte"; -$a->strings["Manage/Edit Profiles"] = "Gérer/Éditer les profiles"; -$a->strings["Manage/edit friends and contacts"] = "Gérer/éditer les amitiés et contacts"; -$a->strings["Site setup and configuration"] = "Démarrage et configuration du site"; -$a->strings["Navigation"] = "Navigation"; -$a->strings["Site map"] = "Carte du site"; -$a->strings["User not found."] = "Utilisateur non trouvé"; -$a->strings["Daily posting limit of %d posts reached. The post was rejected."] = "Le quota journalier de %d publications a été atteint. La publication a été rejetée."; -$a->strings["Weekly posting limit of %d posts reached. The post was rejected."] = "Le quota hebdomadaire de %d publications a été atteint. La publication a été rejetée."; -$a->strings["Monthly posting limit of %d posts reached. The post was rejected."] = "Le quota mensuel de %d publications a été atteint. La publication a été rejetée."; -$a->strings["There is no status with this id."] = "Il n'y a pas de statut avec cet id."; -$a->strings["There is no conversation with this id."] = "Il n'y a pas de conversation avec cet id."; -$a->strings["Invalid item."] = "Item invalide."; -$a->strings["Invalid action. "] = "Action invalide."; -$a->strings["DB error"] = ""; -$a->strings["An invitation is required."] = "Une invitation est requise."; -$a->strings["Invitation could not be verified."] = "L'invitation fournie n'a pu être validée."; -$a->strings["Invalid OpenID url"] = "Adresse OpenID invalide"; -$a->strings["Please enter the required information."] = "Entrez les informations requises."; -$a->strings["Please use a shorter name."] = "Utilisez un nom plus court."; -$a->strings["Name too short."] = "Nom trop court."; -$a->strings["That doesn't appear to be your full (First Last) name."] = "Ceci ne semble pas être votre nom complet (Prénom Nom)."; -$a->strings["Your email domain is not among those allowed on this site."] = "Votre domaine de courriel n'est pas autorisé sur ce site."; -$a->strings["Not a valid email address."] = "Ceci n'est pas une adresse courriel valide."; -$a->strings["Cannot use that email."] = "Impossible d'utiliser ce courriel."; -$a->strings["Your \"nickname\" can only contain \"a-z\", \"0-9\" and \"_\"."] = ""; -$a->strings["Nickname is already registered. Please choose another."] = "Pseudo déjà utilisé. Merci d'en choisir un autre."; -$a->strings["Nickname was once registered here and may not be re-used. Please choose another."] = "Ce surnom a déjà été utilisé ici, et ne peut re-servir. Merci d'en choisir un autre."; -$a->strings["SERIOUS ERROR: Generation of security keys failed."] = "ERREUR SÉRIEUSE: La génération des clés de sécurité a échoué."; -$a->strings["An error occurred during registration. Please try again."] = "Une erreur est survenue lors de l'inscription. Merci de recommencer."; -$a->strings["default"] = "défaut"; -$a->strings["An error occurred creating your default profile. Please try again."] = "Une erreur est survenue lors de la création de votre profil par défaut. Merci de recommencer."; -$a->strings["Friends"] = "Amis"; -$a->strings["\n\t\tDear %1\$s,\n\t\t\tThank you for registering at %2\$s. Your account has been created.\n\t"] = "\n\t\tChère/Cher %1\$s,\n\t\t\tMerci de vous être inscrit sur %2\$s. Votre compte a bien été créé.\n\t"; -$a->strings["\n\t\tThe login details are as follows:\n\t\t\tSite Location:\t%3\$s\n\t\t\tLogin Name:\t%1\$s\n\t\t\tPassword:\t%5\$s\n\n\t\tYou may change your password from your account \"Settings\" page after logging\n\t\tin.\n\n\t\tPlease take a few moments to review the other account settings on that page.\n\n\t\tYou may also wish to add some basic information to your default profile\n\t\t(on the \"Profiles\" page) so that other people can easily find you.\n\n\t\tWe recommend setting your full name, adding a profile photo,\n\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n\t\tperhaps what country you live in; if you do not wish to be more specific\n\t\tthan that.\n\n\t\tWe fully respect your right to privacy, and none of these items are necessary.\n\t\tIf you are new and do not know anybody here, they may help\n\t\tyou to make some new and interesting friends.\n\n\n\t\tThank you and welcome to %2\$s."] = "\n\t\tVoici vos informations de connexion :\n\t\t\tAdresse :\t%3\$s\n\t\t\tIdentifiant :\t%1\$s\n\t\t\tMot de passe :\t%5\$s\n\n\t\tVous pourrez changer votre mot de passe dans les paramètres de votre compte une fois connecté.\n\n\t\tProfitez-en pour prendre le temps de passer en revue les autres paramètres de votre compte.\n\n\t\tVous pourrez aussi ajouter quelques informations élémentaires à votre profil par défaut (sur la page « Profils ») pour permettre à d’autres personnes de vous trouver facilement.\n\n\t\tNous recommandons de préciser votre nom complet, d’ajouter une photo et quelques mots-clefs (c’est très utile pour découvrir de nouveaux amis), et peut-être aussi d’indiquer au moins le pays dans lequel vous vivez, à défaut d’être plus précis.\n\n\t\tNous respectons pleinement votre droit à une vie privée, et vous n’avez aucune obligation de donner toutes ces informations. Mais si vous êtes nouveau et ne connaissez encore personne ici, cela peut vous aider à vous faire de nouveaux amis intéressants.\n\n\n\t\tMerci et bienvenu sur %2\$s."; -$a->strings["Sharing notification from Diaspora network"] = "Notification de partage du réseau Diaspora"; -$a->strings["Attachments:"] = "Pièces jointes : "; -$a->strings["Do you really want to delete this item?"] = "Voulez-vous vraiment supprimer cet élément ?"; -$a->strings["Archives"] = "Archives"; -$a->strings["Male"] = "Masculin"; -$a->strings["Female"] = "Féminin"; -$a->strings["Currently Male"] = "Actuellement masculin"; -$a->strings["Currently Female"] = "Actuellement féminin"; -$a->strings["Mostly Male"] = "Principalement masculin"; -$a->strings["Mostly Female"] = "Principalement féminin"; -$a->strings["Transgender"] = "Transgenre"; -$a->strings["Intersex"] = "Inter-sexe"; -$a->strings["Transsexual"] = "Transsexuel"; -$a->strings["Hermaphrodite"] = "Hermaphrodite"; -$a->strings["Neuter"] = "Neutre"; -$a->strings["Non-specific"] = "Non-spécifique"; -$a->strings["Other"] = "Autre"; -$a->strings["Males"] = "Hommes"; -$a->strings["Females"] = "Femmes"; -$a->strings["Gay"] = "Gay"; -$a->strings["Lesbian"] = "Lesbienne"; -$a->strings["No Preference"] = "Sans préférence"; -$a->strings["Bisexual"] = "Bisexuel"; -$a->strings["Autosexual"] = "Auto-sexuel"; -$a->strings["Abstinent"] = "Abstinent"; -$a->strings["Virgin"] = "Vierge"; -$a->strings["Deviant"] = "Déviant"; -$a->strings["Fetish"] = "Fétichiste"; -$a->strings["Oodles"] = "Oodles"; -$a->strings["Nonsexual"] = "Non-sexuel"; -$a->strings["Single"] = "Célibataire"; -$a->strings["Lonely"] = "Esseulé"; -$a->strings["Available"] = "Disponible"; -$a->strings["Unavailable"] = "Indisponible"; -$a->strings["Has crush"] = "Attiré par quelqu'un"; -$a->strings["Infatuated"] = "Entiché"; -$a->strings["Dating"] = "Dans une relation"; -$a->strings["Unfaithful"] = "Infidèle"; -$a->strings["Sex Addict"] = "Accro au sexe"; -$a->strings["Friends/Benefits"] = "Amis par intérêt"; -$a->strings["Casual"] = "Casual"; -$a->strings["Engaged"] = "Fiancé"; -$a->strings["Married"] = "Marié"; -$a->strings["Imaginarily married"] = "Se croit marié"; -$a->strings["Partners"] = "Partenaire"; -$a->strings["Cohabiting"] = "En cohabitation"; -$a->strings["Common law"] = "Marié \"de fait\"/\"sui juris\" (concubin)"; -$a->strings["Happy"] = "Heureux"; -$a->strings["Not looking"] = "Pas intéressé"; -$a->strings["Swinger"] = "Échangiste"; -$a->strings["Betrayed"] = "Trahi(e)"; -$a->strings["Separated"] = "Séparé"; -$a->strings["Unstable"] = "Instable"; -$a->strings["Divorced"] = "Divorcé"; -$a->strings["Imaginarily divorced"] = "Se croit divorcé"; -$a->strings["Widowed"] = "Veuf/Veuve"; -$a->strings["Uncertain"] = "Incertain"; -$a->strings["It's complicated"] = "C'est compliqué"; -$a->strings["Don't care"] = "S'en désintéresse"; -$a->strings["Ask me"] = "Me demander"; -$a->strings["Friendica Notification"] = "Notification Friendica"; -$a->strings["Thank You,"] = "Merci, "; -$a->strings["%s Administrator"] = "L'administrateur de %s"; -$a->strings["%1\$s, %2\$s Administrator"] = ""; -$a->strings["%s "] = "%s "; -$a->strings["[Friendica:Notify] New mail received at %s"] = "[Friendica:Notification] Nouveau courriel reçu sur %s"; -$a->strings["%1\$s sent you a new private message at %2\$s."] = "%1\$s vous a envoyé un nouveau message privé sur %2\$s."; -$a->strings["%1\$s sent you %2\$s."] = "%1\$s vous a envoyé %2\$s."; -$a->strings["a private message"] = "un message privé"; -$a->strings["Please visit %s to view and/or reply to your private messages."] = "Merci de visiter %s pour voir vos messages privés et/ou y répondre."; -$a->strings["%1\$s commented on [url=%2\$s]a %3\$s[/url]"] = "%1\$s a commenté sur [url=%2\$s]un %3\$s[/url]"; -$a->strings["%1\$s commented on [url=%2\$s]%3\$s's %4\$s[/url]"] = "%1\$s a commenté sur [url=%2\$s]le %4\$s de %3\$s[/url]"; -$a->strings["%1\$s commented on [url=%2\$s]your %3\$s[/url]"] = "%1\$s commented on [url=%2\$s]your %3\$s[/url]"; -$a->strings["[Friendica:Notify] Comment to conversation #%1\$d by %2\$s"] = "[Friendica:Notification] Commentaire de %2\$s sur la conversation #%1\$d"; -$a->strings["%s commented on an item/conversation you have been following."] = "%s a commenté un élément que vous suivez."; -$a->strings["Please visit %s to view and/or reply to the conversation."] = "Merci de visiter %s pour voir la conversation et/ou y répondre."; -$a->strings["[Friendica:Notify] %s posted to your profile wall"] = "[Friendica:Notification] %s a posté sur votre mur de profil"; -$a->strings["%1\$s posted to your profile wall at %2\$s"] = "%1\$s a publié sur votre mur à %2\$s"; -$a->strings["%1\$s posted to [url=%2\$s]your wall[/url]"] = "%1\$s a posté sur [url=%2\$s]votre mur[/url]"; -$a->strings["[Friendica:Notify] %s tagged you"] = "[Friendica:Notification] %s vous a étiqueté"; -$a->strings["%1\$s tagged you at %2\$s"] = "%1\$s vous a étiqueté sur %2\$s"; -$a->strings["%1\$s [url=%2\$s]tagged you[/url]."] = "%1\$s [url=%2\$s]vous a étiqueté[/url]."; -$a->strings["[Friendica:Notify] %s shared a new post"] = "[Friendica:Notification] %s partage une nouvelle publication"; -$a->strings["%1\$s shared a new post at %2\$s"] = "%1\$s a partagé une nouvelle publication sur %2\$s"; -$a->strings["%1\$s [url=%2\$s]shared a post[/url]."] = "%1\$s [url=%2\$s]partage une publication[/url]."; -$a->strings["[Friendica:Notify] %1\$s poked you"] = "[Friendica:Notify] %1\$s vous a sollicité"; -$a->strings["%1\$s poked you at %2\$s"] = "%1\$s vous a sollicité via %2\$s"; -$a->strings["%1\$s [url=%2\$s]poked you[/url]."] = "%1\$s vous a [url=%2\$s]sollicité[/url]."; -$a->strings["[Friendica:Notify] %s tagged your post"] = "[Friendica:Notification] %s a étiqueté votre publication"; -$a->strings["%1\$s tagged your post at %2\$s"] = "%1\$s a étiqueté votre publication sur %2\$s"; -$a->strings["%1\$s tagged [url=%2\$s]your post[/url]"] = "%1\$s a étiqueté [url=%2\$s]votre publication[/url]"; -$a->strings["[Friendica:Notify] Introduction received"] = "[Friendica:Notification] Introduction reçue"; -$a->strings["You've received an introduction from '%1\$s' at %2\$s"] = "Vous avez reçu une introduction de '%1\$s' sur %2\$s"; -$a->strings["You've received [url=%1\$s]an introduction[/url] from %2\$s."] = "Vous avez reçu [url=%1\$s]une introduction[/url] de %2\$s."; -$a->strings["You may visit their profile at %s"] = "Vous pouvez visiter son profil sur %s"; -$a->strings["Please visit %s to approve or reject the introduction."] = "Merci de visiter %s pour approuver ou rejeter l'introduction."; -$a->strings["[Friendica:Notify] A new person is sharing with you"] = "[Notification Friendica] Une nouvelle personne partage avec vous"; -$a->strings["%1\$s is sharing with you at %2\$s"] = ""; -$a->strings["[Friendica:Notify] You have a new follower"] = ""; -$a->strings["You have a new follower at %2\$s : %1\$s"] = ""; -$a->strings["[Friendica:Notify] Friend suggestion received"] = "[Friendica:Notification] Nouvelle suggestion d'amitié"; -$a->strings["You've received a friend suggestion from '%1\$s' at %2\$s"] = "Vous avez reçu une suggestion de '%1\$s' sur %2\$s"; -$a->strings["You've received [url=%1\$s]a friend suggestion[/url] for %2\$s from %3\$s."] = "Vous avez reçu [url=%1\$s]une suggestion[/url] de %3\$s pour %2\$s."; -$a->strings["Name:"] = "Nom :"; -$a->strings["Photo:"] = "Photo :"; -$a->strings["Please visit %s to approve or reject the suggestion."] = "Merci de visiter %s pour approuver ou rejeter la suggestion."; -$a->strings["[Friendica:Notify] Connection accepted"] = ""; -$a->strings["'%1\$s' has accepted your connection request at %2\$s"] = ""; -$a->strings["%2\$s has accepted your [url=%1\$s]connection request[/url]."] = ""; -$a->strings["You are now mutual friends and may exchange status updates, photos, and email\n\twithout restriction."] = ""; -$a->strings["Please visit %s if you wish to make any changes to this relationship."] = ""; -$a->strings["'%1\$s' has chosen to accept you a \"fan\", which restricts some forms of communication - such as private messaging and some profile interactions. If this is a celebrity or community page, these settings were applied automatically."] = ""; -$a->strings["'%1\$s' may choose to extend this into a two-way or more permissive relationship in the future. "] = ""; -$a->strings["[Friendica System:Notify] registration request"] = ""; -$a->strings["You've received a registration request from '%1\$s' at %2\$s"] = ""; -$a->strings["You've received a [url=%1\$s]registration request[/url] from %2\$s."] = "Vous avez reçu une [url=%1\$s]demande de création de compte[/url] de %2\$s."; -$a->strings["Full Name:\t%1\$s\\nSite Location:\t%2\$s\\nLogin Name:\t%3\$s (%4\$s)"] = "Nom complet :\t%1\$s\\nAdresse :\t%2\$s\\nIdentifiant :\t%3\$s (%4\$s)"; -$a->strings["Please visit %s to approve or reject the request."] = "Veuillez visiter %s pour approuver ou rejeter la demande."; -$a->strings["Embedded content"] = "Contenu incorporé"; -$a->strings["Embedding disabled"] = "Incorporation désactivée"; -$a->strings["Error decoding account file"] = "Une erreur a été détecté en décodant un fichier utilisateur"; -$a->strings["Error! No version data in file! This is not a Friendica account file?"] = "Erreur ! Pas de ficher de version existant ! Êtes vous sur un compte Friendica ?"; -$a->strings["Error! Cannot check nickname"] = "Erreur! Pseudo invalide"; -$a->strings["User '%s' already exists on this server!"] = "L'utilisateur '%s' existe déjà sur ce serveur!"; -$a->strings["User creation error"] = "Erreur de création d'utilisateur"; -$a->strings["User profile creation error"] = "Erreur de création du profil utilisateur"; -$a->strings["%d contact not imported"] = array( - 0 => "%d contacts non importés", - 1 => "%d contacts non importés", -); -$a->strings["Done. You can now login with your username and password"] = "Action réalisé. Vous pouvez désormais vous connecter avec votre nom d'utilisateur et votre mot de passe"; $a->strings["toggle mobile"] = "activ. mobile"; -$a->strings["Set resize level for images in posts and comments (width and height)"] = "Choisir une taille pour les images dans les publications et commentaires (largeur et hauteur)"; -$a->strings["Set font-size for posts and comments"] = "Réglez 'font-size' (taille de police) pour publications et commentaires"; -$a->strings["Set theme width"] = "Largeur du thème"; -$a->strings["Color scheme"] = "Palette de couleurs"; -$a->strings["Set line-height for posts and comments"] = "Réglez 'line-height' (hauteur de police) pour publications et commentaires"; -$a->strings["Set colour scheme"] = "Choisir le schéma de couleurs"; -$a->strings["Alignment"] = "Alignement"; -$a->strings["Left"] = "Gauche"; -$a->strings["Center"] = "Centre"; -$a->strings["Posts font size"] = "Taille de texte des publications"; -$a->strings["Textareas font size"] = "Taille de police des zones de texte"; -$a->strings["Set resolution for middle column"] = "Réglez la résolution de la colonne centrale"; -$a->strings["Set color scheme"] = "Choisir le schéma de couleurs"; -$a->strings["Set zoomfactor for Earth Layer"] = "Niveau de zoom"; -$a->strings["Set longitude (X) for Earth Layers"] = "Régler la longitude (X) pour la géolocalisation"; -$a->strings["Set latitude (Y) for Earth Layers"] = "Régler la latitude (Y) pour la géolocalisation"; -$a->strings["Community Pages"] = "Pages de Communauté"; -$a->strings["Earth Layers"] = "Géolocalisation"; -$a->strings["Community Profiles"] = "Profils communautaires"; -$a->strings["Help or @NewHere ?"] = "Aide ou @NewHere?"; -$a->strings["Connect Services"] = "Connecter des services"; -$a->strings["Find Friends"] = "Trouver des amis"; -$a->strings["Last users"] = "Derniers utilisateurs"; -$a->strings["Last photos"] = "Dernières photos"; -$a->strings["Last likes"] = "Dernièrement aimé"; -$a->strings["Your contacts"] = "Vos contacts"; -$a->strings["Your personal photos"] = "Vos photos personnelles"; -$a->strings["Local Directory"] = "Annuaire local"; -$a->strings["Set zoomfactor for Earth Layers"] = "Régler le niveau de zoom pour la géolocalisation"; -$a->strings["Show/hide boxes at right-hand column:"] = "Montrer/cacher les boîtes dans la colonne de droite :"; -$a->strings["Midnight"] = ""; -$a->strings["Zenburn"] = ""; -$a->strings["Bootstrap"] = ""; -$a->strings["Shades of Pink"] = ""; -$a->strings["Lime and Orange"] = ""; -$a->strings["GeoCities Retro"] = ""; -$a->strings["Background Image"] = ""; -$a->strings["The URL to a picture (e.g. from your photo album) that should be used as background image."] = ""; -$a->strings["Background Color"] = ""; -$a->strings["HEX value for the background color. Don't include the #"] = ""; -$a->strings["font size"] = ""; -$a->strings["base font size for your interface"] = ""; -$a->strings["Comma separated list of helper forums"] = ""; -$a->strings["Set style"] = "Définir le style"; -$a->strings["Quick Start"] = "Démarrage rapide"; -$a->strings["greenzero"] = ""; -$a->strings["purplezero"] = ""; -$a->strings["easterbunny"] = ""; -$a->strings["darkzero"] = ""; -$a->strings["comix"] = ""; -$a->strings["slackr"] = ""; -$a->strings["Variations"] = "Variations"; diff --git a/view/is/messages.po b/view/lang/is/messages.po similarity index 54% rename from view/is/messages.po rename to view/lang/is/messages.po index e2af09ec9..39c0b853a 100644 --- a/view/is/messages.po +++ b/view/lang/is/messages.po @@ -11,5690 +11,2321 @@ # peturisfeld , 2012 # peturisfeld , 2012 # sella , 2012 -# Sveinn í Felli , 2014 +# Sveinn í Felli , 2014,2016 msgid "" msgstr "" "Project-Id-Version: friendica\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-02-09 08:57+0100\n" -"PO-Revision-Date: 2015-02-09 09:46+0000\n" -"Last-Translator: fabrixxm \n" -"Language-Team: Icelandic (http://www.transifex.com/projects/p/friendica/language/is/)\n" +"POT-Creation-Date: 2016-07-08 19:22+0200\n" +"PO-Revision-Date: 2016-07-25 09:10+0000\n" +"Last-Translator: Sveinn í Felli \n" +"Language-Team: Icelandic (http://www.transifex.com/Friendica/friendica/language/is/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: is\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Plural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\n" -#: ../../mod/contacts.php:108 +#: boot.php:887 +msgid "Delete this item?" +msgstr "Eyða þessu atriði?" + +#: boot.php:888 mod/content.php:727 mod/content.php:945 mod/photos.php:1616 +#: mod/photos.php:1664 mod/photos.php:1752 object/Item.php:403 +#: object/Item.php:719 +msgid "Comment" +msgstr "Athugasemd" + +#: boot.php:889 include/contact_widgets.php:242 include/ForumManager.php:119 +#: include/items.php:2122 mod/content.php:624 object/Item.php:432 +#: view/theme/vier/theme.php:260 +msgid "show more" +msgstr "birta meira" + +#: boot.php:890 +msgid "show fewer" +msgstr "birta minna" + +#: boot.php:1483 #, php-format -msgid "%d contact edited." -msgid_plural "%d contacts edited" -msgstr[0] "" -msgstr[1] "" +msgid "Update %s failed. See error logs." +msgstr "Uppfærsla á %s mistókst. Skoðaðu villuannál." -#: ../../mod/contacts.php:139 ../../mod/contacts.php:272 -msgid "Could not access contact record." -msgstr "Tókst ekki að ná í uppl. um tengilið" +#: boot.php:1595 +msgid "Create a New Account" +msgstr "Stofna nýjan notanda" -#: ../../mod/contacts.php:153 -msgid "Could not locate selected profile." -msgstr "Tókst ekki að staðsetja valinn forsíðu" +#: boot.php:1596 include/nav.php:111 mod/register.php:280 +msgid "Register" +msgstr "Nýskrá" -#: ../../mod/contacts.php:186 -msgid "Contact updated." -msgstr "Tengiliður uppfærður" +#: boot.php:1620 include/nav.php:75 view/theme/frio/theme.php:243 +msgid "Logout" +msgstr "Útskrá" -#: ../../mod/contacts.php:188 ../../mod/dfrn_request.php:576 -msgid "Failed to update contact record." -msgstr "Ekki tókst að uppfæra tengiliðs skrá." +#: boot.php:1621 include/nav.php:94 mod/bookmarklet.php:12 +msgid "Login" +msgstr "Innskrá" -#: ../../mod/contacts.php:254 ../../mod/manage.php:96 -#: ../../mod/display.php:499 ../../mod/profile_photo.php:19 -#: ../../mod/profile_photo.php:169 ../../mod/profile_photo.php:180 -#: ../../mod/profile_photo.php:193 ../../mod/follow.php:9 -#: ../../mod/item.php:168 ../../mod/item.php:184 ../../mod/group.php:19 -#: ../../mod/dfrn_confirm.php:55 ../../mod/fsuggest.php:78 -#: ../../mod/wall_upload.php:66 ../../mod/viewcontacts.php:24 -#: ../../mod/notifications.php:66 ../../mod/message.php:38 -#: ../../mod/message.php:174 ../../mod/crepair.php:119 -#: ../../mod/nogroup.php:25 ../../mod/network.php:4 ../../mod/allfriends.php:9 -#: ../../mod/events.php:140 ../../mod/install.php:151 -#: ../../mod/wallmessage.php:9 ../../mod/wallmessage.php:33 -#: ../../mod/wallmessage.php:79 ../../mod/wallmessage.php:103 -#: ../../mod/wall_attach.php:55 ../../mod/settings.php:102 -#: ../../mod/settings.php:596 ../../mod/settings.php:601 -#: ../../mod/register.php:42 ../../mod/delegate.php:12 ../../mod/mood.php:114 -#: ../../mod/suggest.php:58 ../../mod/profiles.php:165 -#: ../../mod/profiles.php:618 ../../mod/editpost.php:10 ../../mod/api.php:26 -#: ../../mod/api.php:31 ../../mod/notes.php:20 ../../mod/poke.php:135 -#: ../../mod/invite.php:15 ../../mod/invite.php:101 ../../mod/photos.php:134 -#: ../../mod/photos.php:1050 ../../mod/regmod.php:110 ../../mod/uimport.php:23 -#: ../../mod/attach.php:33 ../../include/items.php:4712 ../../index.php:369 -msgid "Permission denied." -msgstr "Heimild ekki veitt." +#: boot.php:1623 mod/lostpass.php:161 +msgid "Nickname or Email: " +msgstr "Gælunafn eða póstfang: " -#: ../../mod/contacts.php:287 -msgid "Contact has been blocked" -msgstr "Lokað á tengilið" +#: boot.php:1624 +msgid "Password: " +msgstr "Aðgangsorð: " -#: ../../mod/contacts.php:287 -msgid "Contact has been unblocked" -msgstr "Opnað á tengilið" +#: boot.php:1625 +msgid "Remember me" +msgstr "Muna eftir mér" -#: ../../mod/contacts.php:298 -msgid "Contact has been ignored" -msgstr "Tengiliður hunsaður" +#: boot.php:1628 +msgid "Or login using OpenID: " +msgstr "Eða auðkenna með OpenID: " -#: ../../mod/contacts.php:298 -msgid "Contact has been unignored" -msgstr "Tengiliður afhunsaður" +#: boot.php:1634 +msgid "Forgot your password?" +msgstr "Gleymt lykilorð?" -#: ../../mod/contacts.php:310 -msgid "Contact has been archived" -msgstr "Tengiliður settur í geymslu" +#: boot.php:1635 mod/lostpass.php:109 +msgid "Password Reset" +msgstr "Endurstilling aðgangsorðs" -#: ../../mod/contacts.php:310 -msgid "Contact has been unarchived" -msgstr "Tengiliður tekinn úr geymslu" +#: boot.php:1637 +msgid "Website Terms of Service" +msgstr "Þjónustuskilmálar vefsvæðis" -#: ../../mod/contacts.php:335 ../../mod/contacts.php:711 -msgid "Do you really want to delete this contact?" -msgstr "Viltu í alvörunni eyða þessum tengilið?" +#: boot.php:1638 +msgid "terms of service" +msgstr "þjónustuskilmálar" -#: ../../mod/contacts.php:337 ../../mod/message.php:209 -#: ../../mod/settings.php:1010 ../../mod/settings.php:1016 -#: ../../mod/settings.php:1024 ../../mod/settings.php:1028 -#: ../../mod/settings.php:1033 ../../mod/settings.php:1039 -#: ../../mod/settings.php:1045 ../../mod/settings.php:1051 -#: ../../mod/settings.php:1081 ../../mod/settings.php:1082 -#: ../../mod/settings.php:1083 ../../mod/settings.php:1084 -#: ../../mod/settings.php:1085 ../../mod/dfrn_request.php:830 -#: ../../mod/register.php:233 ../../mod/suggest.php:29 -#: ../../mod/profiles.php:661 ../../mod/profiles.php:664 ../../mod/api.php:105 -#: ../../include/items.php:4557 -msgid "Yes" -msgstr "Já" +#: boot.php:1640 +msgid "Website Privacy Policy" +msgstr "Persónuverndarstefna" -#: ../../mod/contacts.php:340 ../../mod/tagrm.php:11 ../../mod/tagrm.php:94 -#: ../../mod/message.php:212 ../../mod/fbrowser.php:81 -#: ../../mod/fbrowser.php:116 ../../mod/settings.php:615 -#: ../../mod/settings.php:641 ../../mod/dfrn_request.php:844 -#: ../../mod/suggest.php:32 ../../mod/editpost.php:148 -#: ../../mod/photos.php:203 ../../mod/photos.php:292 -#: ../../include/conversation.php:1129 ../../include/items.php:4560 -msgid "Cancel" -msgstr "Hætta við" +#: boot.php:1641 +msgid "privacy policy" +msgstr "persónuverndarstefna" -#: ../../mod/contacts.php:352 -msgid "Contact has been removed." -msgstr "Tengiliður fjarlægður" +#: include/datetime.php:57 include/datetime.php:59 mod/profiles.php:698 +msgid "Miscellaneous" +msgstr "Ýmislegt" -#: ../../mod/contacts.php:390 -#, php-format -msgid "You are mutual friends with %s" -msgstr "Þú ert gagnkvæmur vinur %s" +#: include/datetime.php:183 include/identity.php:627 +msgid "Birthday:" +msgstr "Afmælisdagur:" -#: ../../mod/contacts.php:394 -#, php-format -msgid "You are sharing with %s" -msgstr "Þú ert að deila með %s" +#: include/datetime.php:185 mod/profiles.php:721 +msgid "Age: " +msgstr "Aldur: " -#: ../../mod/contacts.php:399 -#, php-format -msgid "%s is sharing with you" -msgstr "%s er að deila með þér" +#: include/datetime.php:187 +msgid "YYYY-MM-DD or MM-DD" +msgstr "ÁÁÁÁ-MM-DD eða MM-DD" -#: ../../mod/contacts.php:416 -msgid "Private communications are not available for this contact." -msgstr "Einkasamtal ekki í boði fyrir þennan" - -#: ../../mod/contacts.php:419 ../../mod/admin.php:569 -msgid "Never" +#: include/datetime.php:341 +msgid "never" msgstr "aldrei" -#: ../../mod/contacts.php:423 -msgid "(Update was successful)" -msgstr "(uppfærsla tókst)" +#: include/datetime.php:347 +msgid "less than a second ago" +msgstr "fyrir minna en sekúndu" -#: ../../mod/contacts.php:423 -msgid "(Update was not successful)" -msgstr "(uppfærsla tókst ekki)" +#: include/datetime.php:357 +msgid "year" +msgstr "ár" -#: ../../mod/contacts.php:425 -msgid "Suggest friends" -msgstr "Stinga uppá vinum" +#: include/datetime.php:357 +msgid "years" +msgstr "ár" -#: ../../mod/contacts.php:429 +#: include/datetime.php:358 include/event.php:480 mod/events.php:389 +#: mod/cal.php:287 +msgid "month" +msgstr "mánuður" + +#: include/datetime.php:358 +msgid "months" +msgstr "mánuðir" + +#: include/datetime.php:359 include/event.php:481 mod/events.php:390 +#: mod/cal.php:288 +msgid "week" +msgstr "vika" + +#: include/datetime.php:359 +msgid "weeks" +msgstr "vikur" + +#: include/datetime.php:360 include/event.php:482 mod/events.php:391 +#: mod/cal.php:289 +msgid "day" +msgstr "dagur" + +#: include/datetime.php:360 +msgid "days" +msgstr "dagar" + +#: include/datetime.php:361 +msgid "hour" +msgstr "klukkustund" + +#: include/datetime.php:361 +msgid "hours" +msgstr "klukkustundir" + +#: include/datetime.php:362 +msgid "minute" +msgstr "mínúta" + +#: include/datetime.php:362 +msgid "minutes" +msgstr "mínútur" + +#: include/datetime.php:363 +msgid "second" +msgstr "sekúnda" + +#: include/datetime.php:363 +msgid "seconds" +msgstr "sekúndur" + +#: include/datetime.php:372 #, php-format -msgid "Network type: %s" -msgstr "Net tegund: %s" +msgid "%1$d %2$s ago" +msgstr "Fyrir %1$d %2$s síðan" -#: ../../mod/contacts.php:432 ../../include/contact_widgets.php:200 +#: include/datetime.php:578 +#, php-format +msgid "%s's birthday" +msgstr "Afmælisdagur %s" + +#: include/datetime.php:579 include/dfrn.php:1111 +#, php-format +msgid "Happy Birthday %s" +msgstr "Til hamingju með afmælið %s" + +#: include/contact_widgets.php:6 +msgid "Add New Contact" +msgstr "Bæta við tengilið" + +#: include/contact_widgets.php:7 +msgid "Enter address or web location" +msgstr "Settu inn slóð" + +#: include/contact_widgets.php:8 +msgid "Example: bob@example.com, http://example.com/barbara" +msgstr "Dæmi: gudmundur@simnet.is, http://simnet.is/gudmundur" + +#: include/contact_widgets.php:10 include/identity.php:212 mod/dirfind.php:201 +#: mod/match.php:87 mod/allfriends.php:82 mod/suggest.php:101 +msgid "Connect" +msgstr "Tengjast" + +#: include/contact_widgets.php:24 +#, php-format +msgid "%d invitation available" +msgid_plural "%d invitations available" +msgstr[0] "%d boðskort í boði" +msgstr[1] "%d boðskort í boði" + +#: include/contact_widgets.php:30 +msgid "Find People" +msgstr "Finna fólk" + +#: include/contact_widgets.php:31 +msgid "Enter name or interest" +msgstr "Settu inn nafn eða áhugamál" + +#: include/contact_widgets.php:32 include/conversation.php:978 +#: include/Contact.php:324 mod/dirfind.php:204 mod/match.php:72 +#: mod/allfriends.php:66 mod/contacts.php:600 mod/follow.php:103 +#: mod/suggest.php:83 +msgid "Connect/Follow" +msgstr "Tengjast/fylgja" + +#: include/contact_widgets.php:33 +msgid "Examples: Robert Morgenstein, Fishing" +msgstr "Dæmi: Jón Jónsson, Veiði" + +#: include/contact_widgets.php:34 mod/directory.php:212 mod/contacts.php:791 +msgid "Find" +msgstr "Finna" + +#: include/contact_widgets.php:35 mod/suggest.php:114 +#: view/theme/vier/theme.php:203 view/theme/diabook/theme.php:527 +msgid "Friend Suggestions" +msgstr "Vina uppástungur" + +#: include/contact_widgets.php:36 view/theme/vier/theme.php:202 +#: view/theme/diabook/theme.php:526 +msgid "Similar Interests" +msgstr "Svipuð áhugamál" + +#: include/contact_widgets.php:37 +msgid "Random Profile" +msgstr "" + +#: include/contact_widgets.php:38 view/theme/vier/theme.php:204 +#: view/theme/diabook/theme.php:528 +msgid "Invite Friends" +msgstr "Bjóða vinum aðgang" + +#: include/contact_widgets.php:108 +msgid "Networks" +msgstr "Net" + +#: include/contact_widgets.php:111 +msgid "All Networks" +msgstr "Öll net" + +#: include/contact_widgets.php:141 include/features.php:103 +msgid "Saved Folders" +msgstr "Vistaðar möppur" + +#: include/contact_widgets.php:144 include/contact_widgets.php:176 +msgid "Everything" +msgstr "Allt" + +#: include/contact_widgets.php:173 +msgid "Categories" +msgstr "Flokkar" + +#: include/contact_widgets.php:237 #, php-format msgid "%d contact in common" msgid_plural "%d contacts in common" msgstr[0] "%d tengiliður sameiginlegur" msgstr[1] "%d tengiliðir sameiginlegir" -#: ../../mod/contacts.php:437 -msgid "View all contacts" -msgstr "Skoða alla tengiliði" +#: include/enotify.php:24 +msgid "Friendica Notification" +msgstr "Friendica tilkynning" -#: ../../mod/contacts.php:442 ../../mod/contacts.php:501 -#: ../../mod/contacts.php:714 ../../mod/admin.php:1009 -msgid "Unblock" -msgstr "Afbanna" +#: include/enotify.php:27 +msgid "Thank You," +msgstr "Takk fyrir," -#: ../../mod/contacts.php:442 ../../mod/contacts.php:501 -#: ../../mod/contacts.php:714 ../../mod/admin.php:1008 -msgid "Block" -msgstr "Banna" +#: include/enotify.php:30 +#, php-format +msgid "%s Administrator" +msgstr "Kerfisstjóri %s" -#: ../../mod/contacts.php:445 -msgid "Toggle Blocked status" +#: include/enotify.php:32 +#, php-format +msgid "%1$s, %2$s Administrator" +msgstr "%1$s, %2$s kerfisstjóri" + +#: include/enotify.php:43 include/delivery.php:450 +msgid "noreply" +msgstr "ekki svara" + +#: include/enotify.php:70 +#, php-format +msgid "%s " +msgstr "%s " + +#: include/enotify.php:83 +#, php-format +msgid "[Friendica:Notify] New mail received at %s" msgstr "" -#: ../../mod/contacts.php:448 ../../mod/contacts.php:502 -#: ../../mod/contacts.php:715 -msgid "Unignore" -msgstr "Byrja að fylgjast með á ný" - -#: ../../mod/contacts.php:448 ../../mod/contacts.php:502 -#: ../../mod/contacts.php:715 ../../mod/notifications.php:51 -#: ../../mod/notifications.php:164 ../../mod/notifications.php:210 -msgid "Ignore" -msgstr "Hunsa" - -#: ../../mod/contacts.php:451 -msgid "Toggle Ignored status" +#: include/enotify.php:85 +#, php-format +msgid "%1$s sent you a new private message at %2$s." msgstr "" -#: ../../mod/contacts.php:455 ../../mod/contacts.php:716 -msgid "Unarchive" -msgstr "Taka úr geymslu" +#: include/enotify.php:86 +#, php-format +msgid "%1$s sent you %2$s." +msgstr "%1$s sendi þér %2$s." -#: ../../mod/contacts.php:455 ../../mod/contacts.php:716 -msgid "Archive" -msgstr "Setja í geymslu" +#: include/enotify.php:86 +msgid "a private message" +msgstr "einkaskilaboð" -#: ../../mod/contacts.php:458 -msgid "Toggle Archive status" +#: include/enotify.php:88 +#, php-format +msgid "Please visit %s to view and/or reply to your private messages." +msgstr "Farðu á %s til að skoða og/eða svara einkaskilaboðunum þínum." + +#: include/enotify.php:134 +#, php-format +msgid "%1$s commented on [url=%2$s]a %3$s[/url]" msgstr "" -#: ../../mod/contacts.php:461 -msgid "Repair" -msgstr "Gera við " - -#: ../../mod/contacts.php:464 -msgid "Advanced Contact Settings" +#: include/enotify.php:141 +#, php-format +msgid "%1$s commented on [url=%2$s]%3$s's %4$s[/url]" msgstr "" -#: ../../mod/contacts.php:470 -msgid "Communications lost with this contact!" +#: include/enotify.php:149 +#, php-format +msgid "%1$s commented on [url=%2$s]your %3$s[/url]" msgstr "" -#: ../../mod/contacts.php:473 -msgid "Contact Editor" -msgstr "Stilling tengiliðar" +#: include/enotify.php:159 +#, php-format +msgid "[Friendica:Notify] Comment to conversation #%1$d by %2$s" +msgstr "" -#: ../../mod/contacts.php:475 ../../mod/manage.php:110 -#: ../../mod/fsuggest.php:107 ../../mod/message.php:335 -#: ../../mod/message.php:564 ../../mod/crepair.php:186 -#: ../../mod/events.php:478 ../../mod/content.php:710 -#: ../../mod/install.php:248 ../../mod/install.php:286 ../../mod/mood.php:137 -#: ../../mod/profiles.php:686 ../../mod/localtime.php:45 -#: ../../mod/poke.php:199 ../../mod/invite.php:140 ../../mod/photos.php:1084 -#: ../../mod/photos.php:1203 ../../mod/photos.php:1514 -#: ../../mod/photos.php:1565 ../../mod/photos.php:1609 -#: ../../mod/photos.php:1697 ../../object/Item.php:678 -#: ../../view/theme/cleanzero/config.php:80 -#: ../../view/theme/dispy/config.php:70 ../../view/theme/quattro/config.php:64 -#: ../../view/theme/diabook/config.php:148 -#: ../../view/theme/diabook/theme.php:633 ../../view/theme/vier/config.php:53 -#: ../../view/theme/duepuntozero/config.php:59 -msgid "Submit" -msgstr "Senda inn" +#: include/enotify.php:161 +#, php-format +msgid "%s commented on an item/conversation you have been following." +msgstr "%s skrifaði athugasemd á færslu/samtal sem þú ert að fylgja." -#: ../../mod/contacts.php:476 -msgid "Profile Visibility" -msgstr "Forsíðu sjáanleiki" +#: include/enotify.php:164 include/enotify.php:178 include/enotify.php:192 +#: include/enotify.php:206 include/enotify.php:224 include/enotify.php:238 +#, php-format +msgid "Please visit %s to view and/or reply to the conversation." +msgstr "Farðu á %s til að skoða og/eða svara samtali." -#: ../../mod/contacts.php:477 +#: include/enotify.php:171 +#, php-format +msgid "[Friendica:Notify] %s posted to your profile wall" +msgstr "" + +#: include/enotify.php:173 +#, php-format +msgid "%1$s posted to your profile wall at %2$s" +msgstr "" + +#: include/enotify.php:174 +#, php-format +msgid "%1$s posted to [url=%2$s]your wall[/url]" +msgstr "" + +#: include/enotify.php:185 +#, php-format +msgid "[Friendica:Notify] %s tagged you" +msgstr "" + +#: include/enotify.php:187 +#, php-format +msgid "%1$s tagged you at %2$s" +msgstr "" + +#: include/enotify.php:188 +#, php-format +msgid "%1$s [url=%2$s]tagged you[/url]." +msgstr "" + +#: include/enotify.php:199 +#, php-format +msgid "[Friendica:Notify] %s shared a new post" +msgstr "" + +#: include/enotify.php:201 +#, php-format +msgid "%1$s shared a new post at %2$s" +msgstr "" + +#: include/enotify.php:202 +#, php-format +msgid "%1$s [url=%2$s]shared a post[/url]." +msgstr "" + +#: include/enotify.php:213 +#, php-format +msgid "[Friendica:Notify] %1$s poked you" +msgstr "[Friendica:Notify] %1$s potaði í þig" + +#: include/enotify.php:215 +#, php-format +msgid "%1$s poked you at %2$s" +msgstr "%1$s potaði í þig %2$s" + +#: include/enotify.php:216 +#, php-format +msgid "%1$s [url=%2$s]poked you[/url]." +msgstr "" + +#: include/enotify.php:231 +#, php-format +msgid "[Friendica:Notify] %s tagged your post" +msgstr "" + +#: include/enotify.php:233 +#, php-format +msgid "%1$s tagged your post at %2$s" +msgstr "" + +#: include/enotify.php:234 +#, php-format +msgid "%1$s tagged [url=%2$s]your post[/url]" +msgstr "" + +#: include/enotify.php:245 +msgid "[Friendica:Notify] Introduction received" +msgstr "" + +#: include/enotify.php:247 +#, php-format +msgid "You've received an introduction from '%1$s' at %2$s" +msgstr "" + +#: include/enotify.php:248 +#, php-format +msgid "You've received [url=%1$s]an introduction[/url] from %2$s." +msgstr "" + +#: include/enotify.php:252 include/enotify.php:295 +#, php-format +msgid "You may visit their profile at %s" +msgstr "Þú getur heimsótt síðuna þeirra á %s" + +#: include/enotify.php:254 +#, php-format +msgid "Please visit %s to approve or reject the introduction." +msgstr "Farðu á %s til að samþykkja eða hunsa þessa kynningu." + +#: include/enotify.php:262 +msgid "[Friendica:Notify] A new person is sharing with you" +msgstr "" + +#: include/enotify.php:264 include/enotify.php:265 +#, php-format +msgid "%1$s is sharing with you at %2$s" +msgstr "" + +#: include/enotify.php:271 +msgid "[Friendica:Notify] You have a new follower" +msgstr "" + +#: include/enotify.php:273 include/enotify.php:274 +#, php-format +msgid "You have a new follower at %2$s : %1$s" +msgstr "" + +#: include/enotify.php:285 +msgid "[Friendica:Notify] Friend suggestion received" +msgstr "" + +#: include/enotify.php:287 +#, php-format +msgid "You've received a friend suggestion from '%1$s' at %2$s" +msgstr "" + +#: include/enotify.php:288 #, php-format msgid "" -"Please choose the profile you would like to display to %s when viewing your " -"profile securely." -msgstr "Veldu forsíðu sem á að birtast %s þegar hann skoðaður með öruggum hætti" +"You've received [url=%1$s]a friend suggestion[/url] for %2$s from %3$s." +msgstr "" -#: ../../mod/contacts.php:478 -msgid "Contact Information / Notes" -msgstr "Uppl. um tengilið / minnisatriði" +#: include/enotify.php:293 +msgid "Name:" +msgstr "Nafn:" -#: ../../mod/contacts.php:479 -msgid "Edit contact notes" -msgstr "Breyta minnispunktum tengiliðs " +#: include/enotify.php:294 +msgid "Photo:" +msgstr "Mynd:" -#: ../../mod/contacts.php:484 ../../mod/contacts.php:679 -#: ../../mod/viewcontacts.php:64 ../../mod/nogroup.php:40 +#: include/enotify.php:297 #, php-format -msgid "Visit %s's profile [%s]" -msgstr "Heimsækja forsíðu %s [%s]" +msgid "Please visit %s to approve or reject the suggestion." +msgstr "Farðu á %s til að samþykkja eða hunsa þessa uppástungu." -#: ../../mod/contacts.php:485 -msgid "Block/Unblock contact" -msgstr "útiloka/opna á tengilið" +#: include/enotify.php:305 include/enotify.php:319 +msgid "[Friendica:Notify] Connection accepted" +msgstr "[Friendica:Notify] Tenging samþykkt" -#: ../../mod/contacts.php:486 -msgid "Ignore contact" -msgstr "Hunsa tengilið" - -#: ../../mod/contacts.php:487 -msgid "Repair URL settings" -msgstr "Gera við slóð stillingar" - -#: ../../mod/contacts.php:488 -msgid "View conversations" -msgstr "Skoða samtöl" - -#: ../../mod/contacts.php:490 -msgid "Delete contact" -msgstr "Eyða tengilið" - -#: ../../mod/contacts.php:494 -msgid "Last update:" -msgstr "Síðasta uppfærsla:" - -#: ../../mod/contacts.php:496 -msgid "Update public posts" -msgstr "Uppfæra opinberar færslur" - -#: ../../mod/contacts.php:498 ../../mod/admin.php:1503 -msgid "Update now" -msgstr "Uppfæra núna" - -#: ../../mod/contacts.php:505 -msgid "Currently blocked" -msgstr "Útilokaður sem stendur" - -#: ../../mod/contacts.php:506 -msgid "Currently ignored" -msgstr "Hunsaður sem stendur" - -#: ../../mod/contacts.php:507 -msgid "Currently archived" -msgstr "Í geymslu" - -#: ../../mod/contacts.php:508 ../../mod/notifications.php:157 -#: ../../mod/notifications.php:204 -msgid "Hide this contact from others" -msgstr "Gera þennan notanda ósýnilegan öðrum" - -#: ../../mod/contacts.php:508 -msgid "" -"Replies/likes to your public posts may still be visible" -msgstr "Svör/\"likar við\" á þínar opinberar færslur geta mögulega verið sýnileg öðrum" - -#: ../../mod/contacts.php:509 -msgid "Notification for new posts" -msgstr "" - -#: ../../mod/contacts.php:509 -msgid "Send a notification of every new post of this contact" -msgstr "" - -#: ../../mod/contacts.php:510 -msgid "Fetch further information for feeds" -msgstr "" - -#: ../../mod/contacts.php:511 -msgid "Disabled" -msgstr "" - -#: ../../mod/contacts.php:511 -msgid "Fetch information" -msgstr "" - -#: ../../mod/contacts.php:511 -msgid "Fetch information and keywords" -msgstr "" - -#: ../../mod/contacts.php:513 -msgid "Blacklisted keywords" -msgstr "" - -#: ../../mod/contacts.php:513 -msgid "" -"Comma separated list of keywords that should not be converted to hashtags, " -"when \"Fetch information and keywords\" is selected" -msgstr "" - -#: ../../mod/contacts.php:564 -msgid "Suggestions" -msgstr "Uppástungur" - -#: ../../mod/contacts.php:567 -msgid "Suggest potential friends" -msgstr "" - -#: ../../mod/contacts.php:570 ../../mod/group.php:194 -msgid "All Contacts" -msgstr "Allir tengiliðir" - -#: ../../mod/contacts.php:573 -msgid "Show all contacts" -msgstr "Sýna alla tengiliði" - -#: ../../mod/contacts.php:576 -msgid "Unblocked" -msgstr "Afhunsað" - -#: ../../mod/contacts.php:579 -msgid "Only show unblocked contacts" -msgstr "" - -#: ../../mod/contacts.php:583 -msgid "Blocked" -msgstr "Banna" - -#: ../../mod/contacts.php:586 -msgid "Only show blocked contacts" -msgstr "" - -#: ../../mod/contacts.php:590 -msgid "Ignored" -msgstr "Hunsa" - -#: ../../mod/contacts.php:593 -msgid "Only show ignored contacts" -msgstr "" - -#: ../../mod/contacts.php:597 -msgid "Archived" -msgstr "Í geymslu" - -#: ../../mod/contacts.php:600 -msgid "Only show archived contacts" -msgstr "Aðeins sýna geymda tengiliði" - -#: ../../mod/contacts.php:604 -msgid "Hidden" -msgstr "Falinn" - -#: ../../mod/contacts.php:607 -msgid "Only show hidden contacts" -msgstr "Aðeins sýna falda tengiliði" - -#: ../../mod/contacts.php:655 -msgid "Mutual Friendship" -msgstr "Sameiginlegur vinskapur" - -#: ../../mod/contacts.php:659 -msgid "is a fan of yours" -msgstr "er aðdáandi þinn" - -#: ../../mod/contacts.php:663 -msgid "you are a fan of" -msgstr "þú er aðdáandi" - -#: ../../mod/contacts.php:680 ../../mod/nogroup.php:41 -msgid "Edit contact" -msgstr "Breyta tengilið" - -#: ../../mod/contacts.php:702 ../../include/nav.php:177 -#: ../../view/theme/diabook/theme.php:125 -msgid "Contacts" -msgstr "Tengiliðir" - -#: ../../mod/contacts.php:706 -msgid "Search your contacts" -msgstr "Leita í þínum vinum" - -#: ../../mod/contacts.php:707 ../../mod/directory.php:61 -msgid "Finding: " -msgstr "Niðurstöður:" - -#: ../../mod/contacts.php:708 ../../mod/directory.php:63 -#: ../../include/contact_widgets.php:34 -msgid "Find" -msgstr "Finna" - -#: ../../mod/contacts.php:713 ../../mod/settings.php:132 -#: ../../mod/settings.php:640 -msgid "Update" -msgstr "Uppfæra" - -#: ../../mod/contacts.php:717 ../../mod/group.php:171 ../../mod/admin.php:1007 -#: ../../mod/content.php:438 ../../mod/content.php:741 -#: ../../mod/settings.php:677 ../../mod/photos.php:1654 -#: ../../object/Item.php:130 ../../include/conversation.php:614 -msgid "Delete" -msgstr "Eyða" - -#: ../../mod/hcard.php:10 -msgid "No profile" -msgstr "Engin forsíða" - -#: ../../mod/manage.php:106 -msgid "Manage Identities and/or Pages" -msgstr "Sýsla með notendur og/eða síður" - -#: ../../mod/manage.php:107 -msgid "" -"Toggle between different identities or community/group pages which share " -"your account details or which you have been granted \"manage\" permissions" -msgstr "Skipta á milli auðkenna eða hópa- / stjörnunotanda sem deila þínum aðgangs upplýsingum eða þér verið úthlutað \"umsýslu\" réttindum." - -#: ../../mod/manage.php:108 -msgid "Select an identity to manage: " -msgstr "Veldu notanda til að sýsla með:" - -#: ../../mod/oexchange.php:25 -msgid "Post successful." -msgstr "Melding tókst." - -#: ../../mod/profperm.php:19 ../../mod/group.php:72 ../../index.php:368 -msgid "Permission denied" -msgstr "Bannaður aðgangur" - -#: ../../mod/profperm.php:25 ../../mod/profperm.php:55 -msgid "Invalid profile identifier." -msgstr "Ógilt tengiliða auðkenni" - -#: ../../mod/profperm.php:101 -msgid "Profile Visibility Editor" -msgstr "Sýsla með sjáanleika forsíðu" - -#: ../../mod/profperm.php:103 ../../mod/newmember.php:32 ../../boot.php:2119 -#: ../../include/profile_advanced.php:7 ../../include/profile_advanced.php:87 -#: ../../include/nav.php:77 ../../view/theme/diabook/theme.php:124 -msgid "Profile" -msgstr "Forsíða" - -#: ../../mod/profperm.php:105 ../../mod/group.php:224 -msgid "Click on a contact to add or remove." -msgstr "Ýttu á tengili til að bæta við hóp eða taka úr hóp." - -#: ../../mod/profperm.php:114 -msgid "Visible To" -msgstr "Sjáanlegur hverjum" - -#: ../../mod/profperm.php:130 -msgid "All Contacts (with secure profile access)" -msgstr "Allir tengiliðir (með öruggann aðgang að forsíðu)" - -#: ../../mod/display.php:82 ../../mod/display.php:284 -#: ../../mod/display.php:503 ../../mod/viewsrc.php:15 ../../mod/admin.php:169 -#: ../../mod/admin.php:1052 ../../mod/admin.php:1265 ../../mod/notice.php:15 -#: ../../include/items.php:4516 -msgid "Item not found." -msgstr "Atriði fannst ekki." - -#: ../../mod/display.php:212 ../../mod/videos.php:115 -#: ../../mod/viewcontacts.php:19 ../../mod/community.php:18 -#: ../../mod/dfrn_request.php:762 ../../mod/search.php:89 -#: ../../mod/directory.php:33 ../../mod/photos.php:920 -msgid "Public access denied." -msgstr "Alemennings aðgangur ekki veittur." - -#: ../../mod/display.php:332 ../../mod/profile.php:155 -msgid "Access to this profile has been restricted." -msgstr "Aðgangur að þessari forsíðu hefur verið heftur." - -#: ../../mod/display.php:496 -msgid "Item has been removed." -msgstr "Atriði hefur verið fjarlægt." - -#: ../../mod/newmember.php:6 -msgid "Welcome to Friendica" -msgstr "Velkomin(n) á Friendica" - -#: ../../mod/newmember.php:8 -msgid "New Member Checklist" -msgstr "Nýr notandi verklisti" - -#: ../../mod/newmember.php:12 -msgid "" -"We would like to offer some tips and links to help make your experience " -"enjoyable. Click any item to visit the relevant page. A link to this page " -"will be visible from your home page for two weeks after your initial " -"registration and then will quietly disappear." -msgstr "" - -#: ../../mod/newmember.php:14 -msgid "Getting Started" -msgstr "" - -#: ../../mod/newmember.php:18 -msgid "Friendica Walk-Through" -msgstr "" - -#: ../../mod/newmember.php:18 -msgid "" -"On your Quick Start page - find a brief introduction to your " -"profile and network tabs, make some new connections, and find some groups to" -" join." -msgstr "" - -#: ../../mod/newmember.php:22 ../../mod/admin.php:1104 -#: ../../mod/admin.php:1325 ../../mod/settings.php:85 -#: ../../include/nav.php:172 ../../view/theme/diabook/theme.php:544 -#: ../../view/theme/diabook/theme.php:648 -msgid "Settings" -msgstr "Stillingar" - -#: ../../mod/newmember.php:26 -msgid "Go to Your Settings" -msgstr "" - -#: ../../mod/newmember.php:26 -msgid "" -"On your Settings page - change your initial password. Also make a " -"note of your Identity Address. This looks just like an email address - and " -"will be useful in making friends on the free social web." -msgstr "" - -#: ../../mod/newmember.php:28 -msgid "" -"Review the other settings, particularly the privacy settings. An unpublished" -" directory listing is like having an unlisted phone number. In general, you " -"should probably publish your listing - unless all of your friends and " -"potential friends know exactly how to find you." -msgstr "Yfirfarðu aðrar stillingar, sérstaklega næðis stillingar. Óútgefin forsíða er einsog óskráð símanúmer. Sem þýðir að líklega viltu gefa út forsíðuna þína - nema allir vinir þínir og tilvonandi vinir vita nákvæmlega hvernig á að finna þig." - -#: ../../mod/newmember.php:36 ../../mod/profile_photo.php:244 -#: ../../mod/profiles.php:699 -msgid "Upload Profile Photo" -msgstr "Hlaða upp forsíðu mynd" - -#: ../../mod/newmember.php:36 -msgid "" -"Upload a profile photo if you have not done so already. Studies have shown " -"that people with real photos of themselves are ten times more likely to make" -" friends than people who do not." -msgstr "Að hlaða upp forsíðu mynd ef þú hefur ekki þegar gert það. Rannsóknir sýna að fólk sem hefur alvöru mynd af sér er tíu sinnum líklegra til að eignast vini en fólk sem ekki hefur mynd." - -#: ../../mod/newmember.php:38 -msgid "Edit Your Profile" -msgstr "" - -#: ../../mod/newmember.php:38 -msgid "" -"Edit your default profile to your liking. Review the " -"settings for hiding your list of friends and hiding the profile from unknown" -" visitors." -msgstr "Breyttu sjálfgefnu forsíðunni einsog þú villt. Yfirfarðu stillingu til að fela vinalista á forsíðu og stillingu til að fela forsíðu fyrir ókunnum." - -#: ../../mod/newmember.php:40 -msgid "Profile Keywords" -msgstr "" - -#: ../../mod/newmember.php:40 -msgid "" -"Set some public keywords for your default profile which describe your " -"interests. We may be able to find other people with similar interests and " -"suggest friendships." -msgstr "Bættu við leitarorðum í sjálfgefnu forsíðuna þína sem lýsa þínum áhugamálum. Þá er hægt að fólk með svipuð áhugamál og stinga uppá vinskap." - -#: ../../mod/newmember.php:44 -msgid "Connecting" -msgstr "Tengist" - -#: ../../mod/newmember.php:49 ../../mod/newmember.php:51 -#: ../../include/contact_selectors.php:81 -msgid "Facebook" -msgstr "Facebook" - -#: ../../mod/newmember.php:49 -msgid "" -"Authorise the Facebook Connector if you currently have a Facebook account " -"and we will (optionally) import all your Facebook friends and conversations." -msgstr "Gefðu aðgang að Facebook tengingunni ef þú þegar hefur Facebook aðgang og þá er hægt (valfrjálst) að nálgast alla vini og samtöl á Facebook." - -#: ../../mod/newmember.php:51 -msgid "" -"If this is your own personal server, installing the Facebook addon " -"may ease your transition to the free social web." -msgstr "" - -#: ../../mod/newmember.php:56 -msgid "Importing Emails" -msgstr "" - -#: ../../mod/newmember.php:56 -msgid "" -"Enter your email access information on your Connector Settings page if you " -"wish to import and interact with friends or mailing lists from your email " -"INBOX" -msgstr "Fylltu út póstfangs tengi upplýsingar í Tengla stillinga síðuna ef þú villt sækja tölvupóst og eiga samskipti við vini eða póstlista úr tölvupóst innhólfinu þínu" - -#: ../../mod/newmember.php:58 -msgid "Go to Your Contacts Page" -msgstr "" - -#: ../../mod/newmember.php:58 -msgid "" -"Your Contacts page is your gateway to managing friendships and connecting " -"with friends on other networks. Typically you enter their address or site " -"URL in the Add New Contact dialog." -msgstr "Tengiliða síðan er gáttin þín til að sýsla með vina sambönd og tengjast við vini á öðrum netum. Oftast setur þú vistfangi eða slóð þeirra í Bæta við tengilið gluggan." - -#: ../../mod/newmember.php:60 -msgid "Go to Your Site's Directory" -msgstr "" - -#: ../../mod/newmember.php:60 -msgid "" -"The Directory page lets you find other people in this network or other " -"federated sites. Look for a Connect or Follow link on " -"their profile page. Provide your own Identity Address if requested." -msgstr "Tengiliðalistinn er góð leit til að finna fólk á samfélagsnetinu eða öðrum sambandsnetum. Leitaðu að Connect eða Follow hlekk á forsíðunni þeirra. Mögulega þarf að gefa upp þína auðkenna slóð." - -#: ../../mod/newmember.php:62 -msgid "Finding New People" -msgstr "" - -#: ../../mod/newmember.php:62 -msgid "" -"On the side panel of the Contacts page are several tools to find new " -"friends. We can match people by interest, look up people by name or " -"interest, and provide suggestions based on network relationships. On a brand" -" new site, friend suggestions will usually begin to be populated within 24 " -"hours." -msgstr "" - -#: ../../mod/newmember.php:66 ../../include/group.php:270 -msgid "Groups" -msgstr "Hópar" - -#: ../../mod/newmember.php:70 -msgid "Group Your Contacts" -msgstr "" - -#: ../../mod/newmember.php:70 -msgid "" -"Once you have made some friends, organize them into private conversation " -"groups from the sidebar of your Contacts page and then you can interact with" -" each group privately on your Network page." -msgstr "Eftir að þú hefur eignast nokkra vini, þá er best að flokka þá niður í hópa á hliðar slánni á Tengiliðasíðunni. Eftir það getur þú haft samskipti við hvern hóp fyrir sig á Samfélagssíðunni." - -#: ../../mod/newmember.php:73 -msgid "Why Aren't My Posts Public?" -msgstr "" - -#: ../../mod/newmember.php:73 -msgid "" -"Friendica respects your privacy. By default, your posts will only show up to" -" people you've added as friends. For more information, see the help section " -"from the link above." -msgstr "" - -#: ../../mod/newmember.php:78 -msgid "Getting Help" -msgstr "" - -#: ../../mod/newmember.php:82 -msgid "Go to the Help Section" -msgstr "" - -#: ../../mod/newmember.php:82 -msgid "" -"Our help pages may be consulted for detail on other program" -" features and resources." -msgstr "Hægt er að styðjast við Hjálp síðuna til að fá leiðbeiningar um aðra eiginleika." - -#: ../../mod/openid.php:24 -msgid "OpenID protocol error. No ID returned." -msgstr "" - -#: ../../mod/openid.php:53 -msgid "" -"Account not found and OpenID registration is not permitted on this site." -msgstr "" - -#: ../../mod/openid.php:93 ../../include/auth.php:112 -#: ../../include/auth.php:175 -msgid "Login failed." -msgstr "Innskráning mistókst." - -#: ../../mod/profile_photo.php:44 -msgid "Image uploaded but image cropping failed." -msgstr "Tókst að hala upp mynd en afskurður tókst ekki." - -#: ../../mod/profile_photo.php:74 ../../mod/profile_photo.php:81 -#: ../../mod/profile_photo.php:88 ../../mod/profile_photo.php:204 -#: ../../mod/profile_photo.php:296 ../../mod/profile_photo.php:305 -#: ../../mod/photos.php:155 ../../mod/photos.php:731 ../../mod/photos.php:1187 -#: ../../mod/photos.php:1210 ../../include/user.php:335 -#: ../../include/user.php:342 ../../include/user.php:349 -#: ../../view/theme/diabook/theme.php:500 -msgid "Profile Photos" -msgstr "Forsíðu myndir" - -#: ../../mod/profile_photo.php:77 ../../mod/profile_photo.php:84 -#: ../../mod/profile_photo.php:91 ../../mod/profile_photo.php:308 +#: include/enotify.php:307 include/enotify.php:321 #, php-format -msgid "Image size reduction [%s] failed." -msgstr "Myndar minnkun [%s] tókst ekki." - -#: ../../mod/profile_photo.php:118 -msgid "" -"Shift-reload the page or clear browser cache if the new photo does not " -"display immediately." -msgstr "Ýta þarf á " - -#: ../../mod/profile_photo.php:128 -msgid "Unable to process image" -msgstr "Ekki tókst að vinna mynd" - -#: ../../mod/profile_photo.php:144 ../../mod/wall_upload.php:122 -#, php-format -msgid "Image exceeds size limit of %d" -msgstr "Mynd stærri en takmörkunin %d" - -#: ../../mod/profile_photo.php:153 ../../mod/wall_upload.php:144 -#: ../../mod/photos.php:807 -msgid "Unable to process image." -msgstr "Ekki mögulegt afgreiða mynd" - -#: ../../mod/profile_photo.php:242 -msgid "Upload File:" -msgstr "Hlaða upp skrá:" - -#: ../../mod/profile_photo.php:243 -msgid "Select a profile:" +msgid "'%1$s' has accepted your connection request at %2$s" msgstr "" -#: ../../mod/profile_photo.php:245 -msgid "Upload" -msgstr "Hlaða upp" +#: include/enotify.php:308 include/enotify.php:322 +#, php-format +msgid "%2$s has accepted your [url=%1$s]connection request[/url]." +msgstr "" -#: ../../mod/profile_photo.php:248 ../../mod/settings.php:1062 -msgid "or" -msgstr "eða" +#: include/enotify.php:312 +msgid "" +"You are now mutual friends and may exchange status updates, photos, and " +"email without restriction." +msgstr "" -#: ../../mod/profile_photo.php:248 -msgid "skip this step" -msgstr "sleppa þessu skrefi" +#: include/enotify.php:314 +#, php-format +msgid "Please visit %s if you wish to make any changes to this relationship." +msgstr "" -#: ../../mod/profile_photo.php:248 -msgid "select a photo from your photo albums" -msgstr "velja mynd í myndabókum" +#: include/enotify.php:326 +#, php-format +msgid "" +"'%1$s' has chosen to accept you a \"fan\", which restricts some forms of " +"communication - such as private messaging and some profile interactions. If " +"this is a celebrity or community page, these settings were applied " +"automatically." +msgstr "" -#: ../../mod/profile_photo.php:262 -msgid "Crop Image" -msgstr "Skera af mynd" +#: include/enotify.php:328 +#, php-format +msgid "" +"'%1$s' may choose to extend this into a two-way or more permissive " +"relationship in the future." +msgstr "" -#: ../../mod/profile_photo.php:263 -msgid "Please adjust the image cropping for optimum viewing." -msgstr "Stilltu afskurð fyrir besta birtingu." +#: include/enotify.php:330 +#, php-format +msgid "Please visit %s if you wish to make any changes to this relationship." +msgstr "" -#: ../../mod/profile_photo.php:265 -msgid "Done Editing" -msgstr "Breyting kláruð" +#: include/enotify.php:340 +msgid "[Friendica System:Notify] registration request" +msgstr "[Friendica System:Notify] beiðni um skráningu" -#: ../../mod/profile_photo.php:299 -msgid "Image uploaded successfully." -msgstr "Upphölun á mynd tóks." +#: include/enotify.php:342 +#, php-format +msgid "You've received a registration request from '%1$s' at %2$s" +msgstr "" -#: ../../mod/profile_photo.php:301 ../../mod/wall_upload.php:172 -#: ../../mod/photos.php:834 -msgid "Image upload failed." -msgstr "Ekki hægt að hlaða upp mynd." +#: include/enotify.php:343 +#, php-format +msgid "You've received a [url=%1$s]registration request[/url] from %2$s." +msgstr "" -#: ../../mod/subthread.php:87 ../../mod/tagger.php:62 ../../mod/like.php:149 -#: ../../include/conversation.php:126 ../../include/conversation.php:254 -#: ../../include/text.php:1968 ../../include/diaspora.php:2087 -#: ../../view/theme/diabook/theme.php:471 -msgid "photo" -msgstr "mynd" +#: include/enotify.php:347 +#, php-format +msgid "Full Name:\t%1$s\\nSite Location:\t%2$s\\nLogin Name:\t%3$s (%4$s)" +msgstr "" -#: ../../mod/subthread.php:87 ../../mod/tagger.php:62 ../../mod/like.php:149 -#: ../../mod/like.php:319 ../../include/conversation.php:121 -#: ../../include/conversation.php:130 ../../include/conversation.php:249 -#: ../../include/conversation.php:258 ../../include/diaspora.php:2087 -#: ../../view/theme/diabook/theme.php:466 -#: ../../view/theme/diabook/theme.php:475 +#: include/enotify.php:350 +#, php-format +msgid "Please visit %s to approve or reject the request." +msgstr "Farðu á %s til að samþykkja eða hunsa þessa beiðni." + +#: include/plugin.php:522 include/plugin.php:524 +msgid "Click here to upgrade." +msgstr "Smelltu hér til að uppfæra." + +#: include/plugin.php:530 +msgid "This action exceeds the limits set by your subscription plan." +msgstr "" + +#: include/plugin.php:535 +msgid "This action is not available under your subscription plan." +msgstr "" + +#: include/ForumManager.php:114 include/text.php:998 include/nav.php:130 +#: view/theme/vier/theme.php:255 +msgid "Forums" +msgstr "Spjallsvæði" + +#: include/ForumManager.php:116 view/theme/vier/theme.php:257 +msgid "External link to forum" +msgstr "Ytri tengill á spjallsvæði" + +#: include/diaspora.php:1379 include/conversation.php:141 include/like.php:182 +#: view/theme/diabook/theme.php:480 +#, php-format +msgid "%1$s likes %2$s's %3$s" +msgstr "%1$s líkar við %3$s hjá %2$s " + +#: include/diaspora.php:1383 include/conversation.php:125 +#: include/conversation.php:134 include/conversation.php:261 +#: include/conversation.php:270 include/like.php:163 mod/tagger.php:62 +#: mod/subthread.php:87 view/theme/diabook/theme.php:466 +#: view/theme/diabook/theme.php:475 msgid "status" msgstr "staða" -#: ../../mod/subthread.php:103 +#: include/diaspora.php:1909 +msgid "Sharing notification from Diaspora network" +msgstr "Tilkynning um að einhver deildi atriði á Diaspora netinu" + +#: include/diaspora.php:2801 +msgid "Attachments:" +msgstr "Viðhengi:" + +#: include/dfrn.php:1110 #, php-format -msgid "%1$s is following %2$s's %3$s" +msgid "%s\\'s birthday" +msgstr "Afmælisdagur %s" + +#: include/uimport.php:94 +msgid "Error decoding account file" msgstr "" -#: ../../mod/tagrm.php:41 -msgid "Tag removed" -msgstr "Merki fjarlægt" - -#: ../../mod/tagrm.php:79 -msgid "Remove Item Tag" -msgstr "Fjarlægja merki " - -#: ../../mod/tagrm.php:81 -msgid "Select a tag to remove: " -msgstr "Veldu merki til að fjarlægja:" - -#: ../../mod/tagrm.php:93 ../../mod/delegate.php:139 -msgid "Remove" -msgstr "Fjarlægja" - -#: ../../mod/filer.php:30 ../../include/conversation.php:1006 -#: ../../include/conversation.php:1024 -msgid "Save to Folder:" +#: include/uimport.php:100 +msgid "Error! No version data in file! This is not a Friendica account file?" msgstr "" -#: ../../mod/filer.php:30 -msgid "- select -" +#: include/uimport.php:116 include/uimport.php:127 +msgid "Error! Cannot check nickname" msgstr "" -#: ../../mod/filer.php:31 ../../mod/editpost.php:109 ../../mod/notes.php:63 -#: ../../include/text.php:956 -msgid "Save" -msgstr "Vista" - -#: ../../mod/follow.php:27 -msgid "Contact added" -msgstr "Tengilið bætt við" - -#: ../../mod/item.php:113 -msgid "Unable to locate original post." -msgstr "Ekki tókst að finna upphaflega færslu." - -#: ../../mod/item.php:345 -msgid "Empty post discarded." -msgstr "Tóm færsla eytt." - -#: ../../mod/item.php:484 ../../mod/wall_upload.php:169 -#: ../../mod/wall_upload.php:178 ../../mod/wall_upload.php:185 -#: ../../include/Photo.php:916 ../../include/Photo.php:931 -#: ../../include/Photo.php:938 ../../include/Photo.php:960 -#: ../../include/message.php:144 -msgid "Wall Photos" -msgstr "Veggmyndir" - -#: ../../mod/item.php:938 -msgid "System error. Post not saved." -msgstr "Kerfisvilla. Færsla ekki vistuð." - -#: ../../mod/item.php:964 +#: include/uimport.php:120 include/uimport.php:131 #, php-format -msgid "" -"This message was sent to you by %s, a member of the Friendica social " -"network." -msgstr "Skilaboðið sendi %s, notandi á Friendica samfélagsnetinu." - -#: ../../mod/item.php:966 -#, php-format -msgid "You may visit them online at %s" -msgstr "Þú getur heimsótt þau á netinu á %s" - -#: ../../mod/item.php:967 -msgid "" -"Please contact the sender by replying to this post if you do not wish to " -"receive these messages." -msgstr "Hafðu samband við sendanda með því að svara á þessari færslu ef þú villt ekki fá þessi skilaboð." - -#: ../../mod/item.php:971 -#, php-format -msgid "%s posted an update." -msgstr "%s hefur sent uppfærslu." - -#: ../../mod/group.php:29 -msgid "Group created." -msgstr "Hópur stofnaður" - -#: ../../mod/group.php:35 -msgid "Could not create group." -msgstr "Gat ekki stofnað hóp." - -#: ../../mod/group.php:47 ../../mod/group.php:140 -msgid "Group not found." -msgstr "Hópur fannst ekki." - -#: ../../mod/group.php:60 -msgid "Group name changed." -msgstr "Hópur endurskýrður." - -#: ../../mod/group.php:87 -msgid "Save Group" +msgid "User '%s' already exists on this server!" msgstr "" -#: ../../mod/group.php:93 -msgid "Create a group of contacts/friends." -msgstr "Stofna hóp af tengiliðum/vinum" - -#: ../../mod/group.php:94 ../../mod/group.php:180 -msgid "Group Name: " -msgstr "Nafn hóps:" - -#: ../../mod/group.php:113 -msgid "Group removed." -msgstr "Hópi eytt." - -#: ../../mod/group.php:115 -msgid "Unable to remove group." -msgstr "Ekki tókst að eyða hóp." - -#: ../../mod/group.php:179 -msgid "Group Editor" -msgstr "Hópa sýslari" - -#: ../../mod/group.php:192 -msgid "Members" -msgstr "Aðilar" - -#: ../../mod/apps.php:7 ../../index.php:212 -msgid "You must be logged in to use addons. " +#: include/uimport.php:153 +msgid "User creation error" msgstr "" -#: ../../mod/apps.php:11 -msgid "Applications" -msgstr "Forrit" - -#: ../../mod/apps.php:14 -msgid "No installed applications." -msgstr "Engin uppsett forrit" - -#: ../../mod/dfrn_confirm.php:64 ../../mod/profiles.php:18 -#: ../../mod/profiles.php:133 ../../mod/profiles.php:179 -#: ../../mod/profiles.php:630 -msgid "Profile not found." -msgstr "Forsíða fannst ekki." - -#: ../../mod/dfrn_confirm.php:120 ../../mod/fsuggest.php:20 -#: ../../mod/fsuggest.php:92 ../../mod/crepair.php:133 -msgid "Contact not found." -msgstr "Tengiliður fannst ekki." - -#: ../../mod/dfrn_confirm.php:121 -msgid "" -"This may occasionally happen if contact was requested by both persons and it" -" has already been approved." +#: include/uimport.php:173 +msgid "User profile creation error" msgstr "" -#: ../../mod/dfrn_confirm.php:240 -msgid "Response from remote site was not understood." -msgstr "Ekki tókst að skilja svar frá ytri vef." - -#: ../../mod/dfrn_confirm.php:249 ../../mod/dfrn_confirm.php:254 -msgid "Unexpected response from remote site: " -msgstr "Óskiljanlegt svar frá ytri vef:" - -#: ../../mod/dfrn_confirm.php:263 -msgid "Confirmation completed successfully." -msgstr "Staðfesting kláraði eðlilega." - -#: ../../mod/dfrn_confirm.php:265 ../../mod/dfrn_confirm.php:279 -#: ../../mod/dfrn_confirm.php:286 -msgid "Remote site reported: " -msgstr "Ytri vefur svaraði:" - -#: ../../mod/dfrn_confirm.php:277 -msgid "Temporary failure. Please wait and try again." -msgstr "Tímabundin villa. Vinsamlegast bíddu og reyndur aftur síðar." - -#: ../../mod/dfrn_confirm.php:284 -msgid "Introduction failed or was revoked." -msgstr "Kynning mistókst eða var afturkölluð." - -#: ../../mod/dfrn_confirm.php:429 -msgid "Unable to set contact photo." -msgstr "Ekki tókst að setja tengiliðamynd." - -#: ../../mod/dfrn_confirm.php:486 ../../include/conversation.php:172 -#: ../../include/diaspora.php:620 +#: include/uimport.php:222 #, php-format -msgid "%1$s is now friends with %2$s" -msgstr "Núna er %1$s vinur %2$s" - -#: ../../mod/dfrn_confirm.php:571 -#, php-format -msgid "No user record found for '%s' " -msgstr "Enginn notanda færsla fannst fyrir '%s'" - -#: ../../mod/dfrn_confirm.php:581 -msgid "Our site encryption key is apparently messed up." -msgstr "Dulkóðunnar lykill síðunnar okker er í döðlu." - -#: ../../mod/dfrn_confirm.php:592 -msgid "Empty site URL was provided or URL could not be decrypted by us." -msgstr "Tómt slóð var uppgefin eða ekki okkur tókst ekki að afkóða slóð." - -#: ../../mod/dfrn_confirm.php:613 -msgid "Contact record was not found for you on our site." -msgstr "Tengiliðafærslan þín fannst ekki á þjóninum okkar." - -#: ../../mod/dfrn_confirm.php:627 -#, php-format -msgid "Site public key not available in contact record for URL %s." -msgstr "Opinber lykill er ekki til í tengiliðafærslu fyrir slóð %s." - -#: ../../mod/dfrn_confirm.php:647 -msgid "" -"The ID provided by your system is a duplicate on our system. It should work " -"if you try again." -msgstr "Skilríkið sem þjónninn þinn gaf upp er þegar afritað á okkar þjón. Þetta ætti að virka ef þú bara reynir aftur." - -#: ../../mod/dfrn_confirm.php:658 -msgid "Unable to set your contact credentials on our system." -msgstr "Ekki tókst að setja tengiliða skilríkið þitt upp á þjóninum okkar." - -#: ../../mod/dfrn_confirm.php:725 -msgid "Unable to update your contact profile details on our system" -msgstr "Ekki tókst að uppfæra tengiliða skilríkis upplýsingarnar á okkar þjón" - -#: ../../mod/dfrn_confirm.php:752 ../../mod/dfrn_request.php:717 -#: ../../include/items.php:4008 -msgid "[Name Withheld]" -msgstr "[Nafn ekki sýnt]" - -#: ../../mod/dfrn_confirm.php:797 -#, php-format -msgid "%1$s has joined %2$s" -msgstr "%1$s hefur gengið til liðs við %2$s" - -#: ../../mod/profile.php:21 ../../boot.php:1458 -msgid "Requested profile is not available." -msgstr "Umbeðinn forsíða ekki til." - -#: ../../mod/profile.php:180 -msgid "Tips for New Members" -msgstr "Ábendingar fyrir nýja notendur" - -#: ../../mod/videos.php:125 -msgid "No videos selected" -msgstr "" - -#: ../../mod/videos.php:226 ../../mod/photos.php:1031 -msgid "Access to this item is restricted." -msgstr "Aðgangur að þessum hlut hefur verið heftur" - -#: ../../mod/videos.php:301 ../../include/text.php:1405 -msgid "View Video" -msgstr "" - -#: ../../mod/videos.php:308 ../../mod/photos.php:1808 -msgid "View Album" -msgstr "Skoða myndabók" - -#: ../../mod/videos.php:317 -msgid "Recent Videos" -msgstr "" - -#: ../../mod/videos.php:319 -msgid "Upload New Videos" -msgstr "" - -#: ../../mod/tagger.php:95 ../../include/conversation.php:266 -#, php-format -msgid "%1$s tagged %2$s's %3$s with %4$s" -msgstr "%1$s merkti %2$s's %3$s með %4$s" - -#: ../../mod/fsuggest.php:63 -msgid "Friend suggestion sent." -msgstr "Vina tillaga send" - -#: ../../mod/fsuggest.php:97 -msgid "Suggest Friends" -msgstr "Stinga uppá vinum" - -#: ../../mod/fsuggest.php:99 -#, php-format -msgid "Suggest a friend for %s" -msgstr "Stinga uppá vin fyrir %s" - -#: ../../mod/lostpass.php:19 -msgid "No valid account found." -msgstr "Engin gildur aðgangur fannst." - -#: ../../mod/lostpass.php:35 -msgid "Password reset request issued. Check your email." -msgstr "Breyta lykilorði. Opnaðu tölvupóstinn þinn." - -#: ../../mod/lostpass.php:42 -#, php-format -msgid "" -"\n" -"\t\tDear %1$s,\n" -"\t\t\tA request was recently received at \"%2$s\" to reset your account\n" -"\t\tpassword. In order to confirm this request, please select the verification link\n" -"\t\tbelow or paste it into your web browser address bar.\n" -"\n" -"\t\tIf you did NOT request this change, please DO NOT follow the link\n" -"\t\tprovided and ignore and/or delete this email.\n" -"\n" -"\t\tYour password will not be changed unless we can verify that you\n" -"\t\tissued this request." -msgstr "" - -#: ../../mod/lostpass.php:53 -#, php-format -msgid "" -"\n" -"\t\tFollow this link to verify your identity:\n" -"\n" -"\t\t%1$s\n" -"\n" -"\t\tYou will then receive a follow-up message containing the new password.\n" -"\t\tYou may change that password from your account settings page after logging in.\n" -"\n" -"\t\tThe login details are as follows:\n" -"\n" -"\t\tSite Location:\t%2$s\n" -"\t\tLogin Name:\t%3$s" -msgstr "" - -#: ../../mod/lostpass.php:72 -#, php-format -msgid "Password reset requested at %s" -msgstr "Endurstilling aðgangsorðs umbeðin %s" - -#: ../../mod/lostpass.php:92 -msgid "" -"Request could not be verified. (You may have previously submitted it.) " -"Password reset failed." -msgstr "Beiðni gat ekki verið sannreynd. (Það getur verið að þú hafir þegar sent hana.) Endurstilling á aðgangsorði tókst ekki." - -#: ../../mod/lostpass.php:109 ../../boot.php:1280 -msgid "Password Reset" -msgstr "Endurstilling Aðgangsorðs" - -#: ../../mod/lostpass.php:110 -msgid "Your password has been reset as requested." -msgstr "Aðgangsorðið þitt hefur verið endurstilt." - -#: ../../mod/lostpass.php:111 -msgid "Your new password is" -msgstr "Nýja aðgangsorð þitt er " - -#: ../../mod/lostpass.php:112 -msgid "Save or copy your new password - and then" -msgstr "Vistaðu eða afritaðu nýja aðgangsorðið og" - -#: ../../mod/lostpass.php:113 -msgid "click here to login" -msgstr "smelltu hér til að skrá þig inn" - -#: ../../mod/lostpass.php:114 -msgid "" -"Your password may be changed from the Settings page after " -"successful login." -msgstr "Þú getur breytt aðgangsorðinu þínu á Stillingar síðunni eftir að þú hefur skráð þig inn." - -#: ../../mod/lostpass.php:125 -#, php-format -msgid "" -"\n" -"\t\t\t\tDear %1$s,\n" -"\t\t\t\t\tYour password has been changed as requested. Please retain this\n" -"\t\t\t\tinformation for your records (or change your password immediately to\n" -"\t\t\t\tsomething that you will remember).\n" -"\t\t\t" -msgstr "" - -#: ../../mod/lostpass.php:131 -#, php-format -msgid "" -"\n" -"\t\t\t\tYour login details are as follows:\n" -"\n" -"\t\t\t\tSite Location:\t%1$s\n" -"\t\t\t\tLogin Name:\t%2$s\n" -"\t\t\t\tPassword:\t%3$s\n" -"\n" -"\t\t\t\tYou may change that password from your account settings page after logging in.\n" -"\t\t\t" -msgstr "" - -#: ../../mod/lostpass.php:147 -#, php-format -msgid "Your password has been changed at %s" -msgstr "Aðgangsorðinu þínu var breytt í %s" - -#: ../../mod/lostpass.php:159 -msgid "Forgot your Password?" -msgstr "Gleymdir þú lykilorði þínu?" - -#: ../../mod/lostpass.php:160 -msgid "" -"Enter your email address and submit to have your password reset. Then check " -"your email for further instructions." -msgstr "Sláðu inn tölvupóstfangið þitt til að endurstilla aðgangsorðið og fá leiðbeiningar sendar með tölvupósti." - -#: ../../mod/lostpass.php:161 -msgid "Nickname or Email: " -msgstr "Gælunafn eða póstfang:" - -#: ../../mod/lostpass.php:162 -msgid "Reset" -msgstr "Endursetja" - -#: ../../mod/like.php:166 ../../include/conversation.php:137 -#: ../../include/diaspora.php:2103 ../../view/theme/diabook/theme.php:480 -#, php-format -msgid "%1$s likes %2$s's %3$s" -msgstr "%1$s lýkar við %3$s hjá %2$s " - -#: ../../mod/like.php:168 ../../include/conversation.php:140 -#, php-format -msgid "%1$s doesn't like %2$s's %3$s" -msgstr "%1$s líkar ekki við %3$s hjá %2$s " - -#: ../../mod/ping.php:240 -msgid "{0} wants to be your friend" -msgstr "{0} vill vera vinur þinn" - -#: ../../mod/ping.php:245 -msgid "{0} sent you a message" -msgstr "{0} sendi þér skilboð" - -#: ../../mod/ping.php:250 -msgid "{0} requested registration" -msgstr "{0} óskaði eftir skráningu" - -#: ../../mod/ping.php:256 -#, php-format -msgid "{0} commented %s's post" -msgstr "{0} gerði athugasemd við %s's senda færslu" - -#: ../../mod/ping.php:261 -#, php-format -msgid "{0} liked %s's post" -msgstr "{0} líkaði við senda færslu %s's" - -#: ../../mod/ping.php:266 -#, php-format -msgid "{0} disliked %s's post" -msgstr "{0} líkaði ekki við senda færslu %s's" - -#: ../../mod/ping.php:271 -#, php-format -msgid "{0} is now friends with %s" -msgstr "{0} er nú vinur %s" - -#: ../../mod/ping.php:276 -msgid "{0} posted" -msgstr "{0} sendi færslu" - -#: ../../mod/ping.php:281 -#, php-format -msgid "{0} tagged %s's post with #%s" -msgstr "{0} merkti %s's færslu með #%s" - -#: ../../mod/ping.php:287 -msgid "{0} mentioned you in a post" -msgstr "{0} minntist á þig í færslu" - -#: ../../mod/viewcontacts.php:41 -msgid "No contacts." -msgstr "Enginn tengiliður" - -#: ../../mod/viewcontacts.php:78 ../../include/text.php:876 -msgid "View Contacts" -msgstr "Skoða tengiliði" - -#: ../../mod/notifications.php:26 -msgid "Invalid request identifier." -msgstr "Ógilt fyrirspurnar auðkenni" - -#: ../../mod/notifications.php:35 ../../mod/notifications.php:165 -#: ../../mod/notifications.php:211 -msgid "Discard" -msgstr "Henda" - -#: ../../mod/notifications.php:78 -msgid "System" -msgstr "Kerfi" - -#: ../../mod/notifications.php:83 ../../include/nav.php:145 -msgid "Network" -msgstr "Samfélag" - -#: ../../mod/notifications.php:88 ../../mod/network.php:371 -msgid "Personal" -msgstr "Einka" - -#: ../../mod/notifications.php:93 ../../include/nav.php:105 -#: ../../include/nav.php:148 ../../view/theme/diabook/theme.php:123 -msgid "Home" -msgstr "Heim" - -#: ../../mod/notifications.php:98 ../../include/nav.php:154 -msgid "Introductions" -msgstr "Kynningar" - -#: ../../mod/notifications.php:122 -msgid "Show Ignored Requests" -msgstr "Sýna hunsaðar fyrirspurnir" - -#: ../../mod/notifications.php:122 -msgid "Hide Ignored Requests" -msgstr "Fela hunsaðar beiðnir" - -#: ../../mod/notifications.php:149 ../../mod/notifications.php:195 -msgid "Notification type: " -msgstr "Skilaboða gerð:" - -#: ../../mod/notifications.php:150 -msgid "Friend Suggestion" -msgstr "Vina tillaga" - -#: ../../mod/notifications.php:152 -#, php-format -msgid "suggested by %s" -msgstr "stungið uppá af %s" - -#: ../../mod/notifications.php:158 ../../mod/notifications.php:205 -msgid "Post a new friend activity" -msgstr "Búa til færslu um " - -#: ../../mod/notifications.php:158 ../../mod/notifications.php:205 -msgid "if applicable" -msgstr "ef við á" - -#: ../../mod/notifications.php:161 ../../mod/notifications.php:208 -#: ../../mod/admin.php:1005 -msgid "Approve" -msgstr "Samþykkja" - -#: ../../mod/notifications.php:181 -msgid "Claims to be known to you: " -msgstr "Þykist þekkja þig:" - -#: ../../mod/notifications.php:181 -msgid "yes" -msgstr "já" - -#: ../../mod/notifications.php:181 -msgid "no" -msgstr "nei" - -#: ../../mod/notifications.php:188 -msgid "Approve as: " -msgstr "Samþykkja sem:" - -#: ../../mod/notifications.php:189 -msgid "Friend" -msgstr "Vin" - -#: ../../mod/notifications.php:190 -msgid "Sharer" -msgstr "Deilir" - -#: ../../mod/notifications.php:190 -msgid "Fan/Admirer" -msgstr "Aðdáanda" - -#: ../../mod/notifications.php:196 -msgid "Friend/Connect Request" -msgstr "Vina/Tengi beiðni" - -#: ../../mod/notifications.php:196 -msgid "New Follower" -msgstr "Nýr fylgjandi" - -#: ../../mod/notifications.php:217 -msgid "No introductions." -msgstr "Engar kynningar." - -#: ../../mod/notifications.php:220 ../../include/nav.php:155 -msgid "Notifications" -msgstr "Tilkynningar" - -#: ../../mod/notifications.php:258 ../../mod/notifications.php:387 -#: ../../mod/notifications.php:478 -#, php-format -msgid "%s liked %s's post" -msgstr "%s líkaði færslu %s" - -#: ../../mod/notifications.php:268 ../../mod/notifications.php:397 -#: ../../mod/notifications.php:488 -#, php-format -msgid "%s disliked %s's post" -msgstr "%s mislíkaði færslu %s" - -#: ../../mod/notifications.php:283 ../../mod/notifications.php:412 -#: ../../mod/notifications.php:503 -#, php-format -msgid "%s is now friends with %s" -msgstr "%s er nú vinur %s" - -#: ../../mod/notifications.php:290 ../../mod/notifications.php:419 -#, php-format -msgid "%s created a new post" -msgstr "%s bjó til færslu" - -#: ../../mod/notifications.php:291 ../../mod/notifications.php:420 -#: ../../mod/notifications.php:513 -#, php-format -msgid "%s commented on %s's post" -msgstr "%s athugasemd við %s's færslu" - -#: ../../mod/notifications.php:306 -msgid "No more network notifications." -msgstr "Engar tilkynningar á neti." - -#: ../../mod/notifications.php:310 -msgid "Network Notifications" -msgstr "Tilkynningar á neti" - -#: ../../mod/notifications.php:336 ../../mod/notify.php:75 -msgid "No more system notifications." -msgstr "Ekki fleiri kerfistilkynningar." - -#: ../../mod/notifications.php:340 ../../mod/notify.php:79 -msgid "System Notifications" -msgstr "Kerfistilkynningar" - -#: ../../mod/notifications.php:435 -msgid "No more personal notifications." -msgstr "Engar einka tilkynningar." - -#: ../../mod/notifications.php:439 -msgid "Personal Notifications" -msgstr "Einkatilkynningar." - -#: ../../mod/notifications.php:520 -msgid "No more home notifications." -msgstr "Ekki fleiri heima tilkynningar" - -#: ../../mod/notifications.php:524 -msgid "Home Notifications" -msgstr "Tilkynningar frá heimasvæði" - -#: ../../mod/babel.php:17 -msgid "Source (bbcode) text:" -msgstr "" - -#: ../../mod/babel.php:23 -msgid "Source (Diaspora) text to convert to BBcode:" -msgstr "" - -#: ../../mod/babel.php:31 -msgid "Source input: " -msgstr "" - -#: ../../mod/babel.php:35 -msgid "bb2html (raw HTML): " -msgstr "bb2html (hrátt HTML): " - -#: ../../mod/babel.php:39 -msgid "bb2html: " -msgstr "bb2html: " - -#: ../../mod/babel.php:43 -msgid "bb2html2bb: " -msgstr "bb2html2bb: " - -#: ../../mod/babel.php:47 -msgid "bb2md: " -msgstr "bb2md: " - -#: ../../mod/babel.php:51 -msgid "bb2md2html: " -msgstr "bb2md2html: " - -#: ../../mod/babel.php:55 -msgid "bb2dia2bb: " -msgstr "bb2dia2bb: " - -#: ../../mod/babel.php:59 -msgid "bb2md2html2bb: " -msgstr "bb2md2html2bb: " - -#: ../../mod/babel.php:69 -msgid "Source input (Diaspora format): " -msgstr "" - -#: ../../mod/babel.php:74 -msgid "diaspora2bb: " -msgstr "diaspora2bb: " - -#: ../../mod/navigation.php:20 ../../include/nav.php:34 -msgid "Nothing new here" -msgstr "Ekkert nýtt héðan" - -#: ../../mod/navigation.php:24 ../../include/nav.php:38 -msgid "Clear notifications" -msgstr "" - -#: ../../mod/message.php:9 ../../include/nav.php:164 -msgid "New Message" -msgstr "Ný skilaboð" - -#: ../../mod/message.php:63 ../../mod/wallmessage.php:56 -msgid "No recipient selected." -msgstr "Engir viðtakendur valdir." - -#: ../../mod/message.php:67 -msgid "Unable to locate contact information." -msgstr "Ekki tókst að staðsetja tengiliðs upplýsingar." - -#: ../../mod/message.php:70 ../../mod/wallmessage.php:62 -msgid "Message could not be sent." -msgstr "Ekki tókst að senda skilaboð." - -#: ../../mod/message.php:73 ../../mod/wallmessage.php:65 -msgid "Message collection failure." -msgstr "Ekki tókst að sækja skilaboð." - -#: ../../mod/message.php:76 ../../mod/wallmessage.php:68 -msgid "Message sent." -msgstr "Skilaboð send." - -#: ../../mod/message.php:182 ../../include/nav.php:161 -msgid "Messages" -msgstr "Skilaboð" - -#: ../../mod/message.php:207 -msgid "Do you really want to delete this message?" -msgstr "" - -#: ../../mod/message.php:227 -msgid "Message deleted." -msgstr "Skilaboðum eytt." - -#: ../../mod/message.php:258 -msgid "Conversation removed." -msgstr "Samtali eytt." - -#: ../../mod/message.php:283 ../../mod/message.php:291 -#: ../../mod/message.php:466 ../../mod/message.php:474 -#: ../../mod/wallmessage.php:127 ../../mod/wallmessage.php:135 -#: ../../include/conversation.php:1002 ../../include/conversation.php:1020 -msgid "Please enter a link URL:" -msgstr "Sláðu inn slóð:" - -#: ../../mod/message.php:319 ../../mod/wallmessage.php:142 -msgid "Send Private Message" -msgstr "Senda einkaskilaboð" - -#: ../../mod/message.php:320 ../../mod/message.php:553 -#: ../../mod/wallmessage.php:144 -msgid "To:" -msgstr "Til:" - -#: ../../mod/message.php:325 ../../mod/message.php:555 -#: ../../mod/wallmessage.php:145 -msgid "Subject:" -msgstr "Efni:" - -#: ../../mod/message.php:329 ../../mod/message.php:558 -#: ../../mod/wallmessage.php:151 ../../mod/invite.php:134 -msgid "Your message:" -msgstr "Skilaboðin:" - -#: ../../mod/message.php:332 ../../mod/message.php:562 -#: ../../mod/wallmessage.php:154 ../../mod/editpost.php:110 -#: ../../include/conversation.php:1091 -msgid "Upload photo" -msgstr "Hlaða upp mynd" - -#: ../../mod/message.php:333 ../../mod/message.php:563 -#: ../../mod/wallmessage.php:155 ../../mod/editpost.php:114 -#: ../../include/conversation.php:1095 -msgid "Insert web link" -msgstr "Setja inn vefslóð" - -#: ../../mod/message.php:334 ../../mod/message.php:565 -#: ../../mod/content.php:499 ../../mod/content.php:883 -#: ../../mod/wallmessage.php:156 ../../mod/editpost.php:124 -#: ../../mod/photos.php:1545 ../../object/Item.php:364 -#: ../../include/conversation.php:692 ../../include/conversation.php:1109 -msgid "Please wait" -msgstr "Vinsamlegast bíðið" - -#: ../../mod/message.php:371 -msgid "No messages." -msgstr "Engin skilaboð." - -#: ../../mod/message.php:378 -#, php-format -msgid "Unknown sender - %s" -msgstr "" - -#: ../../mod/message.php:381 -#, php-format -msgid "You and %s" -msgstr "" - -#: ../../mod/message.php:384 -#, php-format -msgid "%s and You" -msgstr "" - -#: ../../mod/message.php:405 ../../mod/message.php:546 -msgid "Delete conversation" -msgstr "Eyða samtali" - -#: ../../mod/message.php:408 -msgid "D, d M Y - g:i A" -msgstr "" - -#: ../../mod/message.php:411 -#, php-format -msgid "%d message" -msgid_plural "%d messages" +msgid "%d contact not imported" +msgid_plural "%d contacts not imported" msgstr[0] "" msgstr[1] "" -#: ../../mod/message.php:450 -msgid "Message not available." -msgstr "Ekki næst í skilaboð." - -#: ../../mod/message.php:520 -msgid "Delete message" -msgstr "Eyða skilaboðum" - -#: ../../mod/message.php:548 -msgid "" -"No secure communications available. You may be able to " -"respond from the sender's profile page." -msgstr "" - -#: ../../mod/message.php:552 -msgid "Send Reply" -msgstr "Senda svar" - -#: ../../mod/update_display.php:22 ../../mod/update_community.php:18 -#: ../../mod/update_notes.php:37 ../../mod/update_profile.php:41 -#: ../../mod/update_network.php:25 -msgid "[Embedded content - reload page to view]" -msgstr "[Innfelt efni - endurhlaða síðu til að sjá]" - -#: ../../mod/crepair.php:106 -msgid "Contact settings applied." -msgstr "Stillingar tengiliðs uppfærðar." - -#: ../../mod/crepair.php:108 -msgid "Contact update failed." -msgstr "Uppfærsla tengiliðs mistókst." - -#: ../../mod/crepair.php:139 -msgid "Repair Contact Settings" -msgstr "Gera við stillingar tengiliðs" - -#: ../../mod/crepair.php:141 -msgid "" -"WARNING: This is highly advanced and if you enter incorrect" -" information your communications with this contact may stop working." -msgstr "AÐVÖRUN: Þetta er mjög flókið og ef þú setur inn vitlausar upplýsingar þá munu samskipti við þennan tengilið hætta að virka." - -#: ../../mod/crepair.php:142 -msgid "" -"Please use your browser 'Back' button now if you are " -"uncertain what to do on this page." -msgstr "Vinsamlegast veldu \"Afturábak\" takkan núna ef þú ert ekki viss um hvað þú eigir að gera á þessari síðu." - -#: ../../mod/crepair.php:148 -msgid "Return to contact editor" -msgstr "Fara til baka í tengiliðasýsl" - -#: ../../mod/crepair.php:159 ../../mod/crepair.php:161 -msgid "No mirroring" -msgstr "" - -#: ../../mod/crepair.php:159 -msgid "Mirror as forwarded posting" -msgstr "" - -#: ../../mod/crepair.php:159 ../../mod/crepair.php:161 -msgid "Mirror as my own posting" -msgstr "" - -#: ../../mod/crepair.php:165 ../../mod/admin.php:1003 ../../mod/admin.php:1015 -#: ../../mod/admin.php:1016 ../../mod/admin.php:1029 -#: ../../mod/settings.php:616 ../../mod/settings.php:642 -msgid "Name" -msgstr "Nafn" - -#: ../../mod/crepair.php:166 -msgid "Account Nickname" -msgstr "Gælunafn notanda" - -#: ../../mod/crepair.php:167 -msgid "@Tagname - overrides Name/Nickname" -msgstr "@Merkjanafn - yfirskrifar Nafn/Gælunafn" - -#: ../../mod/crepair.php:168 -msgid "Account URL" -msgstr "Heimasíða notanda" - -#: ../../mod/crepair.php:169 -msgid "Friend Request URL" -msgstr "Slóð vina beiðnis" - -#: ../../mod/crepair.php:170 -msgid "Friend Confirm URL" -msgstr "Slóð vina staðfestingar " - -#: ../../mod/crepair.php:171 -msgid "Notification Endpoint URL" -msgstr "Slóð loka tilkynningar" - -#: ../../mod/crepair.php:172 -msgid "Poll/Feed URL" -msgstr "Slóð könnunar/þráðar" - -#: ../../mod/crepair.php:173 -msgid "New photo from this URL" -msgstr "Ný mynd frá slóð" - -#: ../../mod/crepair.php:174 -msgid "Remote Self" -msgstr "" - -#: ../../mod/crepair.php:176 -msgid "Mirror postings from this contact" -msgstr "" - -#: ../../mod/crepair.php:176 -msgid "" -"Mark this contact as remote_self, this will cause friendica to repost new " -"entries from this contact." -msgstr "" - -#: ../../mod/bookmarklet.php:12 ../../boot.php:1266 ../../include/nav.php:92 -msgid "Login" -msgstr "Innskrá" - -#: ../../mod/bookmarklet.php:41 -msgid "The post was created" -msgstr "" - -#: ../../mod/viewsrc.php:7 -msgid "Access denied." -msgstr "Aðgangi hafnað" - -#: ../../mod/dirfind.php:26 -msgid "People Search" -msgstr "Leita af fólki" - -#: ../../mod/dirfind.php:60 ../../mod/match.php:65 -msgid "No matches" -msgstr "Engar leitarniðurstöður" - -#: ../../mod/fbrowser.php:25 ../../boot.php:2126 ../../include/nav.php:78 -#: ../../view/theme/diabook/theme.php:126 -msgid "Photos" -msgstr "Myndir" - -#: ../../mod/fbrowser.php:113 -msgid "Files" -msgstr "Skrár" - -#: ../../mod/nogroup.php:59 -msgid "Contacts who are not members of a group" -msgstr "" - -#: ../../mod/admin.php:57 -msgid "Theme settings updated." -msgstr "Þemastillingar uppfærðar." - -#: ../../mod/admin.php:104 ../../mod/admin.php:619 -msgid "Site" -msgstr "Vefur" - -#: ../../mod/admin.php:105 ../../mod/admin.php:998 ../../mod/admin.php:1013 -msgid "Users" -msgstr "Notendur" - -#: ../../mod/admin.php:106 ../../mod/admin.php:1102 ../../mod/admin.php:1155 -#: ../../mod/settings.php:57 -msgid "Plugins" -msgstr "Viðbætur" - -#: ../../mod/admin.php:107 ../../mod/admin.php:1323 ../../mod/admin.php:1357 -msgid "Themes" -msgstr "Þemu" - -#: ../../mod/admin.php:108 -msgid "DB updates" -msgstr "Gagnagrunns uppfærslur" - -#: ../../mod/admin.php:123 ../../mod/admin.php:132 ../../mod/admin.php:1444 -msgid "Logs" -msgstr "Atburðaskrá" - -#: ../../mod/admin.php:124 -msgid "probe address" -msgstr "" - -#: ../../mod/admin.php:125 -msgid "check webfinger" -msgstr "" - -#: ../../mod/admin.php:130 ../../include/nav.php:184 -msgid "Admin" -msgstr "Stjórnborð" - -#: ../../mod/admin.php:131 -msgid "Plugin Features" -msgstr "" - -#: ../../mod/admin.php:133 -msgid "diagnostics" -msgstr "" - -#: ../../mod/admin.php:134 -msgid "User registrations waiting for confirmation" -msgstr "Notenda nýskráningar bíða samþykkis" - -#: ../../mod/admin.php:193 ../../mod/admin.php:952 -msgid "Normal Account" -msgstr "Venjulegur notandi" - -#: ../../mod/admin.php:194 ../../mod/admin.php:953 -msgid "Soapbox Account" -msgstr "Sápukassa notandi" - -#: ../../mod/admin.php:195 ../../mod/admin.php:954 -msgid "Community/Celebrity Account" -msgstr "Hópa-/Stjörnusíða" - -#: ../../mod/admin.php:196 ../../mod/admin.php:955 -msgid "Automatic Friend Account" -msgstr "Verður sjálfkrafa vinur notandi" - -#: ../../mod/admin.php:197 -msgid "Blog Account" -msgstr "" - -#: ../../mod/admin.php:198 -msgid "Private Forum" -msgstr "" - -#: ../../mod/admin.php:217 -msgid "Message queues" -msgstr "" - -#: ../../mod/admin.php:222 ../../mod/admin.php:618 ../../mod/admin.php:997 -#: ../../mod/admin.php:1101 ../../mod/admin.php:1154 ../../mod/admin.php:1322 -#: ../../mod/admin.php:1356 ../../mod/admin.php:1443 -msgid "Administration" -msgstr "Stjórnun" - -#: ../../mod/admin.php:223 -msgid "Summary" -msgstr "Samantekt" - -#: ../../mod/admin.php:225 -msgid "Registered users" -msgstr "Skráðir notendur" - -#: ../../mod/admin.php:227 -msgid "Pending registrations" -msgstr "Nýskráningar í bið" - -#: ../../mod/admin.php:228 -msgid "Version" -msgstr "Útgáfa" - -#: ../../mod/admin.php:232 -msgid "Active plugins" -msgstr "Virkar viðbætur" - -#: ../../mod/admin.php:255 -msgid "Can not parse base url. Must have at least ://" -msgstr "" - -#: ../../mod/admin.php:516 -msgid "Site settings updated." -msgstr "Stillingar þjóns uppfærðar." - -#: ../../mod/admin.php:545 ../../mod/settings.php:828 -msgid "No special theme for mobile devices" -msgstr "" - -#: ../../mod/admin.php:562 -msgid "No community page" -msgstr "" - -#: ../../mod/admin.php:563 -msgid "Public postings from users of this site" -msgstr "" - -#: ../../mod/admin.php:564 -msgid "Global community page" -msgstr "" - -#: ../../mod/admin.php:570 -msgid "At post arrival" -msgstr "" - -#: ../../mod/admin.php:571 ../../include/contact_selectors.php:56 -msgid "Frequently" -msgstr "Oft" - -#: ../../mod/admin.php:572 ../../include/contact_selectors.php:57 -msgid "Hourly" -msgstr "Klukkustundar fresti" - -#: ../../mod/admin.php:573 ../../include/contact_selectors.php:58 -msgid "Twice daily" -msgstr "Tvisvar á dag" - -#: ../../mod/admin.php:574 ../../include/contact_selectors.php:59 -msgid "Daily" -msgstr "Daglega" - -#: ../../mod/admin.php:579 -msgid "Multi user instance" -msgstr "" - -#: ../../mod/admin.php:602 -msgid "Closed" -msgstr "Lokað" - -#: ../../mod/admin.php:603 -msgid "Requires approval" -msgstr "Þarf samþykki" - -#: ../../mod/admin.php:604 -msgid "Open" -msgstr "Opið" - -#: ../../mod/admin.php:608 -msgid "No SSL policy, links will track page SSL state" -msgstr "" - -#: ../../mod/admin.php:609 -msgid "Force all links to use SSL" -msgstr "" - -#: ../../mod/admin.php:610 -msgid "Self-signed certificate, use SSL for local links only (discouraged)" -msgstr "" - -#: ../../mod/admin.php:620 ../../mod/admin.php:1156 ../../mod/admin.php:1358 -#: ../../mod/admin.php:1445 ../../mod/settings.php:614 -#: ../../mod/settings.php:724 ../../mod/settings.php:798 -#: ../../mod/settings.php:880 ../../mod/settings.php:1113 -msgid "Save Settings" -msgstr "" - -#: ../../mod/admin.php:621 ../../mod/register.php:255 -msgid "Registration" -msgstr "Nýskráning" - -#: ../../mod/admin.php:622 -msgid "File upload" -msgstr "Hlaða upp skrá" - -#: ../../mod/admin.php:623 -msgid "Policies" -msgstr "Stefna" - -#: ../../mod/admin.php:624 -msgid "Advanced" -msgstr "Flóknari" - -#: ../../mod/admin.php:625 -msgid "Performance" -msgstr "Afköst" - -#: ../../mod/admin.php:626 -msgid "" -"Relocate - WARNING: advanced function. Could make this server unreachable." -msgstr "" - -#: ../../mod/admin.php:629 -msgid "Site name" -msgstr "Nafn síðu" - -#: ../../mod/admin.php:630 -msgid "Host name" -msgstr "" - -#: ../../mod/admin.php:631 -msgid "Sender Email" +#: include/uimport.php:292 +msgid "Done. You can now login with your username and password" msgstr "" -#: ../../mod/admin.php:632 -msgid "Banner/Logo" -msgstr "Borði/Merki" - -#: ../../mod/admin.php:633 -msgid "Shortcut icon" -msgstr "" - -#: ../../mod/admin.php:634 -msgid "Touch icon" -msgstr "" - -#: ../../mod/admin.php:635 -msgid "Additional Info" -msgstr "" - -#: ../../mod/admin.php:635 -msgid "" -"For public servers: you can add additional information here that will be " -"listed at dir.friendica.com/siteinfo." -msgstr "" - -#: ../../mod/admin.php:636 -msgid "System language" -msgstr "Kerfis tungumál" - -#: ../../mod/admin.php:637 -msgid "System theme" -msgstr "Kerfis þema" - -#: ../../mod/admin.php:637 -msgid "" -"Default system theme - may be over-ridden by user profiles - change theme settings" -msgstr "" - -#: ../../mod/admin.php:638 -msgid "Mobile system theme" -msgstr "" - -#: ../../mod/admin.php:638 -msgid "Theme for mobile devices" -msgstr "" - -#: ../../mod/admin.php:639 -msgid "SSL link policy" -msgstr "" - -#: ../../mod/admin.php:639 -msgid "Determines whether generated links should be forced to use SSL" -msgstr "" - -#: ../../mod/admin.php:640 -msgid "Force SSL" -msgstr "" - -#: ../../mod/admin.php:640 -msgid "" -"Force all Non-SSL requests to SSL - Attention: on some systems it could lead" -" to endless loops." -msgstr "" - -#: ../../mod/admin.php:641 -msgid "Old style 'Share'" -msgstr "" - -#: ../../mod/admin.php:641 -msgid "Deactivates the bbcode element 'share' for repeating items." -msgstr "" - -#: ../../mod/admin.php:642 -msgid "Hide help entry from navigation menu" -msgstr "" - -#: ../../mod/admin.php:642 -msgid "" -"Hides the menu entry for the Help pages from the navigation menu. You can " -"still access it calling /help directly." -msgstr "" - -#: ../../mod/admin.php:643 -msgid "Single user instance" -msgstr "" - -#: ../../mod/admin.php:643 -msgid "Make this instance multi-user or single-user for the named user" -msgstr "" - -#: ../../mod/admin.php:644 -msgid "Maximum image size" -msgstr "Mesta stærð mynda" - -#: ../../mod/admin.php:644 -msgid "" -"Maximum size in bytes of uploaded images. Default is 0, which means no " -"limits." -msgstr "" - -#: ../../mod/admin.php:645 -msgid "Maximum image length" -msgstr "" - -#: ../../mod/admin.php:645 -msgid "" -"Maximum length in pixels of the longest side of uploaded images. Default is " -"-1, which means no limits." -msgstr "" - -#: ../../mod/admin.php:646 -msgid "JPEG image quality" -msgstr "JPEG myndgæði" - -#: ../../mod/admin.php:646 -msgid "" -"Uploaded JPEGS will be saved at this quality setting [0-100]. Default is " -"100, which is full quality." -msgstr "" - -#: ../../mod/admin.php:648 -msgid "Register policy" -msgstr "Nýskráningar stefna" - -#: ../../mod/admin.php:649 -msgid "Maximum Daily Registrations" -msgstr "" - -#: ../../mod/admin.php:649 -msgid "" -"If registration is permitted above, this sets the maximum number of new user" -" registrations to accept per day. If register is set to closed, this " -"setting has no effect." -msgstr "" - -#: ../../mod/admin.php:650 -msgid "Register text" -msgstr "Nýskráningar texti" - -#: ../../mod/admin.php:650 -msgid "Will be displayed prominently on the registration page." -msgstr "" - -#: ../../mod/admin.php:651 -msgid "Accounts abandoned after x days" -msgstr "Yfirgefnir notendur eftir x daga" - -#: ../../mod/admin.php:651 -msgid "" -"Will not waste system resources polling external sites for abandonded " -"accounts. Enter 0 for no time limit." -msgstr "Hættir að eyða afli í að sækja færslur á ytri vefi fyrir yfirgefna notendur. 0 þýðir notendur merkjast ekki yfirgefnir." - -#: ../../mod/admin.php:652 -msgid "Allowed friend domains" -msgstr "Vina lén leyfð" - -#: ../../mod/admin.php:652 -msgid "" -"Comma separated list of domains which are allowed to establish friendships " -"with this site. Wildcards are accepted. Empty to allow any domains" -msgstr "" - -#: ../../mod/admin.php:653 -msgid "Allowed email domains" -msgstr "Póstfangs lén leyfð" - -#: ../../mod/admin.php:653 -msgid "" -"Comma separated list of domains which are allowed in email addresses for " -"registrations to this site. Wildcards are accepted. Empty to allow any " -"domains" -msgstr "" - -#: ../../mod/admin.php:654 -msgid "Block public" -msgstr "Lokað á opinberar færslur" - -#: ../../mod/admin.php:654 -msgid "" -"Check to block public access to all otherwise public personal pages on this " -"site unless you are currently logged in." -msgstr "" - -#: ../../mod/admin.php:655 -msgid "Force publish" -msgstr "Skylda að vera í tengiliðalista" - -#: ../../mod/admin.php:655 -msgid "" -"Check to force all profiles on this site to be listed in the site directory." -msgstr "" - -#: ../../mod/admin.php:656 -msgid "Global directory update URL" -msgstr "Uppfærsluslóð fyrir alheimstengiliðalista" - -#: ../../mod/admin.php:656 -msgid "" -"URL to update the global directory. If this is not set, the global directory" -" is completely unavailable to the application." -msgstr "" - -#: ../../mod/admin.php:657 -msgid "Allow threaded items" -msgstr "" - -#: ../../mod/admin.php:657 -msgid "Allow infinite level threading for items on this site." -msgstr "" - -#: ../../mod/admin.php:658 -msgid "Private posts by default for new users" -msgstr "" - -#: ../../mod/admin.php:658 -msgid "" -"Set default post permissions for all new members to the default privacy " -"group rather than public." -msgstr "" - -#: ../../mod/admin.php:659 -msgid "Don't include post content in email notifications" -msgstr "" - -#: ../../mod/admin.php:659 -msgid "" -"Don't include the content of a post/comment/private message/etc. in the " -"email notifications that are sent out from this site, as a privacy measure." -msgstr "" - -#: ../../mod/admin.php:660 -msgid "Disallow public access to addons listed in the apps menu." -msgstr "" - -#: ../../mod/admin.php:660 -msgid "" -"Checking this box will restrict addons listed in the apps menu to members " -"only." -msgstr "" - -#: ../../mod/admin.php:661 -msgid "Don't embed private images in posts" -msgstr "" - -#: ../../mod/admin.php:661 -msgid "" -"Don't replace locally-hosted private photos in posts with an embedded copy " -"of the image. This means that contacts who receive posts containing private " -"photos will have to authenticate and load each image, which may take a " -"while." -msgstr "" - -#: ../../mod/admin.php:662 -msgid "Allow Users to set remote_self" -msgstr "" - -#: ../../mod/admin.php:662 -msgid "" -"With checking this, every user is allowed to mark every contact as a " -"remote_self in the repair contact dialog. Setting this flag on a contact " -"causes mirroring every posting of that contact in the users stream." -msgstr "" - -#: ../../mod/admin.php:663 -msgid "Block multiple registrations" -msgstr "Banna margar skráningar" - -#: ../../mod/admin.php:663 -msgid "Disallow users to register additional accounts for use as pages." -msgstr "" - -#: ../../mod/admin.php:664 -msgid "OpenID support" -msgstr "Leyfa OpenID auðkenningu" - -#: ../../mod/admin.php:664 -msgid "OpenID support for registration and logins." -msgstr "" - -#: ../../mod/admin.php:665 -msgid "Fullname check" -msgstr "Fullt nafn skilyrði" - -#: ../../mod/admin.php:665 -msgid "" -"Force users to register with a space between firstname and lastname in Full " -"name, as an antispam measure" -msgstr "" - -#: ../../mod/admin.php:666 -msgid "UTF-8 Regular expressions" -msgstr "UTF-8 hefðbundin stöfun" - -#: ../../mod/admin.php:666 -msgid "Use PHP UTF8 regular expressions" -msgstr "" - -#: ../../mod/admin.php:667 -msgid "Community Page Style" -msgstr "" - -#: ../../mod/admin.php:667 -msgid "" -"Type of community page to show. 'Global community' shows every public " -"posting from an open distributed network that arrived on this server." -msgstr "" - -#: ../../mod/admin.php:668 -msgid "Posts per user on community page" -msgstr "" - -#: ../../mod/admin.php:668 -msgid "" -"The maximum number of posts per user on the community page. (Not valid for " -"'Global Community')" -msgstr "" - -#: ../../mod/admin.php:669 -msgid "Enable OStatus support" -msgstr "Leyfa OStatus stuðning" - -#: ../../mod/admin.php:669 -msgid "" -"Provide built-in OStatus (StatusNet, GNU Social etc.) compatibility. All " -"communications in OStatus are public, so privacy warnings will be " -"occasionally displayed." -msgstr "" - -#: ../../mod/admin.php:670 -msgid "OStatus conversation completion interval" -msgstr "" - -#: ../../mod/admin.php:670 -msgid "" -"How often shall the poller check for new entries in OStatus conversations? " -"This can be a very ressource task." -msgstr "" - -#: ../../mod/admin.php:671 -msgid "Enable Diaspora support" -msgstr "Leyfa Diaspora tengingar" - -#: ../../mod/admin.php:671 -msgid "Provide built-in Diaspora network compatibility." -msgstr "" - -#: ../../mod/admin.php:672 -msgid "Only allow Friendica contacts" -msgstr "Aðeins leyfa Friendica notendur" - -#: ../../mod/admin.php:672 -msgid "" -"All contacts must use Friendica protocols. All other built-in communication " -"protocols disabled." -msgstr "" - -#: ../../mod/admin.php:673 -msgid "Verify SSL" -msgstr "Sannreyna SSL" - -#: ../../mod/admin.php:673 -msgid "" -"If you wish, you can turn on strict certificate checking. This will mean you" -" cannot connect (at all) to self-signed SSL sites." -msgstr "" - -#: ../../mod/admin.php:674 -msgid "Proxy user" -msgstr "Proxy notandi" - -#: ../../mod/admin.php:675 -msgid "Proxy URL" -msgstr "Proxy slóð" - -#: ../../mod/admin.php:676 -msgid "Network timeout" -msgstr "Net tími útrunninn" - -#: ../../mod/admin.php:676 -msgid "Value is in seconds. Set to 0 for unlimited (not recommended)." -msgstr "" - -#: ../../mod/admin.php:677 -msgid "Delivery interval" -msgstr "" - -#: ../../mod/admin.php:677 -msgid "" -"Delay background delivery processes by this many seconds to reduce system " -"load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 " -"for large dedicated servers." -msgstr "" - -#: ../../mod/admin.php:678 -msgid "Poll interval" -msgstr "" - -#: ../../mod/admin.php:678 -msgid "" -"Delay background polling processes by this many seconds to reduce system " -"load. If 0, use delivery interval." -msgstr "" - -#: ../../mod/admin.php:679 -msgid "Maximum Load Average" -msgstr "Mesta meðaltals álag" - -#: ../../mod/admin.php:679 -msgid "" -"Maximum system load before delivery and poll processes are deferred - " -"default 50." -msgstr "" - -#: ../../mod/admin.php:681 -msgid "Use MySQL full text engine" -msgstr "" - -#: ../../mod/admin.php:681 -msgid "" -"Activates the full text engine. Speeds up search - but can only search for " -"four and more characters." -msgstr "" - -#: ../../mod/admin.php:682 -msgid "Suppress Language" -msgstr "" - -#: ../../mod/admin.php:682 -msgid "Suppress language information in meta information about a posting." -msgstr "" - -#: ../../mod/admin.php:683 -msgid "Suppress Tags" -msgstr "" - -#: ../../mod/admin.php:683 -msgid "Suppress showing a list of hashtags at the end of the posting." -msgstr "" - -#: ../../mod/admin.php:684 -msgid "Path to item cache" -msgstr "" - -#: ../../mod/admin.php:685 -msgid "Cache duration in seconds" -msgstr "" - -#: ../../mod/admin.php:685 -msgid "" -"How long should the cache files be hold? Default value is 86400 seconds (One" -" day). To disable the item cache, set the value to -1." -msgstr "" - -#: ../../mod/admin.php:686 -msgid "Maximum numbers of comments per post" -msgstr "" - -#: ../../mod/admin.php:686 -msgid "How much comments should be shown for each post? Default value is 100." -msgstr "" - -#: ../../mod/admin.php:687 -msgid "Path for lock file" -msgstr "" - -#: ../../mod/admin.php:688 -msgid "Temp path" -msgstr "" - -#: ../../mod/admin.php:689 -msgid "Base path to installation" -msgstr "" - -#: ../../mod/admin.php:690 -msgid "Disable picture proxy" -msgstr "" - -#: ../../mod/admin.php:690 -msgid "" -"The picture proxy increases performance and privacy. It shouldn't be used on" -" systems with very low bandwith." -msgstr "" - -#: ../../mod/admin.php:691 -msgid "Enable old style pager" -msgstr "" - -#: ../../mod/admin.php:691 -msgid "" -"The old style pager has page numbers but slows down massively the page " -"speed." -msgstr "" - -#: ../../mod/admin.php:692 -msgid "Only search in tags" -msgstr "" - -#: ../../mod/admin.php:692 -msgid "On large systems the text search can slow down the system extremely." -msgstr "" - -#: ../../mod/admin.php:694 -msgid "New base url" -msgstr "" - -#: ../../mod/admin.php:711 -msgid "Update has been marked successful" -msgstr "Uppfærsla merkt sem tókst" - -#: ../../mod/admin.php:719 +#: include/dba.php:56 include/dba_pdo.php:72 #, php-format -msgid "Database structure update %s was successfully applied." +msgid "Cannot locate DNS info for database server '%s'" +msgstr "Get ekki flett upp DNS upplýsingum fyrir gagnagrunnsþjón '%s'" + +#: include/event.php:16 include/bb2diaspora.php:148 mod/localtime.php:12 +msgid "l F d, Y \\@ g:i A" msgstr "" -#: ../../mod/admin.php:722 -#, php-format -msgid "Executing of database structure update %s failed with error: %s" -msgstr "" +#: include/event.php:33 include/event.php:51 include/bb2diaspora.php:154 +msgid "Starts:" +msgstr "Byrjar:" -#: ../../mod/admin.php:734 -#, php-format -msgid "Executing %s failed with error: %s" -msgstr "" +#: include/event.php:36 include/event.php:57 include/bb2diaspora.php:162 +msgid "Finishes:" +msgstr "Endar:" -#: ../../mod/admin.php:737 -#, php-format -msgid "Update %s was successfully applied." -msgstr "Uppfærsla %s framkvæmd." - -#: ../../mod/admin.php:741 -#, php-format -msgid "Update %s did not return a status. Unknown if it succeeded." -msgstr "Uppfærsla %s skilaði ekki gildi. Óvíst hvort tókst." - -#: ../../mod/admin.php:743 -#, php-format -msgid "There was no additional update function %s that needed to be called." -msgstr "" - -#: ../../mod/admin.php:762 -msgid "No failed updates." -msgstr "Engar uppfærslur mistókust." - -#: ../../mod/admin.php:763 -msgid "Check database structure" -msgstr "" - -#: ../../mod/admin.php:768 -msgid "Failed Updates" -msgstr "Uppfærslur sem mistókust" - -#: ../../mod/admin.php:769 -msgid "" -"This does not include updates prior to 1139, which did not return a status." -msgstr "Þetta á ekki við uppfærslur fyrir 1139, þær skiluðu ekki lokastöðu." - -#: ../../mod/admin.php:770 -msgid "Mark success (if update was manually applied)" -msgstr "Merkja sem tókst (ef uppfærsla var framkvæmd handvirkt)" - -#: ../../mod/admin.php:771 -msgid "Attempt to execute this update step automatically" -msgstr "Framkvæma þessa uppfærslu sjálfkrafa" - -#: ../../mod/admin.php:803 -#, php-format -msgid "" -"\n" -"\t\t\tDear %1$s,\n" -"\t\t\t\tthe administrator of %2$s has set up an account for you." -msgstr "" - -#: ../../mod/admin.php:806 -#, php-format -msgid "" -"\n" -"\t\t\tThe login details are as follows:\n" -"\n" -"\t\t\tSite Location:\t%1$s\n" -"\t\t\tLogin Name:\t\t%2$s\n" -"\t\t\tPassword:\t\t%3$s\n" -"\n" -"\t\t\tYou may change your password from your account \"Settings\" page after logging\n" -"\t\t\tin.\n" -"\n" -"\t\t\tPlease take a few moments to review the other account settings on that page.\n" -"\n" -"\t\t\tYou may also wish to add some basic information to your default profile\n" -"\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n" -"\n" -"\t\t\tWe recommend setting your full name, adding a profile photo,\n" -"\t\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n" -"\t\t\tperhaps what country you live in; if you do not wish to be more specific\n" -"\t\t\tthan that.\n" -"\n" -"\t\t\tWe fully respect your right to privacy, and none of these items are necessary.\n" -"\t\t\tIf you are new and do not know anybody here, they may help\n" -"\t\t\tyou to make some new and interesting friends.\n" -"\n" -"\t\t\tThank you and welcome to %4$s." -msgstr "" - -#: ../../mod/admin.php:838 ../../include/user.php:413 -#, php-format -msgid "Registration details for %s" -msgstr "Nýskráningar upplýsingar fyrir %s" - -#: ../../mod/admin.php:850 -#, php-format -msgid "%s user blocked/unblocked" -msgid_plural "%s users blocked/unblocked" -msgstr[0] "" -msgstr[1] "" - -#: ../../mod/admin.php:857 -#, php-format -msgid "%s user deleted" -msgid_plural "%s users deleted" -msgstr[0] "%s notenda eytt" -msgstr[1] "%s notendum eytt" - -#: ../../mod/admin.php:896 -#, php-format -msgid "User '%s' deleted" -msgstr "Notanda '%s' eytt" - -#: ../../mod/admin.php:904 -#, php-format -msgid "User '%s' unblocked" -msgstr "Notanda '%s' gefið frelsi" - -#: ../../mod/admin.php:904 -#, php-format -msgid "User '%s' blocked" -msgstr "Notanda '%s' settur í bann" - -#: ../../mod/admin.php:999 -msgid "Add User" -msgstr "" - -#: ../../mod/admin.php:1000 -msgid "select all" -msgstr "velja alla" - -#: ../../mod/admin.php:1001 -msgid "User registrations waiting for confirm" -msgstr "Skráning notanda býður samþykkis" - -#: ../../mod/admin.php:1002 -msgid "User waiting for permanent deletion" -msgstr "" - -#: ../../mod/admin.php:1003 -msgid "Request date" -msgstr "Dagsetning beiðnar" - -#: ../../mod/admin.php:1003 ../../mod/admin.php:1015 ../../mod/admin.php:1016 -#: ../../mod/admin.php:1031 ../../include/contact_selectors.php:79 -#: ../../include/contact_selectors.php:86 -msgid "Email" -msgstr "Póstfang" - -#: ../../mod/admin.php:1004 -msgid "No registrations." -msgstr "Engin skráning" - -#: ../../mod/admin.php:1006 -msgid "Deny" -msgstr "Hafnað" - -#: ../../mod/admin.php:1010 -msgid "Site admin" -msgstr "" - -#: ../../mod/admin.php:1011 -msgid "Account expired" -msgstr "" - -#: ../../mod/admin.php:1014 -msgid "New User" -msgstr "" - -#: ../../mod/admin.php:1015 ../../mod/admin.php:1016 -msgid "Register date" -msgstr "Skráningar dagsetning" - -#: ../../mod/admin.php:1015 ../../mod/admin.php:1016 -msgid "Last login" -msgstr "Síðast innskráður" - -#: ../../mod/admin.php:1015 ../../mod/admin.php:1016 -msgid "Last item" -msgstr "Síðasta" - -#: ../../mod/admin.php:1015 -msgid "Deleted since" -msgstr "" - -#: ../../mod/admin.php:1016 ../../mod/settings.php:36 -msgid "Account" -msgstr "Notandi" - -#: ../../mod/admin.php:1018 -msgid "" -"Selected users will be deleted!\\n\\nEverything these users had posted on " -"this site will be permanently deleted!\\n\\nAre you sure?" -msgstr "Valdir notendur verður eytt!\\n\\nAllt sem þessir notendur hafa deilt á þessum vef verður varanlega eytt!\\n\\nErtu alveg viss?" - -#: ../../mod/admin.php:1019 -msgid "" -"The user {0} will be deleted!\\n\\nEverything this user has posted on this " -"site will be permanently deleted!\\n\\nAre you sure?" -msgstr "Notandinn {0} verður eytt!\\n\\nAllt sem þessi notandi hefur deilt á þessum vef veður varanlega eytt!\\n\\nErtu alveg viss?" - -#: ../../mod/admin.php:1029 -msgid "Name of the new user." -msgstr "" - -#: ../../mod/admin.php:1030 -msgid "Nickname" -msgstr "" - -#: ../../mod/admin.php:1030 -msgid "Nickname of the new user." -msgstr "" - -#: ../../mod/admin.php:1031 -msgid "Email address of the new user." -msgstr "" - -#: ../../mod/admin.php:1064 -#, php-format -msgid "Plugin %s disabled." -msgstr "Slökkt á viðbót %s " - -#: ../../mod/admin.php:1068 -#, php-format -msgid "Plugin %s enabled." -msgstr "Kveikt á viðbót %s" - -#: ../../mod/admin.php:1078 ../../mod/admin.php:1294 -msgid "Disable" -msgstr "Slökkva" - -#: ../../mod/admin.php:1080 ../../mod/admin.php:1296 -msgid "Enable" -msgstr "Kveikja" - -#: ../../mod/admin.php:1103 ../../mod/admin.php:1324 -msgid "Toggle" -msgstr "Skipta" - -#: ../../mod/admin.php:1111 ../../mod/admin.php:1334 -msgid "Author: " -msgstr "Höfundur:" - -#: ../../mod/admin.php:1112 ../../mod/admin.php:1335 -msgid "Maintainer: " -msgstr "" - -#: ../../mod/admin.php:1254 -msgid "No themes found." -msgstr "Engin þemu fundust" - -#: ../../mod/admin.php:1316 -msgid "Screenshot" -msgstr "Skjámynd" - -#: ../../mod/admin.php:1362 -msgid "[Experimental]" -msgstr "[Tilraun]" - -#: ../../mod/admin.php:1363 -msgid "[Unsupported]" -msgstr "[Óstudd]" - -#: ../../mod/admin.php:1390 -msgid "Log settings updated." -msgstr "Stillingar atburðaskrár uppfærðar. " - -#: ../../mod/admin.php:1446 -msgid "Clear" -msgstr "Hreinsa" - -#: ../../mod/admin.php:1452 -msgid "Enable Debugging" -msgstr "" - -#: ../../mod/admin.php:1453 -msgid "Log file" -msgstr "Atburðaskrá" - -#: ../../mod/admin.php:1453 -msgid "" -"Must be writable by web server. Relative to your Friendica top-level " -"directory." -msgstr "Vefþjónn verður að hafa skrifréttindi. Afstætt við Friendica rótar skráarsafn." - -#: ../../mod/admin.php:1454 -msgid "Log level" -msgstr "Stig atburðaskráningar" - -#: ../../mod/admin.php:1504 -msgid "Close" -msgstr "Loka" - -#: ../../mod/admin.php:1510 -msgid "FTP Host" -msgstr "FTP Vélanafn" - -#: ../../mod/admin.php:1511 -msgid "FTP Path" -msgstr "FTP Slóð" - -#: ../../mod/admin.php:1512 -msgid "FTP User" -msgstr "FTP Notandi" - -#: ../../mod/admin.php:1513 -msgid "FTP Password" -msgstr "FTP Aðgangsorð" - -#: ../../mod/network.php:142 -msgid "Search Results For:" -msgstr "Leitar niðurstöður fyrir:" - -#: ../../mod/network.php:185 ../../mod/search.php:21 -msgid "Remove term" -msgstr "Fjarlæga gildi" - -#: ../../mod/network.php:194 ../../mod/search.php:30 -#: ../../include/features.php:42 -msgid "Saved Searches" -msgstr "Vistaðar leitir" - -#: ../../mod/network.php:195 ../../include/group.php:275 -msgid "add" -msgstr "bæta við" - -#: ../../mod/network.php:356 -msgid "Commented Order" -msgstr "Athugasemdar röð" - -#: ../../mod/network.php:359 -msgid "Sort by Comment Date" -msgstr "Raða eftir umræðu dagsetningu" - -#: ../../mod/network.php:362 -msgid "Posted Order" -msgstr "Færlsu röð" - -#: ../../mod/network.php:365 -msgid "Sort by Post Date" -msgstr "Raða eftir færslu dagsetningu" - -#: ../../mod/network.php:374 -msgid "Posts that mention or involve you" -msgstr "Færslur sem tengjast þér" - -#: ../../mod/network.php:380 -msgid "New" -msgstr "Ný" - -#: ../../mod/network.php:383 -msgid "Activity Stream - by date" -msgstr "Færslu straumur - raðað eftir dagsetningu" - -#: ../../mod/network.php:389 -msgid "Shared Links" -msgstr "" - -#: ../../mod/network.php:392 -msgid "Interesting Links" -msgstr "Áhugaverðir hlekkir" - -#: ../../mod/network.php:398 -msgid "Starred" -msgstr "Stjörnumerkt" - -#: ../../mod/network.php:401 -msgid "Favourite Posts" -msgstr "Uppáhalds færslur" - -#: ../../mod/network.php:463 -#, php-format -msgid "Warning: This group contains %s member from an insecure network." -msgid_plural "" -"Warning: This group contains %s members from an insecure network." -msgstr[0] "Aðvörun: Þessi hópur inniheldur %s notanda frá óöruggu neti." -msgstr[1] "Aðvörun: Þessi hópur inniheldur %s notendur frá óöruggu neti." - -#: ../../mod/network.php:466 -msgid "Private messages to this group are at risk of public disclosure." -msgstr "Einka samtöl send á þennan hóp eiga á hættu að verða opinber." - -#: ../../mod/network.php:520 ../../mod/content.php:119 -msgid "No such group" -msgstr "Hópur ekki til" - -#: ../../mod/network.php:537 ../../mod/content.php:130 -msgid "Group is empty" -msgstr "Hópur er tómur" - -#: ../../mod/network.php:544 ../../mod/content.php:134 -msgid "Group: " -msgstr "Hópur:" - -#: ../../mod/network.php:554 -msgid "Contact: " -msgstr "Tengiliður:" - -#: ../../mod/network.php:556 -msgid "Private messages to this person are at risk of public disclosure." -msgstr "Einka skilaboð send á þennan notanda eiga á hættu að verða opinber." - -#: ../../mod/network.php:561 -msgid "Invalid contact." -msgstr "Ógildur tengiliður." - -#: ../../mod/allfriends.php:34 -#, php-format -msgid "Friends of %s" -msgstr "Vinir %s" - -#: ../../mod/allfriends.php:40 -msgid "No friends to display." -msgstr "Engir vinir til að birta." - -#: ../../mod/events.php:66 -msgid "Event title and start time are required." -msgstr "" - -#: ../../mod/events.php:291 -msgid "l, F j" -msgstr "" - -#: ../../mod/events.php:313 -msgid "Edit event" -msgstr "Breyta atburð" - -#: ../../mod/events.php:335 ../../include/text.php:1647 -#: ../../include/text.php:1657 -msgid "link to source" -msgstr "slóð í heimild" - -#: ../../mod/events.php:370 ../../boot.php:2143 ../../include/nav.php:80 -#: ../../view/theme/diabook/theme.php:127 -msgid "Events" -msgstr "Atburðir" - -#: ../../mod/events.php:371 -msgid "Create New Event" -msgstr "Stofna nýjan atburð" - -#: ../../mod/events.php:372 -msgid "Previous" -msgstr "Fyrra" - -#: ../../mod/events.php:373 ../../mod/install.php:207 -msgid "Next" -msgstr "Næsta" - -#: ../../mod/events.php:446 -msgid "hour:minute" -msgstr "klukkustund:mínutur" - -#: ../../mod/events.php:456 -msgid "Event details" -msgstr "Atburða lýsing" - -#: ../../mod/events.php:457 -#, php-format -msgid "Format is %s %s. Starting date and Title are required." -msgstr "" - -#: ../../mod/events.php:459 -msgid "Event Starts:" -msgstr "Atburður hefst:" - -#: ../../mod/events.php:459 ../../mod/events.php:473 -msgid "Required" -msgstr "" - -#: ../../mod/events.php:462 -msgid "Finish date/time is not known or not relevant" -msgstr "Loka dagsetning/tímasetning ekki vituð eða skiptir ekki máli" - -#: ../../mod/events.php:464 -msgid "Event Finishes:" -msgstr "Atburður klárar:" - -#: ../../mod/events.php:467 -msgid "Adjust for viewer timezone" -msgstr "Heimfæra á tímabelti áhorfanda" - -#: ../../mod/events.php:469 -msgid "Description:" -msgstr "Lýsing:" - -#: ../../mod/events.php:471 ../../mod/directory.php:136 ../../boot.php:1648 -#: ../../include/bb2diaspora.php:170 ../../include/event.php:40 +#: include/event.php:39 include/event.php:63 include/identity.php:329 +#: include/bb2diaspora.php:170 mod/notifications.php:246 mod/events.php:495 +#: mod/directory.php:145 mod/contacts.php:624 msgid "Location:" msgstr "Staðsetning:" -#: ../../mod/events.php:473 -msgid "Title:" +#: include/event.php:441 +msgid "Sun" +msgstr "Sun" + +#: include/event.php:442 +msgid "Mon" +msgstr "Mán" + +#: include/event.php:443 +msgid "Tue" +msgstr "Þri" + +#: include/event.php:444 +msgid "Wed" +msgstr "Mið" + +#: include/event.php:445 +msgid "Thu" +msgstr "Fim" + +#: include/event.php:446 +msgid "Fri" +msgstr "Fös" + +#: include/event.php:447 +msgid "Sat" +msgstr "Lau" + +#: include/event.php:448 include/text.php:1103 mod/settings.php:955 +msgid "Sunday" +msgstr "Sunnudagur" + +#: include/event.php:449 include/text.php:1103 mod/settings.php:955 +msgid "Monday" +msgstr "Mánudagur" + +#: include/event.php:450 include/text.php:1103 +msgid "Tuesday" +msgstr "Þriðjudagur" + +#: include/event.php:451 include/text.php:1103 +msgid "Wednesday" +msgstr "Miðvikudagur" + +#: include/event.php:452 include/text.php:1103 +msgid "Thursday" +msgstr "Fimmtudagur" + +#: include/event.php:453 include/text.php:1103 +msgid "Friday" +msgstr "Föstudagur" + +#: include/event.php:454 include/text.php:1103 +msgid "Saturday" +msgstr "Laugardagur" + +#: include/event.php:455 +msgid "Jan" +msgstr "Jan" + +#: include/event.php:456 +msgid "Feb" +msgstr "Feb" + +#: include/event.php:457 +msgid "Mar" +msgstr "Mar" + +#: include/event.php:458 +msgid "Apr" +msgstr "Apr" + +#: include/event.php:459 include/event.php:471 include/text.php:1107 +msgid "May" +msgstr "Maí" + +#: include/event.php:460 +msgid "Jun" +msgstr "Jún" + +#: include/event.php:461 +msgid "Jul" +msgstr "Júl" + +#: include/event.php:462 +msgid "Aug" +msgstr "Ágú" + +#: include/event.php:463 +msgid "Sept" +msgstr "Sept" + +#: include/event.php:464 +msgid "Oct" +msgstr "Okt" + +#: include/event.php:465 +msgid "Nov" +msgstr "Nóv" + +#: include/event.php:466 +msgid "Dec" +msgstr "Des" + +#: include/event.php:467 include/text.php:1107 +msgid "January" +msgstr "Janúar" + +#: include/event.php:468 include/text.php:1107 +msgid "February" +msgstr "Febrúar" + +#: include/event.php:469 include/text.php:1107 +msgid "March" +msgstr "Mars" + +#: include/event.php:470 include/text.php:1107 +msgid "April" +msgstr "Apríl" + +#: include/event.php:472 include/text.php:1107 +msgid "June" +msgstr "Júní" + +#: include/event.php:473 include/text.php:1107 +msgid "July" +msgstr "Júlí" + +#: include/event.php:474 include/text.php:1107 +msgid "August" +msgstr "Ágúst" + +#: include/event.php:475 include/text.php:1107 +msgid "September" +msgstr "September" + +#: include/event.php:476 include/text.php:1107 +msgid "October" +msgstr "Október" + +#: include/event.php:477 include/text.php:1107 +msgid "November" +msgstr "Nóvember" + +#: include/event.php:478 include/text.php:1107 +msgid "December" +msgstr "Desember" + +#: include/event.php:479 mod/events.php:388 mod/cal.php:286 +msgid "today" +msgstr "í dag" + +#: include/event.php:567 +msgid "l, F j" msgstr "" -#: ../../mod/events.php:475 -msgid "Share this event" -msgstr "Deila þessum atburði" +#: include/event.php:586 +msgid "Edit event" +msgstr "Breyta atburð" -#: ../../mod/content.php:437 ../../mod/content.php:740 -#: ../../mod/photos.php:1653 ../../object/Item.php:129 -#: ../../include/conversation.php:613 -msgid "Select" -msgstr "Velja" +#: include/event.php:608 include/text.php:1509 include/text.php:1516 +msgid "link to source" +msgstr "slóð á heimild" -#: ../../mod/content.php:471 ../../mod/content.php:852 -#: ../../mod/content.php:853 ../../object/Item.php:326 -#: ../../object/Item.php:327 ../../include/conversation.php:654 +#: include/event.php:843 +msgid "Export" +msgstr "Flytja út" + +#: include/event.php:844 +msgid "Export calendar as ical" +msgstr "Flytja dagatal út sem ICAL" + +#: include/event.php:845 +msgid "Export calendar as csv" +msgstr "Flytja dagatal út sem CSV" + +#: include/security.php:22 +msgid "Welcome " +msgstr "Velkomin(n)" + +#: include/security.php:23 +msgid "Please upload a profile photo." +msgstr "Gerðu svo vel að hlaða inn forsíðumynd." + +#: include/security.php:26 +msgid "Welcome back " +msgstr "Velkomin(n) aftur" + +#: include/security.php:375 +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/profile_selectors.php:6 +msgid "Male" +msgstr "Karl" + +#: include/profile_selectors.php:6 +msgid "Female" +msgstr "Kona" + +#: include/profile_selectors.php:6 +msgid "Currently Male" +msgstr "Karlmaður í augnablikinu" + +#: include/profile_selectors.php:6 +msgid "Currently Female" +msgstr "Kvenmaður í augnablikinu" + +#: include/profile_selectors.php:6 +msgid "Mostly Male" +msgstr "Aðallega karlmaður" + +#: include/profile_selectors.php:6 +msgid "Mostly Female" +msgstr "Aðallega kvenmaður" + +#: include/profile_selectors.php:6 +msgid "Transgender" +msgstr "Kyngervingur" + +#: include/profile_selectors.php:6 +msgid "Intersex" +msgstr "Hvorugkyn" + +#: include/profile_selectors.php:6 +msgid "Transsexual" +msgstr "Kynskiptingur" + +#: include/profile_selectors.php:6 +msgid "Hermaphrodite" +msgstr "Tvíkynja" + +#: include/profile_selectors.php:6 +msgid "Neuter" +msgstr "Hvorukyn" + +#: include/profile_selectors.php:6 +msgid "Non-specific" +msgstr "Ekki ákveðið" + +#: include/profile_selectors.php:6 +msgid "Other" +msgstr "Annað" + +#: include/profile_selectors.php:6 include/conversation.php:1477 +msgid "Undecided" +msgid_plural "Undecided" +msgstr[0] "Óviss" +msgstr[1] "Óvissir" + +#: include/profile_selectors.php:23 +msgid "Males" +msgstr "Karlar" + +#: include/profile_selectors.php:23 +msgid "Females" +msgstr "Konur" + +#: include/profile_selectors.php:23 +msgid "Gay" +msgstr "Hommi" + +#: include/profile_selectors.php:23 +msgid "Lesbian" +msgstr "Lesbía" + +#: include/profile_selectors.php:23 +msgid "No Preference" +msgstr "Til í allt" + +#: include/profile_selectors.php:23 +msgid "Bisexual" +msgstr "Tvíkynhneigð/ur" + +#: include/profile_selectors.php:23 +msgid "Autosexual" +msgstr "Sjálfkynhneigð/ur" + +#: include/profile_selectors.php:23 +msgid "Abstinent" +msgstr "Skírlíf/ur" + +#: include/profile_selectors.php:23 +msgid "Virgin" +msgstr "Hrein mey/Hreinn sveinn" + +#: include/profile_selectors.php:23 +msgid "Deviant" +msgstr "Óþekkur" + +#: include/profile_selectors.php:23 +msgid "Fetish" +msgstr "Blæti" + +#: include/profile_selectors.php:23 +msgid "Oodles" +msgstr "Mikið af því" + +#: include/profile_selectors.php:23 +msgid "Nonsexual" +msgstr "Engin kynhneigð" + +#: include/profile_selectors.php:42 +msgid "Single" +msgstr "Einhleyp/ur" + +#: include/profile_selectors.php:42 +msgid "Lonely" +msgstr "Einmanna" + +#: include/profile_selectors.php:42 +msgid "Available" +msgstr "Á lausu" + +#: include/profile_selectors.php:42 +msgid "Unavailable" +msgstr "Frátekin/n" + +#: include/profile_selectors.php:42 +msgid "Has crush" +msgstr "Er skotin(n)" + +#: include/profile_selectors.php:42 +msgid "Infatuated" +msgstr "" + +#: include/profile_selectors.php:42 +msgid "Dating" +msgstr "Deita" + +#: include/profile_selectors.php:42 +msgid "Unfaithful" +msgstr "Ótrú/r" + +#: include/profile_selectors.php:42 +msgid "Sex Addict" +msgstr "Kynlífsfíkill" + +#: include/profile_selectors.php:42 include/user.php:299 include/user.php:303 +msgid "Friends" +msgstr "Vinir" + +#: include/profile_selectors.php:42 +msgid "Friends/Benefits" +msgstr "Vinir með meiru" + +#: include/profile_selectors.php:42 +msgid "Casual" +msgstr "Lauslát/ur" + +#: include/profile_selectors.php:42 +msgid "Engaged" +msgstr "Trúlofuð/Trúlofaður" + +#: include/profile_selectors.php:42 +msgid "Married" +msgstr "Gift/ur" + +#: include/profile_selectors.php:42 +msgid "Imaginarily married" +msgstr "" + +#: include/profile_selectors.php:42 +msgid "Partners" +msgstr "Félagar" + +#: include/profile_selectors.php:42 +msgid "Cohabiting" +msgstr "Í sambúð" + +#: include/profile_selectors.php:42 +msgid "Common law" +msgstr "Löggilt sambúð" + +#: include/profile_selectors.php:42 +msgid "Happy" +msgstr "Hamingjusöm/Hamingjusamur" + +#: include/profile_selectors.php:42 +msgid "Not looking" +msgstr "Ekki að leita" + +#: include/profile_selectors.php:42 +msgid "Swinger" +msgstr "Svingari" + +#: include/profile_selectors.php:42 +msgid "Betrayed" +msgstr "Svikin/n" + +#: include/profile_selectors.php:42 +msgid "Separated" +msgstr "Skilin/n að borði og sæng" + +#: include/profile_selectors.php:42 +msgid "Unstable" +msgstr "Óstabíll" + +#: include/profile_selectors.php:42 +msgid "Divorced" +msgstr "Fráskilin/n" + +#: include/profile_selectors.php:42 +msgid "Imaginarily divorced" +msgstr "" + +#: include/profile_selectors.php:42 +msgid "Widowed" +msgstr "Ekkja/Ekkill" + +#: include/profile_selectors.php:42 +msgid "Uncertain" +msgstr "Óviss" + +#: include/profile_selectors.php:42 +msgid "It's complicated" +msgstr "Þetta er flókið" + +#: include/profile_selectors.php:42 +msgid "Don't care" +msgstr "Gæti ekki verið meira sama" + +#: include/profile_selectors.php:42 +msgid "Ask me" +msgstr "Spurðu mig" + +#: include/items.php:1447 mod/dfrn_confirm.php:725 mod/dfrn_request.php:744 +msgid "[Name Withheld]" +msgstr "[Nafn ekki sýnt]" + +#: include/items.php:1805 mod/viewsrc.php:15 mod/admin.php:234 +#: mod/admin.php:1445 mod/admin.php:1679 mod/display.php:104 +#: mod/display.php:279 mod/display.php:478 mod/notice.php:15 +msgid "Item not found." +msgstr "Atriði fannst ekki." + +#: include/items.php:1844 +msgid "Do you really want to delete this item?" +msgstr "Viltu í alvörunni eyða þessu atriði?" + +#: include/items.php:1846 mod/profiles.php:641 mod/profiles.php:644 +#: mod/profiles.php:670 mod/contacts.php:441 mod/follow.php:110 +#: mod/suggest.php:29 mod/dfrn_request.php:860 mod/register.php:238 +#: mod/settings.php:1113 mod/settings.php:1119 mod/settings.php:1127 +#: mod/settings.php:1131 mod/settings.php:1136 mod/settings.php:1142 +#: mod/settings.php:1148 mod/settings.php:1154 mod/settings.php:1180 +#: mod/settings.php:1181 mod/settings.php:1182 mod/settings.php:1183 +#: mod/settings.php:1184 mod/api.php:105 mod/message.php:217 +msgid "Yes" +msgstr "Já" + +#: include/items.php:1849 include/conversation.php:1274 mod/fbrowser.php:101 +#: mod/fbrowser.php:136 mod/tagrm.php:11 mod/tagrm.php:94 mod/videos.php:131 +#: mod/photos.php:247 mod/photos.php:336 mod/contacts.php:444 +#: mod/follow.php:121 mod/suggest.php:32 mod/editpost.php:148 +#: mod/dfrn_request.php:874 mod/settings.php:664 mod/settings.php:690 +#: mod/message.php:220 +msgid "Cancel" +msgstr "Hætta við" + +#: include/items.php:2011 index.php:397 mod/regmod.php:110 mod/dirfind.php:11 +#: mod/notifications.php:69 mod/dfrn_confirm.php:56 mod/wall_upload.php:77 +#: mod/wall_upload.php:80 mod/fsuggest.php:78 mod/notes.php:22 +#: mod/events.php:190 mod/uimport.php:23 mod/nogroup.php:25 mod/invite.php:15 +#: mod/invite.php:101 mod/viewcontacts.php:45 mod/crepair.php:100 +#: mod/wall_attach.php:67 mod/wall_attach.php:70 mod/allfriends.php:12 +#: mod/cal.php:308 mod/repair_ostatus.php:9 mod/delegate.php:12 +#: mod/profiles.php:165 mod/profiles.php:598 mod/poke.php:150 +#: mod/photos.php:171 mod/photos.php:1092 mod/attach.php:33 +#: mod/contacts.php:350 mod/follow.php:11 mod/follow.php:73 mod/follow.php:155 +#: mod/suggest.php:58 mod/display.php:474 mod/common.php:18 mod/mood.php:114 +#: mod/editpost.php:10 mod/network.php:4 mod/group.php:19 +#: mod/profile_photo.php:19 mod/profile_photo.php:175 +#: mod/profile_photo.php:186 mod/profile_photo.php:199 mod/register.php:42 +#: mod/settings.php:22 mod/settings.php:128 mod/settings.php:650 +#: mod/wallmessage.php:9 mod/wallmessage.php:33 mod/wallmessage.php:79 +#: mod/wallmessage.php:103 mod/api.php:26 mod/api.php:31 mod/item.php:185 +#: mod/item.php:197 mod/ostatus_subscribe.php:9 mod/message.php:46 +#: mod/message.php:182 mod/manage.php:96 +msgid "Permission denied." +msgstr "Heimild ekki veitt." + +#: include/items.php:2116 +msgid "Archives" +msgstr "Safnskrár" + +#: include/text.php:304 +msgid "newer" +msgstr "nýrri" + +#: include/text.php:306 +msgid "older" +msgstr "eldri" + +#: include/text.php:311 +msgid "prev" +msgstr "á undan" + +#: include/text.php:313 +msgid "first" +msgstr "fremsta" + +#: include/text.php:345 +msgid "last" +msgstr "síðasta" + +#: include/text.php:348 +msgid "next" +msgstr "næsta" + +#: include/text.php:403 +msgid "Loading more entries..." +msgstr "Hleð inn fleiri færslum..." + +#: include/text.php:404 +msgid "The end" +msgstr "Endir" + +#: include/text.php:871 +msgid "No contacts" +msgstr "Engir tengiliðir" + +#: include/text.php:886 #, php-format -msgid "View %s's profile @ %s" -msgstr "Birta forsíðu %s hjá %s" +msgid "%d Contact" +msgid_plural "%d Contacts" +msgstr[0] "%d tengiliður" +msgstr[1] "%d tengiliðir" -#: ../../mod/content.php:481 ../../mod/content.php:864 -#: ../../object/Item.php:340 ../../include/conversation.php:674 -#, php-format -msgid "%s from %s" -msgstr "%s til %s" +#: include/text.php:898 +msgid "View Contacts" +msgstr "Skoða tengiliði" -#: ../../mod/content.php:497 ../../include/conversation.php:690 -msgid "View in context" -msgstr "Birta í samhengi" +#: include/text.php:985 include/nav.php:122 mod/search.php:149 +msgid "Search" +msgstr "Leita" -#: ../../mod/content.php:603 ../../object/Item.php:387 -#, php-format -msgid "%d comment" -msgid_plural "%d comments" -msgstr[0] "%d ummæli" -msgstr[1] "%d ummæli" +#: include/text.php:986 mod/notes.php:61 mod/filer.php:31 mod/editpost.php:109 +msgid "Save" +msgstr "Vista" -#: ../../mod/content.php:605 ../../object/Item.php:389 -#: ../../object/Item.php:402 ../../include/text.php:1972 +#: include/text.php:988 include/nav.php:40 +msgid "@name, !forum, #tags, content" +msgstr "@nafn, !spjallsvæði, #merki, innihald" + +#: include/text.php:993 include/nav.php:125 +msgid "Full Text" +msgstr "Allur textinn" + +#: include/text.php:994 include/nav.php:126 +msgid "Tags" +msgstr "Merki" + +#: include/text.php:995 include/identity.php:781 include/identity.php:784 +#: include/nav.php:127 include/nav.php:193 mod/viewcontacts.php:116 +#: mod/contacts.php:785 mod/contacts.php:846 view/theme/frio/theme.php:257 +#: view/theme/diabook/theme.php:125 +msgid "Contacts" +msgstr "Tengiliðir" + +#: include/text.php:1049 +msgid "poke" +msgstr "pota" + +#: include/text.php:1049 +msgid "poked" +msgstr "potaði" + +#: include/text.php:1050 +msgid "ping" +msgstr "" + +#: include/text.php:1050 +msgid "pinged" +msgstr "" + +#: include/text.php:1051 +msgid "prod" +msgstr "" + +#: include/text.php:1051 +msgid "prodded" +msgstr "" + +#: include/text.php:1052 +msgid "slap" +msgstr "" + +#: include/text.php:1052 +msgid "slapped" +msgstr "" + +#: include/text.php:1053 +msgid "finger" +msgstr "" + +#: include/text.php:1053 +msgid "fingered" +msgstr "" + +#: include/text.php:1054 +msgid "rebuff" +msgstr "" + +#: include/text.php:1054 +msgid "rebuffed" +msgstr "" + +#: include/text.php:1068 +msgid "happy" +msgstr "" + +#: include/text.php:1069 +msgid "sad" +msgstr "" + +#: include/text.php:1070 +msgid "mellow" +msgstr "" + +#: include/text.php:1071 +msgid "tired" +msgstr "" + +#: include/text.php:1072 +msgid "perky" +msgstr "" + +#: include/text.php:1073 +msgid "angry" +msgstr "" + +#: include/text.php:1074 +msgid "stupified" +msgstr "" + +#: include/text.php:1075 +msgid "puzzled" +msgstr "" + +#: include/text.php:1076 +msgid "interested" +msgstr "" + +#: include/text.php:1077 +msgid "bitter" +msgstr "" + +#: include/text.php:1078 +msgid "cheerful" +msgstr "" + +#: include/text.php:1079 +msgid "alive" +msgstr "" + +#: include/text.php:1080 +msgid "annoyed" +msgstr "" + +#: include/text.php:1081 +msgid "anxious" +msgstr "" + +#: include/text.php:1082 +msgid "cranky" +msgstr "" + +#: include/text.php:1083 +msgid "disturbed" +msgstr "" + +#: include/text.php:1084 +msgid "frustrated" +msgstr "" + +#: include/text.php:1085 +msgid "motivated" +msgstr "" + +#: include/text.php:1086 +msgid "relaxed" +msgstr "" + +#: include/text.php:1087 +msgid "surprised" +msgstr "" + +#: include/text.php:1301 mod/videos.php:383 +msgid "View Video" +msgstr "Skoða myndskeið" + +#: include/text.php:1333 +msgid "bytes" +msgstr "bæti" + +#: include/text.php:1365 include/text.php:1377 +msgid "Click to open/close" +msgstr "" + +#: include/text.php:1503 +msgid "View on separate page" +msgstr "" + +#: include/text.php:1504 +msgid "view on separate page" +msgstr "" + +#: include/text.php:1779 include/conversation.php:122 +#: include/conversation.php:258 include/like.php:165 +#: view/theme/diabook/theme.php:463 +msgid "event" +msgstr "atburður" + +#: include/text.php:1781 include/conversation.php:130 +#: include/conversation.php:266 include/like.php:163 mod/tagger.php:62 +#: mod/subthread.php:87 view/theme/diabook/theme.php:471 +msgid "photo" +msgstr "mynd" + +#: include/text.php:1783 +msgid "activity" +msgstr "virkni" + +#: include/text.php:1785 mod/content.php:623 object/Item.php:431 +#: object/Item.php:444 msgid "comment" msgid_plural "comments" msgstr[0] "athugasemd" msgstr[1] "athugasemdir" -#: ../../mod/content.php:606 ../../boot.php:751 ../../object/Item.php:390 -#: ../../include/contact_widgets.php:205 -msgid "show more" -msgstr "sýna meira" - -#: ../../mod/content.php:620 ../../mod/photos.php:1359 -#: ../../object/Item.php:116 -msgid "Private Message" -msgstr "Einkaskilaboð" - -#: ../../mod/content.php:684 ../../mod/photos.php:1542 -#: ../../object/Item.php:231 -msgid "I like this (toggle)" -msgstr "Mér líkar þetta (kveikja/slökkva)" - -#: ../../mod/content.php:684 ../../object/Item.php:231 -msgid "like" -msgstr "líkar" - -#: ../../mod/content.php:685 ../../mod/photos.php:1543 -#: ../../object/Item.php:232 -msgid "I don't like this (toggle)" -msgstr "Mér líkar þetta ekki (kveikja/slökkva)" - -#: ../../mod/content.php:685 ../../object/Item.php:232 -msgid "dislike" -msgstr "mislíkar" - -#: ../../mod/content.php:687 ../../object/Item.php:234 -msgid "Share this" -msgstr "Deila þessu" - -#: ../../mod/content.php:687 ../../object/Item.php:234 -msgid "share" -msgstr "deila" - -#: ../../mod/content.php:707 ../../mod/photos.php:1562 -#: ../../mod/photos.php:1606 ../../mod/photos.php:1694 -#: ../../object/Item.php:675 -msgid "This is you" -msgstr "Þetta ert þú" - -#: ../../mod/content.php:709 ../../mod/photos.php:1564 -#: ../../mod/photos.php:1608 ../../mod/photos.php:1696 ../../boot.php:750 -#: ../../object/Item.php:361 ../../object/Item.php:677 -msgid "Comment" -msgstr "Athugasemd" - -#: ../../mod/content.php:711 ../../object/Item.php:679 -msgid "Bold" -msgstr "Feitletrað" - -#: ../../mod/content.php:712 ../../object/Item.php:680 -msgid "Italic" -msgstr "Skáletrað" - -#: ../../mod/content.php:713 ../../object/Item.php:681 -msgid "Underline" -msgstr "Undirstrikað" - -#: ../../mod/content.php:714 ../../object/Item.php:682 -msgid "Quote" -msgstr "Gæsalappir" - -#: ../../mod/content.php:715 ../../object/Item.php:683 -msgid "Code" -msgstr "Kóði" - -#: ../../mod/content.php:716 ../../object/Item.php:684 -msgid "Image" -msgstr "Mynd" - -#: ../../mod/content.php:717 ../../object/Item.php:685 -msgid "Link" -msgstr "Tengill" - -#: ../../mod/content.php:718 ../../object/Item.php:686 -msgid "Video" -msgstr "Myndband" - -#: ../../mod/content.php:719 ../../mod/editpost.php:145 -#: ../../mod/photos.php:1566 ../../mod/photos.php:1610 -#: ../../mod/photos.php:1698 ../../object/Item.php:687 -#: ../../include/conversation.php:1126 -msgid "Preview" -msgstr "Forskoðun" - -#: ../../mod/content.php:728 ../../mod/settings.php:676 -#: ../../object/Item.php:120 -msgid "Edit" -msgstr "Breyta" - -#: ../../mod/content.php:753 ../../object/Item.php:195 -msgid "add star" -msgstr "bæta við stjörnu" - -#: ../../mod/content.php:754 ../../object/Item.php:196 -msgid "remove star" -msgstr "eyða stjörnu" - -#: ../../mod/content.php:755 ../../object/Item.php:197 -msgid "toggle star status" -msgstr "Kveikja/slökkva á stjörnu" - -#: ../../mod/content.php:758 ../../object/Item.php:200 -msgid "starred" -msgstr "stjörnumerkt" - -#: ../../mod/content.php:759 ../../object/Item.php:220 -msgid "add tag" -msgstr "bæta við merki" - -#: ../../mod/content.php:763 ../../object/Item.php:133 -msgid "save to folder" -msgstr "vista í möppu" - -#: ../../mod/content.php:854 ../../object/Item.php:328 -msgid "to" -msgstr "við" - -#: ../../mod/content.php:855 ../../object/Item.php:330 -msgid "Wall-to-Wall" -msgstr "vegg við vegg" - -#: ../../mod/content.php:856 ../../object/Item.php:331 -msgid "via Wall-To-Wall:" -msgstr "gegnum vegg við vegg" - -#: ../../mod/removeme.php:46 ../../mod/removeme.php:49 -msgid "Remove My Account" -msgstr "Eyða þessum notanda" - -#: ../../mod/removeme.php:47 -msgid "" -"This will completely remove your account. Once this has been done it is not " -"recoverable." -msgstr "Þetta mun algjörlega eyða notandanum. Þegar þetta hefur verið gert er þetta ekki afturkræft." - -#: ../../mod/removeme.php:48 -msgid "Please enter your password for verification:" -msgstr "Sláðu inn aðgangsorð yðar:" - -#: ../../mod/install.php:117 -msgid "Friendica Communications Server - Setup" +#: include/text.php:1786 +msgid "post" msgstr "" -#: ../../mod/install.php:123 -msgid "Could not connect to database." -msgstr "Gat ekki tengst gagnagrunn." - -#: ../../mod/install.php:127 -msgid "Could not create table." -msgstr "Gat ekki búið til töflu." - -#: ../../mod/install.php:133 -msgid "Your Friendica site database has been installed." -msgstr "Friendica gagnagrunnurinn þinn hefur verið uppsettur." - -#: ../../mod/install.php:138 -msgid "" -"You may need to import the file \"database.sql\" manually using phpmyadmin " -"or mysql." -msgstr "Þú þarft mögulega að keyra inn skránna \"database.sql\" handvirkt með phpmyadmin eða mysql." - -#: ../../mod/install.php:139 ../../mod/install.php:206 -#: ../../mod/install.php:525 -msgid "Please see the file \"INSTALL.txt\"." -msgstr "Vinsamlegast lestu skránna \"INSTALL.txt\"." - -#: ../../mod/install.php:203 -msgid "System check" -msgstr "Kerfis prófun" - -#: ../../mod/install.php:208 -msgid "Check again" -msgstr "Prófa aftur" - -#: ../../mod/install.php:227 -msgid "Database connection" -msgstr "Gangagrunns tenging" - -#: ../../mod/install.php:228 -msgid "" -"In order to install Friendica we need to know how to connect to your " -"database." -msgstr "Til að setja upp Friendica þurfum við að vita hvernig á að tengjast gagnagrunninum þínum." - -#: ../../mod/install.php:229 -msgid "" -"Please contact your hosting provider or site administrator if you have " -"questions about these settings." -msgstr "Vinsamlegast hafðu samband við hýsingaraðilann þinn eða kerfisstjóra ef þú hefur spurningar um þessar stillingar." - -#: ../../mod/install.php:230 -msgid "" -"The database you specify below should already exist. If it does not, please " -"create it before continuing." -msgstr "Gagnagrunnurinn sem þú bendir á þarf þegar að vera til. Ef ekki þá þarf að stofna hann áður en haldið er áfram." - -#: ../../mod/install.php:234 -msgid "Database Server Name" -msgstr "Vélanafn gagangrunns" - -#: ../../mod/install.php:235 -msgid "Database Login Name" -msgstr "Notendanafn í gagnagrunn" - -#: ../../mod/install.php:236 -msgid "Database Login Password" -msgstr "Aðgangsorð í gagnagrunns" - -#: ../../mod/install.php:237 -msgid "Database Name" -msgstr "Nafn gagnagrunns" - -#: ../../mod/install.php:238 ../../mod/install.php:277 -msgid "Site administrator email address" -msgstr "Póstfang kerfisstjóri vefs" - -#: ../../mod/install.php:238 ../../mod/install.php:277 -msgid "" -"Your account email address must match this in order to use the web admin " -"panel." -msgstr "Notanda póstfang þitt verður að passa við þetta til að hægt sé að nota umsýslu vefviðmót." - -#: ../../mod/install.php:242 ../../mod/install.php:280 -msgid "Please select a default timezone for your website" -msgstr "Vinsamlegast veldu sjálfgefið tímabelti fyrir vefsíðuna" - -#: ../../mod/install.php:267 -msgid "Site settings" -msgstr "Stillingar vefs" - -#: ../../mod/install.php:321 -msgid "Could not find a command line version of PHP in the web server PATH." -msgstr "Gat ekki fundið skipanalínu útgáfu af PHP í vefþjóns PATH." - -#: ../../mod/install.php:322 -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. See 'Activating scheduled tasks'" +#: include/text.php:1954 +msgid "Item filed" msgstr "" -#: ../../mod/install.php:326 -msgid "PHP executable path" -msgstr "PHP keyrslu slóð" - -#: ../../mod/install.php:326 -msgid "" -"Enter full path to php executable. You can leave this blank to continue the " -"installation." -msgstr "" - -#: ../../mod/install.php:331 -msgid "Command line PHP" -msgstr "Skipanalínu PHP" - -#: ../../mod/install.php:340 -msgid "PHP executable is not the php cli binary (could be cgi-fgci version)" -msgstr "" - -#: ../../mod/install.php:341 -msgid "Found PHP version: " -msgstr "" - -#: ../../mod/install.php:343 -msgid "PHP cli binary" -msgstr "" - -#: ../../mod/install.php:354 -msgid "" -"The command line version of PHP on your system does not have " -"\"register_argc_argv\" enabled." -msgstr "Skipanalínu útgáfa af PHP á vefþjóninum hefur ekki kveikt á \"register_argc_argv\"." - -#: ../../mod/install.php:355 -msgid "This is required for message delivery to work." -msgstr "Þetta er skilyrt fyrir því að skilaboð komist til skila." - -#: ../../mod/install.php:357 -msgid "PHP register_argc_argv" -msgstr "" - -#: ../../mod/install.php:378 -msgid "" -"Error: the \"openssl_pkey_new\" function on this system is not able to " -"generate encryption keys" -msgstr "Villa: Stefjan \"openssl_pkey_new\" á vefþjóninum getur ekki stofnað dulkóðunar lykla" - -#: ../../mod/install.php:379 -msgid "" -"If running under Windows, please see " -"\"http://www.php.net/manual/en/openssl.installation.php\"." -msgstr "Ef keyrt er á Window, vinsamlegast skoðið \"http://www.php.net/manual/en/openssl.installation.php\"." - -#: ../../mod/install.php:381 -msgid "Generate encryption keys" -msgstr "Búa til dulkóðunar lykla" - -#: ../../mod/install.php:388 -msgid "libCurl PHP module" -msgstr "libCurl PHP eining" - -#: ../../mod/install.php:389 -msgid "GD graphics PHP module" -msgstr "GD graphics PHP eining" - -#: ../../mod/install.php:390 -msgid "OpenSSL PHP module" -msgstr "OpenSSL PHP eining" - -#: ../../mod/install.php:391 -msgid "mysqli PHP module" -msgstr "mysqli PHP eining" - -#: ../../mod/install.php:392 -msgid "mb_string PHP module" -msgstr "mb_string PHP eining" - -#: ../../mod/install.php:397 ../../mod/install.php:399 -msgid "Apache mod_rewrite module" -msgstr "Apache mod_rewrite eining" - -#: ../../mod/install.php:397 -msgid "" -"Error: Apache webserver mod-rewrite module is required but not installed." -msgstr "Villa: Apache vefþjóns eining mod-rewrite er skilyrði og er ekki uppsett. " - -#: ../../mod/install.php:405 -msgid "Error: libCURL PHP module required but not installed." -msgstr "Villa: libCurl PHP eining er skilyrði og er ekki uppsett." - -#: ../../mod/install.php:409 -msgid "" -"Error: GD graphics PHP module with JPEG support required but not installed." -msgstr "Villa: GD graphics PHP eining með JPEG stuðningi er skilyrði og er ekki uppsett." - -#: ../../mod/install.php:413 -msgid "Error: openssl PHP module required but not installed." -msgstr "Villa: openssl PHP eining skilyrði og er ekki uppsett." - -#: ../../mod/install.php:417 -msgid "Error: mysqli PHP module required but not installed." -msgstr "Villa: mysqli PHP eining er skilyrði og er ekki uppsett" - -#: ../../mod/install.php:421 -msgid "Error: mb_string PHP module required but not installed." -msgstr "Villa: mb_string PHP eining skilyrði en ekki uppsett." - -#: ../../mod/install.php:438 -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 "Vef uppsetningar forrit þarf að geta stofnað skránna \".htconfig.php\" in efsta skráarsafninu á vefþjóninum og það getur ekki gert það." - -#: ../../mod/install.php:439 -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 "Þetta er oftast aðgangsstýringa stilling, þar sem vefþjónninn getur ekki skrifað út skrár í skráarsafnið - þó þú getir það." - -#: ../../mod/install.php:440 -msgid "" -"At the end of this procedure, we will give you a text to save in a file " -"named .htconfig.php in your Friendica top folder." -msgstr "" - -#: ../../mod/install.php:441 -msgid "" -"You can alternatively skip this procedure and perform a manual installation." -" Please see the file \"INSTALL.txt\" for instructions." -msgstr "" - -#: ../../mod/install.php:444 -msgid ".htconfig.php is writable" -msgstr ".htconfig.php er skrifanleg" - -#: ../../mod/install.php:454 -msgid "" -"Friendica uses the Smarty3 template engine to render its web views. Smarty3 " -"compiles templates to PHP to speed up rendering." -msgstr "" - -#: ../../mod/install.php:455 -msgid "" -"In order to store these compiled templates, the web server needs to have " -"write access to the directory view/smarty3/ under the Friendica top level " -"folder." -msgstr "" - -#: ../../mod/install.php:456 -msgid "" -"Please ensure that the user that your web server runs as (e.g. www-data) has" -" write access to this folder." -msgstr "" - -#: ../../mod/install.php:457 -msgid "" -"Note: as a security measure, you should give the web server write access to " -"view/smarty3/ only--not the template files (.tpl) that it contains." -msgstr "" - -#: ../../mod/install.php:460 -msgid "view/smarty3 is writable" -msgstr "" - -#: ../../mod/install.php:472 -msgid "" -"Url rewrite in .htaccess is not working. Check your server configuration." -msgstr "" - -#: ../../mod/install.php:474 -msgid "Url rewrite is working" -msgstr "" - -#: ../../mod/install.php:484 -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 "Ekki tókst að skrifa gagnagrunns stillingar skrá \".htconfig.php\". Vinsamlegast notaði viðhangandi texta til að búa til stillingar skrá á vefþjóns rótina." - -#: ../../mod/install.php:523 -msgid "

      What next

      " -msgstr "" - -#: ../../mod/install.php:524 -msgid "" -"IMPORTANT: You will need to [manually] setup a scheduled task for the " -"poller." -msgstr "MIKILVÆGT: Þú þarft að [handvirkt] setja upp sjálfvirka keyrslu á poller." - -#: ../../mod/wallmessage.php:42 ../../mod/wallmessage.php:112 +#: include/conversation.php:144 include/like.php:184 #, php-format -msgid "Number of daily wall messages for %s exceeded. Message failed." -msgstr "" +msgid "%1$s doesn't like %2$s's %3$s" +msgstr "%1$s líkar ekki við %3$s hjá %2$s " -#: ../../mod/wallmessage.php:59 -msgid "Unable to check your home location." -msgstr "" - -#: ../../mod/wallmessage.php:86 ../../mod/wallmessage.php:95 -msgid "No recipient." -msgstr "" - -#: ../../mod/wallmessage.php:143 +#: include/conversation.php:147 #, php-format -msgid "" -"If you wish for %s to respond, please check that the privacy settings on " -"your site allow private mail from unknown senders." +msgid "%1$s attends %2$s's %3$s" msgstr "" -#: ../../mod/help.php:79 -msgid "Help:" -msgstr "Hjálp:" - -#: ../../mod/help.php:84 ../../include/nav.php:114 -msgid "Help" -msgstr "Hjálp" - -#: ../../mod/help.php:90 ../../index.php:256 -msgid "Not Found" -msgstr "Fannst ekki" - -#: ../../mod/help.php:93 ../../index.php:259 -msgid "Page not found." -msgstr "Síða fannst ekki." - -#: ../../mod/dfrn_poll.php:103 ../../mod/dfrn_poll.php:536 +#: include/conversation.php:150 #, php-format -msgid "%1$s welcomes %2$s" +msgid "%1$s doesn't attend %2$s's %3$s" msgstr "" -#: ../../mod/home.php:35 +#: include/conversation.php:153 #, php-format -msgid "Welcome to %s" -msgstr "Velkomin(n) til %s" - -#: ../../mod/wall_attach.php:75 -msgid "Sorry, maybe your upload is bigger than the PHP configuration allows" +msgid "%1$s attends maybe %2$s's %3$s" msgstr "" -#: ../../mod/wall_attach.php:75 -msgid "Or - did you try to upload an empty file?" -msgstr "" - -#: ../../mod/wall_attach.php:81 +#: include/conversation.php:185 mod/dfrn_confirm.php:472 #, php-format -msgid "File exceeds size limit of %d" -msgstr "Skrá stærri en takmarkið %d" +msgid "%1$s is now friends with %2$s" +msgstr "Núna er %1$s vinur %2$s" -#: ../../mod/wall_attach.php:122 ../../mod/wall_attach.php:133 -msgid "File upload failed." -msgstr "Skráar upphlöðun mistókst." - -#: ../../mod/match.php:12 -msgid "Profile Match" -msgstr "Forsíða fannst" - -#: ../../mod/match.php:20 -msgid "No keywords to match. Please add keywords to your default profile." -msgstr "Engin leitarorð. Bættu við leitarorðum í sjálfgefnu forsíðuna." - -#: ../../mod/match.php:57 -msgid "is interested in:" -msgstr "hefur áhuga á:" - -#: ../../mod/match.php:58 ../../mod/suggest.php:90 ../../boot.php:1568 -#: ../../include/contact_widgets.php:10 -msgid "Connect" -msgstr "Tengjast" - -#: ../../mod/share.php:44 -msgid "link" -msgstr "" - -#: ../../mod/community.php:23 -msgid "Not available." -msgstr "Ekki í boði." - -#: ../../mod/community.php:32 ../../include/nav.php:129 -#: ../../include/nav.php:131 ../../view/theme/diabook/theme.php:129 -msgid "Community" -msgstr "Samfélag" - -#: ../../mod/community.php:62 ../../mod/community.php:71 -#: ../../mod/search.php:168 ../../mod/search.php:192 -msgid "No results." -msgstr "Engar leitarniðurstöður." - -#: ../../mod/settings.php:29 ../../mod/photos.php:80 -msgid "everybody" -msgstr "allir" - -#: ../../mod/settings.php:41 -msgid "Additional features" -msgstr "" - -#: ../../mod/settings.php:46 -msgid "Display" -msgstr "" - -#: ../../mod/settings.php:52 ../../mod/settings.php:780 -msgid "Social Networks" -msgstr "" - -#: ../../mod/settings.php:62 ../../include/nav.php:170 -msgid "Delegations" -msgstr "" - -#: ../../mod/settings.php:67 -msgid "Connected apps" -msgstr "" - -#: ../../mod/settings.php:72 ../../mod/uexport.php:85 -msgid "Export personal data" -msgstr "Sækja persónuleg gögn" - -#: ../../mod/settings.php:77 -msgid "Remove account" -msgstr "Henda tengilið" - -#: ../../mod/settings.php:129 -msgid "Missing some important data!" -msgstr "Vantar mikilvæg gögn!" - -#: ../../mod/settings.php:238 -msgid "Failed to connect with email account using the settings provided." -msgstr "Ekki tókst að tengjast við pósthólf með stillingum sem uppgefnar eru." - -#: ../../mod/settings.php:243 -msgid "Email settings updated." -msgstr "Stillingar póstfangs uppfærðar." - -#: ../../mod/settings.php:258 -msgid "Features updated" -msgstr "" - -#: ../../mod/settings.php:321 -msgid "Relocate message has been send to your contacts" -msgstr "" - -#: ../../mod/settings.php:335 -msgid "Passwords do not match. Password unchanged." -msgstr "Aðgangsorð ber ekki saman. Aðgangsorð óbreytt." - -#: ../../mod/settings.php:340 -msgid "Empty passwords are not allowed. Password unchanged." -msgstr "Tóm aðgangsorð eru ekki leyfileg. Aðgangsorð óbreytt." - -#: ../../mod/settings.php:348 -msgid "Wrong password." -msgstr "" - -#: ../../mod/settings.php:359 -msgid "Password changed." -msgstr "Aðgangsorði breytt." - -#: ../../mod/settings.php:361 -msgid "Password update failed. Please try again." -msgstr "Uppfærsla á aðgangsorði tókst ekki. Reyndu aftur." - -#: ../../mod/settings.php:428 -msgid " Please use a shorter name." -msgstr "Vinsamlegast nota styttra nafn." - -#: ../../mod/settings.php:430 -msgid " Name too short." -msgstr "Nafn of stutt." - -#: ../../mod/settings.php:439 -msgid "Wrong Password" -msgstr "" - -#: ../../mod/settings.php:444 -msgid " Not valid email." -msgstr "Póstfang ógilt" - -#: ../../mod/settings.php:450 -msgid " Cannot change to that email." -msgstr "Ekki hægt að breyta yfir í þetta póstfang." - -#: ../../mod/settings.php:506 -msgid "Private forum has no privacy permissions. Using default privacy group." -msgstr "" - -#: ../../mod/settings.php:510 -msgid "Private forum has no privacy permissions and no default privacy group." -msgstr "" - -#: ../../mod/settings.php:540 -msgid "Settings updated." -msgstr "Stillingar uppfærðar" - -#: ../../mod/settings.php:613 ../../mod/settings.php:639 -#: ../../mod/settings.php:675 -msgid "Add application" -msgstr "Bæta við forriti" - -#: ../../mod/settings.php:617 ../../mod/settings.php:643 -msgid "Consumer Key" -msgstr "Notenda lykill" - -#: ../../mod/settings.php:618 ../../mod/settings.php:644 -msgid "Consumer Secret" -msgstr "Notenda leyndarmál" - -#: ../../mod/settings.php:619 ../../mod/settings.php:645 -msgid "Redirect" -msgstr "Áframsenda" - -#: ../../mod/settings.php:620 ../../mod/settings.php:646 -msgid "Icon url" -msgstr "Táknmyndar slóð" - -#: ../../mod/settings.php:631 -msgid "You can't edit this application." -msgstr "Þú getur ekki breytt þessu forriti." - -#: ../../mod/settings.php:674 -msgid "Connected Apps" -msgstr "Tengd forr" - -#: ../../mod/settings.php:678 -msgid "Client key starts with" -msgstr "Lykill viðskiptavinar byrjar á" - -#: ../../mod/settings.php:679 -msgid "No name" -msgstr "Ekkert nafn" - -#: ../../mod/settings.php:680 -msgid "Remove authorization" -msgstr "Fjarlæga auðkenningu" - -#: ../../mod/settings.php:692 -msgid "No Plugin settings configured" -msgstr "Engar stillingar í einingu stilltar" - -#: ../../mod/settings.php:700 -msgid "Plugin Settings" -msgstr "Eininga stillingar" - -#: ../../mod/settings.php:714 -msgid "Off" -msgstr "" - -#: ../../mod/settings.php:714 -msgid "On" -msgstr "" - -#: ../../mod/settings.php:722 -msgid "Additional Features" -msgstr "" - -#: ../../mod/settings.php:736 ../../mod/settings.php:737 +#: include/conversation.php:219 #, php-format -msgid "Built-in support for %s connectivity is %s" -msgstr "Innbyggður stuðningur fyrir %s tenging er%s" +msgid "%1$s poked %2$s" +msgstr "%1$s potaði í %2$s" -#: ../../mod/settings.php:736 ../../mod/dfrn_request.php:838 -#: ../../include/contact_selectors.php:80 -msgid "Diaspora" -msgstr "Diaspora" - -#: ../../mod/settings.php:736 ../../mod/settings.php:737 -msgid "enabled" -msgstr "kveikt" - -#: ../../mod/settings.php:736 ../../mod/settings.php:737 -msgid "disabled" -msgstr "slökkt" - -#: ../../mod/settings.php:737 -msgid "StatusNet" -msgstr "StatusNet" - -#: ../../mod/settings.php:773 -msgid "Email access is disabled on this site." -msgstr "Slökkt hefur verið á tölvupóst aðgang á þessum þjón." - -#: ../../mod/settings.php:785 -msgid "Email/Mailbox Setup" -msgstr "Tölvupóstur stilling" - -#: ../../mod/settings.php:786 -msgid "" -"If you wish to communicate with email contacts using this service " -"(optional), please specify how to connect to your mailbox." -msgstr "Ef þú villt hafa samskipti við tölvupósts tengiliði með þessari þjónustu (valfrjálst), skilgreindu þá hvernig á að tengjast póstfanginu þínu." - -#: ../../mod/settings.php:787 -msgid "Last successful email check:" -msgstr "Póstfang sannreynt síðast:" - -#: ../../mod/settings.php:789 -msgid "IMAP server name:" -msgstr "IMAP þjónn:" - -#: ../../mod/settings.php:790 -msgid "IMAP port:" -msgstr "IMAP port:" - -#: ../../mod/settings.php:791 -msgid "Security:" -msgstr "Öryggi:" - -#: ../../mod/settings.php:791 ../../mod/settings.php:796 -msgid "None" -msgstr "Ekkert" - -#: ../../mod/settings.php:792 -msgid "Email login name:" -msgstr "Póstfangs aðgangsnafn:" - -#: ../../mod/settings.php:793 -msgid "Email password:" -msgstr "Póstfangs aðgangsorð:" - -#: ../../mod/settings.php:794 -msgid "Reply-to address:" -msgstr "Póstfang sem svar berst á:" - -#: ../../mod/settings.php:795 -msgid "Send public posts to all email contacts:" -msgstr "Senda opinberar færslur á alla tölvupóst viðtakendur:" - -#: ../../mod/settings.php:796 -msgid "Action after import:" -msgstr "" - -#: ../../mod/settings.php:796 -msgid "Mark as seen" -msgstr "Merka sem séð" - -#: ../../mod/settings.php:796 -msgid "Move to folder" -msgstr "Flytja yfir í skrásafn" - -#: ../../mod/settings.php:797 -msgid "Move to folder:" -msgstr "Flytja yfir í skrásafn:" - -#: ../../mod/settings.php:878 -msgid "Display Settings" -msgstr "" - -#: ../../mod/settings.php:884 ../../mod/settings.php:899 -msgid "Display Theme:" -msgstr "Útlits þema:" - -#: ../../mod/settings.php:885 -msgid "Mobile Theme:" -msgstr "" - -#: ../../mod/settings.php:886 -msgid "Update browser every xx seconds" -msgstr "Endurhlaða vefsíðu á xx sekúndu fresti" - -#: ../../mod/settings.php:886 -msgid "Minimum of 10 seconds, no maximum" -msgstr "Minnst 10 sekúndur, ekkert hámark" - -#: ../../mod/settings.php:887 -msgid "Number of items to display per page:" -msgstr "" - -#: ../../mod/settings.php:887 ../../mod/settings.php:888 -msgid "Maximum of 100 items" -msgstr "" - -#: ../../mod/settings.php:888 -msgid "Number of items to display per page when viewed from mobile device:" -msgstr "" - -#: ../../mod/settings.php:889 -msgid "Don't show emoticons" -msgstr "" - -#: ../../mod/settings.php:890 -msgid "Don't show notices" -msgstr "" - -#: ../../mod/settings.php:891 -msgid "Infinite scroll" -msgstr "" - -#: ../../mod/settings.php:892 -msgid "Automatic updates only at the top of the network page" -msgstr "" - -#: ../../mod/settings.php:969 -msgid "User Types" -msgstr "" - -#: ../../mod/settings.php:970 -msgid "Community Types" -msgstr "" - -#: ../../mod/settings.php:971 -msgid "Normal Account Page" -msgstr "" - -#: ../../mod/settings.php:972 -msgid "This account is a normal personal profile" -msgstr "Þessi notandi er með venjulega persónulega forsíðu" - -#: ../../mod/settings.php:975 -msgid "Soapbox Page" -msgstr "" - -#: ../../mod/settings.php:976 -msgid "Automatically approve all connection/friend requests as read-only fans" -msgstr "Sjálfkrafa samþykkja allar tengi/vina beiðnir sem, einungis lestrar aðdáendur" - -#: ../../mod/settings.php:979 -msgid "Community Forum/Celebrity Account" -msgstr "" - -#: ../../mod/settings.php:980 -msgid "" -"Automatically approve all connection/friend requests as read-write fans" -msgstr "Sjálfkrafa samþykkja allar tengi/vina beiðnir, sem les og skriftar aðdáendur" - -#: ../../mod/settings.php:983 -msgid "Automatic Friend Page" -msgstr "" - -#: ../../mod/settings.php:984 -msgid "Automatically approve all connection/friend requests as friends" -msgstr "Sjálfkrafa samþykkja allar tengi/vina beiðnir sem vini" - -#: ../../mod/settings.php:987 -msgid "Private Forum [Experimental]" -msgstr "" - -#: ../../mod/settings.php:988 -msgid "Private forum - approved members only" -msgstr "" - -#: ../../mod/settings.php:1000 -msgid "OpenID:" -msgstr "OpenID:" - -#: ../../mod/settings.php:1000 -msgid "(Optional) Allow this OpenID to login to this account." -msgstr "(Valfrjálst) Leyfa þessu OpenID til að auðkennast sem þessi notandi." - -#: ../../mod/settings.php:1010 -msgid "Publish your default profile in your local site directory?" -msgstr "Gefa út sjálfgefna forsíðu í tengiliðalista á þessum þjón?" - -#: ../../mod/settings.php:1010 ../../mod/settings.php:1016 -#: ../../mod/settings.php:1024 ../../mod/settings.php:1028 -#: ../../mod/settings.php:1033 ../../mod/settings.php:1039 -#: ../../mod/settings.php:1045 ../../mod/settings.php:1051 -#: ../../mod/settings.php:1081 ../../mod/settings.php:1082 -#: ../../mod/settings.php:1083 ../../mod/settings.php:1084 -#: ../../mod/settings.php:1085 ../../mod/dfrn_request.php:830 -#: ../../mod/register.php:234 ../../mod/profiles.php:661 -#: ../../mod/profiles.php:665 ../../mod/api.php:106 -msgid "No" -msgstr "Nei" - -#: ../../mod/settings.php:1016 -msgid "Publish your default profile in the global social directory?" -msgstr "Gefa sjálfgefna forsíðu út í alheimstengiliðalista?" - -#: ../../mod/settings.php:1024 -msgid "Hide your contact/friend list from viewers of your default profile?" -msgstr "Fela tengiliða-/vinalistann þinn fyrir áhorfendum á sjálfgefinni forsíðu?" - -#: ../../mod/settings.php:1028 ../../include/conversation.php:1057 -msgid "Hide your profile details from unknown viewers?" -msgstr "Fela forsíðu upplýsingar fyrir óþekktum? " - -#: ../../mod/settings.php:1028 -msgid "" -"If enabled, posting public messages to Diaspora and other networks isn't " -"possible." -msgstr "" - -#: ../../mod/settings.php:1033 -msgid "Allow friends to post to your profile page?" -msgstr "Leyfa vinum að deila á forsíðuna þína?" - -#: ../../mod/settings.php:1039 -msgid "Allow friends to tag your posts?" -msgstr "Leyfa vinum að merkja þínar færslur?" - -#: ../../mod/settings.php:1045 -msgid "Allow us to suggest you as a potential friend to new members?" -msgstr "Leyfa að stungið verði uppá þér sem hugsamlegum vinur fyrir aðra notendur? " - -#: ../../mod/settings.php:1051 -msgid "Permit unknown people to send you private mail?" -msgstr "" - -#: ../../mod/settings.php:1059 -msgid "Profile is not published." -msgstr "Forsíðu hefur ekki verið gefinn út." - -#: ../../mod/settings.php:1067 -msgid "Your Identity Address is" -msgstr "Auðkennisnetfangið þitt er" - -#: ../../mod/settings.php:1078 -msgid "Automatically expire posts after this many days:" -msgstr "Sjálfkrafa fyrna færslu eftir hvað marga daga:" - -#: ../../mod/settings.php:1078 -msgid "If empty, posts will not expire. Expired posts will be deleted" -msgstr "Tómar færslur renna ekki út. Útrunnum færslum er eytt" - -#: ../../mod/settings.php:1079 -msgid "Advanced expiration settings" -msgstr "Flóknar fyrningatíma stillingar" - -#: ../../mod/settings.php:1080 -msgid "Advanced Expiration" -msgstr "Flókin fyrning" - -#: ../../mod/settings.php:1081 -msgid "Expire posts:" -msgstr "Fyrna færslur:" - -#: ../../mod/settings.php:1082 -msgid "Expire personal notes:" -msgstr "Fyrna einka glósur:" - -#: ../../mod/settings.php:1083 -msgid "Expire starred posts:" -msgstr "Fyrna stjörnumerktar færslur:" - -#: ../../mod/settings.php:1084 -msgid "Expire photos:" -msgstr "Fyrna myndum:" - -#: ../../mod/settings.php:1085 -msgid "Only expire posts by others:" -msgstr "" - -#: ../../mod/settings.php:1111 -msgid "Account Settings" -msgstr "Notenda stillingar" - -#: ../../mod/settings.php:1119 -msgid "Password Settings" -msgstr "Aðgangsorða stillingar" - -#: ../../mod/settings.php:1120 -msgid "New Password:" -msgstr "Nýtt aðgangsorð:" - -#: ../../mod/settings.php:1121 -msgid "Confirm:" -msgstr "Staðfesta:" - -#: ../../mod/settings.php:1121 -msgid "Leave password fields blank unless changing" -msgstr "Hafðu aðgangsorða svæði tóm nema þegar verið er að breyta" - -#: ../../mod/settings.php:1122 -msgid "Current Password:" -msgstr "" - -#: ../../mod/settings.php:1122 ../../mod/settings.php:1123 -msgid "Your current password to confirm the changes" -msgstr "" - -#: ../../mod/settings.php:1123 -msgid "Password:" -msgstr "" - -#: ../../mod/settings.php:1127 -msgid "Basic Settings" -msgstr "Grunn stillingar" - -#: ../../mod/settings.php:1128 ../../include/profile_advanced.php:15 -msgid "Full Name:" -msgstr "Fullt nafn:" - -#: ../../mod/settings.php:1129 -msgid "Email Address:" -msgstr "Póstfang:" - -#: ../../mod/settings.php:1130 -msgid "Your Timezone:" -msgstr "Þitt tímabelti:" - -#: ../../mod/settings.php:1131 -msgid "Default Post Location:" -msgstr "Sjálfgefin staðsetning færslu:" - -#: ../../mod/settings.php:1132 -msgid "Use Browser Location:" -msgstr "Nota vafra staðsetningu:" - -#: ../../mod/settings.php:1135 -msgid "Security and Privacy Settings" -msgstr "Öryggis og næðis stillingar" - -#: ../../mod/settings.php:1137 -msgid "Maximum Friend Requests/Day:" -msgstr "Hámarks vinabeiðnir á dag:" - -#: ../../mod/settings.php:1137 ../../mod/settings.php:1167 -msgid "(to prevent spam abuse)" -msgstr "(til að koma í veg fyrir rusl misnotkun)" - -#: ../../mod/settings.php:1138 -msgid "Default Post Permissions" -msgstr "Sjálfgefnar aðgangstýring á færslum" - -#: ../../mod/settings.php:1139 -msgid "(click to open/close)" -msgstr "(ýttu á til að opna/loka)" - -#: ../../mod/settings.php:1148 ../../mod/photos.php:1146 -#: ../../mod/photos.php:1519 -msgid "Show to Groups" -msgstr "Birta hópum" - -#: ../../mod/settings.php:1149 ../../mod/photos.php:1147 -#: ../../mod/photos.php:1520 -msgid "Show to Contacts" -msgstr "Birta tengiliðum" - -#: ../../mod/settings.php:1150 -msgid "Default Private Post" -msgstr "" - -#: ../../mod/settings.php:1151 -msgid "Default Public Post" -msgstr "" - -#: ../../mod/settings.php:1155 -msgid "Default Permissions for New Posts" -msgstr "" - -#: ../../mod/settings.php:1167 -msgid "Maximum private messages per day from unknown people:" -msgstr "" - -#: ../../mod/settings.php:1170 -msgid "Notification Settings" -msgstr "Tilkynninga stillingar" - -#: ../../mod/settings.php:1171 -msgid "By default post a status message when:" -msgstr "" - -#: ../../mod/settings.php:1172 -msgid "accepting a friend request" -msgstr "" - -#: ../../mod/settings.php:1173 -msgid "joining a forum/community" -msgstr "ganga til liðs við hóp/samfélag" - -#: ../../mod/settings.php:1174 -msgid "making an interesting profile change" -msgstr "" - -#: ../../mod/settings.php:1175 -msgid "Send a notification email when:" -msgstr "Senda tilkynninga tölvupóst þegar:" - -#: ../../mod/settings.php:1176 -msgid "You receive an introduction" -msgstr "Þú færð kynningu" - -#: ../../mod/settings.php:1177 -msgid "Your introductions are confirmed" -msgstr "Þínar kynningar eru samþykktar" - -#: ../../mod/settings.php:1178 -msgid "Someone writes on your profile wall" -msgstr "Einhver skrifar á vegginn þínn" - -#: ../../mod/settings.php:1179 -msgid "Someone writes a followup comment" -msgstr "Einhver skrifar athugasemd á færslu hjá þér" - -#: ../../mod/settings.php:1180 -msgid "You receive a private message" -msgstr "Þú færð einkaskilaboð" - -#: ../../mod/settings.php:1181 -msgid "You receive a friend suggestion" -msgstr "Þér hefur borist vina uppástunga" - -#: ../../mod/settings.php:1182 -msgid "You are tagged in a post" -msgstr "Þú varst merkt(ur) í færslu" - -#: ../../mod/settings.php:1183 -msgid "You are poked/prodded/etc. in a post" -msgstr "" - -#: ../../mod/settings.php:1185 -msgid "Text-only notification emails" -msgstr "" - -#: ../../mod/settings.php:1187 -msgid "Send text only notification emails, without the html part" -msgstr "" - -#: ../../mod/settings.php:1189 -msgid "Advanced Account/Page Type Settings" -msgstr "" - -#: ../../mod/settings.php:1190 -msgid "Change the behaviour of this account for special situations" -msgstr "" - -#: ../../mod/settings.php:1193 -msgid "Relocate" -msgstr "" - -#: ../../mod/settings.php:1194 -msgid "" -"If you have moved this profile from another server, and some of your " -"contacts don't receive your updates, try pushing this button." -msgstr "" - -#: ../../mod/settings.php:1195 -msgid "Resend relocate message to contacts" -msgstr "" - -#: ../../mod/dfrn_request.php:95 -msgid "This introduction has already been accepted." -msgstr "Þessi kynning hefur þegar verið samþykkt." - -#: ../../mod/dfrn_request.php:120 ../../mod/dfrn_request.php:518 -msgid "Profile location is not valid or does not contain profile information." -msgstr "Forsíðu slóð er ekki í lagi eða inniheldur ekki forsíðu upplýsingum." - -#: ../../mod/dfrn_request.php:125 ../../mod/dfrn_request.php:523 -msgid "Warning: profile location has no identifiable owner name." -msgstr "Aðvörun: forsíðu staðsetning hefur ekki aðgreinanlegt eigendanafn." - -#: ../../mod/dfrn_request.php:127 ../../mod/dfrn_request.php:525 -msgid "Warning: profile location has no profile photo." -msgstr "Aðvörun: forsíðu slóð hefur ekki forsíðu mynd." - -#: ../../mod/dfrn_request.php:130 ../../mod/dfrn_request.php:528 -#, 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 skilyrt breyta fannst ekki á uppgefinni staðsetningu" -msgstr[1] "%d skilyrtar breytur fundust ekki á uppgefninni staðsetningu" - -#: ../../mod/dfrn_request.php:172 -msgid "Introduction complete." -msgstr "Kynning tilbúinn." - -#: ../../mod/dfrn_request.php:214 -msgid "Unrecoverable protocol error." -msgstr "Alvarleg samskipta villa." - -#: ../../mod/dfrn_request.php:242 -msgid "Profile unavailable." -msgstr "Ekki hægt að sækja forsíðu" - -#: ../../mod/dfrn_request.php:267 -#, php-format -msgid "%s has received too many connection requests today." -msgstr "%s hefur fengið of margar tengibeiðnir í dag." - -#: ../../mod/dfrn_request.php:268 -msgid "Spam protection measures have been invoked." -msgstr "Kveikt hefur verið á ruslsíu" - -#: ../../mod/dfrn_request.php:269 -msgid "Friends are advised to please try again in 24 hours." -msgstr "Vinir eru beðnir um að reyna aftur eftir 24 klukkustundir." - -#: ../../mod/dfrn_request.php:331 -msgid "Invalid locator" -msgstr "Ógild staðsetning" - -#: ../../mod/dfrn_request.php:340 -msgid "Invalid email address." -msgstr "Ógilt póstfang." - -#: ../../mod/dfrn_request.php:367 -msgid "This account has not been configured for email. Request failed." -msgstr "" - -#: ../../mod/dfrn_request.php:463 -msgid "Unable to resolve your name at the provided location." -msgstr "Ekki tókst að fletta upp nafninu þínu á uppgefinni staðsetningu." - -#: ../../mod/dfrn_request.php:476 -msgid "You have already introduced yourself here." -msgstr "Kynning hefur þegar átt sér stað hér." - -#: ../../mod/dfrn_request.php:480 -#, php-format -msgid "Apparently you are already friends with %s." -msgstr "Þú ert þegar vinur %s." - -#: ../../mod/dfrn_request.php:501 -msgid "Invalid profile URL." -msgstr "Ógild forsíðu slóð." - -#: ../../mod/dfrn_request.php:507 ../../include/follow.php:27 -msgid "Disallowed profile URL." -msgstr "Óleyfileg forsíðu slóð." - -#: ../../mod/dfrn_request.php:597 -msgid "Your introduction has been sent." -msgstr "Kynningin þín hefur verið send." - -#: ../../mod/dfrn_request.php:650 -msgid "Please login to confirm introduction." -msgstr "Skráðu þig inn til að staðfesta kynningu." - -#: ../../mod/dfrn_request.php:660 -msgid "" -"Incorrect identity currently logged in. Please login to " -"this profile." -msgstr "Ekki réttur notandi skráður inn. Skráðu þig inn sem þessi notandi." - -#: ../../mod/dfrn_request.php:671 -msgid "Hide this contact" -msgstr "Fela þennan tengilið" - -#: ../../mod/dfrn_request.php:674 -#, php-format -msgid "Welcome home %s." -msgstr "Velkomin(n) heim %s." - -#: ../../mod/dfrn_request.php:675 -#, php-format -msgid "Please confirm your introduction/connection request to %s." -msgstr "Vinsamlegas staðfestu kynninguna/tengibeiðnina við %s." - -#: ../../mod/dfrn_request.php:676 -msgid "Confirm" -msgstr "Staðfesta" - -#: ../../mod/dfrn_request.php:804 -msgid "" -"Please enter your 'Identity Address' from one of the following supported " -"communications networks:" -msgstr "Settu inn 'Auðkennisnetfang' þitt úr einhverjum af eftirfarandi samskiptanetum:" - -#: ../../mod/dfrn_request.php:824 -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 "" - -#: ../../mod/dfrn_request.php:827 -msgid "Friend/Connection Request" -msgstr "Vina/Tengi Beiðni" - -#: ../../mod/dfrn_request.php:828 -msgid "" -"Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, " -"testuser@identi.ca" -msgstr "Dæmi: siggi@demo.friendica.com, http://demo.friendica.com/profile/siggi, prufunotandi@identi.ca" - -#: ../../mod/dfrn_request.php:829 -msgid "Please answer the following:" -msgstr "Vinnsamlegast svaraðu eftirfarandi:" - -#: ../../mod/dfrn_request.php:830 -#, php-format -msgid "Does %s know you?" -msgstr "Þekkir %s þig?" - -#: ../../mod/dfrn_request.php:834 -msgid "Add a personal note:" -msgstr "Bæta við persónulegri athugasemd" - -#: ../../mod/dfrn_request.php:836 ../../include/contact_selectors.php:76 -msgid "Friendica" -msgstr "Friendica" - -#: ../../mod/dfrn_request.php:837 -msgid "StatusNet/Federated Social Web" -msgstr "StatusNet/Federated Social Web" - -#: ../../mod/dfrn_request.php:839 -#, php-format -msgid "" -" - please do not use this form. Instead, enter %s into your Diaspora search" -" bar." -msgstr "" - -#: ../../mod/dfrn_request.php:840 -msgid "Your Identity Address:" -msgstr "Auðkennisnetfang þitt:" - -#: ../../mod/dfrn_request.php:843 -msgid "Submit Request" -msgstr "Senda beiðni" - -#: ../../mod/register.php:90 -msgid "" -"Registration successful. Please check your email for further instructions." -msgstr "Nýskráning tóks. Frekari fyrirmæli voru send í tölvupósti." - -#: ../../mod/register.php:96 -#, php-format -msgid "" -"Failed to send email message. Here your accout details:
      login: %s
      " -"password: %s

      You can change your password after login." -msgstr "" - -#: ../../mod/register.php:105 -msgid "Your registration can not be processed." -msgstr "Skráninguna þína er ekki hægt að vinna." - -#: ../../mod/register.php:148 -msgid "Your registration is pending approval by the site owner." -msgstr "Skráningin þín bíður samþykkis af eiganda síðunnar." - -#: ../../mod/register.php:186 ../../mod/uimport.php:50 -msgid "" -"This site has exceeded the number of allowed daily account registrations. " -"Please try again tomorrow." -msgstr "Þessi vefur hefur náð hámarks fjölda daglegra nýskráninga. Reyndu aftur á morgun." - -#: ../../mod/register.php:214 -msgid "" -"You may (optionally) fill in this form via OpenID by supplying your OpenID " -"and clicking 'Register'." -msgstr "Þú mátt (valfrjálst) fylla í þetta svæði gegnum OpenID með því gefa upp þitt OpenID og ýta á 'Skrá'." - -#: ../../mod/register.php:215 -msgid "" -"If you are not familiar with OpenID, please leave that field blank and fill " -"in the rest of the items." -msgstr "Ef þú veist ekki hvað OpenID er, skildu þá þetta svæði eftir tómt en fylltu í restin af svæðunum." - -#: ../../mod/register.php:216 -msgid "Your OpenID (optional): " -msgstr "Þitt OpenID (valfrjálst):" - -#: ../../mod/register.php:230 -msgid "Include your profile in member directory?" -msgstr "Á forsíðan þín að sjást í notendalistanum?" - -#: ../../mod/register.php:251 -msgid "Membership on this site is by invitation only." -msgstr "Aðild að þessum vef er " - -#: ../../mod/register.php:252 -msgid "Your invitation ID: " -msgstr "Boðskorta auðkenni:" - -#: ../../mod/register.php:263 -msgid "Your Full Name (e.g. Joe Smith): " -msgstr "Full nafn (t.d. Jón Jónsson):" - -#: ../../mod/register.php:264 -msgid "Your Email Address: " -msgstr "Tölvupóstur:" - -#: ../../mod/register.php:265 -msgid "" -"Choose a profile nickname. This must begin with a text character. Your " -"profile address on this site will then be " -"'nickname@$sitename'." -msgstr "Veldu gælunafn. Verður að byrja á staf. Slóðin þín á þessum vef verður síðan 'gælunafn@$sitename'." - -#: ../../mod/register.php:266 -msgid "Choose a nickname: " -msgstr "Veldu gælunafn:" - -#: ../../mod/register.php:269 ../../boot.php:1241 ../../include/nav.php:109 -msgid "Register" -msgstr "Nýskrá" - -#: ../../mod/register.php:275 ../../mod/uimport.php:64 -msgid "Import" -msgstr "Flytja inn" - -#: ../../mod/register.php:276 -msgid "Import your profile to this friendica instance" -msgstr "" - -#: ../../mod/maintenance.php:5 -msgid "System down for maintenance" -msgstr "Kerfið er óvirkt vegna viðhalds" - -#: ../../mod/search.php:99 ../../include/text.php:953 -#: ../../include/text.php:954 ../../include/nav.php:119 -msgid "Search" -msgstr "Leita" - -#: ../../mod/directory.php:51 ../../view/theme/diabook/theme.php:525 -msgid "Global Directory" -msgstr "Alheimstengiliðaskrá" - -#: ../../mod/directory.php:59 -msgid "Find on this site" -msgstr "Leita á þessum vef" - -#: ../../mod/directory.php:62 -msgid "Site Directory" -msgstr "Skrá yfir tengiliði á þessum vef" - -#: ../../mod/directory.php:113 ../../mod/profiles.php:750 -msgid "Age: " -msgstr "Aldur:" - -#: ../../mod/directory.php:116 -msgid "Gender: " -msgstr "Kyn:" - -#: ../../mod/directory.php:138 ../../boot.php:1650 -#: ../../include/profile_advanced.php:17 -msgid "Gender:" -msgstr "Kyn:" - -#: ../../mod/directory.php:140 ../../boot.php:1653 -#: ../../include/profile_advanced.php:37 -msgid "Status:" -msgstr "Staða:" - -#: ../../mod/directory.php:142 ../../boot.php:1655 -#: ../../include/profile_advanced.php:48 -msgid "Homepage:" -msgstr "Heimasíða:" - -#: ../../mod/directory.php:144 ../../boot.php:1657 -#: ../../include/profile_advanced.php:58 -msgid "About:" -msgstr "Um:" - -#: ../../mod/directory.php:189 -msgid "No entries (some entries may be hidden)." -msgstr "Engar færslur (sumar geta verið faldar)." - -#: ../../mod/delegate.php:101 -msgid "No potential page delegates located." -msgstr "Engir mögulegir viðtakendur síðunnar fundust." - -#: ../../mod/delegate.php:130 ../../include/nav.php:170 -msgid "Delegate Page Management" -msgstr "" - -#: ../../mod/delegate.php:132 -msgid "" -"Delegates are able to manage all aspects of this account/page except for " -"basic account settings. Please do not delegate your personal account to " -"anybody that you do not trust completely." -msgstr "" - -#: ../../mod/delegate.php:133 -msgid "Existing Page Managers" -msgstr "" - -#: ../../mod/delegate.php:135 -msgid "Existing Page Delegates" -msgstr "" - -#: ../../mod/delegate.php:137 -msgid "Potential Delegates" -msgstr "" - -#: ../../mod/delegate.php:140 -msgid "Add" -msgstr "Bæta við" - -#: ../../mod/delegate.php:141 -msgid "No entries." -msgstr "Engar færslur." - -#: ../../mod/common.php:42 -msgid "Common Friends" -msgstr "Sameiginlegir vinir" - -#: ../../mod/common.php:78 -msgid "No contacts in common." -msgstr "" - -#: ../../mod/uexport.php:77 -msgid "Export account" -msgstr "" - -#: ../../mod/uexport.php:77 -msgid "" -"Export your account info and contacts. Use this to make a backup of your " -"account and/or to move it to another server." -msgstr "" - -#: ../../mod/uexport.php:78 -msgid "Export all" -msgstr "" - -#: ../../mod/uexport.php:78 -msgid "" -"Export your accout info, contacts and all your items as json. Could be a " -"very big file, and could take a lot of time. Use this to make a full backup " -"of your account (photos are not exported)" -msgstr "" - -#: ../../mod/mood.php:62 ../../include/conversation.php:227 +#: include/conversation.php:239 mod/mood.php:62 #, php-format msgid "%1$s is currently %2$s" msgstr "" -#: ../../mod/mood.php:133 -msgid "Mood" +#: include/conversation.php:278 mod/tagger.php:95 +#, php-format +msgid "%1$s tagged %2$s's %3$s with %4$s" +msgstr "%1$s merkti %2$s's %3$s með %4$s" + +#: include/conversation.php:303 +msgid "post/item" msgstr "" -#: ../../mod/mood.php:134 -msgid "Set your current mood and tell your friends" +#: include/conversation.php:304 +#, php-format +msgid "%1$s marked %2$s's %3$s as favorite" msgstr "" -#: ../../mod/suggest.php:27 -msgid "Do you really want to delete this suggestion?" -msgstr "" - -#: ../../mod/suggest.php:68 ../../include/contact_widgets.php:35 -#: ../../view/theme/diabook/theme.php:527 -msgid "Friend Suggestions" -msgstr "Vina uppástungur" - -#: ../../mod/suggest.php:74 -msgid "" -"No suggestions available. If this is a new site, please try again in 24 " -"hours." -msgstr "Engar uppástungur tiltækar. Ef þetta er nýr vefur, reyndu þá aftur eftir um 24 klukkustundir." - -#: ../../mod/suggest.php:92 -msgid "Ignore/Hide" -msgstr "Hunsa/Fela" - -#: ../../mod/profiles.php:37 -msgid "Profile deleted." -msgstr "Forsíðu eytt." - -#: ../../mod/profiles.php:55 ../../mod/profiles.php:89 -msgid "Profile-" -msgstr "Forsíða-" - -#: ../../mod/profiles.php:74 ../../mod/profiles.php:117 -msgid "New profile created." -msgstr "Ný forsíða búinn til." - -#: ../../mod/profiles.php:95 -msgid "Profile unavailable to clone." -msgstr "Ekki tókst að klóna forsíðu" - -#: ../../mod/profiles.php:189 -msgid "Profile Name is required." -msgstr "Nafn á forsíðu er skilyrði" - -#: ../../mod/profiles.php:340 -msgid "Marital Status" -msgstr "" - -#: ../../mod/profiles.php:344 -msgid "Romantic Partner" -msgstr "" - -#: ../../mod/profiles.php:348 +#: include/conversation.php:587 mod/content.php:372 mod/profiles.php:344 +#: mod/photos.php:1634 msgid "Likes" -msgstr "" +msgstr "Líkar" -#: ../../mod/profiles.php:352 +#: include/conversation.php:587 mod/content.php:372 mod/profiles.php:348 +#: mod/photos.php:1634 msgid "Dislikes" -msgstr "" +msgstr "Mislíkar" -#: ../../mod/profiles.php:356 -msgid "Work/Employment" -msgstr "" +#: include/conversation.php:588 include/conversation.php:1471 +#: mod/content.php:373 mod/photos.php:1635 +msgid "Attending" +msgid_plural "Attending" +msgstr[0] "Mætir" +msgstr[1] "Mæta" -#: ../../mod/profiles.php:359 -msgid "Religion" -msgstr "" +#: include/conversation.php:588 mod/content.php:373 mod/photos.php:1635 +msgid "Not attending" +msgstr "Mætir ekki" -#: ../../mod/profiles.php:363 -msgid "Political Views" -msgstr "" +#: include/conversation.php:588 mod/content.php:373 mod/photos.php:1635 +msgid "Might attend" +msgstr "Gæti mætt" -#: ../../mod/profiles.php:367 -msgid "Gender" -msgstr "" +#: include/conversation.php:710 mod/content.php:453 mod/content.php:758 +#: mod/photos.php:1709 object/Item.php:133 +msgid "Select" +msgstr "Velja" -#: ../../mod/profiles.php:371 -msgid "Sexual Preference" -msgstr "" +#: include/conversation.php:711 mod/admin.php:1388 mod/content.php:454 +#: mod/content.php:759 mod/photos.php:1710 mod/contacts.php:801 +#: mod/contacts.php:1016 mod/group.php:171 mod/settings.php:726 +#: object/Item.php:134 +msgid "Delete" +msgstr "Eyða" -#: ../../mod/profiles.php:375 -msgid "Homepage" -msgstr "" - -#: ../../mod/profiles.php:379 ../../mod/profiles.php:698 -msgid "Interests" -msgstr "" - -#: ../../mod/profiles.php:383 -msgid "Address" -msgstr "" - -#: ../../mod/profiles.php:390 ../../mod/profiles.php:694 -msgid "Location" -msgstr "" - -#: ../../mod/profiles.php:473 -msgid "Profile updated." -msgstr "Forsíða uppfærð." - -#: ../../mod/profiles.php:568 -msgid " and " -msgstr "og" - -#: ../../mod/profiles.php:576 -msgid "public profile" -msgstr "Opinber forsíða" - -#: ../../mod/profiles.php:579 +#: include/conversation.php:755 mod/content.php:487 mod/content.php:910 +#: mod/content.php:911 object/Item.php:367 object/Item.php:368 #, php-format -msgid "%1$s changed %2$s to “%3$s”" -msgstr "" +msgid "View %s's profile @ %s" +msgstr "Birta forsíðu %s hjá %s" -#: ../../mod/profiles.php:580 -#, php-format -msgid " - Visit %1$s's %2$s" -msgstr "" - -#: ../../mod/profiles.php:583 -#, php-format -msgid "%1$s has an updated %2$s, changing %3$s." -msgstr "%1$s hefur uppfært %2$s, með því að breyta %3$s." - -#: ../../mod/profiles.php:658 -msgid "Hide contacts and friends:" -msgstr "" - -#: ../../mod/profiles.php:663 -msgid "Hide your contact/friend list from viewers of this profile?" -msgstr "Fela tengiliða-/vinalista á þessari forsíðu?" - -#: ../../mod/profiles.php:685 -msgid "Edit Profile Details" -msgstr "Breyta forsíðu upplýsingum" - -#: ../../mod/profiles.php:687 -msgid "Change Profile Photo" -msgstr "" - -#: ../../mod/profiles.php:688 -msgid "View this profile" -msgstr "Skoða þessa forsíðu" - -#: ../../mod/profiles.php:689 -msgid "Create a new profile using these settings" -msgstr "Búa til nýja forsíðu með þessum stillingum" - -#: ../../mod/profiles.php:690 -msgid "Clone this profile" -msgstr "Klóna þessa forsíðu" - -#: ../../mod/profiles.php:691 -msgid "Delete this profile" -msgstr "Eyða þessari forsíðu" - -#: ../../mod/profiles.php:692 -msgid "Basic information" -msgstr "" - -#: ../../mod/profiles.php:693 -msgid "Profile picture" -msgstr "" - -#: ../../mod/profiles.php:695 -msgid "Preferences" -msgstr "" - -#: ../../mod/profiles.php:696 -msgid "Status information" -msgstr "" - -#: ../../mod/profiles.php:697 -msgid "Additional information" -msgstr "" - -#: ../../mod/profiles.php:700 -msgid "Profile Name:" -msgstr "Forsíðu nafn:" - -#: ../../mod/profiles.php:701 -msgid "Your Full Name:" -msgstr "Fullt nafn:" - -#: ../../mod/profiles.php:702 -msgid "Title/Description:" -msgstr "Starfsheiti/Lýsing:" - -#: ../../mod/profiles.php:703 -msgid "Your Gender:" -msgstr "Kyn:" - -#: ../../mod/profiles.php:704 -#, php-format -msgid "Birthday (%s):" -msgstr "Afmæli (%s):" - -#: ../../mod/profiles.php:705 -msgid "Street Address:" -msgstr "Gata:" - -#: ../../mod/profiles.php:706 -msgid "Locality/City:" -msgstr "Bær/Borg:" - -#: ../../mod/profiles.php:707 -msgid "Postal/Zip Code:" -msgstr "Póstnúmer:" - -#: ../../mod/profiles.php:708 -msgid "Country:" -msgstr "Land:" - -#: ../../mod/profiles.php:709 -msgid "Region/State:" -msgstr "Svæði/Sýsla" - -#: ../../mod/profiles.php:710 -msgid " Marital Status:" -msgstr " Hjúskaparstaða:" - -#: ../../mod/profiles.php:711 -msgid "Who: (if applicable)" -msgstr "Hver: (ef við á)" - -#: ../../mod/profiles.php:712 -msgid "Examples: cathy123, Cathy Williams, cathy@example.com" -msgstr "Dæmi: cathy123, Cathy Williams, cathy@example.com" - -#: ../../mod/profiles.php:713 -msgid "Since [date]:" -msgstr "" - -#: ../../mod/profiles.php:714 ../../include/profile_advanced.php:46 -msgid "Sexual Preference:" -msgstr "Kynhneigð" - -#: ../../mod/profiles.php:715 -msgid "Homepage URL:" -msgstr "Slóð heimasíðu:" - -#: ../../mod/profiles.php:716 ../../include/profile_advanced.php:50 -msgid "Hometown:" -msgstr "" - -#: ../../mod/profiles.php:717 ../../include/profile_advanced.php:54 -msgid "Political Views:" -msgstr "Stórnmálaskoðanir:" - -#: ../../mod/profiles.php:718 -msgid "Religious Views:" -msgstr "Trúarskoðanir" - -#: ../../mod/profiles.php:719 -msgid "Public Keywords:" -msgstr "Opinber leitarorð:" - -#: ../../mod/profiles.php:720 -msgid "Private Keywords:" -msgstr "Einka leitarorð:" - -#: ../../mod/profiles.php:721 ../../include/profile_advanced.php:62 -msgid "Likes:" -msgstr "" - -#: ../../mod/profiles.php:722 ../../include/profile_advanced.php:64 -msgid "Dislikes:" -msgstr "" - -#: ../../mod/profiles.php:723 -msgid "Example: fishing photography software" -msgstr "Til dæmis: fishing photography software" - -#: ../../mod/profiles.php:724 -msgid "(Used for suggesting potential friends, can be seen by others)" -msgstr "(Notað til að stinga uppá mögulegum vinum, aðrir geta séð)" - -#: ../../mod/profiles.php:725 -msgid "(Used for searching profiles, never shown to others)" -msgstr "(Notað við leit að öðrum notendum, aldrei sýnt öðrum)" - -#: ../../mod/profiles.php:726 -msgid "Tell us about yourself..." -msgstr "Segðu okkur frá sjálfum þér..." - -#: ../../mod/profiles.php:727 -msgid "Hobbies/Interests" -msgstr "Áhugamál" - -#: ../../mod/profiles.php:728 -msgid "Contact information and Social Networks" -msgstr "Tengiliðaupplýsingar og samfélagsnet" - -#: ../../mod/profiles.php:729 -msgid "Musical interests" -msgstr "Tónlistarsmekkur" - -#: ../../mod/profiles.php:730 -msgid "Books, literature" -msgstr "Bækur, bókmenntir" - -#: ../../mod/profiles.php:731 -msgid "Television" -msgstr "Sjónvarp" - -#: ../../mod/profiles.php:732 -msgid "Film/dance/culture/entertainment" -msgstr "Kvikmyndir/dans/menning/afþreying" - -#: ../../mod/profiles.php:733 -msgid "Love/romance" -msgstr "Ást/rómantík" - -#: ../../mod/profiles.php:734 -msgid "Work/employment" -msgstr "Atvinna:" - -#: ../../mod/profiles.php:735 -msgid "School/education" -msgstr "Skóli/menntun" - -#: ../../mod/profiles.php:740 -msgid "" -"This is your public profile.
      It may " -"be visible to anybody using the internet." -msgstr "Þetta er opinber forsíða.
      Hún verður sjáanleg öðrum sem nota alnetið." - -#: ../../mod/profiles.php:803 -msgid "Edit/Manage Profiles" -msgstr "Sýsla með forsíður" - -#: ../../mod/profiles.php:804 ../../boot.php:1611 ../../boot.php:1637 -msgid "Change profile photo" -msgstr "Breyta forsíðu mynd" - -#: ../../mod/profiles.php:805 ../../boot.php:1612 -msgid "Create New Profile" -msgstr "Stofna nýja forsíðu" - -#: ../../mod/profiles.php:816 ../../boot.php:1622 -msgid "Profile Image" -msgstr "Forsíðu mynd" - -#: ../../mod/profiles.php:818 ../../boot.php:1625 -msgid "visible to everybody" -msgstr "Sýnilegt öllum" - -#: ../../mod/profiles.php:819 ../../boot.php:1626 -msgid "Edit visibility" -msgstr "Sýsla með sjáanleika" - -#: ../../mod/editpost.php:17 ../../mod/editpost.php:27 -msgid "Item not found" -msgstr "Hlutur fannst ekki" - -#: ../../mod/editpost.php:39 -msgid "Edit post" -msgstr "Breyta skilaboðum" - -#: ../../mod/editpost.php:111 ../../include/conversation.php:1092 -msgid "upload photo" -msgstr "Hlaða upp mynd" - -#: ../../mod/editpost.php:112 ../../include/conversation.php:1093 -msgid "Attach file" -msgstr "Bæta við skrá" - -#: ../../mod/editpost.php:113 ../../include/conversation.php:1094 -msgid "attach file" -msgstr "Hengja skrá við" - -#: ../../mod/editpost.php:115 ../../include/conversation.php:1096 -msgid "web link" -msgstr "vefhlekkur" - -#: ../../mod/editpost.php:116 ../../include/conversation.php:1097 -msgid "Insert video link" -msgstr "Setja inn myndbandshlekk" - -#: ../../mod/editpost.php:117 ../../include/conversation.php:1098 -msgid "video link" -msgstr "myndbandshlekkur" - -#: ../../mod/editpost.php:118 ../../include/conversation.php:1099 -msgid "Insert audio link" -msgstr "Setja inn hlekk á hljóðskrá" - -#: ../../mod/editpost.php:119 ../../include/conversation.php:1100 -msgid "audio link" -msgstr "hljóðhlekkur" - -#: ../../mod/editpost.php:120 ../../include/conversation.php:1101 -msgid "Set your location" -msgstr "Veldu staðsetningu þína" - -#: ../../mod/editpost.php:121 ../../include/conversation.php:1102 -msgid "set location" -msgstr "stilla staðsetningu" - -#: ../../mod/editpost.php:122 ../../include/conversation.php:1103 -msgid "Clear browser location" -msgstr "Hreinsa staðsetningu í vafra" - -#: ../../mod/editpost.php:123 ../../include/conversation.php:1104 -msgid "clear location" -msgstr "hreinsa staðsetningu" - -#: ../../mod/editpost.php:125 ../../include/conversation.php:1110 -msgid "Permission settings" -msgstr "Heimildar stillingar" - -#: ../../mod/editpost.php:133 ../../include/conversation.php:1119 -msgid "CC: email addresses" -msgstr "CC: tölvupóstfang" - -#: ../../mod/editpost.php:134 ../../include/conversation.php:1120 -msgid "Public post" -msgstr "Opinber færsla" - -#: ../../mod/editpost.php:137 ../../include/conversation.php:1106 -msgid "Set title" -msgstr "Setja titil" - -#: ../../mod/editpost.php:139 ../../include/conversation.php:1108 -msgid "Categories (comma-separated list)" -msgstr "" - -#: ../../mod/editpost.php:140 ../../include/conversation.php:1122 -msgid "Example: bob@example.com, mary@example.com" -msgstr "Dæmi: bob@example.com, mary@example.com" - -#: ../../mod/friendica.php:59 -msgid "This is Friendica, version" -msgstr "Þetta er Friendica útgáfa" - -#: ../../mod/friendica.php:60 -msgid "running at web location" -msgstr "Keyrir á slóð" - -#: ../../mod/friendica.php:62 -msgid "" -"Please visit Friendica.com to learn " -"more about the Friendica project." -msgstr "Á Friendica.com er hægt að fræðast nánar um Friendica verkefnið." - -#: ../../mod/friendica.php:64 -msgid "Bug reports and issues: please visit" -msgstr "Villu tilkynningar og vandamál: endilega skoða" - -#: ../../mod/friendica.php:65 -msgid "" -"Suggestions, praise, donations, etc. - please email \"Info\" at Friendica - " -"dot com" -msgstr "Uppástungur, lof, framlög og svo framvegis - sendið tölvupóst á \"Info\" hjá Friendica - punktur com" - -#: ../../mod/friendica.php:79 -msgid "Installed plugins/addons/apps:" -msgstr "" - -#: ../../mod/friendica.php:92 -msgid "No installed plugins/addons/apps" -msgstr "Engin uppsett eining/viðbót/forr" - -#: ../../mod/api.php:76 ../../mod/api.php:102 -msgid "Authorize application connection" -msgstr "Leyfa forriti að tengjast" - -#: ../../mod/api.php:77 -msgid "Return to your app and insert this Securty Code:" -msgstr "Farðu aftur í forritið þitt og settu þennan öryggiskóða þar" - -#: ../../mod/api.php:89 -msgid "Please login to continue." -msgstr "Skráðu þig inn til að halda áfram." - -#: ../../mod/api.php:104 -msgid "" -"Do you want to authorize this application to access your posts and contacts," -" and/or create new posts for you?" -msgstr "Vilt þú leyfa þessu forriti að hafa aðgang að færslum og tengiliðum, og/eða stofna nýjar færslur fyrir þig?" - -#: ../../mod/lockview.php:31 ../../mod/lockview.php:39 -msgid "Remote privacy information not available." -msgstr "Persónuverndar upplýsingar ekki fyrir hendi á fjarlægum vefþjón." - -#: ../../mod/lockview.php:48 -msgid "Visible to:" -msgstr "Sýnilegt eftirfarandi:" - -#: ../../mod/notes.php:44 ../../boot.php:2150 -msgid "Personal Notes" -msgstr "Persónulegar glósur" - -#: ../../mod/localtime.php:12 ../../include/bb2diaspora.php:148 -#: ../../include/event.php:11 -msgid "l F d, Y \\@ g:i A" -msgstr "" - -#: ../../mod/localtime.php:24 -msgid "Time Conversion" -msgstr "Tíma leiðréttir" - -#: ../../mod/localtime.php:26 -msgid "" -"Friendica provides this service for sharing events with other networks and " -"friends in unknown timezones." -msgstr "Friendica veitir þessa þjónustu til að deila atburðum milli neta og vina í óþekktum tímabeltum." - -#: ../../mod/localtime.php:30 -#, php-format -msgid "UTC time: %s" -msgstr "Máltími: %s" - -#: ../../mod/localtime.php:33 -#, php-format -msgid "Current timezone: %s" -msgstr "Núverandi tímabelti: %s" - -#: ../../mod/localtime.php:36 -#, php-format -msgid "Converted localtime: %s" -msgstr "Umbreyttur staðartími: %s" - -#: ../../mod/localtime.php:41 -msgid "Please select your timezone:" -msgstr "Veldu tímabeltið þitt:" - -#: ../../mod/poke.php:192 -msgid "Poke/Prod" -msgstr "" - -#: ../../mod/poke.php:193 -msgid "poke, prod or do other things to somebody" -msgstr "" - -#: ../../mod/poke.php:194 -msgid "Recipient" -msgstr "" - -#: ../../mod/poke.php:195 -msgid "Choose what you wish to do to recipient" -msgstr "" - -#: ../../mod/poke.php:198 -msgid "Make this post private" -msgstr "" - -#: ../../mod/invite.php:27 -msgid "Total invitation limit exceeded." -msgstr "" - -#: ../../mod/invite.php:49 -#, php-format -msgid "%s : Not a valid email address." -msgstr "%s : Ekki gilt póstfang" - -#: ../../mod/invite.php:73 -msgid "Please join us on Friendica" -msgstr "" - -#: ../../mod/invite.php:84 -msgid "Invitation limit exceeded. Please contact your site administrator." -msgstr "" - -#: ../../mod/invite.php:89 -#, php-format -msgid "%s : Message delivery failed." -msgstr "%s : Skilaboð komust ekki til skila." - -#: ../../mod/invite.php:93 -#, php-format -msgid "%d message sent." -msgid_plural "%d messages sent." -msgstr[0] "%d skilaboð send." -msgstr[1] "%d skilaboð send" - -#: ../../mod/invite.php:112 -msgid "You have no more invitations available" -msgstr "Þú hefur ekki fleiri boðskort." - -#: ../../mod/invite.php:120 -#, php-format -msgid "" -"Visit %s for a list of public sites that you can join. Friendica members on " -"other sites can all connect with each other, as well as with members of many" -" other social networks." -msgstr "" - -#: ../../mod/invite.php:122 -#, php-format -msgid "" -"To accept this invitation, please visit and register at %s or any other " -"public Friendica website." -msgstr "" - -#: ../../mod/invite.php:123 -#, php-format -msgid "" -"Friendica sites all inter-connect to create a huge privacy-enhanced social " -"web that is owned and controlled by its members. They can also connect with " -"many traditional social networks. See %s for a list of alternate Friendica " -"sites you can join." -msgstr "" - -#: ../../mod/invite.php:126 -msgid "" -"Our apologies. This system is not currently configured to connect with other" -" public sites or invite members." -msgstr "" - -#: ../../mod/invite.php:132 -msgid "Send invitations" -msgstr "Senda kynningar" - -#: ../../mod/invite.php:133 -msgid "Enter email addresses, one per line:" -msgstr "Póstföng, eitt í hverja línu:" - -#: ../../mod/invite.php:135 -msgid "" -"You are cordially invited to join me and other close friends on Friendica - " -"and help us to create a better social web." -msgstr "" - -#: ../../mod/invite.php:137 -msgid "You will need to supply this invitation code: $invite_code" -msgstr "Þú þarft að nota eftirfarandi boðskorta auðkenni: $invite_code" - -#: ../../mod/invite.php:137 -msgid "" -"Once you have registered, please connect with me via my profile page at:" -msgstr "Þegar þú hefur nýskráð þig, hafðu samband við mig gegnum síðuna mína á:" - -#: ../../mod/invite.php:139 -msgid "" -"For more information about the Friendica project and why we feel it is " -"important, please visit http://friendica.com" -msgstr "" - -#: ../../mod/photos.php:52 ../../boot.php:2129 -msgid "Photo Albums" -msgstr "Myndabækur" - -#: ../../mod/photos.php:60 ../../mod/photos.php:155 ../../mod/photos.php:1064 -#: ../../mod/photos.php:1187 ../../mod/photos.php:1210 -#: ../../mod/photos.php:1760 ../../mod/photos.php:1772 -#: ../../view/theme/diabook/theme.php:499 -msgid "Contact Photos" -msgstr "Myndir tengiliðs" - -#: ../../mod/photos.php:67 ../../mod/photos.php:1262 ../../mod/photos.php:1819 -msgid "Upload New Photos" -msgstr "Hlaða upp nýjum myndum" - -#: ../../mod/photos.php:144 -msgid "Contact information unavailable" -msgstr "Tengiliða upplýsingar ekki til" - -#: ../../mod/photos.php:165 -msgid "Album not found." -msgstr "Myndabók finnst ekki." - -#: ../../mod/photos.php:188 ../../mod/photos.php:200 ../../mod/photos.php:1204 -msgid "Delete Album" -msgstr "Fjarlægja myndabók" - -#: ../../mod/photos.php:198 -msgid "Do you really want to delete this photo album and all its photos?" -msgstr "" - -#: ../../mod/photos.php:278 ../../mod/photos.php:289 ../../mod/photos.php:1515 -msgid "Delete Photo" -msgstr "Fjarlægja mynd" - -#: ../../mod/photos.php:287 -msgid "Do you really want to delete this photo?" -msgstr "" - -#: ../../mod/photos.php:662 -#, php-format -msgid "%1$s was tagged in %2$s by %3$s" -msgstr "" - -#: ../../mod/photos.php:662 -msgid "a photo" -msgstr "mynd" - -#: ../../mod/photos.php:767 -msgid "Image exceeds size limit of " -msgstr "Mynd er yfir stærðamörkum" - -#: ../../mod/photos.php:775 -msgid "Image file is empty." -msgstr "Mynda skrá er tóm." - -#: ../../mod/photos.php:930 -msgid "No photos selected" -msgstr "Engar myndir valdar" - -#: ../../mod/photos.php:1094 -#, php-format -msgid "You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage." -msgstr "" - -#: ../../mod/photos.php:1129 -msgid "Upload Photos" -msgstr "Hlaða upp myndum" - -#: ../../mod/photos.php:1133 ../../mod/photos.php:1199 -msgid "New album name: " -msgstr "Nýtt nafn myndbókar:" - -#: ../../mod/photos.php:1134 -msgid "or existing album name: " -msgstr "eða fyrra nafn myndbókar:" - -#: ../../mod/photos.php:1135 -msgid "Do not show a status post for this upload" -msgstr "Ekki sýna færslu fyrir þessari upphölun" - -#: ../../mod/photos.php:1137 ../../mod/photos.php:1510 -msgid "Permissions" -msgstr "Aðgangar" - -#: ../../mod/photos.php:1148 -msgid "Private Photo" -msgstr "Einkamynd" - -#: ../../mod/photos.php:1149 -msgid "Public Photo" -msgstr "Opinber mynd" - -#: ../../mod/photos.php:1212 -msgid "Edit Album" -msgstr "Breyta myndbók" - -#: ../../mod/photos.php:1218 -msgid "Show Newest First" -msgstr "Birta nýjast fyrst" - -#: ../../mod/photos.php:1220 -msgid "Show Oldest First" -msgstr "Birta elsta fyrst" - -#: ../../mod/photos.php:1248 ../../mod/photos.php:1802 -msgid "View Photo" -msgstr "Skoða mynd" - -#: ../../mod/photos.php:1294 -msgid "Permission denied. Access to this item may be restricted." -msgstr "Aðgangi hafnað. Aðgangur að þessum hlut kann að vera skertur." - -#: ../../mod/photos.php:1296 -msgid "Photo not available" -msgstr "Mynd ekki til" - -#: ../../mod/photos.php:1352 -msgid "View photo" -msgstr "Birta mynd" - -#: ../../mod/photos.php:1352 -msgid "Edit photo" -msgstr "Breyta mynd" - -#: ../../mod/photos.php:1353 -msgid "Use as profile photo" -msgstr "Nota sem forsíðu mynd" - -#: ../../mod/photos.php:1378 -msgid "View Full Size" -msgstr "Skoða í fullri stærð" - -#: ../../mod/photos.php:1457 -msgid "Tags: " -msgstr "Merki:" - -#: ../../mod/photos.php:1460 -msgid "[Remove any tag]" -msgstr "[Fjarlægja öll merki]" - -#: ../../mod/photos.php:1500 -msgid "Rotate CW (right)" -msgstr "" - -#: ../../mod/photos.php:1501 -msgid "Rotate CCW (left)" -msgstr "" - -#: ../../mod/photos.php:1503 -msgid "New album name" -msgstr "Nýtt nafn myndbókar" - -#: ../../mod/photos.php:1506 -msgid "Caption" -msgstr "Yfirskrift" - -#: ../../mod/photos.php:1508 -msgid "Add a Tag" -msgstr "Bæta við merki" - -#: ../../mod/photos.php:1512 -msgid "" -"Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping" -msgstr "Til dæmis: @bob, @Barbara_Jensen, @jim@example.com, #Reykjavík #tjalda" - -#: ../../mod/photos.php:1521 -msgid "Private photo" -msgstr "Einkamynd" - -#: ../../mod/photos.php:1522 -msgid "Public photo" -msgstr "Opinber mynd" - -#: ../../mod/photos.php:1544 ../../include/conversation.php:1090 -msgid "Share" -msgstr "Deila" - -#: ../../mod/photos.php:1817 -msgid "Recent Photos" -msgstr "Nýlegar myndir" - -#: ../../mod/regmod.php:55 -msgid "Account approved." -msgstr "Notandi samþykktur." - -#: ../../mod/regmod.php:92 -#, php-format -msgid "Registration revoked for %s" -msgstr "Skráning afturköllurð vegna %s" - -#: ../../mod/regmod.php:104 -msgid "Please login." -msgstr "Skráðu yður inn." - -#: ../../mod/uimport.php:66 -msgid "Move account" -msgstr "" - -#: ../../mod/uimport.php:67 -msgid "You can import an account from another Friendica server." -msgstr "" - -#: ../../mod/uimport.php:68 -msgid "" -"You need to export your account from the old server and upload it here. We " -"will recreate your old account here with all your contacts. We will try also" -" to inform your friends that you moved here." -msgstr "" - -#: ../../mod/uimport.php:69 -msgid "" -"This feature is experimental. We can't import contacts from the OStatus " -"network (statusnet/identi.ca) or from Diaspora" -msgstr "" - -#: ../../mod/uimport.php:70 -msgid "Account file" -msgstr "" - -#: ../../mod/uimport.php:70 -msgid "" -"To export your account, go to \"Settings->Export your personal data\" and " -"select \"Export account\"" -msgstr "" - -#: ../../mod/attach.php:8 -msgid "Item not available." -msgstr "Atriði ekki í boði." - -#: ../../mod/attach.php:20 -msgid "Item was not found." -msgstr "Atriði fannst ekki" - -#: ../../boot.php:749 -msgid "Delete this item?" -msgstr "Eyða þessu atriði?" - -#: ../../boot.php:752 -msgid "show fewer" -msgstr "sýna færri" - -#: ../../boot.php:1122 -#, php-format -msgid "Update %s failed. See error logs." -msgstr "Uppfærsla á %s mistókst. Sjá villu skrá." - -#: ../../boot.php:1240 -msgid "Create a New Account" -msgstr "Stofna nýjan notanda" - -#: ../../boot.php:1265 ../../include/nav.php:73 -msgid "Logout" -msgstr "Útskrá" - -#: ../../boot.php:1268 -msgid "Nickname or Email address: " -msgstr "Gælunafn eða póstfang:" - -#: ../../boot.php:1269 -msgid "Password: " -msgstr "Aðgangsorð:" - -#: ../../boot.php:1270 -msgid "Remember me" -msgstr "" - -#: ../../boot.php:1273 -msgid "Or login using OpenID: " -msgstr "Eða auðkenna með OpenID:" - -#: ../../boot.php:1279 -msgid "Forgot your password?" -msgstr "Gleymt lykilorð?" - -#: ../../boot.php:1282 -msgid "Website Terms of Service" -msgstr "" - -#: ../../boot.php:1283 -msgid "terms of service" -msgstr "" - -#: ../../boot.php:1285 -msgid "Website Privacy Policy" -msgstr "" - -#: ../../boot.php:1286 -msgid "privacy policy" -msgstr "" - -#: ../../boot.php:1419 -msgid "Requested account is not available." -msgstr "" - -#: ../../boot.php:1501 ../../boot.php:1635 -#: ../../include/profile_advanced.php:84 -msgid "Edit profile" -msgstr "Breyta forsíðu" - -#: ../../boot.php:1600 -msgid "Message" -msgstr "" - -#: ../../boot.php:1606 ../../include/nav.php:175 -msgid "Profiles" -msgstr "Forsíður" - -#: ../../boot.php:1606 -msgid "Manage/edit profiles" -msgstr "Sýsla með forsíður" - -#: ../../boot.php:1706 -msgid "Network:" -msgstr "" - -#: ../../boot.php:1736 ../../boot.php:1822 -msgid "g A l F d" -msgstr "" - -#: ../../boot.php:1737 ../../boot.php:1823 -msgid "F d" -msgstr "" - -#: ../../boot.php:1782 ../../boot.php:1863 -msgid "[today]" -msgstr "[í dag]" - -#: ../../boot.php:1794 -msgid "Birthday Reminders" -msgstr "Afmælis áminningar" - -#: ../../boot.php:1795 -msgid "Birthdays this week:" -msgstr "Afmæli í þessari viku:" - -#: ../../boot.php:1856 -msgid "[No description]" -msgstr "[Engin lýsing]" - -#: ../../boot.php:1874 -msgid "Event Reminders" -msgstr "Atburða áminningar" - -#: ../../boot.php:1875 -msgid "Events this week:" -msgstr "Atburðir vikunnar:" - -#: ../../boot.php:2112 ../../include/nav.php:76 -msgid "Status" -msgstr "Staða" - -#: ../../boot.php:2115 -msgid "Status Messages and Posts" -msgstr "Stöðu skilaboð og færslur" - -#: ../../boot.php:2122 -msgid "Profile Details" -msgstr "Forsíðu upplýsingar" - -#: ../../boot.php:2133 ../../boot.php:2136 ../../include/nav.php:79 -msgid "Videos" -msgstr "" - -#: ../../boot.php:2146 -msgid "Events and Calendar" -msgstr "Atburðir og dagskrá" - -#: ../../boot.php:2153 -msgid "Only You Can See This" -msgstr "Aðeins þú sérð þetta" - -#: ../../object/Item.php:94 -msgid "This entry was edited" -msgstr "" - -#: ../../object/Item.php:208 -msgid "ignore thread" -msgstr "" - -#: ../../object/Item.php:209 -msgid "unignore thread" -msgstr "" - -#: ../../object/Item.php:210 -msgid "toggle ignore status" -msgstr "" - -#: ../../object/Item.php:213 -msgid "ignored" -msgstr "" - -#: ../../object/Item.php:316 ../../include/conversation.php:666 +#: include/conversation.php:767 object/Item.php:355 msgid "Categories:" msgstr "Flokkar:" -#: ../../object/Item.php:317 ../../include/conversation.php:667 +#: include/conversation.php:768 object/Item.php:356 msgid "Filed under:" msgstr "Skráð undir:" -#: ../../object/Item.php:329 -msgid "via" +#: include/conversation.php:775 mod/content.php:497 mod/content.php:923 +#: object/Item.php:381 +#, php-format +msgid "%s from %s" +msgstr "%s til %s" + +#: include/conversation.php:791 mod/content.php:513 +msgid "View in context" +msgstr "Birta í samhengi" + +#: include/conversation.php:793 include/conversation.php:1255 +#: mod/content.php:515 mod/content.php:948 mod/photos.php:1597 +#: mod/editpost.php:124 mod/wallmessage.php:156 mod/message.php:356 +#: mod/message.php:548 object/Item.php:406 +msgid "Please wait" +msgstr "Hinkraðu aðeins" + +#: include/conversation.php:872 +msgid "remove" +msgstr "fjarlægja" + +#: include/conversation.php:876 +msgid "Delete Selected Items" +msgstr "Eyða völdum færslum" + +#: include/conversation.php:964 +msgid "Follow Thread" +msgstr "Fylgja þræði" + +#: include/conversation.php:965 include/Contact.php:364 +msgid "View Status" +msgstr "Skoða stöðu" + +#: include/conversation.php:966 include/conversation.php:980 +#: include/Contact.php:310 include/Contact.php:323 include/Contact.php:365 +#: mod/dirfind.php:203 mod/directory.php:163 mod/match.php:71 +#: mod/allfriends.php:65 mod/suggest.php:82 +msgid "View Profile" +msgstr "Skoða forsíðu" + +#: include/conversation.php:967 include/Contact.php:366 +msgid "View Photos" +msgstr "Skoða myndir" + +#: include/conversation.php:968 include/Contact.php:367 +msgid "Network Posts" msgstr "" -#: ../../include/dbstructure.php:26 +#: include/conversation.php:969 include/Contact.php:368 +msgid "Edit Contact" +msgstr "Breyta tengilið" + +#: include/conversation.php:970 include/Contact.php:370 +msgid "Send PM" +msgstr "Senda einkaboð" + +#: include/conversation.php:974 include/Contact.php:371 +msgid "Poke" +msgstr "Pota" + +#: include/conversation.php:1088 +#, php-format +msgid "%s likes this." +msgstr "%s líkar þetta." + +#: include/conversation.php:1091 +#, php-format +msgid "%s doesn't like this." +msgstr "%s mislíkar þetta." + +#: include/conversation.php:1094 +#, php-format +msgid "%s attends." +msgstr "%s mætir." + +#: include/conversation.php:1097 +#, php-format +msgid "%s doesn't attend." +msgstr "%s mætir ekki." + +#: include/conversation.php:1100 +#, php-format +msgid "%s attends maybe." +msgstr "%s mætir kannski." + +#: include/conversation.php:1110 +msgid "and" +msgstr "og" + +#: include/conversation.php:1116 +#, php-format +msgid ", and %d other people" +msgstr ", og %d öðrum" + +#: include/conversation.php:1125 +#, php-format +msgid "%2$d people like this" +msgstr "" + +#: include/conversation.php:1126 +#, php-format +msgid "%s like this." +msgstr "" + +#: include/conversation.php:1129 +#, php-format +msgid "%2$d people don't like this" +msgstr "" + +#: include/conversation.php:1130 +#, php-format +msgid "%s don't like this." +msgstr "" + +#: include/conversation.php:1133 +#, php-format +msgid "%2$d people attend" +msgstr "" + +#: include/conversation.php:1134 +#, php-format +msgid "%s attend." +msgstr "" + +#: include/conversation.php:1137 +#, php-format +msgid "%2$d people don't attend" +msgstr "" + +#: include/conversation.php:1138 +#, php-format +msgid "%s don't attend." +msgstr "" + +#: include/conversation.php:1141 +#, php-format +msgid "%2$d people anttend maybe" +msgstr "" + +#: include/conversation.php:1142 +#, php-format +msgid "%s anttend maybe." +msgstr "" + +#: include/conversation.php:1181 include/conversation.php:1199 +msgid "Visible to everybody" +msgstr "Sjáanlegt öllum" + +#: include/conversation.php:1182 include/conversation.php:1200 +#: mod/wallmessage.php:127 mod/wallmessage.php:135 mod/message.php:291 +#: mod/message.php:299 mod/message.php:442 mod/message.php:450 +msgid "Please enter a link URL:" +msgstr "Sláðu inn slóð:" + +#: include/conversation.php:1183 include/conversation.php:1201 +msgid "Please enter a video link/URL:" +msgstr "Settu inn slóð á myndskeið:" + +#: include/conversation.php:1184 include/conversation.php:1202 +msgid "Please enter an audio link/URL:" +msgstr "Settu inn slóð á hljóðskrá:" + +#: include/conversation.php:1185 include/conversation.php:1203 +msgid "Tag term:" +msgstr "Merka með:" + +#: include/conversation.php:1186 include/conversation.php:1204 +#: mod/filer.php:30 +msgid "Save to Folder:" +msgstr "Vista í möppu:" + +#: include/conversation.php:1187 include/conversation.php:1205 +msgid "Where are you right now?" +msgstr "Hvar ert þú núna?" + +#: include/conversation.php:1188 +msgid "Delete item(s)?" +msgstr "Eyða atriði/atriðum?" + +#: include/conversation.php:1236 mod/photos.php:1596 +msgid "Share" +msgstr "Deila" + +#: include/conversation.php:1237 mod/editpost.php:110 mod/wallmessage.php:154 +#: mod/message.php:354 mod/message.php:545 +msgid "Upload photo" +msgstr "Hlaða upp mynd" + +#: include/conversation.php:1238 mod/editpost.php:111 +msgid "upload photo" +msgstr "Hlaða upp mynd" + +#: include/conversation.php:1239 mod/editpost.php:112 +msgid "Attach file" +msgstr "Bæta við skrá" + +#: include/conversation.php:1240 mod/editpost.php:113 +msgid "attach file" +msgstr "Hengja skrá við" + +#: include/conversation.php:1241 mod/editpost.php:114 mod/wallmessage.php:155 +#: mod/message.php:355 mod/message.php:546 +msgid "Insert web link" +msgstr "Setja inn vefslóð" + +#: include/conversation.php:1242 mod/editpost.php:115 +msgid "web link" +msgstr "vefslóð" + +#: include/conversation.php:1243 mod/editpost.php:116 +msgid "Insert video link" +msgstr "Setja inn slóð á myndskeið" + +#: include/conversation.php:1244 mod/editpost.php:117 +msgid "video link" +msgstr "slóð á myndskeið" + +#: include/conversation.php:1245 mod/editpost.php:118 +msgid "Insert audio link" +msgstr "Setja inn slóð á hljóðskrá" + +#: include/conversation.php:1246 mod/editpost.php:119 +msgid "audio link" +msgstr "slóð á hljóðskrá" + +#: include/conversation.php:1247 mod/editpost.php:120 +msgid "Set your location" +msgstr "Veldu staðsetningu þína" + +#: include/conversation.php:1248 mod/editpost.php:121 +msgid "set location" +msgstr "stilla staðsetningu" + +#: include/conversation.php:1249 mod/editpost.php:122 +msgid "Clear browser location" +msgstr "Hreinsa staðsetningu í vafra" + +#: include/conversation.php:1250 mod/editpost.php:123 +msgid "clear location" +msgstr "hreinsa staðsetningu" + +#: include/conversation.php:1252 mod/editpost.php:137 +msgid "Set title" +msgstr "Setja titil" + +#: include/conversation.php:1254 mod/editpost.php:139 +msgid "Categories (comma-separated list)" +msgstr "Flokkar (listi aðskilinn með kommum)" + +#: include/conversation.php:1256 mod/editpost.php:125 +msgid "Permission settings" +msgstr "Stillingar aðgangsheimilda" + +#: include/conversation.php:1257 mod/editpost.php:154 +msgid "permissions" +msgstr "aðgangsstýring" + +#: include/conversation.php:1265 mod/editpost.php:134 +msgid "Public post" +msgstr "Opinber færsla" + +#: include/conversation.php:1270 mod/events.php:505 mod/content.php:737 +#: mod/photos.php:1618 mod/photos.php:1666 mod/photos.php:1754 +#: mod/editpost.php:145 object/Item.php:729 +msgid "Preview" +msgstr "Forskoðun" + +#: include/conversation.php:1280 +msgid "Post to Groups" +msgstr "Senda á hópa" + +#: include/conversation.php:1281 +msgid "Post to Contacts" +msgstr "Senda á tengiliði" + +#: include/conversation.php:1282 +msgid "Private post" +msgstr "Einkafærsla" + +#: include/conversation.php:1287 include/identity.php:250 mod/editpost.php:152 +msgid "Message" +msgstr "Skilaboð" + +#: include/conversation.php:1288 mod/editpost.php:153 +msgid "Browser" +msgstr "Vafri" + +#: include/conversation.php:1443 +msgid "View all" +msgstr "Skoða allt" + +#: include/conversation.php:1465 +msgid "Like" +msgid_plural "Likes" +msgstr[0] "Líkar" +msgstr[1] "Líkar" + +#: include/conversation.php:1468 +msgid "Dislike" +msgid_plural "Dislikes" +msgstr[0] "Mislíkar" +msgstr[1] "Mislíkar" + +#: include/conversation.php:1474 +msgid "Not Attending" +msgid_plural "Not Attending" +msgstr[0] "Mæti ekki" +msgstr[1] "Mæta ekki" + +#: include/identity.php:42 +msgid "Requested account is not available." +msgstr "Umbeðin forsíða er ekki til." + +#: include/identity.php:51 mod/profile.php:21 +msgid "Requested profile is not available." +msgstr "Umbeðin forsíða ekki til." + +#: include/identity.php:95 include/identity.php:305 include/identity.php:686 +msgid "Edit profile" +msgstr "Breyta forsíðu" + +#: include/identity.php:245 +msgid "Atom feed" +msgstr "Atom fréttaveita" + +#: include/identity.php:276 include/nav.php:191 +msgid "Profiles" +msgstr "Forsíður" + +#: include/identity.php:276 +msgid "Manage/edit profiles" +msgstr "Sýsla með forsíður" + +#: include/identity.php:281 include/identity.php:307 mod/profiles.php:787 +msgid "Change profile photo" +msgstr "Breyta forsíðumynd" + +#: include/identity.php:282 mod/profiles.php:788 +msgid "Create New Profile" +msgstr "Stofna nýja forsíðu" + +#: include/identity.php:292 mod/profiles.php:777 +msgid "Profile Image" +msgstr "Forsíðumynd" + +#: include/identity.php:295 mod/profiles.php:779 +msgid "visible to everybody" +msgstr "sýnilegt öllum" + +#: include/identity.php:296 mod/profiles.php:684 mod/profiles.php:780 +msgid "Edit visibility" +msgstr "Sýsla með sýnileika" + +#: include/identity.php:319 mod/dirfind.php:223 mod/directory.php:174 +#: mod/match.php:84 mod/viewcontacts.php:105 mod/allfriends.php:79 +#: mod/cal.php:44 mod/videos.php:37 mod/photos.php:41 mod/contacts.php:51 +#: mod/contacts.php:948 mod/suggest.php:98 mod/hovercard.php:80 +#: mod/common.php:123 mod/network.php:517 +msgid "Forum" +msgstr "Spjallsvæði" + +#: include/identity.php:331 include/identity.php:614 mod/notifications.php:252 +#: mod/directory.php:147 +msgid "Gender:" +msgstr "Kyn:" + +#: include/identity.php:334 include/identity.php:634 mod/directory.php:149 +msgid "Status:" +msgstr "Staða:" + +#: include/identity.php:336 include/identity.php:645 mod/directory.php:151 +msgid "Homepage:" +msgstr "Heimasíða:" + +#: include/identity.php:338 include/identity.php:655 mod/notifications.php:248 +#: mod/directory.php:153 mod/contacts.php:626 +msgid "About:" +msgstr "Um:" + +#: include/identity.php:420 mod/contacts.php:50 +msgid "Network:" +msgstr "Netkerfi:" + +#: include/identity.php:449 include/identity.php:533 +msgid "g A l F d" +msgstr "" + +#: include/identity.php:450 include/identity.php:534 +msgid "F d" +msgstr "" + +#: include/identity.php:495 include/identity.php:580 +msgid "[today]" +msgstr "[í dag]" + +#: include/identity.php:507 +msgid "Birthday Reminders" +msgstr "Afmælisáminningar" + +#: include/identity.php:508 +msgid "Birthdays this week:" +msgstr "Afmæli í þessari viku:" + +#: include/identity.php:567 +msgid "[No description]" +msgstr "[Engin lýsing]" + +#: include/identity.php:591 +msgid "Event Reminders" +msgstr "Atburðaáminningar" + +#: include/identity.php:592 +msgid "Events this week:" +msgstr "Atburðir vikunnar:" + +#: include/identity.php:603 include/identity.php:689 include/identity.php:720 +#: include/nav.php:79 mod/profperm.php:104 mod/contacts.php:834 +#: mod/newmember.php:32 view/theme/frio/theme.php:247 +#: view/theme/diabook/theme.php:124 +msgid "Profile" +msgstr "Forsíða" + +#: include/identity.php:612 mod/settings.php:1229 +msgid "Full Name:" +msgstr "Fullt nafn:" + +#: include/identity.php:619 +msgid "j F, Y" +msgstr "" + +#: include/identity.php:620 +msgid "j F" +msgstr "" + +#: include/identity.php:631 +msgid "Age:" +msgstr "Aldur:" + +#: include/identity.php:640 +#, php-format +msgid "for %1$d %2$s" +msgstr "" + +#: include/identity.php:643 mod/profiles.php:703 +msgid "Sexual Preference:" +msgstr "Kynhneigð:" + +#: include/identity.php:647 mod/profiles.php:729 +msgid "Hometown:" +msgstr "Heimabær:" + +#: include/identity.php:649 mod/notifications.php:250 mod/contacts.php:628 +#: mod/follow.php:134 +msgid "Tags:" +msgstr "Merki:" + +#: include/identity.php:651 mod/profiles.php:730 +msgid "Political Views:" +msgstr "Stórnmálaskoðanir:" + +#: include/identity.php:653 +msgid "Religion:" +msgstr "Trúarskoðanir:" + +#: include/identity.php:657 +msgid "Hobbies/Interests:" +msgstr "Áhugamál/Áhugasvið:" + +#: include/identity.php:659 mod/profiles.php:734 +msgid "Likes:" +msgstr "Líkar:" + +#: include/identity.php:661 mod/profiles.php:735 +msgid "Dislikes:" +msgstr "Mislíkar:" + +#: include/identity.php:664 +msgid "Contact information and Social Networks:" +msgstr "Tengiliðaupplýsingar og samfélagsnet:" + +#: include/identity.php:666 +msgid "Musical interests:" +msgstr "Tónlistaráhugi:" + +#: include/identity.php:668 +msgid "Books, literature:" +msgstr "Bækur, bókmenntir:" + +#: include/identity.php:670 +msgid "Television:" +msgstr "Sjónvarp:" + +#: include/identity.php:672 +msgid "Film/dance/culture/entertainment:" +msgstr "Kvikmyndir/dans/menning/afþreying:" + +#: include/identity.php:674 +msgid "Love/Romance:" +msgstr "Ást/rómantík:" + +#: include/identity.php:676 +msgid "Work/employment:" +msgstr "Atvinna:" + +#: include/identity.php:678 +msgid "School/education:" +msgstr "Skóli/menntun:" + +#: include/identity.php:682 +msgid "Forums:" +msgstr "Spjallsvæði:" + +#: include/identity.php:690 mod/events.php:508 +msgid "Basic" +msgstr "Einfalt" + +#: include/identity.php:691 mod/events.php:509 mod/admin.php:928 +#: mod/contacts.php:863 +msgid "Advanced" +msgstr "Flóknari" + +#: include/identity.php:712 include/nav.php:78 mod/contacts.php:631 +#: mod/contacts.php:826 view/theme/frio/theme.php:246 +msgid "Status" +msgstr "Staða" + +#: include/identity.php:715 mod/contacts.php:829 mod/follow.php:143 +msgid "Status Messages and Posts" +msgstr "Stöðu skilaboð og færslur" + +#: include/identity.php:723 mod/contacts.php:837 +msgid "Profile Details" +msgstr "Forsíðu upplýsingar" + +#: include/identity.php:728 include/nav.php:80 mod/fbrowser.php:32 +#: view/theme/frio/theme.php:248 view/theme/diabook/theme.php:126 +msgid "Photos" +msgstr "Myndir" + +#: include/identity.php:731 mod/photos.php:99 +msgid "Photo Albums" +msgstr "Myndabækur" + +#: include/identity.php:736 include/identity.php:739 include/nav.php:81 +#: view/theme/frio/theme.php:249 +msgid "Videos" +msgstr "Myndskeið" + +#: include/identity.php:748 include/identity.php:759 include/nav.php:82 +#: include/nav.php:146 mod/events.php:379 mod/cal.php:278 +#: view/theme/frio/theme.php:250 view/theme/frio/theme.php:254 +#: view/theme/diabook/theme.php:127 +msgid "Events" +msgstr "Atburðir" + +#: include/identity.php:751 include/identity.php:762 include/nav.php:146 +#: view/theme/frio/theme.php:254 +msgid "Events and Calendar" +msgstr "Atburðir og dagskrá" + +#: include/identity.php:770 mod/notes.php:46 +msgid "Personal Notes" +msgstr "Persónulegar glósur" + +#: include/identity.php:773 +msgid "Only You Can See This" +msgstr "Aðeins þú sérð þetta" + +#: include/Scrape.php:656 +msgid " on Last.fm" +msgstr " á Last.fm" + +#: include/follow.php:77 mod/dfrn_request.php:506 +msgid "Disallowed profile URL." +msgstr "Óleyfileg forsíðu slóð." + +#: include/follow.php:82 +msgid "Connect URL missing." +msgstr "Tengislóð vantar." + +#: include/follow.php:109 +msgid "" +"This site is not configured to allow communications with other networks." +msgstr "Þessi vefur er ekki uppsettur til að leyfa samskipti við önnur samfélagsnet." + +#: include/follow.php:110 include/follow.php:130 +msgid "No compatible communication protocols or feeds were discovered." +msgstr "Engir samhæfðir samskiptastaðlar né fréttastraumar fundust." + +#: include/follow.php:128 +msgid "The profile address specified does not provide adequate information." +msgstr "Uppgefin forsíðuslóð inniheldur ekki nægilegar upplýsingar." + +#: include/follow.php:132 +msgid "An author or name was not found." +msgstr "Höfundur eða nafn fannst ekki." + +#: include/follow.php:134 +msgid "No browser URL could be matched to this address." +msgstr "Engin vefslóð passaði við þetta vistfang." + +#: include/follow.php:136 +msgid "" +"Unable to match @-style Identity Address with a known protocol or email " +"contact." +msgstr "" + +#: include/follow.php:137 +msgid "Use mailto: in front of address to force email check." +msgstr "" + +#: include/follow.php:143 +msgid "" +"The profile address specified belongs to a network which has been disabled " +"on this site." +msgstr "Þessi forsíðu slóð tilheyrir neti sem er bannað á þessum vef." + +#: include/follow.php:153 +msgid "" +"Limited profile. This person will be unable to receive direct/personal " +"notifications from you." +msgstr "Takmörkuð forsíða. Þessi tengiliður mun ekki getað tekið á móti beinum/einka tilkynningum frá þér." + +#: include/follow.php:254 +msgid "Unable to retrieve contact information." +msgstr "Ekki hægt að sækja tengiliðs upplýsingar." + +#: include/follow.php:287 +msgid "following" +msgstr "fylgist með" + +#: include/Contact.php:119 +msgid "stopped following" +msgstr "hætt að fylgja" + +#: include/Contact.php:369 +msgid "Drop Contact" +msgstr "Henda tengilið" + +#: include/oembed.php:229 +msgid "Embedded content" +msgstr "Innbyggt efni" + +#: include/oembed.php:238 +msgid "Embedding disabled" +msgstr "Innfelling ekki leyfð" + +#: include/bbcode.php:349 include/bbcode.php:1054 include/bbcode.php:1055 +msgid "Image/photo" +msgstr "Mynd" + +#: include/bbcode.php:466 +#, php-format +msgid "%2$s %3$s" +msgstr "%2$s %3$s" + +#: include/bbcode.php:1014 include/bbcode.php:1034 +msgid "$1 wrote:" +msgstr "$1 skrifaði:" + +#: include/bbcode.php:1063 include/bbcode.php:1064 +msgid "Encrypted content" +msgstr "Dulritað efni" + +#: include/contact_selectors.php:32 +msgid "Unknown | Not categorised" +msgstr "Óþekkt | Ekki flokkað" + +#: include/contact_selectors.php:33 +msgid "Block immediately" +msgstr "Banna samstundis" + +#: include/contact_selectors.php:34 +msgid "Shady, spammer, self-marketer" +msgstr "Grunsamlegur, ruslsendari, auglýsandi" + +#: include/contact_selectors.php:35 +msgid "Known to me, but no opinion" +msgstr "Ég þekki þetta, en hef ekki skoðun á" + +#: include/contact_selectors.php:36 +msgid "OK, probably harmless" +msgstr "Í lagi, væntanlega meinlaus" + +#: include/contact_selectors.php:37 +msgid "Reputable, has my trust" +msgstr "Gott orðspor, ég treysti þessu" + +#: include/contact_selectors.php:56 mod/admin.php:859 +msgid "Frequently" +msgstr "Oft" + +#: include/contact_selectors.php:57 mod/admin.php:860 +msgid "Hourly" +msgstr "Klukkustundar fresti" + +#: include/contact_selectors.php:58 mod/admin.php:861 +msgid "Twice daily" +msgstr "Tvisvar á dag" + +#: include/contact_selectors.php:59 mod/admin.php:862 +msgid "Daily" +msgstr "Daglega" + +#: include/contact_selectors.php:60 +msgid "Weekly" +msgstr "Vikulega" + +#: include/contact_selectors.php:61 +msgid "Monthly" +msgstr "Mánaðarlega" + +#: include/contact_selectors.php:76 mod/dfrn_request.php:866 +msgid "Friendica" +msgstr "Friendica" + +#: include/contact_selectors.php:77 +msgid "OStatus" +msgstr "OStatus" + +#: include/contact_selectors.php:78 +msgid "RSS/Atom" +msgstr "RSS/Atom" + +#: include/contact_selectors.php:79 include/contact_selectors.php:86 +#: mod/admin.php:1371 mod/admin.php:1384 mod/admin.php:1396 mod/admin.php:1414 +msgid "Email" +msgstr "Póstfang" + +#: include/contact_selectors.php:80 mod/dfrn_request.php:868 +#: mod/settings.php:827 +msgid "Diaspora" +msgstr "Diaspora" + +#: include/contact_selectors.php:81 +msgid "Facebook" +msgstr "Facebook" + +#: include/contact_selectors.php:82 +msgid "Zot!" +msgstr "Zot!" + +#: include/contact_selectors.php:83 +msgid "LinkedIn" +msgstr "LinkedIn" + +#: include/contact_selectors.php:84 +msgid "XMPP/IM" +msgstr "XMPP/IM" + +#: include/contact_selectors.php:85 +msgid "MySpace" +msgstr "MySpace" + +#: include/contact_selectors.php:87 +msgid "Google+" +msgstr "Google+" + +#: include/contact_selectors.php:88 +msgid "pump.io" +msgstr "pump.io" + +#: include/contact_selectors.php:89 +msgid "Twitter" +msgstr "Twitter" + +#: include/contact_selectors.php:90 +msgid "Diaspora Connector" +msgstr "Diaspora tenging" + +#: include/contact_selectors.php:91 +msgid "GNU Social" +msgstr "GNU Social" + +#: include/contact_selectors.php:92 +msgid "App.net" +msgstr "App.net" + +#: include/contact_selectors.php:103 +msgid "Hubzilla/Redmatrix" +msgstr "Hubzilla/Redmatrix" + +#: include/dbstructure.php:26 #, php-format msgid "" "\n" @@ -5704,1382 +2335,184 @@ msgid "" "\t\t\tfriendica developer if you can not help me on your own. My database might be invalid." msgstr "" -#: ../../include/dbstructure.php:31 +#: include/dbstructure.php:31 #, php-format msgid "" "The error message is\n" "[pre]%s[/pre]" msgstr "" -#: ../../include/dbstructure.php:162 +#: include/dbstructure.php:153 msgid "Errors encountered creating database tables." msgstr "Villur komu upp við að stofna töflur í gagnagrunn." -#: ../../include/dbstructure.php:220 +#: include/dbstructure.php:230 msgid "Errors encountered performing database changes." msgstr "" -#: ../../include/auth.php:38 +#: include/auth.php:45 msgid "Logged out." -msgstr "Útskráður" +msgstr "Skráður út." -#: ../../include/auth.php:128 ../../include/user.php:67 +#: include/auth.php:116 include/auth.php:178 mod/openid.php:100 +msgid "Login failed." +msgstr "Innskráning mistókst." + +#: include/auth.php:132 include/user.php:75 msgid "" "We encountered a problem while logging in with the OpenID you provided. " "Please check the correct spelling of the ID." msgstr "" -#: ../../include/auth.php:128 ../../include/user.php:67 +#: include/auth.php:132 include/user.php:75 msgid "The error message was:" -msgstr "" +msgstr "Villumeldingin var:" -#: ../../include/contact_widgets.php:6 -msgid "Add New Contact" -msgstr "Bæta við tengilið" +#: include/network.php:913 +msgid "view full size" +msgstr "Skoða í fullri stærð" -#: ../../include/contact_widgets.php:7 -msgid "Enter address or web location" -msgstr "Settu inn slóð" - -#: ../../include/contact_widgets.php:8 -msgid "Example: bob@example.com, http://example.com/barbara" -msgstr "Dæmi: gudmundur@simnet.is, http://simnet.is/gudmundur" - -#: ../../include/contact_widgets.php:24 -#, php-format -msgid "%d invitation available" -msgid_plural "%d invitations available" -msgstr[0] "%d boðskort í boði" -msgstr[1] "%d boðskort í boði" - -#: ../../include/contact_widgets.php:30 -msgid "Find People" -msgstr "Finna fólk" - -#: ../../include/contact_widgets.php:31 -msgid "Enter name or interest" -msgstr "Settu inn nafn eða áhugamál" - -#: ../../include/contact_widgets.php:32 -msgid "Connect/Follow" -msgstr "Tengjast/fylgja" - -#: ../../include/contact_widgets.php:33 -msgid "Examples: Robert Morgenstein, Fishing" -msgstr "Dæmi: Jón Jónsson, Veiði" - -#: ../../include/contact_widgets.php:36 ../../view/theme/diabook/theme.php:526 -msgid "Similar Interests" -msgstr "Svipuð áhugamál" - -#: ../../include/contact_widgets.php:37 -msgid "Random Profile" -msgstr "" - -#: ../../include/contact_widgets.php:38 ../../view/theme/diabook/theme.php:528 -msgid "Invite Friends" -msgstr "Bjóða vinum aðgang" - -#: ../../include/contact_widgets.php:71 -msgid "Networks" -msgstr "Net" - -#: ../../include/contact_widgets.php:74 -msgid "All Networks" -msgstr "Öll net" - -#: ../../include/contact_widgets.php:104 ../../include/features.php:60 -msgid "Saved Folders" -msgstr "" - -#: ../../include/contact_widgets.php:107 ../../include/contact_widgets.php:139 -msgid "Everything" -msgstr "" - -#: ../../include/contact_widgets.php:136 -msgid "Categories" -msgstr "" - -#: ../../include/features.php:23 -msgid "General Features" -msgstr "" - -#: ../../include/features.php:25 -msgid "Multiple Profiles" -msgstr "" - -#: ../../include/features.php:25 -msgid "Ability to create multiple profiles" -msgstr "" - -#: ../../include/features.php:30 -msgid "Post Composition Features" -msgstr "" - -#: ../../include/features.php:31 -msgid "Richtext Editor" -msgstr "" - -#: ../../include/features.php:31 -msgid "Enable richtext editor" -msgstr "" - -#: ../../include/features.php:32 -msgid "Post Preview" -msgstr "" - -#: ../../include/features.php:32 -msgid "Allow previewing posts and comments before publishing them" -msgstr "" - -#: ../../include/features.php:33 -msgid "Auto-mention Forums" -msgstr "" - -#: ../../include/features.php:33 -msgid "" -"Add/remove mention when a fourm page is selected/deselected in ACL window." -msgstr "" - -#: ../../include/features.php:38 -msgid "Network Sidebar Widgets" -msgstr "" - -#: ../../include/features.php:39 -msgid "Search by Date" -msgstr "" - -#: ../../include/features.php:39 -msgid "Ability to select posts by date ranges" -msgstr "" - -#: ../../include/features.php:40 -msgid "Group Filter" -msgstr "" - -#: ../../include/features.php:40 -msgid "Enable widget to display Network posts only from selected group" -msgstr "" - -#: ../../include/features.php:41 -msgid "Network Filter" -msgstr "" - -#: ../../include/features.php:41 -msgid "Enable widget to display Network posts only from selected network" -msgstr "" - -#: ../../include/features.php:42 -msgid "Save search terms for re-use" -msgstr "" - -#: ../../include/features.php:47 -msgid "Network Tabs" -msgstr "" - -#: ../../include/features.php:48 -msgid "Network Personal Tab" -msgstr "" - -#: ../../include/features.php:48 -msgid "Enable tab to display only Network posts that you've interacted on" -msgstr "" - -#: ../../include/features.php:49 -msgid "Network New Tab" -msgstr "" - -#: ../../include/features.php:49 -msgid "Enable tab to display only new Network posts (from the last 12 hours)" -msgstr "" - -#: ../../include/features.php:50 -msgid "Network Shared Links Tab" -msgstr "" - -#: ../../include/features.php:50 -msgid "Enable tab to display only Network posts with links in them" -msgstr "" - -#: ../../include/features.php:55 -msgid "Post/Comment Tools" -msgstr "" - -#: ../../include/features.php:56 -msgid "Multiple Deletion" -msgstr "" - -#: ../../include/features.php:56 -msgid "Select and delete multiple posts/comments at once" -msgstr "" - -#: ../../include/features.php:57 -msgid "Edit Sent Posts" -msgstr "" - -#: ../../include/features.php:57 -msgid "Edit and correct posts and comments after sending" -msgstr "" - -#: ../../include/features.php:58 -msgid "Tagging" -msgstr "" - -#: ../../include/features.php:58 -msgid "Ability to tag existing posts" -msgstr "" - -#: ../../include/features.php:59 -msgid "Post Categories" -msgstr "" - -#: ../../include/features.php:59 -msgid "Add categories to your posts" -msgstr "" - -#: ../../include/features.php:60 -msgid "Ability to file posts under folders" -msgstr "" - -#: ../../include/features.php:61 -msgid "Dislike Posts" -msgstr "" - -#: ../../include/features.php:61 -msgid "Ability to dislike posts/comments" -msgstr "" - -#: ../../include/features.php:62 -msgid "Star Posts" -msgstr "" - -#: ../../include/features.php:62 -msgid "Ability to mark special posts with a star indicator" -msgstr "" - -#: ../../include/features.php:63 -msgid "Mute Post Notifications" -msgstr "" - -#: ../../include/features.php:63 -msgid "Ability to mute notifications for a thread" -msgstr "" - -#: ../../include/follow.php:32 -msgid "Connect URL missing." -msgstr "Tengi slóð vantar." - -#: ../../include/follow.php:59 -msgid "" -"This site is not configured to allow communications with other networks." -msgstr "Þessi vefur er ekki uppsettur til að leyfa samskipti við önnur samfélagsnet." - -#: ../../include/follow.php:60 ../../include/follow.php:80 -msgid "No compatible communication protocols or feeds were discovered." -msgstr "Enginn samhæfur samskipta staðall né straumar fundust." - -#: ../../include/follow.php:78 -msgid "The profile address specified does not provide adequate information." -msgstr "Uppgefin forsíðu slóð eru ekki næganlegar upplýsingar." - -#: ../../include/follow.php:82 -msgid "An author or name was not found." -msgstr "Höfundur eða nafn fannst ekki." - -#: ../../include/follow.php:84 -msgid "No browser URL could be matched to this address." -msgstr "Engin vefslóð passaði við þessa slóð. " - -#: ../../include/follow.php:86 -msgid "" -"Unable to match @-style Identity Address with a known protocol or email " -"contact." -msgstr "" - -#: ../../include/follow.php:87 -msgid "Use mailto: in front of address to force email check." -msgstr "" - -#: ../../include/follow.php:93 -msgid "" -"The profile address specified belongs to a network which has been disabled " -"on this site." -msgstr "Þessi forsíðu slóð tilheyrir neti sem er bannað á þessum vef." - -#: ../../include/follow.php:103 -msgid "" -"Limited profile. This person will be unable to receive direct/personal " -"notifications from you." -msgstr "Takmörkuð forsíða. Þessi tengiliður mun ekki getað tekið á móti beinum/einka tilkynningum frá þér." - -#: ../../include/follow.php:205 -msgid "Unable to retrieve contact information." -msgstr "Ekki hægt að sækja tengiliðs upplýsingar." - -#: ../../include/follow.php:258 -msgid "following" -msgstr "fylgist með" - -#: ../../include/group.php:25 +#: include/group.php:25 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 "Hóp sem var eytt hefur verið endurlífgaður. Færslur sem þegar voru til geta mögulega farið á hópinn og framtíðar meðlimir. Ef þetta er ekki það sem þú vilt, þá þarftu að búa til nýjan hóp með öðru nafni." -#: ../../include/group.php:207 +#: include/group.php:209 msgid "Default privacy group for new contacts" msgstr "" -#: ../../include/group.php:226 +#: include/group.php:242 msgid "Everybody" msgstr "Allir" -#: ../../include/group.php:249 +#: include/group.php:265 msgid "edit" msgstr "breyta" -#: ../../include/group.php:271 +#: include/group.php:286 mod/newmember.php:61 +msgid "Groups" +msgstr "Hópar" + +#: include/group.php:288 +msgid "Edit groups" +msgstr "Breyta hópum" + +#: include/group.php:290 msgid "Edit group" msgstr "Breyta hóp" -#: ../../include/group.php:272 +#: include/group.php:291 msgid "Create a new group" msgstr "Stofna nýjan hóp" -#: ../../include/group.php:273 +#: include/group.php:292 mod/group.php:94 mod/group.php:178 +msgid "Group Name: " +msgstr "Nafn hóps: " + +#: include/group.php:294 msgid "Contacts not in any group" msgstr "Tengiliðir ekki í neinum hópum" -#: ../../include/datetime.php:43 ../../include/datetime.php:45 -msgid "Miscellaneous" -msgstr "Ýmislegt" +#: include/group.php:296 mod/network.php:201 +msgid "add" +msgstr "bæta við" -#: ../../include/datetime.php:153 ../../include/datetime.php:290 -msgid "year" -msgstr "ár" +#: include/Photo.php:996 include/Photo.php:1011 include/Photo.php:1018 +#: include/Photo.php:1040 include/message.php:145 mod/wall_upload.php:218 +#: mod/wall_upload.php:232 mod/wall_upload.php:239 mod/item.php:472 +msgid "Wall Photos" +msgstr "Veggmyndir" -#: ../../include/datetime.php:158 ../../include/datetime.php:291 -msgid "month" -msgstr "mánuður" - -#: ../../include/datetime.php:163 ../../include/datetime.php:293 -msgid "day" -msgstr "dagur" - -#: ../../include/datetime.php:276 -msgid "never" -msgstr "aldrei" - -#: ../../include/datetime.php:282 -msgid "less than a second ago" -msgstr "fyrir minna en sekúndu" - -#: ../../include/datetime.php:290 -msgid "years" -msgstr "ár" - -#: ../../include/datetime.php:291 -msgid "months" -msgstr "mánuðir" - -#: ../../include/datetime.php:292 -msgid "week" -msgstr "vika" - -#: ../../include/datetime.php:292 -msgid "weeks" -msgstr "vikur" - -#: ../../include/datetime.php:293 -msgid "days" -msgstr "dagar" - -#: ../../include/datetime.php:294 -msgid "hour" -msgstr "klukkustund" - -#: ../../include/datetime.php:294 -msgid "hours" -msgstr "klukkustundir" - -#: ../../include/datetime.php:295 -msgid "minute" -msgstr "mínúta" - -#: ../../include/datetime.php:295 -msgid "minutes" -msgstr "mínútur" - -#: ../../include/datetime.php:296 -msgid "second" -msgstr "sekúnda" - -#: ../../include/datetime.php:296 -msgid "seconds" -msgstr "sekúndur" - -#: ../../include/datetime.php:305 -#, php-format -msgid "%1$d %2$s ago" -msgstr "" - -#: ../../include/datetime.php:477 ../../include/items.php:2211 -#, php-format -msgid "%s's birthday" -msgstr "" - -#: ../../include/datetime.php:478 ../../include/items.php:2212 -#, php-format -msgid "Happy Birthday %s" -msgstr "" - -#: ../../include/acl_selectors.php:333 -msgid "Visible to everybody" -msgstr "Sjáanlegt öllum" - -#: ../../include/acl_selectors.php:334 ../../view/theme/diabook/config.php:142 -#: ../../view/theme/diabook/theme.php:621 -msgid "show" -msgstr "sýna" - -#: ../../include/acl_selectors.php:335 ../../view/theme/diabook/config.php:142 -#: ../../view/theme/diabook/theme.php:621 -msgid "don't show" -msgstr "fela" - -#: ../../include/message.php:15 ../../include/message.php:172 -msgid "[no subject]" -msgstr "[ekkert efni]" - -#: ../../include/Contact.php:115 -msgid "stopped following" -msgstr "hætt að fylgja" - -#: ../../include/Contact.php:228 ../../include/conversation.php:882 -msgid "Poke" -msgstr "" - -#: ../../include/Contact.php:229 ../../include/conversation.php:876 -msgid "View Status" -msgstr "" - -#: ../../include/Contact.php:230 ../../include/conversation.php:877 -msgid "View Profile" -msgstr "" - -#: ../../include/Contact.php:231 ../../include/conversation.php:878 -msgid "View Photos" -msgstr "" - -#: ../../include/Contact.php:232 ../../include/Contact.php:255 -#: ../../include/conversation.php:879 -msgid "Network Posts" -msgstr "" - -#: ../../include/Contact.php:233 ../../include/Contact.php:255 -#: ../../include/conversation.php:880 -msgid "Edit Contact" -msgstr "" - -#: ../../include/Contact.php:234 -msgid "Drop Contact" -msgstr "Henda tengilið" - -#: ../../include/Contact.php:235 ../../include/Contact.php:255 -#: ../../include/conversation.php:881 -msgid "Send PM" -msgstr "Senda einkaboð" - -#: ../../include/security.php:22 -msgid "Welcome " -msgstr "Velkomin(n)" - -#: ../../include/security.php:23 -msgid "Please upload a profile photo." -msgstr "Vinsamlegast hlaðið inn forsíðu mynd." - -#: ../../include/security.php:26 -msgid "Welcome back " -msgstr "Velkomin(n) aftur" - -#: ../../include/security.php:366 -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/conversation.php:118 ../../include/conversation.php:246 -#: ../../include/text.php:1966 ../../view/theme/diabook/theme.php:463 -msgid "event" -msgstr "atburður" - -#: ../../include/conversation.php:207 -#, php-format -msgid "%1$s poked %2$s" -msgstr "" - -#: ../../include/conversation.php:211 ../../include/text.php:1005 -msgid "poked" -msgstr "" - -#: ../../include/conversation.php:291 -msgid "post/item" -msgstr "" - -#: ../../include/conversation.php:292 -#, php-format -msgid "%1$s marked %2$s's %3$s as favorite" -msgstr "" - -#: ../../include/conversation.php:772 -msgid "remove" -msgstr "" - -#: ../../include/conversation.php:776 -msgid "Delete Selected Items" -msgstr "Eyða völdum færslum" - -#: ../../include/conversation.php:875 -msgid "Follow Thread" -msgstr "" - -#: ../../include/conversation.php:944 -#, php-format -msgid "%s likes this." -msgstr "%s líkar þetta." - -#: ../../include/conversation.php:944 -#, php-format -msgid "%s doesn't like this." -msgstr "%s mislíkar þetta." - -#: ../../include/conversation.php:949 -#, php-format -msgid "%2$d people like this" -msgstr "" - -#: ../../include/conversation.php:952 -#, php-format -msgid "%2$d people don't like this" -msgstr "" - -#: ../../include/conversation.php:966 -msgid "and" -msgstr "og" - -#: ../../include/conversation.php:972 -#, php-format -msgid ", and %d other people" -msgstr ", og %d öðrum" - -#: ../../include/conversation.php:974 -#, php-format -msgid "%s like this." -msgstr "%s líkar þetta." - -#: ../../include/conversation.php:974 -#, php-format -msgid "%s don't like this." -msgstr "%s mislíkar þetta." - -#: ../../include/conversation.php:1001 ../../include/conversation.php:1019 -msgid "Visible to everybody" -msgstr "Sjáanlegt öllum" - -#: ../../include/conversation.php:1003 ../../include/conversation.php:1021 -msgid "Please enter a video link/URL:" -msgstr "Settu inn myndbandshlekkur:" - -#: ../../include/conversation.php:1004 ../../include/conversation.php:1022 -msgid "Please enter an audio link/URL:" -msgstr "Settu inn hlekk á hljóðskrá:" - -#: ../../include/conversation.php:1005 ../../include/conversation.php:1023 -msgid "Tag term:" -msgstr "Merka með:" - -#: ../../include/conversation.php:1007 ../../include/conversation.php:1025 -msgid "Where are you right now?" -msgstr "Hvar ert þú núna?" - -#: ../../include/conversation.php:1008 -msgid "Delete item(s)?" -msgstr "" - -#: ../../include/conversation.php:1051 -msgid "Post to Email" -msgstr "Senda skilaboð á tölvupóst" - -#: ../../include/conversation.php:1056 -#, php-format -msgid "Connectors disabled, since \"%s\" is enabled." -msgstr "" - -#: ../../include/conversation.php:1111 -msgid "permissions" -msgstr "aðgangsstýring" - -#: ../../include/conversation.php:1135 -msgid "Post to Groups" -msgstr "" - -#: ../../include/conversation.php:1136 -msgid "Post to Contacts" -msgstr "" - -#: ../../include/conversation.php:1137 -msgid "Private post" -msgstr "" - -#: ../../include/network.php:895 -msgid "view full size" -msgstr "Skoða í fullri stærð" - -#: ../../include/text.php:297 -msgid "newer" -msgstr "" - -#: ../../include/text.php:299 -msgid "older" -msgstr "" - -#: ../../include/text.php:304 -msgid "prev" -msgstr "á undan" - -#: ../../include/text.php:306 -msgid "first" -msgstr "fremsta" - -#: ../../include/text.php:338 -msgid "last" -msgstr "síðasta" - -#: ../../include/text.php:341 -msgid "next" -msgstr "næsta" - -#: ../../include/text.php:855 -msgid "No contacts" -msgstr "Engir tengiliðir" - -#: ../../include/text.php:864 -#, php-format -msgid "%d Contact" -msgid_plural "%d Contacts" -msgstr[0] "%d Tengiliður" -msgstr[1] "%d Tengiliðir" - -#: ../../include/text.php:1005 -msgid "poke" -msgstr "" - -#: ../../include/text.php:1006 -msgid "ping" -msgstr "" - -#: ../../include/text.php:1006 -msgid "pinged" -msgstr "" - -#: ../../include/text.php:1007 -msgid "prod" -msgstr "" - -#: ../../include/text.php:1007 -msgid "prodded" -msgstr "" - -#: ../../include/text.php:1008 -msgid "slap" -msgstr "" - -#: ../../include/text.php:1008 -msgid "slapped" -msgstr "" - -#: ../../include/text.php:1009 -msgid "finger" -msgstr "" - -#: ../../include/text.php:1009 -msgid "fingered" -msgstr "" - -#: ../../include/text.php:1010 -msgid "rebuff" -msgstr "" - -#: ../../include/text.php:1010 -msgid "rebuffed" -msgstr "" - -#: ../../include/text.php:1024 -msgid "happy" -msgstr "" - -#: ../../include/text.php:1025 -msgid "sad" -msgstr "" - -#: ../../include/text.php:1026 -msgid "mellow" -msgstr "" - -#: ../../include/text.php:1027 -msgid "tired" -msgstr "" - -#: ../../include/text.php:1028 -msgid "perky" -msgstr "" - -#: ../../include/text.php:1029 -msgid "angry" -msgstr "" - -#: ../../include/text.php:1030 -msgid "stupified" -msgstr "" - -#: ../../include/text.php:1031 -msgid "puzzled" -msgstr "" - -#: ../../include/text.php:1032 -msgid "interested" -msgstr "" - -#: ../../include/text.php:1033 -msgid "bitter" -msgstr "" - -#: ../../include/text.php:1034 -msgid "cheerful" -msgstr "" - -#: ../../include/text.php:1035 -msgid "alive" -msgstr "" - -#: ../../include/text.php:1036 -msgid "annoyed" -msgstr "" - -#: ../../include/text.php:1037 -msgid "anxious" -msgstr "" - -#: ../../include/text.php:1038 -msgid "cranky" -msgstr "" - -#: ../../include/text.php:1039 -msgid "disturbed" -msgstr "" - -#: ../../include/text.php:1040 -msgid "frustrated" -msgstr "" - -#: ../../include/text.php:1041 -msgid "motivated" -msgstr "" - -#: ../../include/text.php:1042 -msgid "relaxed" -msgstr "" - -#: ../../include/text.php:1043 -msgid "surprised" -msgstr "" - -#: ../../include/text.php:1213 -msgid "Monday" -msgstr "Mánudagur" - -#: ../../include/text.php:1213 -msgid "Tuesday" -msgstr "Þriðjudagur" - -#: ../../include/text.php:1213 -msgid "Wednesday" -msgstr "Miðvikudagur" - -#: ../../include/text.php:1213 -msgid "Thursday" -msgstr "Fimmtudagur" - -#: ../../include/text.php:1213 -msgid "Friday" -msgstr "Föstudagur" - -#: ../../include/text.php:1213 -msgid "Saturday" -msgstr "Laugardagur" - -#: ../../include/text.php:1213 -msgid "Sunday" -msgstr "Sunnudagur" - -#: ../../include/text.php:1217 -msgid "January" -msgstr "Janúar" - -#: ../../include/text.php:1217 -msgid "February" -msgstr "Febrúar" - -#: ../../include/text.php:1217 -msgid "March" -msgstr "Mars" - -#: ../../include/text.php:1217 -msgid "April" -msgstr "Apríl" - -#: ../../include/text.php:1217 -msgid "May" -msgstr "Maí" - -#: ../../include/text.php:1217 -msgid "June" -msgstr "Júní" - -#: ../../include/text.php:1217 -msgid "July" -msgstr "Júlí" - -#: ../../include/text.php:1217 -msgid "August" -msgstr "Ágúst" - -#: ../../include/text.php:1217 -msgid "September" -msgstr "September" - -#: ../../include/text.php:1217 -msgid "October" -msgstr "Október" - -#: ../../include/text.php:1217 -msgid "November" -msgstr "Nóvember" - -#: ../../include/text.php:1217 -msgid "December" -msgstr "Desember" - -#: ../../include/text.php:1437 -msgid "bytes" -msgstr "bæti" - -#: ../../include/text.php:1461 ../../include/text.php:1473 -msgid "Click to open/close" -msgstr "" - -#: ../../include/text.php:1702 ../../include/user.php:247 -#: ../../view/theme/duepuntozero/config.php:44 -msgid "default" -msgstr "sjálfgefið" - -#: ../../include/text.php:1714 -msgid "Select an alternate language" -msgstr "Velja annað tungumál" - -#: ../../include/text.php:1970 -msgid "activity" -msgstr "" - -#: ../../include/text.php:1973 -msgid "post" -msgstr "" - -#: ../../include/text.php:2141 -msgid "Item filed" -msgstr "" - -#: ../../include/bbcode.php:428 ../../include/bbcode.php:1047 -#: ../../include/bbcode.php:1048 -msgid "Image/photo" -msgstr "Mynd" - -#: ../../include/bbcode.php:528 -#, php-format -msgid "%2$s %3$s" -msgstr "" - -#: ../../include/bbcode.php:562 -#, php-format -msgid "" -"%s wrote the following post" -msgstr "" - -#: ../../include/bbcode.php:1011 ../../include/bbcode.php:1031 -msgid "$1 wrote:" -msgstr "$1 skrifaði:" - -#: ../../include/bbcode.php:1056 ../../include/bbcode.php:1057 -msgid "Encrypted content" -msgstr "Dulritað efni" - -#: ../../include/notifier.php:786 ../../include/delivery.php:456 +#: include/delivery.php:439 msgid "(no subject)" msgstr "(ekkert efni)" -#: ../../include/notifier.php:796 ../../include/delivery.php:467 -#: ../../include/enotify.php:33 -msgid "noreply" -msgstr "ekki svara" +#: include/user.php:39 mod/settings.php:370 +msgid "Passwords do not match. Password unchanged." +msgstr "Aðgangsorð ber ekki saman. Aðgangsorð óbreytt." -#: ../../include/dba_pdo.php:72 ../../include/dba.php:56 -#, php-format -msgid "Cannot locate DNS info for database server '%s'" -msgstr "Get ekki flett upp DNS upplýsingum fyrir gagnagrunns þjón '%s'" - -#: ../../include/contact_selectors.php:32 -msgid "Unknown | Not categorised" -msgstr "Óþekkt | Ekki flokkað" - -#: ../../include/contact_selectors.php:33 -msgid "Block immediately" -msgstr "Hunsa samstundis" - -#: ../../include/contact_selectors.php:34 -msgid "Shady, spammer, self-marketer" -msgstr "Grunsamlegur, rusl sendari, auglýsandi" - -#: ../../include/contact_selectors.php:35 -msgid "Known to me, but no opinion" -msgstr "Ég þekki en hef ekki skoðun á" - -#: ../../include/contact_selectors.php:36 -msgid "OK, probably harmless" -msgstr "Í lagi, væntanlega saklaus" - -#: ../../include/contact_selectors.php:37 -msgid "Reputable, has my trust" -msgstr "Gott orðspor, ég treysti þessu" - -#: ../../include/contact_selectors.php:60 -msgid "Weekly" -msgstr "Vikulega" - -#: ../../include/contact_selectors.php:61 -msgid "Monthly" -msgstr "Mánaðarlega" - -#: ../../include/contact_selectors.php:77 -msgid "OStatus" -msgstr "OStatus" - -#: ../../include/contact_selectors.php:78 -msgid "RSS/Atom" -msgstr "RSS/Atom" - -#: ../../include/contact_selectors.php:82 -msgid "Zot!" -msgstr "Zot!" - -#: ../../include/contact_selectors.php:83 -msgid "LinkedIn" -msgstr "LinkedIn" - -#: ../../include/contact_selectors.php:84 -msgid "XMPP/IM" -msgstr "XMPP/IM" - -#: ../../include/contact_selectors.php:85 -msgid "MySpace" -msgstr "MySpace" - -#: ../../include/contact_selectors.php:87 -msgid "Google+" -msgstr "Google+" - -#: ../../include/contact_selectors.php:88 -msgid "pump.io" -msgstr "pump.io" - -#: ../../include/contact_selectors.php:89 -msgid "Twitter" -msgstr "Twitter" - -#: ../../include/contact_selectors.php:90 -msgid "Diaspora Connector" -msgstr "" - -#: ../../include/contact_selectors.php:91 -msgid "Statusnet" -msgstr "" - -#: ../../include/contact_selectors.php:92 -msgid "App.net" -msgstr "" - -#: ../../include/Scrape.php:614 -msgid " on Last.fm" -msgstr "" - -#: ../../include/bb2diaspora.php:154 ../../include/event.php:20 -msgid "Starts:" -msgstr "Byrjar:" - -#: ../../include/bb2diaspora.php:162 ../../include/event.php:30 -msgid "Finishes:" -msgstr "Endar:" - -#: ../../include/profile_advanced.php:22 -msgid "j F, Y" -msgstr "" - -#: ../../include/profile_advanced.php:23 -msgid "j F" -msgstr "" - -#: ../../include/profile_advanced.php:30 -msgid "Birthday:" -msgstr "Afmælisdagur:" - -#: ../../include/profile_advanced.php:34 -msgid "Age:" -msgstr "Aldur" - -#: ../../include/profile_advanced.php:43 -#, php-format -msgid "for %1$d %2$s" -msgstr "" - -#: ../../include/profile_advanced.php:52 -msgid "Tags:" -msgstr "Merki:" - -#: ../../include/profile_advanced.php:56 -msgid "Religion:" -msgstr "Trúarskoðanir:" - -#: ../../include/profile_advanced.php:60 -msgid "Hobbies/Interests:" -msgstr "Áhugamál/Áhugasvið:" - -#: ../../include/profile_advanced.php:67 -msgid "Contact information and Social Networks:" -msgstr "Tengiliðaupplýsingar og samfélagsnet:" - -#: ../../include/profile_advanced.php:69 -msgid "Musical interests:" -msgstr "Tónlistaráhugi:" - -#: ../../include/profile_advanced.php:71 -msgid "Books, literature:" -msgstr "Bækur, bókmenntir:" - -#: ../../include/profile_advanced.php:73 -msgid "Television:" -msgstr "Sjónvarp:" - -#: ../../include/profile_advanced.php:75 -msgid "Film/dance/culture/entertainment:" -msgstr "Kvikmyndir/dans/menning/afþreying:" - -#: ../../include/profile_advanced.php:77 -msgid "Love/Romance:" -msgstr "Ást/rómantík" - -#: ../../include/profile_advanced.php:79 -msgid "Work/employment:" -msgstr "Atvinna:" - -#: ../../include/profile_advanced.php:81 -msgid "School/education:" -msgstr "Skóli/menntun:" - -#: ../../include/plugin.php:455 ../../include/plugin.php:457 -msgid "Click here to upgrade." -msgstr "" - -#: ../../include/plugin.php:463 -msgid "This action exceeds the limits set by your subscription plan." -msgstr "" - -#: ../../include/plugin.php:468 -msgid "This action is not available under your subscription plan." -msgstr "" - -#: ../../include/nav.php:73 -msgid "End this session" -msgstr "Loka þessu innliti" - -#: ../../include/nav.php:76 ../../include/nav.php:148 -#: ../../view/theme/diabook/theme.php:123 -msgid "Your posts and conversations" -msgstr "Samtölin þín" - -#: ../../include/nav.php:77 ../../view/theme/diabook/theme.php:124 -msgid "Your profile page" -msgstr "Forsíðan þín" - -#: ../../include/nav.php:78 ../../view/theme/diabook/theme.php:126 -msgid "Your photos" -msgstr "Þínar myndir" - -#: ../../include/nav.php:79 -msgid "Your videos" -msgstr "" - -#: ../../include/nav.php:80 ../../view/theme/diabook/theme.php:127 -msgid "Your events" -msgstr "Þínir atburðir" - -#: ../../include/nav.php:81 ../../view/theme/diabook/theme.php:128 -msgid "Personal notes" -msgstr "Þínar einka glósur" - -#: ../../include/nav.php:81 -msgid "Your personal notes" -msgstr "" - -#: ../../include/nav.php:92 -msgid "Sign in" -msgstr "Innskrá" - -#: ../../include/nav.php:105 -msgid "Home Page" -msgstr "Heimasíða" - -#: ../../include/nav.php:109 -msgid "Create an account" -msgstr "Stofna notanda" - -#: ../../include/nav.php:114 -msgid "Help and documentation" -msgstr "Hjálp og leiðbeiningar" - -#: ../../include/nav.php:117 -msgid "Apps" -msgstr "Forr" - -#: ../../include/nav.php:117 -msgid "Addon applications, utilities, games" -msgstr "Viðbætur forrit, leikir" - -#: ../../include/nav.php:119 -msgid "Search site content" -msgstr "Leita í efni á vef" - -#: ../../include/nav.php:129 -msgid "Conversations on this site" -msgstr "Samtöl á þessum vef" - -#: ../../include/nav.php:131 -msgid "Conversations on the network" -msgstr "" - -#: ../../include/nav.php:133 -msgid "Directory" -msgstr "Tengiliðalisti" - -#: ../../include/nav.php:133 -msgid "People directory" -msgstr "Nafnaskrá" - -#: ../../include/nav.php:135 -msgid "Information" -msgstr "" - -#: ../../include/nav.php:135 -msgid "Information about this friendica instance" -msgstr "" - -#: ../../include/nav.php:145 -msgid "Conversations from your friends" -msgstr "Samtöl frá vinum" - -#: ../../include/nav.php:146 -msgid "Network Reset" -msgstr "" - -#: ../../include/nav.php:146 -msgid "Load Network page with no filters" -msgstr "" - -#: ../../include/nav.php:154 -msgid "Friend Requests" -msgstr "Vina beiðnir" - -#: ../../include/nav.php:156 -msgid "See all notifications" -msgstr "" - -#: ../../include/nav.php:157 -msgid "Mark all system notifications seen" -msgstr "Merkja allar tilkynningar sem séðar" - -#: ../../include/nav.php:161 -msgid "Private mail" -msgstr "Einka skilaboð" - -#: ../../include/nav.php:162 -msgid "Inbox" -msgstr "Innhólf" - -#: ../../include/nav.php:163 -msgid "Outbox" -msgstr "Úthólf" - -#: ../../include/nav.php:167 -msgid "Manage" -msgstr "Umsýsla" - -#: ../../include/nav.php:167 -msgid "Manage other pages" -msgstr "Sýsla með aðrar síður" - -#: ../../include/nav.php:172 -msgid "Account settings" -msgstr "Notenda stillingar" - -#: ../../include/nav.php:175 -msgid "Manage/Edit Profiles" -msgstr "" - -#: ../../include/nav.php:177 -msgid "Manage/edit friends and contacts" -msgstr "Sýsla með vini og tengiliði" - -#: ../../include/nav.php:184 -msgid "Site setup and configuration" -msgstr "Stillingar vefs" - -#: ../../include/nav.php:188 -msgid "Navigation" -msgstr "" - -#: ../../include/nav.php:188 -msgid "Site map" -msgstr "" - -#: ../../include/api.php:304 ../../include/api.php:315 -#: ../../include/api.php:416 ../../include/api.php:1063 -#: ../../include/api.php:1065 -msgid "User not found." -msgstr "" - -#: ../../include/api.php:771 -#, php-format -msgid "Daily posting limit of %d posts reached. The post was rejected." -msgstr "" - -#: ../../include/api.php:790 -#, php-format -msgid "Weekly posting limit of %d posts reached. The post was rejected." -msgstr "" - -#: ../../include/api.php:809 -#, php-format -msgid "Monthly posting limit of %d posts reached. The post was rejected." -msgstr "" - -#: ../../include/api.php:1272 -msgid "There is no status with this id." -msgstr "" - -#: ../../include/api.php:1342 -msgid "There is no conversation with this id." -msgstr "" - -#: ../../include/api.php:1614 -msgid "Invalid request." -msgstr "" - -#: ../../include/api.php:1625 -msgid "Invalid item." -msgstr "" - -#: ../../include/api.php:1635 -msgid "Invalid action. " -msgstr "" - -#: ../../include/api.php:1643 -msgid "DB error" -msgstr "" - -#: ../../include/user.php:40 +#: include/user.php:48 msgid "An invitation is required." msgstr "Boðskort er skilyrði." -#: ../../include/user.php:45 +#: include/user.php:53 msgid "Invitation could not be verified." msgstr "Ekki hægt að sannreyna boðskort." -#: ../../include/user.php:53 +#: include/user.php:61 msgid "Invalid OpenID url" msgstr "OpenID slóð ekki til" -#: ../../include/user.php:74 +#: include/user.php:82 msgid "Please enter the required information." -msgstr "Vinsamlegast sláðu inn umbeðin gögn" +msgstr "Settu inn umbeðnar upplýsingar." -#: ../../include/user.php:88 +#: include/user.php:96 msgid "Please use a shorter name." -msgstr "Vinsamlegast notið styttra nafn" +msgstr "Notaðu styttra nafn." -#: ../../include/user.php:90 +#: include/user.php:98 msgid "Name too short." -msgstr "Nafn of stutt" +msgstr "Nafn of stutt." -#: ../../include/user.php:105 +#: include/user.php:113 msgid "That doesn't appear to be your full (First Last) name." msgstr "Þetta virðist ekki vera fullt nafn (Jón Jónsson)." -#: ../../include/user.php:110 +#: include/user.php:118 msgid "Your email domain is not among those allowed on this site." msgstr "Póstþjónninn er ekki í lista yfir leyfða póstþjóna á þessum vef." -#: ../../include/user.php:113 +#: include/user.php:121 msgid "Not a valid email address." msgstr "Ekki gildt póstfang." -#: ../../include/user.php:126 +#: include/user.php:134 msgid "Cannot use that email." msgstr "Ekki hægt að nota þetta póstfang." -#: ../../include/user.php:132 -msgid "" -"Your \"nickname\" can only contain \"a-z\", \"0-9\", \"-\", and \"_\", and " -"must also begin with a letter." -msgstr "Gælunafnið má bara innihalda \"a-z\", \"0-9, \"-\", \"_\" og verður að byrja á staf." +#: include/user.php:140 +msgid "Your \"nickname\" can only contain \"a-z\", \"0-9\" and \"_\"." +msgstr "Gælunafnið má bara innihalda \"a-z\", \"0-9, \"-\", \"_\"." -#: ../../include/user.php:138 ../../include/user.php:236 +#: include/user.php:147 include/user.php:245 msgid "Nickname is already registered. Please choose another." msgstr "Gælunafn þegar skráð. Veldu annað." -#: ../../include/user.php:148 +#: include/user.php:157 msgid "" "Nickname was once registered here and may not be re-used. Please choose " "another." -msgstr "" +msgstr "Gælunafn hefur áður skráð hér og er ekki hægt að endurnýta. Veldu eitthvað annað." -#: ../../include/user.php:164 +#: include/user.php:173 msgid "SERIOUS ERROR: Generation of security keys failed." msgstr "VERULEGA ALVARLEG VILLA: Stofnun á öryggislyklum tókst ekki." -#: ../../include/user.php:222 +#: include/user.php:231 msgid "An error occurred during registration. Please try again." -msgstr "Villa kom upp við nýskráningu. Vinsamlegast reyndu aftur." +msgstr "Villa kom upp við nýskráningu. Reyndu aftur." -#: ../../include/user.php:257 +#: include/user.php:256 view/theme/duepuntozero/config.php:44 +msgid "default" +msgstr "sjálfgefið" + +#: include/user.php:266 msgid "An error occurred creating your default profile. Please try again." msgstr "Villa kom upp við að stofna sjálfgefna forsíðu. Vinnsamlegast reyndu aftur." -#: ../../include/user.php:289 ../../include/user.php:293 -#: ../../include/profile_selectors.php:42 -msgid "Friends" -msgstr "Vinir" +#: include/user.php:345 include/user.php:352 include/user.php:359 +#: mod/photos.php:78 mod/photos.php:192 mod/photos.php:769 mod/photos.php:1232 +#: mod/photos.php:1255 mod/photos.php:1849 mod/profile_photo.php:74 +#: mod/profile_photo.php:81 mod/profile_photo.php:88 mod/profile_photo.php:210 +#: mod/profile_photo.php:302 mod/profile_photo.php:311 +#: view/theme/diabook/theme.php:500 +msgid "Profile Photos" +msgstr "Forsíðumyndir" -#: ../../include/user.php:377 +#: include/user.php:387 #, php-format msgid "" "\n" @@ -7088,7 +2521,7 @@ msgid "" "\t" msgstr "" -#: ../../include/user.php:381 +#: include/user.php:391 #, php-format msgid "" "\n" @@ -7118,762 +2551,6242 @@ msgid "" "\t\tThank you and welcome to %2$s." msgstr "" -#: ../../include/diaspora.php:703 -msgid "Sharing notification from Diaspora network" -msgstr "Tilkynning um að einhver deildi einhverju Diaspora netinu" - -#: ../../include/diaspora.php:2520 -msgid "Attachments:" -msgstr "Viðhengi:" - -#: ../../include/items.php:4555 -msgid "Do you really want to delete this item?" -msgstr "Viltu í alvörunni eyða þessu atriði?" - -#: ../../include/items.php:4778 -msgid "Archives" -msgstr "" - -#: ../../include/profile_selectors.php:6 -msgid "Male" -msgstr "Karlmaður" - -#: ../../include/profile_selectors.php:6 -msgid "Female" -msgstr "Kvenmaður" - -#: ../../include/profile_selectors.php:6 -msgid "Currently Male" -msgstr "Karlmaður í augnablikinu" - -#: ../../include/profile_selectors.php:6 -msgid "Currently Female" -msgstr "Kvenmaður í augnablikinu" - -#: ../../include/profile_selectors.php:6 -msgid "Mostly Male" -msgstr "Aðallega karlmaður" - -#: ../../include/profile_selectors.php:6 -msgid "Mostly Female" -msgstr "Aðallega kvenmaður" - -#: ../../include/profile_selectors.php:6 -msgid "Transgender" -msgstr "Kynskiptingur" - -#: ../../include/profile_selectors.php:6 -msgid "Intersex" -msgstr "Hvorukin" - -#: ../../include/profile_selectors.php:6 -msgid "Transsexual" -msgstr "Kynskiptingur" - -#: ../../include/profile_selectors.php:6 -msgid "Hermaphrodite" -msgstr "Tvíkynhneigð(ur)" - -#: ../../include/profile_selectors.php:6 -msgid "Neuter" -msgstr "Hvorukyn" - -#: ../../include/profile_selectors.php:6 -msgid "Non-specific" -msgstr "Ekki ákveðið" - -#: ../../include/profile_selectors.php:6 -msgid "Other" -msgstr "Annað" - -#: ../../include/profile_selectors.php:6 -msgid "Undecided" -msgstr "Óviss" - -#: ../../include/profile_selectors.php:23 -msgid "Males" -msgstr "Karlmenn" - -#: ../../include/profile_selectors.php:23 -msgid "Females" -msgstr "Kvenmenn" - -#: ../../include/profile_selectors.php:23 -msgid "Gay" -msgstr "Samkynhneigður" - -#: ../../include/profile_selectors.php:23 -msgid "Lesbian" -msgstr "Lesbía" - -#: ../../include/profile_selectors.php:23 -msgid "No Preference" -msgstr "Til í allt" - -#: ../../include/profile_selectors.php:23 -msgid "Bisexual" -msgstr "Tvíkynhneigð/ur" - -#: ../../include/profile_selectors.php:23 -msgid "Autosexual" -msgstr "Sjálfkynhneigð/ur" - -#: ../../include/profile_selectors.php:23 -msgid "Abstinent" -msgstr "Skýrlíf/ur" - -#: ../../include/profile_selectors.php:23 -msgid "Virgin" -msgstr "Hrein mey/Hreinn sveinn" - -#: ../../include/profile_selectors.php:23 -msgid "Deviant" -msgstr "Óþekkur" - -#: ../../include/profile_selectors.php:23 -msgid "Fetish" -msgstr "Blæti" - -#: ../../include/profile_selectors.php:23 -msgid "Oodles" -msgstr "Mikið af því" - -#: ../../include/profile_selectors.php:23 -msgid "Nonsexual" -msgstr "Engin kynhneigð" - -#: ../../include/profile_selectors.php:42 -msgid "Single" -msgstr "Einhleyp/ur" - -#: ../../include/profile_selectors.php:42 -msgid "Lonely" -msgstr "Einmanna" - -#: ../../include/profile_selectors.php:42 -msgid "Available" -msgstr "Á lausu" - -#: ../../include/profile_selectors.php:42 -msgid "Unavailable" -msgstr "Frátekin/n" - -#: ../../include/profile_selectors.php:42 -msgid "Has crush" -msgstr "Er skotin(n)" - -#: ../../include/profile_selectors.php:42 -msgid "Infatuated" -msgstr "" - -#: ../../include/profile_selectors.php:42 -msgid "Dating" -msgstr "Deita" - -#: ../../include/profile_selectors.php:42 -msgid "Unfaithful" -msgstr "Ótrú/r" - -#: ../../include/profile_selectors.php:42 -msgid "Sex Addict" -msgstr "Kynlífsfíkill" - -#: ../../include/profile_selectors.php:42 -msgid "Friends/Benefits" -msgstr "Vinir með meiru" - -#: ../../include/profile_selectors.php:42 -msgid "Casual" -msgstr "Lauslát/ur" - -#: ../../include/profile_selectors.php:42 -msgid "Engaged" -msgstr "Trúlofuð/Trúlofaður" - -#: ../../include/profile_selectors.php:42 -msgid "Married" -msgstr "Gift/ur" - -#: ../../include/profile_selectors.php:42 -msgid "Imaginarily married" -msgstr "" - -#: ../../include/profile_selectors.php:42 -msgid "Partners" -msgstr "Félagar" - -#: ../../include/profile_selectors.php:42 -msgid "Cohabiting" -msgstr "Sambýlingur" - -#: ../../include/profile_selectors.php:42 -msgid "Common law" -msgstr "Löggilt sambúð" - -#: ../../include/profile_selectors.php:42 -msgid "Happy" -msgstr "Hamingjusöm/Hamingjusamur" - -#: ../../include/profile_selectors.php:42 -msgid "Not looking" -msgstr "Ekki að leita" - -#: ../../include/profile_selectors.php:42 -msgid "Swinger" -msgstr "Svingari" - -#: ../../include/profile_selectors.php:42 -msgid "Betrayed" -msgstr "Svikin/n" - -#: ../../include/profile_selectors.php:42 -msgid "Separated" -msgstr "Skilin/n að borði og sæng" - -#: ../../include/profile_selectors.php:42 -msgid "Unstable" -msgstr "Óstabíll" - -#: ../../include/profile_selectors.php:42 -msgid "Divorced" -msgstr "Fráskilin/n" - -#: ../../include/profile_selectors.php:42 -msgid "Imaginarily divorced" -msgstr "" - -#: ../../include/profile_selectors.php:42 -msgid "Widowed" -msgstr "Ekkja/Ekkill" - -#: ../../include/profile_selectors.php:42 -msgid "Uncertain" -msgstr "Óviss" - -#: ../../include/profile_selectors.php:42 -msgid "It's complicated" -msgstr "Þetta er flókið" - -#: ../../include/profile_selectors.php:42 -msgid "Don't care" -msgstr "Gæti ekki verið meira sama" - -#: ../../include/profile_selectors.php:42 -msgid "Ask me" -msgstr "Spurðu mig" - -#: ../../include/enotify.php:18 -msgid "Friendica Notification" -msgstr "Friendica tilkynning" - -#: ../../include/enotify.php:21 -msgid "Thank You," -msgstr "Takk fyrir," - -#: ../../include/enotify.php:23 +#: include/user.php:423 mod/admin.php:1178 #, php-format -msgid "%s Administrator" -msgstr "Kerfisstjóri %s" +msgid "Registration details for %s" +msgstr "Nýskráningar upplýsingar fyrir %s" -#: ../../include/enotify.php:64 +#: include/api.php:905 #, php-format -msgid "%s " +msgid "Daily posting limit of %d posts reached. The post was rejected." msgstr "" -#: ../../include/enotify.php:68 +#: include/api.php:925 #, php-format -msgid "[Friendica:Notify] New mail received at %s" +msgid "Weekly posting limit of %d posts reached. The post was rejected." msgstr "" -#: ../../include/enotify.php:70 +#: include/api.php:946 #, php-format -msgid "%1$s sent you a new private message at %2$s." +msgid "Monthly posting limit of %d posts reached. The post was rejected." msgstr "" -#: ../../include/enotify.php:71 -#, php-format -msgid "%1$s sent you %2$s." +#: include/features.php:63 +msgid "General Features" +msgstr "Almennir eiginleikar" + +#: include/features.php:65 +msgid "Multiple Profiles" msgstr "" -#: ../../include/enotify.php:71 -msgid "a private message" -msgstr "einkaskilaboð" - -#: ../../include/enotify.php:72 -#, php-format -msgid "Please visit %s to view and/or reply to your private messages." -msgstr "Farðu á %s til að skoða og/eða svara einkaskilaboðunum þínum." - -#: ../../include/enotify.php:124 -#, php-format -msgid "%1$s commented on [url=%2$s]a %3$s[/url]" +#: include/features.php:65 +msgid "Ability to create multiple profiles" msgstr "" -#: ../../include/enotify.php:131 -#, php-format -msgid "%1$s commented on [url=%2$s]%3$s's %4$s[/url]" -msgstr "" +#: include/features.php:66 +msgid "Photo Location" +msgstr "Staðsetning ljósmyndar" -#: ../../include/enotify.php:139 -#, php-format -msgid "%1$s commented on [url=%2$s]your %3$s[/url]" -msgstr "" - -#: ../../include/enotify.php:149 -#, php-format -msgid "[Friendica:Notify] Comment to conversation #%1$d by %2$s" -msgstr "" - -#: ../../include/enotify.php:150 -#, php-format -msgid "%s commented on an item/conversation you have been following." -msgstr "%s skrifaði athugasemd á færslu/samtal sem þú ert að fylgja." - -#: ../../include/enotify.php:153 ../../include/enotify.php:168 -#: ../../include/enotify.php:181 ../../include/enotify.php:194 -#: ../../include/enotify.php:212 ../../include/enotify.php:225 -#, php-format -msgid "Please visit %s to view and/or reply to the conversation." -msgstr "Farðu á %s til að skoða og/eða svara samtali." - -#: ../../include/enotify.php:160 -#, php-format -msgid "[Friendica:Notify] %s posted to your profile wall" -msgstr "" - -#: ../../include/enotify.php:162 -#, php-format -msgid "%1$s posted to your profile wall at %2$s" -msgstr "" - -#: ../../include/enotify.php:164 -#, php-format -msgid "%1$s posted to [url=%2$s]your wall[/url]" -msgstr "" - -#: ../../include/enotify.php:175 -#, php-format -msgid "[Friendica:Notify] %s tagged you" -msgstr "" - -#: ../../include/enotify.php:176 -#, php-format -msgid "%1$s tagged you at %2$s" -msgstr "" - -#: ../../include/enotify.php:177 -#, php-format -msgid "%1$s [url=%2$s]tagged you[/url]." -msgstr "" - -#: ../../include/enotify.php:188 -#, php-format -msgid "[Friendica:Notify] %s shared a new post" -msgstr "" - -#: ../../include/enotify.php:189 -#, php-format -msgid "%1$s shared a new post at %2$s" -msgstr "" - -#: ../../include/enotify.php:190 -#, php-format -msgid "%1$s [url=%2$s]shared a post[/url]." -msgstr "" - -#: ../../include/enotify.php:202 -#, php-format -msgid "[Friendica:Notify] %1$s poked you" -msgstr "" - -#: ../../include/enotify.php:203 -#, php-format -msgid "%1$s poked you at %2$s" -msgstr "" - -#: ../../include/enotify.php:204 -#, php-format -msgid "%1$s [url=%2$s]poked you[/url]." -msgstr "" - -#: ../../include/enotify.php:219 -#, php-format -msgid "[Friendica:Notify] %s tagged your post" -msgstr "" - -#: ../../include/enotify.php:220 -#, php-format -msgid "%1$s tagged your post at %2$s" -msgstr "" - -#: ../../include/enotify.php:221 -#, php-format -msgid "%1$s tagged [url=%2$s]your post[/url]" -msgstr "" - -#: ../../include/enotify.php:232 -msgid "[Friendica:Notify] Introduction received" -msgstr "" - -#: ../../include/enotify.php:233 -#, php-format -msgid "You've received an introduction from '%1$s' at %2$s" -msgstr "" - -#: ../../include/enotify.php:234 -#, php-format -msgid "You've received [url=%1$s]an introduction[/url] from %2$s." -msgstr "" - -#: ../../include/enotify.php:237 ../../include/enotify.php:279 -#, php-format -msgid "You may visit their profile at %s" -msgstr "Þú getur heimsótt fórsíðuna á %s" - -#: ../../include/enotify.php:239 -#, php-format -msgid "Please visit %s to approve or reject the introduction." -msgstr "Farðu á %s til að samþykkja eða hunsa þessa kynningu." - -#: ../../include/enotify.php:247 -msgid "[Friendica:Notify] A new person is sharing with you" -msgstr "" - -#: ../../include/enotify.php:248 ../../include/enotify.php:249 -#, php-format -msgid "%1$s is sharing with you at %2$s" -msgstr "" - -#: ../../include/enotify.php:255 -msgid "[Friendica:Notify] You have a new follower" -msgstr "" - -#: ../../include/enotify.php:256 ../../include/enotify.php:257 -#, php-format -msgid "You have a new follower at %2$s : %1$s" -msgstr "" - -#: ../../include/enotify.php:270 -msgid "[Friendica:Notify] Friend suggestion received" -msgstr "" - -#: ../../include/enotify.php:271 -#, php-format -msgid "You've received a friend suggestion from '%1$s' at %2$s" -msgstr "" - -#: ../../include/enotify.php:272 -#, php-format +#: include/features.php:66 msgid "" -"You've received [url=%1$s]a friend suggestion[/url] for %2$s from %3$s." +"Photo metadata is normally stripped. This extracts the location (if present)" +" prior to stripping metadata and links it to a map." msgstr "" -#: ../../include/enotify.php:277 -msgid "Name:" -msgstr "Nafn:" +#: include/features.php:67 +msgid "Export Public Calendar" +msgstr "Flytja út opinbert dagatal" -#: ../../include/enotify.php:278 -msgid "Photo:" -msgstr "Mynd:" - -#: ../../include/enotify.php:281 -#, php-format -msgid "Please visit %s to approve or reject the suggestion." -msgstr "Farðu á %s til að samþykkja eða hunsa þessa uppástungu." - -#: ../../include/enotify.php:289 ../../include/enotify.php:302 -msgid "[Friendica:Notify] Connection accepted" +#: include/features.php:67 +msgid "Ability for visitors to download the public calendar" msgstr "" -#: ../../include/enotify.php:290 ../../include/enotify.php:303 -#, php-format -msgid "'%1$s' has acepted your connection request at %2$s" +#: include/features.php:72 +msgid "Post Composition Features" msgstr "" -#: ../../include/enotify.php:291 ../../include/enotify.php:304 -#, php-format -msgid "%2$s has accepted your [url=%1$s]connection request[/url]." +#: include/features.php:73 +msgid "Richtext Editor" msgstr "" -#: ../../include/enotify.php:294 +#: include/features.php:73 +msgid "Enable richtext editor" +msgstr "" + +#: include/features.php:74 +msgid "Post Preview" +msgstr "" + +#: include/features.php:74 +msgid "Allow previewing posts and comments before publishing them" +msgstr "" + +#: include/features.php:75 +msgid "Auto-mention Forums" +msgstr "" + +#: include/features.php:75 msgid "" -"You are now mutual friends and may exchange status updates, photos, and email\n" -"\twithout restriction." +"Add/remove mention when a fourm page is selected/deselected in ACL window." msgstr "" -#: ../../include/enotify.php:297 ../../include/enotify.php:311 +#: include/features.php:80 +msgid "Network Sidebar Widgets" +msgstr "" + +#: include/features.php:81 +msgid "Search by Date" +msgstr "Leita eftir dagsetningu" + +#: include/features.php:81 +msgid "Ability to select posts by date ranges" +msgstr "" + +#: include/features.php:82 include/features.php:112 +msgid "List Forums" +msgstr "Spjallsvæðalistar" + +#: include/features.php:82 +msgid "Enable widget to display the forums your are connected with" +msgstr "" + +#: include/features.php:83 +msgid "Group Filter" +msgstr "" + +#: include/features.php:83 +msgid "Enable widget to display Network posts only from selected group" +msgstr "" + +#: include/features.php:84 +msgid "Network Filter" +msgstr "" + +#: include/features.php:84 +msgid "Enable widget to display Network posts only from selected network" +msgstr "" + +#: include/features.php:85 mod/search.php:34 mod/network.php:200 +msgid "Saved Searches" +msgstr "Vistaðar leitir" + +#: include/features.php:85 +msgid "Save search terms for re-use" +msgstr "" + +#: include/features.php:90 +msgid "Network Tabs" +msgstr "" + +#: include/features.php:91 +msgid "Network Personal Tab" +msgstr "" + +#: include/features.php:91 +msgid "Enable tab to display only Network posts that you've interacted on" +msgstr "" + +#: include/features.php:92 +msgid "Network New Tab" +msgstr "" + +#: include/features.php:92 +msgid "Enable tab to display only new Network posts (from the last 12 hours)" +msgstr "" + +#: include/features.php:93 +msgid "Network Shared Links Tab" +msgstr "" + +#: include/features.php:93 +msgid "Enable tab to display only Network posts with links in them" +msgstr "" + +#: include/features.php:98 +msgid "Post/Comment Tools" +msgstr "" + +#: include/features.php:99 +msgid "Multiple Deletion" +msgstr "" + +#: include/features.php:99 +msgid "Select and delete multiple posts/comments at once" +msgstr "" + +#: include/features.php:100 +msgid "Edit Sent Posts" +msgstr "" + +#: include/features.php:100 +msgid "Edit and correct posts and comments after sending" +msgstr "" + +#: include/features.php:101 +msgid "Tagging" +msgstr "" + +#: include/features.php:101 +msgid "Ability to tag existing posts" +msgstr "" + +#: include/features.php:102 +msgid "Post Categories" +msgstr "" + +#: include/features.php:102 +msgid "Add categories to your posts" +msgstr "" + +#: include/features.php:103 +msgid "Ability to file posts under folders" +msgstr "" + +#: include/features.php:104 +msgid "Dislike Posts" +msgstr "" + +#: include/features.php:104 +msgid "Ability to dislike posts/comments" +msgstr "" + +#: include/features.php:105 +msgid "Star Posts" +msgstr "" + +#: include/features.php:105 +msgid "Ability to mark special posts with a star indicator" +msgstr "" + +#: include/features.php:106 +msgid "Mute Post Notifications" +msgstr "" + +#: include/features.php:106 +msgid "Ability to mute notifications for a thread" +msgstr "" + +#: include/features.php:111 +msgid "Advanced Profile Settings" +msgstr "" + +#: include/features.php:112 +msgid "Show visitors public community forums at the Advanced Profile Page" +msgstr "" + +#: include/nav.php:35 mod/navigation.php:19 +msgid "Nothing new here" +msgstr "Ekkert nýtt hér" + +#: include/nav.php:39 mod/navigation.php:23 +msgid "Clear notifications" +msgstr "Hreinsa tilkynningar" + +#: include/nav.php:75 view/theme/frio/theme.php:243 +msgid "End this session" +msgstr "Loka þessu innliti" + +#: include/nav.php:78 include/nav.php:163 view/theme/frio/theme.php:246 +#: view/theme/diabook/theme.php:123 +msgid "Your posts and conversations" +msgstr "Samtölin þín" + +#: include/nav.php:79 view/theme/frio/theme.php:247 +#: view/theme/diabook/theme.php:124 +msgid "Your profile page" +msgstr "Forsíðan þín" + +#: include/nav.php:80 view/theme/frio/theme.php:248 +#: view/theme/diabook/theme.php:126 +msgid "Your photos" +msgstr "Myndirnar þínar" + +#: include/nav.php:81 view/theme/frio/theme.php:249 +msgid "Your videos" +msgstr "Myndskeiðin þín" + +#: include/nav.php:82 view/theme/frio/theme.php:250 +#: view/theme/diabook/theme.php:127 +msgid "Your events" +msgstr "Atburðirnir þínir" + +#: include/nav.php:83 view/theme/diabook/theme.php:128 +msgid "Personal notes" +msgstr "Einkaglósur" + +#: include/nav.php:83 +msgid "Your personal notes" +msgstr "Einkaglósurnar þínar" + +#: include/nav.php:94 +msgid "Sign in" +msgstr "Innskrá" + +#: include/nav.php:107 include/nav.php:163 mod/notifications.php:99 +#: view/theme/diabook/theme.php:123 +msgid "Home" +msgstr "Heim" + +#: include/nav.php:107 +msgid "Home Page" +msgstr "Heimasíða" + +#: include/nav.php:111 +msgid "Create an account" +msgstr "Stofna notanda" + +#: include/nav.php:116 mod/help.php:47 view/theme/vier/theme.php:298 +msgid "Help" +msgstr "Hjálp" + +#: include/nav.php:116 +msgid "Help and documentation" +msgstr "Hjálp og leiðbeiningar" + +#: include/nav.php:119 +msgid "Apps" +msgstr "Forrit" + +#: include/nav.php:119 +msgid "Addon applications, utilities, games" +msgstr "Viðbótarforrit, nytjatól, leikir" + +#: include/nav.php:122 +msgid "Search site content" +msgstr "Leita í efni á vef" + +#: include/nav.php:141 include/nav.php:143 mod/community.php:36 +#: view/theme/diabook/theme.php:129 +msgid "Community" +msgstr "Samfélag" + +#: include/nav.php:141 +msgid "Conversations on this site" +msgstr "Samtöl á þessum vef" + +#: include/nav.php:143 +msgid "Conversations on the network" +msgstr "Samtöl á þessu neti" + +#: include/nav.php:148 +msgid "Directory" +msgstr "Tengiliðalisti" + +#: include/nav.php:148 +msgid "People directory" +msgstr "Nafnaskrá" + +#: include/nav.php:150 +msgid "Information" +msgstr "Upplýsingar" + +#: include/nav.php:150 +msgid "Information about this friendica instance" +msgstr "Upplýsingar um þetta tilvik Friendica" + +#: include/nav.php:160 mod/notifications.php:87 mod/admin.php:402 +#: view/theme/frio/theme.php:253 +msgid "Network" +msgstr "Samfélag" + +#: include/nav.php:160 view/theme/frio/theme.php:253 +msgid "Conversations from your friends" +msgstr "Samtöl frá vinum" + +#: include/nav.php:161 +msgid "Network Reset" +msgstr "Núllstilling netkerfis" + +#: include/nav.php:161 +msgid "Load Network page with no filters" +msgstr "" + +#: include/nav.php:168 mod/notifications.php:105 +msgid "Introductions" +msgstr "Kynningar" + +#: include/nav.php:168 +msgid "Friend Requests" +msgstr "Vinabeiðnir" + +#: include/nav.php:171 mod/notifications.php:271 +msgid "Notifications" +msgstr "Tilkynningar" + +#: include/nav.php:172 +msgid "See all notifications" +msgstr "Sjá allar tilkynningar" + +#: include/nav.php:173 mod/settings.php:887 +msgid "Mark as seen" +msgstr "Merka sem séð" + +#: include/nav.php:173 +msgid "Mark all system notifications seen" +msgstr "Merkja allar tilkynningar sem séðar" + +#: include/nav.php:177 mod/message.php:190 view/theme/frio/theme.php:255 +msgid "Messages" +msgstr "Skilaboð" + +#: include/nav.php:177 view/theme/frio/theme.php:255 +msgid "Private mail" +msgstr "Einka skilaboð" + +#: include/nav.php:178 +msgid "Inbox" +msgstr "Innhólf" + +#: include/nav.php:179 +msgid "Outbox" +msgstr "Úthólf" + +#: include/nav.php:180 mod/message.php:16 +msgid "New Message" +msgstr "Ný skilaboð" + +#: include/nav.php:183 +msgid "Manage" +msgstr "Umsýsla" + +#: include/nav.php:183 +msgid "Manage other pages" +msgstr "Sýsla með aðrar síður" + +#: include/nav.php:186 mod/settings.php:81 +msgid "Delegations" +msgstr "" + +#: include/nav.php:186 mod/delegate.php:130 +msgid "Delegate Page Management" +msgstr "" + +#: include/nav.php:188 mod/admin.php:1498 mod/admin.php:1756 +#: mod/newmember.php:22 mod/settings.php:111 view/theme/frio/theme.php:256 +#: view/theme/diabook/theme.php:544 view/theme/diabook/theme.php:648 +msgid "Settings" +msgstr "Stillingar" + +#: include/nav.php:188 view/theme/frio/theme.php:256 +msgid "Account settings" +msgstr "Stillingar aðgangsreiknings" + +#: include/nav.php:191 +msgid "Manage/Edit Profiles" +msgstr "Sýsla með forsíður" + +#: include/nav.php:193 view/theme/frio/theme.php:257 +msgid "Manage/edit friends and contacts" +msgstr "Sýsla með vini og tengiliði" + +#: include/nav.php:200 mod/admin.php:186 +msgid "Admin" +msgstr "Stjórnborð" + +#: include/nav.php:200 +msgid "Site setup and configuration" +msgstr "Uppsetning og stillingar vefsvæðis" + +#: include/nav.php:204 +msgid "Navigation" +msgstr "Yfirsýn" + +#: include/nav.php:204 +msgid "Site map" +msgstr "Yfirlit um vefsvæði" + +#: include/like.php:186 #, php-format -msgid "Please visit %s if you wish to make any changes to this relationship." +msgid "%1$s is attending %2$s's %3$s" msgstr "" -#: ../../include/enotify.php:307 +#: include/like.php:188 #, php-format -msgid "" -"'%1$s' has chosen to accept you a \"fan\", which restricts some forms of " -"communication - such as private messaging and some profile interactions. If " -"this is a celebrity or community page, these settings were applied " -"automatically." +msgid "%1$s is not attending %2$s's %3$s" msgstr "" -#: ../../include/enotify.php:309 +#: include/like.php:190 #, php-format -msgid "" -"'%1$s' may choose to extend this into a two-way or more permissive " -"relationship in the future. " +msgid "%1$s may attend %2$s's %3$s" msgstr "" -#: ../../include/enotify.php:322 -msgid "[Friendica System:Notify] registration request" -msgstr "" +#: include/acl_selectors.php:327 +msgid "Post to Email" +msgstr "Senda skilaboð á tölvupóst" -#: ../../include/enotify.php:323 +#: include/acl_selectors.php:332 #, php-format -msgid "You've received a registration request from '%1$s' at %2$s" +msgid "Connectors disabled, since \"%s\" is enabled." msgstr "" -#: ../../include/enotify.php:324 -#, php-format -msgid "You've received a [url=%1$s]registration request[/url] from %2$s." -msgstr "" +#: include/acl_selectors.php:333 mod/settings.php:1131 +msgid "Hide your profile details from unknown viewers?" +msgstr "Fela forsíðuupplýsingar fyrir óþekktum?" -#: ../../include/enotify.php:327 -#, php-format -msgid "Full Name:\t%1$s\\nSite Location:\t%2$s\\nLogin Name:\t%3$s (%4$s)" -msgstr "" +#: include/acl_selectors.php:338 +msgid "Visible to everybody" +msgstr "Sjáanlegt öllum" -#: ../../include/enotify.php:330 -#, php-format -msgid "Please visit %s to approve or reject the request." -msgstr "" +#: include/acl_selectors.php:339 view/theme/vier/config.php:103 +#: view/theme/diabook/theme.php:621 view/theme/diabook/config.php:142 +msgid "show" +msgstr "sýna" -#: ../../include/oembed.php:212 -msgid "Embedded content" -msgstr "Innbyggt efni" +#: include/acl_selectors.php:340 view/theme/vier/config.php:103 +#: view/theme/diabook/theme.php:621 view/theme/diabook/config.php:142 +msgid "don't show" +msgstr "fela" -#: ../../include/oembed.php:221 -msgid "Embedding disabled" -msgstr "Innfelling ekki leyfð" +#: include/acl_selectors.php:346 mod/editpost.php:133 +msgid "CC: email addresses" +msgstr "CC: tölvupóstfang" -#: ../../include/uimport.php:94 -msgid "Error decoding account file" -msgstr "" +#: include/acl_selectors.php:347 mod/editpost.php:140 +msgid "Example: bob@example.com, mary@example.com" +msgstr "Dæmi: bibbi@vefur.is, mgga@vefur.is" -#: ../../include/uimport.php:100 -msgid "Error! No version data in file! This is not a Friendica account file?" -msgstr "" +#: include/acl_selectors.php:349 mod/photos.php:1177 mod/photos.php:1562 +msgid "Permissions" +msgstr "Aðgangsheimildir" -#: ../../include/uimport.php:116 ../../include/uimport.php:127 -msgid "Error! Cannot check nickname" -msgstr "" +#: include/acl_selectors.php:350 +msgid "Close" +msgstr "Loka" -#: ../../include/uimport.php:120 ../../include/uimport.php:131 -#, php-format -msgid "User '%s' already exists on this server!" -msgstr "" +#: include/message.php:15 include/message.php:173 +msgid "[no subject]" +msgstr "[ekkert efni]" -#: ../../include/uimport.php:153 -msgid "User creation error" -msgstr "" +#: index.php:240 mod/apps.php:7 +msgid "You must be logged in to use addons. " +msgstr "Þú verður að vera skráður inn til að geta notað viðbætur. " -#: ../../include/uimport.php:171 -msgid "User profile creation error" -msgstr "" +#: index.php:284 mod/help.php:53 mod/p.php:16 mod/p.php:43 mod/p.php:52 +#: mod/fetch.php:12 mod/fetch.php:39 mod/fetch.php:48 +msgid "Not Found" +msgstr "Fannst ekki" -#: ../../include/uimport.php:220 -#, php-format -msgid "%d contact not imported" -msgid_plural "%d contacts not imported" -msgstr[0] "" -msgstr[1] "" +#: index.php:287 mod/help.php:56 +msgid "Page not found." +msgstr "Síða fannst ekki." -#: ../../include/uimport.php:290 -msgid "Done. You can now login with your username and password" -msgstr "" +#: index.php:396 mod/profperm.php:19 mod/group.php:72 +msgid "Permission denied" +msgstr "Bannaður aðgangur" -#: ../../index.php:428 +#: index.php:447 msgid "toggle mobile" msgstr "" -#: ../../view/theme/cleanzero/config.php:82 -#: ../../view/theme/dispy/config.php:72 ../../view/theme/quattro/config.php:66 -#: ../../view/theme/diabook/config.php:150 ../../view/theme/vier/config.php:55 -#: ../../view/theme/duepuntozero/config.php:61 +#: mod/regmod.php:55 +msgid "Account approved." +msgstr "Notandi samþykktur." + +#: mod/regmod.php:92 +#, php-format +msgid "Registration revoked for %s" +msgstr "Skráning afturköllurð vegna %s" + +#: mod/regmod.php:104 +msgid "Please login." +msgstr "Skráðu yður inn." + +#: mod/oexchange.php:25 +msgid "Post successful." +msgstr "Melding tókst." + +#: mod/update_community.php:18 mod/update_notes.php:37 +#: mod/update_display.php:22 mod/update_profile.php:41 +#: mod/update_network.php:25 +msgid "[Embedded content - reload page to view]" +msgstr "[Innfelt efni - endurhlaða síðu til að sjá]" + +#: mod/dirfind.php:36 +#, php-format +msgid "People Search - %s" +msgstr "Leita að fólki - %s" + +#: mod/dirfind.php:47 +#, php-format +msgid "Forum Search - %s" +msgstr "Leita á spjallsvæði - %s" + +#: mod/dirfind.php:240 mod/match.php:107 +msgid "No matches" +msgstr "Engar leitarniðurstöður" + +#: mod/viewsrc.php:7 +msgid "Access denied." +msgstr "Aðgangi hafnað." + +#: mod/home.php:35 +#, php-format +msgid "Welcome to %s" +msgstr "Velkomin í %s" + +#: mod/notify.php:60 mod/notifications.php:387 +msgid "No more system notifications." +msgstr "Ekki fleiri kerfistilkynningar." + +#: mod/notify.php:64 mod/notifications.php:391 +msgid "System Notifications" +msgstr "Kerfistilkynningar" + +#: mod/search.php:25 mod/network.php:191 +msgid "Remove term" +msgstr "Fjarlæga gildi" + +#: mod/search.php:93 mod/search.php:99 mod/directory.php:37 +#: mod/viewcontacts.php:35 mod/videos.php:197 mod/photos.php:963 +#: mod/display.php:199 mod/community.php:22 mod/dfrn_request.php:789 +msgid "Public access denied." +msgstr "Alemennings aðgangur ekki veittur." + +#: mod/search.php:100 +msgid "Only logged in users are permitted to perform a search." +msgstr "Aðeins innskráðir notendur geta framkvæmt leit." + +#: mod/search.php:124 +msgid "Too Many Requests" +msgstr "Of margar beiðnir" + +#: mod/search.php:125 +msgid "Only one search per minute is permitted for not logged in users." +msgstr "Notendur sem ekki eru innskráðir geta aðeins framkvæmt eina leit á mínútu." + +#: mod/search.php:224 mod/community.php:66 mod/community.php:75 +msgid "No results." +msgstr "Engar leitarniðurstöður." + +#: mod/search.php:230 +#, php-format +msgid "Items tagged with: %s" +msgstr "Atriði merkt með: %s" + +#: mod/search.php:232 mod/contacts.php:790 mod/network.php:146 +#, php-format +msgid "Results for: %s" +msgstr "Niðurstöður fyrir: %s" + +#: mod/notifications.php:29 +msgid "Invalid request identifier." +msgstr "Ógilt auðkenni beiðnar." + +#: mod/notifications.php:38 mod/notifications.php:182 +#: mod/notifications.php:262 +msgid "Discard" +msgstr "Henda" + +#: mod/notifications.php:54 mod/notifications.php:181 +#: mod/notifications.php:261 mod/contacts.php:604 mod/contacts.php:799 +#: mod/contacts.php:1000 +msgid "Ignore" +msgstr "Hunsa" + +#: mod/notifications.php:81 +msgid "System" +msgstr "Kerfi" + +#: mod/notifications.php:93 mod/profiles.php:696 mod/network.php:844 +msgid "Personal" +msgstr "Einka" + +#: mod/notifications.php:130 +msgid "Show Ignored Requests" +msgstr "Sýna hunsaðar beiðnir" + +#: mod/notifications.php:130 +msgid "Hide Ignored Requests" +msgstr "Fela hunsaðar beiðnir" + +#: mod/notifications.php:166 mod/notifications.php:236 +msgid "Notification type: " +msgstr "Gerð skilaboða: " + +#: mod/notifications.php:167 +msgid "Friend Suggestion" +msgstr "Vina tillaga" + +#: mod/notifications.php:169 +#, php-format +msgid "suggested by %s" +msgstr "stungið uppá af %s" + +#: mod/notifications.php:174 mod/notifications.php:253 mod/contacts.php:610 +msgid "Hide this contact from others" +msgstr "Gera þennan notanda ósýnilegan öðrum" + +#: mod/notifications.php:175 mod/notifications.php:254 +msgid "Post a new friend activity" +msgstr "Búa til færslu um nýjan vin" + +#: mod/notifications.php:175 mod/notifications.php:254 +msgid "if applicable" +msgstr "ef við á" + +#: mod/notifications.php:178 mod/notifications.php:259 mod/admin.php:1386 +msgid "Approve" +msgstr "Samþykkja" + +#: mod/notifications.php:198 +msgid "Claims to be known to you: " +msgstr "Þykist þekkja þig:" + +#: mod/notifications.php:198 +msgid "yes" +msgstr "já" + +#: mod/notifications.php:198 +msgid "no" +msgstr "nei" + +#: mod/notifications.php:199 +msgid "" +"Shall your connection be bidirectional or not? \"Friend\" implies that you " +"allow to read and you subscribe to their posts. \"Fan/Admirer\" means that " +"you allow to read but you do not want to read theirs. Approve as: " +msgstr "" + +#: mod/notifications.php:202 +msgid "" +"Shall your connection be bidirectional or not? \"Friend\" implies that you " +"allow to read and you subscribe to their posts. \"Sharer\" means that you " +"allow to read but you do not want to read theirs. Approve as: " +msgstr "" + +#: mod/notifications.php:210 +msgid "Friend" +msgstr "Vin" + +#: mod/notifications.php:211 +msgid "Sharer" +msgstr "Deilir" + +#: mod/notifications.php:211 +msgid "Fan/Admirer" +msgstr "Fylgjandi/Aðdáandi" + +#: mod/notifications.php:237 +msgid "Friend/Connect Request" +msgstr "Vinabeiðni/Tengibeiðni" + +#: mod/notifications.php:237 +msgid "New Follower" +msgstr "Nýr fylgjandi" + +#: mod/notifications.php:257 mod/contacts.php:621 mod/follow.php:126 +msgid "Profile URL" +msgstr "Slóð á forsíðu" + +#: mod/notifications.php:268 +msgid "No introductions." +msgstr "Engar kynningar." + +#: mod/notifications.php:309 mod/notifications.php:438 +#: mod/notifications.php:529 +#, php-format +msgid "%s liked %s's post" +msgstr "%s líkaði færsla hjá %s" + +#: mod/notifications.php:319 mod/notifications.php:448 +#: mod/notifications.php:539 +#, php-format +msgid "%s disliked %s's post" +msgstr "%s mislíkaði færsla hjá %s" + +#: mod/notifications.php:334 mod/notifications.php:463 +#: mod/notifications.php:554 +#, php-format +msgid "%s is now friends with %s" +msgstr "%s er nú vinur %s" + +#: mod/notifications.php:341 mod/notifications.php:470 +#, php-format +msgid "%s created a new post" +msgstr "%s bjó til færslu" + +#: mod/notifications.php:342 mod/notifications.php:471 +#: mod/notifications.php:564 +#, php-format +msgid "%s commented on %s's post" +msgstr "%s athugasemd við %s's færslu" + +#: mod/notifications.php:357 +msgid "No more network notifications." +msgstr "Engar tilkynningar á neti." + +#: mod/notifications.php:361 +msgid "Network Notifications" +msgstr "Tilkynningar á neti" + +#: mod/notifications.php:486 +msgid "No more personal notifications." +msgstr "Engar einka tilkynningar." + +#: mod/notifications.php:490 +msgid "Personal Notifications" +msgstr "Einkatilkynningar." + +#: mod/notifications.php:571 +msgid "No more home notifications." +msgstr "Ekki fleiri heima tilkynningar" + +#: mod/notifications.php:575 +msgid "Home Notifications" +msgstr "Tilkynningar frá heimasvæði" + +#: mod/dfrn_confirm.php:65 mod/profiles.php:18 mod/profiles.php:133 +#: mod/profiles.php:179 mod/profiles.php:610 +msgid "Profile not found." +msgstr "Forsíða fannst ekki." + +#: mod/dfrn_confirm.php:121 mod/fsuggest.php:20 mod/fsuggest.php:92 +#: mod/crepair.php:114 +msgid "Contact not found." +msgstr "Tengiliður fannst ekki." + +#: mod/dfrn_confirm.php:122 +msgid "" +"This may occasionally happen if contact was requested by both persons and it" +" has already been approved." +msgstr "" + +#: mod/dfrn_confirm.php:241 +msgid "Response from remote site was not understood." +msgstr "Ekki tókst að skilja svar frá ytri vef." + +#: mod/dfrn_confirm.php:250 mod/dfrn_confirm.php:255 +msgid "Unexpected response from remote site: " +msgstr "Óskiljanlegt svar frá ytri vef:" + +#: mod/dfrn_confirm.php:264 +msgid "Confirmation completed successfully." +msgstr "Staðfesting kláraði eðlilega." + +#: mod/dfrn_confirm.php:266 mod/dfrn_confirm.php:280 mod/dfrn_confirm.php:287 +msgid "Remote site reported: " +msgstr "Ytri vefur svaraði:" + +#: mod/dfrn_confirm.php:278 +msgid "Temporary failure. Please wait and try again." +msgstr "Tímabundin villa. Bíddu aðeins og reyndu svo aftur." + +#: mod/dfrn_confirm.php:285 +msgid "Introduction failed or was revoked." +msgstr "Kynning mistókst eða var afturkölluð." + +#: mod/dfrn_confirm.php:414 +msgid "Unable to set contact photo." +msgstr "Ekki tókst að setja tengiliðamynd." + +#: mod/dfrn_confirm.php:552 +#, php-format +msgid "No user record found for '%s' " +msgstr "Engin notandafærsla fannst fyrir '%s'" + +#: mod/dfrn_confirm.php:562 +msgid "Our site encryption key is apparently messed up." +msgstr "Dulkóðunnar lykill síðunnar okker er í döðlu." + +#: mod/dfrn_confirm.php:573 +msgid "Empty site URL was provided or URL could not be decrypted by us." +msgstr "Tómt slóð var uppgefin eða ekki okkur tókst ekki að afkóða slóð." + +#: mod/dfrn_confirm.php:594 +msgid "Contact record was not found for you on our site." +msgstr "Tengiliðafærslan þín fannst ekki á þjóninum okkar." + +#: mod/dfrn_confirm.php:608 +#, php-format +msgid "Site public key not available in contact record for URL %s." +msgstr "Opinber lykill er ekki til í tengiliðafærslu fyrir slóð %s." + +#: mod/dfrn_confirm.php:628 +msgid "" +"The ID provided by your system is a duplicate on our system. It should work " +"if you try again." +msgstr "Skilríkið sem þjónninn þinn gaf upp er þegar afritað á okkar þjón. Þetta ætti að virka ef þú bara reynir aftur." + +#: mod/dfrn_confirm.php:639 +msgid "Unable to set your contact credentials on our system." +msgstr "Ekki tókst að setja tengiliða skilríkið þitt upp á þjóninum okkar." + +#: mod/dfrn_confirm.php:698 +msgid "Unable to update your contact profile details on our system" +msgstr "Ekki tókst að uppfæra tengiliða skilríkis upplýsingarnar á okkar þjón" + +#: mod/dfrn_confirm.php:770 +#, php-format +msgid "%1$s has joined %2$s" +msgstr "%1$s hefur gengið til liðs við %2$s" + +#: mod/friendica.php:70 +msgid "This is Friendica, version" +msgstr "Þetta er Friendica útgáfa" + +#: mod/friendica.php:71 +msgid "running at web location" +msgstr "Keyrir á slóð" + +#: mod/friendica.php:73 +msgid "" +"Please visit Friendica.com to learn " +"more about the Friendica project." +msgstr "Á Friendica.com er hægt að fræðast nánar um Friendica verkefnið." + +#: mod/friendica.php:75 +msgid "Bug reports and issues: please visit" +msgstr "Villu tilkynningar og vandamál: endilega skoða" + +#: mod/friendica.php:75 +msgid "the bugtracker at github" +msgstr "villuskráningu á GitHub" + +#: mod/friendica.php:76 +msgid "" +"Suggestions, praise, donations, etc. - please email \"Info\" at Friendica - " +"dot com" +msgstr "Uppástungur, lof, framlög og svo framvegis - sendið tölvupóst á \"Info\" hjá Friendica - punktur com" + +#: mod/friendica.php:90 +msgid "Installed plugins/addons/apps:" +msgstr "Uppsettar kerfiseiningar/viðbætur/forrit:" + +#: mod/friendica.php:103 +msgid "No installed plugins/addons/apps" +msgstr "Engin uppsett kerfiseining/viðbót/forrit" + +#: mod/lostpass.php:19 +msgid "No valid account found." +msgstr "Engin gildur aðgangur fannst." + +#: mod/lostpass.php:35 +msgid "Password reset request issued. Check your email." +msgstr "Gefin var beiðni um breytingu á lykilorði. Opnaðu tölvupóstinn þinn." + +#: mod/lostpass.php:42 +#, php-format +msgid "" +"\n" +"\t\tDear %1$s,\n" +"\t\t\tA request was recently received at \"%2$s\" to reset your account\n" +"\t\tpassword. In order to confirm this request, please select the verification link\n" +"\t\tbelow or paste it into your web browser address bar.\n" +"\n" +"\t\tIf you did NOT request this change, please DO NOT follow the link\n" +"\t\tprovided and ignore and/or delete this email.\n" +"\n" +"\t\tYour password will not be changed unless we can verify that you\n" +"\t\tissued this request." +msgstr "" + +#: mod/lostpass.php:53 +#, php-format +msgid "" +"\n" +"\t\tFollow this link to verify your identity:\n" +"\n" +"\t\t%1$s\n" +"\n" +"\t\tYou will then receive a follow-up message containing the new password.\n" +"\t\tYou may change that password from your account settings page after logging in.\n" +"\n" +"\t\tThe login details are as follows:\n" +"\n" +"\t\tSite Location:\t%2$s\n" +"\t\tLogin Name:\t%3$s" +msgstr "" + +#: mod/lostpass.php:72 +#, php-format +msgid "Password reset requested at %s" +msgstr "Beðið var um endurstillingu lykilorðs %s" + +#: mod/lostpass.php:92 +msgid "" +"Request could not be verified. (You may have previously submitted it.) " +"Password reset failed." +msgstr "Ekki var hægt að sannreyna beiðni. (Það getur verið að þú hafir þegar verið búin/n að senda hana.) Endurstilling á lykilorði tókst ekki." + +#: mod/lostpass.php:110 +msgid "Your password has been reset as requested." +msgstr "Aðgangsorðið þitt hefur verið endurstilt." + +#: mod/lostpass.php:111 +msgid "Your new password is" +msgstr "Nýja aðgangsorð þitt er " + +#: mod/lostpass.php:112 +msgid "Save or copy your new password - and then" +msgstr "Vistaðu eða afritaðu nýja aðgangsorðið - og" + +#: mod/lostpass.php:113 +msgid "click here to login" +msgstr "smelltu síðan hér til að skrá þig inn" + +#: mod/lostpass.php:114 +msgid "" +"Your password may be changed from the Settings page after " +"successful login." +msgstr "Þú getur breytt aðgangsorðinu þínu á Stillingar síðunni eftir að þú hefur skráð þig inn." + +#: mod/lostpass.php:125 +#, php-format +msgid "" +"\n" +"\t\t\t\tDear %1$s,\n" +"\t\t\t\t\tYour password has been changed as requested. Please retain this\n" +"\t\t\t\tinformation for your records (or change your password immediately to\n" +"\t\t\t\tsomething that you will remember).\n" +"\t\t\t" +msgstr "" + +#: mod/lostpass.php:131 +#, php-format +msgid "" +"\n" +"\t\t\t\tYour login details are as follows:\n" +"\n" +"\t\t\t\tSite Location:\t%1$s\n" +"\t\t\t\tLogin Name:\t%2$s\n" +"\t\t\t\tPassword:\t%3$s\n" +"\n" +"\t\t\t\tYou may change that password from your account settings page after logging in.\n" +"\t\t\t" +msgstr "" + +#: mod/lostpass.php:147 +#, php-format +msgid "Your password has been changed at %s" +msgstr "Aðgangsorðinu þínu var breytt í %s" + +#: mod/lostpass.php:159 +msgid "Forgot your Password?" +msgstr "Gleymdir þú lykilorði þínu?" + +#: mod/lostpass.php:160 +msgid "" +"Enter your email address and submit to have your password reset. Then check " +"your email for further instructions." +msgstr "Sláðu inn tölvupóstfangið þitt til að endurstilla aðgangsorðið og fá leiðbeiningar sendar með tölvupósti." + +#: mod/lostpass.php:162 +msgid "Reset" +msgstr "Endursetja" + +#: mod/hcard.php:10 +msgid "No profile" +msgstr "Engin forsíða" + +#: mod/help.php:41 +msgid "Help:" +msgstr "Hjálp:" + +#: mod/wall_upload.php:20 mod/wall_upload.php:33 mod/wall_upload.php:86 +#: mod/wall_upload.php:122 mod/wall_upload.php:125 mod/wall_attach.php:17 +#: mod/wall_attach.php:25 mod/wall_attach.php:76 +msgid "Invalid request." +msgstr "Ógild fyrirspurn." + +#: mod/wall_upload.php:151 mod/photos.php:805 mod/profile_photo.php:150 +#, php-format +msgid "Image exceeds size limit of %s" +msgstr "" + +#: mod/wall_upload.php:188 mod/photos.php:845 mod/profile_photo.php:159 +msgid "Unable to process image." +msgstr "Ekki mögulegt afgreiða mynd" + +#: mod/wall_upload.php:221 mod/photos.php:872 mod/profile_photo.php:307 +msgid "Image upload failed." +msgstr "Ekki hægt að hlaða upp mynd." + +#: mod/fsuggest.php:63 +msgid "Friend suggestion sent." +msgstr "Vina tillaga send" + +#: mod/fsuggest.php:97 +msgid "Suggest Friends" +msgstr "Stinga uppá vinum" + +#: mod/fsuggest.php:99 +#, php-format +msgid "Suggest a friend for %s" +msgstr "Stinga uppá vin fyrir %s" + +#: mod/fsuggest.php:107 mod/events.php:507 mod/invite.php:140 +#: mod/crepair.php:179 mod/content.php:728 mod/profiles.php:681 +#: mod/poke.php:199 mod/photos.php:1124 mod/photos.php:1248 +#: mod/photos.php:1566 mod/photos.php:1617 mod/photos.php:1665 +#: mod/photos.php:1753 mod/install.php:272 mod/install.php:312 +#: mod/contacts.php:575 mod/mood.php:137 mod/localtime.php:45 +#: mod/message.php:357 mod/message.php:547 mod/manage.php:143 +#: object/Item.php:720 view/theme/frio/config.php:59 +#: view/theme/cleanzero/config.php:80 view/theme/quattro/config.php:64 +#: view/theme/dispy/config.php:70 view/theme/vier/config.php:107 +#: view/theme/diabook/theme.php:633 view/theme/diabook/config.php:148 +#: view/theme/duepuntozero/config.php:59 +msgid "Submit" +msgstr "Senda inn" + +#: mod/lockview.php:31 mod/lockview.php:39 +msgid "Remote privacy information not available." +msgstr "Persónuverndar upplýsingar ekki fyrir hendi á fjarlægum vefþjón." + +#: mod/lockview.php:48 +msgid "Visible to:" +msgstr "Sýnilegt eftirfarandi:" + +#: mod/events.php:95 mod/events.php:97 +msgid "Event can not end before it has started." +msgstr "" + +#: mod/events.php:104 mod/events.php:106 +msgid "Event title and start time are required." +msgstr "" + +#: mod/events.php:380 mod/cal.php:279 +msgid "View" +msgstr "Skoða" + +#: mod/events.php:381 +msgid "Create New Event" +msgstr "Stofna nýjan atburð" + +#: mod/events.php:382 mod/cal.php:280 +msgid "Previous" +msgstr "Fyrra" + +#: mod/events.php:383 mod/cal.php:281 mod/install.php:231 +msgid "Next" +msgstr "Næsta" + +#: mod/events.php:483 +msgid "Event details" +msgstr "Nánar um atburð" + +#: mod/events.php:484 +msgid "Starting date and Title are required." +msgstr "" + +#: mod/events.php:485 mod/events.php:486 +msgid "Event Starts:" +msgstr "Atburður hefst:" + +#: mod/events.php:485 mod/events.php:497 mod/profiles.php:709 +msgid "Required" +msgstr "Nauðsynlegt" + +#: mod/events.php:487 mod/events.php:503 +msgid "Finish date/time is not known or not relevant" +msgstr "Loka dagsetning/tímasetning ekki vituð eða skiptir ekki máli" + +#: mod/events.php:489 mod/events.php:490 +msgid "Event Finishes:" +msgstr "Atburður klárar:" + +#: mod/events.php:491 mod/events.php:504 +msgid "Adjust for viewer timezone" +msgstr "Heimfæra á tímabelti áhorfanda" + +#: mod/events.php:493 +msgid "Description:" +msgstr "Lýsing:" + +#: mod/events.php:497 mod/events.php:499 +msgid "Title:" +msgstr "Titill:" + +#: mod/events.php:500 mod/events.php:501 +msgid "Share this event" +msgstr "Deila þessum atburði" + +#: mod/directory.php:205 view/theme/vier/theme.php:201 +#: view/theme/diabook/theme.php:525 +msgid "Global Directory" +msgstr "Alheimstengiliðaskrá" + +#: mod/directory.php:207 +msgid "Find on this site" +msgstr "Leita á þessum vef" + +#: mod/directory.php:209 +msgid "Results for:" +msgstr "Niðurstöður fyrir:" + +#: mod/directory.php:211 +msgid "Site Directory" +msgstr "Skrá yfir tengiliði á þessum vef" + +#: mod/directory.php:218 +msgid "No entries (some entries may be hidden)." +msgstr "Engar færslur (sumar geta verið faldar)." + +#: mod/openid.php:24 +msgid "OpenID protocol error. No ID returned." +msgstr "Samskiptavilla í OpenID. Ekkert auðkenni barst." + +#: mod/openid.php:60 +msgid "" +"Account not found and OpenID registration is not permitted on this site." +msgstr "" + +#: mod/uimport.php:50 mod/register.php:191 +msgid "" +"This site has exceeded the number of allowed daily account registrations. " +"Please try again tomorrow." +msgstr "Þessi vefur hefur náð hámarks fjölda daglegra nýskráninga. Reyndu aftur á morgun." + +#: mod/uimport.php:64 mod/register.php:286 +msgid "Import" +msgstr "Flytja inn" + +#: mod/uimport.php:66 +msgid "Move account" +msgstr "Flytja aðgang" + +#: mod/uimport.php:67 +msgid "You can import an account from another Friendica server." +msgstr "" + +#: mod/uimport.php:68 +msgid "" +"You need to export your account from the old server and upload it here. We " +"will recreate your old account here with all your contacts. We will try also" +" to inform your friends that you moved here." +msgstr "" + +#: mod/uimport.php:69 +msgid "" +"This feature is experimental. We can't import contacts from the OStatus " +"network (GNU Social/Statusnet) or from Diaspora" +msgstr "" + +#: mod/uimport.php:70 +msgid "Account file" +msgstr "" + +#: mod/uimport.php:70 +msgid "" +"To export your account, go to \"Settings->Export your personal data\" and " +"select \"Export account\"" +msgstr "" + +#: mod/nogroup.php:41 mod/viewcontacts.php:97 mod/contacts.php:584 +#: mod/contacts.php:939 +#, php-format +msgid "Visit %s's profile [%s]" +msgstr "Heimsækja forsíðu %s [%s]" + +#: mod/nogroup.php:42 mod/contacts.php:940 +msgid "Edit contact" +msgstr "Breyta tengilið" + +#: mod/nogroup.php:63 +msgid "Contacts who are not members of a group" +msgstr "" + +#: mod/match.php:33 +msgid "No keywords to match. Please add keywords to your default profile." +msgstr "Engin leitarorð. Bættu við leitarorðum í sjálfgefnu forsíðuna." + +#: mod/match.php:86 +msgid "is interested in:" +msgstr "hefur áhuga á:" + +#: mod/match.php:100 +msgid "Profile Match" +msgstr "Forsíða fannst" + +#: mod/uexport.php:29 +msgid "Export account" +msgstr "" + +#: mod/uexport.php:29 +msgid "" +"Export your account info and contacts. Use this to make a backup of your " +"account and/or to move it to another server." +msgstr "" + +#: mod/uexport.php:30 +msgid "Export all" +msgstr "" + +#: mod/uexport.php:30 +msgid "" +"Export your accout info, contacts and all your items as json. Could be a " +"very big file, and could take a lot of time. Use this to make a full backup " +"of your account (photos are not exported)" +msgstr "" + +#: mod/uexport.php:37 mod/settings.php:95 +msgid "Export personal data" +msgstr "Sækja persónuleg gögn" + +#: mod/invite.php:27 +msgid "Total invitation limit exceeded." +msgstr "" + +#: mod/invite.php:49 +#, php-format +msgid "%s : Not a valid email address." +msgstr "%s : Ekki gilt póstfang" + +#: mod/invite.php:73 +msgid "Please join us on Friendica" +msgstr "" + +#: mod/invite.php:84 +msgid "Invitation limit exceeded. Please contact your site administrator." +msgstr "" + +#: mod/invite.php:89 +#, php-format +msgid "%s : Message delivery failed." +msgstr "%s : Skilaboð komust ekki til skila." + +#: mod/invite.php:93 +#, php-format +msgid "%d message sent." +msgid_plural "%d messages sent." +msgstr[0] "%d skilaboð send." +msgstr[1] "%d skilaboð send" + +#: mod/invite.php:112 +msgid "You have no more invitations available" +msgstr "Þú hefur ekki fleiri boðskort." + +#: mod/invite.php:120 +#, php-format +msgid "" +"Visit %s for a list of public sites that you can join. Friendica members on " +"other sites can all connect with each other, as well as with members of many" +" other social networks." +msgstr "" + +#: mod/invite.php:122 +#, php-format +msgid "" +"To accept this invitation, please visit and register at %s or any other " +"public Friendica website." +msgstr "" + +#: mod/invite.php:123 +#, php-format +msgid "" +"Friendica sites all inter-connect to create a huge privacy-enhanced social " +"web that is owned and controlled by its members. They can also connect with " +"many traditional social networks. See %s for a list of alternate Friendica " +"sites you can join." +msgstr "" + +#: mod/invite.php:126 +msgid "" +"Our apologies. This system is not currently configured to connect with other" +" public sites or invite members." +msgstr "" + +#: mod/invite.php:132 +msgid "Send invitations" +msgstr "Senda kynningar" + +#: mod/invite.php:133 +msgid "Enter email addresses, one per line:" +msgstr "Póstföng, eitt í hverja línu:" + +#: mod/invite.php:134 mod/wallmessage.php:151 mod/message.php:351 +#: mod/message.php:541 +msgid "Your message:" +msgstr "Skilaboðin:" + +#: mod/invite.php:135 +msgid "" +"You are cordially invited to join me and other close friends on Friendica - " +"and help us to create a better social web." +msgstr "" + +#: mod/invite.php:137 +msgid "You will need to supply this invitation code: $invite_code" +msgstr "Þú þarft að nota eftirfarandi boðskorta auðkenni: $invite_code" + +#: mod/invite.php:137 +msgid "" +"Once you have registered, please connect with me via my profile page at:" +msgstr "Þegar þú hefur nýskráð þig, hafðu samband við mig gegnum síðuna mína á:" + +#: mod/invite.php:139 +msgid "" +"For more information about the Friendica project and why we feel it is " +"important, please visit http://friendica.com" +msgstr "" + +#: mod/fbrowser.php:41 mod/fbrowser.php:62 mod/photos.php:62 +#: mod/photos.php:192 mod/photos.php:1106 mod/photos.php:1232 +#: mod/photos.php:1255 mod/photos.php:1825 mod/photos.php:1837 +#: view/theme/diabook/theme.php:499 +msgid "Contact Photos" +msgstr "Myndir tengiliðs" + +#: mod/fbrowser.php:133 +msgid "Files" +msgstr "Skrár" + +#: mod/maintenance.php:5 +msgid "System down for maintenance" +msgstr "Kerfið er óvirkt vegna viðhalds" + +#: mod/profperm.php:25 mod/profperm.php:56 +msgid "Invalid profile identifier." +msgstr "Ógilt tengiliða auðkenni" + +#: mod/profperm.php:102 +msgid "Profile Visibility Editor" +msgstr "Sýsla með sjáanleika forsíðu" + +#: mod/profperm.php:106 mod/group.php:223 +msgid "Click on a contact to add or remove." +msgstr "Ýttu á tengilið til að bæta við hóp eða taka úr hóp." + +#: mod/profperm.php:115 +msgid "Visible To" +msgstr "Sjáanlegur hverjum" + +#: mod/profperm.php:131 +msgid "All Contacts (with secure profile access)" +msgstr "Allir tengiliðir (með öruggann aðgang að forsíðu)" + +#: mod/viewcontacts.php:72 +msgid "No contacts." +msgstr "Enginn tengiliður" + +#: mod/crepair.php:87 +msgid "Contact settings applied." +msgstr "Stillingar tengiliðs uppfærðar." + +#: mod/crepair.php:89 +msgid "Contact update failed." +msgstr "Uppfærsla tengiliðs mistókst." + +#: mod/crepair.php:120 +msgid "" +"WARNING: This is highly advanced and if you enter incorrect" +" information your communications with this contact may stop working." +msgstr "AÐVÖRUN: Þetta er mjög flókið og ef þú setur inn vitlausar upplýsingar þá munu samskipti við þennan tengilið hætta að virka." + +#: mod/crepair.php:121 +msgid "" +"Please use your browser 'Back' button now if you are " +"uncertain what to do on this page." +msgstr "Notaðu \"Til baka\" hnappinn núna ef þú ert ekki viss um hvað þú eigir að gera á þessari síðu." + +#: mod/crepair.php:134 mod/crepair.php:136 +msgid "No mirroring" +msgstr "" + +#: mod/crepair.php:134 +msgid "Mirror as forwarded posting" +msgstr "" + +#: mod/crepair.php:134 mod/crepair.php:136 +msgid "Mirror as my own posting" +msgstr "" + +#: mod/crepair.php:150 +msgid "Return to contact editor" +msgstr "Fara til baka í tengiliðasýsl" + +#: mod/crepair.php:152 +msgid "Refetch contact data" +msgstr "" + +#: mod/crepair.php:153 mod/admin.php:1371 mod/admin.php:1384 +#: mod/admin.php:1396 mod/admin.php:1412 mod/settings.php:665 +#: mod/settings.php:691 +msgid "Name" +msgstr "Nafn" + +#: mod/crepair.php:154 +msgid "Account Nickname" +msgstr "Gælunafn notanda" + +#: mod/crepair.php:155 +msgid "@Tagname - overrides Name/Nickname" +msgstr "@Merkjanafn - yfirskrifar Nafn/Gælunafn" + +#: mod/crepair.php:156 +msgid "Account URL" +msgstr "Heimasíða notanda" + +#: mod/crepair.php:157 +msgid "Friend Request URL" +msgstr "Slóð vinabeiðnar" + +#: mod/crepair.php:158 +msgid "Friend Confirm URL" +msgstr "Slóð vina staðfestingar " + +#: mod/crepair.php:159 +msgid "Notification Endpoint URL" +msgstr "Slóð loka tilkynningar" + +#: mod/crepair.php:160 +msgid "Poll/Feed URL" +msgstr "Slóð á könnun/fréttastraum" + +#: mod/crepair.php:161 +msgid "New photo from this URL" +msgstr "Ný mynd frá slóð" + +#: mod/crepair.php:162 +msgid "Remote Self" +msgstr "" + +#: mod/crepair.php:165 +msgid "Mirror postings from this contact" +msgstr "" + +#: mod/crepair.php:167 +msgid "" +"Mark this contact as remote_self, this will cause friendica to repost new " +"entries from this contact." +msgstr "" + +#: mod/tagrm.php:41 +msgid "Tag removed" +msgstr "Merki fjarlægt" + +#: mod/tagrm.php:79 +msgid "Remove Item Tag" +msgstr "Fjarlægja merki " + +#: mod/tagrm.php:81 +msgid "Select a tag to remove: " +msgstr "Veldu merki til að fjarlægja:" + +#: mod/tagrm.php:93 mod/delegate.php:139 +msgid "Remove" +msgstr "Fjarlægja" + +#: mod/ping.php:272 +msgid "{0} wants to be your friend" +msgstr "{0} vill vera vinur þinn" + +#: mod/ping.php:287 +msgid "{0} sent you a message" +msgstr "{0} sendi þér skilboð" + +#: mod/ping.php:302 +msgid "{0} requested registration" +msgstr "{0} óskaði eftir skráningu" + +#: mod/admin.php:92 +msgid "Theme settings updated." +msgstr "Þemastillingar uppfærðar." + +#: mod/admin.php:156 mod/admin.php:923 +msgid "Site" +msgstr "Vefur" + +#: mod/admin.php:157 mod/admin.php:867 mod/admin.php:1379 mod/admin.php:1394 +msgid "Users" +msgstr "Notendur" + +#: mod/admin.php:158 mod/admin.php:1496 mod/admin.php:1556 mod/settings.php:74 +msgid "Plugins" +msgstr "Kerfiseiningar" + +#: mod/admin.php:159 mod/admin.php:1754 mod/admin.php:1804 +msgid "Themes" +msgstr "Þemu" + +#: mod/admin.php:160 mod/settings.php:52 +msgid "Additional features" +msgstr "Viðbótareiginleikar" + +#: mod/admin.php:161 +msgid "DB updates" +msgstr "Gagnagrunnsuppfærslur" + +#: mod/admin.php:162 mod/admin.php:397 +msgid "Inspect Queue" +msgstr "" + +#: mod/admin.php:163 mod/admin.php:363 +msgid "Federation Statistics" +msgstr "" + +#: mod/admin.php:177 mod/admin.php:188 mod/admin.php:1872 +msgid "Logs" +msgstr "Atburðaskrá" + +#: mod/admin.php:178 mod/admin.php:1939 +msgid "View Logs" +msgstr "Skoða atburðaskrár" + +#: mod/admin.php:179 +msgid "probe address" +msgstr "" + +#: mod/admin.php:180 +msgid "check webfinger" +msgstr "" + +#: mod/admin.php:187 +msgid "Plugin Features" +msgstr "Eiginleikar kerfiseiningar" + +#: mod/admin.php:189 +msgid "diagnostics" +msgstr "greining" + +#: mod/admin.php:190 +msgid "User registrations waiting for confirmation" +msgstr "Notenda nýskráningar bíða samþykkis" + +#: mod/admin.php:356 +msgid "" +"This page offers you some numbers to the known part of the federated social " +"network your Friendica node is part of. These numbers are not complete but " +"only reflect the part of the network your node is aware of." +msgstr "" + +#: mod/admin.php:357 +msgid "" +"The Auto Discovered Contact Directory feature is not enabled, it " +"will improve the data displayed here." +msgstr "" + +#: mod/admin.php:362 mod/admin.php:396 mod/admin.php:460 mod/admin.php:922 +#: mod/admin.php:1378 mod/admin.php:1495 mod/admin.php:1555 mod/admin.php:1753 +#: mod/admin.php:1803 mod/admin.php:1871 mod/admin.php:1938 +msgid "Administration" +msgstr "Stjórnun" + +#: mod/admin.php:369 +#, php-format +msgid "Currently this node is aware of %d nodes from the following platforms:" +msgstr "" + +#: mod/admin.php:399 +msgid "ID" +msgstr "" + +#: mod/admin.php:400 +msgid "Recipient Name" +msgstr "Nafn viðtakanda" + +#: mod/admin.php:401 +msgid "Recipient Profile" +msgstr "Forsíða viðtakanda" + +#: mod/admin.php:403 +msgid "Created" +msgstr "Búið til" + +#: mod/admin.php:404 +msgid "Last Tried" +msgstr "Síðast prófað" + +#: mod/admin.php:405 +msgid "" +"This page lists the content of the queue for outgoing postings. These are " +"postings the initial delivery failed for. They will be resend later and " +"eventually deleted if the delivery fails permanently." +msgstr "" + +#: mod/admin.php:424 mod/admin.php:1327 +msgid "Normal Account" +msgstr "Venjulegur notandi" + +#: mod/admin.php:425 mod/admin.php:1328 +msgid "Soapbox Account" +msgstr "Sápukassa notandi" + +#: mod/admin.php:426 mod/admin.php:1329 +msgid "Community/Celebrity Account" +msgstr "Hópa-/Stjörnusíða" + +#: mod/admin.php:427 mod/admin.php:1330 +msgid "Automatic Friend Account" +msgstr "Verður sjálfkrafa vinur notandi" + +#: mod/admin.php:428 +msgid "Blog Account" +msgstr "" + +#: mod/admin.php:429 +msgid "Private Forum" +msgstr "Einkaspjallsvæði" + +#: mod/admin.php:455 +msgid "Message queues" +msgstr "" + +#: mod/admin.php:461 +msgid "Summary" +msgstr "Samantekt" + +#: mod/admin.php:463 +msgid "Registered users" +msgstr "Skráðir notendur" + +#: mod/admin.php:465 +msgid "Pending registrations" +msgstr "Nýskráningar í bið" + +#: mod/admin.php:466 +msgid "Version" +msgstr "Útgáfa" + +#: mod/admin.php:471 +msgid "Active plugins" +msgstr "Virkar kerfiseiningar" + +#: mod/admin.php:494 +msgid "Can not parse base url. Must have at least ://" +msgstr "" + +#: mod/admin.php:795 +msgid "RINO2 needs mcrypt php extension to work." +msgstr "" + +#: mod/admin.php:803 +msgid "Site settings updated." +msgstr "Stillingar vefsvæðis uppfærðar." + +#: mod/admin.php:831 mod/settings.php:919 +msgid "No special theme for mobile devices" +msgstr "" + +#: mod/admin.php:850 +msgid "No community page" +msgstr "" + +#: mod/admin.php:851 +msgid "Public postings from users of this site" +msgstr "" + +#: mod/admin.php:852 +msgid "Global community page" +msgstr "" + +#: mod/admin.php:857 mod/contacts.php:529 +msgid "Never" +msgstr "aldrei" + +#: mod/admin.php:858 +msgid "At post arrival" +msgstr "" + +#: mod/admin.php:866 mod/contacts.php:556 +msgid "Disabled" +msgstr "Slökkt" + +#: mod/admin.php:868 +msgid "Users, Global Contacts" +msgstr "" + +#: mod/admin.php:869 +msgid "Users, Global Contacts/fallback" +msgstr "" + +#: mod/admin.php:873 +msgid "One month" +msgstr "Einn mánuður" + +#: mod/admin.php:874 +msgid "Three months" +msgstr "Þrír mánuðir" + +#: mod/admin.php:875 +msgid "Half a year" +msgstr "Hálft ár" + +#: mod/admin.php:876 +msgid "One year" +msgstr "Eitt ár" + +#: mod/admin.php:881 +msgid "Multi user instance" +msgstr "" + +#: mod/admin.php:904 +msgid "Closed" +msgstr "Lokað" + +#: mod/admin.php:905 +msgid "Requires approval" +msgstr "Þarf samþykki" + +#: mod/admin.php:906 +msgid "Open" +msgstr "Opið" + +#: mod/admin.php:910 +msgid "No SSL policy, links will track page SSL state" +msgstr "" + +#: mod/admin.php:911 +msgid "Force all links to use SSL" +msgstr "" + +#: mod/admin.php:912 +msgid "Self-signed certificate, use SSL for local links only (discouraged)" +msgstr "" + +#: mod/admin.php:924 mod/admin.php:1557 mod/admin.php:1805 mod/admin.php:1873 +#: mod/admin.php:2022 mod/settings.php:663 mod/settings.php:773 +#: mod/settings.php:820 mod/settings.php:889 mod/settings.php:976 +#: mod/settings.php:1214 +msgid "Save Settings" +msgstr "Vista stillingar" + +#: mod/admin.php:925 mod/register.php:263 +msgid "Registration" +msgstr "Nýskráning" + +#: mod/admin.php:926 +msgid "File upload" +msgstr "Hlaða upp skrá" + +#: mod/admin.php:927 +msgid "Policies" +msgstr "Stefna" + +#: mod/admin.php:929 +msgid "Auto Discovered Contact Directory" +msgstr "" + +#: mod/admin.php:930 +msgid "Performance" +msgstr "Afköst" + +#: mod/admin.php:931 +msgid "Worker" +msgstr "" + +#: mod/admin.php:932 +msgid "" +"Relocate - WARNING: advanced function. Could make this server unreachable." +msgstr "" + +#: mod/admin.php:935 +msgid "Site name" +msgstr "Nafn síðu" + +#: mod/admin.php:936 +msgid "Host name" +msgstr "Vélarheiti" + +#: mod/admin.php:937 +msgid "Sender Email" +msgstr "Tölvupóstfang sendanda" + +#: mod/admin.php:937 +msgid "" +"The email address your server shall use to send notification emails from." +msgstr "" + +#: mod/admin.php:938 +msgid "Banner/Logo" +msgstr "Borði/Merki" + +#: mod/admin.php:939 +msgid "Shortcut icon" +msgstr "Táknmynd flýtivísunar" + +#: mod/admin.php:939 +msgid "Link to an icon that will be used for browsers." +msgstr "" + +#: mod/admin.php:940 +msgid "Touch icon" +msgstr "" + +#: mod/admin.php:940 +msgid "Link to an icon that will be used for tablets and mobiles." +msgstr "" + +#: mod/admin.php:941 +msgid "Additional Info" +msgstr "" + +#: mod/admin.php:941 +#, php-format +msgid "" +"For public servers: you can add additional information here that will be " +"listed at %s/siteinfo." +msgstr "" + +#: mod/admin.php:942 +msgid "System language" +msgstr "Tungumál kerfis" + +#: mod/admin.php:943 +msgid "System theme" +msgstr "Þema kerfis" + +#: mod/admin.php:943 +msgid "" +"Default system theme - may be over-ridden by user profiles - change theme settings" +msgstr "" + +#: mod/admin.php:944 +msgid "Mobile system theme" +msgstr "" + +#: mod/admin.php:944 +msgid "Theme for mobile devices" +msgstr "" + +#: mod/admin.php:945 +msgid "SSL link policy" +msgstr "" + +#: mod/admin.php:945 +msgid "Determines whether generated links should be forced to use SSL" +msgstr "" + +#: mod/admin.php:946 +msgid "Force SSL" +msgstr "Þvinga SSL" + +#: mod/admin.php:946 +msgid "" +"Force all Non-SSL requests to SSL - Attention: on some systems it could lead" +" to endless loops." +msgstr "" + +#: mod/admin.php:947 +msgid "Old style 'Share'" +msgstr "" + +#: mod/admin.php:947 +msgid "Deactivates the bbcode element 'share' for repeating items." +msgstr "" + +#: mod/admin.php:948 +msgid "Hide help entry from navigation menu" +msgstr "" + +#: mod/admin.php:948 +msgid "" +"Hides the menu entry for the Help pages from the navigation menu. You can " +"still access it calling /help directly." +msgstr "" + +#: mod/admin.php:949 +msgid "Single user instance" +msgstr "" + +#: mod/admin.php:949 +msgid "Make this instance multi-user or single-user for the named user" +msgstr "" + +#: mod/admin.php:950 +msgid "Maximum image size" +msgstr "Mesta stærð mynda" + +#: mod/admin.php:950 +msgid "" +"Maximum size in bytes of uploaded images. Default is 0, which means no " +"limits." +msgstr "" + +#: mod/admin.php:951 +msgid "Maximum image length" +msgstr "" + +#: mod/admin.php:951 +msgid "" +"Maximum length in pixels of the longest side of uploaded images. Default is " +"-1, which means no limits." +msgstr "" + +#: mod/admin.php:952 +msgid "JPEG image quality" +msgstr "JPEG myndgæði" + +#: mod/admin.php:952 +msgid "" +"Uploaded JPEGS will be saved at this quality setting [0-100]. Default is " +"100, which is full quality." +msgstr "" + +#: mod/admin.php:954 +msgid "Register policy" +msgstr "Stefna varðandi nýskráningar" + +#: mod/admin.php:955 +msgid "Maximum Daily Registrations" +msgstr "" + +#: mod/admin.php:955 +msgid "" +"If registration is permitted above, this sets the maximum number of new user" +" registrations to accept per day. If register is set to closed, this " +"setting has no effect." +msgstr "" + +#: mod/admin.php:956 +msgid "Register text" +msgstr "Texti við nýskráningu" + +#: mod/admin.php:956 +msgid "Will be displayed prominently on the registration page." +msgstr "" + +#: mod/admin.php:957 +msgid "Accounts abandoned after x days" +msgstr "Yfirgefnir notendur eftir x daga" + +#: mod/admin.php:957 +msgid "" +"Will not waste system resources polling external sites for abandonded " +"accounts. Enter 0 for no time limit." +msgstr "Hættir að eyða afli í að sækja færslur á ytri vefi fyrir yfirgefna notendur. 0 þýðir notendur merkjast ekki yfirgefnir." + +#: mod/admin.php:958 +msgid "Allowed friend domains" +msgstr "Leyfð lén vina" + +#: mod/admin.php:958 +msgid "" +"Comma separated list of domains which are allowed to establish friendships " +"with this site. Wildcards are accepted. Empty to allow any domains" +msgstr "" + +#: mod/admin.php:959 +msgid "Allowed email domains" +msgstr "Leyfð lén póstfangs" + +#: mod/admin.php:959 +msgid "" +"Comma separated list of domains which are allowed in email addresses for " +"registrations to this site. Wildcards are accepted. Empty to allow any " +"domains" +msgstr "" + +#: mod/admin.php:960 +msgid "Block public" +msgstr "Loka á opinberar færslur" + +#: mod/admin.php:960 +msgid "" +"Check to block public access to all otherwise public personal pages on this " +"site unless you are currently logged in." +msgstr "" + +#: mod/admin.php:961 +msgid "Force publish" +msgstr "Skylda að vera í tengiliðalista" + +#: mod/admin.php:961 +msgid "" +"Check to force all profiles on this site to be listed in the site directory." +msgstr "" + +#: mod/admin.php:962 +msgid "Global directory URL" +msgstr "" + +#: mod/admin.php:962 +msgid "" +"URL to the global directory. If this is not set, the global directory is " +"completely unavailable to the application." +msgstr "" + +#: mod/admin.php:963 +msgid "Allow threaded items" +msgstr "" + +#: mod/admin.php:963 +msgid "Allow infinite level threading for items on this site." +msgstr "" + +#: mod/admin.php:964 +msgid "Private posts by default for new users" +msgstr "" + +#: mod/admin.php:964 +msgid "" +"Set default post permissions for all new members to the default privacy " +"group rather than public." +msgstr "" + +#: mod/admin.php:965 +msgid "Don't include post content in email notifications" +msgstr "" + +#: mod/admin.php:965 +msgid "" +"Don't include the content of a post/comment/private message/etc. in the " +"email notifications that are sent out from this site, as a privacy measure." +msgstr "" + +#: mod/admin.php:966 +msgid "Disallow public access to addons listed in the apps menu." +msgstr "Hindra opið aðgengi að viðbótum í forritavalmyndinni." + +#: mod/admin.php:966 +msgid "" +"Checking this box will restrict addons listed in the apps menu to members " +"only." +msgstr "Ef hakað er í þetta verður aðgengi að viðbótum í forritavalmyndinni takmarkað við meðlimi." + +#: mod/admin.php:967 +msgid "Don't embed private images in posts" +msgstr "" + +#: mod/admin.php:967 +msgid "" +"Don't replace locally-hosted private photos in posts with an embedded copy " +"of the image. This means that contacts who receive posts containing private " +"photos will have to authenticate and load each image, which may take a " +"while." +msgstr "" + +#: mod/admin.php:968 +msgid "Allow Users to set remote_self" +msgstr "" + +#: mod/admin.php:968 +msgid "" +"With checking this, every user is allowed to mark every contact as a " +"remote_self in the repair contact dialog. Setting this flag on a contact " +"causes mirroring every posting of that contact in the users stream." +msgstr "" + +#: mod/admin.php:969 +msgid "Block multiple registrations" +msgstr "Banna margar skráningar" + +#: mod/admin.php:969 +msgid "Disallow users to register additional accounts for use as pages." +msgstr "" + +#: mod/admin.php:970 +msgid "OpenID support" +msgstr "Leyfa OpenID auðkenningu" + +#: mod/admin.php:970 +msgid "OpenID support for registration and logins." +msgstr "" + +#: mod/admin.php:971 +msgid "Fullname check" +msgstr "Fullt nafn skilyrði" + +#: mod/admin.php:971 +msgid "" +"Force users to register with a space between firstname and lastname in Full " +"name, as an antispam measure" +msgstr "" + +#: mod/admin.php:972 +msgid "UTF-8 Regular expressions" +msgstr "UTF-8 hefðbundin stöfun" + +#: mod/admin.php:972 +msgid "Use PHP UTF8 regular expressions" +msgstr "" + +#: mod/admin.php:973 +msgid "Community Page Style" +msgstr "" + +#: mod/admin.php:973 +msgid "" +"Type of community page to show. 'Global community' shows every public " +"posting from an open distributed network that arrived on this server." +msgstr "" + +#: mod/admin.php:974 +msgid "Posts per user on community page" +msgstr "" + +#: mod/admin.php:974 +msgid "" +"The maximum number of posts per user on the community page. (Not valid for " +"'Global Community')" +msgstr "" + +#: mod/admin.php:975 +msgid "Enable OStatus support" +msgstr "Leyfa OStatus stuðning" + +#: mod/admin.php:975 +msgid "" +"Provide built-in OStatus (StatusNet, GNU Social etc.) compatibility. All " +"communications in OStatus are public, so privacy warnings will be " +"occasionally displayed." +msgstr "" + +#: mod/admin.php:976 +msgid "OStatus conversation completion interval" +msgstr "" + +#: mod/admin.php:976 +msgid "" +"How often shall the poller check for new entries in OStatus conversations? " +"This can be a very ressource task." +msgstr "" + +#: mod/admin.php:977 +msgid "Only import OStatus threads from our contacts" +msgstr "" + +#: mod/admin.php:977 +msgid "" +"Normally we import every content from our OStatus contacts. With this option" +" we only store threads that are started by a contact that is known on our " +"system." +msgstr "" + +#: mod/admin.php:978 +msgid "OStatus support can only be enabled if threading is enabled." +msgstr "" + +#: mod/admin.php:980 +msgid "" +"Diaspora support can't be enabled because Friendica was installed into a sub" +" directory." +msgstr "" + +#: mod/admin.php:981 +msgid "Enable Diaspora support" +msgstr "Leyfa Diaspora tengingar" + +#: mod/admin.php:981 +msgid "Provide built-in Diaspora network compatibility." +msgstr "" + +#: mod/admin.php:982 +msgid "Only allow Friendica contacts" +msgstr "Aðeins leyfa Friendica notendur" + +#: mod/admin.php:982 +msgid "" +"All contacts must use Friendica protocols. All other built-in communication " +"protocols disabled." +msgstr "" + +#: mod/admin.php:983 +msgid "Verify SSL" +msgstr "Sannreyna SSL" + +#: mod/admin.php:983 +msgid "" +"If you wish, you can turn on strict certificate checking. This will mean you" +" cannot connect (at all) to self-signed SSL sites." +msgstr "" + +#: mod/admin.php:984 +msgid "Proxy user" +msgstr "Proxy notandi" + +#: mod/admin.php:985 +msgid "Proxy URL" +msgstr "Proxy slóð" + +#: mod/admin.php:986 +msgid "Network timeout" +msgstr "Net tími útrunninn" + +#: mod/admin.php:986 +msgid "Value is in seconds. Set to 0 for unlimited (not recommended)." +msgstr "" + +#: mod/admin.php:987 +msgid "Delivery interval" +msgstr "" + +#: mod/admin.php:987 +msgid "" +"Delay background delivery processes by this many seconds to reduce system " +"load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 " +"for large dedicated servers." +msgstr "" + +#: mod/admin.php:988 +msgid "Poll interval" +msgstr "" + +#: mod/admin.php:988 +msgid "" +"Delay background polling processes by this many seconds to reduce system " +"load. If 0, use delivery interval." +msgstr "" + +#: mod/admin.php:989 +msgid "Maximum Load Average" +msgstr "Mesta meðaltals álag" + +#: mod/admin.php:989 +msgid "" +"Maximum system load before delivery and poll processes are deferred - " +"default 50." +msgstr "" + +#: mod/admin.php:990 +msgid "Maximum Load Average (Frontend)" +msgstr "" + +#: mod/admin.php:990 +msgid "Maximum system load before the frontend quits service - default 50." +msgstr "" + +#: mod/admin.php:991 +msgid "Maximum table size for optimization" +msgstr "" + +#: mod/admin.php:991 +msgid "" +"Maximum table size (in MB) for the automatic optimization - default 100 MB. " +"Enter -1 to disable it." +msgstr "" + +#: mod/admin.php:992 +msgid "Minimum level of fragmentation" +msgstr "" + +#: mod/admin.php:992 +msgid "" +"Minimum fragmenation level to start the automatic optimization - default " +"value is 30%." +msgstr "" + +#: mod/admin.php:994 +msgid "Periodical check of global contacts" +msgstr "" + +#: mod/admin.php:994 +msgid "" +"If enabled, the global contacts are checked periodically for missing or " +"outdated data and the vitality of the contacts and servers." +msgstr "" + +#: mod/admin.php:995 +msgid "Days between requery" +msgstr "" + +#: mod/admin.php:995 +msgid "Number of days after which a server is requeried for his contacts." +msgstr "" + +#: mod/admin.php:996 +msgid "Discover contacts from other servers" +msgstr "" + +#: mod/admin.php:996 +msgid "" +"Periodically query other servers for contacts. You can choose between " +"'users': the users on the remote system, 'Global Contacts': active contacts " +"that are known on the system. The fallback is meant for Redmatrix servers " +"and older friendica servers, where global contacts weren't available. The " +"fallback increases the server load, so the recommened setting is 'Users, " +"Global Contacts'." +msgstr "" + +#: mod/admin.php:997 +msgid "Timeframe for fetching global contacts" +msgstr "" + +#: mod/admin.php:997 +msgid "" +"When the discovery is activated, this value defines the timeframe for the " +"activity of the global contacts that are fetched from other servers." +msgstr "" + +#: mod/admin.php:998 +msgid "Search the local directory" +msgstr "" + +#: mod/admin.php:998 +msgid "" +"Search the local directory instead of the global directory. When searching " +"locally, every search will be executed on the global directory in the " +"background. This improves the search results when the search is repeated." +msgstr "" + +#: mod/admin.php:1000 +msgid "Publish server information" +msgstr "" + +#: mod/admin.php:1000 +msgid "" +"If enabled, general server and usage data will be published. The data " +"contains the name and version of the server, number of users with public " +"profiles, number of posts and the activated protocols and connectors. See the-federation.info for details." +msgstr "" + +#: mod/admin.php:1002 +msgid "Use MySQL full text engine" +msgstr "" + +#: mod/admin.php:1002 +msgid "" +"Activates the full text engine. Speeds up search - but can only search for " +"four and more characters." +msgstr "" + +#: mod/admin.php:1003 +msgid "Suppress Language" +msgstr "" + +#: mod/admin.php:1003 +msgid "Suppress language information in meta information about a posting." +msgstr "" + +#: mod/admin.php:1004 +msgid "Suppress Tags" +msgstr "" + +#: mod/admin.php:1004 +msgid "Suppress showing a list of hashtags at the end of the posting." +msgstr "" + +#: mod/admin.php:1005 +msgid "Path to item cache" +msgstr "" + +#: mod/admin.php:1005 +msgid "The item caches buffers generated bbcode and external images." +msgstr "" + +#: mod/admin.php:1006 +msgid "Cache duration in seconds" +msgstr "" + +#: mod/admin.php:1006 +msgid "" +"How long should the cache files be hold? Default value is 86400 seconds (One" +" day). To disable the item cache, set the value to -1." +msgstr "" + +#: mod/admin.php:1007 +msgid "Maximum numbers of comments per post" +msgstr "" + +#: mod/admin.php:1007 +msgid "How much comments should be shown for each post? Default value is 100." +msgstr "" + +#: mod/admin.php:1008 +msgid "Path for lock file" +msgstr "" + +#: mod/admin.php:1008 +msgid "" +"The lock file is used to avoid multiple pollers at one time. Only define a " +"folder here." +msgstr "" + +#: mod/admin.php:1009 +msgid "Temp path" +msgstr "" + +#: mod/admin.php:1009 +msgid "" +"If you have a restricted system where the webserver can't access the system " +"temp path, enter another path here." +msgstr "" + +#: mod/admin.php:1010 +msgid "Base path to installation" +msgstr "" + +#: mod/admin.php:1010 +msgid "" +"If the system cannot detect the correct path to your installation, enter the" +" correct path here. This setting should only be set if you are using a " +"restricted system and symbolic links to your webroot." +msgstr "" + +#: mod/admin.php:1011 +msgid "Disable picture proxy" +msgstr "" + +#: mod/admin.php:1011 +msgid "" +"The picture proxy increases performance and privacy. It shouldn't be used on" +" systems with very low bandwith." +msgstr "" + +#: mod/admin.php:1012 +msgid "Enable old style pager" +msgstr "" + +#: mod/admin.php:1012 +msgid "" +"The old style pager has page numbers but slows down massively the page " +"speed." +msgstr "" + +#: mod/admin.php:1013 +msgid "Only search in tags" +msgstr "" + +#: mod/admin.php:1013 +msgid "On large systems the text search can slow down the system extremely." +msgstr "" + +#: mod/admin.php:1015 +msgid "New base url" +msgstr "" + +#: mod/admin.php:1015 +msgid "" +"Change base url for this server. Sends relocate message to all DFRN contacts" +" of all users." +msgstr "" + +#: mod/admin.php:1017 +msgid "RINO Encryption" +msgstr "" + +#: mod/admin.php:1017 +msgid "Encryption layer between nodes." +msgstr "" + +#: mod/admin.php:1018 +msgid "Embedly API key" +msgstr "" + +#: mod/admin.php:1018 +msgid "" +"Embedly is used to fetch additional data for " +"web pages. This is an optional parameter." +msgstr "" + +#: mod/admin.php:1020 +msgid "Enable 'worker' background processing" +msgstr "" + +#: mod/admin.php:1020 +msgid "" +"The worker background processing limits the number of parallel background " +"jobs to a maximum number and respects the system load." +msgstr "" + +#: mod/admin.php:1021 +msgid "Maximum number of parallel workers" +msgstr "" + +#: mod/admin.php:1021 +msgid "" +"On shared hosters set this to 2. On larger systems, values of 10 are great. " +"Default value is 4." +msgstr "" + +#: mod/admin.php:1022 +msgid "Don't use 'proc_open' with the worker" +msgstr "" + +#: mod/admin.php:1022 +msgid "" +"Enable this if your system doesn't allow the use of 'proc_open'. This can " +"happen on shared hosters. If this is enabled you should increase the " +"frequency of poller calls in your crontab." +msgstr "" + +#: mod/admin.php:1051 +msgid "Update has been marked successful" +msgstr "Uppfærsla merkt sem tókst" + +#: mod/admin.php:1059 +#, php-format +msgid "Database structure update %s was successfully applied." +msgstr "" + +#: mod/admin.php:1062 +#, php-format +msgid "Executing of database structure update %s failed with error: %s" +msgstr "" + +#: mod/admin.php:1074 +#, php-format +msgid "Executing %s failed with error: %s" +msgstr "" + +#: mod/admin.php:1077 +#, php-format +msgid "Update %s was successfully applied." +msgstr "Uppfærsla %s framkvæmd." + +#: mod/admin.php:1081 +#, php-format +msgid "Update %s did not return a status. Unknown if it succeeded." +msgstr "Uppfærsla %s skilaði ekki gildi. Óvíst hvort tókst." + +#: mod/admin.php:1083 +#, php-format +msgid "There was no additional update function %s that needed to be called." +msgstr "" + +#: mod/admin.php:1102 +msgid "No failed updates." +msgstr "Engar uppfærslur mistókust." + +#: mod/admin.php:1103 +msgid "Check database structure" +msgstr "" + +#: mod/admin.php:1108 +msgid "Failed Updates" +msgstr "Uppfærslur sem mistókust" + +#: mod/admin.php:1109 +msgid "" +"This does not include updates prior to 1139, which did not return a status." +msgstr "Þetta á ekki við uppfærslur fyrir 1139, þær skiluðu ekki lokastöðu." + +#: mod/admin.php:1110 +msgid "Mark success (if update was manually applied)" +msgstr "Merkja sem tókst (ef uppfærsla var framkvæmd handvirkt)" + +#: mod/admin.php:1111 +msgid "Attempt to execute this update step automatically" +msgstr "Framkvæma þessa uppfærslu sjálfkrafa" + +#: mod/admin.php:1143 +#, php-format +msgid "" +"\n" +"\t\t\tDear %1$s,\n" +"\t\t\t\tthe administrator of %2$s has set up an account for you." +msgstr "" + +#: mod/admin.php:1146 +#, php-format +msgid "" +"\n" +"\t\t\tThe login details are as follows:\n" +"\n" +"\t\t\tSite Location:\t%1$s\n" +"\t\t\tLogin Name:\t\t%2$s\n" +"\t\t\tPassword:\t\t%3$s\n" +"\n" +"\t\t\tYou may change your password from your account \"Settings\" page after logging\n" +"\t\t\tin.\n" +"\n" +"\t\t\tPlease take a few moments to review the other account settings on that page.\n" +"\n" +"\t\t\tYou may also wish to add some basic information to your default profile\n" +"\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n" +"\n" +"\t\t\tWe recommend setting your full name, adding a profile photo,\n" +"\t\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n" +"\t\t\tperhaps what country you live in; if you do not wish to be more specific\n" +"\t\t\tthan that.\n" +"\n" +"\t\t\tWe fully respect your right to privacy, and none of these items are necessary.\n" +"\t\t\tIf you are new and do not know anybody here, they may help\n" +"\t\t\tyou to make some new and interesting friends.\n" +"\n" +"\t\t\tThank you and welcome to %4$s." +msgstr "" + +#: mod/admin.php:1190 +#, php-format +msgid "%s user blocked/unblocked" +msgid_plural "%s users blocked/unblocked" +msgstr[0] "" +msgstr[1] "" + +#: mod/admin.php:1197 +#, php-format +msgid "%s user deleted" +msgid_plural "%s users deleted" +msgstr[0] "%s notenda eytt" +msgstr[1] "%s notendum eytt" + +#: mod/admin.php:1244 +#, php-format +msgid "User '%s' deleted" +msgstr "Notanda '%s' eytt" + +#: mod/admin.php:1252 +#, php-format +msgid "User '%s' unblocked" +msgstr "Notanda '%s' gefið frelsi" + +#: mod/admin.php:1252 +#, php-format +msgid "User '%s' blocked" +msgstr "Notanda '%s' settur í bann" + +#: mod/admin.php:1371 mod/admin.php:1396 +msgid "Register date" +msgstr "Skráningar dagsetning" + +#: mod/admin.php:1371 mod/admin.php:1396 +msgid "Last login" +msgstr "Síðast innskráður" + +#: mod/admin.php:1371 mod/admin.php:1396 +msgid "Last item" +msgstr "Síðasta" + +#: mod/admin.php:1371 mod/settings.php:43 +msgid "Account" +msgstr "Notandi" + +#: mod/admin.php:1380 +msgid "Add User" +msgstr "" + +#: mod/admin.php:1381 +msgid "select all" +msgstr "velja alla" + +#: mod/admin.php:1382 +msgid "User registrations waiting for confirm" +msgstr "Skráning notanda býður samþykkis" + +#: mod/admin.php:1383 +msgid "User waiting for permanent deletion" +msgstr "" + +#: mod/admin.php:1384 +msgid "Request date" +msgstr "Dagsetning beiðnar" + +#: mod/admin.php:1385 +msgid "No registrations." +msgstr "Engin skráning" + +#: mod/admin.php:1387 +msgid "Deny" +msgstr "Hafnað" + +#: mod/admin.php:1389 mod/contacts.php:603 mod/contacts.php:798 +#: mod/contacts.php:992 +msgid "Block" +msgstr "Banna" + +#: mod/admin.php:1390 mod/contacts.php:603 mod/contacts.php:798 +#: mod/contacts.php:992 +msgid "Unblock" +msgstr "Afbanna" + +#: mod/admin.php:1391 +msgid "Site admin" +msgstr "Vefstjóri" + +#: mod/admin.php:1392 +msgid "Account expired" +msgstr "" + +#: mod/admin.php:1395 +msgid "New User" +msgstr "" + +#: mod/admin.php:1396 +msgid "Deleted since" +msgstr "" + +#: mod/admin.php:1401 +msgid "" +"Selected users will be deleted!\\n\\nEverything these users had posted on " +"this site will be permanently deleted!\\n\\nAre you sure?" +msgstr "Valdir notendur verður eytt!\\n\\nAllt sem þessir notendur hafa deilt á þessum vef verður varanlega eytt!\\n\\nErtu alveg viss?" + +#: mod/admin.php:1402 +msgid "" +"The user {0} will be deleted!\\n\\nEverything this user has posted on this " +"site will be permanently deleted!\\n\\nAre you sure?" +msgstr "Notandinn {0} verður eytt!\\n\\nAllt sem þessi notandi hefur deilt á þessum vef veður varanlega eytt!\\n\\nErtu alveg viss?" + +#: mod/admin.php:1412 +msgid "Name of the new user." +msgstr "" + +#: mod/admin.php:1413 +msgid "Nickname" +msgstr "" + +#: mod/admin.php:1413 +msgid "Nickname of the new user." +msgstr "" + +#: mod/admin.php:1414 +msgid "Email address of the new user." +msgstr "" + +#: mod/admin.php:1457 +#, php-format +msgid "Plugin %s disabled." +msgstr "Kerfiseining %s óvirk." + +#: mod/admin.php:1461 +#, php-format +msgid "Plugin %s enabled." +msgstr "Kveikt á kerfiseiningu %s" + +#: mod/admin.php:1472 mod/admin.php:1708 +msgid "Disable" +msgstr "Slökkva" + +#: mod/admin.php:1474 mod/admin.php:1710 +msgid "Enable" +msgstr "Kveikja" + +#: mod/admin.php:1497 mod/admin.php:1755 +msgid "Toggle" +msgstr "Skipta" + +#: mod/admin.php:1505 mod/admin.php:1764 +msgid "Author: " +msgstr "Höfundur:" + +#: mod/admin.php:1506 mod/admin.php:1765 +msgid "Maintainer: " +msgstr "" + +#: mod/admin.php:1558 +msgid "Reload active plugins" +msgstr "Endurhlaða virkar kerfiseiningar" + +#: mod/admin.php:1563 +#, php-format +msgid "" +"There are currently no plugins available on your node. You can find the " +"official plugin repository at %1$s and might find other interesting plugins " +"in the open plugin registry at %2$s" +msgstr "" + +#: mod/admin.php:1668 +msgid "No themes found." +msgstr "Engin þemu fundust" + +#: mod/admin.php:1746 +msgid "Screenshot" +msgstr "Skjámynd" + +#: mod/admin.php:1806 +msgid "Reload active themes" +msgstr "" + +#: mod/admin.php:1811 +#, php-format +msgid "No themes found on the system. They should be paced in %1$s" +msgstr "" + +#: mod/admin.php:1812 +msgid "[Experimental]" +msgstr "[Tilraun]" + +#: mod/admin.php:1813 +msgid "[Unsupported]" +msgstr "[Óstudd]" + +#: mod/admin.php:1837 +msgid "Log settings updated." +msgstr "Stillingar atburðaskrár uppfærðar. " + +#: mod/admin.php:1874 +msgid "Clear" +msgstr "Hreinsa" + +#: mod/admin.php:1879 +msgid "Enable Debugging" +msgstr "" + +#: mod/admin.php:1880 +msgid "Log file" +msgstr "Atburðaskrá" + +#: mod/admin.php:1880 +msgid "" +"Must be writable by web server. Relative to your Friendica top-level " +"directory." +msgstr "Vefþjónn verður að hafa skrifréttindi. Afstætt við Friendica rótar skráarsafn." + +#: mod/admin.php:1881 +msgid "Log level" +msgstr "Stig atburðaskráningar" + +#: mod/admin.php:1884 +msgid "PHP logging" +msgstr "" + +#: mod/admin.php:1885 +msgid "" +"To enable logging of PHP errors and warnings you can add the following to " +"the .htconfig.php file of your installation. The filename set in the " +"'error_log' line is relative to the friendica top-level directory and must " +"be writeable by the web server. The option '1' for 'log_errors' and " +"'display_errors' is to enable these options, set to '0' to disable them." +msgstr "" + +#: mod/admin.php:2011 mod/admin.php:2012 mod/settings.php:763 +msgid "Off" +msgstr "" + +#: mod/admin.php:2011 mod/admin.php:2012 mod/settings.php:763 +msgid "On" +msgstr "" + +#: mod/admin.php:2012 +#, php-format +msgid "Lock feature %s" +msgstr "" + +#: mod/admin.php:2020 +msgid "Manage Additional Features" +msgstr "" + +#: mod/wall_attach.php:94 +msgid "Sorry, maybe your upload is bigger than the PHP configuration allows" +msgstr "" + +#: mod/wall_attach.php:94 +msgid "Or - did you try to upload an empty file?" +msgstr "" + +#: mod/wall_attach.php:105 +#, php-format +msgid "File exceeds size limit of %s" +msgstr "" + +#: mod/wall_attach.php:156 mod/wall_attach.php:172 +msgid "File upload failed." +msgstr "Skráar upphlöðun mistókst." + +#: mod/allfriends.php:43 +msgid "No friends to display." +msgstr "Engir vinir til að birta." + +#: mod/cal.php:152 mod/display.php:328 mod/profile.php:155 +msgid "Access to this profile has been restricted." +msgstr "Aðgangur að þessari forsíðu hefur verið heftur." + +#: mod/cal.php:301 +msgid "User not found" +msgstr "" + +#: mod/cal.php:317 +msgid "This calendar format is not supported" +msgstr "" + +#: mod/cal.php:319 +msgid "No exportable data found" +msgstr "" + +#: mod/cal.php:327 +msgid "calendar" +msgstr "" + +#: mod/content.php:119 mod/network.php:468 +msgid "No such group" +msgstr "Hópur ekki til" + +#: mod/content.php:130 mod/network.php:495 mod/group.php:193 +msgid "Group is empty" +msgstr "Hópur er tómur" + +#: mod/content.php:135 mod/network.php:499 +#, php-format +msgid "Group: %s" +msgstr "" + +#: mod/content.php:325 object/Item.php:95 +msgid "This entry was edited" +msgstr "" + +#: mod/content.php:621 object/Item.php:429 +#, php-format +msgid "%d comment" +msgid_plural "%d comments" +msgstr[0] "%d ummæli" +msgstr[1] "%d ummæli" + +#: mod/content.php:638 mod/photos.php:1405 object/Item.php:117 +msgid "Private Message" +msgstr "Einkaskilaboð" + +#: mod/content.php:702 mod/photos.php:1594 object/Item.php:263 +msgid "I like this (toggle)" +msgstr "Mér líkar þetta (kveikja/slökkva)" + +#: mod/content.php:702 object/Item.php:263 +msgid "like" +msgstr "líkar" + +#: mod/content.php:703 mod/photos.php:1595 object/Item.php:264 +msgid "I don't like this (toggle)" +msgstr "Mér líkar þetta ekki (kveikja/slökkva)" + +#: mod/content.php:703 object/Item.php:264 +msgid "dislike" +msgstr "mislíkar" + +#: mod/content.php:705 object/Item.php:266 +msgid "Share this" +msgstr "Deila þessu" + +#: mod/content.php:705 object/Item.php:266 +msgid "share" +msgstr "deila" + +#: mod/content.php:725 mod/photos.php:1614 mod/photos.php:1662 +#: mod/photos.php:1750 object/Item.php:717 +msgid "This is you" +msgstr "Þetta ert þú" + +#: mod/content.php:729 object/Item.php:721 +msgid "Bold" +msgstr "Feitletrað" + +#: mod/content.php:730 object/Item.php:722 +msgid "Italic" +msgstr "Skáletrað" + +#: mod/content.php:731 object/Item.php:723 +msgid "Underline" +msgstr "Undirstrikað" + +#: mod/content.php:732 object/Item.php:724 +msgid "Quote" +msgstr "Gæsalappir" + +#: mod/content.php:733 object/Item.php:725 +msgid "Code" +msgstr "Kóði" + +#: mod/content.php:734 object/Item.php:726 +msgid "Image" +msgstr "Mynd" + +#: mod/content.php:735 object/Item.php:727 +msgid "Link" +msgstr "Tengill" + +#: mod/content.php:736 object/Item.php:728 +msgid "Video" +msgstr "Myndband" + +#: mod/content.php:746 mod/settings.php:725 object/Item.php:122 +#: object/Item.php:124 +msgid "Edit" +msgstr "Breyta" + +#: mod/content.php:771 object/Item.php:227 +msgid "add star" +msgstr "bæta við stjörnu" + +#: mod/content.php:772 object/Item.php:228 +msgid "remove star" +msgstr "eyða stjörnu" + +#: mod/content.php:773 object/Item.php:229 +msgid "toggle star status" +msgstr "Kveikja/slökkva á stjörnu" + +#: mod/content.php:776 object/Item.php:232 +msgid "starred" +msgstr "stjörnumerkt" + +#: mod/content.php:777 mod/content.php:798 object/Item.php:252 +msgid "add tag" +msgstr "bæta við merki" + +#: mod/content.php:787 object/Item.php:240 +msgid "ignore thread" +msgstr "" + +#: mod/content.php:788 object/Item.php:241 +msgid "unignore thread" +msgstr "" + +#: mod/content.php:789 object/Item.php:242 +msgid "toggle ignore status" +msgstr "" + +#: mod/content.php:792 mod/ostatus_subscribe.php:69 object/Item.php:245 +msgid "ignored" +msgstr "hunsað" + +#: mod/content.php:803 object/Item.php:137 +msgid "save to folder" +msgstr "vista í möppu" + +#: mod/content.php:848 object/Item.php:201 +msgid "I will attend" +msgstr "" + +#: mod/content.php:848 object/Item.php:201 +msgid "I will not attend" +msgstr "" + +#: mod/content.php:848 object/Item.php:201 +msgid "I might attend" +msgstr "" + +#: mod/content.php:912 object/Item.php:369 +msgid "to" +msgstr "við" + +#: mod/content.php:913 object/Item.php:371 +msgid "Wall-to-Wall" +msgstr "vegg við vegg" + +#: mod/content.php:914 object/Item.php:372 +msgid "via Wall-To-Wall:" +msgstr "gegnum vegg við vegg" + +#: mod/repair_ostatus.php:14 +msgid "Resubscribing to OStatus contacts" +msgstr "" + +#: mod/repair_ostatus.php:30 +msgid "Error" +msgstr "" + +#: mod/repair_ostatus.php:44 mod/ostatus_subscribe.php:51 +msgid "Done" +msgstr "Lokið" + +#: mod/repair_ostatus.php:50 mod/ostatus_subscribe.php:73 +msgid "Keep this window open until done." +msgstr "" + +#: mod/delegate.php:101 +msgid "No potential page delegates located." +msgstr "Engir mögulegir viðtakendur síðunnar fundust." + +#: mod/delegate.php:132 +msgid "" +"Delegates are able to manage all aspects of this account/page except for " +"basic account settings. Please do not delegate your personal account to " +"anybody that you do not trust completely." +msgstr "" + +#: mod/delegate.php:133 +msgid "Existing Page Managers" +msgstr "" + +#: mod/delegate.php:135 +msgid "Existing Page Delegates" +msgstr "" + +#: mod/delegate.php:137 +msgid "Potential Delegates" +msgstr "" + +#: mod/delegate.php:140 +msgid "Add" +msgstr "Bæta við" + +#: mod/delegate.php:141 +msgid "No entries." +msgstr "Engar færslur." + +#: mod/videos.php:123 +msgid "Do you really want to delete this video?" +msgstr "" + +#: mod/videos.php:128 +msgid "Delete Video" +msgstr "" + +#: mod/videos.php:207 +msgid "No videos selected" +msgstr "" + +#: mod/videos.php:308 mod/photos.php:1074 +msgid "Access to this item is restricted." +msgstr "Aðgangur að þessum hlut hefur verið heftur" + +#: mod/videos.php:390 mod/photos.php:1877 +msgid "View Album" +msgstr "Skoða myndabók" + +#: mod/videos.php:399 +msgid "Recent Videos" +msgstr "" + +#: mod/videos.php:401 +msgid "Upload New Videos" +msgstr "" + +#: mod/profiles.php:37 +msgid "Profile deleted." +msgstr "Forsíðu eytt." + +#: mod/profiles.php:55 mod/profiles.php:89 +msgid "Profile-" +msgstr "Forsíða-" + +#: mod/profiles.php:74 mod/profiles.php:117 +msgid "New profile created." +msgstr "Ný forsíða búinn til." + +#: mod/profiles.php:95 +msgid "Profile unavailable to clone." +msgstr "Ekki tókst að klóna forsíðu" + +#: mod/profiles.php:189 +msgid "Profile Name is required." +msgstr "Nafn á forsíðu er skilyrði" + +#: mod/profiles.php:336 +msgid "Marital Status" +msgstr "" + +#: mod/profiles.php:340 +msgid "Romantic Partner" +msgstr "" + +#: mod/profiles.php:352 +msgid "Work/Employment" +msgstr "" + +#: mod/profiles.php:355 +msgid "Religion" +msgstr "" + +#: mod/profiles.php:359 +msgid "Political Views" +msgstr "" + +#: mod/profiles.php:363 +msgid "Gender" +msgstr "" + +#: mod/profiles.php:367 +msgid "Sexual Preference" +msgstr "" + +#: mod/profiles.php:371 +msgid "Homepage" +msgstr "" + +#: mod/profiles.php:375 mod/profiles.php:695 +msgid "Interests" +msgstr "" + +#: mod/profiles.php:379 +msgid "Address" +msgstr "" + +#: mod/profiles.php:386 mod/profiles.php:691 +msgid "Location" +msgstr "" + +#: mod/profiles.php:469 +msgid "Profile updated." +msgstr "Forsíða uppfærð." + +#: mod/profiles.php:556 +msgid " and " +msgstr "og" + +#: mod/profiles.php:564 +msgid "public profile" +msgstr "Opinber forsíða" + +#: mod/profiles.php:567 +#, php-format +msgid "%1$s changed %2$s to “%3$s”" +msgstr "" + +#: mod/profiles.php:568 +#, php-format +msgid " - Visit %1$s's %2$s" +msgstr "" + +#: mod/profiles.php:571 +#, php-format +msgid "%1$s has an updated %2$s, changing %3$s." +msgstr "%1$s hefur uppfært %2$s, með því að breyta %3$s." + +#: mod/profiles.php:638 +msgid "Hide contacts and friends:" +msgstr "" + +#: mod/profiles.php:641 mod/profiles.php:645 mod/profiles.php:670 +#: mod/follow.php:110 mod/dfrn_request.php:860 mod/register.php:239 +#: mod/settings.php:1113 mod/settings.php:1119 mod/settings.php:1127 +#: mod/settings.php:1131 mod/settings.php:1136 mod/settings.php:1142 +#: mod/settings.php:1148 mod/settings.php:1154 mod/settings.php:1180 +#: mod/settings.php:1181 mod/settings.php:1182 mod/settings.php:1183 +#: mod/settings.php:1184 mod/api.php:106 +msgid "No" +msgstr "Nei" + +#: mod/profiles.php:643 +msgid "Hide your contact/friend list from viewers of this profile?" +msgstr "Fela tengiliða-/vinalista á þessari forsíðu?" + +#: mod/profiles.php:667 +msgid "Show more profile fields:" +msgstr "" + +#: mod/profiles.php:679 +msgid "Profile Actions" +msgstr "" + +#: mod/profiles.php:680 +msgid "Edit Profile Details" +msgstr "Breyta forsíðu upplýsingum" + +#: mod/profiles.php:682 +msgid "Change Profile Photo" +msgstr "" + +#: mod/profiles.php:683 +msgid "View this profile" +msgstr "Skoða þessa forsíðu" + +#: mod/profiles.php:685 +msgid "Create a new profile using these settings" +msgstr "Búa til nýja forsíðu með þessum stillingum" + +#: mod/profiles.php:686 +msgid "Clone this profile" +msgstr "Klóna þessa forsíðu" + +#: mod/profiles.php:687 +msgid "Delete this profile" +msgstr "Eyða þessari forsíðu" + +#: mod/profiles.php:689 +msgid "Basic information" +msgstr "" + +#: mod/profiles.php:690 +msgid "Profile picture" +msgstr "" + +#: mod/profiles.php:692 +msgid "Preferences" +msgstr "" + +#: mod/profiles.php:693 +msgid "Status information" +msgstr "" + +#: mod/profiles.php:694 +msgid "Additional information" +msgstr "" + +#: mod/profiles.php:697 +msgid "Relation" +msgstr "" + +#: mod/profiles.php:700 mod/newmember.php:36 mod/profile_photo.php:250 +msgid "Upload Profile Photo" +msgstr "Hlaða upp forsíðu mynd" + +#: mod/profiles.php:701 +msgid "Your Gender:" +msgstr "Kyn:" + +#: mod/profiles.php:702 +msgid " Marital Status:" +msgstr " Hjúskaparstaða:" + +#: mod/profiles.php:704 +msgid "Example: fishing photography software" +msgstr "Til dæmis: fishing photography software" + +#: mod/profiles.php:709 +msgid "Profile Name:" +msgstr "Forsíðu nafn:" + +#: mod/profiles.php:711 +msgid "" +"This is your public profile.
      It may " +"be visible to anybody using the internet." +msgstr "Þetta er opinber forsíða.
      Hún verður sjáanleg öðrum sem nota alnetið." + +#: mod/profiles.php:712 +msgid "Your Full Name:" +msgstr "Fullt nafn:" + +#: mod/profiles.php:713 +msgid "Title/Description:" +msgstr "Starfsheiti/Lýsing:" + +#: mod/profiles.php:716 +msgid "Street Address:" +msgstr "Gata:" + +#: mod/profiles.php:717 +msgid "Locality/City:" +msgstr "Bær/Borg:" + +#: mod/profiles.php:718 +msgid "Region/State:" +msgstr "Svæði/Sýsla" + +#: mod/profiles.php:719 +msgid "Postal/Zip Code:" +msgstr "Póstnúmer:" + +#: mod/profiles.php:720 +msgid "Country:" +msgstr "Land:" + +#: mod/profiles.php:724 +msgid "Who: (if applicable)" +msgstr "Hver: (ef við á)" + +#: mod/profiles.php:724 +msgid "Examples: cathy123, Cathy Williams, cathy@example.com" +msgstr "Dæmi: cathy123, Cathy Williams, cathy@example.com" + +#: mod/profiles.php:725 +msgid "Since [date]:" +msgstr "" + +#: mod/profiles.php:727 +msgid "Tell us about yourself..." +msgstr "Segðu okkur frá sjálfum þér..." + +#: mod/profiles.php:728 +msgid "Homepage URL:" +msgstr "Slóð heimasíðu:" + +#: mod/profiles.php:731 +msgid "Religious Views:" +msgstr "Trúarskoðanir" + +#: mod/profiles.php:732 +msgid "Public Keywords:" +msgstr "Opinber leitarorð:" + +#: mod/profiles.php:732 +msgid "(Used for suggesting potential friends, can be seen by others)" +msgstr "(Notað til að stinga uppá mögulegum vinum, aðrir geta séð)" + +#: mod/profiles.php:733 +msgid "Private Keywords:" +msgstr "Einka leitarorð:" + +#: mod/profiles.php:733 +msgid "(Used for searching profiles, never shown to others)" +msgstr "(Notað við leit að öðrum notendum, aldrei sýnt öðrum)" + +#: mod/profiles.php:736 +msgid "Musical interests" +msgstr "Tónlistarsmekkur" + +#: mod/profiles.php:737 +msgid "Books, literature" +msgstr "Bækur, bókmenntir" + +#: mod/profiles.php:738 +msgid "Television" +msgstr "Sjónvarp" + +#: mod/profiles.php:739 +msgid "Film/dance/culture/entertainment" +msgstr "Kvikmyndir/dans/menning/afþreying" + +#: mod/profiles.php:740 +msgid "Hobbies/Interests" +msgstr "Áhugamál" + +#: mod/profiles.php:741 +msgid "Love/romance" +msgstr "Ást/rómantík" + +#: mod/profiles.php:742 +msgid "Work/employment" +msgstr "Atvinna:" + +#: mod/profiles.php:743 +msgid "School/education" +msgstr "Skóli/menntun" + +#: mod/profiles.php:744 +msgid "Contact information and Social Networks" +msgstr "Tengiliðaupplýsingar og samfélagsnet" + +#: mod/profiles.php:786 +msgid "Edit/Manage Profiles" +msgstr "Sýsla með forsíður" + +#: mod/credits.php:16 +msgid "Credits" +msgstr "" + +#: mod/credits.php:17 +msgid "" +"Friendica is a community project, that would not be possible without the " +"help of many people. Here is a list of those who have contributed to the " +"code or the translation of Friendica. Thank you all!" +msgstr "" + +#: mod/filer.php:30 +msgid "- select -" +msgstr "- veldu -" + +#: mod/poke.php:192 +msgid "Poke/Prod" +msgstr "" + +#: mod/poke.php:193 +msgid "poke, prod or do other things to somebody" +msgstr "" + +#: mod/poke.php:194 +msgid "Recipient" +msgstr "" + +#: mod/poke.php:195 +msgid "Choose what you wish to do to recipient" +msgstr "" + +#: mod/poke.php:198 +msgid "Make this post private" +msgstr "" + +#: mod/photos.php:100 mod/photos.php:1886 +msgid "Recent Photos" +msgstr "Nýlegar myndir" + +#: mod/photos.php:103 mod/photos.php:1307 mod/photos.php:1888 +msgid "Upload New Photos" +msgstr "Hlaða upp nýjum myndum" + +#: mod/photos.php:117 mod/settings.php:36 +msgid "everybody" +msgstr "allir" + +#: mod/photos.php:181 +msgid "Contact information unavailable" +msgstr "Tengiliða upplýsingar ekki til" + +#: mod/photos.php:202 +msgid "Album not found." +msgstr "Myndabók finnst ekki." + +#: mod/photos.php:232 mod/photos.php:244 mod/photos.php:1249 +msgid "Delete Album" +msgstr "Fjarlægja myndabók" + +#: mod/photos.php:242 +msgid "Do you really want to delete this photo album and all its photos?" +msgstr "" + +#: mod/photos.php:322 mod/photos.php:333 mod/photos.php:1567 +msgid "Delete Photo" +msgstr "Fjarlægja mynd" + +#: mod/photos.php:331 +msgid "Do you really want to delete this photo?" +msgstr "" + +#: mod/photos.php:706 +#, php-format +msgid "%1$s was tagged in %2$s by %3$s" +msgstr "" + +#: mod/photos.php:706 +msgid "a photo" +msgstr "mynd" + +#: mod/photos.php:813 +msgid "Image file is empty." +msgstr "Mynda skrá er tóm." + +#: mod/photos.php:973 +msgid "No photos selected" +msgstr "Engar myndir valdar" + +#: mod/photos.php:1134 +#, php-format +msgid "You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage." +msgstr "" + +#: mod/photos.php:1169 +msgid "Upload Photos" +msgstr "Hlaða upp myndum" + +#: mod/photos.php:1173 mod/photos.php:1244 +msgid "New album name: " +msgstr "Nýtt nafn myndbókar:" + +#: mod/photos.php:1174 +msgid "or existing album name: " +msgstr "eða fyrra nafn myndbókar:" + +#: mod/photos.php:1175 +msgid "Do not show a status post for this upload" +msgstr "Ekki sýna færslu fyrir þessari upphölun" + +#: mod/photos.php:1186 mod/photos.php:1571 mod/settings.php:1250 +msgid "Show to Groups" +msgstr "Birta hópum" + +#: mod/photos.php:1187 mod/photos.php:1572 mod/settings.php:1251 +msgid "Show to Contacts" +msgstr "Birta tengiliðum" + +#: mod/photos.php:1188 +msgid "Private Photo" +msgstr "Einkamynd" + +#: mod/photos.php:1189 +msgid "Public Photo" +msgstr "Opinber mynd" + +#: mod/photos.php:1257 +msgid "Edit Album" +msgstr "Breyta myndbók" + +#: mod/photos.php:1263 +msgid "Show Newest First" +msgstr "Birta nýjast fyrst" + +#: mod/photos.php:1265 +msgid "Show Oldest First" +msgstr "Birta elsta fyrst" + +#: mod/photos.php:1293 mod/photos.php:1871 +msgid "View Photo" +msgstr "Skoða mynd" + +#: mod/photos.php:1340 +msgid "Permission denied. Access to this item may be restricted." +msgstr "Aðgangi hafnað. Aðgangur að þessum hlut kann að vera skertur." + +#: mod/photos.php:1342 +msgid "Photo not available" +msgstr "Mynd ekki til" + +#: mod/photos.php:1398 +msgid "View photo" +msgstr "Birta mynd" + +#: mod/photos.php:1398 +msgid "Edit photo" +msgstr "Breyta mynd" + +#: mod/photos.php:1399 +msgid "Use as profile photo" +msgstr "Nota sem forsíðu mynd" + +#: mod/photos.php:1424 +msgid "View Full Size" +msgstr "Skoða í fullri stærð" + +#: mod/photos.php:1510 +msgid "Tags: " +msgstr "Merki:" + +#: mod/photos.php:1513 +msgid "[Remove any tag]" +msgstr "[Fjarlægja öll merki]" + +#: mod/photos.php:1553 +msgid "New album name" +msgstr "Nýtt nafn myndbókar" + +#: mod/photos.php:1554 +msgid "Caption" +msgstr "Yfirskrift" + +#: mod/photos.php:1555 +msgid "Add a Tag" +msgstr "Bæta við merki" + +#: mod/photos.php:1555 +msgid "" +"Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping" +msgstr "Til dæmis: @bob, @Barbara_Jensen, @jim@example.com, #Reykjavík #tjalda" + +#: mod/photos.php:1556 +msgid "Do not rotate" +msgstr "" + +#: mod/photos.php:1557 +msgid "Rotate CW (right)" +msgstr "" + +#: mod/photos.php:1558 +msgid "Rotate CCW (left)" +msgstr "" + +#: mod/photos.php:1573 +msgid "Private photo" +msgstr "Einkamynd" + +#: mod/photos.php:1574 +msgid "Public photo" +msgstr "Opinber mynd" + +#: mod/photos.php:1800 +msgid "Map" +msgstr "" + +#: mod/install.php:139 +msgid "Friendica Communications Server - Setup" +msgstr "" + +#: mod/install.php:145 +msgid "Could not connect to database." +msgstr "Gat ekki tengst gagnagrunn." + +#: mod/install.php:149 +msgid "Could not create table." +msgstr "Gat ekki búið til töflu." + +#: mod/install.php:155 +msgid "Your Friendica site database has been installed." +msgstr "Friendica gagnagrunnurinn þinn hefur verið uppsettur." + +#: mod/install.php:160 +msgid "" +"You may need to import the file \"database.sql\" manually using phpmyadmin " +"or mysql." +msgstr "Þú þarft mögulega að keyra inn skránna \"database.sql\" handvirkt með phpmyadmin eða mysql." + +#: mod/install.php:161 mod/install.php:230 mod/install.php:597 +msgid "Please see the file \"INSTALL.txt\"." +msgstr "Lestu skrána \"INSTALL.txt\"." + +#: mod/install.php:173 +msgid "Database already in use." +msgstr "" + +#: mod/install.php:227 +msgid "System check" +msgstr "Kerfis prófun" + +#: mod/install.php:232 +msgid "Check again" +msgstr "Prófa aftur" + +#: mod/install.php:251 +msgid "Database connection" +msgstr "Gangagrunns tenging" + +#: mod/install.php:252 +msgid "" +"In order to install Friendica we need to know how to connect to your " +"database." +msgstr "Til að setja upp Friendica þurfum við að vita hvernig á að tengjast gagnagrunninum þínum." + +#: mod/install.php:253 +msgid "" +"Please contact your hosting provider or site administrator if you have " +"questions about these settings." +msgstr "Hafðu samband við hýsingaraðilann þinn eða kerfisstjóra ef þú hefur spurningar varðandi þessar stillingar." + +#: mod/install.php:254 +msgid "" +"The database you specify below should already exist. If it does not, please " +"create it before continuing." +msgstr "Gagnagrunnurinn sem þú bendir á þarf þegar að vera til. Ef ekki þá þarf að stofna hann áður en haldið er áfram." + +#: mod/install.php:258 +msgid "Database Server Name" +msgstr "Vélanafn gagangrunns" + +#: mod/install.php:259 +msgid "Database Login Name" +msgstr "Notendanafn í gagnagrunn" + +#: mod/install.php:260 +msgid "Database Login Password" +msgstr "Aðgangsorð í gagnagrunns" + +#: mod/install.php:261 +msgid "Database Name" +msgstr "Nafn gagnagrunns" + +#: mod/install.php:262 mod/install.php:303 +msgid "Site administrator email address" +msgstr "Póstfang kerfisstjóra vefsvæðis" + +#: mod/install.php:262 mod/install.php:303 +msgid "" +"Your account email address must match this in order to use the web admin " +"panel." +msgstr "Póstfang aðgangsins þíns verður að passa við þetta til að hægt sé að nota umsýsluvefviðmótið." + +#: mod/install.php:266 mod/install.php:306 +msgid "Please select a default timezone for your website" +msgstr "Veldu sjálfgefið tímabelti fyrir vefsíðuna" + +#: mod/install.php:293 +msgid "Site settings" +msgstr "Stillingar vefsvæðis" + +#: mod/install.php:307 +msgid "System Language:" +msgstr "" + +#: mod/install.php:307 +msgid "" +"Set the default language for your Friendica installation interface and to " +"send emails." +msgstr "" + +#: mod/install.php:347 +msgid "Could not find a command line version of PHP in the web server PATH." +msgstr "Gat ekki fundið skipanalínu útgáfu af PHP í vefþjóns PATH." + +#: mod/install.php:348 +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. See 'Setup the poller'" +msgstr "" + +#: mod/install.php:352 +msgid "PHP executable path" +msgstr "PHP keyrslu slóð" + +#: mod/install.php:352 +msgid "" +"Enter full path to php executable. You can leave this blank to continue the " +"installation." +msgstr "" + +#: mod/install.php:357 +msgid "Command line PHP" +msgstr "Skipanalínu PHP" + +#: mod/install.php:366 +msgid "PHP executable is not the php cli binary (could be cgi-fgci version)" +msgstr "" + +#: mod/install.php:367 +msgid "Found PHP version: " +msgstr "" + +#: mod/install.php:369 +msgid "PHP cli binary" +msgstr "" + +#: mod/install.php:380 +msgid "" +"The command line version of PHP on your system does not have " +"\"register_argc_argv\" enabled." +msgstr "Skipanalínu útgáfa af PHP á vefþjóninum hefur ekki kveikt á \"register_argc_argv\"." + +#: mod/install.php:381 +msgid "This is required for message delivery to work." +msgstr "Þetta er skilyrt fyrir því að skilaboð komist til skila." + +#: mod/install.php:383 +msgid "PHP register_argc_argv" +msgstr "" + +#: mod/install.php:404 +msgid "" +"Error: the \"openssl_pkey_new\" function on this system is not able to " +"generate encryption keys" +msgstr "Villa: Stefjan \"openssl_pkey_new\" á vefþjóninum getur ekki stofnað dulkóðunar lykla" + +#: mod/install.php:405 +msgid "" +"If running under Windows, please see " +"\"http://www.php.net/manual/en/openssl.installation.php\"." +msgstr "Ef keyrt er á Window, skoðaðu þá \"http://www.php.net/manual/en/openssl.installation.php\"." + +#: mod/install.php:407 +msgid "Generate encryption keys" +msgstr "Búa til dulkóðunar lykla" + +#: mod/install.php:414 +msgid "libCurl PHP module" +msgstr "libCurl PHP eining" + +#: mod/install.php:415 +msgid "GD graphics PHP module" +msgstr "GD graphics PHP eining" + +#: mod/install.php:416 +msgid "OpenSSL PHP module" +msgstr "OpenSSL PHP eining" + +#: mod/install.php:417 +msgid "mysqli PHP module" +msgstr "mysqli PHP eining" + +#: mod/install.php:418 +msgid "mb_string PHP module" +msgstr "mb_string PHP eining" + +#: mod/install.php:419 +msgid "mcrypt PHP module" +msgstr "" + +#: mod/install.php:420 +msgid "XML PHP module" +msgstr "" + +#: mod/install.php:424 mod/install.php:426 +msgid "Apache mod_rewrite module" +msgstr "Apache mod_rewrite eining" + +#: mod/install.php:424 +msgid "" +"Error: Apache webserver mod-rewrite module is required but not installed." +msgstr "Villa: Apache vefþjóns eining mod-rewrite er skilyrði og er ekki uppsett. " + +#: mod/install.php:432 +msgid "Error: libCURL PHP module required but not installed." +msgstr "Villa: libCurl PHP eining er skilyrði og er ekki uppsett." + +#: mod/install.php:436 +msgid "" +"Error: GD graphics PHP module with JPEG support required but not installed." +msgstr "Villa: GD graphics PHP eining með JPEG stuðningi er skilyrði og er ekki uppsett." + +#: mod/install.php:440 +msgid "Error: openssl PHP module required but not installed." +msgstr "Villa: openssl PHP eining skilyrði og er ekki uppsett." + +#: mod/install.php:444 +msgid "Error: mysqli PHP module required but not installed." +msgstr "Villa: mysqli PHP eining er skilyrði og er ekki uppsett" + +#: mod/install.php:448 +msgid "Error: mb_string PHP module required but not installed." +msgstr "Villa: mb_string PHP eining skilyrði en ekki uppsett." + +#: mod/install.php:452 +msgid "Error: mcrypt PHP module required but not installed." +msgstr "" + +#: mod/install.php:461 +msgid "" +"If you are using php_cli, please make sure that mcrypt module is enabled in " +"its config file" +msgstr "" + +#: mod/install.php:464 +msgid "" +"Function mcrypt_create_iv() is not defined. This is needed to enable RINO2 " +"encryption layer." +msgstr "" + +#: mod/install.php:466 +msgid "mcrypt_create_iv() function" +msgstr "" + +#: mod/install.php:474 +msgid "Error, XML PHP module required but not installed." +msgstr "" + +#: mod/install.php:489 +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 "Vef uppsetningar forrit þarf að geta stofnað skránna \".htconfig.php\" in efsta skráarsafninu á vefþjóninum og það getur ekki gert það." + +#: mod/install.php:490 +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 "Þetta er oftast aðgangsstýringa stilling, þar sem vefþjónninn getur ekki skrifað út skrár í skráarsafnið - þó þú getir það." + +#: mod/install.php:491 +msgid "" +"At the end of this procedure, we will give you a text to save in a file " +"named .htconfig.php in your Friendica top folder." +msgstr "" + +#: mod/install.php:492 +msgid "" +"You can alternatively skip this procedure and perform a manual installation." +" Please see the file \"INSTALL.txt\" for instructions." +msgstr "" + +#: mod/install.php:495 +msgid ".htconfig.php is writable" +msgstr ".htconfig.php er skrifanleg" + +#: mod/install.php:505 +msgid "" +"Friendica uses the Smarty3 template engine to render its web views. Smarty3 " +"compiles templates to PHP to speed up rendering." +msgstr "" + +#: mod/install.php:506 +msgid "" +"In order to store these compiled templates, the web server needs to have " +"write access to the directory view/smarty3/ under the Friendica top level " +"folder." +msgstr "" + +#: mod/install.php:507 +msgid "" +"Please ensure that the user that your web server runs as (e.g. www-data) has" +" write access to this folder." +msgstr "" + +#: mod/install.php:508 +msgid "" +"Note: as a security measure, you should give the web server write access to " +"view/smarty3/ only--not the template files (.tpl) that it contains." +msgstr "" + +#: mod/install.php:511 +msgid "view/smarty3 is writable" +msgstr "" + +#: mod/install.php:527 +msgid "" +"Url rewrite in .htaccess is not working. Check your server configuration." +msgstr "" + +#: mod/install.php:529 +msgid "Url rewrite is working" +msgstr "" + +#: mod/install.php:546 +msgid "ImageMagick PHP extension is installed" +msgstr "" + +#: mod/install.php:548 +msgid "ImageMagick supports GIF" +msgstr "" + +#: mod/install.php:556 +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 "Ekki tókst að skrifa stillingaskrá gagnagrunns \".htconfig.php\". Notað meðfylgjandi texta til að búa til stillingarskrá í rót vefþjónsins." + +#: mod/install.php:595 +msgid "

      What next

      " +msgstr "" + +#: mod/install.php:596 +msgid "" +"IMPORTANT: You will need to [manually] setup a scheduled task for the " +"poller." +msgstr "MIKILVÆGT: Þú þarft að [handvirkt] setja upp sjálfvirka keyrslu á poller." + +#: mod/subthread.php:103 +#, php-format +msgid "%1$s is following %2$s's %3$s" +msgstr "" + +#: mod/attach.php:8 +msgid "Item not available." +msgstr "Atriði ekki í boði." + +#: mod/attach.php:20 +msgid "Item was not found." +msgstr "Atriði fannst ekki" + +#: mod/contacts.php:128 +#, php-format +msgid "%d contact edited." +msgid_plural "%d contacts edited." +msgstr[0] "" +msgstr[1] "" + +#: mod/contacts.php:159 mod/contacts.php:368 +msgid "Could not access contact record." +msgstr "Tókst ekki að ná í uppl. um tengilið" + +#: mod/contacts.php:173 +msgid "Could not locate selected profile." +msgstr "Tókst ekki að staðsetja valinn forsíðu" + +#: mod/contacts.php:206 +msgid "Contact updated." +msgstr "Tengiliður uppfærður" + +#: mod/contacts.php:208 mod/dfrn_request.php:578 +msgid "Failed to update contact record." +msgstr "Ekki tókst að uppfæra tengiliðs skrá." + +#: mod/contacts.php:389 +msgid "Contact has been blocked" +msgstr "Lokað á tengilið" + +#: mod/contacts.php:389 +msgid "Contact has been unblocked" +msgstr "Opnað á tengilið" + +#: mod/contacts.php:400 +msgid "Contact has been ignored" +msgstr "Tengiliður hunsaður" + +#: mod/contacts.php:400 +msgid "Contact has been unignored" +msgstr "Tengiliður afhunsaður" + +#: mod/contacts.php:412 +msgid "Contact has been archived" +msgstr "Tengiliður settur í geymslu" + +#: mod/contacts.php:412 +msgid "Contact has been unarchived" +msgstr "Tengiliður tekinn úr geymslu" + +#: mod/contacts.php:439 mod/contacts.php:794 +msgid "Do you really want to delete this contact?" +msgstr "Viltu í alvörunni eyða þessum tengilið?" + +#: mod/contacts.php:456 +msgid "Contact has been removed." +msgstr "Tengiliður fjarlægður" + +#: mod/contacts.php:497 +#, php-format +msgid "You are mutual friends with %s" +msgstr "Þú ert gagnkvæmur vinur %s" + +#: mod/contacts.php:501 +#, php-format +msgid "You are sharing with %s" +msgstr "Þú ert að deila með %s" + +#: mod/contacts.php:506 +#, php-format +msgid "%s is sharing with you" +msgstr "%s er að deila með þér" + +#: mod/contacts.php:526 +msgid "Private communications are not available for this contact." +msgstr "Einkasamtal ekki í boði fyrir þennan" + +#: mod/contacts.php:533 +msgid "(Update was successful)" +msgstr "(uppfærsla tókst)" + +#: mod/contacts.php:533 +msgid "(Update was not successful)" +msgstr "(uppfærsla tókst ekki)" + +#: mod/contacts.php:535 mod/contacts.php:973 +msgid "Suggest friends" +msgstr "Stinga uppá vinum" + +#: mod/contacts.php:539 +#, php-format +msgid "Network type: %s" +msgstr "Net tegund: %s" + +#: mod/contacts.php:552 +msgid "Communications lost with this contact!" +msgstr "" + +#: mod/contacts.php:555 +msgid "Fetch further information for feeds" +msgstr "Ná í ítarlegri upplýsingar um fréttaveitur" + +#: mod/contacts.php:556 +msgid "Fetch information" +msgstr "" + +#: mod/contacts.php:556 +msgid "Fetch information and keywords" +msgstr "" + +#: mod/contacts.php:576 +msgid "Profile Visibility" +msgstr "Forsíðu sjáanleiki" + +#: mod/contacts.php:577 +#, php-format +msgid "" +"Please choose the profile you would like to display to %s when viewing your " +"profile securely." +msgstr "Veldu forsíðu sem á að birtast %s þegar hann skoðaður með öruggum hætti" + +#: mod/contacts.php:578 +msgid "Contact Information / Notes" +msgstr "Uppl. um tengilið / minnisatriði" + +#: mod/contacts.php:579 +msgid "Edit contact notes" +msgstr "Breyta minnispunktum tengiliðs " + +#: mod/contacts.php:585 +msgid "Block/Unblock contact" +msgstr "útiloka/opna á tengilið" + +#: mod/contacts.php:586 +msgid "Ignore contact" +msgstr "Hunsa tengilið" + +#: mod/contacts.php:587 +msgid "Repair URL settings" +msgstr "Gera við stillingar á slóðum" + +#: mod/contacts.php:588 +msgid "View conversations" +msgstr "Skoða samtöl" + +#: mod/contacts.php:594 +msgid "Last update:" +msgstr "Síðasta uppfærsla:" + +#: mod/contacts.php:596 +msgid "Update public posts" +msgstr "Uppfæra opinberar færslur" + +#: mod/contacts.php:598 mod/contacts.php:983 +msgid "Update now" +msgstr "Uppfæra núna" + +#: mod/contacts.php:604 mod/contacts.php:799 mod/contacts.php:1000 +msgid "Unignore" +msgstr "Byrja að fylgjast með á ný" + +#: mod/contacts.php:607 +msgid "Currently blocked" +msgstr "Útilokaður sem stendur" + +#: mod/contacts.php:608 +msgid "Currently ignored" +msgstr "Hunsaður sem stendur" + +#: mod/contacts.php:609 +msgid "Currently archived" +msgstr "Í geymslu" + +#: mod/contacts.php:610 +msgid "" +"Replies/likes to your public posts may still be visible" +msgstr "Svör eða \"líkar við\" á opinberar færslur þínar geta mögulega verið sýnileg öðrum" + +#: mod/contacts.php:611 +msgid "Notification for new posts" +msgstr "" + +#: mod/contacts.php:611 +msgid "Send a notification of every new post of this contact" +msgstr "" + +#: mod/contacts.php:614 +msgid "Blacklisted keywords" +msgstr "" + +#: mod/contacts.php:614 +msgid "" +"Comma separated list of keywords that should not be converted to hashtags, " +"when \"Fetch information and keywords\" is selected" +msgstr "" + +#: mod/contacts.php:629 +msgid "Actions" +msgstr "" + +#: mod/contacts.php:632 +msgid "Contact Settings" +msgstr "" + +#: mod/contacts.php:677 +msgid "Suggestions" +msgstr "Uppástungur" + +#: mod/contacts.php:680 +msgid "Suggest potential friends" +msgstr "" + +#: mod/contacts.php:685 mod/group.php:192 +msgid "All Contacts" +msgstr "Allir tengiliðir" + +#: mod/contacts.php:688 +msgid "Show all contacts" +msgstr "Sýna alla tengiliði" + +#: mod/contacts.php:693 +msgid "Unblocked" +msgstr "Afhunsað" + +#: mod/contacts.php:696 +msgid "Only show unblocked contacts" +msgstr "" + +#: mod/contacts.php:702 +msgid "Blocked" +msgstr "Banna" + +#: mod/contacts.php:705 +msgid "Only show blocked contacts" +msgstr "" + +#: mod/contacts.php:711 +msgid "Ignored" +msgstr "Hunsa" + +#: mod/contacts.php:714 +msgid "Only show ignored contacts" +msgstr "" + +#: mod/contacts.php:720 +msgid "Archived" +msgstr "Í geymslu" + +#: mod/contacts.php:723 +msgid "Only show archived contacts" +msgstr "Aðeins sýna geymda tengiliði" + +#: mod/contacts.php:729 +msgid "Hidden" +msgstr "Falinn" + +#: mod/contacts.php:732 +msgid "Only show hidden contacts" +msgstr "Aðeins sýna falda tengiliði" + +#: mod/contacts.php:789 +msgid "Search your contacts" +msgstr "Leita í þínum vinum" + +#: mod/contacts.php:797 mod/settings.php:158 mod/settings.php:689 +msgid "Update" +msgstr "Uppfæra" + +#: mod/contacts.php:800 mod/contacts.php:1008 +msgid "Archive" +msgstr "Setja í geymslu" + +#: mod/contacts.php:800 mod/contacts.php:1008 +msgid "Unarchive" +msgstr "Taka úr geymslu" + +#: mod/contacts.php:803 +msgid "Batch Actions" +msgstr "" + +#: mod/contacts.php:849 +msgid "View all contacts" +msgstr "Skoða alla tengiliði" + +#: mod/contacts.php:856 mod/common.php:134 +msgid "Common Friends" +msgstr "Sameiginlegir vinir" + +#: mod/contacts.php:859 +msgid "View all common friends" +msgstr "" + +#: mod/contacts.php:866 +msgid "Advanced Contact Settings" +msgstr "" + +#: mod/contacts.php:911 +msgid "Mutual Friendship" +msgstr "Sameiginlegur vinskapur" + +#: mod/contacts.php:915 +msgid "is a fan of yours" +msgstr "er fylgjandi þinn" + +#: mod/contacts.php:919 +msgid "you are a fan of" +msgstr "þú er fylgjandi" + +#: mod/contacts.php:994 +msgid "Toggle Blocked status" +msgstr "" + +#: mod/contacts.php:1002 +msgid "Toggle Ignored status" +msgstr "" + +#: mod/contacts.php:1010 +msgid "Toggle Archive status" +msgstr "" + +#: mod/contacts.php:1018 +msgid "Delete contact" +msgstr "Eyða tengilið" + +#: mod/follow.php:19 mod/dfrn_request.php:873 +msgid "Submit Request" +msgstr "Senda beiðni" + +#: mod/follow.php:30 +msgid "You already added this contact." +msgstr "" + +#: mod/follow.php:39 +msgid "Diaspora support isn't enabled. Contact can't be added." +msgstr "" + +#: mod/follow.php:46 +msgid "OStatus support is disabled. Contact can't be added." +msgstr "" + +#: mod/follow.php:53 +msgid "The network type couldn't be detected. Contact can't be added." +msgstr "" + +#: mod/follow.php:109 mod/dfrn_request.php:859 +msgid "Please answer the following:" +msgstr "Vinnsamlegast svaraðu eftirfarandi:" + +#: mod/follow.php:110 mod/dfrn_request.php:860 +#, php-format +msgid "Does %s know you?" +msgstr "Þekkir %s þig?" + +#: mod/follow.php:111 mod/dfrn_request.php:864 +msgid "Add a personal note:" +msgstr "Bæta við persónulegri athugasemd" + +#: mod/follow.php:117 mod/dfrn_request.php:870 +msgid "Your Identity Address:" +msgstr "Auðkennisnetfang þitt:" + +#: mod/follow.php:180 +msgid "Contact added" +msgstr "Tengilið bætt við" + +#: mod/apps.php:11 +msgid "Applications" +msgstr "Forrit" + +#: mod/apps.php:14 +msgid "No installed applications." +msgstr "Engin uppsett forrit" + +#: mod/suggest.php:27 +msgid "Do you really want to delete this suggestion?" +msgstr "" + +#: mod/suggest.php:71 +msgid "" +"No suggestions available. If this is a new site, please try again in 24 " +"hours." +msgstr "Engar uppástungur tiltækar. Ef þetta er nýr vefur, reyndu þá aftur eftir um 24 klukkustundir." + +#: mod/suggest.php:84 mod/suggest.php:104 +msgid "Ignore/Hide" +msgstr "Hunsa/Fela" + +#: mod/p.php:9 +msgid "Not Extended" +msgstr "" + +#: mod/display.php:471 +msgid "Item has been removed." +msgstr "Atriði hefur verið fjarlægt." + +#: mod/common.php:86 +msgid "No contacts in common." +msgstr "" + +#: mod/newmember.php:6 +msgid "Welcome to Friendica" +msgstr "Velkomin(n) á Friendica" + +#: mod/newmember.php:8 +msgid "New Member Checklist" +msgstr "Nýr notandi verklisti" + +#: mod/newmember.php:12 +msgid "" +"We would like to offer some tips and links to help make your experience " +"enjoyable. Click any item to visit the relevant page. A link to this page " +"will be visible from your home page for two weeks after your initial " +"registration and then will quietly disappear." +msgstr "" + +#: mod/newmember.php:14 +msgid "Getting Started" +msgstr "" + +#: mod/newmember.php:18 +msgid "Friendica Walk-Through" +msgstr "" + +#: mod/newmember.php:18 +msgid "" +"On your Quick Start page - find a brief introduction to your " +"profile and network tabs, make some new connections, and find some groups to" +" join." +msgstr "" + +#: mod/newmember.php:26 +msgid "Go to Your Settings" +msgstr "" + +#: mod/newmember.php:26 +msgid "" +"On your Settings page - change your initial password. Also make a " +"note of your Identity Address. This looks just like an email address - and " +"will be useful in making friends on the free social web." +msgstr "" + +#: mod/newmember.php:28 +msgid "" +"Review the other settings, particularly the privacy settings. An unpublished" +" directory listing is like having an unlisted phone number. In general, you " +"should probably publish your listing - unless all of your friends and " +"potential friends know exactly how to find you." +msgstr "Yfirfarðu aðrar stillingar, sérstaklega gagnaleyndarstillingar. Óútgefin forsíða er einsog óskráð símanúmer. Sem þýðir að líklega viltu gefa út forsíðuna þína - nema að allir vinir þínir og tilvonandi vinir viti nákvæmlega hvernig á að finna þig." + +#: mod/newmember.php:36 +msgid "" +"Upload a profile photo if you have not done so already. Studies have shown " +"that people with real photos of themselves are ten times more likely to make" +" friends than people who do not." +msgstr "Að hlaða upp forsíðu mynd ef þú hefur ekki þegar gert það. Rannsóknir sýna að fólk sem hefur alvöru mynd af sér er tíu sinnum líklegra til að eignast vini en fólk sem ekki hefur mynd." + +#: mod/newmember.php:38 +msgid "Edit Your Profile" +msgstr "" + +#: mod/newmember.php:38 +msgid "" +"Edit your default profile to your liking. Review the " +"settings for hiding your list of friends and hiding the profile from unknown" +" visitors." +msgstr "Breyttu sjálfgefnu forsíðunni einsog þú villt. Yfirfarðu stillingu til að fela vinalista á forsíðu og stillingu til að fela forsíðu fyrir ókunnum." + +#: mod/newmember.php:40 +msgid "Profile Keywords" +msgstr "" + +#: mod/newmember.php:40 +msgid "" +"Set some public keywords for your default profile which describe your " +"interests. We may be able to find other people with similar interests and " +"suggest friendships." +msgstr "Bættu við leitarorðum í sjálfgefnu forsíðuna þína sem lýsa áhugamálum þínum. Þá er hægt að fólk með svipuð áhugamál og stinga uppá vinskap." + +#: mod/newmember.php:44 +msgid "Connecting" +msgstr "Tengist" + +#: mod/newmember.php:51 +msgid "Importing Emails" +msgstr "" + +#: mod/newmember.php:51 +msgid "" +"Enter your email access information on your Connector Settings page if you " +"wish to import and interact with friends or mailing lists from your email " +"INBOX" +msgstr "Fylltu út aðgangsupplýsingar póstfangsins þíns á Tengistillingasíðunni ef þú vilt sækja tölvupóst og eiga samskipti við vini eða póstlista úr innhólfi tölvupóstsins þíns" + +#: mod/newmember.php:53 +msgid "Go to Your Contacts Page" +msgstr "" + +#: mod/newmember.php:53 +msgid "" +"Your Contacts page is your gateway to managing friendships and connecting " +"with friends on other networks. Typically you enter their address or site " +"URL in the Add New Contact dialog." +msgstr "Tengiliðasíðan er gáttin þín til að sýsla með vinasambönd og tengjast við vini á öðrum netum. Oftast setur þú vistfang eða slóð þeirra í Bæta við tengilið glugganum." + +#: mod/newmember.php:55 +msgid "Go to Your Site's Directory" +msgstr "" + +#: mod/newmember.php:55 +msgid "" +"The Directory page lets you find other people in this network or other " +"federated sites. Look for a Connect or Follow link on " +"their profile page. Provide your own Identity Address if requested." +msgstr "Tengiliðalistinn er góð leit til að finna fólk á samfélagsnetinu eða öðrum sambandsnetum. Leitaðu að Tengjast/Connect eða Fylgja/Follow tenglum á forsíðunni þeirra. Mögulega þarftu að gefa upp auðkennisslóðina þína." + +#: mod/newmember.php:57 +msgid "Finding New People" +msgstr "" + +#: mod/newmember.php:57 +msgid "" +"On the side panel of the Contacts page are several tools to find new " +"friends. We can match people by interest, look up people by name or " +"interest, and provide suggestions based on network relationships. On a brand" +" new site, friend suggestions will usually begin to be populated within 24 " +"hours." +msgstr "" + +#: mod/newmember.php:65 +msgid "Group Your Contacts" +msgstr "" + +#: mod/newmember.php:65 +msgid "" +"Once you have made some friends, organize them into private conversation " +"groups from the sidebar of your Contacts page and then you can interact with" +" each group privately on your Network page." +msgstr "Eftir að þú hefur eignast nokkra vini, þá er best að flokka þá niður í hópa á hliðar slánni á Tengiliðasíðunni. Eftir það getur þú haft samskipti við hvern hóp fyrir sig á Samfélagssíðunni." + +#: mod/newmember.php:68 +msgid "Why Aren't My Posts Public?" +msgstr "" + +#: mod/newmember.php:68 +msgid "" +"Friendica respects your privacy. By default, your posts will only show up to" +" people you've added as friends. For more information, see the help section " +"from the link above." +msgstr "" + +#: mod/newmember.php:73 +msgid "Getting Help" +msgstr "" + +#: mod/newmember.php:77 +msgid "Go to the Help Section" +msgstr "" + +#: mod/newmember.php:77 +msgid "" +"Our help pages may be consulted for detail on other program" +" features and resources." +msgstr "Hægt er að styðjast við Hjálp síðuna til að fá leiðbeiningar um aðra eiginleika." + +#: mod/removeme.php:46 mod/removeme.php:49 +msgid "Remove My Account" +msgstr "Eyða þessum notanda" + +#: mod/removeme.php:47 +msgid "" +"This will completely remove your account. Once this has been done it is not " +"recoverable." +msgstr "Þetta mun algjörlega eyða notandanum. Þegar þetta hefur verið gert er þetta ekki afturkræft." + +#: mod/removeme.php:48 +msgid "Please enter your password for verification:" +msgstr "Sláðu inn aðgangsorð yðar:" + +#: mod/mood.php:133 +msgid "Mood" +msgstr "" + +#: mod/mood.php:134 +msgid "Set your current mood and tell your friends" +msgstr "" + +#: mod/editpost.php:17 mod/editpost.php:27 +msgid "Item not found" +msgstr "Atriði fannst ekki" + +#: mod/editpost.php:40 +msgid "Edit post" +msgstr "Breyta skilaboðum" + +#: mod/network.php:398 +#, php-format +msgid "Warning: This group contains %s member from an insecure network." +msgid_plural "" +"Warning: This group contains %s members from an insecure network." +msgstr[0] "Aðvörun: Þessi hópur inniheldur %s notanda frá óöruggu neti." +msgstr[1] "Aðvörun: Þessi hópur inniheldur %s notendur frá óöruggu neti." + +#: mod/network.php:401 +msgid "Private messages to this group are at risk of public disclosure." +msgstr "Einka samtöl send á þennan hóp eiga á hættu að verða opinber." + +#: mod/network.php:527 +msgid "Private messages to this person are at risk of public disclosure." +msgstr "Einka skilaboð send á þennan notanda eiga á hættu að verða opinber." + +#: mod/network.php:532 +msgid "Invalid contact." +msgstr "Ógildur tengiliður." + +#: mod/network.php:825 +msgid "Commented Order" +msgstr "Athugasemdar röð" + +#: mod/network.php:828 +msgid "Sort by Comment Date" +msgstr "Raða eftir umræðu dagsetningu" + +#: mod/network.php:833 +msgid "Posted Order" +msgstr "Færlsu röð" + +#: mod/network.php:836 +msgid "Sort by Post Date" +msgstr "Raða eftir færslu dagsetningu" + +#: mod/network.php:847 +msgid "Posts that mention or involve you" +msgstr "Færslur sem tengjast þér" + +#: mod/network.php:855 +msgid "New" +msgstr "Ný" + +#: mod/network.php:858 +msgid "Activity Stream - by date" +msgstr "Færslu straumur - raðað eftir dagsetningu" + +#: mod/network.php:866 +msgid "Shared Links" +msgstr "" + +#: mod/network.php:869 +msgid "Interesting Links" +msgstr "Áhugaverðir tenglar" + +#: mod/network.php:877 +msgid "Starred" +msgstr "Stjörnumerkt" + +#: mod/network.php:880 +msgid "Favourite Posts" +msgstr "Uppáhalds færslur" + +#: mod/community.php:27 +msgid "Not available." +msgstr "Ekki í boði." + +#: mod/localtime.php:24 +msgid "Time Conversion" +msgstr "Tíma leiðréttir" + +#: mod/localtime.php:26 +msgid "" +"Friendica provides this service for sharing events with other networks and " +"friends in unknown timezones." +msgstr "Friendica veitir þessa þjónustu til að deila atburðum milli neta og vina í óþekktum tímabeltum." + +#: mod/localtime.php:30 +#, php-format +msgid "UTC time: %s" +msgstr "Máltími: %s" + +#: mod/localtime.php:33 +#, php-format +msgid "Current timezone: %s" +msgstr "Núverandi tímabelti: %s" + +#: mod/localtime.php:36 +#, php-format +msgid "Converted localtime: %s" +msgstr "Umbreyttur staðartími: %s" + +#: mod/localtime.php:41 +msgid "Please select your timezone:" +msgstr "Veldu tímabeltið þitt:" + +#: mod/bookmarklet.php:41 +msgid "The post was created" +msgstr "" + +#: mod/group.php:29 +msgid "Group created." +msgstr "Hópur stofnaður" + +#: mod/group.php:35 +msgid "Could not create group." +msgstr "Gat ekki stofnað hóp." + +#: mod/group.php:47 mod/group.php:140 +msgid "Group not found." +msgstr "Hópur fannst ekki." + +#: mod/group.php:60 +msgid "Group name changed." +msgstr "Hópur endurskýrður." + +#: mod/group.php:87 +msgid "Save Group" +msgstr "" + +#: mod/group.php:93 +msgid "Create a group of contacts/friends." +msgstr "Stofna hóp af tengiliðum/vinum" + +#: mod/group.php:113 +msgid "Group removed." +msgstr "Hópi eytt." + +#: mod/group.php:115 +msgid "Unable to remove group." +msgstr "Ekki tókst að eyða hóp." + +#: mod/group.php:177 +msgid "Group Editor" +msgstr "Hópa sýslari" + +#: mod/group.php:190 +msgid "Members" +msgstr "Aðilar" + +#: mod/dfrn_request.php:99 +msgid "This introduction has already been accepted." +msgstr "Þessi kynning hefur þegar verið samþykkt." + +#: mod/dfrn_request.php:122 mod/dfrn_request.php:517 +msgid "Profile location is not valid or does not contain profile information." +msgstr "Forsíðu slóð er ekki í lagi eða inniheldur ekki forsíðu upplýsingum." + +#: mod/dfrn_request.php:127 mod/dfrn_request.php:522 +msgid "Warning: profile location has no identifiable owner name." +msgstr "Aðvörun: forsíðu staðsetning hefur ekki aðgreinanlegt eigendanafn." + +#: mod/dfrn_request.php:129 mod/dfrn_request.php:524 +msgid "Warning: profile location has no profile photo." +msgstr "Aðvörun: forsíðu slóð hefur ekki forsíðu mynd." + +#: mod/dfrn_request.php:132 mod/dfrn_request.php:527 +#, 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 skilyrt breyta fannst ekki á uppgefinni staðsetningu" +msgstr[1] "%d skilyrtar breytur fundust ekki á uppgefninni staðsetningu" + +#: mod/dfrn_request.php:177 +msgid "Introduction complete." +msgstr "Kynning tilbúinn." + +#: mod/dfrn_request.php:219 +msgid "Unrecoverable protocol error." +msgstr "Alvarleg samskipta villa." + +#: mod/dfrn_request.php:247 +msgid "Profile unavailable." +msgstr "Ekki hægt að sækja forsíðu" + +#: mod/dfrn_request.php:272 +#, php-format +msgid "%s has received too many connection requests today." +msgstr "%s hefur fengið of margar tengibeiðnir í dag." + +#: mod/dfrn_request.php:273 +msgid "Spam protection measures have been invoked." +msgstr "Kveikt hefur verið á ruslsíu" + +#: mod/dfrn_request.php:274 +msgid "Friends are advised to please try again in 24 hours." +msgstr "Vinir eru beðnir um að reyna aftur eftir 24 klukkustundir." + +#: mod/dfrn_request.php:336 +msgid "Invalid locator" +msgstr "Ógild staðsetning" + +#: mod/dfrn_request.php:345 +msgid "Invalid email address." +msgstr "Ógilt póstfang." + +#: mod/dfrn_request.php:372 +msgid "This account has not been configured for email. Request failed." +msgstr "" + +#: mod/dfrn_request.php:475 +msgid "You have already introduced yourself here." +msgstr "Kynning hefur þegar átt sér stað hér." + +#: mod/dfrn_request.php:479 +#, php-format +msgid "Apparently you are already friends with %s." +msgstr "Þú ert þegar vinur %s." + +#: mod/dfrn_request.php:500 +msgid "Invalid profile URL." +msgstr "Ógild forsíðu slóð." + +#: mod/dfrn_request.php:599 +msgid "Your introduction has been sent." +msgstr "Kynningin þín hefur verið send." + +#: mod/dfrn_request.php:639 +msgid "" +"Remote subscription can't be done for your network. Please subscribe " +"directly on your system." +msgstr "" + +#: mod/dfrn_request.php:662 +msgid "Please login to confirm introduction." +msgstr "Skráðu þig inn til að staðfesta kynningu." + +#: mod/dfrn_request.php:672 +msgid "" +"Incorrect identity currently logged in. Please login to " +"this profile." +msgstr "Ekki réttur notandi skráður inn. Skráðu þig inn sem þessi notandi." + +#: mod/dfrn_request.php:686 mod/dfrn_request.php:703 +msgid "Confirm" +msgstr "Staðfesta" + +#: mod/dfrn_request.php:698 +msgid "Hide this contact" +msgstr "Fela þennan tengilið" + +#: mod/dfrn_request.php:701 +#, php-format +msgid "Welcome home %s." +msgstr "Velkomin(n) heim %s." + +#: mod/dfrn_request.php:702 +#, php-format +msgid "Please confirm your introduction/connection request to %s." +msgstr "Staðfestu kynninguna/tengibeiðnina við %s." + +#: mod/dfrn_request.php:831 +msgid "" +"Please enter your 'Identity Address' from one of the following supported " +"communications networks:" +msgstr "Settu inn 'Auðkennisnetfang' þitt úr einhverjum af eftirfarandi samskiptanetum:" + +#: mod/dfrn_request.php:852 +#, 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 "" + +#: mod/dfrn_request.php:857 +msgid "Friend/Connection Request" +msgstr "Vinabeiðni/Tengibeiðni" + +#: mod/dfrn_request.php:858 +msgid "" +"Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, " +"testuser@identi.ca" +msgstr "Dæmi: siggi@demo.friendica.com, http://demo.friendica.com/profile/siggi, prufunotandi@identi.ca" + +#: mod/dfrn_request.php:867 +msgid "StatusNet/Federated Social Web" +msgstr "StatusNet/Federated Social Web" + +#: mod/dfrn_request.php:869 +#, php-format +msgid "" +" - please do not use this form. Instead, enter %s into your Diaspora search" +" bar." +msgstr "" + +#: mod/profile_photo.php:44 +msgid "Image uploaded but image cropping failed." +msgstr "Tókst að hala upp mynd en afskurður tókst ekki." + +#: mod/profile_photo.php:77 mod/profile_photo.php:84 mod/profile_photo.php:91 +#: mod/profile_photo.php:314 +#, php-format +msgid "Image size reduction [%s] failed." +msgstr "Myndar minnkun [%s] tókst ekki." + +#: mod/profile_photo.php:124 +msgid "" +"Shift-reload the page or clear browser cache if the new photo does not " +"display immediately." +msgstr "Ýta þarf á " + +#: mod/profile_photo.php:134 +msgid "Unable to process image" +msgstr "Ekki tókst að vinna mynd" + +#: mod/profile_photo.php:248 +msgid "Upload File:" +msgstr "Hlaða upp skrá:" + +#: mod/profile_photo.php:249 +msgid "Select a profile:" +msgstr "" + +#: mod/profile_photo.php:251 +msgid "Upload" +msgstr "Hlaða upp" + +#: mod/profile_photo.php:254 +msgid "or" +msgstr "eða" + +#: mod/profile_photo.php:254 +msgid "skip this step" +msgstr "sleppa þessu skrefi" + +#: mod/profile_photo.php:254 +msgid "select a photo from your photo albums" +msgstr "velja mynd í myndabókum" + +#: mod/profile_photo.php:268 +msgid "Crop Image" +msgstr "Skera af mynd" + +#: mod/profile_photo.php:269 +msgid "Please adjust the image cropping for optimum viewing." +msgstr "Stilltu afskurð fyrir besta birtingu." + +#: mod/profile_photo.php:271 +msgid "Done Editing" +msgstr "Breyting kláruð" + +#: mod/profile_photo.php:305 +msgid "Image uploaded successfully." +msgstr "Upphölun á mynd tóks." + +#: mod/register.php:92 +msgid "" +"Registration successful. Please check your email for further instructions." +msgstr "Nýskráning tóks. Frekari fyrirmæli voru send í tölvupósti." + +#: mod/register.php:97 +#, php-format +msgid "" +"Failed to send email message. Here your accout details:
      login: %s
      " +"password: %s

      You can change your password after login." +msgstr "" + +#: mod/register.php:104 +msgid "Registration successful." +msgstr "" + +#: mod/register.php:110 +msgid "Your registration can not be processed." +msgstr "Skráninguna þína er ekki hægt að vinna." + +#: mod/register.php:153 +msgid "Your registration is pending approval by the site owner." +msgstr "Skráningin þín bíður samþykkis af eiganda síðunnar." + +#: mod/register.php:219 +msgid "" +"You may (optionally) fill in this form via OpenID by supplying your OpenID " +"and clicking 'Register'." +msgstr "Þú mátt (valfrjálst) fylla í þetta svæði gegnum OpenID með því gefa upp þitt OpenID og ýta á 'Skrá'." + +#: mod/register.php:220 +msgid "" +"If you are not familiar with OpenID, please leave that field blank and fill " +"in the rest of the items." +msgstr "Ef þú veist ekki hvað OpenID er, skildu þá þetta svæði eftir tómt en fylltu í restin af svæðunum." + +#: mod/register.php:221 +msgid "Your OpenID (optional): " +msgstr "Þitt OpenID (valfrjálst):" + +#: mod/register.php:235 +msgid "Include your profile in member directory?" +msgstr "Á forsíðan þín að sjást í notendalistanum?" + +#: mod/register.php:259 +msgid "Membership on this site is by invitation only." +msgstr "Aðild að þessum vef er " + +#: mod/register.php:260 +msgid "Your invitation ID: " +msgstr "Boðskorta auðkenni:" + +#: mod/register.php:271 +msgid "Your Full Name (e.g. Joe Smith, real or real-looking): " +msgstr "" + +#: mod/register.php:272 +msgid "Your Email Address: " +msgstr "Tölvupóstur:" + +#: mod/register.php:274 mod/settings.php:1221 +msgid "New Password:" +msgstr "Nýtt aðgangsorð:" + +#: mod/register.php:274 +msgid "Leave empty for an auto generated password." +msgstr "" + +#: mod/register.php:275 mod/settings.php:1222 +msgid "Confirm:" +msgstr "Staðfesta:" + +#: mod/register.php:276 +msgid "" +"Choose a profile nickname. This must begin with a text character. Your " +"profile address on this site will then be " +"'nickname@$sitename'." +msgstr "Veldu gælunafn. Verður að byrja á staf. Slóðin þín á þessum vef verður síðan 'gælunafn@$sitename'." + +#: mod/register.php:277 +msgid "Choose a nickname: " +msgstr "Veldu gælunafn:" + +#: mod/register.php:287 +msgid "Import your profile to this friendica instance" +msgstr "" + +#: mod/settings.php:60 +msgid "Display" +msgstr "" + +#: mod/settings.php:67 mod/settings.php:871 +msgid "Social Networks" +msgstr "" + +#: mod/settings.php:88 +msgid "Connected apps" +msgstr "Tengd forrit" + +#: mod/settings.php:102 +msgid "Remove account" +msgstr "Henda tengilið" + +#: mod/settings.php:155 +msgid "Missing some important data!" +msgstr "Vantar mikilvæg gögn!" + +#: mod/settings.php:269 +msgid "Failed to connect with email account using the settings provided." +msgstr "Ekki tókst að tengjast við pósthólf með stillingum sem uppgefnar eru." + +#: mod/settings.php:274 +msgid "Email settings updated." +msgstr "Stillingar póstfangs uppfærðar." + +#: mod/settings.php:289 +msgid "Features updated" +msgstr "" + +#: mod/settings.php:356 +msgid "Relocate message has been send to your contacts" +msgstr "" + +#: mod/settings.php:375 +msgid "Empty passwords are not allowed. Password unchanged." +msgstr "Tóm aðgangsorð eru ekki leyfileg. Aðgangsorð óbreytt." + +#: mod/settings.php:383 +msgid "Wrong password." +msgstr "" + +#: mod/settings.php:394 +msgid "Password changed." +msgstr "Aðgangsorði breytt." + +#: mod/settings.php:396 +msgid "Password update failed. Please try again." +msgstr "Uppfærsla á aðgangsorði tókst ekki. Reyndu aftur." + +#: mod/settings.php:465 +msgid " Please use a shorter name." +msgstr " Notaðu styttra nafn." + +#: mod/settings.php:467 +msgid " Name too short." +msgstr "Nafn of stutt." + +#: mod/settings.php:476 +msgid "Wrong Password" +msgstr "" + +#: mod/settings.php:481 +msgid " Not valid email." +msgstr "Póstfang ógilt" + +#: mod/settings.php:487 +msgid " Cannot change to that email." +msgstr "Ekki hægt að breyta yfir í þetta póstfang." + +#: mod/settings.php:543 +msgid "Private forum has no privacy permissions. Using default privacy group." +msgstr "" + +#: mod/settings.php:547 +msgid "Private forum has no privacy permissions and no default privacy group." +msgstr "" + +#: mod/settings.php:586 +msgid "Settings updated." +msgstr "Stillingar uppfærðar." + +#: mod/settings.php:662 mod/settings.php:688 mod/settings.php:724 +msgid "Add application" +msgstr "Bæta við forriti" + +#: mod/settings.php:666 mod/settings.php:692 +msgid "Consumer Key" +msgstr "Notenda lykill" + +#: mod/settings.php:667 mod/settings.php:693 +msgid "Consumer Secret" +msgstr "Notenda leyndarmál" + +#: mod/settings.php:668 mod/settings.php:694 +msgid "Redirect" +msgstr "Áframsenda" + +#: mod/settings.php:669 mod/settings.php:695 +msgid "Icon url" +msgstr "Táknmyndar slóð" + +#: mod/settings.php:680 +msgid "You can't edit this application." +msgstr "Þú getur ekki breytt þessu forriti." + +#: mod/settings.php:723 +msgid "Connected Apps" +msgstr "Tengd forrit" + +#: mod/settings.php:727 +msgid "Client key starts with" +msgstr "Lykill viðskiptavinar byrjar á" + +#: mod/settings.php:728 +msgid "No name" +msgstr "Ekkert nafn" + +#: mod/settings.php:729 +msgid "Remove authorization" +msgstr "Fjarlæga auðkenningu" + +#: mod/settings.php:741 +msgid "No Plugin settings configured" +msgstr "Engar stillingar í kerfiseiningu uppsettar" + +#: mod/settings.php:749 +msgid "Plugin Settings" +msgstr "Stillingar kerfiseiningar" + +#: mod/settings.php:771 +msgid "Additional Features" +msgstr "" + +#: mod/settings.php:781 mod/settings.php:785 +msgid "General Social Media Settings" +msgstr "" + +#: mod/settings.php:791 +msgid "Disable intelligent shortening" +msgstr "" + +#: mod/settings.php:793 +msgid "" +"Normally the system tries to find the best link to add to shortened posts. " +"If this option is enabled then every shortened post will always point to the" +" original friendica post." +msgstr "" + +#: mod/settings.php:799 +msgid "Automatically follow any GNU Social (OStatus) followers/mentioners" +msgstr "" + +#: mod/settings.php:801 +msgid "" +"If you receive a message from an unknown OStatus user, this option decides " +"what to do. If it is checked, a new contact will be created for every " +"unknown user." +msgstr "" + +#: mod/settings.php:807 +msgid "Default group for OStatus contacts" +msgstr "" + +#: mod/settings.php:813 +msgid "Your legacy GNU Social account" +msgstr "" + +#: mod/settings.php:815 +msgid "" +"If you enter your old GNU Social/Statusnet account name here (in the format " +"user@domain.tld), your contacts will be added automatically. The field will " +"be emptied when done." +msgstr "" + +#: mod/settings.php:818 +msgid "Repair OStatus subscriptions" +msgstr "" + +#: mod/settings.php:827 mod/settings.php:828 +#, php-format +msgid "Built-in support for %s connectivity is %s" +msgstr "Innbyggður stuðningur fyrir %s tenging er%s" + +#: mod/settings.php:827 mod/settings.php:828 +msgid "enabled" +msgstr "kveikt" + +#: mod/settings.php:827 mod/settings.php:828 +msgid "disabled" +msgstr "slökkt" + +#: mod/settings.php:828 +msgid "GNU Social (OStatus)" +msgstr "" + +#: mod/settings.php:864 +msgid "Email access is disabled on this site." +msgstr "Slökkt hefur verið á tölvupóst aðgang á þessum þjón." + +#: mod/settings.php:876 +msgid "Email/Mailbox Setup" +msgstr "Tölvupóstur stilling" + +#: mod/settings.php:877 +msgid "" +"If you wish to communicate with email contacts using this service " +"(optional), please specify how to connect to your mailbox." +msgstr "Ef þú villt hafa samskipti við tölvupósts tengiliði með þessari þjónustu (valfrjálst), skilgreindu þá hvernig á að tengjast póstfanginu þínu." + +#: mod/settings.php:878 +msgid "Last successful email check:" +msgstr "Póstfang sannreynt síðast:" + +#: mod/settings.php:880 +msgid "IMAP server name:" +msgstr "IMAP þjónn:" + +#: mod/settings.php:881 +msgid "IMAP port:" +msgstr "IMAP port:" + +#: mod/settings.php:882 +msgid "Security:" +msgstr "Öryggi:" + +#: mod/settings.php:882 mod/settings.php:887 +msgid "None" +msgstr "Ekkert" + +#: mod/settings.php:883 +msgid "Email login name:" +msgstr "Notandanafn tölvupóstfangs:" + +#: mod/settings.php:884 +msgid "Email password:" +msgstr "Lykilorð tölvupóstfangs:" + +#: mod/settings.php:885 +msgid "Reply-to address:" +msgstr "Svarpóstfang:" + +#: mod/settings.php:886 +msgid "Send public posts to all email contacts:" +msgstr "Senda opinberar færslur á alla tölvupóst viðtakendur:" + +#: mod/settings.php:887 +msgid "Action after import:" +msgstr "" + +#: mod/settings.php:887 +msgid "Move to folder" +msgstr "Flytja yfir í skrásafn" + +#: mod/settings.php:888 +msgid "Move to folder:" +msgstr "Flytja yfir í skrásafn:" + +#: mod/settings.php:974 +msgid "Display Settings" +msgstr "" + +#: mod/settings.php:980 mod/settings.php:1001 +msgid "Display Theme:" +msgstr "Útlits þema:" + +#: mod/settings.php:981 +msgid "Mobile Theme:" +msgstr "" + +#: mod/settings.php:982 +msgid "Update browser every xx seconds" +msgstr "Endurhlaða vefsíðu á xx sekúndu fresti" + +#: mod/settings.php:982 +msgid "Minimum of 10 seconds. Enter -1 to disable it." +msgstr "" + +#: mod/settings.php:983 +msgid "Number of items to display per page:" +msgstr "" + +#: mod/settings.php:983 mod/settings.php:984 +msgid "Maximum of 100 items" +msgstr "" + +#: mod/settings.php:984 +msgid "Number of items to display per page when viewed from mobile device:" +msgstr "" + +#: mod/settings.php:985 +msgid "Don't show emoticons" +msgstr "" + +#: mod/settings.php:986 +msgid "Calendar" +msgstr "" + +#: mod/settings.php:987 +msgid "Beginning of week:" +msgstr "" + +#: mod/settings.php:988 +msgid "Don't show notices" +msgstr "" + +#: mod/settings.php:989 +msgid "Infinite scroll" +msgstr "" + +#: mod/settings.php:990 +msgid "Automatic updates only at the top of the network page" +msgstr "" + +#: mod/settings.php:992 +msgid "General Theme Settings" +msgstr "" + +#: mod/settings.php:993 +msgid "Custom Theme Settings" +msgstr "" + +#: mod/settings.php:994 +msgid "Content Settings" +msgstr "" + +#: mod/settings.php:995 view/theme/frio/config.php:61 +#: view/theme/cleanzero/config.php:82 view/theme/quattro/config.php:66 +#: view/theme/dispy/config.php:72 view/theme/vier/config.php:109 +#: view/theme/diabook/config.php:150 view/theme/duepuntozero/config.php:61 msgid "Theme settings" msgstr "" -#: ../../view/theme/cleanzero/config.php:83 +#: mod/settings.php:1072 +msgid "User Types" +msgstr "" + +#: mod/settings.php:1073 +msgid "Community Types" +msgstr "" + +#: mod/settings.php:1074 +msgid "Normal Account Page" +msgstr "" + +#: mod/settings.php:1075 +msgid "This account is a normal personal profile" +msgstr "Þessi notandi er með venjulega persónulega forsíðu" + +#: mod/settings.php:1078 +msgid "Soapbox Page" +msgstr "" + +#: mod/settings.php:1079 +msgid "Automatically approve all connection/friend requests as read-only fans" +msgstr "Sjálfkrafa samþykkja allar tengibeiðnir/vinabeiðnir einungis sem les-fylgjendur" + +#: mod/settings.php:1082 +msgid "Community Forum/Celebrity Account" +msgstr "" + +#: mod/settings.php:1083 +msgid "" +"Automatically approve all connection/friend requests as read-write fans" +msgstr "Sjálfkrafa samþykkja allar tengibeiðnir/vinabeiðnir sem les-skrif fylgjendur" + +#: mod/settings.php:1086 +msgid "Automatic Friend Page" +msgstr "" + +#: mod/settings.php:1087 +msgid "Automatically approve all connection/friend requests as friends" +msgstr "Sjálfkrafa samþykkja allar tengibeiðnir/vinabeiðnir sem vini" + +#: mod/settings.php:1090 +msgid "Private Forum [Experimental]" +msgstr "Einkaspjallsvæði [á tilraunastigi]" + +#: mod/settings.php:1091 +msgid "Private forum - approved members only" +msgstr "Einkaspjallsvæði - einungis skráðir meðlimir" + +#: mod/settings.php:1103 +msgid "OpenID:" +msgstr "OpenID:" + +#: mod/settings.php:1103 +msgid "(Optional) Allow this OpenID to login to this account." +msgstr "(Valfrjálst) Leyfa þessu OpenID til að auðkennast sem þessi notandi." + +#: mod/settings.php:1113 +msgid "Publish your default profile in your local site directory?" +msgstr "Gefa út sjálfgefna forsíðu í tengiliðalista á þessum þjón?" + +#: mod/settings.php:1119 +msgid "Publish your default profile in the global social directory?" +msgstr "Gefa sjálfgefna forsíðu út í alheimstengiliðalista?" + +#: mod/settings.php:1127 +msgid "Hide your contact/friend list from viewers of your default profile?" +msgstr "Fela tengiliða-/vinalistann þinn fyrir áhorfendum á sjálfgefinni forsíðu?" + +#: mod/settings.php:1131 +msgid "" +"If enabled, posting public messages to Diaspora and other networks isn't " +"possible." +msgstr "" + +#: mod/settings.php:1136 +msgid "Allow friends to post to your profile page?" +msgstr "Leyfa vinum að deila á forsíðuna þína?" + +#: mod/settings.php:1142 +msgid "Allow friends to tag your posts?" +msgstr "Leyfa vinum að merkja færslurnar þínar?" + +#: mod/settings.php:1148 +msgid "Allow us to suggest you as a potential friend to new members?" +msgstr "Leyfa að stungið verði uppá þér sem hugsamlegum vinur fyrir aðra notendur? " + +#: mod/settings.php:1154 +msgid "Permit unknown people to send you private mail?" +msgstr "" + +#: mod/settings.php:1162 +msgid "Profile is not published." +msgstr "Forsíðu hefur ekki verið gefinn út." + +#: mod/settings.php:1170 +#, php-format +msgid "Your Identity Address is '%s' or '%s'." +msgstr "" + +#: mod/settings.php:1177 +msgid "Automatically expire posts after this many days:" +msgstr "Sjálfkrafa fyrna færslu eftir hvað marga daga:" + +#: mod/settings.php:1177 +msgid "If empty, posts will not expire. Expired posts will be deleted" +msgstr "Tómar færslur renna ekki út. Útrunnum færslum er eytt" + +#: mod/settings.php:1178 +msgid "Advanced expiration settings" +msgstr "Ítarlegar stillingar fyrningatíma" + +#: mod/settings.php:1179 +msgid "Advanced Expiration" +msgstr "Flókin fyrning" + +#: mod/settings.php:1180 +msgid "Expire posts:" +msgstr "Fyrna færslur:" + +#: mod/settings.php:1181 +msgid "Expire personal notes:" +msgstr "Fyrna einka glósur:" + +#: mod/settings.php:1182 +msgid "Expire starred posts:" +msgstr "Fyrna stjörnumerktar færslur:" + +#: mod/settings.php:1183 +msgid "Expire photos:" +msgstr "Fyrna myndum:" + +#: mod/settings.php:1184 +msgid "Only expire posts by others:" +msgstr "" + +#: mod/settings.php:1212 +msgid "Account Settings" +msgstr "Stillingar aðgangs" + +#: mod/settings.php:1220 +msgid "Password Settings" +msgstr "Stillingar aðgangsorða" + +#: mod/settings.php:1222 +msgid "Leave password fields blank unless changing" +msgstr "Hafðu aðgangsorða svæði tóm nema þegar verið er að breyta" + +#: mod/settings.php:1223 +msgid "Current Password:" +msgstr "" + +#: mod/settings.php:1223 mod/settings.php:1224 +msgid "Your current password to confirm the changes" +msgstr "" + +#: mod/settings.php:1224 +msgid "Password:" +msgstr "" + +#: mod/settings.php:1228 +msgid "Basic Settings" +msgstr "Grunnstillingar" + +#: mod/settings.php:1230 +msgid "Email Address:" +msgstr "Póstfang:" + +#: mod/settings.php:1231 +msgid "Your Timezone:" +msgstr "Þitt tímabelti:" + +#: mod/settings.php:1232 +msgid "Your Language:" +msgstr "" + +#: mod/settings.php:1232 +msgid "" +"Set the language we use to show you friendica interface and to send you " +"emails" +msgstr "" + +#: mod/settings.php:1233 +msgid "Default Post Location:" +msgstr "Sjálfgefin staðsetning færslu:" + +#: mod/settings.php:1234 +msgid "Use Browser Location:" +msgstr "Nota vafra staðsetningu:" + +#: mod/settings.php:1237 +msgid "Security and Privacy Settings" +msgstr "Öryggis og friðhelgistillingar" + +#: mod/settings.php:1239 +msgid "Maximum Friend Requests/Day:" +msgstr "Hámarks vinabeiðnir á dag:" + +#: mod/settings.php:1239 mod/settings.php:1269 +msgid "(to prevent spam abuse)" +msgstr "(til að koma í veg fyrir rusl misnotkun)" + +#: mod/settings.php:1240 +msgid "Default Post Permissions" +msgstr "Sjálfgefnar aðgangstýring á færslum" + +#: mod/settings.php:1241 +msgid "(click to open/close)" +msgstr "(ýttu á til að opna/loka)" + +#: mod/settings.php:1252 +msgid "Default Private Post" +msgstr "" + +#: mod/settings.php:1253 +msgid "Default Public Post" +msgstr "" + +#: mod/settings.php:1257 +msgid "Default Permissions for New Posts" +msgstr "" + +#: mod/settings.php:1269 +msgid "Maximum private messages per day from unknown people:" +msgstr "" + +#: mod/settings.php:1272 +msgid "Notification Settings" +msgstr "Stillingar á tilkynningum" + +#: mod/settings.php:1273 +msgid "By default post a status message when:" +msgstr "" + +#: mod/settings.php:1274 +msgid "accepting a friend request" +msgstr "samþykki vinabeiðni" + +#: mod/settings.php:1275 +msgid "joining a forum/community" +msgstr "ganga til liðs við hóp/samfélag" + +#: mod/settings.php:1276 +msgid "making an interesting profile change" +msgstr "" + +#: mod/settings.php:1277 +msgid "Send a notification email when:" +msgstr "Senda tilkynninga tölvupóst þegar:" + +#: mod/settings.php:1278 +msgid "You receive an introduction" +msgstr "Þú færð kynningu" + +#: mod/settings.php:1279 +msgid "Your introductions are confirmed" +msgstr "Kynningarnar þínar eru samþykktar" + +#: mod/settings.php:1280 +msgid "Someone writes on your profile wall" +msgstr "Einhver skrifar á vegginn þínn" + +#: mod/settings.php:1281 +msgid "Someone writes a followup comment" +msgstr "Einhver skrifar athugasemd á færslu hjá þér" + +#: mod/settings.php:1282 +msgid "You receive a private message" +msgstr "Þú færð einkaskilaboð" + +#: mod/settings.php:1283 +msgid "You receive a friend suggestion" +msgstr "Þér hefur borist vina uppástunga" + +#: mod/settings.php:1284 +msgid "You are tagged in a post" +msgstr "Þú varst merkt(ur) í færslu" + +#: mod/settings.php:1285 +msgid "You are poked/prodded/etc. in a post" +msgstr "" + +#: mod/settings.php:1287 +msgid "Activate desktop notifications" +msgstr "" + +#: mod/settings.php:1287 +msgid "Show desktop popup on new notifications" +msgstr "" + +#: mod/settings.php:1289 +msgid "Text-only notification emails" +msgstr "" + +#: mod/settings.php:1291 +msgid "Send text only notification emails, without the html part" +msgstr "" + +#: mod/settings.php:1293 +msgid "Advanced Account/Page Type Settings" +msgstr "" + +#: mod/settings.php:1294 +msgid "Change the behaviour of this account for special situations" +msgstr "" + +#: mod/settings.php:1297 +msgid "Relocate" +msgstr "" + +#: mod/settings.php:1298 +msgid "" +"If you have moved this profile from another server, and some of your " +"contacts don't receive your updates, try pushing this button." +msgstr "" + +#: mod/settings.php:1299 +msgid "Resend relocate message to contacts" +msgstr "" + +#: mod/wallmessage.php:42 mod/wallmessage.php:112 +#, php-format +msgid "Number of daily wall messages for %s exceeded. Message failed." +msgstr "" + +#: mod/wallmessage.php:56 mod/message.php:71 +msgid "No recipient selected." +msgstr "Engir viðtakendur valdir." + +#: mod/wallmessage.php:59 +msgid "Unable to check your home location." +msgstr "" + +#: mod/wallmessage.php:62 mod/message.php:78 +msgid "Message could not be sent." +msgstr "Ekki tókst að senda skilaboð." + +#: mod/wallmessage.php:65 mod/message.php:81 +msgid "Message collection failure." +msgstr "Ekki tókst að sækja skilaboð." + +#: mod/wallmessage.php:68 mod/message.php:84 +msgid "Message sent." +msgstr "Skilaboð send." + +#: mod/wallmessage.php:86 mod/wallmessage.php:95 +msgid "No recipient." +msgstr "" + +#: mod/wallmessage.php:142 mod/message.php:341 +msgid "Send Private Message" +msgstr "Senda einkaskilaboð" + +#: mod/wallmessage.php:143 +#, php-format +msgid "" +"If you wish for %s to respond, please check that the privacy settings on " +"your site allow private mail from unknown senders." +msgstr "" + +#: mod/wallmessage.php:144 mod/message.php:342 mod/message.php:536 +msgid "To:" +msgstr "Til:" + +#: mod/wallmessage.php:145 mod/message.php:347 mod/message.php:538 +msgid "Subject:" +msgstr "Efni:" + +#: mod/share.php:38 +msgid "link" +msgstr "tengill" + +#: mod/api.php:76 mod/api.php:102 +msgid "Authorize application connection" +msgstr "Leyfa forriti að tengjast" + +#: mod/api.php:77 +msgid "Return to your app and insert this Securty Code:" +msgstr "Farðu aftur í forritið þitt og settu þennan öryggiskóða þar" + +#: mod/api.php:89 +msgid "Please login to continue." +msgstr "Skráðu þig inn til að halda áfram." + +#: mod/api.php:104 +msgid "" +"Do you want to authorize this application to access your posts and contacts," +" and/or create new posts for you?" +msgstr "Vilt þú leyfa þessu forriti að hafa aðgang að færslum og tengiliðum, og/eða stofna nýjar færslur fyrir þig?" + +#: mod/babel.php:17 +msgid "Source (bbcode) text:" +msgstr "" + +#: mod/babel.php:23 +msgid "Source (Diaspora) text to convert to BBcode:" +msgstr "" + +#: mod/babel.php:31 +msgid "Source input: " +msgstr "" + +#: mod/babel.php:35 +msgid "bb2html (raw HTML): " +msgstr "bb2html (hrátt HTML): " + +#: mod/babel.php:39 +msgid "bb2html: " +msgstr "bb2html: " + +#: mod/babel.php:43 +msgid "bb2html2bb: " +msgstr "bb2html2bb: " + +#: mod/babel.php:47 +msgid "bb2md: " +msgstr "bb2md: " + +#: mod/babel.php:51 +msgid "bb2md2html: " +msgstr "bb2md2html: " + +#: mod/babel.php:55 +msgid "bb2dia2bb: " +msgstr "bb2dia2bb: " + +#: mod/babel.php:59 +msgid "bb2md2html2bb: " +msgstr "bb2md2html2bb: " + +#: mod/babel.php:69 +msgid "Source input (Diaspora format): " +msgstr "" + +#: mod/babel.php:74 +msgid "diaspora2bb: " +msgstr "diaspora2bb: " + +#: mod/item.php:116 +msgid "Unable to locate original post." +msgstr "Ekki tókst að finna upphaflega færslu." + +#: mod/item.php:334 +msgid "Empty post discarded." +msgstr "Tóm færsla eytt." + +#: mod/item.php:867 +msgid "System error. Post not saved." +msgstr "Kerfisvilla. Færsla ekki vistuð." + +#: mod/item.php:993 +#, php-format +msgid "" +"This message was sent to you by %s, a member of the Friendica social " +"network." +msgstr "Skilaboðið sendi %s, notandi á Friendica samfélagsnetinu." + +#: mod/item.php:995 +#, php-format +msgid "You may visit them online at %s" +msgstr "Þú getur heimsótt þau á netinu á %s" + +#: mod/item.php:996 +msgid "" +"Please contact the sender by replying to this post if you do not wish to " +"receive these messages." +msgstr "Hafðu samband við sendanda með því að svara á þessari færslu ef þú villt ekki fá þessi skilaboð." + +#: mod/item.php:1000 +#, php-format +msgid "%s posted an update." +msgstr "%s hefur sent uppfærslu." + +#: mod/ostatus_subscribe.php:14 +msgid "Subscribing to OStatus contacts" +msgstr "" + +#: mod/ostatus_subscribe.php:25 +msgid "No contact provided." +msgstr "" + +#: mod/ostatus_subscribe.php:30 +msgid "Couldn't fetch information for contact." +msgstr "" + +#: mod/ostatus_subscribe.php:38 +msgid "Couldn't fetch friends for contact." +msgstr "" + +#: mod/ostatus_subscribe.php:65 +msgid "success" +msgstr "tókst" + +#: mod/ostatus_subscribe.php:67 +msgid "failed" +msgstr "mistókst" + +#: mod/dfrn_poll.php:104 mod/dfrn_poll.php:537 +#, php-format +msgid "%1$s welcomes %2$s" +msgstr "" + +#: mod/profile.php:179 +msgid "Tips for New Members" +msgstr "Ábendingar fyrir nýja notendur" + +#: mod/message.php:75 +msgid "Unable to locate contact information." +msgstr "Ekki tókst að staðsetja tengiliðs upplýsingar." + +#: mod/message.php:215 +msgid "Do you really want to delete this message?" +msgstr "" + +#: mod/message.php:235 +msgid "Message deleted." +msgstr "Skilaboðum eytt." + +#: mod/message.php:266 +msgid "Conversation removed." +msgstr "Samtali eytt." + +#: mod/message.php:383 +msgid "No messages." +msgstr "Engin skilaboð." + +#: mod/message.php:426 +msgid "Message not available." +msgstr "Ekki næst í skilaboð." + +#: mod/message.php:503 +msgid "Delete message" +msgstr "Eyða skilaboðum" + +#: mod/message.php:529 mod/message.php:609 +msgid "Delete conversation" +msgstr "Eyða samtali" + +#: mod/message.php:531 +msgid "" +"No secure communications available. You may be able to " +"respond from the sender's profile page." +msgstr "" + +#: mod/message.php:535 +msgid "Send Reply" +msgstr "Senda svar" + +#: mod/message.php:579 +#, php-format +msgid "Unknown sender - %s" +msgstr "" + +#: mod/message.php:581 +#, php-format +msgid "You and %s" +msgstr "" + +#: mod/message.php:583 +#, php-format +msgid "%s and You" +msgstr "" + +#: mod/message.php:612 +msgid "D, d M Y - g:i A" +msgstr "" + +#: mod/message.php:615 +#, php-format +msgid "%d message" +msgid_plural "%d messages" +msgstr[0] "" +msgstr[1] "" + +#: mod/manage.php:139 +msgid "Manage Identities and/or Pages" +msgstr "Sýsla með notendur og/eða síður" + +#: mod/manage.php:140 +msgid "" +"Toggle between different identities or community/group pages which share " +"your account details or which you have been granted \"manage\" permissions" +msgstr "Skipta á milli auðkenna eða hópa- / stjörnunotanda sem deila þínum aðgangs upplýsingum eða þér verið úthlutað \"umsýslu\" réttindum." + +#: mod/manage.php:141 +msgid "Select an identity to manage: " +msgstr "Veldu notanda til að sýsla með:" + +#: object/Item.php:370 +msgid "via" +msgstr "" + +#: view/theme/frio/php/Image.php:23 +msgid "Repeat the image" +msgstr "" + +#: view/theme/frio/php/Image.php:23 +msgid "Will repeat your image to fill the background." +msgstr "" + +#: view/theme/frio/php/Image.php:25 +msgid "Stretch" +msgstr "" + +#: view/theme/frio/php/Image.php:25 +msgid "Will stretch to width/height of the image." +msgstr "" + +#: view/theme/frio/php/Image.php:27 +msgid "Resize fill and-clip" +msgstr "" + +#: view/theme/frio/php/Image.php:27 +msgid "Resize to fill and retain aspect ratio." +msgstr "" + +#: view/theme/frio/php/Image.php:29 +msgid "Resize best fit" +msgstr "" + +#: view/theme/frio/php/Image.php:29 +msgid "Resize to best fit and retain aspect ratio." +msgstr "" + +#: view/theme/frio/theme.php:226 +msgid "Remote" +msgstr "" + +#: view/theme/frio/theme.php:232 +msgid "Visitor" +msgstr "" + +#: view/theme/frio/config.php:42 +msgid "Default" +msgstr "" + +#: view/theme/frio/config.php:54 +msgid "Note: " +msgstr "" + +#: view/theme/frio/config.php:54 +msgid "Check image permissions if all users are allowed to visit the image" +msgstr "" + +#: view/theme/frio/config.php:62 +msgid "Select scheme" +msgstr "" + +#: view/theme/frio/config.php:63 +msgid "Navigation bar background color" +msgstr "" + +#: view/theme/frio/config.php:64 +msgid "Navigation bar icon color " +msgstr "" + +#: view/theme/frio/config.php:65 +msgid "Link color" +msgstr "Litur tengils" + +#: view/theme/frio/config.php:66 +msgid "Set the background color" +msgstr "" + +#: view/theme/frio/config.php:67 +msgid "Content background transparency" +msgstr "" + +#: view/theme/frio/config.php:68 +msgid "Set the background image" +msgstr "" + +#: view/theme/cleanzero/config.php:83 msgid "Set resize level for images in posts and comments (width and height)" msgstr "" -#: ../../view/theme/cleanzero/config.php:84 -#: ../../view/theme/dispy/config.php:73 -#: ../../view/theme/diabook/config.php:151 +#: view/theme/cleanzero/config.php:84 view/theme/dispy/config.php:73 +#: view/theme/diabook/config.php:151 msgid "Set font-size for posts and comments" msgstr "" -#: ../../view/theme/cleanzero/config.php:85 +#: view/theme/cleanzero/config.php:85 msgid "Set theme width" msgstr "" -#: ../../view/theme/cleanzero/config.php:86 -#: ../../view/theme/quattro/config.php:68 +#: view/theme/cleanzero/config.php:86 view/theme/quattro/config.php:68 msgid "Color scheme" msgstr "" -#: ../../view/theme/dispy/config.php:74 -#: ../../view/theme/diabook/config.php:152 -msgid "Set line-height for posts and comments" -msgstr "" - -#: ../../view/theme/dispy/config.php:75 -msgid "Set colour scheme" -msgstr "Setja litar þema" - -#: ../../view/theme/quattro/config.php:67 +#: view/theme/quattro/config.php:67 msgid "Alignment" msgstr "" -#: ../../view/theme/quattro/config.php:67 +#: view/theme/quattro/config.php:67 msgid "Left" msgstr "" -#: ../../view/theme/quattro/config.php:67 +#: view/theme/quattro/config.php:67 msgid "Center" msgstr "" -#: ../../view/theme/quattro/config.php:69 +#: view/theme/quattro/config.php:69 msgid "Posts font size" msgstr "" -#: ../../view/theme/quattro/config.php:70 +#: view/theme/quattro/config.php:70 msgid "Textareas font size" msgstr "" -#: ../../view/theme/diabook/config.php:153 -msgid "Set resolution for middle column" +#: view/theme/dispy/config.php:74 view/theme/diabook/config.php:152 +msgid "Set line-height for posts and comments" msgstr "" -#: ../../view/theme/diabook/config.php:154 -msgid "Set color scheme" +#: view/theme/dispy/config.php:75 +msgid "Set colour scheme" msgstr "Setja litar þema" -#: ../../view/theme/diabook/config.php:155 -msgid "Set zoomfactor for Earth Layer" -msgstr "" - -#: ../../view/theme/diabook/config.php:156 -#: ../../view/theme/diabook/theme.php:585 -msgid "Set longitude (X) for Earth Layers" -msgstr "" - -#: ../../view/theme/diabook/config.php:157 -#: ../../view/theme/diabook/theme.php:586 -msgid "Set latitude (Y) for Earth Layers" -msgstr "" - -#: ../../view/theme/diabook/config.php:158 -#: ../../view/theme/diabook/theme.php:130 -#: ../../view/theme/diabook/theme.php:544 -#: ../../view/theme/diabook/theme.php:624 -msgid "Community Pages" -msgstr "" - -#: ../../view/theme/diabook/config.php:159 -#: ../../view/theme/diabook/theme.php:579 -#: ../../view/theme/diabook/theme.php:625 -msgid "Earth Layers" -msgstr "" - -#: ../../view/theme/diabook/config.php:160 -#: ../../view/theme/diabook/theme.php:391 -#: ../../view/theme/diabook/theme.php:626 +#: view/theme/vier/theme.php:152 view/theme/vier/config.php:112 +#: view/theme/diabook/theme.php:391 view/theme/diabook/theme.php:626 +#: view/theme/diabook/config.php:160 msgid "Community Profiles" msgstr "" -#: ../../view/theme/diabook/config.php:161 -#: ../../view/theme/diabook/theme.php:599 -#: ../../view/theme/diabook/theme.php:627 -msgid "Help or @NewHere ?" -msgstr "" - -#: ../../view/theme/diabook/config.php:162 -#: ../../view/theme/diabook/theme.php:606 -#: ../../view/theme/diabook/theme.php:628 -msgid "Connect Services" -msgstr "" - -#: ../../view/theme/diabook/config.php:163 -#: ../../view/theme/diabook/theme.php:523 -#: ../../view/theme/diabook/theme.php:629 -msgid "Find Friends" -msgstr "" - -#: ../../view/theme/diabook/config.php:164 -#: ../../view/theme/diabook/theme.php:412 -#: ../../view/theme/diabook/theme.php:630 +#: view/theme/vier/theme.php:181 view/theme/vier/config.php:116 +#: view/theme/diabook/theme.php:412 view/theme/diabook/theme.php:630 +#: view/theme/diabook/config.php:164 msgid "Last users" msgstr "Nýjustu notendurnir" -#: ../../view/theme/diabook/config.php:165 -#: ../../view/theme/diabook/theme.php:486 -#: ../../view/theme/diabook/theme.php:631 -msgid "Last photos" -msgstr "Nýjustu myndirnar" - -#: ../../view/theme/diabook/config.php:166 -#: ../../view/theme/diabook/theme.php:441 -#: ../../view/theme/diabook/theme.php:632 -msgid "Last likes" -msgstr "Nýjustu \"líkar þetta\"" - -#: ../../view/theme/diabook/theme.php:125 -msgid "Your contacts" +#: view/theme/vier/theme.php:199 view/theme/vier/config.php:115 +#: view/theme/diabook/theme.php:523 view/theme/diabook/theme.php:629 +#: view/theme/diabook/config.php:163 +msgid "Find Friends" msgstr "" -#: ../../view/theme/diabook/theme.php:128 -msgid "Your personal photos" -msgstr "Þínar einka myndir" - -#: ../../view/theme/diabook/theme.php:524 +#: view/theme/vier/theme.php:200 view/theme/diabook/theme.php:524 msgid "Local Directory" msgstr "" -#: ../../view/theme/diabook/theme.php:584 -msgid "Set zoomfactor for Earth Layers" +#: view/theme/vier/theme.php:291 +msgid "Quick Start" msgstr "" -#: ../../view/theme/diabook/theme.php:622 -msgid "Show/hide boxes at right-hand column:" +#: view/theme/vier/theme.php:373 view/theme/vier/config.php:114 +#: view/theme/diabook/theme.php:606 view/theme/diabook/theme.php:628 +#: view/theme/diabook/config.php:162 +msgid "Connect Services" msgstr "" -#: ../../view/theme/vier/config.php:56 +#: view/theme/vier/config.php:64 +msgid "Comma separated list of helper forums" +msgstr "" + +#: view/theme/vier/config.php:110 msgid "Set style" msgstr "" -#: ../../view/theme/duepuntozero/config.php:45 +#: view/theme/vier/config.php:111 view/theme/diabook/theme.php:130 +#: view/theme/diabook/theme.php:544 view/theme/diabook/theme.php:624 +#: view/theme/diabook/config.php:158 +msgid "Community Pages" +msgstr "" + +#: view/theme/vier/config.php:113 view/theme/diabook/theme.php:599 +#: view/theme/diabook/theme.php:627 view/theme/diabook/config.php:161 +msgid "Help or @NewHere ?" +msgstr "" + +#: view/theme/diabook/theme.php:125 +msgid "Your contacts" +msgstr "" + +#: view/theme/diabook/theme.php:128 +msgid "Your personal photos" +msgstr "Einkamyndirnar þínar" + +#: view/theme/diabook/theme.php:441 view/theme/diabook/theme.php:632 +#: view/theme/diabook/config.php:166 +msgid "Last likes" +msgstr "Nýjustu \"líkar þetta\"" + +#: view/theme/diabook/theme.php:486 view/theme/diabook/theme.php:631 +#: view/theme/diabook/config.php:165 +msgid "Last photos" +msgstr "Nýjustu myndirnar" + +#: view/theme/diabook/theme.php:579 view/theme/diabook/theme.php:625 +#: view/theme/diabook/config.php:159 +msgid "Earth Layers" +msgstr "" + +#: view/theme/diabook/theme.php:584 +msgid "Set zoomfactor for Earth Layers" +msgstr "" + +#: view/theme/diabook/theme.php:585 view/theme/diabook/config.php:156 +msgid "Set longitude (X) for Earth Layers" +msgstr "" + +#: view/theme/diabook/theme.php:586 view/theme/diabook/config.php:157 +msgid "Set latitude (Y) for Earth Layers" +msgstr "" + +#: view/theme/diabook/theme.php:622 +msgid "Show/hide boxes at right-hand column:" +msgstr "" + +#: view/theme/diabook/config.php:153 +msgid "Set resolution for middle column" +msgstr "" + +#: view/theme/diabook/config.php:154 +msgid "Set color scheme" +msgstr "Setja litar þema" + +#: view/theme/diabook/config.php:155 +msgid "Set zoomfactor for Earth Layer" +msgstr "" + +#: view/theme/duepuntozero/config.php:45 msgid "greenzero" msgstr "" -#: ../../view/theme/duepuntozero/config.php:46 +#: view/theme/duepuntozero/config.php:46 msgid "purplezero" msgstr "" -#: ../../view/theme/duepuntozero/config.php:47 +#: view/theme/duepuntozero/config.php:47 msgid "easterbunny" msgstr "" -#: ../../view/theme/duepuntozero/config.php:48 +#: view/theme/duepuntozero/config.php:48 msgid "darkzero" msgstr "" -#: ../../view/theme/duepuntozero/config.php:49 +#: view/theme/duepuntozero/config.php:49 msgid "comix" msgstr "" -#: ../../view/theme/duepuntozero/config.php:50 +#: view/theme/duepuntozero/config.php:50 msgid "slackr" msgstr "" -#: ../../view/theme/duepuntozero/config.php:62 +#: view/theme/duepuntozero/config.php:62 msgid "Variations" msgstr "" diff --git a/view/is/strings.php b/view/lang/is/strings.php similarity index 76% rename from view/is/strings.php rename to view/lang/is/strings.php index e6fc5e2d8..5e53277c0 100644 --- a/view/is/strings.php +++ b/view/lang/is/strings.php @@ -2,1301 +2,55 @@ if(! function_exists("string_plural_select_is")) { function string_plural_select_is($n){ - return ($n != 1);; + return ($n % 10 != 1 || $n % 100 == 11);; }} ; -$a->strings["%d contact edited."] = array( - 0 => "", - 1 => "", -); -$a->strings["Could not access contact record."] = "Tókst ekki að ná í uppl. um tengilið"; -$a->strings["Could not locate selected profile."] = "Tókst ekki að staðsetja valinn forsíðu"; -$a->strings["Contact updated."] = "Tengiliður uppfærður"; -$a->strings["Failed to update contact record."] = "Ekki tókst að uppfæra tengiliðs skrá."; -$a->strings["Permission denied."] = "Heimild ekki veitt."; -$a->strings["Contact has been blocked"] = "Lokað á tengilið"; -$a->strings["Contact has been unblocked"] = "Opnað á tengilið"; -$a->strings["Contact has been ignored"] = "Tengiliður hunsaður"; -$a->strings["Contact has been unignored"] = "Tengiliður afhunsaður"; -$a->strings["Contact has been archived"] = "Tengiliður settur í geymslu"; -$a->strings["Contact has been unarchived"] = "Tengiliður tekinn úr geymslu"; -$a->strings["Do you really want to delete this contact?"] = "Viltu í alvörunni eyða þessum tengilið?"; -$a->strings["Yes"] = "Já"; -$a->strings["Cancel"] = "Hætta við"; -$a->strings["Contact has been removed."] = "Tengiliður fjarlægður"; -$a->strings["You are mutual friends with %s"] = "Þú ert gagnkvæmur vinur %s"; -$a->strings["You are sharing with %s"] = "Þú ert að deila með %s"; -$a->strings["%s is sharing with you"] = "%s er að deila með þér"; -$a->strings["Private communications are not available for this contact."] = "Einkasamtal ekki í boði fyrir þennan"; -$a->strings["Never"] = "aldrei"; -$a->strings["(Update was successful)"] = "(uppfærsla tókst)"; -$a->strings["(Update was not successful)"] = "(uppfærsla tókst ekki)"; -$a->strings["Suggest friends"] = "Stinga uppá vinum"; -$a->strings["Network type: %s"] = "Net tegund: %s"; -$a->strings["%d contact in common"] = array( - 0 => "%d tengiliður sameiginlegur", - 1 => "%d tengiliðir sameiginlegir", -); -$a->strings["View all contacts"] = "Skoða alla tengiliði"; -$a->strings["Unblock"] = "Afbanna"; -$a->strings["Block"] = "Banna"; -$a->strings["Toggle Blocked status"] = ""; -$a->strings["Unignore"] = "Byrja að fylgjast með á ný"; -$a->strings["Ignore"] = "Hunsa"; -$a->strings["Toggle Ignored status"] = ""; -$a->strings["Unarchive"] = "Taka úr geymslu"; -$a->strings["Archive"] = "Setja í geymslu"; -$a->strings["Toggle Archive status"] = ""; -$a->strings["Repair"] = "Gera við "; -$a->strings["Advanced Contact Settings"] = ""; -$a->strings["Communications lost with this contact!"] = ""; -$a->strings["Contact Editor"] = "Stilling tengiliðar"; -$a->strings["Submit"] = "Senda inn"; -$a->strings["Profile Visibility"] = "Forsíðu sjáanleiki"; -$a->strings["Please choose the profile you would like to display to %s when viewing your profile securely."] = "Veldu forsíðu sem á að birtast %s þegar hann skoðaður með öruggum hætti"; -$a->strings["Contact Information / Notes"] = "Uppl. um tengilið / minnisatriði"; -$a->strings["Edit contact notes"] = "Breyta minnispunktum tengiliðs "; -$a->strings["Visit %s's profile [%s]"] = "Heimsækja forsíðu %s [%s]"; -$a->strings["Block/Unblock contact"] = "útiloka/opna á tengilið"; -$a->strings["Ignore contact"] = "Hunsa tengilið"; -$a->strings["Repair URL settings"] = "Gera við slóð stillingar"; -$a->strings["View conversations"] = "Skoða samtöl"; -$a->strings["Delete contact"] = "Eyða tengilið"; -$a->strings["Last update:"] = "Síðasta uppfærsla:"; -$a->strings["Update public posts"] = "Uppfæra opinberar færslur"; -$a->strings["Update now"] = "Uppfæra núna"; -$a->strings["Currently blocked"] = "Útilokaður sem stendur"; -$a->strings["Currently ignored"] = "Hunsaður sem stendur"; -$a->strings["Currently archived"] = "Í geymslu"; -$a->strings["Hide this contact from others"] = "Gera þennan notanda ósýnilegan öðrum"; -$a->strings["Replies/likes to your public posts may still be visible"] = "Svör/\"likar við\" á þínar opinberar færslur geta mögulega verið sýnileg öðrum"; -$a->strings["Notification for new posts"] = ""; -$a->strings["Send a notification of every new post of this contact"] = ""; -$a->strings["Fetch further information for feeds"] = ""; -$a->strings["Disabled"] = ""; -$a->strings["Fetch information"] = ""; -$a->strings["Fetch information and keywords"] = ""; -$a->strings["Blacklisted keywords"] = ""; -$a->strings["Comma separated list of keywords that should not be converted to hashtags, when \"Fetch information and keywords\" is selected"] = ""; -$a->strings["Suggestions"] = "Uppástungur"; -$a->strings["Suggest potential friends"] = ""; -$a->strings["All Contacts"] = "Allir tengiliðir"; -$a->strings["Show all contacts"] = "Sýna alla tengiliði"; -$a->strings["Unblocked"] = "Afhunsað"; -$a->strings["Only show unblocked contacts"] = ""; -$a->strings["Blocked"] = "Banna"; -$a->strings["Only show blocked contacts"] = ""; -$a->strings["Ignored"] = "Hunsa"; -$a->strings["Only show ignored contacts"] = ""; -$a->strings["Archived"] = "Í geymslu"; -$a->strings["Only show archived contacts"] = "Aðeins sýna geymda tengiliði"; -$a->strings["Hidden"] = "Falinn"; -$a->strings["Only show hidden contacts"] = "Aðeins sýna falda tengiliði"; -$a->strings["Mutual Friendship"] = "Sameiginlegur vinskapur"; -$a->strings["is a fan of yours"] = "er aðdáandi þinn"; -$a->strings["you are a fan of"] = "þú er aðdáandi"; -$a->strings["Edit contact"] = "Breyta tengilið"; -$a->strings["Contacts"] = "Tengiliðir"; -$a->strings["Search your contacts"] = "Leita í þínum vinum"; -$a->strings["Finding: "] = "Niðurstöður:"; -$a->strings["Find"] = "Finna"; -$a->strings["Update"] = "Uppfæra"; -$a->strings["Delete"] = "Eyða"; -$a->strings["No profile"] = "Engin forsíða"; -$a->strings["Manage Identities and/or Pages"] = "Sýsla með notendur og/eða síður"; -$a->strings["Toggle between different identities or community/group pages which share your account details or which you have been granted \"manage\" permissions"] = "Skipta á milli auðkenna eða hópa- / stjörnunotanda sem deila þínum aðgangs upplýsingum eða þér verið úthlutað \"umsýslu\" réttindum."; -$a->strings["Select an identity to manage: "] = "Veldu notanda til að sýsla með:"; -$a->strings["Post successful."] = "Melding tókst."; -$a->strings["Permission denied"] = "Bannaður aðgangur"; -$a->strings["Invalid profile identifier."] = "Ógilt tengiliða auðkenni"; -$a->strings["Profile Visibility Editor"] = "Sýsla með sjáanleika forsíðu"; -$a->strings["Profile"] = "Forsíða"; -$a->strings["Click on a contact to add or remove."] = "Ýttu á tengili til að bæta við hóp eða taka úr hóp."; -$a->strings["Visible To"] = "Sjáanlegur hverjum"; -$a->strings["All Contacts (with secure profile access)"] = "Allir tengiliðir (með öruggann aðgang að forsíðu)"; -$a->strings["Item not found."] = "Atriði fannst ekki."; -$a->strings["Public access denied."] = "Alemennings aðgangur ekki veittur."; -$a->strings["Access to this profile has been restricted."] = "Aðgangur að þessari forsíðu hefur verið heftur."; -$a->strings["Item has been removed."] = "Atriði hefur verið fjarlægt."; -$a->strings["Welcome to Friendica"] = "Velkomin(n) á Friendica"; -$a->strings["New Member Checklist"] = "Nýr notandi verklisti"; -$a->strings["We would like to offer some tips and links to help make your experience enjoyable. Click any item to visit the relevant page. A link to this page will be visible from your home page for two weeks after your initial registration and then will quietly disappear."] = ""; -$a->strings["Getting Started"] = ""; -$a->strings["Friendica Walk-Through"] = ""; -$a->strings["On your Quick Start page - find a brief introduction to your profile and network tabs, make some new connections, and find some groups to join."] = ""; -$a->strings["Settings"] = "Stillingar"; -$a->strings["Go to Your Settings"] = ""; -$a->strings["On your Settings page - change your initial password. Also make a note of your Identity Address. This looks just like an email address - and will be useful in making friends on the free social web."] = ""; -$a->strings["Review the other settings, particularly the privacy settings. An unpublished directory listing is like having an unlisted phone number. In general, you should probably publish your listing - unless all of your friends and potential friends know exactly how to find you."] = "Yfirfarðu aðrar stillingar, sérstaklega næðis stillingar. Óútgefin forsíða er einsog óskráð símanúmer. Sem þýðir að líklega viltu gefa út forsíðuna þína - nema allir vinir þínir og tilvonandi vinir vita nákvæmlega hvernig á að finna þig."; -$a->strings["Upload Profile Photo"] = "Hlaða upp forsíðu mynd"; -$a->strings["Upload a profile photo if you have not done so already. Studies have shown that people with real photos of themselves are ten times more likely to make friends than people who do not."] = "Að hlaða upp forsíðu mynd ef þú hefur ekki þegar gert það. Rannsóknir sýna að fólk sem hefur alvöru mynd af sér er tíu sinnum líklegra til að eignast vini en fólk sem ekki hefur mynd."; -$a->strings["Edit Your Profile"] = ""; -$a->strings["Edit your default profile to your liking. Review the settings for hiding your list of friends and hiding the profile from unknown visitors."] = "Breyttu sjálfgefnu forsíðunni einsog þú villt. Yfirfarðu stillingu til að fela vinalista á forsíðu og stillingu til að fela forsíðu fyrir ókunnum."; -$a->strings["Profile Keywords"] = ""; -$a->strings["Set some public keywords for your default profile which describe your interests. We may be able to find other people with similar interests and suggest friendships."] = "Bættu við leitarorðum í sjálfgefnu forsíðuna þína sem lýsa þínum áhugamálum. Þá er hægt að fólk með svipuð áhugamál og stinga uppá vinskap."; -$a->strings["Connecting"] = "Tengist"; -$a->strings["Facebook"] = "Facebook"; -$a->strings["Authorise the Facebook Connector if you currently have a Facebook account and we will (optionally) import all your Facebook friends and conversations."] = "Gefðu aðgang að Facebook tengingunni ef þú þegar hefur Facebook aðgang og þá er hægt (valfrjálst) að nálgast alla vini og samtöl á Facebook."; -$a->strings["If this is your own personal server, installing the Facebook addon may ease your transition to the free social web."] = ""; -$a->strings["Importing Emails"] = ""; -$a->strings["Enter your email access information on your Connector Settings page if you wish to import and interact with friends or mailing lists from your email INBOX"] = "Fylltu út póstfangs tengi upplýsingar í Tengla stillinga síðuna ef þú villt sækja tölvupóst og eiga samskipti við vini eða póstlista úr tölvupóst innhólfinu þínu"; -$a->strings["Go to Your Contacts Page"] = ""; -$a->strings["Your Contacts page is your gateway to managing friendships and connecting with friends on other networks. Typically you enter their address or site URL in the Add New Contact dialog."] = "Tengiliða síðan er gáttin þín til að sýsla með vina sambönd og tengjast við vini á öðrum netum. Oftast setur þú vistfangi eða slóð þeirra í Bæta við tengilið gluggan."; -$a->strings["Go to Your Site's Directory"] = ""; -$a->strings["The Directory page lets you find other people in this network or other federated sites. Look for a Connect or Follow link on their profile page. Provide your own Identity Address if requested."] = "Tengiliðalistinn er góð leit til að finna fólk á samfélagsnetinu eða öðrum sambandsnetum. Leitaðu að Connect eða Follow hlekk á forsíðunni þeirra. Mögulega þarf að gefa upp þína auðkenna slóð."; -$a->strings["Finding New People"] = ""; -$a->strings["On the side panel of the Contacts page are several tools to find new friends. We can match people by interest, look up people by name or interest, and provide suggestions based on network relationships. On a brand new site, friend suggestions will usually begin to be populated within 24 hours."] = ""; -$a->strings["Groups"] = "Hópar"; -$a->strings["Group Your Contacts"] = ""; -$a->strings["Once you have made some friends, organize them into private conversation groups from the sidebar of your Contacts page and then you can interact with each group privately on your Network page."] = "Eftir að þú hefur eignast nokkra vini, þá er best að flokka þá niður í hópa á hliðar slánni á Tengiliðasíðunni. Eftir það getur þú haft samskipti við hvern hóp fyrir sig á Samfélagssíðunni."; -$a->strings["Why Aren't My Posts Public?"] = ""; -$a->strings["Friendica respects your privacy. By default, your posts will only show up to people you've added as friends. For more information, see the help section from the link above."] = ""; -$a->strings["Getting Help"] = ""; -$a->strings["Go to the Help Section"] = ""; -$a->strings["Our help pages may be consulted for detail on other program features and resources."] = "Hægt er að styðjast við Hjálp síðuna til að fá leiðbeiningar um aðra eiginleika."; -$a->strings["OpenID protocol error. No ID returned."] = ""; -$a->strings["Account not found and OpenID registration is not permitted on this site."] = ""; -$a->strings["Login failed."] = "Innskráning mistókst."; -$a->strings["Image uploaded but image cropping failed."] = "Tókst að hala upp mynd en afskurður tókst ekki."; -$a->strings["Profile Photos"] = "Forsíðu myndir"; -$a->strings["Image size reduction [%s] failed."] = "Myndar minnkun [%s] tókst ekki."; -$a->strings["Shift-reload the page or clear browser cache if the new photo does not display immediately."] = "Ýta þarf á "; -$a->strings["Unable to process image"] = "Ekki tókst að vinna mynd"; -$a->strings["Image exceeds size limit of %d"] = "Mynd stærri en takmörkunin %d"; -$a->strings["Unable to process image."] = "Ekki mögulegt afgreiða mynd"; -$a->strings["Upload File:"] = "Hlaða upp skrá:"; -$a->strings["Select a profile:"] = ""; -$a->strings["Upload"] = "Hlaða upp"; -$a->strings["or"] = "eða"; -$a->strings["skip this step"] = "sleppa þessu skrefi"; -$a->strings["select a photo from your photo albums"] = "velja mynd í myndabókum"; -$a->strings["Crop Image"] = "Skera af mynd"; -$a->strings["Please adjust the image cropping for optimum viewing."] = "Stilltu afskurð fyrir besta birtingu."; -$a->strings["Done Editing"] = "Breyting kláruð"; -$a->strings["Image uploaded successfully."] = "Upphölun á mynd tóks."; -$a->strings["Image upload failed."] = "Ekki hægt að hlaða upp mynd."; -$a->strings["photo"] = "mynd"; -$a->strings["status"] = "staða"; -$a->strings["%1\$s is following %2\$s's %3\$s"] = ""; -$a->strings["Tag removed"] = "Merki fjarlægt"; -$a->strings["Remove Item Tag"] = "Fjarlægja merki "; -$a->strings["Select a tag to remove: "] = "Veldu merki til að fjarlægja:"; -$a->strings["Remove"] = "Fjarlægja"; -$a->strings["Save to Folder:"] = ""; -$a->strings["- select -"] = ""; -$a->strings["Save"] = "Vista"; -$a->strings["Contact added"] = "Tengilið bætt við"; -$a->strings["Unable to locate original post."] = "Ekki tókst að finna upphaflega færslu."; -$a->strings["Empty post discarded."] = "Tóm færsla eytt."; -$a->strings["Wall Photos"] = "Veggmyndir"; -$a->strings["System error. Post not saved."] = "Kerfisvilla. Færsla ekki vistuð."; -$a->strings["This message was sent to you by %s, a member of the Friendica social network."] = "Skilaboðið sendi %s, notandi á Friendica samfélagsnetinu."; -$a->strings["You may visit them online at %s"] = "Þú getur heimsótt þau á netinu á %s"; -$a->strings["Please contact the sender by replying to this post if you do not wish to receive these messages."] = "Hafðu samband við sendanda með því að svara á þessari færslu ef þú villt ekki fá þessi skilaboð."; -$a->strings["%s posted an update."] = "%s hefur sent uppfærslu."; -$a->strings["Group created."] = "Hópur stofnaður"; -$a->strings["Could not create group."] = "Gat ekki stofnað hóp."; -$a->strings["Group not found."] = "Hópur fannst ekki."; -$a->strings["Group name changed."] = "Hópur endurskýrður."; -$a->strings["Save Group"] = ""; -$a->strings["Create a group of contacts/friends."] = "Stofna hóp af tengiliðum/vinum"; -$a->strings["Group Name: "] = "Nafn hóps:"; -$a->strings["Group removed."] = "Hópi eytt."; -$a->strings["Unable to remove group."] = "Ekki tókst að eyða hóp."; -$a->strings["Group Editor"] = "Hópa sýslari"; -$a->strings["Members"] = "Aðilar"; -$a->strings["You must be logged in to use addons. "] = ""; -$a->strings["Applications"] = "Forrit"; -$a->strings["No installed applications."] = "Engin uppsett forrit"; -$a->strings["Profile not found."] = "Forsíða fannst ekki."; -$a->strings["Contact not found."] = "Tengiliður fannst ekki."; -$a->strings["This may occasionally happen if contact was requested by both persons and it has already been approved."] = ""; -$a->strings["Response from remote site was not understood."] = "Ekki tókst að skilja svar frá ytri vef."; -$a->strings["Unexpected response from remote site: "] = "Óskiljanlegt svar frá ytri vef:"; -$a->strings["Confirmation completed successfully."] = "Staðfesting kláraði eðlilega."; -$a->strings["Remote site reported: "] = "Ytri vefur svaraði:"; -$a->strings["Temporary failure. Please wait and try again."] = "Tímabundin villa. Vinsamlegast bíddu og reyndur aftur síðar."; -$a->strings["Introduction failed or was revoked."] = "Kynning mistókst eða var afturkölluð."; -$a->strings["Unable to set contact photo."] = "Ekki tókst að setja tengiliðamynd."; -$a->strings["%1\$s is now friends with %2\$s"] = "Núna er %1\$s vinur %2\$s"; -$a->strings["No user record found for '%s' "] = "Enginn notanda færsla fannst fyrir '%s'"; -$a->strings["Our site encryption key is apparently messed up."] = "Dulkóðunnar lykill síðunnar okker er í döðlu."; -$a->strings["Empty site URL was provided or URL could not be decrypted by us."] = "Tómt slóð var uppgefin eða ekki okkur tókst ekki að afkóða slóð."; -$a->strings["Contact record was not found for you on our site."] = "Tengiliðafærslan þín fannst ekki á þjóninum okkar."; -$a->strings["Site public key not available in contact record for URL %s."] = "Opinber lykill er ekki til í tengiliðafærslu fyrir slóð %s."; -$a->strings["The ID provided by your system is a duplicate on our system. It should work if you try again."] = "Skilríkið sem þjónninn þinn gaf upp er þegar afritað á okkar þjón. Þetta ætti að virka ef þú bara reynir aftur."; -$a->strings["Unable to set your contact credentials on our system."] = "Ekki tókst að setja tengiliða skilríkið þitt upp á þjóninum okkar."; -$a->strings["Unable to update your contact profile details on our system"] = "Ekki tókst að uppfæra tengiliða skilríkis upplýsingarnar á okkar þjón"; -$a->strings["[Name Withheld]"] = "[Nafn ekki sýnt]"; -$a->strings["%1\$s has joined %2\$s"] = "%1\$s hefur gengið til liðs við %2\$s"; -$a->strings["Requested profile is not available."] = "Umbeðinn forsíða ekki til."; -$a->strings["Tips for New Members"] = "Ábendingar fyrir nýja notendur"; -$a->strings["No videos selected"] = ""; -$a->strings["Access to this item is restricted."] = "Aðgangur að þessum hlut hefur verið heftur"; -$a->strings["View Video"] = ""; -$a->strings["View Album"] = "Skoða myndabók"; -$a->strings["Recent Videos"] = ""; -$a->strings["Upload New Videos"] = ""; -$a->strings["%1\$s tagged %2\$s's %3\$s with %4\$s"] = "%1\$s merkti %2\$s's %3\$s með %4\$s"; -$a->strings["Friend suggestion sent."] = "Vina tillaga send"; -$a->strings["Suggest Friends"] = "Stinga uppá vinum"; -$a->strings["Suggest a friend for %s"] = "Stinga uppá vin fyrir %s"; -$a->strings["No valid account found."] = "Engin gildur aðgangur fannst."; -$a->strings["Password reset request issued. Check your email."] = "Breyta lykilorði. Opnaðu tölvupóstinn þinn."; -$a->strings["\n\t\tDear %1\$s,\n\t\t\tA request was recently received at \"%2\$s\" to reset your account\n\t\tpassword. In order to confirm this request, please select the verification link\n\t\tbelow or paste it into your web browser address bar.\n\n\t\tIf you did NOT request this change, please DO NOT follow the link\n\t\tprovided and ignore and/or delete this email.\n\n\t\tYour password will not be changed unless we can verify that you\n\t\tissued this request."] = ""; -$a->strings["\n\t\tFollow this link to verify your identity:\n\n\t\t%1\$s\n\n\t\tYou will then receive a follow-up message containing the new password.\n\t\tYou may change that password from your account settings page after logging in.\n\n\t\tThe login details are as follows:\n\n\t\tSite Location:\t%2\$s\n\t\tLogin Name:\t%3\$s"] = ""; -$a->strings["Password reset requested at %s"] = "Endurstilling aðgangsorðs umbeðin %s"; -$a->strings["Request could not be verified. (You may have previously submitted it.) Password reset failed."] = "Beiðni gat ekki verið sannreynd. (Það getur verið að þú hafir þegar sent hana.) Endurstilling á aðgangsorði tókst ekki."; -$a->strings["Password Reset"] = "Endurstilling Aðgangsorðs"; -$a->strings["Your password has been reset as requested."] = "Aðgangsorðið þitt hefur verið endurstilt."; -$a->strings["Your new password is"] = "Nýja aðgangsorð þitt er "; -$a->strings["Save or copy your new password - and then"] = "Vistaðu eða afritaðu nýja aðgangsorðið og"; -$a->strings["click here to login"] = "smelltu hér til að skrá þig inn"; -$a->strings["Your password may be changed from the Settings page after successful login."] = "Þú getur breytt aðgangsorðinu þínu á Stillingar síðunni eftir að þú hefur skráð þig inn."; -$a->strings["\n\t\t\t\tDear %1\$s,\n\t\t\t\t\tYour password has been changed as requested. Please retain this\n\t\t\t\tinformation for your records (or change your password immediately to\n\t\t\t\tsomething that you will remember).\n\t\t\t"] = ""; -$a->strings["\n\t\t\t\tYour login details are as follows:\n\n\t\t\t\tSite Location:\t%1\$s\n\t\t\t\tLogin Name:\t%2\$s\n\t\t\t\tPassword:\t%3\$s\n\n\t\t\t\tYou may change that password from your account settings page after logging in.\n\t\t\t"] = ""; -$a->strings["Your password has been changed at %s"] = "Aðgangsorðinu þínu var breytt í %s"; -$a->strings["Forgot your Password?"] = "Gleymdir þú lykilorði þínu?"; -$a->strings["Enter your email address and submit to have your password reset. Then check your email for further instructions."] = "Sláðu inn tölvupóstfangið þitt til að endurstilla aðgangsorðið og fá leiðbeiningar sendar með tölvupósti."; -$a->strings["Nickname or Email: "] = "Gælunafn eða póstfang:"; -$a->strings["Reset"] = "Endursetja"; -$a->strings["%1\$s likes %2\$s's %3\$s"] = "%1\$s lýkar við %3\$s hjá %2\$s "; -$a->strings["%1\$s doesn't like %2\$s's %3\$s"] = "%1\$s líkar ekki við %3\$s hjá %2\$s "; -$a->strings["{0} wants to be your friend"] = "{0} vill vera vinur þinn"; -$a->strings["{0} sent you a message"] = "{0} sendi þér skilboð"; -$a->strings["{0} requested registration"] = "{0} óskaði eftir skráningu"; -$a->strings["{0} commented %s's post"] = "{0} gerði athugasemd við %s's senda færslu"; -$a->strings["{0} liked %s's post"] = "{0} líkaði við senda færslu %s's"; -$a->strings["{0} disliked %s's post"] = "{0} líkaði ekki við senda færslu %s's"; -$a->strings["{0} is now friends with %s"] = "{0} er nú vinur %s"; -$a->strings["{0} posted"] = "{0} sendi færslu"; -$a->strings["{0} tagged %s's post with #%s"] = "{0} merkti %s's færslu með #%s"; -$a->strings["{0} mentioned you in a post"] = "{0} minntist á þig í færslu"; -$a->strings["No contacts."] = "Enginn tengiliður"; -$a->strings["View Contacts"] = "Skoða tengiliði"; -$a->strings["Invalid request identifier."] = "Ógilt fyrirspurnar auðkenni"; -$a->strings["Discard"] = "Henda"; -$a->strings["System"] = "Kerfi"; -$a->strings["Network"] = "Samfélag"; -$a->strings["Personal"] = "Einka"; -$a->strings["Home"] = "Heim"; -$a->strings["Introductions"] = "Kynningar"; -$a->strings["Show Ignored Requests"] = "Sýna hunsaðar fyrirspurnir"; -$a->strings["Hide Ignored Requests"] = "Fela hunsaðar beiðnir"; -$a->strings["Notification type: "] = "Skilaboða gerð:"; -$a->strings["Friend Suggestion"] = "Vina tillaga"; -$a->strings["suggested by %s"] = "stungið uppá af %s"; -$a->strings["Post a new friend activity"] = "Búa til færslu um "; -$a->strings["if applicable"] = "ef við á"; -$a->strings["Approve"] = "Samþykkja"; -$a->strings["Claims to be known to you: "] = "Þykist þekkja þig:"; -$a->strings["yes"] = "já"; -$a->strings["no"] = "nei"; -$a->strings["Approve as: "] = "Samþykkja sem:"; -$a->strings["Friend"] = "Vin"; -$a->strings["Sharer"] = "Deilir"; -$a->strings["Fan/Admirer"] = "Aðdáanda"; -$a->strings["Friend/Connect Request"] = "Vina/Tengi beiðni"; -$a->strings["New Follower"] = "Nýr fylgjandi"; -$a->strings["No introductions."] = "Engar kynningar."; -$a->strings["Notifications"] = "Tilkynningar"; -$a->strings["%s liked %s's post"] = "%s líkaði færslu %s"; -$a->strings["%s disliked %s's post"] = "%s mislíkaði færslu %s"; -$a->strings["%s is now friends with %s"] = "%s er nú vinur %s"; -$a->strings["%s created a new post"] = "%s bjó til færslu"; -$a->strings["%s commented on %s's post"] = "%s athugasemd við %s's færslu"; -$a->strings["No more network notifications."] = "Engar tilkynningar á neti."; -$a->strings["Network Notifications"] = "Tilkynningar á neti"; -$a->strings["No more system notifications."] = "Ekki fleiri kerfistilkynningar."; -$a->strings["System Notifications"] = "Kerfistilkynningar"; -$a->strings["No more personal notifications."] = "Engar einka tilkynningar."; -$a->strings["Personal Notifications"] = "Einkatilkynningar."; -$a->strings["No more home notifications."] = "Ekki fleiri heima tilkynningar"; -$a->strings["Home Notifications"] = "Tilkynningar frá heimasvæði"; -$a->strings["Source (bbcode) text:"] = ""; -$a->strings["Source (Diaspora) text to convert to BBcode:"] = ""; -$a->strings["Source input: "] = ""; -$a->strings["bb2html (raw HTML): "] = "bb2html (hrátt HTML): "; -$a->strings["bb2html: "] = "bb2html: "; -$a->strings["bb2html2bb: "] = "bb2html2bb: "; -$a->strings["bb2md: "] = "bb2md: "; -$a->strings["bb2md2html: "] = "bb2md2html: "; -$a->strings["bb2dia2bb: "] = "bb2dia2bb: "; -$a->strings["bb2md2html2bb: "] = "bb2md2html2bb: "; -$a->strings["Source input (Diaspora format): "] = ""; -$a->strings["diaspora2bb: "] = "diaspora2bb: "; -$a->strings["Nothing new here"] = "Ekkert nýtt héðan"; -$a->strings["Clear notifications"] = ""; -$a->strings["New Message"] = "Ný skilaboð"; -$a->strings["No recipient selected."] = "Engir viðtakendur valdir."; -$a->strings["Unable to locate contact information."] = "Ekki tókst að staðsetja tengiliðs upplýsingar."; -$a->strings["Message could not be sent."] = "Ekki tókst að senda skilaboð."; -$a->strings["Message collection failure."] = "Ekki tókst að sækja skilaboð."; -$a->strings["Message sent."] = "Skilaboð send."; -$a->strings["Messages"] = "Skilaboð"; -$a->strings["Do you really want to delete this message?"] = ""; -$a->strings["Message deleted."] = "Skilaboðum eytt."; -$a->strings["Conversation removed."] = "Samtali eytt."; -$a->strings["Please enter a link URL:"] = "Sláðu inn slóð:"; -$a->strings["Send Private Message"] = "Senda einkaskilaboð"; -$a->strings["To:"] = "Til:"; -$a->strings["Subject:"] = "Efni:"; -$a->strings["Your message:"] = "Skilaboðin:"; -$a->strings["Upload photo"] = "Hlaða upp mynd"; -$a->strings["Insert web link"] = "Setja inn vefslóð"; -$a->strings["Please wait"] = "Vinsamlegast bíðið"; -$a->strings["No messages."] = "Engin skilaboð."; -$a->strings["Unknown sender - %s"] = ""; -$a->strings["You and %s"] = ""; -$a->strings["%s and You"] = ""; -$a->strings["Delete conversation"] = "Eyða samtali"; -$a->strings["D, d M Y - g:i A"] = ""; -$a->strings["%d message"] = array( - 0 => "", - 1 => "", -); -$a->strings["Message not available."] = "Ekki næst í skilaboð."; -$a->strings["Delete message"] = "Eyða skilaboðum"; -$a->strings["No secure communications available. You may be able to respond from the sender's profile page."] = ""; -$a->strings["Send Reply"] = "Senda svar"; -$a->strings["[Embedded content - reload page to view]"] = "[Innfelt efni - endurhlaða síðu til að sjá]"; -$a->strings["Contact settings applied."] = "Stillingar tengiliðs uppfærðar."; -$a->strings["Contact update failed."] = "Uppfærsla tengiliðs mistókst."; -$a->strings["Repair Contact Settings"] = "Gera við stillingar tengiliðs"; -$a->strings["WARNING: This is highly advanced and if you enter incorrect information your communications with this contact may stop working."] = "AÐVÖRUN: Þetta er mjög flókið og ef þú setur inn vitlausar upplýsingar þá munu samskipti við þennan tengilið hætta að virka."; -$a->strings["Please use your browser 'Back' button now if you are uncertain what to do on this page."] = "Vinsamlegast veldu \"Afturábak\" takkan núna ef þú ert ekki viss um hvað þú eigir að gera á þessari síðu."; -$a->strings["Return to contact editor"] = "Fara til baka í tengiliðasýsl"; -$a->strings["No mirroring"] = ""; -$a->strings["Mirror as forwarded posting"] = ""; -$a->strings["Mirror as my own posting"] = ""; -$a->strings["Name"] = "Nafn"; -$a->strings["Account Nickname"] = "Gælunafn notanda"; -$a->strings["@Tagname - overrides Name/Nickname"] = "@Merkjanafn - yfirskrifar Nafn/Gælunafn"; -$a->strings["Account URL"] = "Heimasíða notanda"; -$a->strings["Friend Request URL"] = "Slóð vina beiðnis"; -$a->strings["Friend Confirm URL"] = "Slóð vina staðfestingar "; -$a->strings["Notification Endpoint URL"] = "Slóð loka tilkynningar"; -$a->strings["Poll/Feed URL"] = "Slóð könnunar/þráðar"; -$a->strings["New photo from this URL"] = "Ný mynd frá slóð"; -$a->strings["Remote Self"] = ""; -$a->strings["Mirror postings from this contact"] = ""; -$a->strings["Mark this contact as remote_self, this will cause friendica to repost new entries from this contact."] = ""; -$a->strings["Login"] = "Innskrá"; -$a->strings["The post was created"] = ""; -$a->strings["Access denied."] = "Aðgangi hafnað"; -$a->strings["People Search"] = "Leita af fólki"; -$a->strings["No matches"] = "Engar leitarniðurstöður"; -$a->strings["Photos"] = "Myndir"; -$a->strings["Files"] = "Skrár"; -$a->strings["Contacts who are not members of a group"] = ""; -$a->strings["Theme settings updated."] = "Þemastillingar uppfærðar."; -$a->strings["Site"] = "Vefur"; -$a->strings["Users"] = "Notendur"; -$a->strings["Plugins"] = "Viðbætur"; -$a->strings["Themes"] = "Þemu"; -$a->strings["DB updates"] = "Gagnagrunns uppfærslur"; -$a->strings["Logs"] = "Atburðaskrá"; -$a->strings["probe address"] = ""; -$a->strings["check webfinger"] = ""; -$a->strings["Admin"] = "Stjórnborð"; -$a->strings["Plugin Features"] = ""; -$a->strings["diagnostics"] = ""; -$a->strings["User registrations waiting for confirmation"] = "Notenda nýskráningar bíða samþykkis"; -$a->strings["Normal Account"] = "Venjulegur notandi"; -$a->strings["Soapbox Account"] = "Sápukassa notandi"; -$a->strings["Community/Celebrity Account"] = "Hópa-/Stjörnusíða"; -$a->strings["Automatic Friend Account"] = "Verður sjálfkrafa vinur notandi"; -$a->strings["Blog Account"] = ""; -$a->strings["Private Forum"] = ""; -$a->strings["Message queues"] = ""; -$a->strings["Administration"] = "Stjórnun"; -$a->strings["Summary"] = "Samantekt"; -$a->strings["Registered users"] = "Skráðir notendur"; -$a->strings["Pending registrations"] = "Nýskráningar í bið"; -$a->strings["Version"] = "Útgáfa"; -$a->strings["Active plugins"] = "Virkar viðbætur"; -$a->strings["Can not parse base url. Must have at least ://"] = ""; -$a->strings["Site settings updated."] = "Stillingar þjóns uppfærðar."; -$a->strings["No special theme for mobile devices"] = ""; -$a->strings["No community page"] = ""; -$a->strings["Public postings from users of this site"] = ""; -$a->strings["Global community page"] = ""; -$a->strings["At post arrival"] = ""; -$a->strings["Frequently"] = "Oft"; -$a->strings["Hourly"] = "Klukkustundar fresti"; -$a->strings["Twice daily"] = "Tvisvar á dag"; -$a->strings["Daily"] = "Daglega"; -$a->strings["Multi user instance"] = ""; -$a->strings["Closed"] = "Lokað"; -$a->strings["Requires approval"] = "Þarf samþykki"; -$a->strings["Open"] = "Opið"; -$a->strings["No SSL policy, links will track page SSL state"] = ""; -$a->strings["Force all links to use SSL"] = ""; -$a->strings["Self-signed certificate, use SSL for local links only (discouraged)"] = ""; -$a->strings["Save Settings"] = ""; -$a->strings["Registration"] = "Nýskráning"; -$a->strings["File upload"] = "Hlaða upp skrá"; -$a->strings["Policies"] = "Stefna"; -$a->strings["Advanced"] = "Flóknari"; -$a->strings["Performance"] = "Afköst"; -$a->strings["Relocate - WARNING: advanced function. Could make this server unreachable."] = ""; -$a->strings["Site name"] = "Nafn síðu"; -$a->strings["Host name"] = ""; -$a->strings["Sender Email"] = ""; -$a->strings["Banner/Logo"] = "Borði/Merki"; -$a->strings["Shortcut icon"] = ""; -$a->strings["Touch icon"] = ""; -$a->strings["Additional Info"] = ""; -$a->strings["For public servers: you can add additional information here that will be listed at dir.friendica.com/siteinfo."] = ""; -$a->strings["System language"] = "Kerfis tungumál"; -$a->strings["System theme"] = "Kerfis þema"; -$a->strings["Default system theme - may be over-ridden by user profiles - change theme settings"] = ""; -$a->strings["Mobile system theme"] = ""; -$a->strings["Theme for mobile devices"] = ""; -$a->strings["SSL link policy"] = ""; -$a->strings["Determines whether generated links should be forced to use SSL"] = ""; -$a->strings["Force SSL"] = ""; -$a->strings["Force all Non-SSL requests to SSL - Attention: on some systems it could lead to endless loops."] = ""; -$a->strings["Old style 'Share'"] = ""; -$a->strings["Deactivates the bbcode element 'share' for repeating items."] = ""; -$a->strings["Hide help entry from navigation menu"] = ""; -$a->strings["Hides the menu entry for the Help pages from the navigation menu. You can still access it calling /help directly."] = ""; -$a->strings["Single user instance"] = ""; -$a->strings["Make this instance multi-user or single-user for the named user"] = ""; -$a->strings["Maximum image size"] = "Mesta stærð mynda"; -$a->strings["Maximum size in bytes of uploaded images. Default is 0, which means no limits."] = ""; -$a->strings["Maximum image length"] = ""; -$a->strings["Maximum length in pixels of the longest side of uploaded images. Default is -1, which means no limits."] = ""; -$a->strings["JPEG image quality"] = "JPEG myndgæði"; -$a->strings["Uploaded JPEGS will be saved at this quality setting [0-100]. Default is 100, which is full quality."] = ""; -$a->strings["Register policy"] = "Nýskráningar stefna"; -$a->strings["Maximum Daily Registrations"] = ""; -$a->strings["If registration is permitted above, this sets the maximum number of new user registrations to accept per day. If register is set to closed, this setting has no effect."] = ""; -$a->strings["Register text"] = "Nýskráningar texti"; -$a->strings["Will be displayed prominently on the registration page."] = ""; -$a->strings["Accounts abandoned after x days"] = "Yfirgefnir notendur eftir x daga"; -$a->strings["Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit."] = "Hættir að eyða afli í að sækja færslur á ytri vefi fyrir yfirgefna notendur. 0 þýðir notendur merkjast ekki yfirgefnir."; -$a->strings["Allowed friend domains"] = "Vina lén leyfð"; -$a->strings["Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Empty to allow any domains"] = ""; -$a->strings["Allowed email domains"] = "Póstfangs lén leyfð"; -$a->strings["Comma separated list of domains which are allowed in email addresses for registrations to this site. Wildcards are accepted. Empty to allow any domains"] = ""; -$a->strings["Block public"] = "Lokað á opinberar færslur"; -$a->strings["Check to block public access to all otherwise public personal pages on this site unless you are currently logged in."] = ""; -$a->strings["Force publish"] = "Skylda að vera í tengiliðalista"; -$a->strings["Check to force all profiles on this site to be listed in the site directory."] = ""; -$a->strings["Global directory update URL"] = "Uppfærsluslóð fyrir alheimstengiliðalista"; -$a->strings["URL to update the global directory. If this is not set, the global directory is completely unavailable to the application."] = ""; -$a->strings["Allow threaded items"] = ""; -$a->strings["Allow infinite level threading for items on this site."] = ""; -$a->strings["Private posts by default for new users"] = ""; -$a->strings["Set default post permissions for all new members to the default privacy group rather than public."] = ""; -$a->strings["Don't include post content in email notifications"] = ""; -$a->strings["Don't include the content of a post/comment/private message/etc. in the email notifications that are sent out from this site, as a privacy measure."] = ""; -$a->strings["Disallow public access to addons listed in the apps menu."] = ""; -$a->strings["Checking this box will restrict addons listed in the apps menu to members only."] = ""; -$a->strings["Don't embed private images in posts"] = ""; -$a->strings["Don't replace locally-hosted private photos in posts with an embedded copy of the image. This means that contacts who receive posts containing private photos will have to authenticate and load each image, which may take a while."] = ""; -$a->strings["Allow Users to set remote_self"] = ""; -$a->strings["With checking this, every user is allowed to mark every contact as a remote_self in the repair contact dialog. Setting this flag on a contact causes mirroring every posting of that contact in the users stream."] = ""; -$a->strings["Block multiple registrations"] = "Banna margar skráningar"; -$a->strings["Disallow users to register additional accounts for use as pages."] = ""; -$a->strings["OpenID support"] = "Leyfa OpenID auðkenningu"; -$a->strings["OpenID support for registration and logins."] = ""; -$a->strings["Fullname check"] = "Fullt nafn skilyrði"; -$a->strings["Force users to register with a space between firstname and lastname in Full name, as an antispam measure"] = ""; -$a->strings["UTF-8 Regular expressions"] = "UTF-8 hefðbundin stöfun"; -$a->strings["Use PHP UTF8 regular expressions"] = ""; -$a->strings["Community Page Style"] = ""; -$a->strings["Type of community page to show. 'Global community' shows every public posting from an open distributed network that arrived on this server."] = ""; -$a->strings["Posts per user on community page"] = ""; -$a->strings["The maximum number of posts per user on the community page. (Not valid for 'Global Community')"] = ""; -$a->strings["Enable OStatus support"] = "Leyfa OStatus stuðning"; -$a->strings["Provide built-in OStatus (StatusNet, GNU Social etc.) compatibility. All communications in OStatus are public, so privacy warnings will be occasionally displayed."] = ""; -$a->strings["OStatus conversation completion interval"] = ""; -$a->strings["How often shall the poller check for new entries in OStatus conversations? This can be a very ressource task."] = ""; -$a->strings["Enable Diaspora support"] = "Leyfa Diaspora tengingar"; -$a->strings["Provide built-in Diaspora network compatibility."] = ""; -$a->strings["Only allow Friendica contacts"] = "Aðeins leyfa Friendica notendur"; -$a->strings["All contacts must use Friendica protocols. All other built-in communication protocols disabled."] = ""; -$a->strings["Verify SSL"] = "Sannreyna SSL"; -$a->strings["If you wish, you can turn on strict certificate checking. This will mean you cannot connect (at all) to self-signed SSL sites."] = ""; -$a->strings["Proxy user"] = "Proxy notandi"; -$a->strings["Proxy URL"] = "Proxy slóð"; -$a->strings["Network timeout"] = "Net tími útrunninn"; -$a->strings["Value is in seconds. Set to 0 for unlimited (not recommended)."] = ""; -$a->strings["Delivery interval"] = ""; -$a->strings["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."] = ""; -$a->strings["Poll interval"] = ""; -$a->strings["Delay background polling processes by this many seconds to reduce system load. If 0, use delivery interval."] = ""; -$a->strings["Maximum Load Average"] = "Mesta meðaltals álag"; -$a->strings["Maximum system load before delivery and poll processes are deferred - default 50."] = ""; -$a->strings["Use MySQL full text engine"] = ""; -$a->strings["Activates the full text engine. Speeds up search - but can only search for four and more characters."] = ""; -$a->strings["Suppress Language"] = ""; -$a->strings["Suppress language information in meta information about a posting."] = ""; -$a->strings["Suppress Tags"] = ""; -$a->strings["Suppress showing a list of hashtags at the end of the posting."] = ""; -$a->strings["Path to item cache"] = ""; -$a->strings["Cache duration in seconds"] = ""; -$a->strings["How long should the cache files be hold? Default value is 86400 seconds (One day). To disable the item cache, set the value to -1."] = ""; -$a->strings["Maximum numbers of comments per post"] = ""; -$a->strings["How much comments should be shown for each post? Default value is 100."] = ""; -$a->strings["Path for lock file"] = ""; -$a->strings["Temp path"] = ""; -$a->strings["Base path to installation"] = ""; -$a->strings["Disable picture proxy"] = ""; -$a->strings["The picture proxy increases performance and privacy. It shouldn't be used on systems with very low bandwith."] = ""; -$a->strings["Enable old style pager"] = ""; -$a->strings["The old style pager has page numbers but slows down massively the page speed."] = ""; -$a->strings["Only search in tags"] = ""; -$a->strings["On large systems the text search can slow down the system extremely."] = ""; -$a->strings["New base url"] = ""; -$a->strings["Update has been marked successful"] = "Uppfærsla merkt sem tókst"; -$a->strings["Database structure update %s was successfully applied."] = ""; -$a->strings["Executing of database structure update %s failed with error: %s"] = ""; -$a->strings["Executing %s failed with error: %s"] = ""; -$a->strings["Update %s was successfully applied."] = "Uppfærsla %s framkvæmd."; -$a->strings["Update %s did not return a status. Unknown if it succeeded."] = "Uppfærsla %s skilaði ekki gildi. Óvíst hvort tókst."; -$a->strings["There was no additional update function %s that needed to be called."] = ""; -$a->strings["No failed updates."] = "Engar uppfærslur mistókust."; -$a->strings["Check database structure"] = ""; -$a->strings["Failed Updates"] = "Uppfærslur sem mistókust"; -$a->strings["This does not include updates prior to 1139, which did not return a status."] = "Þetta á ekki við uppfærslur fyrir 1139, þær skiluðu ekki lokastöðu."; -$a->strings["Mark success (if update was manually applied)"] = "Merkja sem tókst (ef uppfærsla var framkvæmd handvirkt)"; -$a->strings["Attempt to execute this update step automatically"] = "Framkvæma þessa uppfærslu sjálfkrafa"; -$a->strings["\n\t\t\tDear %1\$s,\n\t\t\t\tthe administrator of %2\$s has set up an account for you."] = ""; -$a->strings["\n\t\t\tThe login details are as follows:\n\n\t\t\tSite Location:\t%1\$s\n\t\t\tLogin Name:\t\t%2\$s\n\t\t\tPassword:\t\t%3\$s\n\n\t\t\tYou may change your password from your account \"Settings\" page after logging\n\t\t\tin.\n\n\t\t\tPlease take a few moments to review the other account settings on that page.\n\n\t\t\tYou may also wish to add some basic information to your default profile\n\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n\n\t\t\tWe recommend setting your full name, adding a profile photo,\n\t\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n\t\t\tperhaps what country you live in; if you do not wish to be more specific\n\t\t\tthan that.\n\n\t\t\tWe fully respect your right to privacy, and none of these items are necessary.\n\t\t\tIf you are new and do not know anybody here, they may help\n\t\t\tyou to make some new and interesting friends.\n\n\t\t\tThank you and welcome to %4\$s."] = ""; -$a->strings["Registration details for %s"] = "Nýskráningar upplýsingar fyrir %s"; -$a->strings["%s user blocked/unblocked"] = array( - 0 => "", - 1 => "", -); -$a->strings["%s user deleted"] = array( - 0 => "%s notenda eytt", - 1 => "%s notendum eytt", -); -$a->strings["User '%s' deleted"] = "Notanda '%s' eytt"; -$a->strings["User '%s' unblocked"] = "Notanda '%s' gefið frelsi"; -$a->strings["User '%s' blocked"] = "Notanda '%s' settur í bann"; -$a->strings["Add User"] = ""; -$a->strings["select all"] = "velja alla"; -$a->strings["User registrations waiting for confirm"] = "Skráning notanda býður samþykkis"; -$a->strings["User waiting for permanent deletion"] = ""; -$a->strings["Request date"] = "Dagsetning beiðnar"; -$a->strings["Email"] = "Póstfang"; -$a->strings["No registrations."] = "Engin skráning"; -$a->strings["Deny"] = "Hafnað"; -$a->strings["Site admin"] = ""; -$a->strings["Account expired"] = ""; -$a->strings["New User"] = ""; -$a->strings["Register date"] = "Skráningar dagsetning"; -$a->strings["Last login"] = "Síðast innskráður"; -$a->strings["Last item"] = "Síðasta"; -$a->strings["Deleted since"] = ""; -$a->strings["Account"] = "Notandi"; -$a->strings["Selected users will be deleted!\\n\\nEverything these users had posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "Valdir notendur verður eytt!\\n\\nAllt sem þessir notendur hafa deilt á þessum vef verður varanlega eytt!\\n\\nErtu alveg viss?"; -$a->strings["The user {0} will be deleted!\\n\\nEverything this user has posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "Notandinn {0} verður eytt!\\n\\nAllt sem þessi notandi hefur deilt á þessum vef veður varanlega eytt!\\n\\nErtu alveg viss?"; -$a->strings["Name of the new user."] = ""; -$a->strings["Nickname"] = ""; -$a->strings["Nickname of the new user."] = ""; -$a->strings["Email address of the new user."] = ""; -$a->strings["Plugin %s disabled."] = "Slökkt á viðbót %s "; -$a->strings["Plugin %s enabled."] = "Kveikt á viðbót %s"; -$a->strings["Disable"] = "Slökkva"; -$a->strings["Enable"] = "Kveikja"; -$a->strings["Toggle"] = "Skipta"; -$a->strings["Author: "] = "Höfundur:"; -$a->strings["Maintainer: "] = ""; -$a->strings["No themes found."] = "Engin þemu fundust"; -$a->strings["Screenshot"] = "Skjámynd"; -$a->strings["[Experimental]"] = "[Tilraun]"; -$a->strings["[Unsupported]"] = "[Óstudd]"; -$a->strings["Log settings updated."] = "Stillingar atburðaskrár uppfærðar. "; -$a->strings["Clear"] = "Hreinsa"; -$a->strings["Enable Debugging"] = ""; -$a->strings["Log file"] = "Atburðaskrá"; -$a->strings["Must be writable by web server. Relative to your Friendica top-level directory."] = "Vefþjónn verður að hafa skrifréttindi. Afstætt við Friendica rótar skráarsafn."; -$a->strings["Log level"] = "Stig atburðaskráningar"; -$a->strings["Close"] = "Loka"; -$a->strings["FTP Host"] = "FTP Vélanafn"; -$a->strings["FTP Path"] = "FTP Slóð"; -$a->strings["FTP User"] = "FTP Notandi"; -$a->strings["FTP Password"] = "FTP Aðgangsorð"; -$a->strings["Search Results For:"] = "Leitar niðurstöður fyrir:"; -$a->strings["Remove term"] = "Fjarlæga gildi"; -$a->strings["Saved Searches"] = "Vistaðar leitir"; -$a->strings["add"] = "bæta við"; -$a->strings["Commented Order"] = "Athugasemdar röð"; -$a->strings["Sort by Comment Date"] = "Raða eftir umræðu dagsetningu"; -$a->strings["Posted Order"] = "Færlsu röð"; -$a->strings["Sort by Post Date"] = "Raða eftir færslu dagsetningu"; -$a->strings["Posts that mention or involve you"] = "Færslur sem tengjast þér"; -$a->strings["New"] = "Ný"; -$a->strings["Activity Stream - by date"] = "Færslu straumur - raðað eftir dagsetningu"; -$a->strings["Shared Links"] = ""; -$a->strings["Interesting Links"] = "Áhugaverðir hlekkir"; -$a->strings["Starred"] = "Stjörnumerkt"; -$a->strings["Favourite Posts"] = "Uppáhalds færslur"; -$a->strings["Warning: This group contains %s member from an insecure network."] = array( - 0 => "Aðvörun: Þessi hópur inniheldur %s notanda frá óöruggu neti.", - 1 => "Aðvörun: Þessi hópur inniheldur %s notendur frá óöruggu neti.", -); -$a->strings["Private messages to this group are at risk of public disclosure."] = "Einka samtöl send á þennan hóp eiga á hættu að verða opinber."; -$a->strings["No such group"] = "Hópur ekki til"; -$a->strings["Group is empty"] = "Hópur er tómur"; -$a->strings["Group: "] = "Hópur:"; -$a->strings["Contact: "] = "Tengiliður:"; -$a->strings["Private messages to this person are at risk of public disclosure."] = "Einka skilaboð send á þennan notanda eiga á hættu að verða opinber."; -$a->strings["Invalid contact."] = "Ógildur tengiliður."; -$a->strings["Friends of %s"] = "Vinir %s"; -$a->strings["No friends to display."] = "Engir vinir til að birta."; -$a->strings["Event title and start time are required."] = ""; -$a->strings["l, F j"] = ""; -$a->strings["Edit event"] = "Breyta atburð"; -$a->strings["link to source"] = "slóð í heimild"; -$a->strings["Events"] = "Atburðir"; -$a->strings["Create New Event"] = "Stofna nýjan atburð"; -$a->strings["Previous"] = "Fyrra"; -$a->strings["Next"] = "Næsta"; -$a->strings["hour:minute"] = "klukkustund:mínutur"; -$a->strings["Event details"] = "Atburða lýsing"; -$a->strings["Format is %s %s. Starting date and Title are required."] = ""; -$a->strings["Event Starts:"] = "Atburður hefst:"; -$a->strings["Required"] = ""; -$a->strings["Finish date/time is not known or not relevant"] = "Loka dagsetning/tímasetning ekki vituð eða skiptir ekki máli"; -$a->strings["Event Finishes:"] = "Atburður klárar:"; -$a->strings["Adjust for viewer timezone"] = "Heimfæra á tímabelti áhorfanda"; -$a->strings["Description:"] = "Lýsing:"; -$a->strings["Location:"] = "Staðsetning:"; -$a->strings["Title:"] = ""; -$a->strings["Share this event"] = "Deila þessum atburði"; -$a->strings["Select"] = "Velja"; -$a->strings["View %s's profile @ %s"] = "Birta forsíðu %s hjá %s"; -$a->strings["%s from %s"] = "%s til %s"; -$a->strings["View in context"] = "Birta í samhengi"; -$a->strings["%d comment"] = array( - 0 => "%d ummæli", - 1 => "%d ummæli", -); -$a->strings["comment"] = array( - 0 => "athugasemd", - 1 => "athugasemdir", -); -$a->strings["show more"] = "sýna meira"; -$a->strings["Private Message"] = "Einkaskilaboð"; -$a->strings["I like this (toggle)"] = "Mér líkar þetta (kveikja/slökkva)"; -$a->strings["like"] = "líkar"; -$a->strings["I don't like this (toggle)"] = "Mér líkar þetta ekki (kveikja/slökkva)"; -$a->strings["dislike"] = "mislíkar"; -$a->strings["Share this"] = "Deila þessu"; -$a->strings["share"] = "deila"; -$a->strings["This is you"] = "Þetta ert þú"; -$a->strings["Comment"] = "Athugasemd"; -$a->strings["Bold"] = "Feitletrað"; -$a->strings["Italic"] = "Skáletrað"; -$a->strings["Underline"] = "Undirstrikað"; -$a->strings["Quote"] = "Gæsalappir"; -$a->strings["Code"] = "Kóði"; -$a->strings["Image"] = "Mynd"; -$a->strings["Link"] = "Tengill"; -$a->strings["Video"] = "Myndband"; -$a->strings["Preview"] = "Forskoðun"; -$a->strings["Edit"] = "Breyta"; -$a->strings["add star"] = "bæta við stjörnu"; -$a->strings["remove star"] = "eyða stjörnu"; -$a->strings["toggle star status"] = "Kveikja/slökkva á stjörnu"; -$a->strings["starred"] = "stjörnumerkt"; -$a->strings["add tag"] = "bæta við merki"; -$a->strings["save to folder"] = "vista í möppu"; -$a->strings["to"] = "við"; -$a->strings["Wall-to-Wall"] = "vegg við vegg"; -$a->strings["via Wall-To-Wall:"] = "gegnum vegg við vegg"; -$a->strings["Remove My Account"] = "Eyða þessum notanda"; -$a->strings["This will completely remove your account. Once this has been done it is not recoverable."] = "Þetta mun algjörlega eyða notandanum. Þegar þetta hefur verið gert er þetta ekki afturkræft."; -$a->strings["Please enter your password for verification:"] = "Sláðu inn aðgangsorð yðar:"; -$a->strings["Friendica Communications Server - Setup"] = ""; -$a->strings["Could not connect to database."] = "Gat ekki tengst gagnagrunn."; -$a->strings["Could not create table."] = "Gat ekki búið til töflu."; -$a->strings["Your Friendica site database has been installed."] = "Friendica gagnagrunnurinn þinn hefur verið uppsettur."; -$a->strings["You may need to import the file \"database.sql\" manually using phpmyadmin or mysql."] = "Þú þarft mögulega að keyra inn skránna \"database.sql\" handvirkt með phpmyadmin eða mysql."; -$a->strings["Please see the file \"INSTALL.txt\"."] = "Vinsamlegast lestu skránna \"INSTALL.txt\"."; -$a->strings["System check"] = "Kerfis prófun"; -$a->strings["Check again"] = "Prófa aftur"; -$a->strings["Database connection"] = "Gangagrunns tenging"; -$a->strings["In order to install Friendica we need to know how to connect to your database."] = "Til að setja upp Friendica þurfum við að vita hvernig á að tengjast gagnagrunninum þínum."; -$a->strings["Please contact your hosting provider or site administrator if you have questions about these settings."] = "Vinsamlegast hafðu samband við hýsingaraðilann þinn eða kerfisstjóra ef þú hefur spurningar um þessar stillingar."; -$a->strings["The database you specify below should already exist. If it does not, please create it before continuing."] = "Gagnagrunnurinn sem þú bendir á þarf þegar að vera til. Ef ekki þá þarf að stofna hann áður en haldið er áfram."; -$a->strings["Database Server Name"] = "Vélanafn gagangrunns"; -$a->strings["Database Login Name"] = "Notendanafn í gagnagrunn"; -$a->strings["Database Login Password"] = "Aðgangsorð í gagnagrunns"; -$a->strings["Database Name"] = "Nafn gagnagrunns"; -$a->strings["Site administrator email address"] = "Póstfang kerfisstjóri vefs"; -$a->strings["Your account email address must match this in order to use the web admin panel."] = "Notanda póstfang þitt verður að passa við þetta til að hægt sé að nota umsýslu vefviðmót."; -$a->strings["Please select a default timezone for your website"] = "Vinsamlegast veldu sjálfgefið tímabelti fyrir vefsíðuna"; -$a->strings["Site settings"] = "Stillingar vefs"; -$a->strings["Could not find a command line version of PHP in the web server PATH."] = "Gat ekki fundið skipanalínu útgáfu af PHP í vefþjóns PATH."; -$a->strings["If you don't have a command line version of PHP installed on server, you will not be able to run background polling via cron. See 'Activating scheduled tasks'"] = ""; -$a->strings["PHP executable path"] = "PHP keyrslu slóð"; -$a->strings["Enter full path to php executable. You can leave this blank to continue the installation."] = ""; -$a->strings["Command line PHP"] = "Skipanalínu PHP"; -$a->strings["PHP executable is not the php cli binary (could be cgi-fgci version)"] = ""; -$a->strings["Found PHP version: "] = ""; -$a->strings["PHP cli binary"] = ""; -$a->strings["The command line version of PHP on your system does not have \"register_argc_argv\" enabled."] = "Skipanalínu útgáfa af PHP á vefþjóninum hefur ekki kveikt á \"register_argc_argv\"."; -$a->strings["This is required for message delivery to work."] = "Þetta er skilyrt fyrir því að skilaboð komist til skila."; -$a->strings["PHP register_argc_argv"] = ""; -$a->strings["Error: the \"openssl_pkey_new\" function on this system is not able to generate encryption keys"] = "Villa: Stefjan \"openssl_pkey_new\" á vefþjóninum getur ekki stofnað dulkóðunar lykla"; -$a->strings["If running under Windows, please see \"http://www.php.net/manual/en/openssl.installation.php\"."] = "Ef keyrt er á Window, vinsamlegast skoðið \"http://www.php.net/manual/en/openssl.installation.php\"."; -$a->strings["Generate encryption keys"] = "Búa til dulkóðunar lykla"; -$a->strings["libCurl PHP module"] = "libCurl PHP eining"; -$a->strings["GD graphics PHP module"] = "GD graphics PHP eining"; -$a->strings["OpenSSL PHP module"] = "OpenSSL PHP eining"; -$a->strings["mysqli PHP module"] = "mysqli PHP eining"; -$a->strings["mb_string PHP module"] = "mb_string PHP eining"; -$a->strings["Apache mod_rewrite module"] = "Apache mod_rewrite eining"; -$a->strings["Error: Apache webserver mod-rewrite module is required but not installed."] = "Villa: Apache vefþjóns eining mod-rewrite er skilyrði og er ekki uppsett. "; -$a->strings["Error: libCURL PHP module required but not installed."] = "Villa: libCurl PHP eining er skilyrði og er ekki uppsett."; -$a->strings["Error: GD graphics PHP module with JPEG support required but not installed."] = "Villa: GD graphics PHP eining með JPEG stuðningi er skilyrði og er ekki uppsett."; -$a->strings["Error: openssl PHP module required but not installed."] = "Villa: openssl PHP eining skilyrði og er ekki uppsett."; -$a->strings["Error: mysqli PHP module required but not installed."] = "Villa: mysqli PHP eining er skilyrði og er ekki uppsett"; -$a->strings["Error: mb_string PHP module required but not installed."] = "Villa: mb_string PHP eining skilyrði en ekki uppsett."; -$a->strings["The web installer needs to be able to create a file called \".htconfig.php\" in the top folder of your web server and it is unable to do so."] = "Vef uppsetningar forrit þarf að geta stofnað skránna \".htconfig.php\" in efsta skráarsafninu á vefþjóninum og það getur ekki gert það."; -$a->strings["This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can."] = "Þetta er oftast aðgangsstýringa stilling, þar sem vefþjónninn getur ekki skrifað út skrár í skráarsafnið - þó þú getir það."; -$a->strings["At the end of this procedure, we will give you a text to save in a file named .htconfig.php in your Friendica top folder."] = ""; -$a->strings["You can alternatively skip this procedure and perform a manual installation. Please see the file \"INSTALL.txt\" for instructions."] = ""; -$a->strings[".htconfig.php is writable"] = ".htconfig.php er skrifanleg"; -$a->strings["Friendica uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering."] = ""; -$a->strings["In order to store these compiled templates, the web server needs to have write access to the directory view/smarty3/ under the Friendica top level folder."] = ""; -$a->strings["Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder."] = ""; -$a->strings["Note: as a security measure, you should give the web server write access to view/smarty3/ only--not the template files (.tpl) that it contains."] = ""; -$a->strings["view/smarty3 is writable"] = ""; -$a->strings["Url rewrite in .htaccess is not working. Check your server configuration."] = ""; -$a->strings["Url rewrite is working"] = ""; -$a->strings["The database configuration file \".htconfig.php\" could not be written. Please use the enclosed text to create a configuration file in your web server root."] = "Ekki tókst að skrifa gagnagrunns stillingar skrá \".htconfig.php\". Vinsamlegast notaði viðhangandi texta til að búa til stillingar skrá á vefþjóns rótina."; -$a->strings["

      What next

      "] = ""; -$a->strings["IMPORTANT: You will need to [manually] setup a scheduled task for the poller."] = "MIKILVÆGT: Þú þarft að [handvirkt] setja upp sjálfvirka keyrslu á poller."; -$a->strings["Number of daily wall messages for %s exceeded. Message failed."] = ""; -$a->strings["Unable to check your home location."] = ""; -$a->strings["No recipient."] = ""; -$a->strings["If you wish for %s to respond, please check that the privacy settings on your site allow private mail from unknown senders."] = ""; -$a->strings["Help:"] = "Hjálp:"; -$a->strings["Help"] = "Hjálp"; -$a->strings["Not Found"] = "Fannst ekki"; -$a->strings["Page not found."] = "Síða fannst ekki."; -$a->strings["%1\$s welcomes %2\$s"] = ""; -$a->strings["Welcome to %s"] = "Velkomin(n) til %s"; -$a->strings["Sorry, maybe your upload is bigger than the PHP configuration allows"] = ""; -$a->strings["Or - did you try to upload an empty file?"] = ""; -$a->strings["File exceeds size limit of %d"] = "Skrá stærri en takmarkið %d"; -$a->strings["File upload failed."] = "Skráar upphlöðun mistókst."; -$a->strings["Profile Match"] = "Forsíða fannst"; -$a->strings["No keywords to match. Please add keywords to your default profile."] = "Engin leitarorð. Bættu við leitarorðum í sjálfgefnu forsíðuna."; -$a->strings["is interested in:"] = "hefur áhuga á:"; -$a->strings["Connect"] = "Tengjast"; -$a->strings["link"] = ""; -$a->strings["Not available."] = "Ekki í boði."; -$a->strings["Community"] = "Samfélag"; -$a->strings["No results."] = "Engar leitarniðurstöður."; -$a->strings["everybody"] = "allir"; -$a->strings["Additional features"] = ""; -$a->strings["Display"] = ""; -$a->strings["Social Networks"] = ""; -$a->strings["Delegations"] = ""; -$a->strings["Connected apps"] = ""; -$a->strings["Export personal data"] = "Sækja persónuleg gögn"; -$a->strings["Remove account"] = "Henda tengilið"; -$a->strings["Missing some important data!"] = "Vantar mikilvæg gögn!"; -$a->strings["Failed to connect with email account using the settings provided."] = "Ekki tókst að tengjast við pósthólf með stillingum sem uppgefnar eru."; -$a->strings["Email settings updated."] = "Stillingar póstfangs uppfærðar."; -$a->strings["Features updated"] = ""; -$a->strings["Relocate message has been send to your contacts"] = ""; -$a->strings["Passwords do not match. Password unchanged."] = "Aðgangsorð ber ekki saman. Aðgangsorð óbreytt."; -$a->strings["Empty passwords are not allowed. Password unchanged."] = "Tóm aðgangsorð eru ekki leyfileg. Aðgangsorð óbreytt."; -$a->strings["Wrong password."] = ""; -$a->strings["Password changed."] = "Aðgangsorði breytt."; -$a->strings["Password update failed. Please try again."] = "Uppfærsla á aðgangsorði tókst ekki. Reyndu aftur."; -$a->strings[" Please use a shorter name."] = "Vinsamlegast nota styttra nafn."; -$a->strings[" Name too short."] = "Nafn of stutt."; -$a->strings["Wrong Password"] = ""; -$a->strings[" Not valid email."] = "Póstfang ógilt"; -$a->strings[" Cannot change to that email."] = "Ekki hægt að breyta yfir í þetta póstfang."; -$a->strings["Private forum has no privacy permissions. Using default privacy group."] = ""; -$a->strings["Private forum has no privacy permissions and no default privacy group."] = ""; -$a->strings["Settings updated."] = "Stillingar uppfærðar"; -$a->strings["Add application"] = "Bæta við forriti"; -$a->strings["Consumer Key"] = "Notenda lykill"; -$a->strings["Consumer Secret"] = "Notenda leyndarmál"; -$a->strings["Redirect"] = "Áframsenda"; -$a->strings["Icon url"] = "Táknmyndar slóð"; -$a->strings["You can't edit this application."] = "Þú getur ekki breytt þessu forriti."; -$a->strings["Connected Apps"] = "Tengd forr"; -$a->strings["Client key starts with"] = "Lykill viðskiptavinar byrjar á"; -$a->strings["No name"] = "Ekkert nafn"; -$a->strings["Remove authorization"] = "Fjarlæga auðkenningu"; -$a->strings["No Plugin settings configured"] = "Engar stillingar í einingu stilltar"; -$a->strings["Plugin Settings"] = "Eininga stillingar"; -$a->strings["Off"] = ""; -$a->strings["On"] = ""; -$a->strings["Additional Features"] = ""; -$a->strings["Built-in support for %s connectivity is %s"] = "Innbyggður stuðningur fyrir %s tenging er%s"; -$a->strings["Diaspora"] = "Diaspora"; -$a->strings["enabled"] = "kveikt"; -$a->strings["disabled"] = "slökkt"; -$a->strings["StatusNet"] = "StatusNet"; -$a->strings["Email access is disabled on this site."] = "Slökkt hefur verið á tölvupóst aðgang á þessum þjón."; -$a->strings["Email/Mailbox Setup"] = "Tölvupóstur stilling"; -$a->strings["If you wish to communicate with email contacts using this service (optional), please specify how to connect to your mailbox."] = "Ef þú villt hafa samskipti við tölvupósts tengiliði með þessari þjónustu (valfrjálst), skilgreindu þá hvernig á að tengjast póstfanginu þínu."; -$a->strings["Last successful email check:"] = "Póstfang sannreynt síðast:"; -$a->strings["IMAP server name:"] = "IMAP þjónn:"; -$a->strings["IMAP port:"] = "IMAP port:"; -$a->strings["Security:"] = "Öryggi:"; -$a->strings["None"] = "Ekkert"; -$a->strings["Email login name:"] = "Póstfangs aðgangsnafn:"; -$a->strings["Email password:"] = "Póstfangs aðgangsorð:"; -$a->strings["Reply-to address:"] = "Póstfang sem svar berst á:"; -$a->strings["Send public posts to all email contacts:"] = "Senda opinberar færslur á alla tölvupóst viðtakendur:"; -$a->strings["Action after import:"] = ""; -$a->strings["Mark as seen"] = "Merka sem séð"; -$a->strings["Move to folder"] = "Flytja yfir í skrásafn"; -$a->strings["Move to folder:"] = "Flytja yfir í skrásafn:"; -$a->strings["Display Settings"] = ""; -$a->strings["Display Theme:"] = "Útlits þema:"; -$a->strings["Mobile Theme:"] = ""; -$a->strings["Update browser every xx seconds"] = "Endurhlaða vefsíðu á xx sekúndu fresti"; -$a->strings["Minimum of 10 seconds, no maximum"] = "Minnst 10 sekúndur, ekkert hámark"; -$a->strings["Number of items to display per page:"] = ""; -$a->strings["Maximum of 100 items"] = ""; -$a->strings["Number of items to display per page when viewed from mobile device:"] = ""; -$a->strings["Don't show emoticons"] = ""; -$a->strings["Don't show notices"] = ""; -$a->strings["Infinite scroll"] = ""; -$a->strings["Automatic updates only at the top of the network page"] = ""; -$a->strings["User Types"] = ""; -$a->strings["Community Types"] = ""; -$a->strings["Normal Account Page"] = ""; -$a->strings["This account is a normal personal profile"] = "Þessi notandi er með venjulega persónulega forsíðu"; -$a->strings["Soapbox Page"] = ""; -$a->strings["Automatically approve all connection/friend requests as read-only fans"] = "Sjálfkrafa samþykkja allar tengi/vina beiðnir sem, einungis lestrar aðdáendur"; -$a->strings["Community Forum/Celebrity Account"] = ""; -$a->strings["Automatically approve all connection/friend requests as read-write fans"] = "Sjálfkrafa samþykkja allar tengi/vina beiðnir, sem les og skriftar aðdáendur"; -$a->strings["Automatic Friend Page"] = ""; -$a->strings["Automatically approve all connection/friend requests as friends"] = "Sjálfkrafa samþykkja allar tengi/vina beiðnir sem vini"; -$a->strings["Private Forum [Experimental]"] = ""; -$a->strings["Private forum - approved members only"] = ""; -$a->strings["OpenID:"] = "OpenID:"; -$a->strings["(Optional) Allow this OpenID to login to this account."] = "(Valfrjálst) Leyfa þessu OpenID til að auðkennast sem þessi notandi."; -$a->strings["Publish your default profile in your local site directory?"] = "Gefa út sjálfgefna forsíðu í tengiliðalista á þessum þjón?"; -$a->strings["No"] = "Nei"; -$a->strings["Publish your default profile in the global social directory?"] = "Gefa sjálfgefna forsíðu út í alheimstengiliðalista?"; -$a->strings["Hide your contact/friend list from viewers of your default profile?"] = "Fela tengiliða-/vinalistann þinn fyrir áhorfendum á sjálfgefinni forsíðu?"; -$a->strings["Hide your profile details from unknown viewers?"] = "Fela forsíðu upplýsingar fyrir óþekktum? "; -$a->strings["If enabled, posting public messages to Diaspora and other networks isn't possible."] = ""; -$a->strings["Allow friends to post to your profile page?"] = "Leyfa vinum að deila á forsíðuna þína?"; -$a->strings["Allow friends to tag your posts?"] = "Leyfa vinum að merkja þínar færslur?"; -$a->strings["Allow us to suggest you as a potential friend to new members?"] = "Leyfa að stungið verði uppá þér sem hugsamlegum vinur fyrir aðra notendur? "; -$a->strings["Permit unknown people to send you private mail?"] = ""; -$a->strings["Profile is not published."] = "Forsíðu hefur ekki verið gefinn út."; -$a->strings["Your Identity Address is"] = "Auðkennisnetfangið þitt er"; -$a->strings["Automatically expire posts after this many days:"] = "Sjálfkrafa fyrna færslu eftir hvað marga daga:"; -$a->strings["If empty, posts will not expire. Expired posts will be deleted"] = "Tómar færslur renna ekki út. Útrunnum færslum er eytt"; -$a->strings["Advanced expiration settings"] = "Flóknar fyrningatíma stillingar"; -$a->strings["Advanced Expiration"] = "Flókin fyrning"; -$a->strings["Expire posts:"] = "Fyrna færslur:"; -$a->strings["Expire personal notes:"] = "Fyrna einka glósur:"; -$a->strings["Expire starred posts:"] = "Fyrna stjörnumerktar færslur:"; -$a->strings["Expire photos:"] = "Fyrna myndum:"; -$a->strings["Only expire posts by others:"] = ""; -$a->strings["Account Settings"] = "Notenda stillingar"; -$a->strings["Password Settings"] = "Aðgangsorða stillingar"; -$a->strings["New Password:"] = "Nýtt aðgangsorð:"; -$a->strings["Confirm:"] = "Staðfesta:"; -$a->strings["Leave password fields blank unless changing"] = "Hafðu aðgangsorða svæði tóm nema þegar verið er að breyta"; -$a->strings["Current Password:"] = ""; -$a->strings["Your current password to confirm the changes"] = ""; -$a->strings["Password:"] = ""; -$a->strings["Basic Settings"] = "Grunn stillingar"; -$a->strings["Full Name:"] = "Fullt nafn:"; -$a->strings["Email Address:"] = "Póstfang:"; -$a->strings["Your Timezone:"] = "Þitt tímabelti:"; -$a->strings["Default Post Location:"] = "Sjálfgefin staðsetning færslu:"; -$a->strings["Use Browser Location:"] = "Nota vafra staðsetningu:"; -$a->strings["Security and Privacy Settings"] = "Öryggis og næðis stillingar"; -$a->strings["Maximum Friend Requests/Day:"] = "Hámarks vinabeiðnir á dag:"; -$a->strings["(to prevent spam abuse)"] = "(til að koma í veg fyrir rusl misnotkun)"; -$a->strings["Default Post Permissions"] = "Sjálfgefnar aðgangstýring á færslum"; -$a->strings["(click to open/close)"] = "(ýttu á til að opna/loka)"; -$a->strings["Show to Groups"] = "Birta hópum"; -$a->strings["Show to Contacts"] = "Birta tengiliðum"; -$a->strings["Default Private Post"] = ""; -$a->strings["Default Public Post"] = ""; -$a->strings["Default Permissions for New Posts"] = ""; -$a->strings["Maximum private messages per day from unknown people:"] = ""; -$a->strings["Notification Settings"] = "Tilkynninga stillingar"; -$a->strings["By default post a status message when:"] = ""; -$a->strings["accepting a friend request"] = ""; -$a->strings["joining a forum/community"] = "ganga til liðs við hóp/samfélag"; -$a->strings["making an interesting profile change"] = ""; -$a->strings["Send a notification email when:"] = "Senda tilkynninga tölvupóst þegar:"; -$a->strings["You receive an introduction"] = "Þú færð kynningu"; -$a->strings["Your introductions are confirmed"] = "Þínar kynningar eru samþykktar"; -$a->strings["Someone writes on your profile wall"] = "Einhver skrifar á vegginn þínn"; -$a->strings["Someone writes a followup comment"] = "Einhver skrifar athugasemd á færslu hjá þér"; -$a->strings["You receive a private message"] = "Þú færð einkaskilaboð"; -$a->strings["You receive a friend suggestion"] = "Þér hefur borist vina uppástunga"; -$a->strings["You are tagged in a post"] = "Þú varst merkt(ur) í færslu"; -$a->strings["You are poked/prodded/etc. in a post"] = ""; -$a->strings["Text-only notification emails"] = ""; -$a->strings["Send text only notification emails, without the html part"] = ""; -$a->strings["Advanced Account/Page Type Settings"] = ""; -$a->strings["Change the behaviour of this account for special situations"] = ""; -$a->strings["Relocate"] = ""; -$a->strings["If you have moved this profile from another server, and some of your contacts don't receive your updates, try pushing this button."] = ""; -$a->strings["Resend relocate message to contacts"] = ""; -$a->strings["This introduction has already been accepted."] = "Þessi kynning hefur þegar verið samþykkt."; -$a->strings["Profile location is not valid or does not contain profile information."] = "Forsíðu slóð er ekki í lagi eða inniheldur ekki forsíðu upplýsingum."; -$a->strings["Warning: profile location has no identifiable owner name."] = "Aðvörun: forsíðu staðsetning hefur ekki aðgreinanlegt eigendanafn."; -$a->strings["Warning: profile location has no profile photo."] = "Aðvörun: forsíðu slóð hefur ekki forsíðu mynd."; -$a->strings["%d required parameter was not found at the given location"] = array( - 0 => "%d skilyrt breyta fannst ekki á uppgefinni staðsetningu", - 1 => "%d skilyrtar breytur fundust ekki á uppgefninni staðsetningu", -); -$a->strings["Introduction complete."] = "Kynning tilbúinn."; -$a->strings["Unrecoverable protocol error."] = "Alvarleg samskipta villa."; -$a->strings["Profile unavailable."] = "Ekki hægt að sækja forsíðu"; -$a->strings["%s has received too many connection requests today."] = "%s hefur fengið of margar tengibeiðnir í dag."; -$a->strings["Spam protection measures have been invoked."] = "Kveikt hefur verið á ruslsíu"; -$a->strings["Friends are advised to please try again in 24 hours."] = "Vinir eru beðnir um að reyna aftur eftir 24 klukkustundir."; -$a->strings["Invalid locator"] = "Ógild staðsetning"; -$a->strings["Invalid email address."] = "Ógilt póstfang."; -$a->strings["This account has not been configured for email. Request failed."] = ""; -$a->strings["Unable to resolve your name at the provided location."] = "Ekki tókst að fletta upp nafninu þínu á uppgefinni staðsetningu."; -$a->strings["You have already introduced yourself here."] = "Kynning hefur þegar átt sér stað hér."; -$a->strings["Apparently you are already friends with %s."] = "Þú ert þegar vinur %s."; -$a->strings["Invalid profile URL."] = "Ógild forsíðu slóð."; -$a->strings["Disallowed profile URL."] = "Óleyfileg forsíðu slóð."; -$a->strings["Your introduction has been sent."] = "Kynningin þín hefur verið send."; -$a->strings["Please login to confirm introduction."] = "Skráðu þig inn til að staðfesta kynningu."; -$a->strings["Incorrect identity currently logged in. Please login to this profile."] = "Ekki réttur notandi skráður inn. Skráðu þig inn sem þessi notandi."; -$a->strings["Hide this contact"] = "Fela þennan tengilið"; -$a->strings["Welcome home %s."] = "Velkomin(n) heim %s."; -$a->strings["Please confirm your introduction/connection request to %s."] = "Vinsamlegas staðfestu kynninguna/tengibeiðnina við %s."; -$a->strings["Confirm"] = "Staðfesta"; -$a->strings["Please enter your 'Identity Address' from one of the following supported communications networks:"] = "Settu inn 'Auðkennisnetfang' þitt úr einhverjum af eftirfarandi samskiptanetum:"; -$a->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."] = ""; -$a->strings["Friend/Connection Request"] = "Vina/Tengi Beiðni"; -$a->strings["Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, testuser@identi.ca"] = "Dæmi: siggi@demo.friendica.com, http://demo.friendica.com/profile/siggi, prufunotandi@identi.ca"; -$a->strings["Please answer the following:"] = "Vinnsamlegast svaraðu eftirfarandi:"; -$a->strings["Does %s know you?"] = "Þekkir %s þig?"; -$a->strings["Add a personal note:"] = "Bæta við persónulegri athugasemd"; -$a->strings["Friendica"] = "Friendica"; -$a->strings["StatusNet/Federated Social Web"] = "StatusNet/Federated Social Web"; -$a->strings[" - please do not use this form. Instead, enter %s into your Diaspora search bar."] = ""; -$a->strings["Your Identity Address:"] = "Auðkennisnetfang þitt:"; -$a->strings["Submit Request"] = "Senda beiðni"; -$a->strings["Registration successful. Please check your email for further instructions."] = "Nýskráning tóks. Frekari fyrirmæli voru send í tölvupósti."; -$a->strings["Failed to send email message. Here your accout details:
      login: %s
      password: %s

      You can change your password after login."] = ""; -$a->strings["Your registration can not be processed."] = "Skráninguna þína er ekki hægt að vinna."; -$a->strings["Your registration is pending approval by the site owner."] = "Skráningin þín bíður samþykkis af eiganda síðunnar."; -$a->strings["This site has exceeded the number of allowed daily account registrations. Please try again tomorrow."] = "Þessi vefur hefur náð hámarks fjölda daglegra nýskráninga. Reyndu aftur á morgun."; -$a->strings["You may (optionally) fill in this form via OpenID by supplying your OpenID and clicking 'Register'."] = "Þú mátt (valfrjálst) fylla í þetta svæði gegnum OpenID með því gefa upp þitt OpenID og ýta á 'Skrá'."; -$a->strings["If you are not familiar with OpenID, please leave that field blank and fill in the rest of the items."] = "Ef þú veist ekki hvað OpenID er, skildu þá þetta svæði eftir tómt en fylltu í restin af svæðunum."; -$a->strings["Your OpenID (optional): "] = "Þitt OpenID (valfrjálst):"; -$a->strings["Include your profile in member directory?"] = "Á forsíðan þín að sjást í notendalistanum?"; -$a->strings["Membership on this site is by invitation only."] = "Aðild að þessum vef er "; -$a->strings["Your invitation ID: "] = "Boðskorta auðkenni:"; -$a->strings["Your Full Name (e.g. Joe Smith): "] = "Full nafn (t.d. Jón Jónsson):"; -$a->strings["Your Email Address: "] = "Tölvupóstur:"; -$a->strings["Choose a profile nickname. This must begin with a text character. Your profile address on this site will then be 'nickname@\$sitename'."] = "Veldu gælunafn. Verður að byrja á staf. Slóðin þín á þessum vef verður síðan 'gælunafn@\$sitename'."; -$a->strings["Choose a nickname: "] = "Veldu gælunafn:"; -$a->strings["Register"] = "Nýskrá"; -$a->strings["Import"] = "Flytja inn"; -$a->strings["Import your profile to this friendica instance"] = ""; -$a->strings["System down for maintenance"] = "Kerfið er óvirkt vegna viðhalds"; -$a->strings["Search"] = "Leita"; -$a->strings["Global Directory"] = "Alheimstengiliðaskrá"; -$a->strings["Find on this site"] = "Leita á þessum vef"; -$a->strings["Site Directory"] = "Skrá yfir tengiliði á þessum vef"; -$a->strings["Age: "] = "Aldur:"; -$a->strings["Gender: "] = "Kyn:"; -$a->strings["Gender:"] = "Kyn:"; -$a->strings["Status:"] = "Staða:"; -$a->strings["Homepage:"] = "Heimasíða:"; -$a->strings["About:"] = "Um:"; -$a->strings["No entries (some entries may be hidden)."] = "Engar færslur (sumar geta verið faldar)."; -$a->strings["No potential page delegates located."] = "Engir mögulegir viðtakendur síðunnar fundust."; -$a->strings["Delegate Page Management"] = ""; -$a->strings["Delegates are able to manage all aspects of this account/page except for basic account settings. Please do not delegate your personal account to anybody that you do not trust completely."] = ""; -$a->strings["Existing Page Managers"] = ""; -$a->strings["Existing Page Delegates"] = ""; -$a->strings["Potential Delegates"] = ""; -$a->strings["Add"] = "Bæta við"; -$a->strings["No entries."] = "Engar færslur."; -$a->strings["Common Friends"] = "Sameiginlegir vinir"; -$a->strings["No contacts in common."] = ""; -$a->strings["Export account"] = ""; -$a->strings["Export your account info and contacts. Use this to make a backup of your account and/or to move it to another server."] = ""; -$a->strings["Export all"] = ""; -$a->strings["Export your accout info, contacts and all your items as json. Could be a very big file, and could take a lot of time. Use this to make a full backup of your account (photos are not exported)"] = ""; -$a->strings["%1\$s is currently %2\$s"] = ""; -$a->strings["Mood"] = ""; -$a->strings["Set your current mood and tell your friends"] = ""; -$a->strings["Do you really want to delete this suggestion?"] = ""; -$a->strings["Friend Suggestions"] = "Vina uppástungur"; -$a->strings["No suggestions available. If this is a new site, please try again in 24 hours."] = "Engar uppástungur tiltækar. Ef þetta er nýr vefur, reyndu þá aftur eftir um 24 klukkustundir."; -$a->strings["Ignore/Hide"] = "Hunsa/Fela"; -$a->strings["Profile deleted."] = "Forsíðu eytt."; -$a->strings["Profile-"] = "Forsíða-"; -$a->strings["New profile created."] = "Ný forsíða búinn til."; -$a->strings["Profile unavailable to clone."] = "Ekki tókst að klóna forsíðu"; -$a->strings["Profile Name is required."] = "Nafn á forsíðu er skilyrði"; -$a->strings["Marital Status"] = ""; -$a->strings["Romantic Partner"] = ""; -$a->strings["Likes"] = ""; -$a->strings["Dislikes"] = ""; -$a->strings["Work/Employment"] = ""; -$a->strings["Religion"] = ""; -$a->strings["Political Views"] = ""; -$a->strings["Gender"] = ""; -$a->strings["Sexual Preference"] = ""; -$a->strings["Homepage"] = ""; -$a->strings["Interests"] = ""; -$a->strings["Address"] = ""; -$a->strings["Location"] = ""; -$a->strings["Profile updated."] = "Forsíða uppfærð."; -$a->strings[" and "] = "og"; -$a->strings["public profile"] = "Opinber forsíða"; -$a->strings["%1\$s changed %2\$s to “%3\$s”"] = ""; -$a->strings[" - Visit %1\$s's %2\$s"] = ""; -$a->strings["%1\$s has an updated %2\$s, changing %3\$s."] = "%1\$s hefur uppfært %2\$s, með því að breyta %3\$s."; -$a->strings["Hide contacts and friends:"] = ""; -$a->strings["Hide your contact/friend list from viewers of this profile?"] = "Fela tengiliða-/vinalista á þessari forsíðu?"; -$a->strings["Edit Profile Details"] = "Breyta forsíðu upplýsingum"; -$a->strings["Change Profile Photo"] = ""; -$a->strings["View this profile"] = "Skoða þessa forsíðu"; -$a->strings["Create a new profile using these settings"] = "Búa til nýja forsíðu með þessum stillingum"; -$a->strings["Clone this profile"] = "Klóna þessa forsíðu"; -$a->strings["Delete this profile"] = "Eyða þessari forsíðu"; -$a->strings["Basic information"] = ""; -$a->strings["Profile picture"] = ""; -$a->strings["Preferences"] = ""; -$a->strings["Status information"] = ""; -$a->strings["Additional information"] = ""; -$a->strings["Profile Name:"] = "Forsíðu nafn:"; -$a->strings["Your Full Name:"] = "Fullt nafn:"; -$a->strings["Title/Description:"] = "Starfsheiti/Lýsing:"; -$a->strings["Your Gender:"] = "Kyn:"; -$a->strings["Birthday (%s):"] = "Afmæli (%s):"; -$a->strings["Street Address:"] = "Gata:"; -$a->strings["Locality/City:"] = "Bær/Borg:"; -$a->strings["Postal/Zip Code:"] = "Póstnúmer:"; -$a->strings["Country:"] = "Land:"; -$a->strings["Region/State:"] = "Svæði/Sýsla"; -$a->strings[" Marital Status:"] = " Hjúskaparstaða:"; -$a->strings["Who: (if applicable)"] = "Hver: (ef við á)"; -$a->strings["Examples: cathy123, Cathy Williams, cathy@example.com"] = "Dæmi: cathy123, Cathy Williams, cathy@example.com"; -$a->strings["Since [date]:"] = ""; -$a->strings["Sexual Preference:"] = "Kynhneigð"; -$a->strings["Homepage URL:"] = "Slóð heimasíðu:"; -$a->strings["Hometown:"] = ""; -$a->strings["Political Views:"] = "Stórnmálaskoðanir:"; -$a->strings["Religious Views:"] = "Trúarskoðanir"; -$a->strings["Public Keywords:"] = "Opinber leitarorð:"; -$a->strings["Private Keywords:"] = "Einka leitarorð:"; -$a->strings["Likes:"] = ""; -$a->strings["Dislikes:"] = ""; -$a->strings["Example: fishing photography software"] = "Til dæmis: fishing photography software"; -$a->strings["(Used for suggesting potential friends, can be seen by others)"] = "(Notað til að stinga uppá mögulegum vinum, aðrir geta séð)"; -$a->strings["(Used for searching profiles, never shown to others)"] = "(Notað við leit að öðrum notendum, aldrei sýnt öðrum)"; -$a->strings["Tell us about yourself..."] = "Segðu okkur frá sjálfum þér..."; -$a->strings["Hobbies/Interests"] = "Áhugamál"; -$a->strings["Contact information and Social Networks"] = "Tengiliðaupplýsingar og samfélagsnet"; -$a->strings["Musical interests"] = "Tónlistarsmekkur"; -$a->strings["Books, literature"] = "Bækur, bókmenntir"; -$a->strings["Television"] = "Sjónvarp"; -$a->strings["Film/dance/culture/entertainment"] = "Kvikmyndir/dans/menning/afþreying"; -$a->strings["Love/romance"] = "Ást/rómantík"; -$a->strings["Work/employment"] = "Atvinna:"; -$a->strings["School/education"] = "Skóli/menntun"; -$a->strings["This is your public profile.
      It may be visible to anybody using the internet."] = "Þetta er opinber forsíða.
      Hún verður sjáanleg öðrum sem nota alnetið."; -$a->strings["Edit/Manage Profiles"] = "Sýsla með forsíður"; -$a->strings["Change profile photo"] = "Breyta forsíðu mynd"; -$a->strings["Create New Profile"] = "Stofna nýja forsíðu"; -$a->strings["Profile Image"] = "Forsíðu mynd"; -$a->strings["visible to everybody"] = "Sýnilegt öllum"; -$a->strings["Edit visibility"] = "Sýsla með sjáanleika"; -$a->strings["Item not found"] = "Hlutur fannst ekki"; -$a->strings["Edit post"] = "Breyta skilaboðum"; -$a->strings["upload photo"] = "Hlaða upp mynd"; -$a->strings["Attach file"] = "Bæta við skrá"; -$a->strings["attach file"] = "Hengja skrá við"; -$a->strings["web link"] = "vefhlekkur"; -$a->strings["Insert video link"] = "Setja inn myndbandshlekk"; -$a->strings["video link"] = "myndbandshlekkur"; -$a->strings["Insert audio link"] = "Setja inn hlekk á hljóðskrá"; -$a->strings["audio link"] = "hljóðhlekkur"; -$a->strings["Set your location"] = "Veldu staðsetningu þína"; -$a->strings["set location"] = "stilla staðsetningu"; -$a->strings["Clear browser location"] = "Hreinsa staðsetningu í vafra"; -$a->strings["clear location"] = "hreinsa staðsetningu"; -$a->strings["Permission settings"] = "Heimildar stillingar"; -$a->strings["CC: email addresses"] = "CC: tölvupóstfang"; -$a->strings["Public post"] = "Opinber færsla"; -$a->strings["Set title"] = "Setja titil"; -$a->strings["Categories (comma-separated list)"] = ""; -$a->strings["Example: bob@example.com, mary@example.com"] = "Dæmi: bob@example.com, mary@example.com"; -$a->strings["This is Friendica, version"] = "Þetta er Friendica útgáfa"; -$a->strings["running at web location"] = "Keyrir á slóð"; -$a->strings["Please visit Friendica.com to learn more about the Friendica project."] = "Á Friendica.com er hægt að fræðast nánar um Friendica verkefnið."; -$a->strings["Bug reports and issues: please visit"] = "Villu tilkynningar og vandamál: endilega skoða"; -$a->strings["Suggestions, praise, donations, etc. - please email \"Info\" at Friendica - dot com"] = "Uppástungur, lof, framlög og svo framvegis - sendið tölvupóst á \"Info\" hjá Friendica - punktur com"; -$a->strings["Installed plugins/addons/apps:"] = ""; -$a->strings["No installed plugins/addons/apps"] = "Engin uppsett eining/viðbót/forr"; -$a->strings["Authorize application connection"] = "Leyfa forriti að tengjast"; -$a->strings["Return to your app and insert this Securty Code:"] = "Farðu aftur í forritið þitt og settu þennan öryggiskóða þar"; -$a->strings["Please login to continue."] = "Skráðu þig inn til að halda áfram."; -$a->strings["Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?"] = "Vilt þú leyfa þessu forriti að hafa aðgang að færslum og tengiliðum, og/eða stofna nýjar færslur fyrir þig?"; -$a->strings["Remote privacy information not available."] = "Persónuverndar upplýsingar ekki fyrir hendi á fjarlægum vefþjón."; -$a->strings["Visible to:"] = "Sýnilegt eftirfarandi:"; -$a->strings["Personal Notes"] = "Persónulegar glósur"; -$a->strings["l F d, Y \\@ g:i A"] = ""; -$a->strings["Time Conversion"] = "Tíma leiðréttir"; -$a->strings["Friendica provides this service for sharing events with other networks and friends in unknown timezones."] = "Friendica veitir þessa þjónustu til að deila atburðum milli neta og vina í óþekktum tímabeltum."; -$a->strings["UTC time: %s"] = "Máltími: %s"; -$a->strings["Current timezone: %s"] = "Núverandi tímabelti: %s"; -$a->strings["Converted localtime: %s"] = "Umbreyttur staðartími: %s"; -$a->strings["Please select your timezone:"] = "Veldu tímabeltið þitt:"; -$a->strings["Poke/Prod"] = ""; -$a->strings["poke, prod or do other things to somebody"] = ""; -$a->strings["Recipient"] = ""; -$a->strings["Choose what you wish to do to recipient"] = ""; -$a->strings["Make this post private"] = ""; -$a->strings["Total invitation limit exceeded."] = ""; -$a->strings["%s : Not a valid email address."] = "%s : Ekki gilt póstfang"; -$a->strings["Please join us on Friendica"] = ""; -$a->strings["Invitation limit exceeded. Please contact your site administrator."] = ""; -$a->strings["%s : Message delivery failed."] = "%s : Skilaboð komust ekki til skila."; -$a->strings["%d message sent."] = array( - 0 => "%d skilaboð send.", - 1 => "%d skilaboð send", -); -$a->strings["You have no more invitations available"] = "Þú hefur ekki fleiri boðskort."; -$a->strings["Visit %s for a list of public sites that you can join. Friendica members on other sites can all connect with each other, as well as with members of many other social networks."] = ""; -$a->strings["To accept this invitation, please visit and register at %s or any other public Friendica website."] = ""; -$a->strings["Friendica sites all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks. See %s for a list of alternate Friendica sites you can join."] = ""; -$a->strings["Our apologies. This system is not currently configured to connect with other public sites or invite members."] = ""; -$a->strings["Send invitations"] = "Senda kynningar"; -$a->strings["Enter email addresses, one per line:"] = "Póstföng, eitt í hverja línu:"; -$a->strings["You are cordially invited to join me and other close friends on Friendica - and help us to create a better social web."] = ""; -$a->strings["You will need to supply this invitation code: \$invite_code"] = "Þú þarft að nota eftirfarandi boðskorta auðkenni: \$invite_code"; -$a->strings["Once you have registered, please connect with me via my profile page at:"] = "Þegar þú hefur nýskráð þig, hafðu samband við mig gegnum síðuna mína á:"; -$a->strings["For more information about the Friendica project and why we feel it is important, please visit http://friendica.com"] = ""; -$a->strings["Photo Albums"] = "Myndabækur"; -$a->strings["Contact Photos"] = "Myndir tengiliðs"; -$a->strings["Upload New Photos"] = "Hlaða upp nýjum myndum"; -$a->strings["Contact information unavailable"] = "Tengiliða upplýsingar ekki til"; -$a->strings["Album not found."] = "Myndabók finnst ekki."; -$a->strings["Delete Album"] = "Fjarlægja myndabók"; -$a->strings["Do you really want to delete this photo album and all its photos?"] = ""; -$a->strings["Delete Photo"] = "Fjarlægja mynd"; -$a->strings["Do you really want to delete this photo?"] = ""; -$a->strings["%1\$s was tagged in %2\$s by %3\$s"] = ""; -$a->strings["a photo"] = "mynd"; -$a->strings["Image exceeds size limit of "] = "Mynd er yfir stærðamörkum"; -$a->strings["Image file is empty."] = "Mynda skrá er tóm."; -$a->strings["No photos selected"] = "Engar myndir valdar"; -$a->strings["You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage."] = ""; -$a->strings["Upload Photos"] = "Hlaða upp myndum"; -$a->strings["New album name: "] = "Nýtt nafn myndbókar:"; -$a->strings["or existing album name: "] = "eða fyrra nafn myndbókar:"; -$a->strings["Do not show a status post for this upload"] = "Ekki sýna færslu fyrir þessari upphölun"; -$a->strings["Permissions"] = "Aðgangar"; -$a->strings["Private Photo"] = "Einkamynd"; -$a->strings["Public Photo"] = "Opinber mynd"; -$a->strings["Edit Album"] = "Breyta myndbók"; -$a->strings["Show Newest First"] = "Birta nýjast fyrst"; -$a->strings["Show Oldest First"] = "Birta elsta fyrst"; -$a->strings["View Photo"] = "Skoða mynd"; -$a->strings["Permission denied. Access to this item may be restricted."] = "Aðgangi hafnað. Aðgangur að þessum hlut kann að vera skertur."; -$a->strings["Photo not available"] = "Mynd ekki til"; -$a->strings["View photo"] = "Birta mynd"; -$a->strings["Edit photo"] = "Breyta mynd"; -$a->strings["Use as profile photo"] = "Nota sem forsíðu mynd"; -$a->strings["View Full Size"] = "Skoða í fullri stærð"; -$a->strings["Tags: "] = "Merki:"; -$a->strings["[Remove any tag]"] = "[Fjarlægja öll merki]"; -$a->strings["Rotate CW (right)"] = ""; -$a->strings["Rotate CCW (left)"] = ""; -$a->strings["New album name"] = "Nýtt nafn myndbókar"; -$a->strings["Caption"] = "Yfirskrift"; -$a->strings["Add a Tag"] = "Bæta við merki"; -$a->strings["Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"] = "Til dæmis: @bob, @Barbara_Jensen, @jim@example.com, #Reykjavík #tjalda"; -$a->strings["Private photo"] = "Einkamynd"; -$a->strings["Public photo"] = "Opinber mynd"; -$a->strings["Share"] = "Deila"; -$a->strings["Recent Photos"] = "Nýlegar myndir"; -$a->strings["Account approved."] = "Notandi samþykktur."; -$a->strings["Registration revoked for %s"] = "Skráning afturköllurð vegna %s"; -$a->strings["Please login."] = "Skráðu yður inn."; -$a->strings["Move account"] = ""; -$a->strings["You can import an account from another Friendica server."] = ""; -$a->strings["You need to export your account from the old server and upload it here. We will recreate your old account here with all your contacts. We will try also to inform your friends that you moved here."] = ""; -$a->strings["This feature is experimental. We can't import contacts from the OStatus network (statusnet/identi.ca) or from Diaspora"] = ""; -$a->strings["Account file"] = ""; -$a->strings["To export your account, go to \"Settings->Export your personal data\" and select \"Export account\""] = ""; -$a->strings["Item not available."] = "Atriði ekki í boði."; -$a->strings["Item was not found."] = "Atriði fannst ekki"; $a->strings["Delete this item?"] = "Eyða þessu atriði?"; -$a->strings["show fewer"] = "sýna færri"; -$a->strings["Update %s failed. See error logs."] = "Uppfærsla á %s mistókst. Sjá villu skrá."; +$a->strings["Comment"] = "Athugasemd"; +$a->strings["show more"] = "birta meira"; +$a->strings["show fewer"] = "birta minna"; +$a->strings["Update %s failed. See error logs."] = "Uppfærsla á %s mistókst. Skoðaðu villuannál."; $a->strings["Create a New Account"] = "Stofna nýjan notanda"; +$a->strings["Register"] = "Nýskrá"; $a->strings["Logout"] = "Útskrá"; -$a->strings["Nickname or Email address: "] = "Gælunafn eða póstfang:"; -$a->strings["Password: "] = "Aðgangsorð:"; -$a->strings["Remember me"] = ""; -$a->strings["Or login using OpenID: "] = "Eða auðkenna með OpenID:"; +$a->strings["Login"] = "Innskrá"; +$a->strings["Nickname or Email: "] = "Gælunafn eða póstfang: "; +$a->strings["Password: "] = "Aðgangsorð: "; +$a->strings["Remember me"] = "Muna eftir mér"; +$a->strings["Or login using OpenID: "] = "Eða auðkenna með OpenID: "; $a->strings["Forgot your password?"] = "Gleymt lykilorð?"; -$a->strings["Website Terms of Service"] = ""; -$a->strings["terms of service"] = ""; -$a->strings["Website Privacy Policy"] = ""; -$a->strings["privacy policy"] = ""; -$a->strings["Requested account is not available."] = ""; -$a->strings["Edit profile"] = "Breyta forsíðu"; -$a->strings["Message"] = ""; -$a->strings["Profiles"] = "Forsíður"; -$a->strings["Manage/edit profiles"] = "Sýsla með forsíður"; -$a->strings["Network:"] = ""; -$a->strings["g A l F d"] = ""; -$a->strings["F d"] = ""; -$a->strings["[today]"] = "[í dag]"; -$a->strings["Birthday Reminders"] = "Afmælis áminningar"; -$a->strings["Birthdays this week:"] = "Afmæli í þessari viku:"; -$a->strings["[No description]"] = "[Engin lýsing]"; -$a->strings["Event Reminders"] = "Atburða áminningar"; -$a->strings["Events this week:"] = "Atburðir vikunnar:"; -$a->strings["Status"] = "Staða"; -$a->strings["Status Messages and Posts"] = "Stöðu skilaboð og færslur"; -$a->strings["Profile Details"] = "Forsíðu upplýsingar"; -$a->strings["Videos"] = ""; -$a->strings["Events and Calendar"] = "Atburðir og dagskrá"; -$a->strings["Only You Can See This"] = "Aðeins þú sérð þetta"; -$a->strings["This entry was edited"] = ""; -$a->strings["ignore thread"] = ""; -$a->strings["unignore thread"] = ""; -$a->strings["toggle ignore status"] = ""; -$a->strings["ignored"] = ""; -$a->strings["Categories:"] = "Flokkar:"; -$a->strings["Filed under:"] = "Skráð undir:"; -$a->strings["via"] = ""; -$a->strings["\n\t\t\tThe friendica developers released update %s recently,\n\t\t\tbut when I tried to install it, something went terribly wrong.\n\t\t\tThis needs to be fixed soon and I can't do it alone. Please contact a\n\t\t\tfriendica developer if you can not help me on your own. My database might be invalid."] = ""; -$a->strings["The error message is\n[pre]%s[/pre]"] = ""; -$a->strings["Errors encountered creating database tables."] = "Villur komu upp við að stofna töflur í gagnagrunn."; -$a->strings["Errors encountered performing database changes."] = ""; -$a->strings["Logged out."] = "Útskráður"; -$a->strings["We encountered a problem while logging in with the OpenID you provided. Please check the correct spelling of the ID."] = ""; -$a->strings["The error message was:"] = ""; +$a->strings["Password Reset"] = "Endurstilling aðgangsorðs"; +$a->strings["Website Terms of Service"] = "Þjónustuskilmálar vefsvæðis"; +$a->strings["terms of service"] = "þjónustuskilmálar"; +$a->strings["Website Privacy Policy"] = "Persónuverndarstefna"; +$a->strings["privacy policy"] = "persónuverndarstefna"; +$a->strings["Miscellaneous"] = "Ýmislegt"; +$a->strings["Birthday:"] = "Afmælisdagur:"; +$a->strings["Age: "] = "Aldur: "; +$a->strings["YYYY-MM-DD or MM-DD"] = "ÁÁÁÁ-MM-DD eða MM-DD"; +$a->strings["never"] = "aldrei"; +$a->strings["less than a second ago"] = "fyrir minna en sekúndu"; +$a->strings["year"] = "ár"; +$a->strings["years"] = "ár"; +$a->strings["month"] = "mánuður"; +$a->strings["months"] = "mánuðir"; +$a->strings["week"] = "vika"; +$a->strings["weeks"] = "vikur"; +$a->strings["day"] = "dagur"; +$a->strings["days"] = "dagar"; +$a->strings["hour"] = "klukkustund"; +$a->strings["hours"] = "klukkustundir"; +$a->strings["minute"] = "mínúta"; +$a->strings["minutes"] = "mínútur"; +$a->strings["second"] = "sekúnda"; +$a->strings["seconds"] = "sekúndur"; +$a->strings["%1\$d %2\$s ago"] = "Fyrir %1\$d %2\$s síðan"; +$a->strings["%s's birthday"] = "Afmælisdagur %s"; +$a->strings["Happy Birthday %s"] = "Til hamingju með afmælið %s"; $a->strings["Add New Contact"] = "Bæta við tengilið"; $a->strings["Enter address or web location"] = "Settu inn slóð"; $a->strings["Example: bob@example.com, http://example.com/barbara"] = "Dæmi: gudmundur@simnet.is, http://simnet.is/gudmundur"; +$a->strings["Connect"] = "Tengjast"; $a->strings["%d invitation available"] = array( 0 => "%d boðskort í boði", 1 => "%d boðskort í boði", @@ -1305,152 +59,244 @@ $a->strings["Find People"] = "Finna fólk"; $a->strings["Enter name or interest"] = "Settu inn nafn eða áhugamál"; $a->strings["Connect/Follow"] = "Tengjast/fylgja"; $a->strings["Examples: Robert Morgenstein, Fishing"] = "Dæmi: Jón Jónsson, Veiði"; +$a->strings["Find"] = "Finna"; +$a->strings["Friend Suggestions"] = "Vina uppástungur"; $a->strings["Similar Interests"] = "Svipuð áhugamál"; $a->strings["Random Profile"] = ""; $a->strings["Invite Friends"] = "Bjóða vinum aðgang"; $a->strings["Networks"] = "Net"; $a->strings["All Networks"] = "Öll net"; -$a->strings["Saved Folders"] = ""; -$a->strings["Everything"] = ""; -$a->strings["Categories"] = ""; -$a->strings["General Features"] = ""; -$a->strings["Multiple Profiles"] = ""; -$a->strings["Ability to create multiple profiles"] = ""; -$a->strings["Post Composition Features"] = ""; -$a->strings["Richtext Editor"] = ""; -$a->strings["Enable richtext editor"] = ""; -$a->strings["Post Preview"] = ""; -$a->strings["Allow previewing posts and comments before publishing them"] = ""; -$a->strings["Auto-mention Forums"] = ""; -$a->strings["Add/remove mention when a fourm page is selected/deselected in ACL window."] = ""; -$a->strings["Network Sidebar Widgets"] = ""; -$a->strings["Search by Date"] = ""; -$a->strings["Ability to select posts by date ranges"] = ""; -$a->strings["Group Filter"] = ""; -$a->strings["Enable widget to display Network posts only from selected group"] = ""; -$a->strings["Network Filter"] = ""; -$a->strings["Enable widget to display Network posts only from selected network"] = ""; -$a->strings["Save search terms for re-use"] = ""; -$a->strings["Network Tabs"] = ""; -$a->strings["Network Personal Tab"] = ""; -$a->strings["Enable tab to display only Network posts that you've interacted on"] = ""; -$a->strings["Network New Tab"] = ""; -$a->strings["Enable tab to display only new Network posts (from the last 12 hours)"] = ""; -$a->strings["Network Shared Links Tab"] = ""; -$a->strings["Enable tab to display only Network posts with links in them"] = ""; -$a->strings["Post/Comment Tools"] = ""; -$a->strings["Multiple Deletion"] = ""; -$a->strings["Select and delete multiple posts/comments at once"] = ""; -$a->strings["Edit Sent Posts"] = ""; -$a->strings["Edit and correct posts and comments after sending"] = ""; -$a->strings["Tagging"] = ""; -$a->strings["Ability to tag existing posts"] = ""; -$a->strings["Post Categories"] = ""; -$a->strings["Add categories to your posts"] = ""; -$a->strings["Ability to file posts under folders"] = ""; -$a->strings["Dislike Posts"] = ""; -$a->strings["Ability to dislike posts/comments"] = ""; -$a->strings["Star Posts"] = ""; -$a->strings["Ability to mark special posts with a star indicator"] = ""; -$a->strings["Mute Post Notifications"] = ""; -$a->strings["Ability to mute notifications for a thread"] = ""; -$a->strings["Connect URL missing."] = "Tengi slóð vantar."; -$a->strings["This site is not configured to allow communications with other networks."] = "Þessi vefur er ekki uppsettur til að leyfa samskipti við önnur samfélagsnet."; -$a->strings["No compatible communication protocols or feeds were discovered."] = "Enginn samhæfur samskipta staðall né straumar fundust."; -$a->strings["The profile address specified does not provide adequate information."] = "Uppgefin forsíðu slóð eru ekki næganlegar upplýsingar."; -$a->strings["An author or name was not found."] = "Höfundur eða nafn fannst ekki."; -$a->strings["No browser URL could be matched to this address."] = "Engin vefslóð passaði við þessa slóð. "; -$a->strings["Unable to match @-style Identity Address with a known protocol or email contact."] = ""; -$a->strings["Use mailto: in front of address to force email check."] = ""; -$a->strings["The profile address specified belongs to a network which has been disabled on this site."] = "Þessi forsíðu slóð tilheyrir neti sem er bannað á þessum vef."; -$a->strings["Limited profile. This person will be unable to receive direct/personal notifications from you."] = "Takmörkuð forsíða. Þessi tengiliður mun ekki getað tekið á móti beinum/einka tilkynningum frá þér."; -$a->strings["Unable to retrieve contact information."] = "Ekki hægt að sækja tengiliðs upplýsingar."; -$a->strings["following"] = "fylgist með"; -$a->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."] = "Hóp sem var eytt hefur verið endurlífgaður. Færslur sem þegar voru til geta mögulega farið á hópinn og framtíðar meðlimir. Ef þetta er ekki það sem þú vilt, þá þarftu að búa til nýjan hóp með öðru nafni."; -$a->strings["Default privacy group for new contacts"] = ""; -$a->strings["Everybody"] = "Allir"; -$a->strings["edit"] = "breyta"; -$a->strings["Edit group"] = "Breyta hóp"; -$a->strings["Create a new group"] = "Stofna nýjan hóp"; -$a->strings["Contacts not in any group"] = "Tengiliðir ekki í neinum hópum"; -$a->strings["Miscellaneous"] = "Ýmislegt"; -$a->strings["year"] = "ár"; -$a->strings["month"] = "mánuður"; -$a->strings["day"] = "dagur"; -$a->strings["never"] = "aldrei"; -$a->strings["less than a second ago"] = "fyrir minna en sekúndu"; -$a->strings["years"] = "ár"; -$a->strings["months"] = "mánuðir"; -$a->strings["week"] = "vika"; -$a->strings["weeks"] = "vikur"; -$a->strings["days"] = "dagar"; -$a->strings["hour"] = "klukkustund"; -$a->strings["hours"] = "klukkustundir"; -$a->strings["minute"] = "mínúta"; -$a->strings["minutes"] = "mínútur"; -$a->strings["second"] = "sekúnda"; -$a->strings["seconds"] = "sekúndur"; -$a->strings["%1\$d %2\$s ago"] = ""; -$a->strings["%s's birthday"] = ""; -$a->strings["Happy Birthday %s"] = ""; -$a->strings["Visible to everybody"] = "Sjáanlegt öllum"; -$a->strings["show"] = "sýna"; -$a->strings["don't show"] = "fela"; -$a->strings["[no subject]"] = "[ekkert efni]"; -$a->strings["stopped following"] = "hætt að fylgja"; -$a->strings["Poke"] = ""; -$a->strings["View Status"] = ""; -$a->strings["View Profile"] = ""; -$a->strings["View Photos"] = ""; -$a->strings["Network Posts"] = ""; -$a->strings["Edit Contact"] = ""; -$a->strings["Drop Contact"] = "Henda tengilið"; -$a->strings["Send PM"] = "Senda einkaboð"; +$a->strings["Saved Folders"] = "Vistaðar möppur"; +$a->strings["Everything"] = "Allt"; +$a->strings["Categories"] = "Flokkar"; +$a->strings["%d contact in common"] = array( + 0 => "%d tengiliður sameiginlegur", + 1 => "%d tengiliðir sameiginlegir", +); +$a->strings["Friendica Notification"] = "Friendica tilkynning"; +$a->strings["Thank You,"] = "Takk fyrir,"; +$a->strings["%s Administrator"] = "Kerfisstjóri %s"; +$a->strings["%1\$s, %2\$s Administrator"] = "%1\$s, %2\$s kerfisstjóri"; +$a->strings["noreply"] = "ekki svara"; +$a->strings["%s "] = "%s "; +$a->strings["[Friendica:Notify] New mail received at %s"] = ""; +$a->strings["%1\$s sent you a new private message at %2\$s."] = ""; +$a->strings["%1\$s sent you %2\$s."] = "%1\$s sendi þér %2\$s."; +$a->strings["a private message"] = "einkaskilaboð"; +$a->strings["Please visit %s to view and/or reply to your private messages."] = "Farðu á %s til að skoða og/eða svara einkaskilaboðunum þínum."; +$a->strings["%1\$s commented on [url=%2\$s]a %3\$s[/url]"] = ""; +$a->strings["%1\$s commented on [url=%2\$s]%3\$s's %4\$s[/url]"] = ""; +$a->strings["%1\$s commented on [url=%2\$s]your %3\$s[/url]"] = ""; +$a->strings["[Friendica:Notify] Comment to conversation #%1\$d by %2\$s"] = ""; +$a->strings["%s commented on an item/conversation you have been following."] = "%s skrifaði athugasemd á færslu/samtal sem þú ert að fylgja."; +$a->strings["Please visit %s to view and/or reply to the conversation."] = "Farðu á %s til að skoða og/eða svara samtali."; +$a->strings["[Friendica:Notify] %s posted to your profile wall"] = ""; +$a->strings["%1\$s posted to your profile wall at %2\$s"] = ""; +$a->strings["%1\$s posted to [url=%2\$s]your wall[/url]"] = ""; +$a->strings["[Friendica:Notify] %s tagged you"] = ""; +$a->strings["%1\$s tagged you at %2\$s"] = ""; +$a->strings["%1\$s [url=%2\$s]tagged you[/url]."] = ""; +$a->strings["[Friendica:Notify] %s shared a new post"] = ""; +$a->strings["%1\$s shared a new post at %2\$s"] = ""; +$a->strings["%1\$s [url=%2\$s]shared a post[/url]."] = ""; +$a->strings["[Friendica:Notify] %1\$s poked you"] = "[Friendica:Notify] %1\$s potaði í þig"; +$a->strings["%1\$s poked you at %2\$s"] = "%1\$s potaði í þig %2\$s"; +$a->strings["%1\$s [url=%2\$s]poked you[/url]."] = ""; +$a->strings["[Friendica:Notify] %s tagged your post"] = ""; +$a->strings["%1\$s tagged your post at %2\$s"] = ""; +$a->strings["%1\$s tagged [url=%2\$s]your post[/url]"] = ""; +$a->strings["[Friendica:Notify] Introduction received"] = ""; +$a->strings["You've received an introduction from '%1\$s' at %2\$s"] = ""; +$a->strings["You've received [url=%1\$s]an introduction[/url] from %2\$s."] = ""; +$a->strings["You may visit their profile at %s"] = "Þú getur heimsótt síðuna þeirra á %s"; +$a->strings["Please visit %s to approve or reject the introduction."] = "Farðu á %s til að samþykkja eða hunsa þessa kynningu."; +$a->strings["[Friendica:Notify] A new person is sharing with you"] = ""; +$a->strings["%1\$s is sharing with you at %2\$s"] = ""; +$a->strings["[Friendica:Notify] You have a new follower"] = ""; +$a->strings["You have a new follower at %2\$s : %1\$s"] = ""; +$a->strings["[Friendica:Notify] Friend suggestion received"] = ""; +$a->strings["You've received a friend suggestion from '%1\$s' at %2\$s"] = ""; +$a->strings["You've received [url=%1\$s]a friend suggestion[/url] for %2\$s from %3\$s."] = ""; +$a->strings["Name:"] = "Nafn:"; +$a->strings["Photo:"] = "Mynd:"; +$a->strings["Please visit %s to approve or reject the suggestion."] = "Farðu á %s til að samþykkja eða hunsa þessa uppástungu."; +$a->strings["[Friendica:Notify] Connection accepted"] = "[Friendica:Notify] Tenging samþykkt"; +$a->strings["'%1\$s' has accepted your connection request at %2\$s"] = ""; +$a->strings["%2\$s has accepted your [url=%1\$s]connection request[/url]."] = ""; +$a->strings["You are now mutual friends and may exchange status updates, photos, and email without restriction."] = ""; +$a->strings["Please visit %s if you wish to make any changes to this relationship."] = ""; +$a->strings["'%1\$s' has chosen to accept you a \"fan\", which restricts some forms of communication - such as private messaging and some profile interactions. If this is a celebrity or community page, these settings were applied automatically."] = ""; +$a->strings["'%1\$s' may choose to extend this into a two-way or more permissive relationship in the future."] = ""; +$a->strings["Please visit %s if you wish to make any changes to this relationship."] = ""; +$a->strings["[Friendica System:Notify] registration request"] = "[Friendica System:Notify] beiðni um skráningu"; +$a->strings["You've received a registration request from '%1\$s' at %2\$s"] = ""; +$a->strings["You've received a [url=%1\$s]registration request[/url] from %2\$s."] = ""; +$a->strings["Full Name:\t%1\$s\\nSite Location:\t%2\$s\\nLogin Name:\t%3\$s (%4\$s)"] = ""; +$a->strings["Please visit %s to approve or reject the request."] = "Farðu á %s til að samþykkja eða hunsa þessa beiðni."; +$a->strings["Click here to upgrade."] = "Smelltu hér til að uppfæra."; +$a->strings["This action exceeds the limits set by your subscription plan."] = ""; +$a->strings["This action is not available under your subscription plan."] = ""; +$a->strings["Forums"] = "Spjallsvæði"; +$a->strings["External link to forum"] = "Ytri tengill á spjallsvæði"; +$a->strings["%1\$s likes %2\$s's %3\$s"] = "%1\$s líkar við %3\$s hjá %2\$s "; +$a->strings["status"] = "staða"; +$a->strings["Sharing notification from Diaspora network"] = "Tilkynning um að einhver deildi atriði á Diaspora netinu"; +$a->strings["Attachments:"] = "Viðhengi:"; +$a->strings["%s\\'s birthday"] = "Afmælisdagur %s"; +$a->strings["Error decoding account file"] = ""; +$a->strings["Error! No version data in file! This is not a Friendica account file?"] = ""; +$a->strings["Error! Cannot check nickname"] = ""; +$a->strings["User '%s' already exists on this server!"] = ""; +$a->strings["User creation error"] = ""; +$a->strings["User profile creation error"] = ""; +$a->strings["%d contact not imported"] = array( + 0 => "", + 1 => "", +); +$a->strings["Done. You can now login with your username and password"] = ""; +$a->strings["Cannot locate DNS info for database server '%s'"] = "Get ekki flett upp DNS upplýsingum fyrir gagnagrunnsþjón '%s'"; +$a->strings["l F d, Y \\@ g:i A"] = ""; +$a->strings["Starts:"] = "Byrjar:"; +$a->strings["Finishes:"] = "Endar:"; +$a->strings["Location:"] = "Staðsetning:"; +$a->strings["Sun"] = "Sun"; +$a->strings["Mon"] = "Mán"; +$a->strings["Tue"] = "Þri"; +$a->strings["Wed"] = "Mið"; +$a->strings["Thu"] = "Fim"; +$a->strings["Fri"] = "Fös"; +$a->strings["Sat"] = "Lau"; +$a->strings["Sunday"] = "Sunnudagur"; +$a->strings["Monday"] = "Mánudagur"; +$a->strings["Tuesday"] = "Þriðjudagur"; +$a->strings["Wednesday"] = "Miðvikudagur"; +$a->strings["Thursday"] = "Fimmtudagur"; +$a->strings["Friday"] = "Föstudagur"; +$a->strings["Saturday"] = "Laugardagur"; +$a->strings["Jan"] = "Jan"; +$a->strings["Feb"] = "Feb"; +$a->strings["Mar"] = "Mar"; +$a->strings["Apr"] = "Apr"; +$a->strings["May"] = "Maí"; +$a->strings["Jun"] = "Jún"; +$a->strings["Jul"] = "Júl"; +$a->strings["Aug"] = "Ágú"; +$a->strings["Sept"] = "Sept"; +$a->strings["Oct"] = "Okt"; +$a->strings["Nov"] = "Nóv"; +$a->strings["Dec"] = "Des"; +$a->strings["January"] = "Janúar"; +$a->strings["February"] = "Febrúar"; +$a->strings["March"] = "Mars"; +$a->strings["April"] = "Apríl"; +$a->strings["June"] = "Júní"; +$a->strings["July"] = "Júlí"; +$a->strings["August"] = "Ágúst"; +$a->strings["September"] = "September"; +$a->strings["October"] = "Október"; +$a->strings["November"] = "Nóvember"; +$a->strings["December"] = "Desember"; +$a->strings["today"] = "í dag"; +$a->strings["l, F j"] = ""; +$a->strings["Edit event"] = "Breyta atburð"; +$a->strings["link to source"] = "slóð á heimild"; +$a->strings["Export"] = "Flytja út"; +$a->strings["Export calendar as ical"] = "Flytja dagatal út sem ICAL"; +$a->strings["Export calendar as csv"] = "Flytja dagatal út sem CSV"; $a->strings["Welcome "] = "Velkomin(n)"; -$a->strings["Please upload a profile photo."] = "Vinsamlegast hlaðið inn forsíðu mynd."; +$a->strings["Please upload a profile photo."] = "Gerðu svo vel að hlaða inn forsíðumynd."; $a->strings["Welcome back "] = "Velkomin(n) aftur"; $a->strings["The form security token was not correct. This probably happened because the form has been opened for too long (>3 hours) before submitting it."] = ""; -$a->strings["event"] = "atburður"; -$a->strings["%1\$s poked %2\$s"] = ""; -$a->strings["poked"] = ""; -$a->strings["post/item"] = ""; -$a->strings["%1\$s marked %2\$s's %3\$s as favorite"] = ""; -$a->strings["remove"] = ""; -$a->strings["Delete Selected Items"] = "Eyða völdum færslum"; -$a->strings["Follow Thread"] = ""; -$a->strings["%s likes this."] = "%s líkar þetta."; -$a->strings["%s doesn't like this."] = "%s mislíkar þetta."; -$a->strings["%2\$d people like this"] = ""; -$a->strings["%2\$d people don't like this"] = ""; -$a->strings["and"] = "og"; -$a->strings[", and %d other people"] = ", og %d öðrum"; -$a->strings["%s like this."] = "%s líkar þetta."; -$a->strings["%s don't like this."] = "%s mislíkar þetta."; -$a->strings["Visible to everybody"] = "Sjáanlegt öllum"; -$a->strings["Please enter a video link/URL:"] = "Settu inn myndbandshlekkur:"; -$a->strings["Please enter an audio link/URL:"] = "Settu inn hlekk á hljóðskrá:"; -$a->strings["Tag term:"] = "Merka með:"; -$a->strings["Where are you right now?"] = "Hvar ert þú núna?"; -$a->strings["Delete item(s)?"] = ""; -$a->strings["Post to Email"] = "Senda skilaboð á tölvupóst"; -$a->strings["Connectors disabled, since \"%s\" is enabled."] = ""; -$a->strings["permissions"] = "aðgangsstýring"; -$a->strings["Post to Groups"] = ""; -$a->strings["Post to Contacts"] = ""; -$a->strings["Private post"] = ""; -$a->strings["view full size"] = "Skoða í fullri stærð"; -$a->strings["newer"] = ""; -$a->strings["older"] = ""; +$a->strings["Male"] = "Karl"; +$a->strings["Female"] = "Kona"; +$a->strings["Currently Male"] = "Karlmaður í augnablikinu"; +$a->strings["Currently Female"] = "Kvenmaður í augnablikinu"; +$a->strings["Mostly Male"] = "Aðallega karlmaður"; +$a->strings["Mostly Female"] = "Aðallega kvenmaður"; +$a->strings["Transgender"] = "Kyngervingur"; +$a->strings["Intersex"] = "Hvorugkyn"; +$a->strings["Transsexual"] = "Kynskiptingur"; +$a->strings["Hermaphrodite"] = "Tvíkynja"; +$a->strings["Neuter"] = "Hvorukyn"; +$a->strings["Non-specific"] = "Ekki ákveðið"; +$a->strings["Other"] = "Annað"; +$a->strings["Undecided"] = array( + 0 => "Óviss", + 1 => "Óvissir", +); +$a->strings["Males"] = "Karlar"; +$a->strings["Females"] = "Konur"; +$a->strings["Gay"] = "Hommi"; +$a->strings["Lesbian"] = "Lesbía"; +$a->strings["No Preference"] = "Til í allt"; +$a->strings["Bisexual"] = "Tvíkynhneigð/ur"; +$a->strings["Autosexual"] = "Sjálfkynhneigð/ur"; +$a->strings["Abstinent"] = "Skírlíf/ur"; +$a->strings["Virgin"] = "Hrein mey/Hreinn sveinn"; +$a->strings["Deviant"] = "Óþekkur"; +$a->strings["Fetish"] = "Blæti"; +$a->strings["Oodles"] = "Mikið af því"; +$a->strings["Nonsexual"] = "Engin kynhneigð"; +$a->strings["Single"] = "Einhleyp/ur"; +$a->strings["Lonely"] = "Einmanna"; +$a->strings["Available"] = "Á lausu"; +$a->strings["Unavailable"] = "Frátekin/n"; +$a->strings["Has crush"] = "Er skotin(n)"; +$a->strings["Infatuated"] = ""; +$a->strings["Dating"] = "Deita"; +$a->strings["Unfaithful"] = "Ótrú/r"; +$a->strings["Sex Addict"] = "Kynlífsfíkill"; +$a->strings["Friends"] = "Vinir"; +$a->strings["Friends/Benefits"] = "Vinir með meiru"; +$a->strings["Casual"] = "Lauslát/ur"; +$a->strings["Engaged"] = "Trúlofuð/Trúlofaður"; +$a->strings["Married"] = "Gift/ur"; +$a->strings["Imaginarily married"] = ""; +$a->strings["Partners"] = "Félagar"; +$a->strings["Cohabiting"] = "Í sambúð"; +$a->strings["Common law"] = "Löggilt sambúð"; +$a->strings["Happy"] = "Hamingjusöm/Hamingjusamur"; +$a->strings["Not looking"] = "Ekki að leita"; +$a->strings["Swinger"] = "Svingari"; +$a->strings["Betrayed"] = "Svikin/n"; +$a->strings["Separated"] = "Skilin/n að borði og sæng"; +$a->strings["Unstable"] = "Óstabíll"; +$a->strings["Divorced"] = "Fráskilin/n"; +$a->strings["Imaginarily divorced"] = ""; +$a->strings["Widowed"] = "Ekkja/Ekkill"; +$a->strings["Uncertain"] = "Óviss"; +$a->strings["It's complicated"] = "Þetta er flókið"; +$a->strings["Don't care"] = "Gæti ekki verið meira sama"; +$a->strings["Ask me"] = "Spurðu mig"; +$a->strings["[Name Withheld]"] = "[Nafn ekki sýnt]"; +$a->strings["Item not found."] = "Atriði fannst ekki."; +$a->strings["Do you really want to delete this item?"] = "Viltu í alvörunni eyða þessu atriði?"; +$a->strings["Yes"] = "Já"; +$a->strings["Cancel"] = "Hætta við"; +$a->strings["Permission denied."] = "Heimild ekki veitt."; +$a->strings["Archives"] = "Safnskrár"; +$a->strings["newer"] = "nýrri"; +$a->strings["older"] = "eldri"; $a->strings["prev"] = "á undan"; $a->strings["first"] = "fremsta"; $a->strings["last"] = "síðasta"; $a->strings["next"] = "næsta"; +$a->strings["Loading more entries..."] = "Hleð inn fleiri færslum..."; +$a->strings["The end"] = "Endir"; $a->strings["No contacts"] = "Engir tengiliðir"; $a->strings["%d Contact"] = array( - 0 => "%d Tengiliður", - 1 => "%d Tengiliðir", + 0 => "%d tengiliður", + 1 => "%d tengiliðir", ); -$a->strings["poke"] = ""; +$a->strings["View Contacts"] = "Skoða tengiliði"; +$a->strings["Search"] = "Leita"; +$a->strings["Save"] = "Vista"; +$a->strings["@name, !forum, #tags, content"] = "@nafn, !spjallsvæði, #merki, innihald"; +$a->strings["Full Text"] = "Allur textinn"; +$a->strings["Tags"] = "Merki"; +$a->strings["Contacts"] = "Tengiliðir"; +$a->strings["poke"] = "pota"; +$a->strings["poked"] = "potaði"; $a->strings["ping"] = ""; $a->strings["pinged"] = ""; $a->strings["prod"] = ""; @@ -1481,50 +327,220 @@ $a->strings["frustrated"] = ""; $a->strings["motivated"] = ""; $a->strings["relaxed"] = ""; $a->strings["surprised"] = ""; -$a->strings["Monday"] = "Mánudagur"; -$a->strings["Tuesday"] = "Þriðjudagur"; -$a->strings["Wednesday"] = "Miðvikudagur"; -$a->strings["Thursday"] = "Fimmtudagur"; -$a->strings["Friday"] = "Föstudagur"; -$a->strings["Saturday"] = "Laugardagur"; -$a->strings["Sunday"] = "Sunnudagur"; -$a->strings["January"] = "Janúar"; -$a->strings["February"] = "Febrúar"; -$a->strings["March"] = "Mars"; -$a->strings["April"] = "Apríl"; -$a->strings["May"] = "Maí"; -$a->strings["June"] = "Júní"; -$a->strings["July"] = "Júlí"; -$a->strings["August"] = "Ágúst"; -$a->strings["September"] = "September"; -$a->strings["October"] = "Október"; -$a->strings["November"] = "Nóvember"; -$a->strings["December"] = "Desember"; +$a->strings["View Video"] = "Skoða myndskeið"; $a->strings["bytes"] = "bæti"; $a->strings["Click to open/close"] = ""; -$a->strings["default"] = "sjálfgefið"; -$a->strings["Select an alternate language"] = "Velja annað tungumál"; -$a->strings["activity"] = ""; +$a->strings["View on separate page"] = ""; +$a->strings["view on separate page"] = ""; +$a->strings["event"] = "atburður"; +$a->strings["photo"] = "mynd"; +$a->strings["activity"] = "virkni"; +$a->strings["comment"] = array( + 0 => "athugasemd", + 1 => "athugasemdir", +); $a->strings["post"] = ""; $a->strings["Item filed"] = ""; +$a->strings["%1\$s doesn't like %2\$s's %3\$s"] = "%1\$s líkar ekki við %3\$s hjá %2\$s "; +$a->strings["%1\$s attends %2\$s's %3\$s"] = ""; +$a->strings["%1\$s doesn't attend %2\$s's %3\$s"] = ""; +$a->strings["%1\$s attends maybe %2\$s's %3\$s"] = ""; +$a->strings["%1\$s is now friends with %2\$s"] = "Núna er %1\$s vinur %2\$s"; +$a->strings["%1\$s poked %2\$s"] = "%1\$s potaði í %2\$s"; +$a->strings["%1\$s is currently %2\$s"] = ""; +$a->strings["%1\$s tagged %2\$s's %3\$s with %4\$s"] = "%1\$s merkti %2\$s's %3\$s með %4\$s"; +$a->strings["post/item"] = ""; +$a->strings["%1\$s marked %2\$s's %3\$s as favorite"] = ""; +$a->strings["Likes"] = "Líkar"; +$a->strings["Dislikes"] = "Mislíkar"; +$a->strings["Attending"] = array( + 0 => "Mætir", + 1 => "Mæta", +); +$a->strings["Not attending"] = "Mætir ekki"; +$a->strings["Might attend"] = "Gæti mætt"; +$a->strings["Select"] = "Velja"; +$a->strings["Delete"] = "Eyða"; +$a->strings["View %s's profile @ %s"] = "Birta forsíðu %s hjá %s"; +$a->strings["Categories:"] = "Flokkar:"; +$a->strings["Filed under:"] = "Skráð undir:"; +$a->strings["%s from %s"] = "%s til %s"; +$a->strings["View in context"] = "Birta í samhengi"; +$a->strings["Please wait"] = "Hinkraðu aðeins"; +$a->strings["remove"] = "fjarlægja"; +$a->strings["Delete Selected Items"] = "Eyða völdum færslum"; +$a->strings["Follow Thread"] = "Fylgja þræði"; +$a->strings["View Status"] = "Skoða stöðu"; +$a->strings["View Profile"] = "Skoða forsíðu"; +$a->strings["View Photos"] = "Skoða myndir"; +$a->strings["Network Posts"] = ""; +$a->strings["Edit Contact"] = "Breyta tengilið"; +$a->strings["Send PM"] = "Senda einkaboð"; +$a->strings["Poke"] = "Pota"; +$a->strings["%s likes this."] = "%s líkar þetta."; +$a->strings["%s doesn't like this."] = "%s mislíkar þetta."; +$a->strings["%s attends."] = "%s mætir."; +$a->strings["%s doesn't attend."] = "%s mætir ekki."; +$a->strings["%s attends maybe."] = "%s mætir kannski."; +$a->strings["and"] = "og"; +$a->strings[", and %d other people"] = ", og %d öðrum"; +$a->strings["%2\$d people like this"] = ""; +$a->strings["%s like this."] = ""; +$a->strings["%2\$d people don't like this"] = ""; +$a->strings["%s don't like this."] = ""; +$a->strings["%2\$d people attend"] = ""; +$a->strings["%s attend."] = ""; +$a->strings["%2\$d people don't attend"] = ""; +$a->strings["%s don't attend."] = ""; +$a->strings["%2\$d people anttend maybe"] = ""; +$a->strings["%s anttend maybe."] = ""; +$a->strings["Visible to everybody"] = "Sjáanlegt öllum"; +$a->strings["Please enter a link URL:"] = "Sláðu inn slóð:"; +$a->strings["Please enter a video link/URL:"] = "Settu inn slóð á myndskeið:"; +$a->strings["Please enter an audio link/URL:"] = "Settu inn slóð á hljóðskrá:"; +$a->strings["Tag term:"] = "Merka með:"; +$a->strings["Save to Folder:"] = "Vista í möppu:"; +$a->strings["Where are you right now?"] = "Hvar ert þú núna?"; +$a->strings["Delete item(s)?"] = "Eyða atriði/atriðum?"; +$a->strings["Share"] = "Deila"; +$a->strings["Upload photo"] = "Hlaða upp mynd"; +$a->strings["upload photo"] = "Hlaða upp mynd"; +$a->strings["Attach file"] = "Bæta við skrá"; +$a->strings["attach file"] = "Hengja skrá við"; +$a->strings["Insert web link"] = "Setja inn vefslóð"; +$a->strings["web link"] = "vefslóð"; +$a->strings["Insert video link"] = "Setja inn slóð á myndskeið"; +$a->strings["video link"] = "slóð á myndskeið"; +$a->strings["Insert audio link"] = "Setja inn slóð á hljóðskrá"; +$a->strings["audio link"] = "slóð á hljóðskrá"; +$a->strings["Set your location"] = "Veldu staðsetningu þína"; +$a->strings["set location"] = "stilla staðsetningu"; +$a->strings["Clear browser location"] = "Hreinsa staðsetningu í vafra"; +$a->strings["clear location"] = "hreinsa staðsetningu"; +$a->strings["Set title"] = "Setja titil"; +$a->strings["Categories (comma-separated list)"] = "Flokkar (listi aðskilinn með kommum)"; +$a->strings["Permission settings"] = "Stillingar aðgangsheimilda"; +$a->strings["permissions"] = "aðgangsstýring"; +$a->strings["Public post"] = "Opinber færsla"; +$a->strings["Preview"] = "Forskoðun"; +$a->strings["Post to Groups"] = "Senda á hópa"; +$a->strings["Post to Contacts"] = "Senda á tengiliði"; +$a->strings["Private post"] = "Einkafærsla"; +$a->strings["Message"] = "Skilaboð"; +$a->strings["Browser"] = "Vafri"; +$a->strings["View all"] = "Skoða allt"; +$a->strings["Like"] = array( + 0 => "Líkar", + 1 => "Líkar", +); +$a->strings["Dislike"] = array( + 0 => "Mislíkar", + 1 => "Mislíkar", +); +$a->strings["Not Attending"] = array( + 0 => "Mæti ekki", + 1 => "Mæta ekki", +); +$a->strings["Requested account is not available."] = "Umbeðin forsíða er ekki til."; +$a->strings["Requested profile is not available."] = "Umbeðin forsíða ekki til."; +$a->strings["Edit profile"] = "Breyta forsíðu"; +$a->strings["Atom feed"] = "Atom fréttaveita"; +$a->strings["Profiles"] = "Forsíður"; +$a->strings["Manage/edit profiles"] = "Sýsla með forsíður"; +$a->strings["Change profile photo"] = "Breyta forsíðumynd"; +$a->strings["Create New Profile"] = "Stofna nýja forsíðu"; +$a->strings["Profile Image"] = "Forsíðumynd"; +$a->strings["visible to everybody"] = "sýnilegt öllum"; +$a->strings["Edit visibility"] = "Sýsla með sýnileika"; +$a->strings["Forum"] = "Spjallsvæði"; +$a->strings["Gender:"] = "Kyn:"; +$a->strings["Status:"] = "Staða:"; +$a->strings["Homepage:"] = "Heimasíða:"; +$a->strings["About:"] = "Um:"; +$a->strings["Network:"] = "Netkerfi:"; +$a->strings["g A l F d"] = ""; +$a->strings["F d"] = ""; +$a->strings["[today]"] = "[í dag]"; +$a->strings["Birthday Reminders"] = "Afmælisáminningar"; +$a->strings["Birthdays this week:"] = "Afmæli í þessari viku:"; +$a->strings["[No description]"] = "[Engin lýsing]"; +$a->strings["Event Reminders"] = "Atburðaáminningar"; +$a->strings["Events this week:"] = "Atburðir vikunnar:"; +$a->strings["Profile"] = "Forsíða"; +$a->strings["Full Name:"] = "Fullt nafn:"; +$a->strings["j F, Y"] = ""; +$a->strings["j F"] = ""; +$a->strings["Age:"] = "Aldur:"; +$a->strings["for %1\$d %2\$s"] = ""; +$a->strings["Sexual Preference:"] = "Kynhneigð:"; +$a->strings["Hometown:"] = "Heimabær:"; +$a->strings["Tags:"] = "Merki:"; +$a->strings["Political Views:"] = "Stórnmálaskoðanir:"; +$a->strings["Religion:"] = "Trúarskoðanir:"; +$a->strings["Hobbies/Interests:"] = "Áhugamál/Áhugasvið:"; +$a->strings["Likes:"] = "Líkar:"; +$a->strings["Dislikes:"] = "Mislíkar:"; +$a->strings["Contact information and Social Networks:"] = "Tengiliðaupplýsingar og samfélagsnet:"; +$a->strings["Musical interests:"] = "Tónlistaráhugi:"; +$a->strings["Books, literature:"] = "Bækur, bókmenntir:"; +$a->strings["Television:"] = "Sjónvarp:"; +$a->strings["Film/dance/culture/entertainment:"] = "Kvikmyndir/dans/menning/afþreying:"; +$a->strings["Love/Romance:"] = "Ást/rómantík:"; +$a->strings["Work/employment:"] = "Atvinna:"; +$a->strings["School/education:"] = "Skóli/menntun:"; +$a->strings["Forums:"] = "Spjallsvæði:"; +$a->strings["Basic"] = "Einfalt"; +$a->strings["Advanced"] = "Flóknari"; +$a->strings["Status"] = "Staða"; +$a->strings["Status Messages and Posts"] = "Stöðu skilaboð og færslur"; +$a->strings["Profile Details"] = "Forsíðu upplýsingar"; +$a->strings["Photos"] = "Myndir"; +$a->strings["Photo Albums"] = "Myndabækur"; +$a->strings["Videos"] = "Myndskeið"; +$a->strings["Events"] = "Atburðir"; +$a->strings["Events and Calendar"] = "Atburðir og dagskrá"; +$a->strings["Personal Notes"] = "Persónulegar glósur"; +$a->strings["Only You Can See This"] = "Aðeins þú sérð þetta"; +$a->strings[" on Last.fm"] = " á Last.fm"; +$a->strings["Disallowed profile URL."] = "Óleyfileg forsíðu slóð."; +$a->strings["Connect URL missing."] = "Tengislóð vantar."; +$a->strings["This site is not configured to allow communications with other networks."] = "Þessi vefur er ekki uppsettur til að leyfa samskipti við önnur samfélagsnet."; +$a->strings["No compatible communication protocols or feeds were discovered."] = "Engir samhæfðir samskiptastaðlar né fréttastraumar fundust."; +$a->strings["The profile address specified does not provide adequate information."] = "Uppgefin forsíðuslóð inniheldur ekki nægilegar upplýsingar."; +$a->strings["An author or name was not found."] = "Höfundur eða nafn fannst ekki."; +$a->strings["No browser URL could be matched to this address."] = "Engin vefslóð passaði við þetta vistfang."; +$a->strings["Unable to match @-style Identity Address with a known protocol or email contact."] = ""; +$a->strings["Use mailto: in front of address to force email check."] = ""; +$a->strings["The profile address specified belongs to a network which has been disabled on this site."] = "Þessi forsíðu slóð tilheyrir neti sem er bannað á þessum vef."; +$a->strings["Limited profile. This person will be unable to receive direct/personal notifications from you."] = "Takmörkuð forsíða. Þessi tengiliður mun ekki getað tekið á móti beinum/einka tilkynningum frá þér."; +$a->strings["Unable to retrieve contact information."] = "Ekki hægt að sækja tengiliðs upplýsingar."; +$a->strings["following"] = "fylgist með"; +$a->strings["stopped following"] = "hætt að fylgja"; +$a->strings["Drop Contact"] = "Henda tengilið"; +$a->strings["Embedded content"] = "Innbyggt efni"; +$a->strings["Embedding disabled"] = "Innfelling ekki leyfð"; $a->strings["Image/photo"] = "Mynd"; -$a->strings["%2\$s %3\$s"] = ""; -$a->strings["%s wrote the following post"] = ""; +$a->strings["%2\$s %3\$s"] = "%2\$s %3\$s"; $a->strings["$1 wrote:"] = "$1 skrifaði:"; $a->strings["Encrypted content"] = "Dulritað efni"; -$a->strings["(no subject)"] = "(ekkert efni)"; -$a->strings["noreply"] = "ekki svara"; -$a->strings["Cannot locate DNS info for database server '%s'"] = "Get ekki flett upp DNS upplýsingum fyrir gagnagrunns þjón '%s'"; $a->strings["Unknown | Not categorised"] = "Óþekkt | Ekki flokkað"; -$a->strings["Block immediately"] = "Hunsa samstundis"; -$a->strings["Shady, spammer, self-marketer"] = "Grunsamlegur, rusl sendari, auglýsandi"; -$a->strings["Known to me, but no opinion"] = "Ég þekki en hef ekki skoðun á"; -$a->strings["OK, probably harmless"] = "Í lagi, væntanlega saklaus"; +$a->strings["Block immediately"] = "Banna samstundis"; +$a->strings["Shady, spammer, self-marketer"] = "Grunsamlegur, ruslsendari, auglýsandi"; +$a->strings["Known to me, but no opinion"] = "Ég þekki þetta, en hef ekki skoðun á"; +$a->strings["OK, probably harmless"] = "Í lagi, væntanlega meinlaus"; $a->strings["Reputable, has my trust"] = "Gott orðspor, ég treysti þessu"; +$a->strings["Frequently"] = "Oft"; +$a->strings["Hourly"] = "Klukkustundar fresti"; +$a->strings["Twice daily"] = "Tvisvar á dag"; +$a->strings["Daily"] = "Daglega"; $a->strings["Weekly"] = "Vikulega"; $a->strings["Monthly"] = "Mánaðarlega"; +$a->strings["Friendica"] = "Friendica"; $a->strings["OStatus"] = "OStatus"; $a->strings["RSS/Atom"] = "RSS/Atom"; +$a->strings["Email"] = "Póstfang"; +$a->strings["Diaspora"] = "Diaspora"; +$a->strings["Facebook"] = "Facebook"; $a->strings["Zot!"] = "Zot!"; $a->strings["LinkedIn"] = "LinkedIn"; $a->strings["XMPP/IM"] = "XMPP/IM"; @@ -1532,262 +548,1471 @@ $a->strings["MySpace"] = "MySpace"; $a->strings["Google+"] = "Google+"; $a->strings["pump.io"] = "pump.io"; $a->strings["Twitter"] = "Twitter"; -$a->strings["Diaspora Connector"] = ""; -$a->strings["Statusnet"] = ""; -$a->strings["App.net"] = ""; -$a->strings[" on Last.fm"] = ""; -$a->strings["Starts:"] = "Byrjar:"; -$a->strings["Finishes:"] = "Endar:"; -$a->strings["j F, Y"] = ""; -$a->strings["j F"] = ""; -$a->strings["Birthday:"] = "Afmælisdagur:"; -$a->strings["Age:"] = "Aldur"; -$a->strings["for %1\$d %2\$s"] = ""; -$a->strings["Tags:"] = "Merki:"; -$a->strings["Religion:"] = "Trúarskoðanir:"; -$a->strings["Hobbies/Interests:"] = "Áhugamál/Áhugasvið:"; -$a->strings["Contact information and Social Networks:"] = "Tengiliðaupplýsingar og samfélagsnet:"; -$a->strings["Musical interests:"] = "Tónlistaráhugi:"; -$a->strings["Books, literature:"] = "Bækur, bókmenntir:"; -$a->strings["Television:"] = "Sjónvarp:"; -$a->strings["Film/dance/culture/entertainment:"] = "Kvikmyndir/dans/menning/afþreying:"; -$a->strings["Love/Romance:"] = "Ást/rómantík"; -$a->strings["Work/employment:"] = "Atvinna:"; -$a->strings["School/education:"] = "Skóli/menntun:"; -$a->strings["Click here to upgrade."] = ""; -$a->strings["This action exceeds the limits set by your subscription plan."] = ""; -$a->strings["This action is not available under your subscription plan."] = ""; -$a->strings["End this session"] = "Loka þessu innliti"; -$a->strings["Your posts and conversations"] = "Samtölin þín"; -$a->strings["Your profile page"] = "Forsíðan þín"; -$a->strings["Your photos"] = "Þínar myndir"; -$a->strings["Your videos"] = ""; -$a->strings["Your events"] = "Þínir atburðir"; -$a->strings["Personal notes"] = "Þínar einka glósur"; -$a->strings["Your personal notes"] = ""; -$a->strings["Sign in"] = "Innskrá"; -$a->strings["Home Page"] = "Heimasíða"; -$a->strings["Create an account"] = "Stofna notanda"; -$a->strings["Help and documentation"] = "Hjálp og leiðbeiningar"; -$a->strings["Apps"] = "Forr"; -$a->strings["Addon applications, utilities, games"] = "Viðbætur forrit, leikir"; -$a->strings["Search site content"] = "Leita í efni á vef"; -$a->strings["Conversations on this site"] = "Samtöl á þessum vef"; -$a->strings["Conversations on the network"] = ""; -$a->strings["Directory"] = "Tengiliðalisti"; -$a->strings["People directory"] = "Nafnaskrá"; -$a->strings["Information"] = ""; -$a->strings["Information about this friendica instance"] = ""; -$a->strings["Conversations from your friends"] = "Samtöl frá vinum"; -$a->strings["Network Reset"] = ""; -$a->strings["Load Network page with no filters"] = ""; -$a->strings["Friend Requests"] = "Vina beiðnir"; -$a->strings["See all notifications"] = ""; -$a->strings["Mark all system notifications seen"] = "Merkja allar tilkynningar sem séðar"; -$a->strings["Private mail"] = "Einka skilaboð"; -$a->strings["Inbox"] = "Innhólf"; -$a->strings["Outbox"] = "Úthólf"; -$a->strings["Manage"] = "Umsýsla"; -$a->strings["Manage other pages"] = "Sýsla með aðrar síður"; -$a->strings["Account settings"] = "Notenda stillingar"; -$a->strings["Manage/Edit Profiles"] = ""; -$a->strings["Manage/edit friends and contacts"] = "Sýsla með vini og tengiliði"; -$a->strings["Site setup and configuration"] = "Stillingar vefs"; -$a->strings["Navigation"] = ""; -$a->strings["Site map"] = ""; -$a->strings["User not found."] = ""; -$a->strings["Daily posting limit of %d posts reached. The post was rejected."] = ""; -$a->strings["Weekly posting limit of %d posts reached. The post was rejected."] = ""; -$a->strings["Monthly posting limit of %d posts reached. The post was rejected."] = ""; -$a->strings["There is no status with this id."] = ""; -$a->strings["There is no conversation with this id."] = ""; -$a->strings["Invalid request."] = ""; -$a->strings["Invalid item."] = ""; -$a->strings["Invalid action. "] = ""; -$a->strings["DB error"] = ""; +$a->strings["Diaspora Connector"] = "Diaspora tenging"; +$a->strings["GNU Social"] = "GNU Social"; +$a->strings["App.net"] = "App.net"; +$a->strings["Hubzilla/Redmatrix"] = "Hubzilla/Redmatrix"; +$a->strings["\n\t\t\tThe friendica developers released update %s recently,\n\t\t\tbut when I tried to install it, something went terribly wrong.\n\t\t\tThis needs to be fixed soon and I can't do it alone. Please contact a\n\t\t\tfriendica developer if you can not help me on your own. My database might be invalid."] = ""; +$a->strings["The error message is\n[pre]%s[/pre]"] = ""; +$a->strings["Errors encountered creating database tables."] = "Villur komu upp við að stofna töflur í gagnagrunn."; +$a->strings["Errors encountered performing database changes."] = ""; +$a->strings["Logged out."] = "Skráður út."; +$a->strings["Login failed."] = "Innskráning mistókst."; +$a->strings["We encountered a problem while logging in with the OpenID you provided. Please check the correct spelling of the ID."] = ""; +$a->strings["The error message was:"] = "Villumeldingin var:"; +$a->strings["view full size"] = "Skoða í fullri stærð"; +$a->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."] = "Hóp sem var eytt hefur verið endurlífgaður. Færslur sem þegar voru til geta mögulega farið á hópinn og framtíðar meðlimir. Ef þetta er ekki það sem þú vilt, þá þarftu að búa til nýjan hóp með öðru nafni."; +$a->strings["Default privacy group for new contacts"] = ""; +$a->strings["Everybody"] = "Allir"; +$a->strings["edit"] = "breyta"; +$a->strings["Groups"] = "Hópar"; +$a->strings["Edit groups"] = "Breyta hópum"; +$a->strings["Edit group"] = "Breyta hóp"; +$a->strings["Create a new group"] = "Stofna nýjan hóp"; +$a->strings["Group Name: "] = "Nafn hóps: "; +$a->strings["Contacts not in any group"] = "Tengiliðir ekki í neinum hópum"; +$a->strings["add"] = "bæta við"; +$a->strings["Wall Photos"] = "Veggmyndir"; +$a->strings["(no subject)"] = "(ekkert efni)"; +$a->strings["Passwords do not match. Password unchanged."] = "Aðgangsorð ber ekki saman. Aðgangsorð óbreytt."; $a->strings["An invitation is required."] = "Boðskort er skilyrði."; $a->strings["Invitation could not be verified."] = "Ekki hægt að sannreyna boðskort."; $a->strings["Invalid OpenID url"] = "OpenID slóð ekki til"; -$a->strings["Please enter the required information."] = "Vinsamlegast sláðu inn umbeðin gögn"; -$a->strings["Please use a shorter name."] = "Vinsamlegast notið styttra nafn"; -$a->strings["Name too short."] = "Nafn of stutt"; +$a->strings["Please enter the required information."] = "Settu inn umbeðnar upplýsingar."; +$a->strings["Please use a shorter name."] = "Notaðu styttra nafn."; +$a->strings["Name too short."] = "Nafn of stutt."; $a->strings["That doesn't appear to be your full (First Last) name."] = "Þetta virðist ekki vera fullt nafn (Jón Jónsson)."; $a->strings["Your email domain is not among those allowed on this site."] = "Póstþjónninn er ekki í lista yfir leyfða póstþjóna á þessum vef."; $a->strings["Not a valid email address."] = "Ekki gildt póstfang."; $a->strings["Cannot use that email."] = "Ekki hægt að nota þetta póstfang."; -$a->strings["Your \"nickname\" can only contain \"a-z\", \"0-9\", \"-\", and \"_\", and must also begin with a letter."] = "Gælunafnið má bara innihalda \"a-z\", \"0-9, \"-\", \"_\" og verður að byrja á staf."; +$a->strings["Your \"nickname\" can only contain \"a-z\", \"0-9\" and \"_\"."] = "Gælunafnið má bara innihalda \"a-z\", \"0-9, \"-\", \"_\"."; $a->strings["Nickname is already registered. Please choose another."] = "Gælunafn þegar skráð. Veldu annað."; -$a->strings["Nickname was once registered here and may not be re-used. Please choose another."] = ""; +$a->strings["Nickname was once registered here and may not be re-used. Please choose another."] = "Gælunafn hefur áður skráð hér og er ekki hægt að endurnýta. Veldu eitthvað annað."; $a->strings["SERIOUS ERROR: Generation of security keys failed."] = "VERULEGA ALVARLEG VILLA: Stofnun á öryggislyklum tókst ekki."; -$a->strings["An error occurred during registration. Please try again."] = "Villa kom upp við nýskráningu. Vinsamlegast reyndu aftur."; +$a->strings["An error occurred during registration. Please try again."] = "Villa kom upp við nýskráningu. Reyndu aftur."; +$a->strings["default"] = "sjálfgefið"; $a->strings["An error occurred creating your default profile. Please try again."] = "Villa kom upp við að stofna sjálfgefna forsíðu. Vinnsamlegast reyndu aftur."; -$a->strings["Friends"] = "Vinir"; +$a->strings["Profile Photos"] = "Forsíðumyndir"; $a->strings["\n\t\tDear %1\$s,\n\t\t\tThank you for registering at %2\$s. Your account has been created.\n\t"] = ""; $a->strings["\n\t\tThe login details are as follows:\n\t\t\tSite Location:\t%3\$s\n\t\t\tLogin Name:\t%1\$s\n\t\t\tPassword:\t%5\$s\n\n\t\tYou may change your password from your account \"Settings\" page after logging\n\t\tin.\n\n\t\tPlease take a few moments to review the other account settings on that page.\n\n\t\tYou may also wish to add some basic information to your default profile\n\t\t(on the \"Profiles\" page) so that other people can easily find you.\n\n\t\tWe recommend setting your full name, adding a profile photo,\n\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n\t\tperhaps what country you live in; if you do not wish to be more specific\n\t\tthan that.\n\n\t\tWe fully respect your right to privacy, and none of these items are necessary.\n\t\tIf you are new and do not know anybody here, they may help\n\t\tyou to make some new and interesting friends.\n\n\n\t\tThank you and welcome to %2\$s."] = ""; -$a->strings["Sharing notification from Diaspora network"] = "Tilkynning um að einhver deildi einhverju Diaspora netinu"; -$a->strings["Attachments:"] = "Viðhengi:"; -$a->strings["Do you really want to delete this item?"] = "Viltu í alvörunni eyða þessu atriði?"; -$a->strings["Archives"] = ""; -$a->strings["Male"] = "Karlmaður"; -$a->strings["Female"] = "Kvenmaður"; -$a->strings["Currently Male"] = "Karlmaður í augnablikinu"; -$a->strings["Currently Female"] = "Kvenmaður í augnablikinu"; -$a->strings["Mostly Male"] = "Aðallega karlmaður"; -$a->strings["Mostly Female"] = "Aðallega kvenmaður"; -$a->strings["Transgender"] = "Kynskiptingur"; -$a->strings["Intersex"] = "Hvorukin"; -$a->strings["Transsexual"] = "Kynskiptingur"; -$a->strings["Hermaphrodite"] = "Tvíkynhneigð(ur)"; -$a->strings["Neuter"] = "Hvorukyn"; -$a->strings["Non-specific"] = "Ekki ákveðið"; -$a->strings["Other"] = "Annað"; -$a->strings["Undecided"] = "Óviss"; -$a->strings["Males"] = "Karlmenn"; -$a->strings["Females"] = "Kvenmenn"; -$a->strings["Gay"] = "Samkynhneigður"; -$a->strings["Lesbian"] = "Lesbía"; -$a->strings["No Preference"] = "Til í allt"; -$a->strings["Bisexual"] = "Tvíkynhneigð/ur"; -$a->strings["Autosexual"] = "Sjálfkynhneigð/ur"; -$a->strings["Abstinent"] = "Skýrlíf/ur"; -$a->strings["Virgin"] = "Hrein mey/Hreinn sveinn"; -$a->strings["Deviant"] = "Óþekkur"; -$a->strings["Fetish"] = "Blæti"; -$a->strings["Oodles"] = "Mikið af því"; -$a->strings["Nonsexual"] = "Engin kynhneigð"; -$a->strings["Single"] = "Einhleyp/ur"; -$a->strings["Lonely"] = "Einmanna"; -$a->strings["Available"] = "Á lausu"; -$a->strings["Unavailable"] = "Frátekin/n"; -$a->strings["Has crush"] = "Er skotin(n)"; -$a->strings["Infatuated"] = ""; -$a->strings["Dating"] = "Deita"; -$a->strings["Unfaithful"] = "Ótrú/r"; -$a->strings["Sex Addict"] = "Kynlífsfíkill"; -$a->strings["Friends/Benefits"] = "Vinir með meiru"; -$a->strings["Casual"] = "Lauslát/ur"; -$a->strings["Engaged"] = "Trúlofuð/Trúlofaður"; -$a->strings["Married"] = "Gift/ur"; -$a->strings["Imaginarily married"] = ""; -$a->strings["Partners"] = "Félagar"; -$a->strings["Cohabiting"] = "Sambýlingur"; -$a->strings["Common law"] = "Löggilt sambúð"; -$a->strings["Happy"] = "Hamingjusöm/Hamingjusamur"; -$a->strings["Not looking"] = "Ekki að leita"; -$a->strings["Swinger"] = "Svingari"; -$a->strings["Betrayed"] = "Svikin/n"; -$a->strings["Separated"] = "Skilin/n að borði og sæng"; -$a->strings["Unstable"] = "Óstabíll"; -$a->strings["Divorced"] = "Fráskilin/n"; -$a->strings["Imaginarily divorced"] = ""; -$a->strings["Widowed"] = "Ekkja/Ekkill"; -$a->strings["Uncertain"] = "Óviss"; -$a->strings["It's complicated"] = "Þetta er flókið"; -$a->strings["Don't care"] = "Gæti ekki verið meira sama"; -$a->strings["Ask me"] = "Spurðu mig"; -$a->strings["Friendica Notification"] = "Friendica tilkynning"; -$a->strings["Thank You,"] = "Takk fyrir,"; -$a->strings["%s Administrator"] = "Kerfisstjóri %s"; -$a->strings["%s "] = ""; -$a->strings["[Friendica:Notify] New mail received at %s"] = ""; -$a->strings["%1\$s sent you a new private message at %2\$s."] = ""; -$a->strings["%1\$s sent you %2\$s."] = ""; -$a->strings["a private message"] = "einkaskilaboð"; -$a->strings["Please visit %s to view and/or reply to your private messages."] = "Farðu á %s til að skoða og/eða svara einkaskilaboðunum þínum."; -$a->strings["%1\$s commented on [url=%2\$s]a %3\$s[/url]"] = ""; -$a->strings["%1\$s commented on [url=%2\$s]%3\$s's %4\$s[/url]"] = ""; -$a->strings["%1\$s commented on [url=%2\$s]your %3\$s[/url]"] = ""; -$a->strings["[Friendica:Notify] Comment to conversation #%1\$d by %2\$s"] = ""; -$a->strings["%s commented on an item/conversation you have been following."] = "%s skrifaði athugasemd á færslu/samtal sem þú ert að fylgja."; -$a->strings["Please visit %s to view and/or reply to the conversation."] = "Farðu á %s til að skoða og/eða svara samtali."; -$a->strings["[Friendica:Notify] %s posted to your profile wall"] = ""; -$a->strings["%1\$s posted to your profile wall at %2\$s"] = ""; -$a->strings["%1\$s posted to [url=%2\$s]your wall[/url]"] = ""; -$a->strings["[Friendica:Notify] %s tagged you"] = ""; -$a->strings["%1\$s tagged you at %2\$s"] = ""; -$a->strings["%1\$s [url=%2\$s]tagged you[/url]."] = ""; -$a->strings["[Friendica:Notify] %s shared a new post"] = ""; -$a->strings["%1\$s shared a new post at %2\$s"] = ""; -$a->strings["%1\$s [url=%2\$s]shared a post[/url]."] = ""; -$a->strings["[Friendica:Notify] %1\$s poked you"] = ""; -$a->strings["%1\$s poked you at %2\$s"] = ""; -$a->strings["%1\$s [url=%2\$s]poked you[/url]."] = ""; -$a->strings["[Friendica:Notify] %s tagged your post"] = ""; -$a->strings["%1\$s tagged your post at %2\$s"] = ""; -$a->strings["%1\$s tagged [url=%2\$s]your post[/url]"] = ""; -$a->strings["[Friendica:Notify] Introduction received"] = ""; -$a->strings["You've received an introduction from '%1\$s' at %2\$s"] = ""; -$a->strings["You've received [url=%1\$s]an introduction[/url] from %2\$s."] = ""; -$a->strings["You may visit their profile at %s"] = "Þú getur heimsótt fórsíðuna á %s"; -$a->strings["Please visit %s to approve or reject the introduction."] = "Farðu á %s til að samþykkja eða hunsa þessa kynningu."; -$a->strings["[Friendica:Notify] A new person is sharing with you"] = ""; -$a->strings["%1\$s is sharing with you at %2\$s"] = ""; -$a->strings["[Friendica:Notify] You have a new follower"] = ""; -$a->strings["You have a new follower at %2\$s : %1\$s"] = ""; -$a->strings["[Friendica:Notify] Friend suggestion received"] = ""; -$a->strings["You've received a friend suggestion from '%1\$s' at %2\$s"] = ""; -$a->strings["You've received [url=%1\$s]a friend suggestion[/url] for %2\$s from %3\$s."] = ""; -$a->strings["Name:"] = "Nafn:"; -$a->strings["Photo:"] = "Mynd:"; -$a->strings["Please visit %s to approve or reject the suggestion."] = "Farðu á %s til að samþykkja eða hunsa þessa uppástungu."; -$a->strings["[Friendica:Notify] Connection accepted"] = ""; -$a->strings["'%1\$s' has acepted your connection request at %2\$s"] = ""; -$a->strings["%2\$s has accepted your [url=%1\$s]connection request[/url]."] = ""; -$a->strings["You are now mutual friends and may exchange status updates, photos, and email\n\twithout restriction."] = ""; -$a->strings["Please visit %s if you wish to make any changes to this relationship."] = ""; -$a->strings["'%1\$s' has chosen to accept you a \"fan\", which restricts some forms of communication - such as private messaging and some profile interactions. If this is a celebrity or community page, these settings were applied automatically."] = ""; -$a->strings["'%1\$s' may choose to extend this into a two-way or more permissive relationship in the future. "] = ""; -$a->strings["[Friendica System:Notify] registration request"] = ""; -$a->strings["You've received a registration request from '%1\$s' at %2\$s"] = ""; -$a->strings["You've received a [url=%1\$s]registration request[/url] from %2\$s."] = ""; -$a->strings["Full Name:\t%1\$s\\nSite Location:\t%2\$s\\nLogin Name:\t%3\$s (%4\$s)"] = ""; -$a->strings["Please visit %s to approve or reject the request."] = ""; -$a->strings["Embedded content"] = "Innbyggt efni"; -$a->strings["Embedding disabled"] = "Innfelling ekki leyfð"; -$a->strings["Error decoding account file"] = ""; -$a->strings["Error! No version data in file! This is not a Friendica account file?"] = ""; -$a->strings["Error! Cannot check nickname"] = ""; -$a->strings["User '%s' already exists on this server!"] = ""; -$a->strings["User creation error"] = ""; -$a->strings["User profile creation error"] = ""; -$a->strings["%d contact not imported"] = array( +$a->strings["Registration details for %s"] = "Nýskráningar upplýsingar fyrir %s"; +$a->strings["Daily posting limit of %d posts reached. The post was rejected."] = ""; +$a->strings["Weekly posting limit of %d posts reached. The post was rejected."] = ""; +$a->strings["Monthly posting limit of %d posts reached. The post was rejected."] = ""; +$a->strings["General Features"] = "Almennir eiginleikar"; +$a->strings["Multiple Profiles"] = ""; +$a->strings["Ability to create multiple profiles"] = ""; +$a->strings["Photo Location"] = "Staðsetning ljósmyndar"; +$a->strings["Photo metadata is normally stripped. This extracts the location (if present) prior to stripping metadata and links it to a map."] = ""; +$a->strings["Export Public Calendar"] = "Flytja út opinbert dagatal"; +$a->strings["Ability for visitors to download the public calendar"] = ""; +$a->strings["Post Composition Features"] = ""; +$a->strings["Richtext Editor"] = ""; +$a->strings["Enable richtext editor"] = ""; +$a->strings["Post Preview"] = ""; +$a->strings["Allow previewing posts and comments before publishing them"] = ""; +$a->strings["Auto-mention Forums"] = ""; +$a->strings["Add/remove mention when a fourm page is selected/deselected in ACL window."] = ""; +$a->strings["Network Sidebar Widgets"] = ""; +$a->strings["Search by Date"] = "Leita eftir dagsetningu"; +$a->strings["Ability to select posts by date ranges"] = ""; +$a->strings["List Forums"] = "Spjallsvæðalistar"; +$a->strings["Enable widget to display the forums your are connected with"] = ""; +$a->strings["Group Filter"] = ""; +$a->strings["Enable widget to display Network posts only from selected group"] = ""; +$a->strings["Network Filter"] = ""; +$a->strings["Enable widget to display Network posts only from selected network"] = ""; +$a->strings["Saved Searches"] = "Vistaðar leitir"; +$a->strings["Save search terms for re-use"] = ""; +$a->strings["Network Tabs"] = ""; +$a->strings["Network Personal Tab"] = ""; +$a->strings["Enable tab to display only Network posts that you've interacted on"] = ""; +$a->strings["Network New Tab"] = ""; +$a->strings["Enable tab to display only new Network posts (from the last 12 hours)"] = ""; +$a->strings["Network Shared Links Tab"] = ""; +$a->strings["Enable tab to display only Network posts with links in them"] = ""; +$a->strings["Post/Comment Tools"] = ""; +$a->strings["Multiple Deletion"] = ""; +$a->strings["Select and delete multiple posts/comments at once"] = ""; +$a->strings["Edit Sent Posts"] = ""; +$a->strings["Edit and correct posts and comments after sending"] = ""; +$a->strings["Tagging"] = ""; +$a->strings["Ability to tag existing posts"] = ""; +$a->strings["Post Categories"] = ""; +$a->strings["Add categories to your posts"] = ""; +$a->strings["Ability to file posts under folders"] = ""; +$a->strings["Dislike Posts"] = ""; +$a->strings["Ability to dislike posts/comments"] = ""; +$a->strings["Star Posts"] = ""; +$a->strings["Ability to mark special posts with a star indicator"] = ""; +$a->strings["Mute Post Notifications"] = ""; +$a->strings["Ability to mute notifications for a thread"] = ""; +$a->strings["Advanced Profile Settings"] = ""; +$a->strings["Show visitors public community forums at the Advanced Profile Page"] = ""; +$a->strings["Nothing new here"] = "Ekkert nýtt hér"; +$a->strings["Clear notifications"] = "Hreinsa tilkynningar"; +$a->strings["End this session"] = "Loka þessu innliti"; +$a->strings["Your posts and conversations"] = "Samtölin þín"; +$a->strings["Your profile page"] = "Forsíðan þín"; +$a->strings["Your photos"] = "Myndirnar þínar"; +$a->strings["Your videos"] = "Myndskeiðin þín"; +$a->strings["Your events"] = "Atburðirnir þínir"; +$a->strings["Personal notes"] = "Einkaglósur"; +$a->strings["Your personal notes"] = "Einkaglósurnar þínar"; +$a->strings["Sign in"] = "Innskrá"; +$a->strings["Home"] = "Heim"; +$a->strings["Home Page"] = "Heimasíða"; +$a->strings["Create an account"] = "Stofna notanda"; +$a->strings["Help"] = "Hjálp"; +$a->strings["Help and documentation"] = "Hjálp og leiðbeiningar"; +$a->strings["Apps"] = "Forrit"; +$a->strings["Addon applications, utilities, games"] = "Viðbótarforrit, nytjatól, leikir"; +$a->strings["Search site content"] = "Leita í efni á vef"; +$a->strings["Community"] = "Samfélag"; +$a->strings["Conversations on this site"] = "Samtöl á þessum vef"; +$a->strings["Conversations on the network"] = "Samtöl á þessu neti"; +$a->strings["Directory"] = "Tengiliðalisti"; +$a->strings["People directory"] = "Nafnaskrá"; +$a->strings["Information"] = "Upplýsingar"; +$a->strings["Information about this friendica instance"] = "Upplýsingar um þetta tilvik Friendica"; +$a->strings["Network"] = "Samfélag"; +$a->strings["Conversations from your friends"] = "Samtöl frá vinum"; +$a->strings["Network Reset"] = "Núllstilling netkerfis"; +$a->strings["Load Network page with no filters"] = ""; +$a->strings["Introductions"] = "Kynningar"; +$a->strings["Friend Requests"] = "Vinabeiðnir"; +$a->strings["Notifications"] = "Tilkynningar"; +$a->strings["See all notifications"] = "Sjá allar tilkynningar"; +$a->strings["Mark as seen"] = "Merka sem séð"; +$a->strings["Mark all system notifications seen"] = "Merkja allar tilkynningar sem séðar"; +$a->strings["Messages"] = "Skilaboð"; +$a->strings["Private mail"] = "Einka skilaboð"; +$a->strings["Inbox"] = "Innhólf"; +$a->strings["Outbox"] = "Úthólf"; +$a->strings["New Message"] = "Ný skilaboð"; +$a->strings["Manage"] = "Umsýsla"; +$a->strings["Manage other pages"] = "Sýsla með aðrar síður"; +$a->strings["Delegations"] = ""; +$a->strings["Delegate Page Management"] = ""; +$a->strings["Settings"] = "Stillingar"; +$a->strings["Account settings"] = "Stillingar aðgangsreiknings"; +$a->strings["Manage/Edit Profiles"] = "Sýsla með forsíður"; +$a->strings["Manage/edit friends and contacts"] = "Sýsla með vini og tengiliði"; +$a->strings["Admin"] = "Stjórnborð"; +$a->strings["Site setup and configuration"] = "Uppsetning og stillingar vefsvæðis"; +$a->strings["Navigation"] = "Yfirsýn"; +$a->strings["Site map"] = "Yfirlit um vefsvæði"; +$a->strings["%1\$s is attending %2\$s's %3\$s"] = ""; +$a->strings["%1\$s is not attending %2\$s's %3\$s"] = ""; +$a->strings["%1\$s may attend %2\$s's %3\$s"] = ""; +$a->strings["Post to Email"] = "Senda skilaboð á tölvupóst"; +$a->strings["Connectors disabled, since \"%s\" is enabled."] = ""; +$a->strings["Hide your profile details from unknown viewers?"] = "Fela forsíðuupplýsingar fyrir óþekktum?"; +$a->strings["Visible to everybody"] = "Sjáanlegt öllum"; +$a->strings["show"] = "sýna"; +$a->strings["don't show"] = "fela"; +$a->strings["CC: email addresses"] = "CC: tölvupóstfang"; +$a->strings["Example: bob@example.com, mary@example.com"] = "Dæmi: bibbi@vefur.is, mgga@vefur.is"; +$a->strings["Permissions"] = "Aðgangsheimildir"; +$a->strings["Close"] = "Loka"; +$a->strings["[no subject]"] = "[ekkert efni]"; +$a->strings["You must be logged in to use addons. "] = "Þú verður að vera skráður inn til að geta notað viðbætur. "; +$a->strings["Not Found"] = "Fannst ekki"; +$a->strings["Page not found."] = "Síða fannst ekki."; +$a->strings["Permission denied"] = "Bannaður aðgangur"; +$a->strings["toggle mobile"] = ""; +$a->strings["Account approved."] = "Notandi samþykktur."; +$a->strings["Registration revoked for %s"] = "Skráning afturköllurð vegna %s"; +$a->strings["Please login."] = "Skráðu yður inn."; +$a->strings["Post successful."] = "Melding tókst."; +$a->strings["[Embedded content - reload page to view]"] = "[Innfelt efni - endurhlaða síðu til að sjá]"; +$a->strings["People Search - %s"] = "Leita að fólki - %s"; +$a->strings["Forum Search - %s"] = "Leita á spjallsvæði - %s"; +$a->strings["No matches"] = "Engar leitarniðurstöður"; +$a->strings["Access denied."] = "Aðgangi hafnað."; +$a->strings["Welcome to %s"] = "Velkomin í %s"; +$a->strings["No more system notifications."] = "Ekki fleiri kerfistilkynningar."; +$a->strings["System Notifications"] = "Kerfistilkynningar"; +$a->strings["Remove term"] = "Fjarlæga gildi"; +$a->strings["Public access denied."] = "Alemennings aðgangur ekki veittur."; +$a->strings["Only logged in users are permitted to perform a search."] = "Aðeins innskráðir notendur geta framkvæmt leit."; +$a->strings["Too Many Requests"] = "Of margar beiðnir"; +$a->strings["Only one search per minute is permitted for not logged in users."] = "Notendur sem ekki eru innskráðir geta aðeins framkvæmt eina leit á mínútu."; +$a->strings["No results."] = "Engar leitarniðurstöður."; +$a->strings["Items tagged with: %s"] = "Atriði merkt með: %s"; +$a->strings["Results for: %s"] = "Niðurstöður fyrir: %s"; +$a->strings["Invalid request identifier."] = "Ógilt auðkenni beiðnar."; +$a->strings["Discard"] = "Henda"; +$a->strings["Ignore"] = "Hunsa"; +$a->strings["System"] = "Kerfi"; +$a->strings["Personal"] = "Einka"; +$a->strings["Show Ignored Requests"] = "Sýna hunsaðar beiðnir"; +$a->strings["Hide Ignored Requests"] = "Fela hunsaðar beiðnir"; +$a->strings["Notification type: "] = "Gerð skilaboða: "; +$a->strings["Friend Suggestion"] = "Vina tillaga"; +$a->strings["suggested by %s"] = "stungið uppá af %s"; +$a->strings["Hide this contact from others"] = "Gera þennan notanda ósýnilegan öðrum"; +$a->strings["Post a new friend activity"] = "Búa til færslu um nýjan vin"; +$a->strings["if applicable"] = "ef við á"; +$a->strings["Approve"] = "Samþykkja"; +$a->strings["Claims to be known to you: "] = "Þykist þekkja þig:"; +$a->strings["yes"] = "já"; +$a->strings["no"] = "nei"; +$a->strings["Shall your connection be bidirectional or not? \"Friend\" implies that you allow to read and you subscribe to their posts. \"Fan/Admirer\" means that you allow to read but you do not want to read theirs. Approve as: "] = ""; +$a->strings["Shall your connection be bidirectional or not? \"Friend\" implies that you allow to read and you subscribe to their posts. \"Sharer\" means that you allow to read but you do not want to read theirs. Approve as: "] = ""; +$a->strings["Friend"] = "Vin"; +$a->strings["Sharer"] = "Deilir"; +$a->strings["Fan/Admirer"] = "Fylgjandi/Aðdáandi"; +$a->strings["Friend/Connect Request"] = "Vinabeiðni/Tengibeiðni"; +$a->strings["New Follower"] = "Nýr fylgjandi"; +$a->strings["Profile URL"] = "Slóð á forsíðu"; +$a->strings["No introductions."] = "Engar kynningar."; +$a->strings["%s liked %s's post"] = "%s líkaði færsla hjá %s"; +$a->strings["%s disliked %s's post"] = "%s mislíkaði færsla hjá %s"; +$a->strings["%s is now friends with %s"] = "%s er nú vinur %s"; +$a->strings["%s created a new post"] = "%s bjó til færslu"; +$a->strings["%s commented on %s's post"] = "%s athugasemd við %s's færslu"; +$a->strings["No more network notifications."] = "Engar tilkynningar á neti."; +$a->strings["Network Notifications"] = "Tilkynningar á neti"; +$a->strings["No more personal notifications."] = "Engar einka tilkynningar."; +$a->strings["Personal Notifications"] = "Einkatilkynningar."; +$a->strings["No more home notifications."] = "Ekki fleiri heima tilkynningar"; +$a->strings["Home Notifications"] = "Tilkynningar frá heimasvæði"; +$a->strings["Profile not found."] = "Forsíða fannst ekki."; +$a->strings["Contact not found."] = "Tengiliður fannst ekki."; +$a->strings["This may occasionally happen if contact was requested by both persons and it has already been approved."] = ""; +$a->strings["Response from remote site was not understood."] = "Ekki tókst að skilja svar frá ytri vef."; +$a->strings["Unexpected response from remote site: "] = "Óskiljanlegt svar frá ytri vef:"; +$a->strings["Confirmation completed successfully."] = "Staðfesting kláraði eðlilega."; +$a->strings["Remote site reported: "] = "Ytri vefur svaraði:"; +$a->strings["Temporary failure. Please wait and try again."] = "Tímabundin villa. Bíddu aðeins og reyndu svo aftur."; +$a->strings["Introduction failed or was revoked."] = "Kynning mistókst eða var afturkölluð."; +$a->strings["Unable to set contact photo."] = "Ekki tókst að setja tengiliðamynd."; +$a->strings["No user record found for '%s' "] = "Engin notandafærsla fannst fyrir '%s'"; +$a->strings["Our site encryption key is apparently messed up."] = "Dulkóðunnar lykill síðunnar okker er í döðlu."; +$a->strings["Empty site URL was provided or URL could not be decrypted by us."] = "Tómt slóð var uppgefin eða ekki okkur tókst ekki að afkóða slóð."; +$a->strings["Contact record was not found for you on our site."] = "Tengiliðafærslan þín fannst ekki á þjóninum okkar."; +$a->strings["Site public key not available in contact record for URL %s."] = "Opinber lykill er ekki til í tengiliðafærslu fyrir slóð %s."; +$a->strings["The ID provided by your system is a duplicate on our system. It should work if you try again."] = "Skilríkið sem þjónninn þinn gaf upp er þegar afritað á okkar þjón. Þetta ætti að virka ef þú bara reynir aftur."; +$a->strings["Unable to set your contact credentials on our system."] = "Ekki tókst að setja tengiliða skilríkið þitt upp á þjóninum okkar."; +$a->strings["Unable to update your contact profile details on our system"] = "Ekki tókst að uppfæra tengiliða skilríkis upplýsingarnar á okkar þjón"; +$a->strings["%1\$s has joined %2\$s"] = "%1\$s hefur gengið til liðs við %2\$s"; +$a->strings["This is Friendica, version"] = "Þetta er Friendica útgáfa"; +$a->strings["running at web location"] = "Keyrir á slóð"; +$a->strings["Please visit Friendica.com to learn more about the Friendica project."] = "Á Friendica.com er hægt að fræðast nánar um Friendica verkefnið."; +$a->strings["Bug reports and issues: please visit"] = "Villu tilkynningar og vandamál: endilega skoða"; +$a->strings["the bugtracker at github"] = "villuskráningu á GitHub"; +$a->strings["Suggestions, praise, donations, etc. - please email \"Info\" at Friendica - dot com"] = "Uppástungur, lof, framlög og svo framvegis - sendið tölvupóst á \"Info\" hjá Friendica - punktur com"; +$a->strings["Installed plugins/addons/apps:"] = "Uppsettar kerfiseiningar/viðbætur/forrit:"; +$a->strings["No installed plugins/addons/apps"] = "Engin uppsett kerfiseining/viðbót/forrit"; +$a->strings["No valid account found."] = "Engin gildur aðgangur fannst."; +$a->strings["Password reset request issued. Check your email."] = "Gefin var beiðni um breytingu á lykilorði. Opnaðu tölvupóstinn þinn."; +$a->strings["\n\t\tDear %1\$s,\n\t\t\tA request was recently received at \"%2\$s\" to reset your account\n\t\tpassword. In order to confirm this request, please select the verification link\n\t\tbelow or paste it into your web browser address bar.\n\n\t\tIf you did NOT request this change, please DO NOT follow the link\n\t\tprovided and ignore and/or delete this email.\n\n\t\tYour password will not be changed unless we can verify that you\n\t\tissued this request."] = ""; +$a->strings["\n\t\tFollow this link to verify your identity:\n\n\t\t%1\$s\n\n\t\tYou will then receive a follow-up message containing the new password.\n\t\tYou may change that password from your account settings page after logging in.\n\n\t\tThe login details are as follows:\n\n\t\tSite Location:\t%2\$s\n\t\tLogin Name:\t%3\$s"] = ""; +$a->strings["Password reset requested at %s"] = "Beðið var um endurstillingu lykilorðs %s"; +$a->strings["Request could not be verified. (You may have previously submitted it.) Password reset failed."] = "Ekki var hægt að sannreyna beiðni. (Það getur verið að þú hafir þegar verið búin/n að senda hana.) Endurstilling á lykilorði tókst ekki."; +$a->strings["Your password has been reset as requested."] = "Aðgangsorðið þitt hefur verið endurstilt."; +$a->strings["Your new password is"] = "Nýja aðgangsorð þitt er "; +$a->strings["Save or copy your new password - and then"] = "Vistaðu eða afritaðu nýja aðgangsorðið - og"; +$a->strings["click here to login"] = "smelltu síðan hér til að skrá þig inn"; +$a->strings["Your password may be changed from the Settings page after successful login."] = "Þú getur breytt aðgangsorðinu þínu á Stillingar síðunni eftir að þú hefur skráð þig inn."; +$a->strings["\n\t\t\t\tDear %1\$s,\n\t\t\t\t\tYour password has been changed as requested. Please retain this\n\t\t\t\tinformation for your records (or change your password immediately to\n\t\t\t\tsomething that you will remember).\n\t\t\t"] = ""; +$a->strings["\n\t\t\t\tYour login details are as follows:\n\n\t\t\t\tSite Location:\t%1\$s\n\t\t\t\tLogin Name:\t%2\$s\n\t\t\t\tPassword:\t%3\$s\n\n\t\t\t\tYou may change that password from your account settings page after logging in.\n\t\t\t"] = ""; +$a->strings["Your password has been changed at %s"] = "Aðgangsorðinu þínu var breytt í %s"; +$a->strings["Forgot your Password?"] = "Gleymdir þú lykilorði þínu?"; +$a->strings["Enter your email address and submit to have your password reset. Then check your email for further instructions."] = "Sláðu inn tölvupóstfangið þitt til að endurstilla aðgangsorðið og fá leiðbeiningar sendar með tölvupósti."; +$a->strings["Reset"] = "Endursetja"; +$a->strings["No profile"] = "Engin forsíða"; +$a->strings["Help:"] = "Hjálp:"; +$a->strings["Invalid request."] = "Ógild fyrirspurn."; +$a->strings["Image exceeds size limit of %s"] = ""; +$a->strings["Unable to process image."] = "Ekki mögulegt afgreiða mynd"; +$a->strings["Image upload failed."] = "Ekki hægt að hlaða upp mynd."; +$a->strings["Friend suggestion sent."] = "Vina tillaga send"; +$a->strings["Suggest Friends"] = "Stinga uppá vinum"; +$a->strings["Suggest a friend for %s"] = "Stinga uppá vin fyrir %s"; +$a->strings["Submit"] = "Senda inn"; +$a->strings["Remote privacy information not available."] = "Persónuverndar upplýsingar ekki fyrir hendi á fjarlægum vefþjón."; +$a->strings["Visible to:"] = "Sýnilegt eftirfarandi:"; +$a->strings["Event can not end before it has started."] = ""; +$a->strings["Event title and start time are required."] = ""; +$a->strings["View"] = "Skoða"; +$a->strings["Create New Event"] = "Stofna nýjan atburð"; +$a->strings["Previous"] = "Fyrra"; +$a->strings["Next"] = "Næsta"; +$a->strings["Event details"] = "Nánar um atburð"; +$a->strings["Starting date and Title are required."] = ""; +$a->strings["Event Starts:"] = "Atburður hefst:"; +$a->strings["Required"] = "Nauðsynlegt"; +$a->strings["Finish date/time is not known or not relevant"] = "Loka dagsetning/tímasetning ekki vituð eða skiptir ekki máli"; +$a->strings["Event Finishes:"] = "Atburður klárar:"; +$a->strings["Adjust for viewer timezone"] = "Heimfæra á tímabelti áhorfanda"; +$a->strings["Description:"] = "Lýsing:"; +$a->strings["Title:"] = "Titill:"; +$a->strings["Share this event"] = "Deila þessum atburði"; +$a->strings["Global Directory"] = "Alheimstengiliðaskrá"; +$a->strings["Find on this site"] = "Leita á þessum vef"; +$a->strings["Results for:"] = "Niðurstöður fyrir:"; +$a->strings["Site Directory"] = "Skrá yfir tengiliði á þessum vef"; +$a->strings["No entries (some entries may be hidden)."] = "Engar færslur (sumar geta verið faldar)."; +$a->strings["OpenID protocol error. No ID returned."] = "Samskiptavilla í OpenID. Ekkert auðkenni barst."; +$a->strings["Account not found and OpenID registration is not permitted on this site."] = ""; +$a->strings["This site has exceeded the number of allowed daily account registrations. Please try again tomorrow."] = "Þessi vefur hefur náð hámarks fjölda daglegra nýskráninga. Reyndu aftur á morgun."; +$a->strings["Import"] = "Flytja inn"; +$a->strings["Move account"] = "Flytja aðgang"; +$a->strings["You can import an account from another Friendica server."] = ""; +$a->strings["You need to export your account from the old server and upload it here. We will recreate your old account here with all your contacts. We will try also to inform your friends that you moved here."] = ""; +$a->strings["This feature is experimental. We can't import contacts from the OStatus network (GNU Social/Statusnet) or from Diaspora"] = ""; +$a->strings["Account file"] = ""; +$a->strings["To export your account, go to \"Settings->Export your personal data\" and select \"Export account\""] = ""; +$a->strings["Visit %s's profile [%s]"] = "Heimsækja forsíðu %s [%s]"; +$a->strings["Edit contact"] = "Breyta tengilið"; +$a->strings["Contacts who are not members of a group"] = ""; +$a->strings["No keywords to match. Please add keywords to your default profile."] = "Engin leitarorð. Bættu við leitarorðum í sjálfgefnu forsíðuna."; +$a->strings["is interested in:"] = "hefur áhuga á:"; +$a->strings["Profile Match"] = "Forsíða fannst"; +$a->strings["Export account"] = ""; +$a->strings["Export your account info and contacts. Use this to make a backup of your account and/or to move it to another server."] = ""; +$a->strings["Export all"] = ""; +$a->strings["Export your accout info, contacts and all your items as json. Could be a very big file, and could take a lot of time. Use this to make a full backup of your account (photos are not exported)"] = ""; +$a->strings["Export personal data"] = "Sækja persónuleg gögn"; +$a->strings["Total invitation limit exceeded."] = ""; +$a->strings["%s : Not a valid email address."] = "%s : Ekki gilt póstfang"; +$a->strings["Please join us on Friendica"] = ""; +$a->strings["Invitation limit exceeded. Please contact your site administrator."] = ""; +$a->strings["%s : Message delivery failed."] = "%s : Skilaboð komust ekki til skila."; +$a->strings["%d message sent."] = array( + 0 => "%d skilaboð send.", + 1 => "%d skilaboð send", +); +$a->strings["You have no more invitations available"] = "Þú hefur ekki fleiri boðskort."; +$a->strings["Visit %s for a list of public sites that you can join. Friendica members on other sites can all connect with each other, as well as with members of many other social networks."] = ""; +$a->strings["To accept this invitation, please visit and register at %s or any other public Friendica website."] = ""; +$a->strings["Friendica sites all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks. See %s for a list of alternate Friendica sites you can join."] = ""; +$a->strings["Our apologies. This system is not currently configured to connect with other public sites or invite members."] = ""; +$a->strings["Send invitations"] = "Senda kynningar"; +$a->strings["Enter email addresses, one per line:"] = "Póstföng, eitt í hverja línu:"; +$a->strings["Your message:"] = "Skilaboðin:"; +$a->strings["You are cordially invited to join me and other close friends on Friendica - and help us to create a better social web."] = ""; +$a->strings["You will need to supply this invitation code: \$invite_code"] = "Þú þarft að nota eftirfarandi boðskorta auðkenni: \$invite_code"; +$a->strings["Once you have registered, please connect with me via my profile page at:"] = "Þegar þú hefur nýskráð þig, hafðu samband við mig gegnum síðuna mína á:"; +$a->strings["For more information about the Friendica project and why we feel it is important, please visit http://friendica.com"] = ""; +$a->strings["Contact Photos"] = "Myndir tengiliðs"; +$a->strings["Files"] = "Skrár"; +$a->strings["System down for maintenance"] = "Kerfið er óvirkt vegna viðhalds"; +$a->strings["Invalid profile identifier."] = "Ógilt tengiliða auðkenni"; +$a->strings["Profile Visibility Editor"] = "Sýsla með sjáanleika forsíðu"; +$a->strings["Click on a contact to add or remove."] = "Ýttu á tengilið til að bæta við hóp eða taka úr hóp."; +$a->strings["Visible To"] = "Sjáanlegur hverjum"; +$a->strings["All Contacts (with secure profile access)"] = "Allir tengiliðir (með öruggann aðgang að forsíðu)"; +$a->strings["No contacts."] = "Enginn tengiliður"; +$a->strings["Contact settings applied."] = "Stillingar tengiliðs uppfærðar."; +$a->strings["Contact update failed."] = "Uppfærsla tengiliðs mistókst."; +$a->strings["WARNING: This is highly advanced and if you enter incorrect information your communications with this contact may stop working."] = "AÐVÖRUN: Þetta er mjög flókið og ef þú setur inn vitlausar upplýsingar þá munu samskipti við þennan tengilið hætta að virka."; +$a->strings["Please use your browser 'Back' button now if you are uncertain what to do on this page."] = "Notaðu \"Til baka\" hnappinn núna ef þú ert ekki viss um hvað þú eigir að gera á þessari síðu."; +$a->strings["No mirroring"] = ""; +$a->strings["Mirror as forwarded posting"] = ""; +$a->strings["Mirror as my own posting"] = ""; +$a->strings["Return to contact editor"] = "Fara til baka í tengiliðasýsl"; +$a->strings["Refetch contact data"] = ""; +$a->strings["Name"] = "Nafn"; +$a->strings["Account Nickname"] = "Gælunafn notanda"; +$a->strings["@Tagname - overrides Name/Nickname"] = "@Merkjanafn - yfirskrifar Nafn/Gælunafn"; +$a->strings["Account URL"] = "Heimasíða notanda"; +$a->strings["Friend Request URL"] = "Slóð vinabeiðnar"; +$a->strings["Friend Confirm URL"] = "Slóð vina staðfestingar "; +$a->strings["Notification Endpoint URL"] = "Slóð loka tilkynningar"; +$a->strings["Poll/Feed URL"] = "Slóð á könnun/fréttastraum"; +$a->strings["New photo from this URL"] = "Ný mynd frá slóð"; +$a->strings["Remote Self"] = ""; +$a->strings["Mirror postings from this contact"] = ""; +$a->strings["Mark this contact as remote_self, this will cause friendica to repost new entries from this contact."] = ""; +$a->strings["Tag removed"] = "Merki fjarlægt"; +$a->strings["Remove Item Tag"] = "Fjarlægja merki "; +$a->strings["Select a tag to remove: "] = "Veldu merki til að fjarlægja:"; +$a->strings["Remove"] = "Fjarlægja"; +$a->strings["{0} wants to be your friend"] = "{0} vill vera vinur þinn"; +$a->strings["{0} sent you a message"] = "{0} sendi þér skilboð"; +$a->strings["{0} requested registration"] = "{0} óskaði eftir skráningu"; +$a->strings["Theme settings updated."] = "Þemastillingar uppfærðar."; +$a->strings["Site"] = "Vefur"; +$a->strings["Users"] = "Notendur"; +$a->strings["Plugins"] = "Kerfiseiningar"; +$a->strings["Themes"] = "Þemu"; +$a->strings["Additional features"] = "Viðbótareiginleikar"; +$a->strings["DB updates"] = "Gagnagrunnsuppfærslur"; +$a->strings["Inspect Queue"] = ""; +$a->strings["Federation Statistics"] = ""; +$a->strings["Logs"] = "Atburðaskrá"; +$a->strings["View Logs"] = "Skoða atburðaskrár"; +$a->strings["probe address"] = ""; +$a->strings["check webfinger"] = ""; +$a->strings["Plugin Features"] = "Eiginleikar kerfiseiningar"; +$a->strings["diagnostics"] = "greining"; +$a->strings["User registrations waiting for confirmation"] = "Notenda nýskráningar bíða samþykkis"; +$a->strings["This page offers you some numbers to the known part of the federated social network your Friendica node is part of. These numbers are not complete but only reflect the part of the network your node is aware of."] = ""; +$a->strings["The Auto Discovered Contact Directory feature is not enabled, it will improve the data displayed here."] = ""; +$a->strings["Administration"] = "Stjórnun"; +$a->strings["Currently this node is aware of %d nodes from the following platforms:"] = ""; +$a->strings["ID"] = ""; +$a->strings["Recipient Name"] = "Nafn viðtakanda"; +$a->strings["Recipient Profile"] = "Forsíða viðtakanda"; +$a->strings["Created"] = "Búið til"; +$a->strings["Last Tried"] = "Síðast prófað"; +$a->strings["This page lists the content of the queue for outgoing postings. These are postings the initial delivery failed for. They will be resend later and eventually deleted if the delivery fails permanently."] = ""; +$a->strings["Normal Account"] = "Venjulegur notandi"; +$a->strings["Soapbox Account"] = "Sápukassa notandi"; +$a->strings["Community/Celebrity Account"] = "Hópa-/Stjörnusíða"; +$a->strings["Automatic Friend Account"] = "Verður sjálfkrafa vinur notandi"; +$a->strings["Blog Account"] = ""; +$a->strings["Private Forum"] = "Einkaspjallsvæði"; +$a->strings["Message queues"] = ""; +$a->strings["Summary"] = "Samantekt"; +$a->strings["Registered users"] = "Skráðir notendur"; +$a->strings["Pending registrations"] = "Nýskráningar í bið"; +$a->strings["Version"] = "Útgáfa"; +$a->strings["Active plugins"] = "Virkar kerfiseiningar"; +$a->strings["Can not parse base url. Must have at least ://"] = ""; +$a->strings["RINO2 needs mcrypt php extension to work."] = ""; +$a->strings["Site settings updated."] = "Stillingar vefsvæðis uppfærðar."; +$a->strings["No special theme for mobile devices"] = ""; +$a->strings["No community page"] = ""; +$a->strings["Public postings from users of this site"] = ""; +$a->strings["Global community page"] = ""; +$a->strings["Never"] = "aldrei"; +$a->strings["At post arrival"] = ""; +$a->strings["Disabled"] = "Slökkt"; +$a->strings["Users, Global Contacts"] = ""; +$a->strings["Users, Global Contacts/fallback"] = ""; +$a->strings["One month"] = "Einn mánuður"; +$a->strings["Three months"] = "Þrír mánuðir"; +$a->strings["Half a year"] = "Hálft ár"; +$a->strings["One year"] = "Eitt ár"; +$a->strings["Multi user instance"] = ""; +$a->strings["Closed"] = "Lokað"; +$a->strings["Requires approval"] = "Þarf samþykki"; +$a->strings["Open"] = "Opið"; +$a->strings["No SSL policy, links will track page SSL state"] = ""; +$a->strings["Force all links to use SSL"] = ""; +$a->strings["Self-signed certificate, use SSL for local links only (discouraged)"] = ""; +$a->strings["Save Settings"] = "Vista stillingar"; +$a->strings["Registration"] = "Nýskráning"; +$a->strings["File upload"] = "Hlaða upp skrá"; +$a->strings["Policies"] = "Stefna"; +$a->strings["Auto Discovered Contact Directory"] = ""; +$a->strings["Performance"] = "Afköst"; +$a->strings["Worker"] = ""; +$a->strings["Relocate - WARNING: advanced function. Could make this server unreachable."] = ""; +$a->strings["Site name"] = "Nafn síðu"; +$a->strings["Host name"] = "Vélarheiti"; +$a->strings["Sender Email"] = "Tölvupóstfang sendanda"; +$a->strings["The email address your server shall use to send notification emails from."] = ""; +$a->strings["Banner/Logo"] = "Borði/Merki"; +$a->strings["Shortcut icon"] = "Táknmynd flýtivísunar"; +$a->strings["Link to an icon that will be used for browsers."] = ""; +$a->strings["Touch icon"] = ""; +$a->strings["Link to an icon that will be used for tablets and mobiles."] = ""; +$a->strings["Additional Info"] = ""; +$a->strings["For public servers: you can add additional information here that will be listed at %s/siteinfo."] = ""; +$a->strings["System language"] = "Tungumál kerfis"; +$a->strings["System theme"] = "Þema kerfis"; +$a->strings["Default system theme - may be over-ridden by user profiles - change theme settings"] = ""; +$a->strings["Mobile system theme"] = ""; +$a->strings["Theme for mobile devices"] = ""; +$a->strings["SSL link policy"] = ""; +$a->strings["Determines whether generated links should be forced to use SSL"] = ""; +$a->strings["Force SSL"] = "Þvinga SSL"; +$a->strings["Force all Non-SSL requests to SSL - Attention: on some systems it could lead to endless loops."] = ""; +$a->strings["Old style 'Share'"] = ""; +$a->strings["Deactivates the bbcode element 'share' for repeating items."] = ""; +$a->strings["Hide help entry from navigation menu"] = ""; +$a->strings["Hides the menu entry for the Help pages from the navigation menu. You can still access it calling /help directly."] = ""; +$a->strings["Single user instance"] = ""; +$a->strings["Make this instance multi-user or single-user for the named user"] = ""; +$a->strings["Maximum image size"] = "Mesta stærð mynda"; +$a->strings["Maximum size in bytes of uploaded images. Default is 0, which means no limits."] = ""; +$a->strings["Maximum image length"] = ""; +$a->strings["Maximum length in pixels of the longest side of uploaded images. Default is -1, which means no limits."] = ""; +$a->strings["JPEG image quality"] = "JPEG myndgæði"; +$a->strings["Uploaded JPEGS will be saved at this quality setting [0-100]. Default is 100, which is full quality."] = ""; +$a->strings["Register policy"] = "Stefna varðandi nýskráningar"; +$a->strings["Maximum Daily Registrations"] = ""; +$a->strings["If registration is permitted above, this sets the maximum number of new user registrations to accept per day. If register is set to closed, this setting has no effect."] = ""; +$a->strings["Register text"] = "Texti við nýskráningu"; +$a->strings["Will be displayed prominently on the registration page."] = ""; +$a->strings["Accounts abandoned after x days"] = "Yfirgefnir notendur eftir x daga"; +$a->strings["Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit."] = "Hættir að eyða afli í að sækja færslur á ytri vefi fyrir yfirgefna notendur. 0 þýðir notendur merkjast ekki yfirgefnir."; +$a->strings["Allowed friend domains"] = "Leyfð lén vina"; +$a->strings["Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Empty to allow any domains"] = ""; +$a->strings["Allowed email domains"] = "Leyfð lén póstfangs"; +$a->strings["Comma separated list of domains which are allowed in email addresses for registrations to this site. Wildcards are accepted. Empty to allow any domains"] = ""; +$a->strings["Block public"] = "Loka á opinberar færslur"; +$a->strings["Check to block public access to all otherwise public personal pages on this site unless you are currently logged in."] = ""; +$a->strings["Force publish"] = "Skylda að vera í tengiliðalista"; +$a->strings["Check to force all profiles on this site to be listed in the site directory."] = ""; +$a->strings["Global directory URL"] = ""; +$a->strings["URL to the global directory. If this is not set, the global directory is completely unavailable to the application."] = ""; +$a->strings["Allow threaded items"] = ""; +$a->strings["Allow infinite level threading for items on this site."] = ""; +$a->strings["Private posts by default for new users"] = ""; +$a->strings["Set default post permissions for all new members to the default privacy group rather than public."] = ""; +$a->strings["Don't include post content in email notifications"] = ""; +$a->strings["Don't include the content of a post/comment/private message/etc. in the email notifications that are sent out from this site, as a privacy measure."] = ""; +$a->strings["Disallow public access to addons listed in the apps menu."] = "Hindra opið aðgengi að viðbótum í forritavalmyndinni."; +$a->strings["Checking this box will restrict addons listed in the apps menu to members only."] = "Ef hakað er í þetta verður aðgengi að viðbótum í forritavalmyndinni takmarkað við meðlimi."; +$a->strings["Don't embed private images in posts"] = ""; +$a->strings["Don't replace locally-hosted private photos in posts with an embedded copy of the image. This means that contacts who receive posts containing private photos will have to authenticate and load each image, which may take a while."] = ""; +$a->strings["Allow Users to set remote_self"] = ""; +$a->strings["With checking this, every user is allowed to mark every contact as a remote_self in the repair contact dialog. Setting this flag on a contact causes mirroring every posting of that contact in the users stream."] = ""; +$a->strings["Block multiple registrations"] = "Banna margar skráningar"; +$a->strings["Disallow users to register additional accounts for use as pages."] = ""; +$a->strings["OpenID support"] = "Leyfa OpenID auðkenningu"; +$a->strings["OpenID support for registration and logins."] = ""; +$a->strings["Fullname check"] = "Fullt nafn skilyrði"; +$a->strings["Force users to register with a space between firstname and lastname in Full name, as an antispam measure"] = ""; +$a->strings["UTF-8 Regular expressions"] = "UTF-8 hefðbundin stöfun"; +$a->strings["Use PHP UTF8 regular expressions"] = ""; +$a->strings["Community Page Style"] = ""; +$a->strings["Type of community page to show. 'Global community' shows every public posting from an open distributed network that arrived on this server."] = ""; +$a->strings["Posts per user on community page"] = ""; +$a->strings["The maximum number of posts per user on the community page. (Not valid for 'Global Community')"] = ""; +$a->strings["Enable OStatus support"] = "Leyfa OStatus stuðning"; +$a->strings["Provide built-in OStatus (StatusNet, GNU Social etc.) compatibility. All communications in OStatus are public, so privacy warnings will be occasionally displayed."] = ""; +$a->strings["OStatus conversation completion interval"] = ""; +$a->strings["How often shall the poller check for new entries in OStatus conversations? This can be a very ressource task."] = ""; +$a->strings["Only import OStatus threads from our contacts"] = ""; +$a->strings["Normally we import every content from our OStatus contacts. With this option we only store threads that are started by a contact that is known on our system."] = ""; +$a->strings["OStatus support can only be enabled if threading is enabled."] = ""; +$a->strings["Diaspora support can't be enabled because Friendica was installed into a sub directory."] = ""; +$a->strings["Enable Diaspora support"] = "Leyfa Diaspora tengingar"; +$a->strings["Provide built-in Diaspora network compatibility."] = ""; +$a->strings["Only allow Friendica contacts"] = "Aðeins leyfa Friendica notendur"; +$a->strings["All contacts must use Friendica protocols. All other built-in communication protocols disabled."] = ""; +$a->strings["Verify SSL"] = "Sannreyna SSL"; +$a->strings["If you wish, you can turn on strict certificate checking. This will mean you cannot connect (at all) to self-signed SSL sites."] = ""; +$a->strings["Proxy user"] = "Proxy notandi"; +$a->strings["Proxy URL"] = "Proxy slóð"; +$a->strings["Network timeout"] = "Net tími útrunninn"; +$a->strings["Value is in seconds. Set to 0 for unlimited (not recommended)."] = ""; +$a->strings["Delivery interval"] = ""; +$a->strings["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."] = ""; +$a->strings["Poll interval"] = ""; +$a->strings["Delay background polling processes by this many seconds to reduce system load. If 0, use delivery interval."] = ""; +$a->strings["Maximum Load Average"] = "Mesta meðaltals álag"; +$a->strings["Maximum system load before delivery and poll processes are deferred - default 50."] = ""; +$a->strings["Maximum Load Average (Frontend)"] = ""; +$a->strings["Maximum system load before the frontend quits service - default 50."] = ""; +$a->strings["Maximum table size for optimization"] = ""; +$a->strings["Maximum table size (in MB) for the automatic optimization - default 100 MB. Enter -1 to disable it."] = ""; +$a->strings["Minimum level of fragmentation"] = ""; +$a->strings["Minimum fragmenation level to start the automatic optimization - default value is 30%."] = ""; +$a->strings["Periodical check of global contacts"] = ""; +$a->strings["If enabled, the global contacts are checked periodically for missing or outdated data and the vitality of the contacts and servers."] = ""; +$a->strings["Days between requery"] = ""; +$a->strings["Number of days after which a server is requeried for his contacts."] = ""; +$a->strings["Discover contacts from other servers"] = ""; +$a->strings["Periodically query other servers for contacts. You can choose between 'users': the users on the remote system, 'Global Contacts': active contacts that are known on the system. The fallback is meant for Redmatrix servers and older friendica servers, where global contacts weren't available. The fallback increases the server load, so the recommened setting is 'Users, Global Contacts'."] = ""; +$a->strings["Timeframe for fetching global contacts"] = ""; +$a->strings["When the discovery is activated, this value defines the timeframe for the activity of the global contacts that are fetched from other servers."] = ""; +$a->strings["Search the local directory"] = ""; +$a->strings["Search the local directory instead of the global directory. When searching locally, every search will be executed on the global directory in the background. This improves the search results when the search is repeated."] = ""; +$a->strings["Publish server information"] = ""; +$a->strings["If enabled, general server and usage data will be published. The data contains the name and version of the server, number of users with public profiles, number of posts and the activated protocols and connectors. See the-federation.info for details."] = ""; +$a->strings["Use MySQL full text engine"] = ""; +$a->strings["Activates the full text engine. Speeds up search - but can only search for four and more characters."] = ""; +$a->strings["Suppress Language"] = ""; +$a->strings["Suppress language information in meta information about a posting."] = ""; +$a->strings["Suppress Tags"] = ""; +$a->strings["Suppress showing a list of hashtags at the end of the posting."] = ""; +$a->strings["Path to item cache"] = ""; +$a->strings["The item caches buffers generated bbcode and external images."] = ""; +$a->strings["Cache duration in seconds"] = ""; +$a->strings["How long should the cache files be hold? Default value is 86400 seconds (One day). To disable the item cache, set the value to -1."] = ""; +$a->strings["Maximum numbers of comments per post"] = ""; +$a->strings["How much comments should be shown for each post? Default value is 100."] = ""; +$a->strings["Path for lock file"] = ""; +$a->strings["The lock file is used to avoid multiple pollers at one time. Only define a folder here."] = ""; +$a->strings["Temp path"] = ""; +$a->strings["If you have a restricted system where the webserver can't access the system temp path, enter another path here."] = ""; +$a->strings["Base path to installation"] = ""; +$a->strings["If the system cannot detect the correct path to your installation, enter the correct path here. This setting should only be set if you are using a restricted system and symbolic links to your webroot."] = ""; +$a->strings["Disable picture proxy"] = ""; +$a->strings["The picture proxy increases performance and privacy. It shouldn't be used on systems with very low bandwith."] = ""; +$a->strings["Enable old style pager"] = ""; +$a->strings["The old style pager has page numbers but slows down massively the page speed."] = ""; +$a->strings["Only search in tags"] = ""; +$a->strings["On large systems the text search can slow down the system extremely."] = ""; +$a->strings["New base url"] = ""; +$a->strings["Change base url for this server. Sends relocate message to all DFRN contacts of all users."] = ""; +$a->strings["RINO Encryption"] = ""; +$a->strings["Encryption layer between nodes."] = ""; +$a->strings["Embedly API key"] = ""; +$a->strings["Embedly is used to fetch additional data for web pages. This is an optional parameter."] = ""; +$a->strings["Enable 'worker' background processing"] = ""; +$a->strings["The worker background processing limits the number of parallel background jobs to a maximum number and respects the system load."] = ""; +$a->strings["Maximum number of parallel workers"] = ""; +$a->strings["On shared hosters set this to 2. On larger systems, values of 10 are great. Default value is 4."] = ""; +$a->strings["Don't use 'proc_open' with the worker"] = ""; +$a->strings["Enable this if your system doesn't allow the use of 'proc_open'. This can happen on shared hosters. If this is enabled you should increase the frequency of poller calls in your crontab."] = ""; +$a->strings["Update has been marked successful"] = "Uppfærsla merkt sem tókst"; +$a->strings["Database structure update %s was successfully applied."] = ""; +$a->strings["Executing of database structure update %s failed with error: %s"] = ""; +$a->strings["Executing %s failed with error: %s"] = ""; +$a->strings["Update %s was successfully applied."] = "Uppfærsla %s framkvæmd."; +$a->strings["Update %s did not return a status. Unknown if it succeeded."] = "Uppfærsla %s skilaði ekki gildi. Óvíst hvort tókst."; +$a->strings["There was no additional update function %s that needed to be called."] = ""; +$a->strings["No failed updates."] = "Engar uppfærslur mistókust."; +$a->strings["Check database structure"] = ""; +$a->strings["Failed Updates"] = "Uppfærslur sem mistókust"; +$a->strings["This does not include updates prior to 1139, which did not return a status."] = "Þetta á ekki við uppfærslur fyrir 1139, þær skiluðu ekki lokastöðu."; +$a->strings["Mark success (if update was manually applied)"] = "Merkja sem tókst (ef uppfærsla var framkvæmd handvirkt)"; +$a->strings["Attempt to execute this update step automatically"] = "Framkvæma þessa uppfærslu sjálfkrafa"; +$a->strings["\n\t\t\tDear %1\$s,\n\t\t\t\tthe administrator of %2\$s has set up an account for you."] = ""; +$a->strings["\n\t\t\tThe login details are as follows:\n\n\t\t\tSite Location:\t%1\$s\n\t\t\tLogin Name:\t\t%2\$s\n\t\t\tPassword:\t\t%3\$s\n\n\t\t\tYou may change your password from your account \"Settings\" page after logging\n\t\t\tin.\n\n\t\t\tPlease take a few moments to review the other account settings on that page.\n\n\t\t\tYou may also wish to add some basic information to your default profile\n\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n\n\t\t\tWe recommend setting your full name, adding a profile photo,\n\t\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n\t\t\tperhaps what country you live in; if you do not wish to be more specific\n\t\t\tthan that.\n\n\t\t\tWe fully respect your right to privacy, and none of these items are necessary.\n\t\t\tIf you are new and do not know anybody here, they may help\n\t\t\tyou to make some new and interesting friends.\n\n\t\t\tThank you and welcome to %4\$s."] = ""; +$a->strings["%s user blocked/unblocked"] = array( 0 => "", 1 => "", ); -$a->strings["Done. You can now login with your username and password"] = ""; -$a->strings["toggle mobile"] = ""; +$a->strings["%s user deleted"] = array( + 0 => "%s notenda eytt", + 1 => "%s notendum eytt", +); +$a->strings["User '%s' deleted"] = "Notanda '%s' eytt"; +$a->strings["User '%s' unblocked"] = "Notanda '%s' gefið frelsi"; +$a->strings["User '%s' blocked"] = "Notanda '%s' settur í bann"; +$a->strings["Register date"] = "Skráningar dagsetning"; +$a->strings["Last login"] = "Síðast innskráður"; +$a->strings["Last item"] = "Síðasta"; +$a->strings["Account"] = "Notandi"; +$a->strings["Add User"] = ""; +$a->strings["select all"] = "velja alla"; +$a->strings["User registrations waiting for confirm"] = "Skráning notanda býður samþykkis"; +$a->strings["User waiting for permanent deletion"] = ""; +$a->strings["Request date"] = "Dagsetning beiðnar"; +$a->strings["No registrations."] = "Engin skráning"; +$a->strings["Deny"] = "Hafnað"; +$a->strings["Block"] = "Banna"; +$a->strings["Unblock"] = "Afbanna"; +$a->strings["Site admin"] = "Vefstjóri"; +$a->strings["Account expired"] = ""; +$a->strings["New User"] = ""; +$a->strings["Deleted since"] = ""; +$a->strings["Selected users will be deleted!\\n\\nEverything these users had posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "Valdir notendur verður eytt!\\n\\nAllt sem þessir notendur hafa deilt á þessum vef verður varanlega eytt!\\n\\nErtu alveg viss?"; +$a->strings["The user {0} will be deleted!\\n\\nEverything this user has posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "Notandinn {0} verður eytt!\\n\\nAllt sem þessi notandi hefur deilt á þessum vef veður varanlega eytt!\\n\\nErtu alveg viss?"; +$a->strings["Name of the new user."] = ""; +$a->strings["Nickname"] = ""; +$a->strings["Nickname of the new user."] = ""; +$a->strings["Email address of the new user."] = ""; +$a->strings["Plugin %s disabled."] = "Kerfiseining %s óvirk."; +$a->strings["Plugin %s enabled."] = "Kveikt á kerfiseiningu %s"; +$a->strings["Disable"] = "Slökkva"; +$a->strings["Enable"] = "Kveikja"; +$a->strings["Toggle"] = "Skipta"; +$a->strings["Author: "] = "Höfundur:"; +$a->strings["Maintainer: "] = ""; +$a->strings["Reload active plugins"] = "Endurhlaða virkar kerfiseiningar"; +$a->strings["There are currently no plugins available on your node. You can find the official plugin repository at %1\$s and might find other interesting plugins in the open plugin registry at %2\$s"] = ""; +$a->strings["No themes found."] = "Engin þemu fundust"; +$a->strings["Screenshot"] = "Skjámynd"; +$a->strings["Reload active themes"] = ""; +$a->strings["No themes found on the system. They should be paced in %1\$s"] = ""; +$a->strings["[Experimental]"] = "[Tilraun]"; +$a->strings["[Unsupported]"] = "[Óstudd]"; +$a->strings["Log settings updated."] = "Stillingar atburðaskrár uppfærðar. "; +$a->strings["Clear"] = "Hreinsa"; +$a->strings["Enable Debugging"] = ""; +$a->strings["Log file"] = "Atburðaskrá"; +$a->strings["Must be writable by web server. Relative to your Friendica top-level directory."] = "Vefþjónn verður að hafa skrifréttindi. Afstætt við Friendica rótar skráarsafn."; +$a->strings["Log level"] = "Stig atburðaskráningar"; +$a->strings["PHP logging"] = ""; +$a->strings["To enable logging of PHP errors and warnings you can add the following to the .htconfig.php file of your installation. The filename set in the 'error_log' line is relative to the friendica top-level directory and must be writeable by the web server. The option '1' for 'log_errors' and 'display_errors' is to enable these options, set to '0' to disable them."] = ""; +$a->strings["Off"] = ""; +$a->strings["On"] = ""; +$a->strings["Lock feature %s"] = ""; +$a->strings["Manage Additional Features"] = ""; +$a->strings["Sorry, maybe your upload is bigger than the PHP configuration allows"] = ""; +$a->strings["Or - did you try to upload an empty file?"] = ""; +$a->strings["File exceeds size limit of %s"] = ""; +$a->strings["File upload failed."] = "Skráar upphlöðun mistókst."; +$a->strings["No friends to display."] = "Engir vinir til að birta."; +$a->strings["Access to this profile has been restricted."] = "Aðgangur að þessari forsíðu hefur verið heftur."; +$a->strings["User not found"] = ""; +$a->strings["This calendar format is not supported"] = ""; +$a->strings["No exportable data found"] = ""; +$a->strings["calendar"] = ""; +$a->strings["No such group"] = "Hópur ekki til"; +$a->strings["Group is empty"] = "Hópur er tómur"; +$a->strings["Group: %s"] = ""; +$a->strings["This entry was edited"] = ""; +$a->strings["%d comment"] = array( + 0 => "%d ummæli", + 1 => "%d ummæli", +); +$a->strings["Private Message"] = "Einkaskilaboð"; +$a->strings["I like this (toggle)"] = "Mér líkar þetta (kveikja/slökkva)"; +$a->strings["like"] = "líkar"; +$a->strings["I don't like this (toggle)"] = "Mér líkar þetta ekki (kveikja/slökkva)"; +$a->strings["dislike"] = "mislíkar"; +$a->strings["Share this"] = "Deila þessu"; +$a->strings["share"] = "deila"; +$a->strings["This is you"] = "Þetta ert þú"; +$a->strings["Bold"] = "Feitletrað"; +$a->strings["Italic"] = "Skáletrað"; +$a->strings["Underline"] = "Undirstrikað"; +$a->strings["Quote"] = "Gæsalappir"; +$a->strings["Code"] = "Kóði"; +$a->strings["Image"] = "Mynd"; +$a->strings["Link"] = "Tengill"; +$a->strings["Video"] = "Myndband"; +$a->strings["Edit"] = "Breyta"; +$a->strings["add star"] = "bæta við stjörnu"; +$a->strings["remove star"] = "eyða stjörnu"; +$a->strings["toggle star status"] = "Kveikja/slökkva á stjörnu"; +$a->strings["starred"] = "stjörnumerkt"; +$a->strings["add tag"] = "bæta við merki"; +$a->strings["ignore thread"] = ""; +$a->strings["unignore thread"] = ""; +$a->strings["toggle ignore status"] = ""; +$a->strings["ignored"] = "hunsað"; +$a->strings["save to folder"] = "vista í möppu"; +$a->strings["I will attend"] = ""; +$a->strings["I will not attend"] = ""; +$a->strings["I might attend"] = ""; +$a->strings["to"] = "við"; +$a->strings["Wall-to-Wall"] = "vegg við vegg"; +$a->strings["via Wall-To-Wall:"] = "gegnum vegg við vegg"; +$a->strings["Resubscribing to OStatus contacts"] = ""; +$a->strings["Error"] = ""; +$a->strings["Done"] = "Lokið"; +$a->strings["Keep this window open until done."] = ""; +$a->strings["No potential page delegates located."] = "Engir mögulegir viðtakendur síðunnar fundust."; +$a->strings["Delegates are able to manage all aspects of this account/page except for basic account settings. Please do not delegate your personal account to anybody that you do not trust completely."] = ""; +$a->strings["Existing Page Managers"] = ""; +$a->strings["Existing Page Delegates"] = ""; +$a->strings["Potential Delegates"] = ""; +$a->strings["Add"] = "Bæta við"; +$a->strings["No entries."] = "Engar færslur."; +$a->strings["Do you really want to delete this video?"] = ""; +$a->strings["Delete Video"] = ""; +$a->strings["No videos selected"] = ""; +$a->strings["Access to this item is restricted."] = "Aðgangur að þessum hlut hefur verið heftur"; +$a->strings["View Album"] = "Skoða myndabók"; +$a->strings["Recent Videos"] = ""; +$a->strings["Upload New Videos"] = ""; +$a->strings["Profile deleted."] = "Forsíðu eytt."; +$a->strings["Profile-"] = "Forsíða-"; +$a->strings["New profile created."] = "Ný forsíða búinn til."; +$a->strings["Profile unavailable to clone."] = "Ekki tókst að klóna forsíðu"; +$a->strings["Profile Name is required."] = "Nafn á forsíðu er skilyrði"; +$a->strings["Marital Status"] = ""; +$a->strings["Romantic Partner"] = ""; +$a->strings["Work/Employment"] = ""; +$a->strings["Religion"] = ""; +$a->strings["Political Views"] = ""; +$a->strings["Gender"] = ""; +$a->strings["Sexual Preference"] = ""; +$a->strings["Homepage"] = ""; +$a->strings["Interests"] = ""; +$a->strings["Address"] = ""; +$a->strings["Location"] = ""; +$a->strings["Profile updated."] = "Forsíða uppfærð."; +$a->strings[" and "] = "og"; +$a->strings["public profile"] = "Opinber forsíða"; +$a->strings["%1\$s changed %2\$s to “%3\$s”"] = ""; +$a->strings[" - Visit %1\$s's %2\$s"] = ""; +$a->strings["%1\$s has an updated %2\$s, changing %3\$s."] = "%1\$s hefur uppfært %2\$s, með því að breyta %3\$s."; +$a->strings["Hide contacts and friends:"] = ""; +$a->strings["No"] = "Nei"; +$a->strings["Hide your contact/friend list from viewers of this profile?"] = "Fela tengiliða-/vinalista á þessari forsíðu?"; +$a->strings["Show more profile fields:"] = ""; +$a->strings["Profile Actions"] = ""; +$a->strings["Edit Profile Details"] = "Breyta forsíðu upplýsingum"; +$a->strings["Change Profile Photo"] = ""; +$a->strings["View this profile"] = "Skoða þessa forsíðu"; +$a->strings["Create a new profile using these settings"] = "Búa til nýja forsíðu með þessum stillingum"; +$a->strings["Clone this profile"] = "Klóna þessa forsíðu"; +$a->strings["Delete this profile"] = "Eyða þessari forsíðu"; +$a->strings["Basic information"] = ""; +$a->strings["Profile picture"] = ""; +$a->strings["Preferences"] = ""; +$a->strings["Status information"] = ""; +$a->strings["Additional information"] = ""; +$a->strings["Relation"] = ""; +$a->strings["Upload Profile Photo"] = "Hlaða upp forsíðu mynd"; +$a->strings["Your Gender:"] = "Kyn:"; +$a->strings[" Marital Status:"] = " Hjúskaparstaða:"; +$a->strings["Example: fishing photography software"] = "Til dæmis: fishing photography software"; +$a->strings["Profile Name:"] = "Forsíðu nafn:"; +$a->strings["This is your public profile.
      It may be visible to anybody using the internet."] = "Þetta er opinber forsíða.
      Hún verður sjáanleg öðrum sem nota alnetið."; +$a->strings["Your Full Name:"] = "Fullt nafn:"; +$a->strings["Title/Description:"] = "Starfsheiti/Lýsing:"; +$a->strings["Street Address:"] = "Gata:"; +$a->strings["Locality/City:"] = "Bær/Borg:"; +$a->strings["Region/State:"] = "Svæði/Sýsla"; +$a->strings["Postal/Zip Code:"] = "Póstnúmer:"; +$a->strings["Country:"] = "Land:"; +$a->strings["Who: (if applicable)"] = "Hver: (ef við á)"; +$a->strings["Examples: cathy123, Cathy Williams, cathy@example.com"] = "Dæmi: cathy123, Cathy Williams, cathy@example.com"; +$a->strings["Since [date]:"] = ""; +$a->strings["Tell us about yourself..."] = "Segðu okkur frá sjálfum þér..."; +$a->strings["Homepage URL:"] = "Slóð heimasíðu:"; +$a->strings["Religious Views:"] = "Trúarskoðanir"; +$a->strings["Public Keywords:"] = "Opinber leitarorð:"; +$a->strings["(Used for suggesting potential friends, can be seen by others)"] = "(Notað til að stinga uppá mögulegum vinum, aðrir geta séð)"; +$a->strings["Private Keywords:"] = "Einka leitarorð:"; +$a->strings["(Used for searching profiles, never shown to others)"] = "(Notað við leit að öðrum notendum, aldrei sýnt öðrum)"; +$a->strings["Musical interests"] = "Tónlistarsmekkur"; +$a->strings["Books, literature"] = "Bækur, bókmenntir"; +$a->strings["Television"] = "Sjónvarp"; +$a->strings["Film/dance/culture/entertainment"] = "Kvikmyndir/dans/menning/afþreying"; +$a->strings["Hobbies/Interests"] = "Áhugamál"; +$a->strings["Love/romance"] = "Ást/rómantík"; +$a->strings["Work/employment"] = "Atvinna:"; +$a->strings["School/education"] = "Skóli/menntun"; +$a->strings["Contact information and Social Networks"] = "Tengiliðaupplýsingar og samfélagsnet"; +$a->strings["Edit/Manage Profiles"] = "Sýsla með forsíður"; +$a->strings["Credits"] = ""; +$a->strings["Friendica is a community project, that would not be possible without the help of many people. Here is a list of those who have contributed to the code or the translation of Friendica. Thank you all!"] = ""; +$a->strings["- select -"] = "- veldu -"; +$a->strings["Poke/Prod"] = ""; +$a->strings["poke, prod or do other things to somebody"] = ""; +$a->strings["Recipient"] = ""; +$a->strings["Choose what you wish to do to recipient"] = ""; +$a->strings["Make this post private"] = ""; +$a->strings["Recent Photos"] = "Nýlegar myndir"; +$a->strings["Upload New Photos"] = "Hlaða upp nýjum myndum"; +$a->strings["everybody"] = "allir"; +$a->strings["Contact information unavailable"] = "Tengiliða upplýsingar ekki til"; +$a->strings["Album not found."] = "Myndabók finnst ekki."; +$a->strings["Delete Album"] = "Fjarlægja myndabók"; +$a->strings["Do you really want to delete this photo album and all its photos?"] = ""; +$a->strings["Delete Photo"] = "Fjarlægja mynd"; +$a->strings["Do you really want to delete this photo?"] = ""; +$a->strings["%1\$s was tagged in %2\$s by %3\$s"] = ""; +$a->strings["a photo"] = "mynd"; +$a->strings["Image file is empty."] = "Mynda skrá er tóm."; +$a->strings["No photos selected"] = "Engar myndir valdar"; +$a->strings["You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage."] = ""; +$a->strings["Upload Photos"] = "Hlaða upp myndum"; +$a->strings["New album name: "] = "Nýtt nafn myndbókar:"; +$a->strings["or existing album name: "] = "eða fyrra nafn myndbókar:"; +$a->strings["Do not show a status post for this upload"] = "Ekki sýna færslu fyrir þessari upphölun"; +$a->strings["Show to Groups"] = "Birta hópum"; +$a->strings["Show to Contacts"] = "Birta tengiliðum"; +$a->strings["Private Photo"] = "Einkamynd"; +$a->strings["Public Photo"] = "Opinber mynd"; +$a->strings["Edit Album"] = "Breyta myndbók"; +$a->strings["Show Newest First"] = "Birta nýjast fyrst"; +$a->strings["Show Oldest First"] = "Birta elsta fyrst"; +$a->strings["View Photo"] = "Skoða mynd"; +$a->strings["Permission denied. Access to this item may be restricted."] = "Aðgangi hafnað. Aðgangur að þessum hlut kann að vera skertur."; +$a->strings["Photo not available"] = "Mynd ekki til"; +$a->strings["View photo"] = "Birta mynd"; +$a->strings["Edit photo"] = "Breyta mynd"; +$a->strings["Use as profile photo"] = "Nota sem forsíðu mynd"; +$a->strings["View Full Size"] = "Skoða í fullri stærð"; +$a->strings["Tags: "] = "Merki:"; +$a->strings["[Remove any tag]"] = "[Fjarlægja öll merki]"; +$a->strings["New album name"] = "Nýtt nafn myndbókar"; +$a->strings["Caption"] = "Yfirskrift"; +$a->strings["Add a Tag"] = "Bæta við merki"; +$a->strings["Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"] = "Til dæmis: @bob, @Barbara_Jensen, @jim@example.com, #Reykjavík #tjalda"; +$a->strings["Do not rotate"] = ""; +$a->strings["Rotate CW (right)"] = ""; +$a->strings["Rotate CCW (left)"] = ""; +$a->strings["Private photo"] = "Einkamynd"; +$a->strings["Public photo"] = "Opinber mynd"; +$a->strings["Map"] = ""; +$a->strings["Friendica Communications Server - Setup"] = ""; +$a->strings["Could not connect to database."] = "Gat ekki tengst gagnagrunn."; +$a->strings["Could not create table."] = "Gat ekki búið til töflu."; +$a->strings["Your Friendica site database has been installed."] = "Friendica gagnagrunnurinn þinn hefur verið uppsettur."; +$a->strings["You may need to import the file \"database.sql\" manually using phpmyadmin or mysql."] = "Þú þarft mögulega að keyra inn skránna \"database.sql\" handvirkt með phpmyadmin eða mysql."; +$a->strings["Please see the file \"INSTALL.txt\"."] = "Lestu skrána \"INSTALL.txt\"."; +$a->strings["Database already in use."] = ""; +$a->strings["System check"] = "Kerfis prófun"; +$a->strings["Check again"] = "Prófa aftur"; +$a->strings["Database connection"] = "Gangagrunns tenging"; +$a->strings["In order to install Friendica we need to know how to connect to your database."] = "Til að setja upp Friendica þurfum við að vita hvernig á að tengjast gagnagrunninum þínum."; +$a->strings["Please contact your hosting provider or site administrator if you have questions about these settings."] = "Hafðu samband við hýsingaraðilann þinn eða kerfisstjóra ef þú hefur spurningar varðandi þessar stillingar."; +$a->strings["The database you specify below should already exist. If it does not, please create it before continuing."] = "Gagnagrunnurinn sem þú bendir á þarf þegar að vera til. Ef ekki þá þarf að stofna hann áður en haldið er áfram."; +$a->strings["Database Server Name"] = "Vélanafn gagangrunns"; +$a->strings["Database Login Name"] = "Notendanafn í gagnagrunn"; +$a->strings["Database Login Password"] = "Aðgangsorð í gagnagrunns"; +$a->strings["Database Name"] = "Nafn gagnagrunns"; +$a->strings["Site administrator email address"] = "Póstfang kerfisstjóra vefsvæðis"; +$a->strings["Your account email address must match this in order to use the web admin panel."] = "Póstfang aðgangsins þíns verður að passa við þetta til að hægt sé að nota umsýsluvefviðmótið."; +$a->strings["Please select a default timezone for your website"] = "Veldu sjálfgefið tímabelti fyrir vefsíðuna"; +$a->strings["Site settings"] = "Stillingar vefsvæðis"; +$a->strings["System Language:"] = ""; +$a->strings["Set the default language for your Friendica installation interface and to send emails."] = ""; +$a->strings["Could not find a command line version of PHP in the web server PATH."] = "Gat ekki fundið skipanalínu útgáfu af PHP í vefþjóns PATH."; +$a->strings["If you don't have a command line version of PHP installed on server, you will not be able to run background polling via cron. See 'Setup the poller'"] = ""; +$a->strings["PHP executable path"] = "PHP keyrslu slóð"; +$a->strings["Enter full path to php executable. You can leave this blank to continue the installation."] = ""; +$a->strings["Command line PHP"] = "Skipanalínu PHP"; +$a->strings["PHP executable is not the php cli binary (could be cgi-fgci version)"] = ""; +$a->strings["Found PHP version: "] = ""; +$a->strings["PHP cli binary"] = ""; +$a->strings["The command line version of PHP on your system does not have \"register_argc_argv\" enabled."] = "Skipanalínu útgáfa af PHP á vefþjóninum hefur ekki kveikt á \"register_argc_argv\"."; +$a->strings["This is required for message delivery to work."] = "Þetta er skilyrt fyrir því að skilaboð komist til skila."; +$a->strings["PHP register_argc_argv"] = ""; +$a->strings["Error: the \"openssl_pkey_new\" function on this system is not able to generate encryption keys"] = "Villa: Stefjan \"openssl_pkey_new\" á vefþjóninum getur ekki stofnað dulkóðunar lykla"; +$a->strings["If running under Windows, please see \"http://www.php.net/manual/en/openssl.installation.php\"."] = "Ef keyrt er á Window, skoðaðu þá \"http://www.php.net/manual/en/openssl.installation.php\"."; +$a->strings["Generate encryption keys"] = "Búa til dulkóðunar lykla"; +$a->strings["libCurl PHP module"] = "libCurl PHP eining"; +$a->strings["GD graphics PHP module"] = "GD graphics PHP eining"; +$a->strings["OpenSSL PHP module"] = "OpenSSL PHP eining"; +$a->strings["mysqli PHP module"] = "mysqli PHP eining"; +$a->strings["mb_string PHP module"] = "mb_string PHP eining"; +$a->strings["mcrypt PHP module"] = ""; +$a->strings["XML PHP module"] = ""; +$a->strings["Apache mod_rewrite module"] = "Apache mod_rewrite eining"; +$a->strings["Error: Apache webserver mod-rewrite module is required but not installed."] = "Villa: Apache vefþjóns eining mod-rewrite er skilyrði og er ekki uppsett. "; +$a->strings["Error: libCURL PHP module required but not installed."] = "Villa: libCurl PHP eining er skilyrði og er ekki uppsett."; +$a->strings["Error: GD graphics PHP module with JPEG support required but not installed."] = "Villa: GD graphics PHP eining með JPEG stuðningi er skilyrði og er ekki uppsett."; +$a->strings["Error: openssl PHP module required but not installed."] = "Villa: openssl PHP eining skilyrði og er ekki uppsett."; +$a->strings["Error: mysqli PHP module required but not installed."] = "Villa: mysqli PHP eining er skilyrði og er ekki uppsett"; +$a->strings["Error: mb_string PHP module required but not installed."] = "Villa: mb_string PHP eining skilyrði en ekki uppsett."; +$a->strings["Error: mcrypt PHP module required but not installed."] = ""; +$a->strings["If you are using php_cli, please make sure that mcrypt module is enabled in its config file"] = ""; +$a->strings["Function mcrypt_create_iv() is not defined. This is needed to enable RINO2 encryption layer."] = ""; +$a->strings["mcrypt_create_iv() function"] = ""; +$a->strings["Error, XML PHP module required but not installed."] = ""; +$a->strings["The web installer needs to be able to create a file called \".htconfig.php\" in the top folder of your web server and it is unable to do so."] = "Vef uppsetningar forrit þarf að geta stofnað skránna \".htconfig.php\" in efsta skráarsafninu á vefþjóninum og það getur ekki gert það."; +$a->strings["This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can."] = "Þetta er oftast aðgangsstýringa stilling, þar sem vefþjónninn getur ekki skrifað út skrár í skráarsafnið - þó þú getir það."; +$a->strings["At the end of this procedure, we will give you a text to save in a file named .htconfig.php in your Friendica top folder."] = ""; +$a->strings["You can alternatively skip this procedure and perform a manual installation. Please see the file \"INSTALL.txt\" for instructions."] = ""; +$a->strings[".htconfig.php is writable"] = ".htconfig.php er skrifanleg"; +$a->strings["Friendica uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering."] = ""; +$a->strings["In order to store these compiled templates, the web server needs to have write access to the directory view/smarty3/ under the Friendica top level folder."] = ""; +$a->strings["Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder."] = ""; +$a->strings["Note: as a security measure, you should give the web server write access to view/smarty3/ only--not the template files (.tpl) that it contains."] = ""; +$a->strings["view/smarty3 is writable"] = ""; +$a->strings["Url rewrite in .htaccess is not working. Check your server configuration."] = ""; +$a->strings["Url rewrite is working"] = ""; +$a->strings["ImageMagick PHP extension is installed"] = ""; +$a->strings["ImageMagick supports GIF"] = ""; +$a->strings["The database configuration file \".htconfig.php\" could not be written. Please use the enclosed text to create a configuration file in your web server root."] = "Ekki tókst að skrifa stillingaskrá gagnagrunns \".htconfig.php\". Notað meðfylgjandi texta til að búa til stillingarskrá í rót vefþjónsins."; +$a->strings["

      What next

      "] = ""; +$a->strings["IMPORTANT: You will need to [manually] setup a scheduled task for the poller."] = "MIKILVÆGT: Þú þarft að [handvirkt] setja upp sjálfvirka keyrslu á poller."; +$a->strings["%1\$s is following %2\$s's %3\$s"] = ""; +$a->strings["Item not available."] = "Atriði ekki í boði."; +$a->strings["Item was not found."] = "Atriði fannst ekki"; +$a->strings["%d contact edited."] = array( + 0 => "", + 1 => "", +); +$a->strings["Could not access contact record."] = "Tókst ekki að ná í uppl. um tengilið"; +$a->strings["Could not locate selected profile."] = "Tókst ekki að staðsetja valinn forsíðu"; +$a->strings["Contact updated."] = "Tengiliður uppfærður"; +$a->strings["Failed to update contact record."] = "Ekki tókst að uppfæra tengiliðs skrá."; +$a->strings["Contact has been blocked"] = "Lokað á tengilið"; +$a->strings["Contact has been unblocked"] = "Opnað á tengilið"; +$a->strings["Contact has been ignored"] = "Tengiliður hunsaður"; +$a->strings["Contact has been unignored"] = "Tengiliður afhunsaður"; +$a->strings["Contact has been archived"] = "Tengiliður settur í geymslu"; +$a->strings["Contact has been unarchived"] = "Tengiliður tekinn úr geymslu"; +$a->strings["Do you really want to delete this contact?"] = "Viltu í alvörunni eyða þessum tengilið?"; +$a->strings["Contact has been removed."] = "Tengiliður fjarlægður"; +$a->strings["You are mutual friends with %s"] = "Þú ert gagnkvæmur vinur %s"; +$a->strings["You are sharing with %s"] = "Þú ert að deila með %s"; +$a->strings["%s is sharing with you"] = "%s er að deila með þér"; +$a->strings["Private communications are not available for this contact."] = "Einkasamtal ekki í boði fyrir þennan"; +$a->strings["(Update was successful)"] = "(uppfærsla tókst)"; +$a->strings["(Update was not successful)"] = "(uppfærsla tókst ekki)"; +$a->strings["Suggest friends"] = "Stinga uppá vinum"; +$a->strings["Network type: %s"] = "Net tegund: %s"; +$a->strings["Communications lost with this contact!"] = ""; +$a->strings["Fetch further information for feeds"] = "Ná í ítarlegri upplýsingar um fréttaveitur"; +$a->strings["Fetch information"] = ""; +$a->strings["Fetch information and keywords"] = ""; +$a->strings["Profile Visibility"] = "Forsíðu sjáanleiki"; +$a->strings["Please choose the profile you would like to display to %s when viewing your profile securely."] = "Veldu forsíðu sem á að birtast %s þegar hann skoðaður með öruggum hætti"; +$a->strings["Contact Information / Notes"] = "Uppl. um tengilið / minnisatriði"; +$a->strings["Edit contact notes"] = "Breyta minnispunktum tengiliðs "; +$a->strings["Block/Unblock contact"] = "útiloka/opna á tengilið"; +$a->strings["Ignore contact"] = "Hunsa tengilið"; +$a->strings["Repair URL settings"] = "Gera við stillingar á slóðum"; +$a->strings["View conversations"] = "Skoða samtöl"; +$a->strings["Last update:"] = "Síðasta uppfærsla:"; +$a->strings["Update public posts"] = "Uppfæra opinberar færslur"; +$a->strings["Update now"] = "Uppfæra núna"; +$a->strings["Unignore"] = "Byrja að fylgjast með á ný"; +$a->strings["Currently blocked"] = "Útilokaður sem stendur"; +$a->strings["Currently ignored"] = "Hunsaður sem stendur"; +$a->strings["Currently archived"] = "Í geymslu"; +$a->strings["Replies/likes to your public posts may still be visible"] = "Svör eða \"líkar við\" á opinberar færslur þínar geta mögulega verið sýnileg öðrum"; +$a->strings["Notification for new posts"] = ""; +$a->strings["Send a notification of every new post of this contact"] = ""; +$a->strings["Blacklisted keywords"] = ""; +$a->strings["Comma separated list of keywords that should not be converted to hashtags, when \"Fetch information and keywords\" is selected"] = ""; +$a->strings["Actions"] = ""; +$a->strings["Contact Settings"] = ""; +$a->strings["Suggestions"] = "Uppástungur"; +$a->strings["Suggest potential friends"] = ""; +$a->strings["All Contacts"] = "Allir tengiliðir"; +$a->strings["Show all contacts"] = "Sýna alla tengiliði"; +$a->strings["Unblocked"] = "Afhunsað"; +$a->strings["Only show unblocked contacts"] = ""; +$a->strings["Blocked"] = "Banna"; +$a->strings["Only show blocked contacts"] = ""; +$a->strings["Ignored"] = "Hunsa"; +$a->strings["Only show ignored contacts"] = ""; +$a->strings["Archived"] = "Í geymslu"; +$a->strings["Only show archived contacts"] = "Aðeins sýna geymda tengiliði"; +$a->strings["Hidden"] = "Falinn"; +$a->strings["Only show hidden contacts"] = "Aðeins sýna falda tengiliði"; +$a->strings["Search your contacts"] = "Leita í þínum vinum"; +$a->strings["Update"] = "Uppfæra"; +$a->strings["Archive"] = "Setja í geymslu"; +$a->strings["Unarchive"] = "Taka úr geymslu"; +$a->strings["Batch Actions"] = ""; +$a->strings["View all contacts"] = "Skoða alla tengiliði"; +$a->strings["Common Friends"] = "Sameiginlegir vinir"; +$a->strings["View all common friends"] = ""; +$a->strings["Advanced Contact Settings"] = ""; +$a->strings["Mutual Friendship"] = "Sameiginlegur vinskapur"; +$a->strings["is a fan of yours"] = "er fylgjandi þinn"; +$a->strings["you are a fan of"] = "þú er fylgjandi"; +$a->strings["Toggle Blocked status"] = ""; +$a->strings["Toggle Ignored status"] = ""; +$a->strings["Toggle Archive status"] = ""; +$a->strings["Delete contact"] = "Eyða tengilið"; +$a->strings["Submit Request"] = "Senda beiðni"; +$a->strings["You already added this contact."] = ""; +$a->strings["Diaspora support isn't enabled. Contact can't be added."] = ""; +$a->strings["OStatus support is disabled. Contact can't be added."] = ""; +$a->strings["The network type couldn't be detected. Contact can't be added."] = ""; +$a->strings["Please answer the following:"] = "Vinnsamlegast svaraðu eftirfarandi:"; +$a->strings["Does %s know you?"] = "Þekkir %s þig?"; +$a->strings["Add a personal note:"] = "Bæta við persónulegri athugasemd"; +$a->strings["Your Identity Address:"] = "Auðkennisnetfang þitt:"; +$a->strings["Contact added"] = "Tengilið bætt við"; +$a->strings["Applications"] = "Forrit"; +$a->strings["No installed applications."] = "Engin uppsett forrit"; +$a->strings["Do you really want to delete this suggestion?"] = ""; +$a->strings["No suggestions available. If this is a new site, please try again in 24 hours."] = "Engar uppástungur tiltækar. Ef þetta er nýr vefur, reyndu þá aftur eftir um 24 klukkustundir."; +$a->strings["Ignore/Hide"] = "Hunsa/Fela"; +$a->strings["Not Extended"] = ""; +$a->strings["Item has been removed."] = "Atriði hefur verið fjarlægt."; +$a->strings["No contacts in common."] = ""; +$a->strings["Welcome to Friendica"] = "Velkomin(n) á Friendica"; +$a->strings["New Member Checklist"] = "Nýr notandi verklisti"; +$a->strings["We would like to offer some tips and links to help make your experience enjoyable. Click any item to visit the relevant page. A link to this page will be visible from your home page for two weeks after your initial registration and then will quietly disappear."] = ""; +$a->strings["Getting Started"] = ""; +$a->strings["Friendica Walk-Through"] = ""; +$a->strings["On your Quick Start page - find a brief introduction to your profile and network tabs, make some new connections, and find some groups to join."] = ""; +$a->strings["Go to Your Settings"] = ""; +$a->strings["On your Settings page - change your initial password. Also make a note of your Identity Address. This looks just like an email address - and will be useful in making friends on the free social web."] = ""; +$a->strings["Review the other settings, particularly the privacy settings. An unpublished directory listing is like having an unlisted phone number. In general, you should probably publish your listing - unless all of your friends and potential friends know exactly how to find you."] = "Yfirfarðu aðrar stillingar, sérstaklega gagnaleyndarstillingar. Óútgefin forsíða er einsog óskráð símanúmer. Sem þýðir að líklega viltu gefa út forsíðuna þína - nema að allir vinir þínir og tilvonandi vinir viti nákvæmlega hvernig á að finna þig."; +$a->strings["Upload a profile photo if you have not done so already. Studies have shown that people with real photos of themselves are ten times more likely to make friends than people who do not."] = "Að hlaða upp forsíðu mynd ef þú hefur ekki þegar gert það. Rannsóknir sýna að fólk sem hefur alvöru mynd af sér er tíu sinnum líklegra til að eignast vini en fólk sem ekki hefur mynd."; +$a->strings["Edit Your Profile"] = ""; +$a->strings["Edit your default profile to your liking. Review the settings for hiding your list of friends and hiding the profile from unknown visitors."] = "Breyttu sjálfgefnu forsíðunni einsog þú villt. Yfirfarðu stillingu til að fela vinalista á forsíðu og stillingu til að fela forsíðu fyrir ókunnum."; +$a->strings["Profile Keywords"] = ""; +$a->strings["Set some public keywords for your default profile which describe your interests. We may be able to find other people with similar interests and suggest friendships."] = "Bættu við leitarorðum í sjálfgefnu forsíðuna þína sem lýsa áhugamálum þínum. Þá er hægt að fólk með svipuð áhugamál og stinga uppá vinskap."; +$a->strings["Connecting"] = "Tengist"; +$a->strings["Importing Emails"] = ""; +$a->strings["Enter your email access information on your Connector Settings page if you wish to import and interact with friends or mailing lists from your email INBOX"] = "Fylltu út aðgangsupplýsingar póstfangsins þíns á Tengistillingasíðunni ef þú vilt sækja tölvupóst og eiga samskipti við vini eða póstlista úr innhólfi tölvupóstsins þíns"; +$a->strings["Go to Your Contacts Page"] = ""; +$a->strings["Your Contacts page is your gateway to managing friendships and connecting with friends on other networks. Typically you enter their address or site URL in the Add New Contact dialog."] = "Tengiliðasíðan er gáttin þín til að sýsla með vinasambönd og tengjast við vini á öðrum netum. Oftast setur þú vistfang eða slóð þeirra í Bæta við tengilið glugganum."; +$a->strings["Go to Your Site's Directory"] = ""; +$a->strings["The Directory page lets you find other people in this network or other federated sites. Look for a Connect or Follow link on their profile page. Provide your own Identity Address if requested."] = "Tengiliðalistinn er góð leit til að finna fólk á samfélagsnetinu eða öðrum sambandsnetum. Leitaðu að Tengjast/Connect eða Fylgja/Follow tenglum á forsíðunni þeirra. Mögulega þarftu að gefa upp auðkennisslóðina þína."; +$a->strings["Finding New People"] = ""; +$a->strings["On the side panel of the Contacts page are several tools to find new friends. We can match people by interest, look up people by name or interest, and provide suggestions based on network relationships. On a brand new site, friend suggestions will usually begin to be populated within 24 hours."] = ""; +$a->strings["Group Your Contacts"] = ""; +$a->strings["Once you have made some friends, organize them into private conversation groups from the sidebar of your Contacts page and then you can interact with each group privately on your Network page."] = "Eftir að þú hefur eignast nokkra vini, þá er best að flokka þá niður í hópa á hliðar slánni á Tengiliðasíðunni. Eftir það getur þú haft samskipti við hvern hóp fyrir sig á Samfélagssíðunni."; +$a->strings["Why Aren't My Posts Public?"] = ""; +$a->strings["Friendica respects your privacy. By default, your posts will only show up to people you've added as friends. For more information, see the help section from the link above."] = ""; +$a->strings["Getting Help"] = ""; +$a->strings["Go to the Help Section"] = ""; +$a->strings["Our help pages may be consulted for detail on other program features and resources."] = "Hægt er að styðjast við Hjálp síðuna til að fá leiðbeiningar um aðra eiginleika."; +$a->strings["Remove My Account"] = "Eyða þessum notanda"; +$a->strings["This will completely remove your account. Once this has been done it is not recoverable."] = "Þetta mun algjörlega eyða notandanum. Þegar þetta hefur verið gert er þetta ekki afturkræft."; +$a->strings["Please enter your password for verification:"] = "Sláðu inn aðgangsorð yðar:"; +$a->strings["Mood"] = ""; +$a->strings["Set your current mood and tell your friends"] = ""; +$a->strings["Item not found"] = "Atriði fannst ekki"; +$a->strings["Edit post"] = "Breyta skilaboðum"; +$a->strings["Warning: This group contains %s member from an insecure network."] = array( + 0 => "Aðvörun: Þessi hópur inniheldur %s notanda frá óöruggu neti.", + 1 => "Aðvörun: Þessi hópur inniheldur %s notendur frá óöruggu neti.", +); +$a->strings["Private messages to this group are at risk of public disclosure."] = "Einka samtöl send á þennan hóp eiga á hættu að verða opinber."; +$a->strings["Private messages to this person are at risk of public disclosure."] = "Einka skilaboð send á þennan notanda eiga á hættu að verða opinber."; +$a->strings["Invalid contact."] = "Ógildur tengiliður."; +$a->strings["Commented Order"] = "Athugasemdar röð"; +$a->strings["Sort by Comment Date"] = "Raða eftir umræðu dagsetningu"; +$a->strings["Posted Order"] = "Færlsu röð"; +$a->strings["Sort by Post Date"] = "Raða eftir færslu dagsetningu"; +$a->strings["Posts that mention or involve you"] = "Færslur sem tengjast þér"; +$a->strings["New"] = "Ný"; +$a->strings["Activity Stream - by date"] = "Færslu straumur - raðað eftir dagsetningu"; +$a->strings["Shared Links"] = ""; +$a->strings["Interesting Links"] = "Áhugaverðir tenglar"; +$a->strings["Starred"] = "Stjörnumerkt"; +$a->strings["Favourite Posts"] = "Uppáhalds færslur"; +$a->strings["Not available."] = "Ekki í boði."; +$a->strings["Time Conversion"] = "Tíma leiðréttir"; +$a->strings["Friendica provides this service for sharing events with other networks and friends in unknown timezones."] = "Friendica veitir þessa þjónustu til að deila atburðum milli neta og vina í óþekktum tímabeltum."; +$a->strings["UTC time: %s"] = "Máltími: %s"; +$a->strings["Current timezone: %s"] = "Núverandi tímabelti: %s"; +$a->strings["Converted localtime: %s"] = "Umbreyttur staðartími: %s"; +$a->strings["Please select your timezone:"] = "Veldu tímabeltið þitt:"; +$a->strings["The post was created"] = ""; +$a->strings["Group created."] = "Hópur stofnaður"; +$a->strings["Could not create group."] = "Gat ekki stofnað hóp."; +$a->strings["Group not found."] = "Hópur fannst ekki."; +$a->strings["Group name changed."] = "Hópur endurskýrður."; +$a->strings["Save Group"] = ""; +$a->strings["Create a group of contacts/friends."] = "Stofna hóp af tengiliðum/vinum"; +$a->strings["Group removed."] = "Hópi eytt."; +$a->strings["Unable to remove group."] = "Ekki tókst að eyða hóp."; +$a->strings["Group Editor"] = "Hópa sýslari"; +$a->strings["Members"] = "Aðilar"; +$a->strings["This introduction has already been accepted."] = "Þessi kynning hefur þegar verið samþykkt."; +$a->strings["Profile location is not valid or does not contain profile information."] = "Forsíðu slóð er ekki í lagi eða inniheldur ekki forsíðu upplýsingum."; +$a->strings["Warning: profile location has no identifiable owner name."] = "Aðvörun: forsíðu staðsetning hefur ekki aðgreinanlegt eigendanafn."; +$a->strings["Warning: profile location has no profile photo."] = "Aðvörun: forsíðu slóð hefur ekki forsíðu mynd."; +$a->strings["%d required parameter was not found at the given location"] = array( + 0 => "%d skilyrt breyta fannst ekki á uppgefinni staðsetningu", + 1 => "%d skilyrtar breytur fundust ekki á uppgefninni staðsetningu", +); +$a->strings["Introduction complete."] = "Kynning tilbúinn."; +$a->strings["Unrecoverable protocol error."] = "Alvarleg samskipta villa."; +$a->strings["Profile unavailable."] = "Ekki hægt að sækja forsíðu"; +$a->strings["%s has received too many connection requests today."] = "%s hefur fengið of margar tengibeiðnir í dag."; +$a->strings["Spam protection measures have been invoked."] = "Kveikt hefur verið á ruslsíu"; +$a->strings["Friends are advised to please try again in 24 hours."] = "Vinir eru beðnir um að reyna aftur eftir 24 klukkustundir."; +$a->strings["Invalid locator"] = "Ógild staðsetning"; +$a->strings["Invalid email address."] = "Ógilt póstfang."; +$a->strings["This account has not been configured for email. Request failed."] = ""; +$a->strings["You have already introduced yourself here."] = "Kynning hefur þegar átt sér stað hér."; +$a->strings["Apparently you are already friends with %s."] = "Þú ert þegar vinur %s."; +$a->strings["Invalid profile URL."] = "Ógild forsíðu slóð."; +$a->strings["Your introduction has been sent."] = "Kynningin þín hefur verið send."; +$a->strings["Remote subscription can't be done for your network. Please subscribe directly on your system."] = ""; +$a->strings["Please login to confirm introduction."] = "Skráðu þig inn til að staðfesta kynningu."; +$a->strings["Incorrect identity currently logged in. Please login to this profile."] = "Ekki réttur notandi skráður inn. Skráðu þig inn sem þessi notandi."; +$a->strings["Confirm"] = "Staðfesta"; +$a->strings["Hide this contact"] = "Fela þennan tengilið"; +$a->strings["Welcome home %s."] = "Velkomin(n) heim %s."; +$a->strings["Please confirm your introduction/connection request to %s."] = "Staðfestu kynninguna/tengibeiðnina við %s."; +$a->strings["Please enter your 'Identity Address' from one of the following supported communications networks:"] = "Settu inn 'Auðkennisnetfang' þitt úr einhverjum af eftirfarandi samskiptanetum:"; +$a->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."] = ""; +$a->strings["Friend/Connection Request"] = "Vinabeiðni/Tengibeiðni"; +$a->strings["Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, testuser@identi.ca"] = "Dæmi: siggi@demo.friendica.com, http://demo.friendica.com/profile/siggi, prufunotandi@identi.ca"; +$a->strings["StatusNet/Federated Social Web"] = "StatusNet/Federated Social Web"; +$a->strings[" - please do not use this form. Instead, enter %s into your Diaspora search bar."] = ""; +$a->strings["Image uploaded but image cropping failed."] = "Tókst að hala upp mynd en afskurður tókst ekki."; +$a->strings["Image size reduction [%s] failed."] = "Myndar minnkun [%s] tókst ekki."; +$a->strings["Shift-reload the page or clear browser cache if the new photo does not display immediately."] = "Ýta þarf á "; +$a->strings["Unable to process image"] = "Ekki tókst að vinna mynd"; +$a->strings["Upload File:"] = "Hlaða upp skrá:"; +$a->strings["Select a profile:"] = ""; +$a->strings["Upload"] = "Hlaða upp"; +$a->strings["or"] = "eða"; +$a->strings["skip this step"] = "sleppa þessu skrefi"; +$a->strings["select a photo from your photo albums"] = "velja mynd í myndabókum"; +$a->strings["Crop Image"] = "Skera af mynd"; +$a->strings["Please adjust the image cropping for optimum viewing."] = "Stilltu afskurð fyrir besta birtingu."; +$a->strings["Done Editing"] = "Breyting kláruð"; +$a->strings["Image uploaded successfully."] = "Upphölun á mynd tóks."; +$a->strings["Registration successful. Please check your email for further instructions."] = "Nýskráning tóks. Frekari fyrirmæli voru send í tölvupósti."; +$a->strings["Failed to send email message. Here your accout details:
      login: %s
      password: %s

      You can change your password after login."] = ""; +$a->strings["Registration successful."] = ""; +$a->strings["Your registration can not be processed."] = "Skráninguna þína er ekki hægt að vinna."; +$a->strings["Your registration is pending approval by the site owner."] = "Skráningin þín bíður samþykkis af eiganda síðunnar."; +$a->strings["You may (optionally) fill in this form via OpenID by supplying your OpenID and clicking 'Register'."] = "Þú mátt (valfrjálst) fylla í þetta svæði gegnum OpenID með því gefa upp þitt OpenID og ýta á 'Skrá'."; +$a->strings["If you are not familiar with OpenID, please leave that field blank and fill in the rest of the items."] = "Ef þú veist ekki hvað OpenID er, skildu þá þetta svæði eftir tómt en fylltu í restin af svæðunum."; +$a->strings["Your OpenID (optional): "] = "Þitt OpenID (valfrjálst):"; +$a->strings["Include your profile in member directory?"] = "Á forsíðan þín að sjást í notendalistanum?"; +$a->strings["Membership on this site is by invitation only."] = "Aðild að þessum vef er "; +$a->strings["Your invitation ID: "] = "Boðskorta auðkenni:"; +$a->strings["Your Full Name (e.g. Joe Smith, real or real-looking): "] = ""; +$a->strings["Your Email Address: "] = "Tölvupóstur:"; +$a->strings["New Password:"] = "Nýtt aðgangsorð:"; +$a->strings["Leave empty for an auto generated password."] = ""; +$a->strings["Confirm:"] = "Staðfesta:"; +$a->strings["Choose a profile nickname. This must begin with a text character. Your profile address on this site will then be 'nickname@\$sitename'."] = "Veldu gælunafn. Verður að byrja á staf. Slóðin þín á þessum vef verður síðan 'gælunafn@\$sitename'."; +$a->strings["Choose a nickname: "] = "Veldu gælunafn:"; +$a->strings["Import your profile to this friendica instance"] = ""; +$a->strings["Display"] = ""; +$a->strings["Social Networks"] = ""; +$a->strings["Connected apps"] = "Tengd forrit"; +$a->strings["Remove account"] = "Henda tengilið"; +$a->strings["Missing some important data!"] = "Vantar mikilvæg gögn!"; +$a->strings["Failed to connect with email account using the settings provided."] = "Ekki tókst að tengjast við pósthólf með stillingum sem uppgefnar eru."; +$a->strings["Email settings updated."] = "Stillingar póstfangs uppfærðar."; +$a->strings["Features updated"] = ""; +$a->strings["Relocate message has been send to your contacts"] = ""; +$a->strings["Empty passwords are not allowed. Password unchanged."] = "Tóm aðgangsorð eru ekki leyfileg. Aðgangsorð óbreytt."; +$a->strings["Wrong password."] = ""; +$a->strings["Password changed."] = "Aðgangsorði breytt."; +$a->strings["Password update failed. Please try again."] = "Uppfærsla á aðgangsorði tókst ekki. Reyndu aftur."; +$a->strings[" Please use a shorter name."] = " Notaðu styttra nafn."; +$a->strings[" Name too short."] = "Nafn of stutt."; +$a->strings["Wrong Password"] = ""; +$a->strings[" Not valid email."] = "Póstfang ógilt"; +$a->strings[" Cannot change to that email."] = "Ekki hægt að breyta yfir í þetta póstfang."; +$a->strings["Private forum has no privacy permissions. Using default privacy group."] = ""; +$a->strings["Private forum has no privacy permissions and no default privacy group."] = ""; +$a->strings["Settings updated."] = "Stillingar uppfærðar."; +$a->strings["Add application"] = "Bæta við forriti"; +$a->strings["Consumer Key"] = "Notenda lykill"; +$a->strings["Consumer Secret"] = "Notenda leyndarmál"; +$a->strings["Redirect"] = "Áframsenda"; +$a->strings["Icon url"] = "Táknmyndar slóð"; +$a->strings["You can't edit this application."] = "Þú getur ekki breytt þessu forriti."; +$a->strings["Connected Apps"] = "Tengd forrit"; +$a->strings["Client key starts with"] = "Lykill viðskiptavinar byrjar á"; +$a->strings["No name"] = "Ekkert nafn"; +$a->strings["Remove authorization"] = "Fjarlæga auðkenningu"; +$a->strings["No Plugin settings configured"] = "Engar stillingar í kerfiseiningu uppsettar"; +$a->strings["Plugin Settings"] = "Stillingar kerfiseiningar"; +$a->strings["Additional Features"] = ""; +$a->strings["General Social Media Settings"] = ""; +$a->strings["Disable intelligent shortening"] = ""; +$a->strings["Normally the system tries to find the best link to add to shortened posts. If this option is enabled then every shortened post will always point to the original friendica post."] = ""; +$a->strings["Automatically follow any GNU Social (OStatus) followers/mentioners"] = ""; +$a->strings["If you receive a message from an unknown OStatus user, this option decides what to do. If it is checked, a new contact will be created for every unknown user."] = ""; +$a->strings["Default group for OStatus contacts"] = ""; +$a->strings["Your legacy GNU Social account"] = ""; +$a->strings["If you enter your old GNU Social/Statusnet account name here (in the format user@domain.tld), your contacts will be added automatically. The field will be emptied when done."] = ""; +$a->strings["Repair OStatus subscriptions"] = ""; +$a->strings["Built-in support for %s connectivity is %s"] = "Innbyggður stuðningur fyrir %s tenging er%s"; +$a->strings["enabled"] = "kveikt"; +$a->strings["disabled"] = "slökkt"; +$a->strings["GNU Social (OStatus)"] = ""; +$a->strings["Email access is disabled on this site."] = "Slökkt hefur verið á tölvupóst aðgang á þessum þjón."; +$a->strings["Email/Mailbox Setup"] = "Tölvupóstur stilling"; +$a->strings["If you wish to communicate with email contacts using this service (optional), please specify how to connect to your mailbox."] = "Ef þú villt hafa samskipti við tölvupósts tengiliði með þessari þjónustu (valfrjálst), skilgreindu þá hvernig á að tengjast póstfanginu þínu."; +$a->strings["Last successful email check:"] = "Póstfang sannreynt síðast:"; +$a->strings["IMAP server name:"] = "IMAP þjónn:"; +$a->strings["IMAP port:"] = "IMAP port:"; +$a->strings["Security:"] = "Öryggi:"; +$a->strings["None"] = "Ekkert"; +$a->strings["Email login name:"] = "Notandanafn tölvupóstfangs:"; +$a->strings["Email password:"] = "Lykilorð tölvupóstfangs:"; +$a->strings["Reply-to address:"] = "Svarpóstfang:"; +$a->strings["Send public posts to all email contacts:"] = "Senda opinberar færslur á alla tölvupóst viðtakendur:"; +$a->strings["Action after import:"] = ""; +$a->strings["Move to folder"] = "Flytja yfir í skrásafn"; +$a->strings["Move to folder:"] = "Flytja yfir í skrásafn:"; +$a->strings["Display Settings"] = ""; +$a->strings["Display Theme:"] = "Útlits þema:"; +$a->strings["Mobile Theme:"] = ""; +$a->strings["Update browser every xx seconds"] = "Endurhlaða vefsíðu á xx sekúndu fresti"; +$a->strings["Minimum of 10 seconds. Enter -1 to disable it."] = ""; +$a->strings["Number of items to display per page:"] = ""; +$a->strings["Maximum of 100 items"] = ""; +$a->strings["Number of items to display per page when viewed from mobile device:"] = ""; +$a->strings["Don't show emoticons"] = ""; +$a->strings["Calendar"] = ""; +$a->strings["Beginning of week:"] = ""; +$a->strings["Don't show notices"] = ""; +$a->strings["Infinite scroll"] = ""; +$a->strings["Automatic updates only at the top of the network page"] = ""; +$a->strings["General Theme Settings"] = ""; +$a->strings["Custom Theme Settings"] = ""; +$a->strings["Content Settings"] = ""; $a->strings["Theme settings"] = ""; +$a->strings["User Types"] = ""; +$a->strings["Community Types"] = ""; +$a->strings["Normal Account Page"] = ""; +$a->strings["This account is a normal personal profile"] = "Þessi notandi er með venjulega persónulega forsíðu"; +$a->strings["Soapbox Page"] = ""; +$a->strings["Automatically approve all connection/friend requests as read-only fans"] = "Sjálfkrafa samþykkja allar tengibeiðnir/vinabeiðnir einungis sem les-fylgjendur"; +$a->strings["Community Forum/Celebrity Account"] = ""; +$a->strings["Automatically approve all connection/friend requests as read-write fans"] = "Sjálfkrafa samþykkja allar tengibeiðnir/vinabeiðnir sem les-skrif fylgjendur"; +$a->strings["Automatic Friend Page"] = ""; +$a->strings["Automatically approve all connection/friend requests as friends"] = "Sjálfkrafa samþykkja allar tengibeiðnir/vinabeiðnir sem vini"; +$a->strings["Private Forum [Experimental]"] = "Einkaspjallsvæði [á tilraunastigi]"; +$a->strings["Private forum - approved members only"] = "Einkaspjallsvæði - einungis skráðir meðlimir"; +$a->strings["OpenID:"] = "OpenID:"; +$a->strings["(Optional) Allow this OpenID to login to this account."] = "(Valfrjálst) Leyfa þessu OpenID til að auðkennast sem þessi notandi."; +$a->strings["Publish your default profile in your local site directory?"] = "Gefa út sjálfgefna forsíðu í tengiliðalista á þessum þjón?"; +$a->strings["Publish your default profile in the global social directory?"] = "Gefa sjálfgefna forsíðu út í alheimstengiliðalista?"; +$a->strings["Hide your contact/friend list from viewers of your default profile?"] = "Fela tengiliða-/vinalistann þinn fyrir áhorfendum á sjálfgefinni forsíðu?"; +$a->strings["If enabled, posting public messages to Diaspora and other networks isn't possible."] = ""; +$a->strings["Allow friends to post to your profile page?"] = "Leyfa vinum að deila á forsíðuna þína?"; +$a->strings["Allow friends to tag your posts?"] = "Leyfa vinum að merkja færslurnar þínar?"; +$a->strings["Allow us to suggest you as a potential friend to new members?"] = "Leyfa að stungið verði uppá þér sem hugsamlegum vinur fyrir aðra notendur? "; +$a->strings["Permit unknown people to send you private mail?"] = ""; +$a->strings["Profile is not published."] = "Forsíðu hefur ekki verið gefinn út."; +$a->strings["Your Identity Address is '%s' or '%s'."] = ""; +$a->strings["Automatically expire posts after this many days:"] = "Sjálfkrafa fyrna færslu eftir hvað marga daga:"; +$a->strings["If empty, posts will not expire. Expired posts will be deleted"] = "Tómar færslur renna ekki út. Útrunnum færslum er eytt"; +$a->strings["Advanced expiration settings"] = "Ítarlegar stillingar fyrningatíma"; +$a->strings["Advanced Expiration"] = "Flókin fyrning"; +$a->strings["Expire posts:"] = "Fyrna færslur:"; +$a->strings["Expire personal notes:"] = "Fyrna einka glósur:"; +$a->strings["Expire starred posts:"] = "Fyrna stjörnumerktar færslur:"; +$a->strings["Expire photos:"] = "Fyrna myndum:"; +$a->strings["Only expire posts by others:"] = ""; +$a->strings["Account Settings"] = "Stillingar aðgangs"; +$a->strings["Password Settings"] = "Stillingar aðgangsorða"; +$a->strings["Leave password fields blank unless changing"] = "Hafðu aðgangsorða svæði tóm nema þegar verið er að breyta"; +$a->strings["Current Password:"] = ""; +$a->strings["Your current password to confirm the changes"] = ""; +$a->strings["Password:"] = ""; +$a->strings["Basic Settings"] = "Grunnstillingar"; +$a->strings["Email Address:"] = "Póstfang:"; +$a->strings["Your Timezone:"] = "Þitt tímabelti:"; +$a->strings["Your Language:"] = ""; +$a->strings["Set the language we use to show you friendica interface and to send you emails"] = ""; +$a->strings["Default Post Location:"] = "Sjálfgefin staðsetning færslu:"; +$a->strings["Use Browser Location:"] = "Nota vafra staðsetningu:"; +$a->strings["Security and Privacy Settings"] = "Öryggis og friðhelgistillingar"; +$a->strings["Maximum Friend Requests/Day:"] = "Hámarks vinabeiðnir á dag:"; +$a->strings["(to prevent spam abuse)"] = "(til að koma í veg fyrir rusl misnotkun)"; +$a->strings["Default Post Permissions"] = "Sjálfgefnar aðgangstýring á færslum"; +$a->strings["(click to open/close)"] = "(ýttu á til að opna/loka)"; +$a->strings["Default Private Post"] = ""; +$a->strings["Default Public Post"] = ""; +$a->strings["Default Permissions for New Posts"] = ""; +$a->strings["Maximum private messages per day from unknown people:"] = ""; +$a->strings["Notification Settings"] = "Stillingar á tilkynningum"; +$a->strings["By default post a status message when:"] = ""; +$a->strings["accepting a friend request"] = "samþykki vinabeiðni"; +$a->strings["joining a forum/community"] = "ganga til liðs við hóp/samfélag"; +$a->strings["making an interesting profile change"] = ""; +$a->strings["Send a notification email when:"] = "Senda tilkynninga tölvupóst þegar:"; +$a->strings["You receive an introduction"] = "Þú færð kynningu"; +$a->strings["Your introductions are confirmed"] = "Kynningarnar þínar eru samþykktar"; +$a->strings["Someone writes on your profile wall"] = "Einhver skrifar á vegginn þínn"; +$a->strings["Someone writes a followup comment"] = "Einhver skrifar athugasemd á færslu hjá þér"; +$a->strings["You receive a private message"] = "Þú færð einkaskilaboð"; +$a->strings["You receive a friend suggestion"] = "Þér hefur borist vina uppástunga"; +$a->strings["You are tagged in a post"] = "Þú varst merkt(ur) í færslu"; +$a->strings["You are poked/prodded/etc. in a post"] = ""; +$a->strings["Activate desktop notifications"] = ""; +$a->strings["Show desktop popup on new notifications"] = ""; +$a->strings["Text-only notification emails"] = ""; +$a->strings["Send text only notification emails, without the html part"] = ""; +$a->strings["Advanced Account/Page Type Settings"] = ""; +$a->strings["Change the behaviour of this account for special situations"] = ""; +$a->strings["Relocate"] = ""; +$a->strings["If you have moved this profile from another server, and some of your contacts don't receive your updates, try pushing this button."] = ""; +$a->strings["Resend relocate message to contacts"] = ""; +$a->strings["Number of daily wall messages for %s exceeded. Message failed."] = ""; +$a->strings["No recipient selected."] = "Engir viðtakendur valdir."; +$a->strings["Unable to check your home location."] = ""; +$a->strings["Message could not be sent."] = "Ekki tókst að senda skilaboð."; +$a->strings["Message collection failure."] = "Ekki tókst að sækja skilaboð."; +$a->strings["Message sent."] = "Skilaboð send."; +$a->strings["No recipient."] = ""; +$a->strings["Send Private Message"] = "Senda einkaskilaboð"; +$a->strings["If you wish for %s to respond, please check that the privacy settings on your site allow private mail from unknown senders."] = ""; +$a->strings["To:"] = "Til:"; +$a->strings["Subject:"] = "Efni:"; +$a->strings["link"] = "tengill"; +$a->strings["Authorize application connection"] = "Leyfa forriti að tengjast"; +$a->strings["Return to your app and insert this Securty Code:"] = "Farðu aftur í forritið þitt og settu þennan öryggiskóða þar"; +$a->strings["Please login to continue."] = "Skráðu þig inn til að halda áfram."; +$a->strings["Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?"] = "Vilt þú leyfa þessu forriti að hafa aðgang að færslum og tengiliðum, og/eða stofna nýjar færslur fyrir þig?"; +$a->strings["Source (bbcode) text:"] = ""; +$a->strings["Source (Diaspora) text to convert to BBcode:"] = ""; +$a->strings["Source input: "] = ""; +$a->strings["bb2html (raw HTML): "] = "bb2html (hrátt HTML): "; +$a->strings["bb2html: "] = "bb2html: "; +$a->strings["bb2html2bb: "] = "bb2html2bb: "; +$a->strings["bb2md: "] = "bb2md: "; +$a->strings["bb2md2html: "] = "bb2md2html: "; +$a->strings["bb2dia2bb: "] = "bb2dia2bb: "; +$a->strings["bb2md2html2bb: "] = "bb2md2html2bb: "; +$a->strings["Source input (Diaspora format): "] = ""; +$a->strings["diaspora2bb: "] = "diaspora2bb: "; +$a->strings["Unable to locate original post."] = "Ekki tókst að finna upphaflega færslu."; +$a->strings["Empty post discarded."] = "Tóm færsla eytt."; +$a->strings["System error. Post not saved."] = "Kerfisvilla. Færsla ekki vistuð."; +$a->strings["This message was sent to you by %s, a member of the Friendica social network."] = "Skilaboðið sendi %s, notandi á Friendica samfélagsnetinu."; +$a->strings["You may visit them online at %s"] = "Þú getur heimsótt þau á netinu á %s"; +$a->strings["Please contact the sender by replying to this post if you do not wish to receive these messages."] = "Hafðu samband við sendanda með því að svara á þessari færslu ef þú villt ekki fá þessi skilaboð."; +$a->strings["%s posted an update."] = "%s hefur sent uppfærslu."; +$a->strings["Subscribing to OStatus contacts"] = ""; +$a->strings["No contact provided."] = ""; +$a->strings["Couldn't fetch information for contact."] = ""; +$a->strings["Couldn't fetch friends for contact."] = ""; +$a->strings["success"] = "tókst"; +$a->strings["failed"] = "mistókst"; +$a->strings["%1\$s welcomes %2\$s"] = ""; +$a->strings["Tips for New Members"] = "Ábendingar fyrir nýja notendur"; +$a->strings["Unable to locate contact information."] = "Ekki tókst að staðsetja tengiliðs upplýsingar."; +$a->strings["Do you really want to delete this message?"] = ""; +$a->strings["Message deleted."] = "Skilaboðum eytt."; +$a->strings["Conversation removed."] = "Samtali eytt."; +$a->strings["No messages."] = "Engin skilaboð."; +$a->strings["Message not available."] = "Ekki næst í skilaboð."; +$a->strings["Delete message"] = "Eyða skilaboðum"; +$a->strings["Delete conversation"] = "Eyða samtali"; +$a->strings["No secure communications available. You may be able to respond from the sender's profile page."] = ""; +$a->strings["Send Reply"] = "Senda svar"; +$a->strings["Unknown sender - %s"] = ""; +$a->strings["You and %s"] = ""; +$a->strings["%s and You"] = ""; +$a->strings["D, d M Y - g:i A"] = ""; +$a->strings["%d message"] = array( + 0 => "", + 1 => "", +); +$a->strings["Manage Identities and/or Pages"] = "Sýsla með notendur og/eða síður"; +$a->strings["Toggle between different identities or community/group pages which share your account details or which you have been granted \"manage\" permissions"] = "Skipta á milli auðkenna eða hópa- / stjörnunotanda sem deila þínum aðgangs upplýsingum eða þér verið úthlutað \"umsýslu\" réttindum."; +$a->strings["Select an identity to manage: "] = "Veldu notanda til að sýsla með:"; +$a->strings["via"] = ""; +$a->strings["Repeat the image"] = ""; +$a->strings["Will repeat your image to fill the background."] = ""; +$a->strings["Stretch"] = ""; +$a->strings["Will stretch to width/height of the image."] = ""; +$a->strings["Resize fill and-clip"] = ""; +$a->strings["Resize to fill and retain aspect ratio."] = ""; +$a->strings["Resize best fit"] = ""; +$a->strings["Resize to best fit and retain aspect ratio."] = ""; +$a->strings["Remote"] = ""; +$a->strings["Visitor"] = ""; +$a->strings["Default"] = ""; +$a->strings["Note: "] = ""; +$a->strings["Check image permissions if all users are allowed to visit the image"] = ""; +$a->strings["Select scheme"] = ""; +$a->strings["Navigation bar background color"] = ""; +$a->strings["Navigation bar icon color "] = ""; +$a->strings["Link color"] = "Litur tengils"; +$a->strings["Set the background color"] = ""; +$a->strings["Content background transparency"] = ""; +$a->strings["Set the background image"] = ""; $a->strings["Set resize level for images in posts and comments (width and height)"] = ""; $a->strings["Set font-size for posts and comments"] = ""; $a->strings["Set theme width"] = ""; $a->strings["Color scheme"] = ""; -$a->strings["Set line-height for posts and comments"] = ""; -$a->strings["Set colour scheme"] = "Setja litar þema"; $a->strings["Alignment"] = ""; $a->strings["Left"] = ""; $a->strings["Center"] = ""; $a->strings["Posts font size"] = ""; $a->strings["Textareas font size"] = ""; +$a->strings["Set line-height for posts and comments"] = ""; +$a->strings["Set colour scheme"] = "Setja litar þema"; +$a->strings["Community Profiles"] = ""; +$a->strings["Last users"] = "Nýjustu notendurnir"; +$a->strings["Find Friends"] = ""; +$a->strings["Local Directory"] = ""; +$a->strings["Quick Start"] = ""; +$a->strings["Connect Services"] = ""; +$a->strings["Comma separated list of helper forums"] = ""; +$a->strings["Set style"] = ""; +$a->strings["Community Pages"] = ""; +$a->strings["Help or @NewHere ?"] = ""; +$a->strings["Your contacts"] = ""; +$a->strings["Your personal photos"] = "Einkamyndirnar þínar"; +$a->strings["Last likes"] = "Nýjustu \"líkar þetta\""; +$a->strings["Last photos"] = "Nýjustu myndirnar"; +$a->strings["Earth Layers"] = ""; +$a->strings["Set zoomfactor for Earth Layers"] = ""; +$a->strings["Set longitude (X) for Earth Layers"] = ""; +$a->strings["Set latitude (Y) for Earth Layers"] = ""; +$a->strings["Show/hide boxes at right-hand column:"] = ""; $a->strings["Set resolution for middle column"] = ""; $a->strings["Set color scheme"] = "Setja litar þema"; $a->strings["Set zoomfactor for Earth Layer"] = ""; -$a->strings["Set longitude (X) for Earth Layers"] = ""; -$a->strings["Set latitude (Y) for Earth Layers"] = ""; -$a->strings["Community Pages"] = ""; -$a->strings["Earth Layers"] = ""; -$a->strings["Community Profiles"] = ""; -$a->strings["Help or @NewHere ?"] = ""; -$a->strings["Connect Services"] = ""; -$a->strings["Find Friends"] = ""; -$a->strings["Last users"] = "Nýjustu notendurnir"; -$a->strings["Last photos"] = "Nýjustu myndirnar"; -$a->strings["Last likes"] = "Nýjustu \"líkar þetta\""; -$a->strings["Your contacts"] = ""; -$a->strings["Your personal photos"] = "Þínar einka myndir"; -$a->strings["Local Directory"] = ""; -$a->strings["Set zoomfactor for Earth Layers"] = ""; -$a->strings["Show/hide boxes at right-hand column:"] = ""; -$a->strings["Set style"] = ""; $a->strings["greenzero"] = ""; $a->strings["purplezero"] = ""; $a->strings["easterbunny"] = ""; diff --git a/view/it/messages.po b/view/lang/it/messages.po similarity index 100% rename from view/it/messages.po rename to view/lang/it/messages.po diff --git a/view/it/strings.php b/view/lang/it/strings.php similarity index 100% rename from view/it/strings.php rename to view/lang/it/strings.php diff --git a/view/nb-no/messages.po b/view/lang/nb-no/messages.po similarity index 100% rename from view/nb-no/messages.po rename to view/lang/nb-no/messages.po diff --git a/view/nb-no/strings.php b/view/lang/nb-no/strings.php similarity index 100% rename from view/nb-no/strings.php rename to view/lang/nb-no/strings.php diff --git a/view/nl/messages.po b/view/lang/nl/messages.po similarity index 100% rename from view/nl/messages.po rename to view/lang/nl/messages.po diff --git a/view/nl/strings.php b/view/lang/nl/strings.php similarity index 100% rename from view/nl/strings.php rename to view/lang/nl/strings.php diff --git a/view/pl/messages.po b/view/lang/pl/messages.po similarity index 100% rename from view/pl/messages.po rename to view/lang/pl/messages.po diff --git a/view/pl/strings.php b/view/lang/pl/strings.php similarity index 100% rename from view/pl/strings.php rename to view/lang/pl/strings.php diff --git a/view/pt-br/messages.po b/view/lang/pt-br/messages.po similarity index 63% rename from view/pt-br/messages.po rename to view/lang/pt-br/messages.po index 5574390c5..2dfb52fc9 100644 --- a/view/pt-br/messages.po +++ b/view/lang/pt-br/messages.po @@ -5,8 +5,10 @@ # Translators: # abinoam , 2013 # abinoam , 2012 +# André Alves , 2016 # Frederico Gonçalves Guimarães , 2011 # Frederico Gonçalves Guimarães , 2011 +# Beatriz Vital , 2016 # Calango Jr , 2014 # Frederico Gonçalves Guimarães , 2011-2013 # Frederico Gonçalves Guimarães , 2011 @@ -22,1255 +24,466 @@ msgid "" msgstr "" "Project-Id-Version: friendica\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-04-04 17:54+0200\n" -"PO-Revision-Date: 2015-05-15 20:48+0000\n" -"Last-Translator: Sérgio Lima \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/friendica/language/pt_BR/)\n" +"POT-Creation-Date: 2016-08-09 18:10+0200\n" +"PO-Revision-Date: 2016-09-18 20:53+0000\n" +"Last-Translator: André Alves \n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/Friendica/friendica/language/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: ../../view/theme/cleanzero/config.php:80 -#: ../../view/theme/vier/config.php:56 -#: ../../view/theme/duepuntozero/config.php:59 -#: ../../view/theme/diabook/config.php:148 -#: ../../view/theme/diabook/theme.php:633 -#: ../../view/theme/quattro/config.php:64 ../../view/theme/dispy/config.php:70 -#: ../../object/Item.php:678 ../../mod/contacts.php:492 -#: ../../mod/manage.php:110 ../../mod/fsuggest.php:107 -#: ../../mod/photos.php:1084 ../../mod/photos.php:1203 -#: ../../mod/photos.php:1514 ../../mod/photos.php:1565 -#: ../../mod/photos.php:1609 ../../mod/photos.php:1697 -#: ../../mod/invite.php:140 ../../mod/events.php:478 ../../mod/mood.php:137 -#: ../../mod/message.php:335 ../../mod/message.php:564 -#: ../../mod/profiles.php:686 ../../mod/install.php:248 -#: ../../mod/install.php:286 ../../mod/crepair.php:186 -#: ../../mod/content.php:710 ../../mod/poke.php:199 ../../mod/localtime.php:45 -msgid "Submit" -msgstr "Enviar" +#: include/datetime.php:57 include/datetime.php:59 mod/profiles.php:698 +msgid "Miscellaneous" +msgstr "Miscelânea" -#: ../../view/theme/cleanzero/config.php:82 -#: ../../view/theme/vier/config.php:58 -#: ../../view/theme/duepuntozero/config.php:61 -#: ../../view/theme/diabook/config.php:150 -#: ../../view/theme/quattro/config.php:66 ../../view/theme/dispy/config.php:72 -msgid "Theme settings" -msgstr "Configurações do tema" +#: include/datetime.php:183 include/identity.php:627 +msgid "Birthday:" +msgstr "Aniversário:" -#: ../../view/theme/cleanzero/config.php:83 -msgid "Set resize level for images in posts and comments (width and height)" -msgstr "Configure o nível de redimensionamento para imagens em publicações e comentários (largura e altura)" +#: include/datetime.php:185 mod/profiles.php:721 +msgid "Age: " +msgstr "Idade: " -#: ../../view/theme/cleanzero/config.php:84 -#: ../../view/theme/diabook/config.php:151 -#: ../../view/theme/dispy/config.php:73 -msgid "Set font-size for posts and comments" -msgstr "Escolha o tamanho da fonte para publicações e comentários" +#: include/datetime.php:187 +msgid "YYYY-MM-DD or MM-DD" +msgstr "AAAA-MM-DD ou MM-DD" -#: ../../view/theme/cleanzero/config.php:85 -msgid "Set theme width" -msgstr "Configure a largura do tema" +#: include/datetime.php:341 +msgid "never" +msgstr "nunca" -#: ../../view/theme/cleanzero/config.php:86 -#: ../../view/theme/quattro/config.php:68 -msgid "Color scheme" -msgstr "Esquema de cores" +#: include/datetime.php:347 +msgid "less than a second ago" +msgstr "menos de um segundo atrás" -#: ../../view/theme/vier/config.php:59 -msgid "Set style" -msgstr "escolha estilo" +#: include/datetime.php:357 +msgid "year" +msgstr "ano" -#: ../../view/theme/duepuntozero/config.php:44 ../../include/text.php:1719 -#: ../../include/user.php:247 -msgid "default" -msgstr "padrão" +#: include/datetime.php:357 +msgid "years" +msgstr "anos" -#: ../../view/theme/duepuntozero/config.php:45 -msgid "greenzero" -msgstr "greenzero" +#: include/datetime.php:358 include/event.php:480 mod/cal.php:287 +#: mod/events.php:389 +msgid "month" +msgstr "mês" -#: ../../view/theme/duepuntozero/config.php:46 -msgid "purplezero" -msgstr "purplezero" +#: include/datetime.php:358 +msgid "months" +msgstr "meses" -#: ../../view/theme/duepuntozero/config.php:47 -msgid "easterbunny" -msgstr "easterbunny" +#: include/datetime.php:359 include/event.php:481 mod/cal.php:288 +#: mod/events.php:390 +msgid "week" +msgstr "semana" -#: ../../view/theme/duepuntozero/config.php:48 -msgid "darkzero" -msgstr "darkzero" +#: include/datetime.php:359 +msgid "weeks" +msgstr "semanas" -#: ../../view/theme/duepuntozero/config.php:49 -msgid "comix" -msgstr "comix" +#: include/datetime.php:360 include/event.php:482 mod/cal.php:289 +#: mod/events.php:391 +msgid "day" +msgstr "dia" -#: ../../view/theme/duepuntozero/config.php:50 -msgid "slackr" -msgstr "slackr" +#: include/datetime.php:360 +msgid "days" +msgstr "dias" -#: ../../view/theme/duepuntozero/config.php:62 -msgid "Variations" -msgstr "Variações" +#: include/datetime.php:361 +msgid "hour" +msgstr "hora" -#: ../../view/theme/diabook/config.php:142 -#: ../../view/theme/diabook/theme.php:621 ../../include/acl_selectors.php:335 -msgid "don't show" -msgstr "não exibir" +#: include/datetime.php:361 +msgid "hours" +msgstr "horas" -#: ../../view/theme/diabook/config.php:142 -#: ../../view/theme/diabook/theme.php:621 ../../include/acl_selectors.php:334 -msgid "show" -msgstr "exibir" +#: include/datetime.php:362 +msgid "minute" +msgstr "minuto" -#: ../../view/theme/diabook/config.php:152 -#: ../../view/theme/dispy/config.php:74 -msgid "Set line-height for posts and comments" -msgstr "Escolha comprimento da linha para publicações e comentários" +#: include/datetime.php:362 +msgid "minutes" +msgstr "minutos" -#: ../../view/theme/diabook/config.php:153 -msgid "Set resolution for middle column" -msgstr "Escolha a resolução para a coluna do meio" +#: include/datetime.php:363 +msgid "second" +msgstr "segundo" -#: ../../view/theme/diabook/config.php:154 -msgid "Set color scheme" -msgstr "Configure o esquema de cores" +#: include/datetime.php:363 +msgid "seconds" +msgstr "segundos" -#: ../../view/theme/diabook/config.php:155 -msgid "Set zoomfactor for Earth Layer" -msgstr "Configure o zoom para Camadas da Terra" - -#: ../../view/theme/diabook/config.php:156 -#: ../../view/theme/diabook/theme.php:585 -msgid "Set longitude (X) for Earth Layers" -msgstr "Configure longitude (X) para Camadas da Terra" - -#: ../../view/theme/diabook/config.php:157 -#: ../../view/theme/diabook/theme.php:586 -msgid "Set latitude (Y) for Earth Layers" -msgstr "Configure latitude (Y) para Camadas da Terra" - -#: ../../view/theme/diabook/config.php:158 -#: ../../view/theme/diabook/theme.php:130 -#: ../../view/theme/diabook/theme.php:544 -#: ../../view/theme/diabook/theme.php:624 -msgid "Community Pages" -msgstr "Páginas da Comunidade" - -#: ../../view/theme/diabook/config.php:159 -#: ../../view/theme/diabook/theme.php:579 -#: ../../view/theme/diabook/theme.php:625 -msgid "Earth Layers" -msgstr "Camadas da Terra" - -#: ../../view/theme/diabook/config.php:160 -#: ../../view/theme/diabook/theme.php:391 -#: ../../view/theme/diabook/theme.php:626 -msgid "Community Profiles" -msgstr "Profiles Comunitários" - -#: ../../view/theme/diabook/config.php:161 -#: ../../view/theme/diabook/theme.php:599 -#: ../../view/theme/diabook/theme.php:627 -msgid "Help or @NewHere ?" -msgstr "Ajuda ou @NewHere ?" - -#: ../../view/theme/diabook/config.php:162 -#: ../../view/theme/diabook/theme.php:606 -#: ../../view/theme/diabook/theme.php:628 -msgid "Connect Services" -msgstr "Conectar serviços" - -#: ../../view/theme/diabook/config.php:163 -#: ../../view/theme/diabook/theme.php:523 -#: ../../view/theme/diabook/theme.php:629 -msgid "Find Friends" -msgstr "Encontrar amigos" - -#: ../../view/theme/diabook/config.php:164 -#: ../../view/theme/diabook/theme.php:412 -#: ../../view/theme/diabook/theme.php:630 -msgid "Last users" -msgstr "Últimos usuários" - -#: ../../view/theme/diabook/config.php:165 -#: ../../view/theme/diabook/theme.php:486 -#: ../../view/theme/diabook/theme.php:631 -msgid "Last photos" -msgstr "Últimas fotos" - -#: ../../view/theme/diabook/config.php:166 -#: ../../view/theme/diabook/theme.php:441 -#: ../../view/theme/diabook/theme.php:632 -msgid "Last likes" -msgstr "Últimas gostadas" - -#: ../../view/theme/diabook/theme.php:123 ../../include/nav.php:105 -#: ../../include/nav.php:148 ../../mod/notifications.php:93 -msgid "Home" -msgstr "Pessoal" - -#: ../../view/theme/diabook/theme.php:123 ../../include/nav.php:76 -#: ../../include/nav.php:148 -msgid "Your posts and conversations" -msgstr "Suas publicações e conversas" - -#: ../../view/theme/diabook/theme.php:124 ../../boot.php:2133 -#: ../../include/profile_advanced.php:7 ../../include/profile_advanced.php:87 -#: ../../include/nav.php:77 ../../mod/profperm.php:103 -#: ../../mod/newmember.php:32 -msgid "Profile" -msgstr "Perfil " - -#: ../../view/theme/diabook/theme.php:124 ../../include/nav.php:77 -msgid "Your profile page" -msgstr "Sua página de perfil" - -#: ../../view/theme/diabook/theme.php:125 ../../include/nav.php:177 -#: ../../mod/contacts.php:718 -msgid "Contacts" -msgstr "Contatos" - -#: ../../view/theme/diabook/theme.php:125 -msgid "Your contacts" -msgstr "Seus contatos" - -#: ../../view/theme/diabook/theme.php:126 ../../boot.php:2140 -#: ../../include/nav.php:78 ../../mod/fbrowser.php:25 -msgid "Photos" -msgstr "Fotos" - -#: ../../view/theme/diabook/theme.php:126 ../../include/nav.php:78 -msgid "Your photos" -msgstr "Suas fotos" - -#: ../../view/theme/diabook/theme.php:127 ../../boot.php:2157 -#: ../../include/nav.php:80 ../../mod/events.php:370 -msgid "Events" -msgstr "Eventos" - -#: ../../view/theme/diabook/theme.php:127 ../../include/nav.php:80 -msgid "Your events" -msgstr "Seus eventos" - -#: ../../view/theme/diabook/theme.php:128 ../../include/nav.php:81 -msgid "Personal notes" -msgstr "Suas anotações pessoais" - -#: ../../view/theme/diabook/theme.php:128 -msgid "Your personal photos" -msgstr "Suas fotos pessoais" - -#: ../../view/theme/diabook/theme.php:129 ../../include/nav.php:129 -#: ../../include/nav.php:131 ../../mod/community.php:32 -msgid "Community" -msgstr "Comunidade" - -#: ../../view/theme/diabook/theme.php:463 ../../include/conversation.php:118 -#: ../../include/conversation.php:245 ../../include/text.php:1983 -msgid "event" -msgstr "evento" - -#: ../../view/theme/diabook/theme.php:466 -#: ../../view/theme/diabook/theme.php:475 ../../include/diaspora.php:2011 -#: ../../include/conversation.php:121 ../../include/conversation.php:130 -#: ../../include/conversation.php:248 ../../include/conversation.php:257 -#: ../../mod/like.php:149 ../../mod/like.php:319 ../../mod/subthread.php:87 -#: ../../mod/tagger.php:62 -msgid "status" -msgstr "status" - -#: ../../view/theme/diabook/theme.php:471 ../../include/diaspora.php:2011 -#: ../../include/conversation.php:126 ../../include/conversation.php:253 -#: ../../include/text.php:1985 ../../mod/like.php:149 -#: ../../mod/subthread.php:87 ../../mod/tagger.php:62 -msgid "photo" -msgstr "foto" - -#: ../../view/theme/diabook/theme.php:480 ../../include/diaspora.php:2027 -#: ../../include/conversation.php:137 ../../mod/like.php:166 +#: include/datetime.php:372 #, php-format -msgid "%1$s likes %2$s's %3$s" -msgstr "%1$s gosta de %3$s de %2$s" +msgid "%1$d %2$s ago" +msgstr "%1$d %2$s atrás" -#: ../../view/theme/diabook/theme.php:499 ../../mod/photos.php:60 -#: ../../mod/photos.php:155 ../../mod/photos.php:1064 -#: ../../mod/photos.php:1187 ../../mod/photos.php:1210 -#: ../../mod/photos.php:1760 ../../mod/photos.php:1772 -msgid "Contact Photos" -msgstr "Fotos dos contatos" - -#: ../../view/theme/diabook/theme.php:500 ../../include/user.php:335 -#: ../../include/user.php:342 ../../include/user.php:349 -#: ../../mod/photos.php:155 ../../mod/photos.php:731 ../../mod/photos.php:1187 -#: ../../mod/photos.php:1210 ../../mod/profile_photo.php:74 -#: ../../mod/profile_photo.php:81 ../../mod/profile_photo.php:88 -#: ../../mod/profile_photo.php:204 ../../mod/profile_photo.php:296 -#: ../../mod/profile_photo.php:305 -msgid "Profile Photos" -msgstr "Fotos do perfil" - -#: ../../view/theme/diabook/theme.php:524 -msgid "Local Directory" -msgstr "Diretório Local" - -#: ../../view/theme/diabook/theme.php:525 ../../mod/directory.php:51 -msgid "Global Directory" -msgstr "Diretório global" - -#: ../../view/theme/diabook/theme.php:526 ../../include/contact_widgets.php:36 -msgid "Similar Interests" -msgstr "Interesses Parecidos" - -#: ../../view/theme/diabook/theme.php:527 ../../include/contact_widgets.php:35 -#: ../../mod/suggest.php:68 -msgid "Friend Suggestions" -msgstr "Sugestões de amigos" - -#: ../../view/theme/diabook/theme.php:528 ../../include/contact_widgets.php:38 -msgid "Invite Friends" -msgstr "Convidar amigos" - -#: ../../view/theme/diabook/theme.php:544 -#: ../../view/theme/diabook/theme.php:648 ../../include/nav.php:172 -#: ../../mod/settings.php:90 ../../mod/admin.php:1104 ../../mod/admin.php:1325 -#: ../../mod/newmember.php:22 -msgid "Settings" -msgstr "Configurações" - -#: ../../view/theme/diabook/theme.php:584 -msgid "Set zoomfactor for Earth Layers" -msgstr "Configure o zoom para Camadas da Terra" - -#: ../../view/theme/diabook/theme.php:622 -msgid "Show/hide boxes at right-hand column:" -msgstr "Mostre/esconda caixas na coluna à direita:" - -#: ../../view/theme/quattro/config.php:67 -msgid "Alignment" -msgstr "Alinhamento" - -#: ../../view/theme/quattro/config.php:67 -msgid "Left" -msgstr "Esquerda" - -#: ../../view/theme/quattro/config.php:67 -msgid "Center" -msgstr "Centro" - -#: ../../view/theme/quattro/config.php:69 -msgid "Posts font size" -msgstr "Tamanho da fonte para publicações" - -#: ../../view/theme/quattro/config.php:70 -msgid "Textareas font size" -msgstr "Tamanho da fonte para campos texto" - -#: ../../view/theme/dispy/config.php:75 -msgid "Set colour scheme" -msgstr "Configure o esquema de cores" - -#: ../../index.php:211 ../../mod/apps.php:7 -msgid "You must be logged in to use addons. " -msgstr "Você precisa estar logado para usar os addons." - -#: ../../index.php:255 ../../mod/help.php:42 -msgid "Not Found" -msgstr "Não encontrada" - -#: ../../index.php:258 ../../mod/help.php:45 -msgid "Page not found." -msgstr "Página não encontrada." - -#: ../../index.php:367 ../../mod/group.php:72 ../../mod/profperm.php:19 -msgid "Permission denied" -msgstr "Permissão negada" - -#: ../../index.php:368 ../../include/items.php:4815 ../../mod/attach.php:33 -#: ../../mod/wallmessage.php:9 ../../mod/wallmessage.php:33 -#: ../../mod/wallmessage.php:79 ../../mod/wallmessage.php:103 -#: ../../mod/group.php:19 ../../mod/delegate.php:12 -#: ../../mod/notifications.php:66 ../../mod/settings.php:20 -#: ../../mod/settings.php:107 ../../mod/settings.php:606 -#: ../../mod/contacts.php:258 ../../mod/wall_attach.php:55 -#: ../../mod/register.php:42 ../../mod/manage.php:96 ../../mod/editpost.php:10 -#: ../../mod/regmod.php:110 ../../mod/api.php:26 ../../mod/api.php:31 -#: ../../mod/suggest.php:58 ../../mod/nogroup.php:25 ../../mod/fsuggest.php:78 -#: ../../mod/viewcontacts.php:24 ../../mod/wall_upload.php:66 -#: ../../mod/notes.php:20 ../../mod/network.php:4 ../../mod/photos.php:134 -#: ../../mod/photos.php:1050 ../../mod/follow.php:9 ../../mod/uimport.php:23 -#: ../../mod/invite.php:15 ../../mod/invite.php:101 ../../mod/events.php:140 -#: ../../mod/mood.php:114 ../../mod/message.php:38 ../../mod/message.php:174 -#: ../../mod/profiles.php:165 ../../mod/profiles.php:618 -#: ../../mod/install.php:151 ../../mod/crepair.php:119 ../../mod/poke.php:135 -#: ../../mod/display.php:499 ../../mod/dfrn_confirm.php:55 -#: ../../mod/item.php:169 ../../mod/item.php:185 -#: ../../mod/profile_photo.php:19 ../../mod/profile_photo.php:169 -#: ../../mod/profile_photo.php:180 ../../mod/profile_photo.php:193 -#: ../../mod/allfriends.php:9 -msgid "Permission denied." -msgstr "Permissão negada." - -#: ../../index.php:427 -msgid "toggle mobile" -msgstr "habilita mobile" - -#: ../../addon-wrk/openidserver/lib/render/trust.php:30 -#, php-format -msgid "Do you wish to confirm your identity (%s) with %s" -msgstr "Você deseja confirmar sua identidade (%s) com %s" - -#: ../../addon-wrk/openidserver/lib/render/trust.php:43 -#: ../../mod/dfrn_request.php:676 -msgid "Confirm" -msgstr "Confirmar" - -#: ../../addon-wrk/openidserver/lib/render/trust.php:44 -msgid "Do not confirm" -msgstr "Não confirma" - -#: ../../addon-wrk/openidserver/lib/render/trust.php:48 -msgid "Trust This Site" -msgstr "Confia neste site" - -#: ../../addon-wrk/openidserver/lib/render/trust.php:53 -msgid "No Identifier Sent" -msgstr "Nenhum identificador enviado" - -#: ../../addon-wrk/openidserver/lib/render/wronguser.php:5 -msgid "Requested identity don't match logged in user." -msgstr "Identidade solicitada não corresponde ao usuário conectado" - -#: ../../addon-wrk/openidserver/lib/render.php:27 -#, php-format -msgid "Please wait; you are being redirected to <%s>" -msgstr "Por favor aguarde; você será redirecionado para <%s>" - -#: ../../boot.php:749 -msgid "Delete this item?" -msgstr "Excluir este item?" - -#: ../../boot.php:750 ../../object/Item.php:361 ../../object/Item.php:677 -#: ../../mod/photos.php:1564 ../../mod/photos.php:1608 -#: ../../mod/photos.php:1696 ../../mod/content.php:709 -msgid "Comment" -msgstr "Comentar" - -#: ../../boot.php:751 ../../include/contact_widgets.php:205 -#: ../../object/Item.php:390 ../../mod/content.php:606 -msgid "show more" -msgstr "exibir mais" - -#: ../../boot.php:752 -msgid "show fewer" -msgstr "exibir menos" - -#: ../../boot.php:1122 -#, php-format -msgid "Update %s failed. See error logs." -msgstr "Atualização %s falhou. Vide registro de erros (log)." - -#: ../../boot.php:1229 -msgid "Create a New Account" -msgstr "Criar uma nova conta" - -#: ../../boot.php:1230 ../../include/nav.php:109 ../../mod/register.php:269 -msgid "Register" -msgstr "Registrar" - -#: ../../boot.php:1254 ../../include/nav.php:73 -msgid "Logout" -msgstr "Sair" - -#: ../../boot.php:1255 ../../include/nav.php:92 ../../mod/bookmarklet.php:12 -msgid "Login" -msgstr "Entrar" - -#: ../../boot.php:1257 -msgid "Nickname or Email address: " -msgstr "Identificação ou endereço de e-mail: " - -#: ../../boot.php:1258 -msgid "Password: " -msgstr "Senha: " - -#: ../../boot.php:1259 -msgid "Remember me" -msgstr "Lembre-se de mim" - -#: ../../boot.php:1262 -msgid "Or login using OpenID: " -msgstr "Ou login usando OpendID:" - -#: ../../boot.php:1268 -msgid "Forgot your password?" -msgstr "Esqueceu a sua senha?" - -#: ../../boot.php:1269 ../../mod/lostpass.php:109 -msgid "Password Reset" -msgstr "Redifinir a senha" - -#: ../../boot.php:1271 -msgid "Website Terms of Service" -msgstr "Termos de Serviço do Website" - -#: ../../boot.php:1272 -msgid "terms of service" -msgstr "termos de serviço" - -#: ../../boot.php:1274 -msgid "Website Privacy Policy" -msgstr "Política de Privacidade do Website" - -#: ../../boot.php:1275 -msgid "privacy policy" -msgstr "política de privacidade" - -#: ../../boot.php:1408 -msgid "Requested account is not available." -msgstr "Conta solicitada não disponível" - -#: ../../boot.php:1447 ../../mod/profile.php:21 -msgid "Requested profile is not available." -msgstr "Perfil solicitado não está disponível." - -#: ../../boot.php:1490 ../../boot.php:1624 -#: ../../include/profile_advanced.php:84 -msgid "Edit profile" -msgstr "Editar perfil" - -#: ../../boot.php:1557 ../../include/contact_widgets.php:10 -#: ../../mod/suggest.php:90 ../../mod/match.php:58 -msgid "Connect" -msgstr "Conectar" - -#: ../../boot.php:1589 -msgid "Message" -msgstr "Mensagem" - -#: ../../boot.php:1595 ../../include/nav.php:175 -msgid "Profiles" -msgstr "Perfis" - -#: ../../boot.php:1595 -msgid "Manage/edit profiles" -msgstr "Gerenciar/editar perfis" - -#: ../../boot.php:1600 ../../boot.php:1626 ../../mod/profiles.php:804 -msgid "Change profile photo" -msgstr "Mudar a foto do perfil" - -#: ../../boot.php:1601 ../../mod/profiles.php:805 -msgid "Create New Profile" -msgstr "Criar um novo perfil" - -#: ../../boot.php:1611 ../../mod/profiles.php:816 -msgid "Profile Image" -msgstr "Imagem do perfil" - -#: ../../boot.php:1614 ../../mod/profiles.php:818 -msgid "visible to everybody" -msgstr "visível para todos" - -#: ../../boot.php:1615 ../../mod/profiles.php:819 -msgid "Edit visibility" -msgstr "Editar a visibilidade" - -#: ../../boot.php:1637 ../../include/event.php:40 -#: ../../include/bb2diaspora.php:155 ../../mod/events.php:471 -#: ../../mod/directory.php:136 -msgid "Location:" -msgstr "Localização:" - -#: ../../boot.php:1639 ../../include/profile_advanced.php:17 -#: ../../mod/directory.php:138 -msgid "Gender:" -msgstr "Gênero:" - -#: ../../boot.php:1642 ../../include/profile_advanced.php:37 -#: ../../mod/directory.php:140 -msgid "Status:" -msgstr "Situação:" - -#: ../../boot.php:1644 ../../include/profile_advanced.php:48 -#: ../../mod/directory.php:142 -msgid "Homepage:" -msgstr "Página web:" - -#: ../../boot.php:1646 ../../include/profile_advanced.php:58 -#: ../../mod/directory.php:144 -msgid "About:" -msgstr "Sobre:" - -#: ../../boot.php:1711 -msgid "Network:" -msgstr "Rede:" - -#: ../../boot.php:1743 ../../boot.php:1829 -msgid "g A l F d" -msgstr "G l d F" - -#: ../../boot.php:1744 ../../boot.php:1830 -msgid "F d" -msgstr "F d" - -#: ../../boot.php:1789 ../../boot.php:1877 -msgid "[today]" -msgstr "[hoje]" - -#: ../../boot.php:1801 -msgid "Birthday Reminders" -msgstr "Lembretes de aniversário" - -#: ../../boot.php:1802 -msgid "Birthdays this week:" -msgstr "Aniversários nesta semana:" - -#: ../../boot.php:1864 -msgid "[No description]" -msgstr "[Sem descrição]" - -#: ../../boot.php:1888 -msgid "Event Reminders" -msgstr "Lembretes de eventos" - -#: ../../boot.php:1889 -msgid "Events this week:" -msgstr "Eventos esta semana:" - -#: ../../boot.php:2126 ../../include/nav.php:76 -msgid "Status" -msgstr "Status" - -#: ../../boot.php:2129 -msgid "Status Messages and Posts" -msgstr "Mensagem de Estado (status) e Publicações" - -#: ../../boot.php:2136 -msgid "Profile Details" -msgstr "Detalhe do Perfil" - -#: ../../boot.php:2143 ../../mod/photos.php:52 -msgid "Photo Albums" -msgstr "Álbuns de fotos" - -#: ../../boot.php:2147 ../../boot.php:2150 ../../include/nav.php:79 -msgid "Videos" -msgstr "Vídeos" - -#: ../../boot.php:2160 -msgid "Events and Calendar" -msgstr "Eventos e Agenda" - -#: ../../boot.php:2164 ../../mod/notes.php:44 -msgid "Personal Notes" -msgstr "Notas pessoais" - -#: ../../boot.php:2167 -msgid "Only You Can See This" -msgstr "Somente Você Pode Ver Isso" - -#: ../../include/features.php:23 -msgid "General Features" -msgstr "Funcionalidades Gerais" - -#: ../../include/features.php:25 -msgid "Multiple Profiles" -msgstr "Perfís Múltiplos" - -#: ../../include/features.php:25 -msgid "Ability to create multiple profiles" -msgstr "Capacidade de criar perfis múltiplos" - -#: ../../include/features.php:30 -msgid "Post Composition Features" -msgstr "Funcionalidades de Composição de Publicações" - -#: ../../include/features.php:31 -msgid "Richtext Editor" -msgstr "Editor Richtext" - -#: ../../include/features.php:31 -msgid "Enable richtext editor" -msgstr "Habilite editor richtext" - -#: ../../include/features.php:32 -msgid "Post Preview" -msgstr "Pré-visualização da Publicação" - -#: ../../include/features.php:32 -msgid "Allow previewing posts and comments before publishing them" -msgstr "Permite pré-visualizar publicações e comentários antes de publicá-los" - -#: ../../include/features.php:33 -msgid "Auto-mention Forums" -msgstr "Auto-menção Fóruns" - -#: ../../include/features.php:33 -msgid "" -"Add/remove mention when a fourm page is selected/deselected in ACL window." -msgstr "Adiciona/Remove menções quando uma página de fórum é selecionada/deselecionada na janela ACL" - -#: ../../include/features.php:38 -msgid "Network Sidebar Widgets" -msgstr "Widgets da Barra Lateral da Rede" - -#: ../../include/features.php:39 -msgid "Search by Date" -msgstr "Buscar por Data" - -#: ../../include/features.php:39 -msgid "Ability to select posts by date ranges" -msgstr "Capacidade de selecionar publicações por intervalos de data" - -#: ../../include/features.php:40 -msgid "Group Filter" -msgstr "Filtrar Grupo" - -#: ../../include/features.php:40 -msgid "Enable widget to display Network posts only from selected group" -msgstr "Habilita widget para mostrar publicações da Rede somente de grupos selecionados" - -#: ../../include/features.php:41 -msgid "Network Filter" -msgstr "Filtrar Rede" - -#: ../../include/features.php:41 -msgid "Enable widget to display Network posts only from selected network" -msgstr "Habilita widget para mostrar publicações da Rede de redes selecionadas" - -#: ../../include/features.php:42 ../../mod/network.php:194 -#: ../../mod/search.php:30 -msgid "Saved Searches" -msgstr "Pesquisas salvas" - -#: ../../include/features.php:42 -msgid "Save search terms for re-use" -msgstr "Guarde as palavras-chaves para reuso" - -#: ../../include/features.php:47 -msgid "Network Tabs" -msgstr "Abas da Rede" - -#: ../../include/features.php:48 -msgid "Network Personal Tab" -msgstr "Aba Pessoal da Rede" - -#: ../../include/features.php:48 -msgid "Enable tab to display only Network posts that you've interacted on" -msgstr "Habilitar aba para mostrar apenas as publicações da Rede que você tenha interagido" - -#: ../../include/features.php:49 -msgid "Network New Tab" -msgstr "Aba Nova da Rede" - -#: ../../include/features.php:49 -msgid "Enable tab to display only new Network posts (from the last 12 hours)" -msgstr "Habilite aba para mostra apenas publicações da Rede novas (das últimas 12 horas)" - -#: ../../include/features.php:50 -msgid "Network Shared Links Tab" -msgstr "Aba de Links Compartilhados da Rede" - -#: ../../include/features.php:50 -msgid "Enable tab to display only Network posts with links in them" -msgstr "Habilite aba para mostrar somente publicações da Rede que contenham links" - -#: ../../include/features.php:55 -msgid "Post/Comment Tools" -msgstr "Ferramentas de Publicação/Comentário" - -#: ../../include/features.php:56 -msgid "Multiple Deletion" -msgstr "Deleção Multipla" - -#: ../../include/features.php:56 -msgid "Select and delete multiple posts/comments at once" -msgstr "Selecione e delete múltiplas publicações/comentário imediatamente" - -#: ../../include/features.php:57 -msgid "Edit Sent Posts" -msgstr "Editar Publicações Enviadas" - -#: ../../include/features.php:57 -msgid "Edit and correct posts and comments after sending" -msgstr "Editar e corrigir publicações e comentários após envio" - -#: ../../include/features.php:58 -msgid "Tagging" -msgstr "Etiquetagem" - -#: ../../include/features.php:58 -msgid "Ability to tag existing posts" -msgstr "Capacidade de colocar etiquetas em publicações existentes" - -#: ../../include/features.php:59 -msgid "Post Categories" -msgstr "Categorias de Publicações" - -#: ../../include/features.php:59 -msgid "Add categories to your posts" -msgstr "Adicione Categorias ás Publicações" - -#: ../../include/features.php:60 ../../include/contact_widgets.php:104 -msgid "Saved Folders" -msgstr "Pastas salvas" - -#: ../../include/features.php:60 -msgid "Ability to file posts under folders" -msgstr "Capacidade de arquivar publicações em pastas" - -#: ../../include/features.php:61 -msgid "Dislike Posts" -msgstr "Desgostar de publicações" - -#: ../../include/features.php:61 -msgid "Ability to dislike posts/comments" -msgstr "Capacidade de desgostar de publicações/comentários" - -#: ../../include/features.php:62 -msgid "Star Posts" -msgstr "Destacar publicações" - -#: ../../include/features.php:62 -msgid "Ability to mark special posts with a star indicator" -msgstr "Capacidade de marcar publicações especiais com uma estrela indicadora" - -#: ../../include/features.php:63 -msgid "Mute Post Notifications" -msgstr "Silenciar Notificações de Postagem" - -#: ../../include/features.php:63 -msgid "Ability to mute notifications for a thread" -msgstr "Habilitar notificação silenciosa para a tarefa" - -#: ../../include/items.php:2307 ../../include/datetime.php:477 +#: include/datetime.php:578 #, php-format msgid "%s's birthday" -msgstr "aniversários de %s's" +msgstr "aniversário de %s" -#: ../../include/items.php:2308 ../../include/datetime.php:478 +#: include/datetime.php:579 include/dfrn.php:1111 #, php-format msgid "Happy Birthday %s" -msgstr "Feliz Aniversário %s" +msgstr "Feliz aniversário, %s" -#: ../../include/items.php:4111 ../../mod/dfrn_request.php:717 -#: ../../mod/dfrn_confirm.php:752 -msgid "[Name Withheld]" -msgstr "[Nome não revelado]" - -#: ../../include/items.php:4619 ../../mod/admin.php:169 -#: ../../mod/admin.php:1052 ../../mod/admin.php:1265 ../../mod/viewsrc.php:15 -#: ../../mod/notice.php:15 ../../mod/display.php:82 ../../mod/display.php:284 -#: ../../mod/display.php:503 -msgid "Item not found." -msgstr "O item não foi encontrado." - -#: ../../include/items.php:4658 -msgid "Do you really want to delete this item?" -msgstr "Você realmente deseja deletar esse item?" - -#: ../../include/items.php:4660 ../../mod/settings.php:1015 -#: ../../mod/settings.php:1021 ../../mod/settings.php:1029 -#: ../../mod/settings.php:1033 ../../mod/settings.php:1038 -#: ../../mod/settings.php:1044 ../../mod/settings.php:1050 -#: ../../mod/settings.php:1056 ../../mod/settings.php:1086 -#: ../../mod/settings.php:1087 ../../mod/settings.php:1088 -#: ../../mod/settings.php:1089 ../../mod/settings.php:1090 -#: ../../mod/contacts.php:341 ../../mod/register.php:233 -#: ../../mod/dfrn_request.php:830 ../../mod/api.php:105 -#: ../../mod/suggest.php:29 ../../mod/message.php:209 -#: ../../mod/profiles.php:661 ../../mod/profiles.php:664 -msgid "Yes" -msgstr "Sim" - -#: ../../include/items.php:4663 ../../include/conversation.php:1128 -#: ../../mod/settings.php:620 ../../mod/settings.php:646 -#: ../../mod/contacts.php:344 ../../mod/editpost.php:148 -#: ../../mod/dfrn_request.php:844 ../../mod/fbrowser.php:81 -#: ../../mod/fbrowser.php:116 ../../mod/suggest.php:32 -#: ../../mod/photos.php:203 ../../mod/photos.php:292 ../../mod/tagrm.php:11 -#: ../../mod/tagrm.php:94 ../../mod/message.php:212 -msgid "Cancel" -msgstr "Cancelar" - -#: ../../include/items.php:4881 -msgid "Archives" -msgstr "Arquivos" - -#: ../../include/group.php:25 -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 "Um grupo com esse nome, anteriormente excluído, foi reativado. Permissões de itens já existentes poderão ser aplicadas a esse grupo e qualquer futuros membros. Se não é essa a sua intenção, favor criar outro grupo com um nome diferente." - -#: ../../include/group.php:207 -msgid "Default privacy group for new contacts" -msgstr "Grupo de privacidade padrão para novos contatos" - -#: ../../include/group.php:226 -msgid "Everybody" -msgstr "Todos" - -#: ../../include/group.php:249 -msgid "edit" -msgstr "editar" - -#: ../../include/group.php:270 ../../mod/newmember.php:66 -msgid "Groups" -msgstr "Grupos" - -#: ../../include/group.php:271 -msgid "Edit group" -msgstr "Editar grupo" - -#: ../../include/group.php:272 -msgid "Create a new group" -msgstr "Criar um novo grupo" - -#: ../../include/group.php:273 -msgid "Contacts not in any group" -msgstr "Contatos não estão dentro de nenhum grupo" - -#: ../../include/group.php:275 ../../mod/network.php:195 -msgid "add" -msgstr "adicionar" - -#: ../../include/Photo_old.php:911 ../../include/Photo_old.php:926 -#: ../../include/Photo_old.php:933 ../../include/Photo_old.php:955 -#: ../../include/Photo.php:933 ../../include/Photo.php:948 -#: ../../include/Photo.php:955 ../../include/Photo.php:977 -#: ../../include/message.php:144 ../../mod/wall_upload.php:169 -#: ../../mod/wall_upload.php:178 ../../mod/wall_upload.php:185 -#: ../../mod/item.php:485 -msgid "Wall Photos" -msgstr "Fotos do mural" - -#: ../../include/dba.php:56 ../../include/dba_pdo.php:72 -#, php-format -msgid "Cannot locate DNS info for database server '%s'" -msgstr "Não foi possível localizar a informação de DNS para o servidor de banco de dados '%s'" - -#: ../../include/contact_widgets.php:6 +#: include/contact_widgets.php:6 msgid "Add New Contact" msgstr "Adicionar Contato Novo" -#: ../../include/contact_widgets.php:7 +#: include/contact_widgets.php:7 msgid "Enter address or web location" msgstr "Forneça endereço ou localização web" -#: ../../include/contact_widgets.php:8 +#: include/contact_widgets.php:8 msgid "Example: bob@example.com, http://example.com/barbara" msgstr "Por exemplo: joao@exemplo.com, http://exemplo.com/maria" -#: ../../include/contact_widgets.php:24 +#: include/contact_widgets.php:10 include/identity.php:212 mod/match.php:87 +#: mod/allfriends.php:82 mod/suggest.php:101 mod/dirfind.php:201 +msgid "Connect" +msgstr "Conectar" + +#: include/contact_widgets.php:24 #, php-format msgid "%d invitation available" msgid_plural "%d invitations available" msgstr[0] "%d convite disponível" msgstr[1] "%d convites disponíveis" -#: ../../include/contact_widgets.php:30 +#: include/contact_widgets.php:30 msgid "Find People" msgstr "Pesquisar por pessoas" -#: ../../include/contact_widgets.php:31 +#: include/contact_widgets.php:31 msgid "Enter name or interest" msgstr "Fornecer nome ou interesse" -#: ../../include/contact_widgets.php:32 +#: include/contact_widgets.php:32 include/conversation.php:978 +#: include/Contact.php:324 mod/match.php:72 mod/allfriends.php:66 +#: mod/follow.php:103 mod/suggest.php:83 mod/contacts.php:602 +#: mod/dirfind.php:204 msgid "Connect/Follow" msgstr "Conectar-se/acompanhar" -#: ../../include/contact_widgets.php:33 +#: include/contact_widgets.php:33 msgid "Examples: Robert Morgenstein, Fishing" msgstr "Examplos: Robert Morgenstein, Fishing" -#: ../../include/contact_widgets.php:34 ../../mod/contacts.php:724 -#: ../../mod/directory.php:63 +#: include/contact_widgets.php:34 mod/directory.php:212 mod/contacts.php:796 msgid "Find" msgstr "Pesquisar" -#: ../../include/contact_widgets.php:37 +#: include/contact_widgets.php:35 mod/suggest.php:114 +#: view/theme/vier/theme.php:203 view/theme/diabook/theme.php:527 +msgid "Friend Suggestions" +msgstr "Sugestões de amigos" + +#: include/contact_widgets.php:36 view/theme/vier/theme.php:202 +#: view/theme/diabook/theme.php:526 +msgid "Similar Interests" +msgstr "Interesses Parecidos" + +#: include/contact_widgets.php:37 msgid "Random Profile" msgstr "Perfil Randômico" -#: ../../include/contact_widgets.php:71 +#: include/contact_widgets.php:38 view/theme/vier/theme.php:204 +#: view/theme/diabook/theme.php:528 +msgid "Invite Friends" +msgstr "Convidar amigos" + +#: include/contact_widgets.php:108 msgid "Networks" msgstr "Redes" -#: ../../include/contact_widgets.php:74 +#: include/contact_widgets.php:111 msgid "All Networks" msgstr "Todas as redes" -#: ../../include/contact_widgets.php:107 ../../include/contact_widgets.php:139 +#: include/contact_widgets.php:141 include/features.php:103 +msgid "Saved Folders" +msgstr "Pastas salvas" + +#: include/contact_widgets.php:144 include/contact_widgets.php:176 msgid "Everything" msgstr "Tudo" -#: ../../include/contact_widgets.php:136 +#: include/contact_widgets.php:173 msgid "Categories" msgstr "Categorias" -#: ../../include/contact_widgets.php:200 ../../mod/contacts.php:439 +#: include/contact_widgets.php:237 #, php-format msgid "%d contact in common" msgid_plural "%d contacts in common" msgstr[0] "%d contato em comum" msgstr[1] "%d contatos em comum" -#: ../../include/enotify.php:18 +#: include/contact_widgets.php:242 include/ForumManager.php:119 +#: include/items.php:2122 mod/content.php:624 object/Item.php:432 +#: view/theme/vier/theme.php:260 boot.php:903 +msgid "show more" +msgstr "exibir mais" + +#: include/enotify.php:24 msgid "Friendica Notification" msgstr "Notificação Friendica" -#: ../../include/enotify.php:21 +#: include/enotify.php:27 msgid "Thank You," msgstr "Obrigado," -#: ../../include/enotify.php:23 +#: include/enotify.php:30 #, php-format msgid "%s Administrator" msgstr "%s Administrador" -#: ../../include/enotify.php:33 ../../include/delivery.php:467 -#: ../../include/notifier.php:796 +#: include/enotify.php:32 +#, php-format +msgid "%1$s, %2$s Administrator" +msgstr "%1$s, %2$s Administrador" + +#: include/enotify.php:43 include/delivery.php:450 msgid "noreply" msgstr "naoresponda" -#: ../../include/enotify.php:64 +#: include/enotify.php:70 #, php-format msgid "%s " msgstr "%s " -#: ../../include/enotify.php:68 +#: include/enotify.php:83 #, php-format msgid "[Friendica:Notify] New mail received at %s" msgstr "[Friendica:Notify] Nova mensagem recebida em %s" -#: ../../include/enotify.php:70 +#: include/enotify.php:85 #, php-format msgid "%1$s sent you a new private message at %2$s." msgstr "%1$s lhe enviou uma mensagem privativa em %2$s." -#: ../../include/enotify.php:71 +#: include/enotify.php:86 #, php-format msgid "%1$s sent you %2$s." msgstr "%1$s lhe enviou %2$s." -#: ../../include/enotify.php:71 +#: include/enotify.php:86 msgid "a private message" msgstr "uma mensagem privada" -#: ../../include/enotify.php:72 +#: include/enotify.php:88 #, php-format msgid "Please visit %s to view and/or reply to your private messages." msgstr "Favor visitar %s para ver e/ou responder às suas mensagens privadas." -#: ../../include/enotify.php:124 +#: include/enotify.php:134 #, php-format msgid "%1$s commented on [url=%2$s]a %3$s[/url]" msgstr "%1$s comentou uma [url=%2$s] %3$s[/url]" -#: ../../include/enotify.php:131 +#: include/enotify.php:141 #, php-format msgid "%1$s commented on [url=%2$s]%3$s's %4$s[/url]" msgstr "%1$s comentou na %4$s de [url=%2$s]%3$s [/url]" -#: ../../include/enotify.php:139 +#: include/enotify.php:149 #, php-format msgid "%1$s commented on [url=%2$s]your %3$s[/url]" msgstr "%1$s comentou [url=%2$s]sua %3$s[/url]" -#: ../../include/enotify.php:149 +#: include/enotify.php:159 #, php-format msgid "[Friendica:Notify] Comment to conversation #%1$d by %2$s" msgstr "[Friendica:Notify] Comentário na conversa #%1$d por %2$s" -#: ../../include/enotify.php:150 +#: include/enotify.php:161 #, php-format msgid "%s commented on an item/conversation you have been following." msgstr "%s comentou um item/conversa que você está seguindo." -#: ../../include/enotify.php:153 ../../include/enotify.php:168 -#: ../../include/enotify.php:181 ../../include/enotify.php:194 -#: ../../include/enotify.php:212 ../../include/enotify.php:225 +#: include/enotify.php:164 include/enotify.php:178 include/enotify.php:192 +#: include/enotify.php:206 include/enotify.php:224 include/enotify.php:238 #, php-format msgid "Please visit %s to view and/or reply to the conversation." msgstr "Favor visitar %s para ver e/ou responder à conversa." -#: ../../include/enotify.php:160 +#: include/enotify.php:171 #, php-format msgid "[Friendica:Notify] %s posted to your profile wall" msgstr "[Friendica:Notify] %s publicou no mural do seu perfil" -#: ../../include/enotify.php:162 +#: include/enotify.php:173 #, php-format msgid "%1$s posted to your profile wall at %2$s" msgstr "%1$s publicou no mural do seu perfil em %2$s" -#: ../../include/enotify.php:164 +#: include/enotify.php:174 #, php-format msgid "%1$s posted to [url=%2$s]your wall[/url]" msgstr "%1$s publicou para [url=%2$s]seu mural[/url]" -#: ../../include/enotify.php:175 +#: include/enotify.php:185 #, php-format msgid "[Friendica:Notify] %s tagged you" msgstr "[Friendica:Notify] %s etiquetou você" -#: ../../include/enotify.php:176 +#: include/enotify.php:187 #, php-format msgid "%1$s tagged you at %2$s" msgstr "%1$s etiquetou você em %2$s" -#: ../../include/enotify.php:177 +#: include/enotify.php:188 #, php-format msgid "%1$s [url=%2$s]tagged you[/url]." msgstr "%1$s [url=%2$s]etiquetou você[/url]." -#: ../../include/enotify.php:188 +#: include/enotify.php:199 #, php-format msgid "[Friendica:Notify] %s shared a new post" msgstr "[Friendica:Notify] %s compartilhado uma nova publicação" -#: ../../include/enotify.php:189 +#: include/enotify.php:201 #, php-format msgid "%1$s shared a new post at %2$s" msgstr "%1$s compartilhou uma nova publicação em %2$s" -#: ../../include/enotify.php:190 +#: include/enotify.php:202 #, php-format msgid "%1$s [url=%2$s]shared a post[/url]." msgstr "%1$s [url=%2$s]compartilhou uma publicação[/url]." -#: ../../include/enotify.php:202 +#: include/enotify.php:213 #, php-format msgid "[Friendica:Notify] %1$s poked you" msgstr "[Friendica:Notify] %1$s cutucou você" -#: ../../include/enotify.php:203 +#: include/enotify.php:215 #, php-format msgid "%1$s poked you at %2$s" msgstr "%1$s cutucou você em %2$s" -#: ../../include/enotify.php:204 +#: include/enotify.php:216 #, php-format msgid "%1$s [url=%2$s]poked you[/url]." msgstr "%1$s [url=%2$s]cutucou você[/url]." -#: ../../include/enotify.php:219 +#: include/enotify.php:231 #, php-format msgid "[Friendica:Notify] %s tagged your post" msgstr "[Friendica:Notify] %s etiquetou sua publicação" -#: ../../include/enotify.php:220 +#: include/enotify.php:233 #, php-format msgid "%1$s tagged your post at %2$s" msgstr "%1$s etiquetou sua publicação em %2$s" -#: ../../include/enotify.php:221 +#: include/enotify.php:234 #, php-format msgid "%1$s tagged [url=%2$s]your post[/url]" msgstr "%1$s etiquetou [url=%2$s]sua publicação[/url]" -#: ../../include/enotify.php:232 +#: include/enotify.php:245 msgid "[Friendica:Notify] Introduction received" msgstr "[Friendica:Notify] Você recebeu uma apresentação" -#: ../../include/enotify.php:233 +#: include/enotify.php:247 #, php-format msgid "You've received an introduction from '%1$s' at %2$s" msgstr "Você recebeu uma apresentação de '%1$s' em %2$s" -#: ../../include/enotify.php:234 +#: include/enotify.php:248 #, php-format msgid "You've received [url=%1$s]an introduction[/url] from %2$s." msgstr "Você recebeu [url=%1$s]uma apresentação[/url] de %2$s." -#: ../../include/enotify.php:237 ../../include/enotify.php:279 +#: include/enotify.php:252 include/enotify.php:295 #, php-format msgid "You may visit their profile at %s" msgstr "Você pode visitar o perfil deles em %s" -#: ../../include/enotify.php:239 +#: include/enotify.php:254 #, php-format msgid "Please visit %s to approve or reject the introduction." msgstr "Favor visitar %s para aprovar ou rejeitar a apresentação." -#: ../../include/enotify.php:247 +#: include/enotify.php:262 msgid "[Friendica:Notify] A new person is sharing with you" msgstr "[Friendica:Notificação] Uma nova pessoa está compartilhando com você" -#: ../../include/enotify.php:248 ../../include/enotify.php:249 +#: include/enotify.php:264 include/enotify.php:265 #, php-format msgid "%1$s is sharing with you at %2$s" msgstr "%1$s está compartilhando com você via %2$s" -#: ../../include/enotify.php:255 +#: include/enotify.php:271 msgid "[Friendica:Notify] You have a new follower" msgstr "[Friendica:Notificação] Você tem um novo seguidor" -#: ../../include/enotify.php:256 ../../include/enotify.php:257 +#: include/enotify.php:273 include/enotify.php:274 #, php-format msgid "You have a new follower at %2$s : %1$s" msgstr "Você tem um novo seguidor em %2$s : %1$s" -#: ../../include/enotify.php:270 +#: include/enotify.php:285 msgid "[Friendica:Notify] Friend suggestion received" msgstr "[Friendica:Notify] Você recebeu uma sugestão de amigo" -#: ../../include/enotify.php:271 +#: include/enotify.php:287 #, php-format msgid "You've received a friend suggestion from '%1$s' at %2$s" msgstr "Você recebeu uma sugestão de amigo de '%1$s' em %2$s" -#: ../../include/enotify.php:272 +#: include/enotify.php:288 #, php-format msgid "" "You've received [url=%1$s]a friend suggestion[/url] for %2$s from %3$s." msgstr "Você recebeu [url=%1$s]uma sugestão de amigo[/url] de %2$s em %3$s" -#: ../../include/enotify.php:277 +#: include/enotify.php:293 msgid "Name:" msgstr "Nome:" -#: ../../include/enotify.php:278 +#: include/enotify.php:294 msgid "Photo:" msgstr "Foto:" -#: ../../include/enotify.php:281 +#: include/enotify.php:297 #, php-format msgid "Please visit %s to approve or reject the suggestion." msgstr "Favor visitar %s para aprovar ou rejeitar a sugestão." -#: ../../include/enotify.php:289 ../../include/enotify.php:302 +#: include/enotify.php:305 include/enotify.php:319 msgid "[Friendica:Notify] Connection accepted" msgstr "[Friendica:Notificação] Conexão aceita" -#: ../../include/enotify.php:290 ../../include/enotify.php:303 +#: include/enotify.php:307 include/enotify.php:321 #, php-format -msgid "'%1$s' has acepted your connection request at %2$s" -msgstr "'%1$s' sua solicitação de conexão foi aceita em %2$s" +msgid "'%1$s' has accepted your connection request at %2$s" +msgstr "'%1$s' aceitou o seu pedido de conexão no %2$s" -#: ../../include/enotify.php:291 ../../include/enotify.php:304 +#: include/enotify.php:308 include/enotify.php:322 #, php-format msgid "%2$s has accepted your [url=%1$s]connection request[/url]." msgstr "%2$s Foi aceita [url=%1$s] a conexão solicitada[/url]." -#: ../../include/enotify.php:294 +#: include/enotify.php:312 msgid "" -"You are now mutual friends and may exchange status updates, photos, and email\n" -"\twithout restriction." -msgstr "Você agora são amigos em comum e podem trocar atualizações de status, fotos e e-mail\n\tsem restrições." +"You are now mutual friends and may exchange status updates, photos, and " +"email without restriction." +msgstr "Vocês agora são amigos mútuos e podem trocar atualizações de status, fotos e e-mails livremente." -#: ../../include/enotify.php:297 ../../include/enotify.php:311 +#: include/enotify.php:314 #, php-format -msgid "Please visit %s if you wish to make any changes to this relationship." -msgstr "Por favor, visite %s se você desejar fazer quaisquer alterações a este relacionamento." +msgid "Please visit %s if you wish to make any changes to this relationship." +msgstr "" -#: ../../include/enotify.php:307 +#: include/enotify.php:326 #, php-format msgid "" "'%1$s' has chosen to accept you a \"fan\", which restricts some forms of " @@ -1279,1710 +492,686 @@ msgid "" "automatically." msgstr "'%1$s' optou por aceitá-lo um \"fã\", o que restringe algumas formas de comunicação - como mensagens privadas e algumas interações de perfil. Se esta é uma página de celebridade ou de uma comunidade, essas configurações foram aplicadas automaticamente." -#: ../../include/enotify.php:309 +#: include/enotify.php:328 #, php-format msgid "" "'%1$s' may choose to extend this into a two-way or more permissive " -"relationship in the future. " -msgstr "'%1$s' pode optar no futuro por estender isso para um relacionamento bidirecional ou superior permissivo." +"relationship in the future." +msgstr "" -#: ../../include/enotify.php:322 +#: include/enotify.php:330 +#, php-format +msgid "Please visit %s if you wish to make any changes to this relationship." +msgstr "Por favor, visite %s se você desejar fazer quaisquer alterações a este relacionamento." + +#: include/enotify.php:340 msgid "[Friendica System:Notify] registration request" msgstr "[Friendica: Notificação do Sistema] solicitação de cadastro" -#: ../../include/enotify.php:323 +#: include/enotify.php:342 #, php-format msgid "You've received a registration request from '%1$s' at %2$s" msgstr "Você recebeu um pedido de cadastro de '%1$s' em %2$s" -#: ../../include/enotify.php:324 +#: include/enotify.php:343 #, php-format msgid "You've received a [url=%1$s]registration request[/url] from %2$s." msgstr "Você recebeu uma [url=%1$s]solicitação de cadastro[/url] de %2$s." -#: ../../include/enotify.php:327 +#: include/enotify.php:347 #, php-format msgid "Full Name:\t%1$s\\nSite Location:\t%2$s\\nLogin Name:\t%3$s (%4$s)" msgstr "Nome completo:\t%1$s\\nLocal do Site:\t%2$s\\nNome de Login:\t%3$s (%4$s)" -#: ../../include/enotify.php:330 +#: include/enotify.php:350 #, php-format msgid "Please visit %s to approve or reject the request." msgstr "Por favor, visite %s para aprovar ou rejeitar a solicitação." -#: ../../include/api.php:304 ../../include/api.php:315 -#: ../../include/api.php:416 ../../include/api.php:1063 -#: ../../include/api.php:1065 -msgid "User not found." -msgstr "Usuário não encontrado." +#: include/ForumManager.php:114 include/nav.php:130 include/text.php:1007 +#: view/theme/vier/theme.php:255 +msgid "Forums" +msgstr "Fóruns" -#: ../../include/api.php:770 -#, php-format -msgid "Daily posting limit of %d posts reached. The post was rejected." -msgstr "O limite diário de postagem de %d mensagens foi atingido. O post foi rejeitado." +#: include/ForumManager.php:116 view/theme/vier/theme.php:257 +msgid "External link to forum" +msgstr "Link externo para fórum" -#: ../../include/api.php:789 -#, php-format -msgid "Weekly posting limit of %d posts reached. The post was rejected." -msgstr "O limite de postagem semanal de %d mensagens foi atingido. O post foi rejeitado." - -#: ../../include/api.php:808 -#, php-format -msgid "Monthly posting limit of %d posts reached. The post was rejected." -msgstr "O limite de postagem mensal de %d mensagens foi atingido. O post foi rejeitado." - -#: ../../include/api.php:1271 -msgid "There is no status with this id." -msgstr "Não existe status com esse id." - -#: ../../include/api.php:1341 -msgid "There is no conversation with this id." -msgstr "Não existe conversas com esse id." - -#: ../../include/api.php:1613 -msgid "Invalid request." -msgstr "Solicitação inválida." - -#: ../../include/api.php:1624 -msgid "Invalid item." -msgstr "Ítem inválido." - -#: ../../include/api.php:1634 -msgid "Invalid action. " -msgstr "Ação inválida." - -#: ../../include/api.php:1642 -msgid "DB error" -msgstr "Erro do Banco de Dados" - -#: ../../include/network.php:890 -msgid "view full size" -msgstr "ver na tela inteira" - -#: ../../include/Scrape.php:608 -msgid " on Last.fm" -msgstr "na Last.fm" - -#: ../../include/profile_advanced.php:15 ../../mod/settings.php:1133 -msgid "Full Name:" -msgstr "Nome completo:" - -#: ../../include/profile_advanced.php:22 -msgid "j F, Y" -msgstr "j de F, Y" - -#: ../../include/profile_advanced.php:23 -msgid "j F" -msgstr "j de F" - -#: ../../include/profile_advanced.php:30 -msgid "Birthday:" -msgstr "Aniversário:" - -#: ../../include/profile_advanced.php:34 -msgid "Age:" -msgstr "Idade:" - -#: ../../include/profile_advanced.php:43 -#, php-format -msgid "for %1$d %2$s" -msgstr "para %1$d %2$s" - -#: ../../include/profile_advanced.php:46 ../../mod/profiles.php:714 -msgid "Sexual Preference:" -msgstr "Preferência sexual:" - -#: ../../include/profile_advanced.php:50 ../../mod/profiles.php:716 -msgid "Hometown:" -msgstr "Cidade:" - -#: ../../include/profile_advanced.php:52 -msgid "Tags:" -msgstr "Etiquetas:" - -#: ../../include/profile_advanced.php:54 ../../mod/profiles.php:717 -msgid "Political Views:" -msgstr "Posição política:" - -#: ../../include/profile_advanced.php:56 -msgid "Religion:" -msgstr "Religião:" - -#: ../../include/profile_advanced.php:60 -msgid "Hobbies/Interests:" -msgstr "Passatempos/Interesses:" - -#: ../../include/profile_advanced.php:62 ../../mod/profiles.php:721 -msgid "Likes:" -msgstr "Gosta de:" - -#: ../../include/profile_advanced.php:64 ../../mod/profiles.php:722 -msgid "Dislikes:" -msgstr "Não gosta de:" - -#: ../../include/profile_advanced.php:67 -msgid "Contact information and Social Networks:" -msgstr "Informações de contato e redes sociais:" - -#: ../../include/profile_advanced.php:69 -msgid "Musical interests:" -msgstr "Preferências musicais:" - -#: ../../include/profile_advanced.php:71 -msgid "Books, literature:" -msgstr "Livros, literatura:" - -#: ../../include/profile_advanced.php:73 -msgid "Television:" -msgstr "Televisão:" - -#: ../../include/profile_advanced.php:75 -msgid "Film/dance/culture/entertainment:" -msgstr "Filmes/dança/cultura/entretenimento:" - -#: ../../include/profile_advanced.php:77 -msgid "Love/Romance:" -msgstr "Amor/romance:" - -#: ../../include/profile_advanced.php:79 -msgid "Work/employment:" -msgstr "Trabalho/emprego:" - -#: ../../include/profile_advanced.php:81 -msgid "School/education:" -msgstr "Escola/educação:" - -#: ../../include/nav.php:34 ../../mod/navigation.php:20 -msgid "Nothing new here" -msgstr "Nada de novo aqui" - -#: ../../include/nav.php:38 ../../mod/navigation.php:24 -msgid "Clear notifications" -msgstr "Descartar notificações" - -#: ../../include/nav.php:73 -msgid "End this session" -msgstr "Terminar esta sessão" - -#: ../../include/nav.php:79 -msgid "Your videos" -msgstr "Seus vídeos" - -#: ../../include/nav.php:81 -msgid "Your personal notes" -msgstr "Suas anotações pessoais" - -#: ../../include/nav.php:92 -msgid "Sign in" -msgstr "Entrar" - -#: ../../include/nav.php:105 -msgid "Home Page" -msgstr "Página pessoal" - -#: ../../include/nav.php:109 -msgid "Create an account" -msgstr "Criar uma conta" - -#: ../../include/nav.php:114 ../../mod/help.php:36 -msgid "Help" -msgstr "Ajuda" - -#: ../../include/nav.php:114 -msgid "Help and documentation" -msgstr "Ajuda e documentação" - -#: ../../include/nav.php:117 -msgid "Apps" -msgstr "Aplicativos" - -#: ../../include/nav.php:117 -msgid "Addon applications, utilities, games" -msgstr "Complementos, utilitários, jogos" - -#: ../../include/nav.php:119 ../../include/text.php:968 -#: ../../include/text.php:969 ../../mod/search.php:99 -msgid "Search" -msgstr "Pesquisar" - -#: ../../include/nav.php:119 -msgid "Search site content" -msgstr "Pesquisar conteúdo no site" - -#: ../../include/nav.php:129 -msgid "Conversations on this site" -msgstr "Conversas neste site" - -#: ../../include/nav.php:131 -msgid "Conversations on the network" -msgstr "Conversas na rede" - -#: ../../include/nav.php:133 -msgid "Directory" -msgstr "Diretório" - -#: ../../include/nav.php:133 -msgid "People directory" -msgstr "Diretório de pessoas" - -#: ../../include/nav.php:135 -msgid "Information" -msgstr "Informação" - -#: ../../include/nav.php:135 -msgid "Information about this friendica instance" -msgstr "Informação sobre esta instância do friendica" - -#: ../../include/nav.php:145 ../../mod/notifications.php:83 -msgid "Network" -msgstr "Rede" - -#: ../../include/nav.php:145 -msgid "Conversations from your friends" -msgstr "Conversas dos seus amigos" - -#: ../../include/nav.php:146 -msgid "Network Reset" -msgstr "Reiniciar Rede" - -#: ../../include/nav.php:146 -msgid "Load Network page with no filters" -msgstr "Carregar página Rede sem filtros" - -#: ../../include/nav.php:154 ../../mod/notifications.php:98 -msgid "Introductions" -msgstr "Apresentações" - -#: ../../include/nav.php:154 -msgid "Friend Requests" -msgstr "Requisições de Amizade" - -#: ../../include/nav.php:155 ../../mod/notifications.php:224 -msgid "Notifications" -msgstr "Notificações" - -#: ../../include/nav.php:156 -msgid "See all notifications" -msgstr "Ver todas notificações" - -#: ../../include/nav.php:157 -msgid "Mark all system notifications seen" -msgstr "Marcar todas as notificações de sistema como vistas" - -#: ../../include/nav.php:161 ../../mod/message.php:182 -msgid "Messages" -msgstr "Mensagens" - -#: ../../include/nav.php:161 -msgid "Private mail" -msgstr "Mensagem privada" - -#: ../../include/nav.php:162 -msgid "Inbox" -msgstr "Recebidas" - -#: ../../include/nav.php:163 -msgid "Outbox" -msgstr "Enviadas" - -#: ../../include/nav.php:164 ../../mod/message.php:9 -msgid "New Message" -msgstr "Nova mensagem" - -#: ../../include/nav.php:167 -msgid "Manage" -msgstr "Gerenciar" - -#: ../../include/nav.php:167 -msgid "Manage other pages" -msgstr "Gerenciar outras páginas" - -#: ../../include/nav.php:170 ../../mod/settings.php:67 -msgid "Delegations" -msgstr "Delegações" - -#: ../../include/nav.php:170 ../../mod/delegate.php:130 -msgid "Delegate Page Management" -msgstr "Delegar Administração de Página" - -#: ../../include/nav.php:172 -msgid "Account settings" -msgstr "Configurações da conta" - -#: ../../include/nav.php:175 -msgid "Manage/Edit Profiles" -msgstr "Administrar/Editar Perfis" - -#: ../../include/nav.php:177 -msgid "Manage/edit friends and contacts" -msgstr "Gerenciar/editar amigos e contatos" - -#: ../../include/nav.php:184 ../../mod/admin.php:130 -msgid "Admin" -msgstr "Admin" - -#: ../../include/nav.php:184 -msgid "Site setup and configuration" -msgstr "Configurações do site" - -#: ../../include/nav.php:188 -msgid "Navigation" -msgstr "Navegação" - -#: ../../include/nav.php:188 -msgid "Site map" -msgstr "Mapa do Site" - -#: ../../include/plugin.php:455 ../../include/plugin.php:457 -msgid "Click here to upgrade." -msgstr "Clique aqui para atualização (upgrade)." - -#: ../../include/plugin.php:463 -msgid "This action exceeds the limits set by your subscription plan." -msgstr "Essa ação excede o limite definido para o seu plano de assinatura." - -#: ../../include/plugin.php:468 -msgid "This action is not available under your subscription plan." -msgstr "Essa ação não está disponível em seu plano de assinatura." - -#: ../../include/follow.php:27 ../../mod/dfrn_request.php:507 -msgid "Disallowed profile URL." -msgstr "URL de perfil não permitida." - -#: ../../include/follow.php:32 -msgid "Connect URL missing." -msgstr "URL de conexão faltando." - -#: ../../include/follow.php:59 -msgid "" -"This site is not configured to allow communications with other networks." -msgstr "Este site não está configurado para permitir comunicações com outras redes." - -#: ../../include/follow.php:60 ../../include/follow.php:80 -msgid "No compatible communication protocols or feeds were discovered." -msgstr "Não foi descoberto nenhum protocolo de comunicação ou fonte de notícias compatível." - -#: ../../include/follow.php:78 -msgid "The profile address specified does not provide adequate information." -msgstr "O endereço de perfil especificado não fornece informação adequada." - -#: ../../include/follow.php:82 -msgid "An author or name was not found." -msgstr "Não foi encontrado nenhum autor ou nome." - -#: ../../include/follow.php:84 -msgid "No browser URL could be matched to this address." -msgstr "Não foi possível encontrar nenhuma URL de navegação neste endereço." - -#: ../../include/follow.php:86 -msgid "" -"Unable to match @-style Identity Address with a known protocol or email " -"contact." -msgstr "Não foi possível casa o estilo @ de Endereço de Identidade com um protocolo conhecido ou contato de email." - -#: ../../include/follow.php:87 -msgid "Use mailto: in front of address to force email check." -msgstr "Use mailto: antes do endereço para forçar a checagem de email." - -#: ../../include/follow.php:93 -msgid "" -"The profile address specified belongs to a network which has been disabled " -"on this site." -msgstr "O endereço de perfil especificado pertence a uma rede que foi desabilitada neste site." - -#: ../../include/follow.php:103 -msgid "" -"Limited profile. This person will be unable to receive direct/personal " -"notifications from you." -msgstr "Perfil limitado. Essa pessoa não poderá receber notificações diretas/pessoais de você." - -#: ../../include/follow.php:205 -msgid "Unable to retrieve contact information." -msgstr "Não foi possível recuperar a informação do contato." - -#: ../../include/follow.php:258 -msgid "following" -msgstr "acompanhando" - -#: ../../include/uimport.php:94 -msgid "Error decoding account file" -msgstr "Erro ao decodificar arquivo de conta" - -#: ../../include/uimport.php:100 -msgid "Error! No version data in file! This is not a Friendica account file?" -msgstr "Erro! Nenhum arquivo de dados de versão! Esse não é um arquivo de conta do Friendica?" - -#: ../../include/uimport.php:116 ../../include/uimport.php:127 -msgid "Error! Cannot check nickname" -msgstr "Erro! Não consigo conferir o apelido (nickname)" - -#: ../../include/uimport.php:120 ../../include/uimport.php:131 -#, php-format -msgid "User '%s' already exists on this server!" -msgstr "User '%s' já existe nesse servidor!" - -#: ../../include/uimport.php:153 -msgid "User creation error" -msgstr "Erro na criação do usuário" - -#: ../../include/uimport.php:171 -msgid "User profile creation error" -msgstr "Erro na criação do perfil do Usuário" - -#: ../../include/uimport.php:220 -#, php-format -msgid "%d contact not imported" -msgid_plural "%d contacts not imported" -msgstr[0] "%d contato não foi importado" -msgstr[1] "%d contatos não foram importados" - -#: ../../include/uimport.php:290 -msgid "Done. You can now login with your username and password" -msgstr "Feito. Você agora pode entrar com seu nome de usuário e senha" - -#: ../../include/event.php:11 ../../include/bb2diaspora.php:133 -#: ../../mod/localtime.php:12 +#: include/event.php:16 include/bb2diaspora.php:148 mod/localtime.php:12 msgid "l F d, Y \\@ g:i A" msgstr "l F d, Y \\@ H:i" -#: ../../include/event.php:20 ../../include/bb2diaspora.php:139 +#: include/event.php:33 include/event.php:51 include/bb2diaspora.php:154 msgid "Starts:" msgstr "Início:" -#: ../../include/event.php:30 ../../include/bb2diaspora.php:147 +#: include/event.php:36 include/event.php:57 include/bb2diaspora.php:162 msgid "Finishes:" msgstr "Término:" -#: ../../include/Contact.php:119 -msgid "stopped following" -msgstr "parou de acompanhar" +#: include/event.php:39 include/event.php:63 include/bb2diaspora.php:170 +#: include/identity.php:329 mod/directory.php:145 mod/contacts.php:628 +#: mod/events.php:495 mod/notifications.php:232 +msgid "Location:" +msgstr "Localização:" -#: ../../include/Contact.php:232 ../../include/conversation.php:881 -msgid "Poke" -msgstr "Cutucar" +#: include/event.php:441 +msgid "Sun" +msgstr "Dom" -#: ../../include/Contact.php:233 ../../include/conversation.php:875 -msgid "View Status" -msgstr "Ver Status" +#: include/event.php:442 +msgid "Mon" +msgstr "Seg" -#: ../../include/Contact.php:234 ../../include/conversation.php:876 -msgid "View Profile" -msgstr "Ver Perfil" +#: include/event.php:443 +msgid "Tue" +msgstr "Ter" -#: ../../include/Contact.php:235 ../../include/conversation.php:877 -msgid "View Photos" -msgstr "Ver Fotos" +#: include/event.php:444 +msgid "Wed" +msgstr "Qua" -#: ../../include/Contact.php:236 ../../include/Contact.php:259 -#: ../../include/conversation.php:878 -msgid "Network Posts" -msgstr "Publicações da Rede" +#: include/event.php:445 +msgid "Thu" +msgstr "Qui" -#: ../../include/Contact.php:237 ../../include/Contact.php:259 -#: ../../include/conversation.php:879 -msgid "Edit Contact" -msgstr "Editar Contato" +#: include/event.php:446 +msgid "Fri" +msgstr "Sex" -#: ../../include/Contact.php:238 -msgid "Drop Contact" -msgstr "Excluir o contato" +#: include/event.php:447 +msgid "Sat" +msgstr "Sáb" -#: ../../include/Contact.php:239 ../../include/Contact.php:259 -#: ../../include/conversation.php:880 -msgid "Send PM" -msgstr "Enviar MP" - -#: ../../include/dbstructure.php:26 -#, php-format -msgid "" -"\n" -"\t\t\tThe friendica developers released update %s recently,\n" -"\t\t\tbut when I tried to install it, something went terribly wrong.\n" -"\t\t\tThis needs to be fixed soon and I can't do it alone. Please contact a\n" -"\t\t\tfriendica developer if you can not help me on your own. My database might be invalid." -msgstr "\n\t\t\tOs desenvolvedores de Friendica lançaram recentemente uma atualização %s,\n\t\t\tmas quando tentei instalá-la, algo deu terrivelmente errado.\n\t\t\tIsso precisa ser corrigido em breve e eu não posso fazer isso sozinho. Por favor, contate um\n\t\t\tdesenvolvedor da Friendica se você não pode me ajudar sozinho. Meu banco de dados pode ser inválido." - -#: ../../include/dbstructure.php:31 -#, php-format -msgid "" -"The error message is\n" -"[pre]%s[/pre]" -msgstr "A mensagem de erro é\n[pre]%s[/pre]" - -#: ../../include/dbstructure.php:150 -msgid "Errors encountered creating database tables." -msgstr "Foram encontrados erros durante a criação das tabelas do banco de dados." - -#: ../../include/dbstructure.php:208 -msgid "Errors encountered performing database changes." -msgstr "Erros encontrados realizando mudanças no banco de dados." - -#: ../../include/datetime.php:43 ../../include/datetime.php:45 -msgid "Miscellaneous" -msgstr "Miscelânea" - -#: ../../include/datetime.php:153 ../../include/datetime.php:290 -msgid "year" -msgstr "ano" - -#: ../../include/datetime.php:158 ../../include/datetime.php:291 -msgid "month" -msgstr "mês" - -#: ../../include/datetime.php:163 ../../include/datetime.php:293 -msgid "day" -msgstr "dia" - -#: ../../include/datetime.php:276 -msgid "never" -msgstr "nunca" - -#: ../../include/datetime.php:282 -msgid "less than a second ago" -msgstr "menos de um segundo atrás" - -#: ../../include/datetime.php:290 -msgid "years" -msgstr "anos" - -#: ../../include/datetime.php:291 -msgid "months" -msgstr "meses" - -#: ../../include/datetime.php:292 -msgid "week" -msgstr "semana" - -#: ../../include/datetime.php:292 -msgid "weeks" -msgstr "semanas" - -#: ../../include/datetime.php:293 -msgid "days" -msgstr "dias" - -#: ../../include/datetime.php:294 -msgid "hour" -msgstr "hora" - -#: ../../include/datetime.php:294 -msgid "hours" -msgstr "horas" - -#: ../../include/datetime.php:295 -msgid "minute" -msgstr "minuto" - -#: ../../include/datetime.php:295 -msgid "minutes" -msgstr "minutos" - -#: ../../include/datetime.php:296 -msgid "second" -msgstr "segundo" - -#: ../../include/datetime.php:296 -msgid "seconds" -msgstr "segundos" - -#: ../../include/datetime.php:305 -#, php-format -msgid "%1$d %2$s ago" -msgstr "%1$d %2$s atrás" - -#: ../../include/message.php:15 ../../include/message.php:172 -msgid "[no subject]" -msgstr "[sem assunto]" - -#: ../../include/delivery.php:456 ../../include/notifier.php:786 -msgid "(no subject)" -msgstr "(sem assunto)" - -#: ../../include/contact_selectors.php:32 -msgid "Unknown | Not categorised" -msgstr "Desconhecido | Não categorizado" - -#: ../../include/contact_selectors.php:33 -msgid "Block immediately" -msgstr "Bloquear imediatamente" - -#: ../../include/contact_selectors.php:34 -msgid "Shady, spammer, self-marketer" -msgstr "Dissimulado, spammer, propagandista" - -#: ../../include/contact_selectors.php:35 -msgid "Known to me, but no opinion" -msgstr "Eu conheço, mas não possuo nenhuma opinião acerca" - -#: ../../include/contact_selectors.php:36 -msgid "OK, probably harmless" -msgstr "Ok, provavelmente inofensivo" - -#: ../../include/contact_selectors.php:37 -msgid "Reputable, has my trust" -msgstr "Boa reputação, tem minha confiança" - -#: ../../include/contact_selectors.php:56 ../../mod/admin.php:571 -msgid "Frequently" -msgstr "Frequentemente" - -#: ../../include/contact_selectors.php:57 ../../mod/admin.php:572 -msgid "Hourly" -msgstr "De hora em hora" - -#: ../../include/contact_selectors.php:58 ../../mod/admin.php:573 -msgid "Twice daily" -msgstr "Duas vezes ao dia" - -#: ../../include/contact_selectors.php:59 ../../mod/admin.php:574 -msgid "Daily" -msgstr "Diariamente" - -#: ../../include/contact_selectors.php:60 -msgid "Weekly" -msgstr "Semanalmente" - -#: ../../include/contact_selectors.php:61 -msgid "Monthly" -msgstr "Mensalmente" - -#: ../../include/contact_selectors.php:76 ../../mod/dfrn_request.php:836 -msgid "Friendica" -msgstr "Friendica" - -#: ../../include/contact_selectors.php:77 -msgid "OStatus" -msgstr "OStatus" - -#: ../../include/contact_selectors.php:78 -msgid "RSS/Atom" -msgstr "RSS/Atom" - -#: ../../include/contact_selectors.php:79 -#: ../../include/contact_selectors.php:86 ../../mod/admin.php:1003 -#: ../../mod/admin.php:1015 ../../mod/admin.php:1016 ../../mod/admin.php:1031 -msgid "Email" -msgstr "E-mail" - -#: ../../include/contact_selectors.php:80 ../../mod/settings.php:741 -#: ../../mod/dfrn_request.php:838 -msgid "Diaspora" -msgstr "Diaspora" - -#: ../../include/contact_selectors.php:81 ../../mod/newmember.php:49 -#: ../../mod/newmember.php:51 -msgid "Facebook" -msgstr "Facebook" - -#: ../../include/contact_selectors.php:82 -msgid "Zot!" -msgstr "Zot!" - -#: ../../include/contact_selectors.php:83 -msgid "LinkedIn" -msgstr "LinkedIn" - -#: ../../include/contact_selectors.php:84 -msgid "XMPP/IM" -msgstr "XMPP/IM" - -#: ../../include/contact_selectors.php:85 -msgid "MySpace" -msgstr "MySpace" - -#: ../../include/contact_selectors.php:87 -msgid "Google+" -msgstr "Google+" - -#: ../../include/contact_selectors.php:88 -msgid "pump.io" -msgstr "pump.io" - -#: ../../include/contact_selectors.php:89 -msgid "Twitter" -msgstr "Twitter" - -#: ../../include/contact_selectors.php:90 -msgid "Diaspora Connector" -msgstr "Conector do Diáspora" - -#: ../../include/contact_selectors.php:91 -msgid "Statusnet" -msgstr "Statusnet" - -#: ../../include/contact_selectors.php:92 -msgid "App.net" -msgstr "App.net" - -#: ../../include/diaspora.php:621 ../../include/conversation.php:172 -#: ../../mod/dfrn_confirm.php:486 -#, php-format -msgid "%1$s is now friends with %2$s" -msgstr "%1$s agora é amigo de %2$s" - -#: ../../include/diaspora.php:704 -msgid "Sharing notification from Diaspora network" -msgstr "Notificação de compartilhamento da rede Diaspora" - -#: ../../include/diaspora.php:2444 -msgid "Attachments:" -msgstr "Anexos:" - -#: ../../include/conversation.php:140 ../../mod/like.php:168 -#, php-format -msgid "%1$s doesn't like %2$s's %3$s" -msgstr "%1$s não gosta de %3$s de %2$s" - -#: ../../include/conversation.php:206 -#, php-format -msgid "%1$s poked %2$s" -msgstr "%1$s cutucou %2$s" - -#: ../../include/conversation.php:226 ../../mod/mood.php:62 -#, php-format -msgid "%1$s is currently %2$s" -msgstr "%1$s atualmente está %2$s" - -#: ../../include/conversation.php:265 ../../mod/tagger.php:95 -#, php-format -msgid "%1$s tagged %2$s's %3$s with %4$s" -msgstr "%1$s etiquetou %3$s de %2$s com %4$s" - -#: ../../include/conversation.php:290 -msgid "post/item" -msgstr "postagem/item" - -#: ../../include/conversation.php:291 -#, php-format -msgid "%1$s marked %2$s's %3$s as favorite" -msgstr "%1$s marcou %3$s de %2$s como favorito" - -#: ../../include/conversation.php:612 ../../object/Item.php:129 -#: ../../mod/photos.php:1653 ../../mod/content.php:437 -#: ../../mod/content.php:740 -msgid "Select" -msgstr "Selecionar" - -#: ../../include/conversation.php:613 ../../object/Item.php:130 -#: ../../mod/group.php:171 ../../mod/settings.php:682 -#: ../../mod/contacts.php:733 ../../mod/admin.php:1007 -#: ../../mod/photos.php:1654 ../../mod/content.php:438 -#: ../../mod/content.php:741 -msgid "Delete" -msgstr "Excluir" - -#: ../../include/conversation.php:653 ../../object/Item.php:326 -#: ../../object/Item.php:327 ../../mod/content.php:471 -#: ../../mod/content.php:852 ../../mod/content.php:853 -#, php-format -msgid "View %s's profile @ %s" -msgstr "Ver o perfil de %s @ %s" - -#: ../../include/conversation.php:665 ../../object/Item.php:316 -msgid "Categories:" -msgstr "Categorias:" - -#: ../../include/conversation.php:666 ../../object/Item.php:317 -msgid "Filed under:" -msgstr "Arquivado sob:" - -#: ../../include/conversation.php:673 ../../object/Item.php:340 -#: ../../mod/content.php:481 ../../mod/content.php:864 -#, php-format -msgid "%s from %s" -msgstr "%s de %s" - -#: ../../include/conversation.php:689 ../../mod/content.php:497 -msgid "View in context" -msgstr "Ver no contexto" - -#: ../../include/conversation.php:691 ../../include/conversation.php:1108 -#: ../../object/Item.php:364 ../../mod/wallmessage.php:156 -#: ../../mod/editpost.php:124 ../../mod/photos.php:1545 -#: ../../mod/message.php:334 ../../mod/message.php:565 -#: ../../mod/content.php:499 ../../mod/content.php:883 -msgid "Please wait" -msgstr "Por favor, espere" - -#: ../../include/conversation.php:771 -msgid "remove" -msgstr "remover" - -#: ../../include/conversation.php:775 -msgid "Delete Selected Items" -msgstr "Excluir os itens selecionados" - -#: ../../include/conversation.php:874 -msgid "Follow Thread" -msgstr "Seguir o Thread" - -#: ../../include/conversation.php:943 -#, php-format -msgid "%s likes this." -msgstr "%s gostou disso." - -#: ../../include/conversation.php:943 -#, php-format -msgid "%s doesn't like this." -msgstr "%s não gostou disso." - -#: ../../include/conversation.php:948 -#, php-format -msgid "%2$d people like this" -msgstr "%2$d pessoas gostaram disso" - -#: ../../include/conversation.php:951 -#, php-format -msgid "%2$d people don't like this" -msgstr "%2$d pessoas não gostaram disso" - -#: ../../include/conversation.php:965 -msgid "and" -msgstr "e" - -#: ../../include/conversation.php:971 -#, php-format -msgid ", and %d other people" -msgstr ", e mais %d outras pessoas" - -#: ../../include/conversation.php:973 -#, php-format -msgid "%s like this." -msgstr "%s gostaram disso." - -#: ../../include/conversation.php:973 -#, php-format -msgid "%s don't like this." -msgstr "%s não gostaram disso." - -#: ../../include/conversation.php:1000 ../../include/conversation.php:1018 -msgid "Visible to everybody" -msgstr "Visível para todos" - -#: ../../include/conversation.php:1001 ../../include/conversation.php:1019 -#: ../../mod/wallmessage.php:127 ../../mod/wallmessage.php:135 -#: ../../mod/message.php:283 ../../mod/message.php:291 -#: ../../mod/message.php:466 ../../mod/message.php:474 -msgid "Please enter a link URL:" -msgstr "Por favor, digite uma URL:" - -#: ../../include/conversation.php:1002 ../../include/conversation.php:1020 -msgid "Please enter a video link/URL:" -msgstr "Favor fornecer um link/URL de vídeo" - -#: ../../include/conversation.php:1003 ../../include/conversation.php:1021 -msgid "Please enter an audio link/URL:" -msgstr "Favor fornecer um link/URL de áudio" - -#: ../../include/conversation.php:1004 ../../include/conversation.php:1022 -msgid "Tag term:" -msgstr "Etiqueta:" - -#: ../../include/conversation.php:1005 ../../include/conversation.php:1023 -#: ../../mod/filer.php:30 -msgid "Save to Folder:" -msgstr "Salvar na pasta:" - -#: ../../include/conversation.php:1006 ../../include/conversation.php:1024 -msgid "Where are you right now?" -msgstr "Onde você está agora?" - -#: ../../include/conversation.php:1007 -msgid "Delete item(s)?" -msgstr "Deletar item(s)?" - -#: ../../include/conversation.php:1050 -msgid "Post to Email" -msgstr "Enviar por e-mail" - -#: ../../include/conversation.php:1055 -#, php-format -msgid "Connectors disabled, since \"%s\" is enabled." -msgstr "Conectores desabilitados, desde \"%s\" está habilitado." - -#: ../../include/conversation.php:1056 ../../mod/settings.php:1033 -msgid "Hide your profile details from unknown viewers?" -msgstr "Ocultar os detalhes do seu perfil para pessoas desconhecidas?" - -#: ../../include/conversation.php:1089 ../../mod/photos.php:1544 -msgid "Share" -msgstr "Compartilhar" - -#: ../../include/conversation.php:1090 ../../mod/wallmessage.php:154 -#: ../../mod/editpost.php:110 ../../mod/message.php:332 -#: ../../mod/message.php:562 -msgid "Upload photo" -msgstr "Enviar foto" - -#: ../../include/conversation.php:1091 ../../mod/editpost.php:111 -msgid "upload photo" -msgstr "upload de foto" - -#: ../../include/conversation.php:1092 ../../mod/editpost.php:112 -msgid "Attach file" -msgstr "Anexar arquivo" - -#: ../../include/conversation.php:1093 ../../mod/editpost.php:113 -msgid "attach file" -msgstr "anexar arquivo" - -#: ../../include/conversation.php:1094 ../../mod/wallmessage.php:155 -#: ../../mod/editpost.php:114 ../../mod/message.php:333 -#: ../../mod/message.php:563 -msgid "Insert web link" -msgstr "Inserir link web" - -#: ../../include/conversation.php:1095 ../../mod/editpost.php:115 -msgid "web link" -msgstr "link web" - -#: ../../include/conversation.php:1096 ../../mod/editpost.php:116 -msgid "Insert video link" -msgstr "Inserir link de vídeo" - -#: ../../include/conversation.php:1097 ../../mod/editpost.php:117 -msgid "video link" -msgstr "link de vídeo" - -#: ../../include/conversation.php:1098 ../../mod/editpost.php:118 -msgid "Insert audio link" -msgstr "Inserir link de áudio" - -#: ../../include/conversation.php:1099 ../../mod/editpost.php:119 -msgid "audio link" -msgstr "link de áudio" - -#: ../../include/conversation.php:1100 ../../mod/editpost.php:120 -msgid "Set your location" -msgstr "Definir sua localização" - -#: ../../include/conversation.php:1101 ../../mod/editpost.php:121 -msgid "set location" -msgstr "configure localização" - -#: ../../include/conversation.php:1102 ../../mod/editpost.php:122 -msgid "Clear browser location" -msgstr "Limpar a localização do navegador" - -#: ../../include/conversation.php:1103 ../../mod/editpost.php:123 -msgid "clear location" -msgstr "apague localização" - -#: ../../include/conversation.php:1105 ../../mod/editpost.php:137 -msgid "Set title" -msgstr "Definir o título" - -#: ../../include/conversation.php:1107 ../../mod/editpost.php:139 -msgid "Categories (comma-separated list)" -msgstr "Categorias (lista separada por vírgulas)" - -#: ../../include/conversation.php:1109 ../../mod/editpost.php:125 -msgid "Permission settings" -msgstr "Configurações de permissão" - -#: ../../include/conversation.php:1110 -msgid "permissions" -msgstr "permissões" - -#: ../../include/conversation.php:1118 ../../mod/editpost.php:133 -msgid "CC: email addresses" -msgstr "CC: endereço de e-mail" - -#: ../../include/conversation.php:1119 ../../mod/editpost.php:134 -msgid "Public post" -msgstr "Publicação pública" - -#: ../../include/conversation.php:1121 ../../mod/editpost.php:140 -msgid "Example: bob@example.com, mary@example.com" -msgstr "Por exemplo: joao@exemplo.com, maria@exemplo.com" - -#: ../../include/conversation.php:1125 ../../object/Item.php:687 -#: ../../mod/editpost.php:145 ../../mod/photos.php:1566 -#: ../../mod/photos.php:1610 ../../mod/photos.php:1698 -#: ../../mod/content.php:719 -msgid "Preview" -msgstr "Pré-visualização" - -#: ../../include/conversation.php:1134 -msgid "Post to Groups" -msgstr "Postar em Grupos" - -#: ../../include/conversation.php:1135 -msgid "Post to Contacts" -msgstr "Publique para Contatos" - -#: ../../include/conversation.php:1136 -msgid "Private post" -msgstr "Publicação privada" - -#: ../../include/text.php:297 -msgid "newer" -msgstr "mais recente" - -#: ../../include/text.php:299 -msgid "older" -msgstr "antigo" - -#: ../../include/text.php:304 -msgid "prev" -msgstr "anterior" - -#: ../../include/text.php:306 -msgid "first" -msgstr "primeiro" - -#: ../../include/text.php:338 -msgid "last" -msgstr "último" - -#: ../../include/text.php:341 -msgid "next" -msgstr "próximo" - -#: ../../include/text.php:396 -msgid "Loading more entries..." -msgstr "Baixando mais entradas..." - -#: ../../include/text.php:397 -msgid "The end" -msgstr "Fim" - -#: ../../include/text.php:870 -msgid "No contacts" -msgstr "Nenhum contato" - -#: ../../include/text.php:879 -#, php-format -msgid "%d Contact" -msgid_plural "%d Contacts" -msgstr[0] "%d contato" -msgstr[1] "%d contatos" - -#: ../../include/text.php:891 ../../mod/viewcontacts.php:78 -msgid "View Contacts" -msgstr "Ver contatos" - -#: ../../include/text.php:971 ../../mod/editpost.php:109 -#: ../../mod/notes.php:63 ../../mod/filer.php:31 -msgid "Save" -msgstr "Salvar" - -#: ../../include/text.php:1020 -msgid "poke" -msgstr "cutucar" - -#: ../../include/text.php:1020 -msgid "poked" -msgstr "cutucado" - -#: ../../include/text.php:1021 -msgid "ping" -msgstr "ping" - -#: ../../include/text.php:1021 -msgid "pinged" -msgstr "pingado" - -#: ../../include/text.php:1022 -msgid "prod" -msgstr "incentivar" - -#: ../../include/text.php:1022 -msgid "prodded" -msgstr "incentivado" - -#: ../../include/text.php:1023 -msgid "slap" -msgstr "bater" - -#: ../../include/text.php:1023 -msgid "slapped" -msgstr "batido" - -#: ../../include/text.php:1024 -msgid "finger" -msgstr "apontar" - -#: ../../include/text.php:1024 -msgid "fingered" -msgstr "apontado" - -#: ../../include/text.php:1025 -msgid "rebuff" -msgstr "rejeite" - -#: ../../include/text.php:1025 -msgid "rebuffed" -msgstr "rejeitado" - -#: ../../include/text.php:1039 -msgid "happy" -msgstr "feliz" - -#: ../../include/text.php:1040 -msgid "sad" -msgstr "triste" - -#: ../../include/text.php:1041 -msgid "mellow" -msgstr "desencanado" - -#: ../../include/text.php:1042 -msgid "tired" -msgstr "cansado" - -#: ../../include/text.php:1043 -msgid "perky" -msgstr "audacioso" - -#: ../../include/text.php:1044 -msgid "angry" -msgstr "chateado" - -#: ../../include/text.php:1045 -msgid "stupified" -msgstr "estupefato" - -#: ../../include/text.php:1046 -msgid "puzzled" -msgstr "confuso" - -#: ../../include/text.php:1047 -msgid "interested" -msgstr "interessado" - -#: ../../include/text.php:1048 -msgid "bitter" -msgstr "rancoroso" - -#: ../../include/text.php:1049 -msgid "cheerful" -msgstr "jovial" - -#: ../../include/text.php:1050 -msgid "alive" -msgstr "vivo" - -#: ../../include/text.php:1051 -msgid "annoyed" -msgstr "incomodado" - -#: ../../include/text.php:1052 -msgid "anxious" -msgstr "ansioso" - -#: ../../include/text.php:1053 -msgid "cranky" -msgstr "excêntrico" - -#: ../../include/text.php:1054 -msgid "disturbed" -msgstr "perturbado" - -#: ../../include/text.php:1055 -msgid "frustrated" -msgstr "frustrado" - -#: ../../include/text.php:1056 -msgid "motivated" -msgstr "motivado" - -#: ../../include/text.php:1057 -msgid "relaxed" -msgstr "relaxado" - -#: ../../include/text.php:1058 -msgid "surprised" -msgstr "surpreso" - -#: ../../include/text.php:1228 -msgid "Monday" -msgstr "Segunda" - -#: ../../include/text.php:1228 -msgid "Tuesday" -msgstr "Terça" - -#: ../../include/text.php:1228 -msgid "Wednesday" -msgstr "Quarta" - -#: ../../include/text.php:1228 -msgid "Thursday" -msgstr "Quinta" - -#: ../../include/text.php:1228 -msgid "Friday" -msgstr "Sexta" - -#: ../../include/text.php:1228 -msgid "Saturday" -msgstr "Sábado" - -#: ../../include/text.php:1228 +#: include/event.php:448 include/text.php:1112 mod/settings.php:955 msgid "Sunday" msgstr "Domingo" -#: ../../include/text.php:1232 -msgid "January" -msgstr "Janeiro" +#: include/event.php:449 include/text.php:1112 mod/settings.php:955 +msgid "Monday" +msgstr "Segunda" -#: ../../include/text.php:1232 -msgid "February" -msgstr "Fevereiro" +#: include/event.php:450 include/text.php:1112 +msgid "Tuesday" +msgstr "Terça" -#: ../../include/text.php:1232 -msgid "March" -msgstr "Março" +#: include/event.php:451 include/text.php:1112 +msgid "Wednesday" +msgstr "Quarta" -#: ../../include/text.php:1232 -msgid "April" -msgstr "Abril" +#: include/event.php:452 include/text.php:1112 +msgid "Thursday" +msgstr "Quinta" -#: ../../include/text.php:1232 +#: include/event.php:453 include/text.php:1112 +msgid "Friday" +msgstr "Sexta" + +#: include/event.php:454 include/text.php:1112 +msgid "Saturday" +msgstr "Sábado" + +#: include/event.php:455 +msgid "Jan" +msgstr "Jan" + +#: include/event.php:456 +msgid "Feb" +msgstr "Fev" + +#: include/event.php:457 +msgid "Mar" +msgstr "Mar" + +#: include/event.php:458 +msgid "Apr" +msgstr "Abr" + +#: include/event.php:459 include/event.php:471 include/text.php:1116 msgid "May" msgstr "Maio" -#: ../../include/text.php:1232 +#: include/event.php:460 +msgid "Jun" +msgstr "Jun" + +#: include/event.php:461 +msgid "Jul" +msgstr "Jul" + +#: include/event.php:462 +msgid "Aug" +msgstr "Ago" + +#: include/event.php:463 +msgid "Sept" +msgstr "Set" + +#: include/event.php:464 +msgid "Oct" +msgstr "Out" + +#: include/event.php:465 +msgid "Nov" +msgstr "Nov" + +#: include/event.php:466 +msgid "Dec" +msgstr "Dez" + +#: include/event.php:467 include/text.php:1116 +msgid "January" +msgstr "Janeiro" + +#: include/event.php:468 include/text.php:1116 +msgid "February" +msgstr "Fevereiro" + +#: include/event.php:469 include/text.php:1116 +msgid "March" +msgstr "Março" + +#: include/event.php:470 include/text.php:1116 +msgid "April" +msgstr "Abril" + +#: include/event.php:472 include/text.php:1116 msgid "June" msgstr "Junho" -#: ../../include/text.php:1232 +#: include/event.php:473 include/text.php:1116 msgid "July" msgstr "Julho" -#: ../../include/text.php:1232 +#: include/event.php:474 include/text.php:1116 msgid "August" msgstr "Agosto" -#: ../../include/text.php:1232 +#: include/event.php:475 include/text.php:1116 msgid "September" msgstr "Setembro" -#: ../../include/text.php:1232 +#: include/event.php:476 include/text.php:1116 msgid "October" msgstr "Outubro" -#: ../../include/text.php:1232 +#: include/event.php:477 include/text.php:1116 msgid "November" msgstr "Novembro" -#: ../../include/text.php:1232 +#: include/event.php:478 include/text.php:1116 msgid "December" msgstr "Dezembro" -#: ../../include/text.php:1422 ../../mod/videos.php:301 -msgid "View Video" -msgstr "Ver Vídeo" +#: include/event.php:479 mod/cal.php:286 mod/events.php:388 +msgid "today" +msgstr "hoje" -#: ../../include/text.php:1454 -msgid "bytes" -msgstr "bytes" +#: include/event.php:567 +msgid "l, F j" +msgstr "l, F j" -#: ../../include/text.php:1478 ../../include/text.php:1490 -msgid "Click to open/close" -msgstr "Clique para abrir/fechar" +#: include/event.php:586 +msgid "Edit event" +msgstr "Editar o evento" -#: ../../include/text.php:1664 ../../include/text.php:1674 -#: ../../mod/events.php:335 +#: include/event.php:608 include/text.php:1518 include/text.php:1525 msgid "link to source" msgstr "exibir a origem" -#: ../../include/text.php:1731 -msgid "Select an alternate language" -msgstr "Selecione um idioma alternativo" +#: include/event.php:843 +msgid "Export" +msgstr "Exportar" -#: ../../include/text.php:1987 -msgid "activity" -msgstr "atividade" +#: include/event.php:844 +msgid "Export calendar as ical" +msgstr "Exportar a agenda como iCal" -#: ../../include/text.php:1989 ../../object/Item.php:389 -#: ../../object/Item.php:402 ../../mod/content.php:605 -msgid "comment" -msgid_plural "comments" -msgstr[0] "comentário" -msgstr[1] "comentários" +#: include/event.php:845 +msgid "Export calendar as csv" +msgstr "Exportar a agenda como CSV" -#: ../../include/text.php:1990 -msgid "post" -msgstr "publicação" - -#: ../../include/text.php:2158 -msgid "Item filed" -msgstr "O item foi arquivado" - -#: ../../include/auth.php:38 -msgid "Logged out." -msgstr "Saiu." - -#: ../../include/auth.php:112 ../../include/auth.php:175 -#: ../../mod/openid.php:93 -msgid "Login failed." -msgstr "Não foi possível autenticar." - -#: ../../include/auth.php:128 ../../include/user.php:67 -msgid "" -"We encountered a problem while logging in with the OpenID you provided. " -"Please check the correct spelling of the ID." -msgstr "Foi encontrado um erro ao tentar conectar usando o OpenID que você forneceu. Por favor, verifique se sua ID está escrita corretamente." - -#: ../../include/auth.php:128 ../../include/user.php:67 -msgid "The error message was:" -msgstr "A mensagem de erro foi:" - -#: ../../include/bbcode.php:433 ../../include/bbcode.php:1066 -#: ../../include/bbcode.php:1067 -msgid "Image/photo" -msgstr "Imagem/foto" - -#: ../../include/bbcode.php:531 -#, php-format -msgid "%2$s %3$s" -msgstr "%2$s %3$s" - -#: ../../include/bbcode.php:565 -#, php-format -msgid "" -"%s wrote the following post" -msgstr "%s escreveu a seguinte publicação" - -#: ../../include/bbcode.php:1030 ../../include/bbcode.php:1050 -msgid "$1 wrote:" -msgstr "$1 escreveu:" - -#: ../../include/bbcode.php:1075 ../../include/bbcode.php:1076 -msgid "Encrypted content" -msgstr "Conteúdo criptografado" - -#: ../../include/security.php:22 +#: include/security.php:22 msgid "Welcome " msgstr "Bem-vindo(a) " -#: ../../include/security.php:23 +#: include/security.php:23 msgid "Please upload a profile photo." msgstr "Por favor, envie uma foto para o perfil." -#: ../../include/security.php:26 +#: include/security.php:26 msgid "Welcome back " msgstr "Bem-vindo(a) de volta " -#: ../../include/security.php:366 +#: include/security.php:375 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 "O token de segurança do formulário não estava correto. Isso provavelmente aconteceu porque o formulário ficou aberto por muito tempo (>3 horas) antes da sua submissão." -#: ../../include/oembed.php:213 -msgid "Embedded content" -msgstr "Conteúdo incorporado" - -#: ../../include/oembed.php:222 -msgid "Embedding disabled" -msgstr "A incorporação está desabilitada" - -#: ../../include/profile_selectors.php:6 +#: include/profile_selectors.php:6 msgid "Male" msgstr "Masculino" -#: ../../include/profile_selectors.php:6 +#: include/profile_selectors.php:6 msgid "Female" msgstr "Feminino" -#: ../../include/profile_selectors.php:6 +#: include/profile_selectors.php:6 msgid "Currently Male" msgstr "Atualmente masculino" -#: ../../include/profile_selectors.php:6 +#: include/profile_selectors.php:6 msgid "Currently Female" msgstr "Atualmente feminino" -#: ../../include/profile_selectors.php:6 +#: include/profile_selectors.php:6 msgid "Mostly Male" msgstr "Masculino a maior parte do tempo" -#: ../../include/profile_selectors.php:6 +#: include/profile_selectors.php:6 msgid "Mostly Female" msgstr "Feminino a maior parte do tempo" -#: ../../include/profile_selectors.php:6 +#: include/profile_selectors.php:6 msgid "Transgender" msgstr "Transgênero" -#: ../../include/profile_selectors.php:6 +#: include/profile_selectors.php:6 msgid "Intersex" msgstr "Intersexual" -#: ../../include/profile_selectors.php:6 +#: include/profile_selectors.php:6 msgid "Transsexual" msgstr "Transexual" -#: ../../include/profile_selectors.php:6 +#: include/profile_selectors.php:6 msgid "Hermaphrodite" msgstr "Hermafrodita" -#: ../../include/profile_selectors.php:6 +#: include/profile_selectors.php:6 msgid "Neuter" msgstr "Neutro" -#: ../../include/profile_selectors.php:6 +#: include/profile_selectors.php:6 msgid "Non-specific" msgstr "Não específico" -#: ../../include/profile_selectors.php:6 +#: include/profile_selectors.php:6 msgid "Other" msgstr "Outro" -#: ../../include/profile_selectors.php:6 +#: include/profile_selectors.php:6 include/conversation.php:1477 msgid "Undecided" -msgstr "Indeciso" +msgid_plural "Undecided" +msgstr[0] "" +msgstr[1] "" -#: ../../include/profile_selectors.php:23 +#: include/profile_selectors.php:23 msgid "Males" msgstr "Homens" -#: ../../include/profile_selectors.php:23 +#: include/profile_selectors.php:23 msgid "Females" msgstr "Mulheres" -#: ../../include/profile_selectors.php:23 +#: include/profile_selectors.php:23 msgid "Gay" msgstr "Gays" -#: ../../include/profile_selectors.php:23 +#: include/profile_selectors.php:23 msgid "Lesbian" msgstr "Lésbicas" -#: ../../include/profile_selectors.php:23 +#: include/profile_selectors.php:23 msgid "No Preference" msgstr "Sem preferência" -#: ../../include/profile_selectors.php:23 +#: include/profile_selectors.php:23 msgid "Bisexual" msgstr "Bissexuais" -#: ../../include/profile_selectors.php:23 +#: include/profile_selectors.php:23 msgid "Autosexual" msgstr "Autossexuais" -#: ../../include/profile_selectors.php:23 +#: include/profile_selectors.php:23 msgid "Abstinent" msgstr "Abstêmios" -#: ../../include/profile_selectors.php:23 +#: include/profile_selectors.php:23 msgid "Virgin" msgstr "Virgens" -#: ../../include/profile_selectors.php:23 +#: include/profile_selectors.php:23 msgid "Deviant" msgstr "Desviantes" -#: ../../include/profile_selectors.php:23 +#: include/profile_selectors.php:23 msgid "Fetish" msgstr "Fetiches" -#: ../../include/profile_selectors.php:23 +#: include/profile_selectors.php:23 msgid "Oodles" msgstr "Insaciável" -#: ../../include/profile_selectors.php:23 +#: include/profile_selectors.php:23 msgid "Nonsexual" msgstr "Não sexual" -#: ../../include/profile_selectors.php:42 +#: include/profile_selectors.php:42 msgid "Single" msgstr "Solteiro(a)" -#: ../../include/profile_selectors.php:42 +#: include/profile_selectors.php:42 msgid "Lonely" msgstr "Solitário(a)" -#: ../../include/profile_selectors.php:42 +#: include/profile_selectors.php:42 msgid "Available" msgstr "Disponível" -#: ../../include/profile_selectors.php:42 +#: include/profile_selectors.php:42 msgid "Unavailable" msgstr "Não disponível" -#: ../../include/profile_selectors.php:42 +#: include/profile_selectors.php:42 msgid "Has crush" msgstr "Tem uma paixão" -#: ../../include/profile_selectors.php:42 +#: include/profile_selectors.php:42 msgid "Infatuated" msgstr "Apaixonado" -#: ../../include/profile_selectors.php:42 +#: include/profile_selectors.php:42 msgid "Dating" msgstr "Saindo com alguém" -#: ../../include/profile_selectors.php:42 +#: include/profile_selectors.php:42 msgid "Unfaithful" msgstr "Infiel" -#: ../../include/profile_selectors.php:42 +#: include/profile_selectors.php:42 msgid "Sex Addict" msgstr "Viciado(a) em sexo" -#: ../../include/profile_selectors.php:42 ../../include/user.php:289 -#: ../../include/user.php:293 +#: include/profile_selectors.php:42 include/user.php:299 include/user.php:303 msgid "Friends" msgstr "Amigos" -#: ../../include/profile_selectors.php:42 +#: include/profile_selectors.php:42 msgid "Friends/Benefits" msgstr "Amigos/Benefícios" -#: ../../include/profile_selectors.php:42 +#: include/profile_selectors.php:42 msgid "Casual" msgstr "Casual" -#: ../../include/profile_selectors.php:42 +#: include/profile_selectors.php:42 msgid "Engaged" msgstr "Envolvido(a)" -#: ../../include/profile_selectors.php:42 +#: include/profile_selectors.php:42 msgid "Married" msgstr "Casado(a)" -#: ../../include/profile_selectors.php:42 +#: include/profile_selectors.php:42 msgid "Imaginarily married" msgstr "Casado imaginariamente" -#: ../../include/profile_selectors.php:42 +#: include/profile_selectors.php:42 msgid "Partners" msgstr "Parceiros" -#: ../../include/profile_selectors.php:42 +#: include/profile_selectors.php:42 msgid "Cohabiting" msgstr "Coabitando" -#: ../../include/profile_selectors.php:42 +#: include/profile_selectors.php:42 msgid "Common law" msgstr "Direito comum" -#: ../../include/profile_selectors.php:42 +#: include/profile_selectors.php:42 msgid "Happy" msgstr "Feliz" -#: ../../include/profile_selectors.php:42 +#: include/profile_selectors.php:42 msgid "Not looking" msgstr "Não estou procurando" -#: ../../include/profile_selectors.php:42 +#: include/profile_selectors.php:42 msgid "Swinger" msgstr "Swinger" -#: ../../include/profile_selectors.php:42 +#: include/profile_selectors.php:42 msgid "Betrayed" msgstr "Traído(a)" -#: ../../include/profile_selectors.php:42 +#: include/profile_selectors.php:42 msgid "Separated" msgstr "Separado(a)" -#: ../../include/profile_selectors.php:42 +#: include/profile_selectors.php:42 msgid "Unstable" msgstr "Instável" -#: ../../include/profile_selectors.php:42 +#: include/profile_selectors.php:42 msgid "Divorced" msgstr "Divorciado(a)" -#: ../../include/profile_selectors.php:42 +#: include/profile_selectors.php:42 msgid "Imaginarily divorced" msgstr "Divorciado imaginariamente" -#: ../../include/profile_selectors.php:42 +#: include/profile_selectors.php:42 msgid "Widowed" msgstr "Viúvo(a)" -#: ../../include/profile_selectors.php:42 +#: include/profile_selectors.php:42 msgid "Uncertain" msgstr "Incerto(a)" -#: ../../include/profile_selectors.php:42 +#: include/profile_selectors.php:42 msgid "It's complicated" msgstr "É complicado" -#: ../../include/profile_selectors.php:42 +#: include/profile_selectors.php:42 msgid "Don't care" msgstr "Não importa" -#: ../../include/profile_selectors.php:42 +#: include/profile_selectors.php:42 msgid "Ask me" msgstr "Pergunte-me" -#: ../../include/user.php:40 +#: include/oembed.php:229 +msgid "Embedded content" +msgstr "Conteúdo incorporado" + +#: include/oembed.php:238 +msgid "Embedding disabled" +msgstr "A incorporação está desabilitada" + +#: include/bbcode.php:349 include/bbcode.php:1054 include/bbcode.php:1055 +msgid "Image/photo" +msgstr "Imagem/foto" + +#: include/bbcode.php:466 +#, php-format +msgid "%2$s %3$s" +msgstr "%2$s %3$s" + +#: include/bbcode.php:1014 include/bbcode.php:1034 +msgid "$1 wrote:" +msgstr "$1 escreveu:" + +#: include/bbcode.php:1063 include/bbcode.php:1064 +msgid "Encrypted content" +msgstr "Conteúdo criptografado" + +#: include/dba_pdo.php:72 include/dba.php:56 +#, php-format +msgid "Cannot locate DNS info for database server '%s'" +msgstr "Não foi possível localizar a informação de DNS para o servidor de banco de dados '%s'" + +#: include/auth.php:45 +msgid "Logged out." +msgstr "Saiu." + +#: include/auth.php:116 include/auth.php:178 mod/openid.php:100 +msgid "Login failed." +msgstr "Não foi possível autenticar." + +#: include/auth.php:132 include/user.php:75 +msgid "" +"We encountered a problem while logging in with the OpenID you provided. " +"Please check the correct spelling of the ID." +msgstr "Foi encontrado um erro ao tentar conectar usando o OpenID que você forneceu. Por favor, verifique se sua ID está escrita corretamente." + +#: include/auth.php:132 include/user.php:75 +msgid "The error message was:" +msgstr "A mensagem de erro foi:" + +#: include/group.php:25 +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 "Um grupo com esse nome, anteriormente excluído, foi reativado. Permissões de itens já existentes poderão ser aplicadas a esse grupo e qualquer futuros membros. Se não é essa a sua intenção, favor criar outro grupo com um nome diferente." + +#: include/group.php:209 +msgid "Default privacy group for new contacts" +msgstr "Grupo de privacidade padrão para novos contatos" + +#: include/group.php:242 +msgid "Everybody" +msgstr "Todos" + +#: include/group.php:265 +msgid "edit" +msgstr "editar" + +#: include/group.php:286 mod/newmember.php:61 +msgid "Groups" +msgstr "Grupos" + +#: include/group.php:288 +msgid "Edit groups" +msgstr "Editar grupos" + +#: include/group.php:290 +msgid "Edit group" +msgstr "Editar grupo" + +#: include/group.php:291 +msgid "Create a new group" +msgstr "Criar um novo grupo" + +#: include/group.php:292 mod/group.php:94 mod/group.php:178 +msgid "Group Name: " +msgstr "Nome do grupo: " + +#: include/group.php:294 +msgid "Contacts not in any group" +msgstr "Contatos não estão dentro de nenhum grupo" + +#: include/group.php:296 mod/network.php:201 +msgid "add" +msgstr "adicionar" + +#: include/Photo.php:996 include/Photo.php:1011 include/Photo.php:1018 +#: include/Photo.php:1040 include/message.php:145 mod/wall_upload.php:218 +#: mod/wall_upload.php:232 mod/wall_upload.php:239 mod/item.php:472 +msgid "Wall Photos" +msgstr "Fotos do mural" + +#: include/delivery.php:439 +msgid "(no subject)" +msgstr "(sem assunto)" + +#: include/user.php:39 mod/settings.php:370 +msgid "Passwords do not match. Password unchanged." +msgstr "As senhas não correspondem. A senha não foi modificada." + +#: include/user.php:48 msgid "An invitation is required." msgstr "É necessário um convite." -#: ../../include/user.php:45 +#: include/user.php:53 msgid "Invitation could not be verified." msgstr "Não foi possível verificar o convite." -#: ../../include/user.php:53 +#: include/user.php:61 msgid "Invalid OpenID url" msgstr "A URL do OpenID é inválida" -#: ../../include/user.php:74 +#: include/user.php:82 msgid "Please enter the required information." msgstr "Por favor, forneça a informação solicitada." -#: ../../include/user.php:88 +#: include/user.php:96 msgid "Please use a shorter name." msgstr "Por favor, use um nome mais curto." -#: ../../include/user.php:90 +#: include/user.php:98 msgid "Name too short." msgstr "O nome é muito curto." -#: ../../include/user.php:105 +#: include/user.php:113 msgid "That doesn't appear to be your full (First Last) name." msgstr "Isso não parece ser o seu nome completo (Nome Sobrenome)." -#: ../../include/user.php:110 +#: include/user.php:118 msgid "Your email domain is not among those allowed on this site." msgstr "O domínio do seu e-mail não está entre os permitidos neste site." -#: ../../include/user.php:113 +#: include/user.php:121 msgid "Not a valid email address." msgstr "Não é um endereço de e-mail válido." -#: ../../include/user.php:126 +#: include/user.php:134 msgid "Cannot use that email." msgstr "Não é possível usar esse e-mail." -#: ../../include/user.php:132 -msgid "" -"Your \"nickname\" can only contain \"a-z\", \"0-9\", \"-\", and \"_\", and " -"must also begin with a letter." -msgstr "A sua identificação pode conter somente os caracteres \"a-z\", \"0-9\", \"-\", e \"_\", além disso, deve começar com uma letra." +#: include/user.php:140 +msgid "Your \"nickname\" can only contain \"a-z\", \"0-9\" and \"_\"." +msgstr "" -#: ../../include/user.php:138 ../../include/user.php:236 +#: include/user.php:147 include/user.php:245 msgid "Nickname is already registered. Please choose another." msgstr "Esta identificação já foi registrada. Por favor, escolha outra." -#: ../../include/user.php:148 +#: include/user.php:157 msgid "" "Nickname was once registered here and may not be re-used. Please choose " "another." msgstr "Essa identificação já foi registrada e não pode ser reutilizada. Por favor, escolha outra." -#: ../../include/user.php:164 +#: include/user.php:173 msgid "SERIOUS ERROR: Generation of security keys failed." msgstr "ERRO GRAVE: Não foi possível gerar as chaves de segurança." -#: ../../include/user.php:222 +#: include/user.php:231 msgid "An error occurred during registration. Please try again." msgstr "Ocorreu um erro durante o registro. Por favor, tente novamente." -#: ../../include/user.php:257 +#: include/user.php:256 view/theme/duepuntozero/config.php:44 +msgid "default" +msgstr "padrão" + +#: include/user.php:266 msgid "An error occurred creating your default profile. Please try again." msgstr "Ocorreu um erro na criação do seu perfil padrão. Por favor, tente novamente." -#: ../../include/user.php:377 +#: include/user.php:345 include/user.php:352 include/user.php:359 +#: mod/profile_photo.php:74 mod/profile_photo.php:81 mod/profile_photo.php:88 +#: mod/profile_photo.php:210 mod/profile_photo.php:302 +#: mod/profile_photo.php:311 mod/photos.php:79 mod/photos.php:193 +#: mod/photos.php:770 mod/photos.php:1233 mod/photos.php:1256 +#: mod/photos.php:1849 view/theme/diabook/theme.php:500 +msgid "Profile Photos" +msgstr "Fotos do perfil" + +#: include/user.php:387 #, php-format msgid "" "\n" @@ -2991,7 +1180,7 @@ msgid "" "\t" msgstr "\n\t\tCaro %1$s,\n\t\t\tObrigado por se cadastrar em %2$s. Sua conta foi criada.\n\t" -#: ../../include/user.php:381 +#: include/user.php:391 #, php-format msgid "" "\n" @@ -3021,2359 +1210,4198 @@ msgid "" "\t\tThank you and welcome to %2$s." msgstr "\n\t\tOs dados de login são os seguintes:\n\t\t\tLocal do Site:\t%3$s\n\t\t\tNome de Login:\t%1$s\n\t\t\tSenha:\t%5$s\n\n\t\tVocê pode alterar sua senha na página de \"Configurações\" da sua conta após fazer o login\n\n\t\tPor favor, dedique alguns minutos na página para rever as outras configurações da sua conta.\n\n\t\tTalvez você também queira incluir algumas informações básicas adicionais ao seu perfil padrão\n\t\t(na página de \"Perfis\") para que outras pessoas possam encontrá-lo com facilidade.\n\n\t\tRecomendamos que inclua seu nome completo, adicione uma foto do perfil,\n\t\tadicionar algumas \"palavras-chave\" (muito útil para fazer novas amizades) - e\n\t\ttalvez em que pais você mora; se você não quiser ser mais específico \n\t\tdo que isso.\n\n\t\tNós respeitamos plenamente seu direito à privacidade, e nenhum desses itens são necessários.\n\t\tSe você é novo por aqui e não conheço ninguém, eles podem ajuda-lo a fazer novas e interessantes amizades.\n\n\n\t\tObrigado e bem-vindo a %2$s." -#: ../../include/user.php:413 ../../mod/admin.php:838 +#: include/user.php:423 mod/admin.php:1181 #, php-format msgid "Registration details for %s" msgstr "Detalhes do registro de %s" -#: ../../include/acl_selectors.php:333 +#: include/features.php:63 +msgid "General Features" +msgstr "Funcionalidades Gerais" + +#: include/features.php:65 +msgid "Multiple Profiles" +msgstr "Perfis Múltiplos" + +#: include/features.php:65 +msgid "Ability to create multiple profiles" +msgstr "Capacidade de criar perfis múltiplos" + +#: include/features.php:66 +msgid "Photo Location" +msgstr "" + +#: include/features.php:66 +msgid "" +"Photo metadata is normally stripped. This extracts the location (if present)" +" prior to stripping metadata and links it to a map." +msgstr "" + +#: include/features.php:67 +msgid "Export Public Calendar" +msgstr "Exportar a agenda pública" + +#: include/features.php:67 +msgid "Ability for visitors to download the public calendar" +msgstr "Visitantes podem baixar a agenda pública" + +#: include/features.php:72 +msgid "Post Composition Features" +msgstr "Funcionalidades de Composição de Publicações" + +#: include/features.php:73 +msgid "Richtext Editor" +msgstr "Editor Richtext" + +#: include/features.php:73 +msgid "Enable richtext editor" +msgstr "Habilite editor richtext" + +#: include/features.php:74 +msgid "Post Preview" +msgstr "Pré-visualização da Publicação" + +#: include/features.php:74 +msgid "Allow previewing posts and comments before publishing them" +msgstr "Permite pré-visualizar publicações e comentários antes de publicá-los" + +#: include/features.php:75 +msgid "Auto-mention Forums" +msgstr "Auto-menção Fóruns" + +#: include/features.php:75 +msgid "" +"Add/remove mention when a fourm page is selected/deselected in ACL window." +msgstr "Adiciona/Remove menções quando uma página de fórum é selecionada/deselecionada na janela ACL" + +#: include/features.php:80 +msgid "Network Sidebar Widgets" +msgstr "Widgets da Barra Lateral da Rede" + +#: include/features.php:81 +msgid "Search by Date" +msgstr "Buscar por Data" + +#: include/features.php:81 +msgid "Ability to select posts by date ranges" +msgstr "Capacidade de selecionar publicações por intervalos de data" + +#: include/features.php:82 include/features.php:112 +msgid "List Forums" +msgstr "" + +#: include/features.php:82 +msgid "Enable widget to display the forums your are connected with" +msgstr "" + +#: include/features.php:83 +msgid "Group Filter" +msgstr "Filtrar Grupo" + +#: include/features.php:83 +msgid "Enable widget to display Network posts only from selected group" +msgstr "Habilita widget para mostrar publicações da Rede somente de grupos selecionados" + +#: include/features.php:84 +msgid "Network Filter" +msgstr "Filtrar Rede" + +#: include/features.php:84 +msgid "Enable widget to display Network posts only from selected network" +msgstr "Habilita widget para mostrar publicações da Rede de redes selecionadas" + +#: include/features.php:85 mod/search.php:34 mod/network.php:200 +msgid "Saved Searches" +msgstr "Pesquisas salvas" + +#: include/features.php:85 +msgid "Save search terms for re-use" +msgstr "Guarde as palavras-chaves para reuso" + +#: include/features.php:90 +msgid "Network Tabs" +msgstr "Abas da Rede" + +#: include/features.php:91 +msgid "Network Personal Tab" +msgstr "Aba Pessoal da Rede" + +#: include/features.php:91 +msgid "Enable tab to display only Network posts that you've interacted on" +msgstr "Habilitar aba para mostrar apenas as publicações da Rede que você tenha interagido" + +#: include/features.php:92 +msgid "Network New Tab" +msgstr "Aba Nova da Rede" + +#: include/features.php:92 +msgid "Enable tab to display only new Network posts (from the last 12 hours)" +msgstr "Habilite aba para mostra apenas publicações da Rede novas (das últimas 12 horas)" + +#: include/features.php:93 +msgid "Network Shared Links Tab" +msgstr "Aba de Links Compartilhados da Rede" + +#: include/features.php:93 +msgid "Enable tab to display only Network posts with links in them" +msgstr "Habilite aba para mostrar somente publicações da Rede que contenham links" + +#: include/features.php:98 +msgid "Post/Comment Tools" +msgstr "Ferramentas de Publicação/Comentário" + +#: include/features.php:99 +msgid "Multiple Deletion" +msgstr "Deleção Multipla" + +#: include/features.php:99 +msgid "Select and delete multiple posts/comments at once" +msgstr "Selecione e delete múltiplas publicações/comentário imediatamente" + +#: include/features.php:100 +msgid "Edit Sent Posts" +msgstr "Editar Publicações Enviadas" + +#: include/features.php:100 +msgid "Edit and correct posts and comments after sending" +msgstr "Editar e corrigir publicações e comentários após envio" + +#: include/features.php:101 +msgid "Tagging" +msgstr "Etiquetagem" + +#: include/features.php:101 +msgid "Ability to tag existing posts" +msgstr "Capacidade de colocar etiquetas em publicações existentes" + +#: include/features.php:102 +msgid "Post Categories" +msgstr "Categorias de Publicações" + +#: include/features.php:102 +msgid "Add categories to your posts" +msgstr "Adicione Categorias ás Publicações" + +#: include/features.php:103 +msgid "Ability to file posts under folders" +msgstr "Capacidade de arquivar publicações em pastas" + +#: include/features.php:104 +msgid "Dislike Posts" +msgstr "Desgostar de publicações" + +#: include/features.php:104 +msgid "Ability to dislike posts/comments" +msgstr "Capacidade de desgostar de publicações/comentários" + +#: include/features.php:105 +msgid "Star Posts" +msgstr "Destacar publicações" + +#: include/features.php:105 +msgid "Ability to mark special posts with a star indicator" +msgstr "Capacidade de marcar publicações especiais com uma estrela indicadora" + +#: include/features.php:106 +msgid "Mute Post Notifications" +msgstr "Silenciar Notificações de Postagem" + +#: include/features.php:106 +msgid "Ability to mute notifications for a thread" +msgstr "Habilitar notificação silenciosa para a tarefa" + +#: include/features.php:111 +msgid "Advanced Profile Settings" +msgstr "Configurações de perfil avançadas" + +#: include/features.php:112 +msgid "Show visitors public community forums at the Advanced Profile Page" +msgstr "" + +#: include/nav.php:35 mod/navigation.php:19 +msgid "Nothing new here" +msgstr "Nada de novo aqui" + +#: include/nav.php:39 mod/navigation.php:23 +msgid "Clear notifications" +msgstr "Descartar notificações" + +#: include/nav.php:40 include/text.php:997 +msgid "@name, !forum, #tags, content" +msgstr "" + +#: include/nav.php:75 view/theme/frio/theme.php:243 boot.php:1655 +msgid "Logout" +msgstr "Sair" + +#: include/nav.php:75 view/theme/frio/theme.php:243 +msgid "End this session" +msgstr "Terminar esta sessão" + +#: include/nav.php:78 include/identity.php:712 mod/contacts.php:635 +#: mod/contacts.php:831 view/theme/frio/theme.php:246 +msgid "Status" +msgstr "Status" + +#: include/nav.php:78 include/nav.php:163 view/theme/frio/theme.php:246 +#: view/theme/diabook/theme.php:123 +msgid "Your posts and conversations" +msgstr "Suas publicações e conversas" + +#: include/nav.php:79 include/identity.php:603 include/identity.php:689 +#: include/identity.php:720 mod/profperm.php:104 mod/newmember.php:32 +#: mod/contacts.php:637 mod/contacts.php:839 view/theme/frio/theme.php:247 +#: view/theme/diabook/theme.php:124 +msgid "Profile" +msgstr "Perfil " + +#: include/nav.php:79 view/theme/frio/theme.php:247 +#: view/theme/diabook/theme.php:124 +msgid "Your profile page" +msgstr "Sua página de perfil" + +#: include/nav.php:80 include/identity.php:728 mod/fbrowser.php:32 +#: view/theme/frio/theme.php:248 view/theme/diabook/theme.php:126 +msgid "Photos" +msgstr "Fotos" + +#: include/nav.php:80 view/theme/frio/theme.php:248 +#: view/theme/diabook/theme.php:126 +msgid "Your photos" +msgstr "Suas fotos" + +#: include/nav.php:81 include/identity.php:736 include/identity.php:739 +#: view/theme/frio/theme.php:249 +msgid "Videos" +msgstr "Vídeos" + +#: include/nav.php:81 view/theme/frio/theme.php:249 +msgid "Your videos" +msgstr "Seus vídeos" + +#: include/nav.php:82 include/nav.php:146 include/identity.php:748 +#: include/identity.php:759 mod/cal.php:278 mod/events.php:379 +#: view/theme/frio/theme.php:250 view/theme/frio/theme.php:254 +#: view/theme/diabook/theme.php:127 +msgid "Events" +msgstr "Eventos" + +#: include/nav.php:82 view/theme/frio/theme.php:250 +#: view/theme/diabook/theme.php:127 +msgid "Your events" +msgstr "Seus eventos" + +#: include/nav.php:83 view/theme/diabook/theme.php:128 +msgid "Personal notes" +msgstr "Suas anotações pessoais" + +#: include/nav.php:83 +msgid "Your personal notes" +msgstr "Suas anotações pessoais" + +#: include/nav.php:94 mod/bookmarklet.php:12 boot.php:1656 +msgid "Login" +msgstr "Entrar" + +#: include/nav.php:94 +msgid "Sign in" +msgstr "Entrar" + +#: include/nav.php:107 include/nav.php:163 +#: include/NotificationsManager.php:174 view/theme/diabook/theme.php:123 +msgid "Home" +msgstr "Pessoal" + +#: include/nav.php:107 +msgid "Home Page" +msgstr "Página pessoal" + +#: include/nav.php:111 mod/register.php:280 boot.php:1631 +msgid "Register" +msgstr "Registrar" + +#: include/nav.php:111 +msgid "Create an account" +msgstr "Criar uma conta" + +#: include/nav.php:116 mod/help.php:47 view/theme/vier/theme.php:298 +msgid "Help" +msgstr "Ajuda" + +#: include/nav.php:116 +msgid "Help and documentation" +msgstr "Ajuda e documentação" + +#: include/nav.php:119 +msgid "Apps" +msgstr "Aplicativos" + +#: include/nav.php:119 +msgid "Addon applications, utilities, games" +msgstr "Complementos, utilitários, jogos" + +#: include/nav.php:122 include/text.php:994 mod/search.php:149 +msgid "Search" +msgstr "Pesquisar" + +#: include/nav.php:122 +msgid "Search site content" +msgstr "Pesquisar conteúdo no site" + +#: include/nav.php:125 include/text.php:1002 +msgid "Full Text" +msgstr "" + +#: include/nav.php:126 include/text.php:1003 +msgid "Tags" +msgstr "" + +#: include/nav.php:127 include/nav.php:193 include/identity.php:781 +#: include/identity.php:784 include/text.php:1004 mod/viewcontacts.php:116 +#: mod/contacts.php:790 mod/contacts.php:851 view/theme/frio/theme.php:257 +#: view/theme/diabook/theme.php:125 +msgid "Contacts" +msgstr "Contatos" + +#: include/nav.php:141 include/nav.php:143 mod/community.php:36 +#: view/theme/diabook/theme.php:129 +msgid "Community" +msgstr "Comunidade" + +#: include/nav.php:141 +msgid "Conversations on this site" +msgstr "Conversas neste site" + +#: include/nav.php:143 +msgid "Conversations on the network" +msgstr "Conversas na rede" + +#: include/nav.php:146 include/identity.php:751 include/identity.php:762 +#: view/theme/frio/theme.php:254 +msgid "Events and Calendar" +msgstr "Eventos e Agenda" + +#: include/nav.php:148 +msgid "Directory" +msgstr "Diretório" + +#: include/nav.php:148 +msgid "People directory" +msgstr "Diretório de pessoas" + +#: include/nav.php:150 +msgid "Information" +msgstr "Informação" + +#: include/nav.php:150 +msgid "Information about this friendica instance" +msgstr "Informação sobre esta instância do friendica" + +#: include/nav.php:160 include/NotificationsManager.php:160 mod/admin.php:402 +#: view/theme/frio/theme.php:253 +msgid "Network" +msgstr "Rede" + +#: include/nav.php:160 view/theme/frio/theme.php:253 +msgid "Conversations from your friends" +msgstr "Conversas dos seus amigos" + +#: include/nav.php:161 +msgid "Network Reset" +msgstr "Reiniciar Rede" + +#: include/nav.php:161 +msgid "Load Network page with no filters" +msgstr "Carregar página Rede sem filtros" + +#: include/nav.php:168 include/NotificationsManager.php:181 +msgid "Introductions" +msgstr "Apresentações" + +#: include/nav.php:168 +msgid "Friend Requests" +msgstr "Requisições de Amizade" + +#: include/nav.php:171 mod/notifications.php:96 +msgid "Notifications" +msgstr "Notificações" + +#: include/nav.php:172 +msgid "See all notifications" +msgstr "Ver todas notificações" + +#: include/nav.php:173 mod/settings.php:887 +msgid "Mark as seen" +msgstr "Marcar como visto" + +#: include/nav.php:173 +msgid "Mark all system notifications seen" +msgstr "Marcar todas as notificações de sistema como vistas" + +#: include/nav.php:177 mod/message.php:190 view/theme/frio/theme.php:255 +msgid "Messages" +msgstr "Mensagens" + +#: include/nav.php:177 view/theme/frio/theme.php:255 +msgid "Private mail" +msgstr "Mensagem privada" + +#: include/nav.php:178 +msgid "Inbox" +msgstr "Recebidas" + +#: include/nav.php:179 +msgid "Outbox" +msgstr "Enviadas" + +#: include/nav.php:180 mod/message.php:16 +msgid "New Message" +msgstr "Nova mensagem" + +#: include/nav.php:183 +msgid "Manage" +msgstr "Gerenciar" + +#: include/nav.php:183 +msgid "Manage other pages" +msgstr "Gerenciar outras páginas" + +#: include/nav.php:186 mod/settings.php:81 +msgid "Delegations" +msgstr "Delegações" + +#: include/nav.php:186 mod/delegate.php:130 +msgid "Delegate Page Management" +msgstr "Delegar Administração de Página" + +#: include/nav.php:188 mod/newmember.php:22 mod/admin.php:1501 +#: mod/admin.php:1759 mod/settings.php:111 view/theme/frio/theme.php:256 +#: view/theme/diabook/theme.php:544 view/theme/diabook/theme.php:648 +msgid "Settings" +msgstr "Configurações" + +#: include/nav.php:188 view/theme/frio/theme.php:256 +msgid "Account settings" +msgstr "Configurações da conta" + +#: include/nav.php:191 include/identity.php:276 +msgid "Profiles" +msgstr "Perfis" + +#: include/nav.php:191 +msgid "Manage/Edit Profiles" +msgstr "Administrar/Editar Perfis" + +#: include/nav.php:193 view/theme/frio/theme.php:257 +msgid "Manage/edit friends and contacts" +msgstr "Gerenciar/editar amigos e contatos" + +#: include/nav.php:200 mod/admin.php:186 +msgid "Admin" +msgstr "Admin" + +#: include/nav.php:200 +msgid "Site setup and configuration" +msgstr "Configurações do site" + +#: include/nav.php:204 +msgid "Navigation" +msgstr "Navegação" + +#: include/nav.php:204 +msgid "Site map" +msgstr "Mapa do Site" + +#: include/contact_selectors.php:32 +msgid "Unknown | Not categorised" +msgstr "Desconhecido | Não categorizado" + +#: include/contact_selectors.php:33 +msgid "Block immediately" +msgstr "Bloquear imediatamente" + +#: include/contact_selectors.php:34 +msgid "Shady, spammer, self-marketer" +msgstr "Dissimulado, spammer, propagandista" + +#: include/contact_selectors.php:35 +msgid "Known to me, but no opinion" +msgstr "Eu conheço, mas não possuo nenhuma opinião acerca" + +#: include/contact_selectors.php:36 +msgid "OK, probably harmless" +msgstr "Ok, provavelmente inofensivo" + +#: include/contact_selectors.php:37 +msgid "Reputable, has my trust" +msgstr "Boa reputação, tem minha confiança" + +#: include/contact_selectors.php:56 mod/admin.php:861 +msgid "Frequently" +msgstr "Frequentemente" + +#: include/contact_selectors.php:57 mod/admin.php:862 +msgid "Hourly" +msgstr "De hora em hora" + +#: include/contact_selectors.php:58 mod/admin.php:863 +msgid "Twice daily" +msgstr "Duas vezes ao dia" + +#: include/contact_selectors.php:59 mod/admin.php:864 +msgid "Daily" +msgstr "Diariamente" + +#: include/contact_selectors.php:60 +msgid "Weekly" +msgstr "Semanalmente" + +#: include/contact_selectors.php:61 +msgid "Monthly" +msgstr "Mensalmente" + +#: include/contact_selectors.php:76 mod/dfrn_request.php:867 +msgid "Friendica" +msgstr "Friendica" + +#: include/contact_selectors.php:77 +msgid "OStatus" +msgstr "OStatus" + +#: include/contact_selectors.php:78 +msgid "RSS/Atom" +msgstr "RSS/Atom" + +#: include/contact_selectors.php:79 include/contact_selectors.php:86 +#: mod/admin.php:1374 mod/admin.php:1387 mod/admin.php:1399 mod/admin.php:1417 +msgid "Email" +msgstr "E-mail" + +#: include/contact_selectors.php:80 mod/dfrn_request.php:869 +#: mod/settings.php:827 +msgid "Diaspora" +msgstr "Diaspora" + +#: include/contact_selectors.php:81 +msgid "Facebook" +msgstr "Facebook" + +#: include/contact_selectors.php:82 +msgid "Zot!" +msgstr "Zot!" + +#: include/contact_selectors.php:83 +msgid "LinkedIn" +msgstr "LinkedIn" + +#: include/contact_selectors.php:84 +msgid "XMPP/IM" +msgstr "XMPP/IM" + +#: include/contact_selectors.php:85 +msgid "MySpace" +msgstr "MySpace" + +#: include/contact_selectors.php:87 +msgid "Google+" +msgstr "Google+" + +#: include/contact_selectors.php:88 +msgid "pump.io" +msgstr "pump.io" + +#: include/contact_selectors.php:89 +msgid "Twitter" +msgstr "Twitter" + +#: include/contact_selectors.php:90 +msgid "Diaspora Connector" +msgstr "Conector do Diáspora" + +#: include/contact_selectors.php:91 +msgid "GNU Social" +msgstr "GNU Social" + +#: include/contact_selectors.php:92 +msgid "App.net" +msgstr "App.net" + +#: include/contact_selectors.php:103 +msgid "Hubzilla/Redmatrix" +msgstr "Hubzilla/Redmatrix" + +#: include/conversation.php:122 include/conversation.php:258 +#: include/like.php:165 include/text.php:1788 view/theme/diabook/theme.php:463 +msgid "event" +msgstr "evento" + +#: include/conversation.php:125 include/conversation.php:134 +#: include/conversation.php:261 include/conversation.php:270 +#: include/diaspora.php:1402 include/like.php:163 mod/subthread.php:87 +#: mod/tagger.php:62 view/theme/diabook/theme.php:466 +#: view/theme/diabook/theme.php:475 +msgid "status" +msgstr "status" + +#: include/conversation.php:130 include/conversation.php:266 +#: include/like.php:163 include/text.php:1790 mod/subthread.php:87 +#: mod/tagger.php:62 view/theme/diabook/theme.php:471 +msgid "photo" +msgstr "foto" + +#: include/conversation.php:141 include/diaspora.php:1398 include/like.php:182 +#: view/theme/diabook/theme.php:480 +#, php-format +msgid "%1$s likes %2$s's %3$s" +msgstr "%1$s gosta de %3$s de %2$s" + +#: include/conversation.php:144 include/like.php:184 +#, php-format +msgid "%1$s doesn't like %2$s's %3$s" +msgstr "%1$s não gosta de %3$s de %2$s" + +#: include/conversation.php:147 +#, php-format +msgid "%1$s attends %2$s's %3$s" +msgstr "" + +#: include/conversation.php:150 +#, php-format +msgid "%1$s doesn't attend %2$s's %3$s" +msgstr "" + +#: include/conversation.php:153 +#, php-format +msgid "%1$s attends maybe %2$s's %3$s" +msgstr "" + +#: include/conversation.php:185 mod/dfrn_confirm.php:473 +#, php-format +msgid "%1$s is now friends with %2$s" +msgstr "%1$s agora é amigo de %2$s" + +#: include/conversation.php:219 +#, php-format +msgid "%1$s poked %2$s" +msgstr "%1$s cutucou %2$s" + +#: include/conversation.php:239 mod/mood.php:62 +#, php-format +msgid "%1$s is currently %2$s" +msgstr "%1$s atualmente está %2$s" + +#: include/conversation.php:278 mod/tagger.php:95 +#, php-format +msgid "%1$s tagged %2$s's %3$s with %4$s" +msgstr "%1$s etiquetou %3$s de %2$s com %4$s" + +#: include/conversation.php:303 +msgid "post/item" +msgstr "postagem/item" + +#: include/conversation.php:304 +#, php-format +msgid "%1$s marked %2$s's %3$s as favorite" +msgstr "%1$s marcou %3$s de %2$s como favorito" + +#: include/conversation.php:587 mod/content.php:372 mod/profiles.php:345 +#: mod/photos.php:1634 +msgid "Likes" +msgstr "Gosta de" + +#: include/conversation.php:587 mod/content.php:372 mod/profiles.php:349 +#: mod/photos.php:1634 +msgid "Dislikes" +msgstr "Não gosta de" + +#: include/conversation.php:588 include/conversation.php:1471 +#: mod/content.php:373 mod/photos.php:1635 +msgid "Attending" +msgid_plural "Attending" +msgstr[0] "" +msgstr[1] "" + +#: include/conversation.php:588 mod/content.php:373 mod/photos.php:1635 +msgid "Not attending" +msgstr "" + +#: include/conversation.php:588 mod/content.php:373 mod/photos.php:1635 +msgid "Might attend" +msgstr "" + +#: include/conversation.php:710 mod/content.php:453 mod/content.php:758 +#: mod/photos.php:1709 object/Item.php:133 +msgid "Select" +msgstr "Selecionar" + +#: include/conversation.php:711 mod/group.php:171 mod/content.php:454 +#: mod/content.php:759 mod/admin.php:1391 mod/contacts.php:806 +#: mod/contacts.php:1021 mod/settings.php:726 mod/photos.php:1710 +#: object/Item.php:134 +msgid "Delete" +msgstr "Excluir" + +#: include/conversation.php:755 mod/content.php:487 mod/content.php:910 +#: mod/content.php:911 object/Item.php:367 object/Item.php:368 +#, php-format +msgid "View %s's profile @ %s" +msgstr "Ver o perfil de %s @ %s" + +#: include/conversation.php:767 object/Item.php:355 +msgid "Categories:" +msgstr "Categorias:" + +#: include/conversation.php:768 object/Item.php:356 +msgid "Filed under:" +msgstr "Arquivado sob:" + +#: include/conversation.php:775 mod/content.php:497 mod/content.php:923 +#: object/Item.php:381 +#, php-format +msgid "%s from %s" +msgstr "%s de %s" + +#: include/conversation.php:791 mod/content.php:513 +msgid "View in context" +msgstr "Ver no contexto" + +#: include/conversation.php:793 include/conversation.php:1255 +#: mod/editpost.php:124 mod/wallmessage.php:156 mod/message.php:356 +#: mod/message.php:548 mod/content.php:515 mod/content.php:948 +#: mod/photos.php:1597 object/Item.php:406 +msgid "Please wait" +msgstr "Por favor, espere" + +#: include/conversation.php:872 +msgid "remove" +msgstr "remover" + +#: include/conversation.php:876 +msgid "Delete Selected Items" +msgstr "Excluir os itens selecionados" + +#: include/conversation.php:964 +msgid "Follow Thread" +msgstr "Seguir o Thread" + +#: include/conversation.php:965 include/Contact.php:364 +msgid "View Status" +msgstr "Ver Status" + +#: include/conversation.php:966 include/conversation.php:980 +#: include/Contact.php:310 include/Contact.php:323 include/Contact.php:365 +#: mod/directory.php:163 mod/match.php:71 mod/allfriends.php:65 +#: mod/suggest.php:82 mod/dirfind.php:203 +msgid "View Profile" +msgstr "Ver Perfil" + +#: include/conversation.php:967 include/Contact.php:366 +msgid "View Photos" +msgstr "Ver Fotos" + +#: include/conversation.php:968 include/Contact.php:367 +msgid "Network Posts" +msgstr "Publicações da Rede" + +#: include/conversation.php:969 include/Contact.php:368 +msgid "Edit Contact" +msgstr "Editar Contato" + +#: include/conversation.php:970 include/Contact.php:370 +msgid "Send PM" +msgstr "Enviar MP" + +#: include/conversation.php:974 include/Contact.php:371 +msgid "Poke" +msgstr "Cutucar" + +#: include/conversation.php:1088 +#, php-format +msgid "%s likes this." +msgstr "%s gostou disso." + +#: include/conversation.php:1091 +#, php-format +msgid "%s doesn't like this." +msgstr "%s não gostou disso." + +#: include/conversation.php:1094 +#, php-format +msgid "%s attends." +msgstr "" + +#: include/conversation.php:1097 +#, php-format +msgid "%s doesn't attend." +msgstr "" + +#: include/conversation.php:1100 +#, php-format +msgid "%s attends maybe." +msgstr "" + +#: include/conversation.php:1110 +msgid "and" +msgstr "e" + +#: include/conversation.php:1116 +#, php-format +msgid ", and %d other people" +msgstr ", e mais %d outras pessoas" + +#: include/conversation.php:1125 +#, php-format +msgid "%2$d people like this" +msgstr "%2$d pessoas gostaram disso" + +#: include/conversation.php:1126 +#, php-format +msgid "%s like this." +msgstr "%s curtiu." + +#: include/conversation.php:1129 +#, php-format +msgid "%2$d people don't like this" +msgstr "%2$d pessoas não gostaram disso" + +#: include/conversation.php:1130 +#, php-format +msgid "%s don't like this." +msgstr "%s não curtiu." + +#: include/conversation.php:1133 +#, php-format +msgid "%2$d people attend" +msgstr "" + +#: include/conversation.php:1134 +#, php-format +msgid "%s attend." +msgstr "" + +#: include/conversation.php:1137 +#, php-format +msgid "%2$d people don't attend" +msgstr "" + +#: include/conversation.php:1138 +#, php-format +msgid "%s don't attend." +msgstr "" + +#: include/conversation.php:1141 +#, php-format +msgid "%2$d people anttend maybe" +msgstr "" + +#: include/conversation.php:1142 +#, php-format +msgid "%s anttend maybe." +msgstr "" + +#: include/conversation.php:1181 include/conversation.php:1199 +msgid "Visible to everybody" +msgstr "Visível para todos" + +#: include/conversation.php:1182 include/conversation.php:1200 +#: mod/wallmessage.php:127 mod/wallmessage.php:135 mod/message.php:291 +#: mod/message.php:299 mod/message.php:442 mod/message.php:450 +msgid "Please enter a link URL:" +msgstr "Por favor, digite uma URL:" + +#: include/conversation.php:1183 include/conversation.php:1201 +msgid "Please enter a video link/URL:" +msgstr "Favor fornecer um link/URL de vídeo" + +#: include/conversation.php:1184 include/conversation.php:1202 +msgid "Please enter an audio link/URL:" +msgstr "Favor fornecer um link/URL de áudio" + +#: include/conversation.php:1185 include/conversation.php:1203 +msgid "Tag term:" +msgstr "Etiqueta:" + +#: include/conversation.php:1186 include/conversation.php:1204 +#: mod/filer.php:30 +msgid "Save to Folder:" +msgstr "Salvar na pasta:" + +#: include/conversation.php:1187 include/conversation.php:1205 +msgid "Where are you right now?" +msgstr "Onde você está agora?" + +#: include/conversation.php:1188 +msgid "Delete item(s)?" +msgstr "Deletar item(s)?" + +#: include/conversation.php:1236 mod/photos.php:1596 +msgid "Share" +msgstr "Compartilhar" + +#: include/conversation.php:1237 mod/editpost.php:110 mod/wallmessage.php:154 +#: mod/message.php:354 mod/message.php:545 +msgid "Upload photo" +msgstr "Enviar foto" + +#: include/conversation.php:1238 mod/editpost.php:111 +msgid "upload photo" +msgstr "upload de foto" + +#: include/conversation.php:1239 mod/editpost.php:112 +msgid "Attach file" +msgstr "Anexar arquivo" + +#: include/conversation.php:1240 mod/editpost.php:113 +msgid "attach file" +msgstr "anexar arquivo" + +#: include/conversation.php:1241 mod/editpost.php:114 mod/wallmessage.php:155 +#: mod/message.php:355 mod/message.php:546 +msgid "Insert web link" +msgstr "Inserir link web" + +#: include/conversation.php:1242 mod/editpost.php:115 +msgid "web link" +msgstr "link web" + +#: include/conversation.php:1243 mod/editpost.php:116 +msgid "Insert video link" +msgstr "Inserir link de vídeo" + +#: include/conversation.php:1244 mod/editpost.php:117 +msgid "video link" +msgstr "link de vídeo" + +#: include/conversation.php:1245 mod/editpost.php:118 +msgid "Insert audio link" +msgstr "Inserir link de áudio" + +#: include/conversation.php:1246 mod/editpost.php:119 +msgid "audio link" +msgstr "link de áudio" + +#: include/conversation.php:1247 mod/editpost.php:120 +msgid "Set your location" +msgstr "Definir sua localização" + +#: include/conversation.php:1248 mod/editpost.php:121 +msgid "set location" +msgstr "configure localização" + +#: include/conversation.php:1249 mod/editpost.php:122 +msgid "Clear browser location" +msgstr "Limpar a localização do navegador" + +#: include/conversation.php:1250 mod/editpost.php:123 +msgid "clear location" +msgstr "apague localização" + +#: include/conversation.php:1252 mod/editpost.php:137 +msgid "Set title" +msgstr "Definir o título" + +#: include/conversation.php:1254 mod/editpost.php:139 +msgid "Categories (comma-separated list)" +msgstr "Categorias (lista separada por vírgulas)" + +#: include/conversation.php:1256 mod/editpost.php:125 +msgid "Permission settings" +msgstr "Configurações de permissão" + +#: include/conversation.php:1257 mod/editpost.php:154 +msgid "permissions" +msgstr "permissões" + +#: include/conversation.php:1265 mod/editpost.php:134 +msgid "Public post" +msgstr "Publicação pública" + +#: include/conversation.php:1270 mod/editpost.php:145 mod/content.php:737 +#: mod/events.php:505 mod/photos.php:1618 mod/photos.php:1666 +#: mod/photos.php:1754 object/Item.php:729 +msgid "Preview" +msgstr "Pré-visualização" + +#: include/conversation.php:1274 include/items.php:1849 mod/fbrowser.php:101 +#: mod/fbrowser.php:136 mod/tagrm.php:11 mod/tagrm.php:94 mod/follow.php:121 +#: mod/suggest.php:32 mod/editpost.php:148 mod/message.php:220 +#: mod/dfrn_request.php:875 mod/contacts.php:445 mod/settings.php:664 +#: mod/settings.php:690 mod/videos.php:131 mod/photos.php:248 +#: mod/photos.php:337 +msgid "Cancel" +msgstr "Cancelar" + +#: include/conversation.php:1280 +msgid "Post to Groups" +msgstr "Postar em Grupos" + +#: include/conversation.php:1281 +msgid "Post to Contacts" +msgstr "Publique para Contatos" + +#: include/conversation.php:1282 +msgid "Private post" +msgstr "Publicação privada" + +#: include/conversation.php:1287 include/identity.php:250 mod/editpost.php:152 +msgid "Message" +msgstr "Mensagem" + +#: include/conversation.php:1288 mod/editpost.php:153 +msgid "Browser" +msgstr "Navegador" + +#: include/conversation.php:1443 +msgid "View all" +msgstr "" + +#: include/conversation.php:1465 +msgid "Like" +msgid_plural "Likes" +msgstr[0] "Curtida" +msgstr[1] "Curtidas" + +#: include/conversation.php:1468 +msgid "Dislike" +msgid_plural "Dislikes" +msgstr[0] "Não curtiu" +msgstr[1] "Não curtiram" + +#: include/conversation.php:1474 +msgid "Not Attending" +msgid_plural "Not Attending" +msgstr[0] "Não vai" +msgstr[1] "Não vão" + +#: include/network.php:595 +msgid "view full size" +msgstr "ver na tela inteira" + +#: include/dbstructure.php:26 +#, php-format +msgid "" +"\n" +"\t\t\tThe friendica developers released update %s recently,\n" +"\t\t\tbut when I tried to install it, something went terribly wrong.\n" +"\t\t\tThis needs to be fixed soon and I can't do it alone. Please contact a\n" +"\t\t\tfriendica developer if you can not help me on your own. My database might be invalid." +msgstr "\n\t\t\tOs desenvolvedores de Friendica lançaram recentemente uma atualização %s,\n\t\t\tmas quando tentei instalá-la, algo deu terrivelmente errado.\n\t\t\tIsso precisa ser corrigido em breve e eu não posso fazer isso sozinho. Por favor, contate um\n\t\t\tdesenvolvedor da Friendica se você não pode me ajudar sozinho. Meu banco de dados pode ser inválido." + +#: include/dbstructure.php:31 +#, php-format +msgid "" +"The error message is\n" +"[pre]%s[/pre]" +msgstr "A mensagem de erro é\n[pre]%s[/pre]" + +#: include/dbstructure.php:153 +msgid "Errors encountered creating database tables." +msgstr "Foram encontrados erros durante a criação das tabelas do banco de dados." + +#: include/dbstructure.php:230 +msgid "Errors encountered performing database changes." +msgstr "Erros encontrados realizando mudanças no banco de dados." + +#: include/Contact.php:119 +msgid "stopped following" +msgstr "parou de acompanhar" + +#: include/Contact.php:369 +msgid "Drop Contact" +msgstr "Excluir o contato" + +#: include/acl_selectors.php:327 +msgid "Post to Email" +msgstr "Enviar por e-mail" + +#: include/acl_selectors.php:332 +#, php-format +msgid "Connectors disabled, since \"%s\" is enabled." +msgstr "Conectores desabilitados, desde \"%s\" está habilitado." + +#: include/acl_selectors.php:333 mod/settings.php:1131 +msgid "Hide your profile details from unknown viewers?" +msgstr "Ocultar os detalhes do seu perfil para pessoas desconhecidas?" + +#: include/acl_selectors.php:338 msgid "Visible to everybody" msgstr "Visível para todos" -#: ../../object/Item.php:94 -msgid "This entry was edited" -msgstr "Essa entrada foi editada" +#: include/acl_selectors.php:339 view/theme/vier/config.php:103 +#: view/theme/diabook/theme.php:621 view/theme/diabook/config.php:142 +msgid "show" +msgstr "exibir" -#: ../../object/Item.php:116 ../../mod/photos.php:1359 -#: ../../mod/content.php:620 -msgid "Private Message" -msgstr "Mensagem privada" +#: include/acl_selectors.php:340 view/theme/vier/config.php:103 +#: view/theme/diabook/theme.php:621 view/theme/diabook/config.php:142 +msgid "don't show" +msgstr "não exibir" -#: ../../object/Item.php:120 ../../mod/settings.php:681 -#: ../../mod/content.php:728 -msgid "Edit" -msgstr "Editar" +#: include/acl_selectors.php:346 mod/editpost.php:133 +msgid "CC: email addresses" +msgstr "CC: endereço de e-mail" -#: ../../object/Item.php:133 ../../mod/content.php:763 -msgid "save to folder" -msgstr "salvar na pasta" +#: include/acl_selectors.php:347 mod/editpost.php:140 +msgid "Example: bob@example.com, mary@example.com" +msgstr "Por exemplo: joao@exemplo.com, maria@exemplo.com" -#: ../../object/Item.php:195 ../../mod/content.php:753 -msgid "add star" -msgstr "destacar" +#: include/acl_selectors.php:349 mod/photos.php:1178 mod/photos.php:1562 +msgid "Permissions" +msgstr "Permissões" -#: ../../object/Item.php:196 ../../mod/content.php:754 -msgid "remove star" -msgstr "remover o destaque" +#: include/acl_selectors.php:350 +msgid "Close" +msgstr "Fechar" -#: ../../object/Item.php:197 ../../mod/content.php:755 -msgid "toggle star status" -msgstr "ativa/desativa o destaque" - -#: ../../object/Item.php:200 ../../mod/content.php:758 -msgid "starred" -msgstr "marcado com estrela" - -#: ../../object/Item.php:208 -msgid "ignore thread" -msgstr "ignorar tópico" - -#: ../../object/Item.php:209 -msgid "unignore thread" -msgstr "deixar de ignorar tópico" - -#: ../../object/Item.php:210 -msgid "toggle ignore status" -msgstr "alternar status ignorar" - -#: ../../object/Item.php:213 -msgid "ignored" -msgstr "Ignorado" - -#: ../../object/Item.php:220 ../../mod/content.php:759 -msgid "add tag" -msgstr "adicionar etiqueta" - -#: ../../object/Item.php:231 ../../mod/photos.php:1542 -#: ../../mod/content.php:684 -msgid "I like this (toggle)" -msgstr "Eu gostei disso (alternar)" - -#: ../../object/Item.php:231 ../../mod/content.php:684 -msgid "like" -msgstr "gostei" - -#: ../../object/Item.php:232 ../../mod/photos.php:1543 -#: ../../mod/content.php:685 -msgid "I don't like this (toggle)" -msgstr "Eu não gostei disso (alternar)" - -#: ../../object/Item.php:232 ../../mod/content.php:685 -msgid "dislike" -msgstr "desgostar" - -#: ../../object/Item.php:234 ../../mod/content.php:687 -msgid "Share this" -msgstr "Compartilhar isso" - -#: ../../object/Item.php:234 ../../mod/content.php:687 -msgid "share" -msgstr "compartilhar" - -#: ../../object/Item.php:328 ../../mod/content.php:854 -msgid "to" -msgstr "para" - -#: ../../object/Item.php:329 -msgid "via" -msgstr "via" - -#: ../../object/Item.php:330 ../../mod/content.php:855 -msgid "Wall-to-Wall" -msgstr "Mural-para-mural" - -#: ../../object/Item.php:331 ../../mod/content.php:856 -msgid "via Wall-To-Wall:" -msgstr "via Mural-para-mural" - -#: ../../object/Item.php:387 ../../mod/content.php:603 +#: include/api.php:975 #, php-format -msgid "%d comment" -msgid_plural "%d comments" -msgstr[0] "%d comentário" -msgstr[1] "%d comentários" +msgid "Daily posting limit of %d posts reached. The post was rejected." +msgstr "O limite diário de postagem de %d mensagens foi atingido. O post foi rejeitado." -#: ../../object/Item.php:675 ../../mod/photos.php:1562 -#: ../../mod/photos.php:1606 ../../mod/photos.php:1694 -#: ../../mod/content.php:707 -msgid "This is you" -msgstr "Este(a) é você" +#: include/api.php:995 +#, php-format +msgid "Weekly posting limit of %d posts reached. The post was rejected." +msgstr "O limite de postagem semanal de %d mensagens foi atingido. O post foi rejeitado." -#: ../../object/Item.php:679 ../../mod/content.php:711 -msgid "Bold" -msgstr "Negrito" +#: include/api.php:1016 +#, php-format +msgid "Monthly posting limit of %d posts reached. The post was rejected." +msgstr "O limite de postagem mensal de %d mensagens foi atingido. O post foi rejeitado." -#: ../../object/Item.php:680 ../../mod/content.php:712 -msgid "Italic" -msgstr "Itálico" +#: include/dfrn.php:1110 +#, php-format +msgid "%s\\'s birthday" +msgstr "Aniversário de %s\\" -#: ../../object/Item.php:681 ../../mod/content.php:713 -msgid "Underline" -msgstr "Sublinhado" +#: include/diaspora.php:1954 +msgid "Sharing notification from Diaspora network" +msgstr "Notificação de compartilhamento da rede Diaspora" -#: ../../object/Item.php:682 ../../mod/content.php:714 -msgid "Quote" -msgstr "Citação" +#: include/diaspora.php:2854 +msgid "Attachments:" +msgstr "Anexos:" -#: ../../object/Item.php:683 ../../mod/content.php:715 -msgid "Code" -msgstr "Código" +#: include/follow.php:77 mod/dfrn_request.php:507 +msgid "Disallowed profile URL." +msgstr "URL de perfil não permitida." -#: ../../object/Item.php:684 ../../mod/content.php:716 -msgid "Image" -msgstr "Imagem" +#: include/follow.php:82 +msgid "Connect URL missing." +msgstr "URL de conexão faltando." -#: ../../object/Item.php:685 ../../mod/content.php:717 -msgid "Link" -msgstr "Link" +#: include/follow.php:109 +msgid "" +"This site is not configured to allow communications with other networks." +msgstr "Este site não está configurado para permitir comunicações com outras redes." -#: ../../object/Item.php:686 ../../mod/content.php:718 -msgid "Video" -msgstr "Vídeo" +#: include/follow.php:110 include/follow.php:130 +msgid "No compatible communication protocols or feeds were discovered." +msgstr "Não foi descoberto nenhum protocolo de comunicação ou fonte de notícias compatível." -#: ../../mod/attach.php:8 -msgid "Item not available." -msgstr "O item não está disponível." +#: include/follow.php:128 +msgid "The profile address specified does not provide adequate information." +msgstr "O endereço de perfil especificado não fornece informação adequada." -#: ../../mod/attach.php:20 -msgid "Item was not found." +#: include/follow.php:132 +msgid "An author or name was not found." +msgstr "Não foi encontrado nenhum autor ou nome." + +#: include/follow.php:134 +msgid "No browser URL could be matched to this address." +msgstr "Não foi possível encontrar nenhuma URL de navegação neste endereço." + +#: include/follow.php:136 +msgid "" +"Unable to match @-style Identity Address with a known protocol or email " +"contact." +msgstr "Não foi possível casa o estilo @ de Endereço de Identidade com um protocolo conhecido ou contato de email." + +#: include/follow.php:137 +msgid "Use mailto: in front of address to force email check." +msgstr "Use mailto: antes do endereço para forçar a checagem de email." + +#: include/follow.php:143 +msgid "" +"The profile address specified belongs to a network which has been disabled " +"on this site." +msgstr "O endereço de perfil especificado pertence a uma rede que foi desabilitada neste site." + +#: include/follow.php:153 +msgid "" +"Limited profile. This person will be unable to receive direct/personal " +"notifications from you." +msgstr "Perfil limitado. Essa pessoa não poderá receber notificações diretas/pessoais de você." + +#: include/follow.php:254 +msgid "Unable to retrieve contact information." +msgstr "Não foi possível recuperar a informação do contato." + +#: include/follow.php:287 +msgid "following" +msgstr "acompanhando" + +#: include/identity.php:42 +msgid "Requested account is not available." +msgstr "Conta solicitada não disponível" + +#: include/identity.php:51 mod/profile.php:21 +msgid "Requested profile is not available." +msgstr "Perfil solicitado não está disponível." + +#: include/identity.php:95 include/identity.php:305 include/identity.php:686 +msgid "Edit profile" +msgstr "Editar perfil" + +#: include/identity.php:245 +msgid "Atom feed" +msgstr "" + +#: include/identity.php:276 +msgid "Manage/edit profiles" +msgstr "Gerenciar/editar perfis" + +#: include/identity.php:281 include/identity.php:307 mod/profiles.php:787 +msgid "Change profile photo" +msgstr "Mudar a foto do perfil" + +#: include/identity.php:282 mod/profiles.php:788 +msgid "Create New Profile" +msgstr "Criar um novo perfil" + +#: include/identity.php:292 mod/profiles.php:777 +msgid "Profile Image" +msgstr "Imagem do perfil" + +#: include/identity.php:295 mod/profiles.php:779 +msgid "visible to everybody" +msgstr "visível para todos" + +#: include/identity.php:296 mod/profiles.php:684 mod/profiles.php:780 +msgid "Edit visibility" +msgstr "Editar a visibilidade" + +#: include/identity.php:319 mod/directory.php:174 mod/match.php:84 +#: mod/viewcontacts.php:105 mod/allfriends.php:79 mod/cal.php:44 +#: mod/suggest.php:98 mod/hovercard.php:80 mod/common.php:123 +#: mod/network.php:517 mod/contacts.php:51 mod/contacts.php:626 +#: mod/contacts.php:953 mod/dirfind.php:223 mod/videos.php:37 +#: mod/photos.php:42 +msgid "Forum" +msgstr "Fórum" + +#: include/identity.php:331 include/identity.php:614 mod/directory.php:147 +#: mod/notifications.php:238 +msgid "Gender:" +msgstr "Gênero:" + +#: include/identity.php:334 include/identity.php:634 mod/directory.php:149 +msgid "Status:" +msgstr "Situação:" + +#: include/identity.php:336 include/identity.php:645 mod/directory.php:151 +msgid "Homepage:" +msgstr "Página web:" + +#: include/identity.php:338 include/identity.php:655 mod/directory.php:153 +#: mod/contacts.php:630 mod/notifications.php:234 +msgid "About:" +msgstr "Sobre:" + +#: include/identity.php:420 mod/contacts.php:50 mod/notifications.php:246 +msgid "Network:" +msgstr "Rede:" + +#: include/identity.php:449 include/identity.php:533 +msgid "g A l F d" +msgstr "G l d F" + +#: include/identity.php:450 include/identity.php:534 +msgid "F d" +msgstr "F d" + +#: include/identity.php:495 include/identity.php:580 +msgid "[today]" +msgstr "[hoje]" + +#: include/identity.php:507 +msgid "Birthday Reminders" +msgstr "Lembretes de aniversário" + +#: include/identity.php:508 +msgid "Birthdays this week:" +msgstr "Aniversários nesta semana:" + +#: include/identity.php:567 +msgid "[No description]" +msgstr "[Sem descrição]" + +#: include/identity.php:591 +msgid "Event Reminders" +msgstr "Lembretes de eventos" + +#: include/identity.php:592 +msgid "Events this week:" +msgstr "Eventos esta semana:" + +#: include/identity.php:612 mod/settings.php:1229 +msgid "Full Name:" +msgstr "Nome completo:" + +#: include/identity.php:619 +msgid "j F, Y" +msgstr "j de F, Y" + +#: include/identity.php:620 +msgid "j F" +msgstr "j de F" + +#: include/identity.php:631 +msgid "Age:" +msgstr "Idade:" + +#: include/identity.php:640 +#, php-format +msgid "for %1$d %2$s" +msgstr "para %1$d %2$s" + +#: include/identity.php:643 mod/profiles.php:703 +msgid "Sexual Preference:" +msgstr "Preferência sexual:" + +#: include/identity.php:647 mod/profiles.php:729 +msgid "Hometown:" +msgstr "Cidade:" + +#: include/identity.php:649 mod/follow.php:134 mod/contacts.php:632 +#: mod/notifications.php:236 +msgid "Tags:" +msgstr "Etiquetas:" + +#: include/identity.php:651 mod/profiles.php:730 +msgid "Political Views:" +msgstr "Posição política:" + +#: include/identity.php:653 +msgid "Religion:" +msgstr "Religião:" + +#: include/identity.php:657 +msgid "Hobbies/Interests:" +msgstr "Passatempos/Interesses:" + +#: include/identity.php:659 mod/profiles.php:734 +msgid "Likes:" +msgstr "Gosta de:" + +#: include/identity.php:661 mod/profiles.php:735 +msgid "Dislikes:" +msgstr "Não gosta de:" + +#: include/identity.php:664 +msgid "Contact information and Social Networks:" +msgstr "Informações de contato e redes sociais:" + +#: include/identity.php:666 +msgid "Musical interests:" +msgstr "Preferências musicais:" + +#: include/identity.php:668 +msgid "Books, literature:" +msgstr "Livros, literatura:" + +#: include/identity.php:670 +msgid "Television:" +msgstr "Televisão:" + +#: include/identity.php:672 +msgid "Film/dance/culture/entertainment:" +msgstr "Filmes/dança/cultura/entretenimento:" + +#: include/identity.php:674 +msgid "Love/Romance:" +msgstr "Amor/romance:" + +#: include/identity.php:676 +msgid "Work/employment:" +msgstr "Trabalho/emprego:" + +#: include/identity.php:678 +msgid "School/education:" +msgstr "Escola/educação:" + +#: include/identity.php:682 +msgid "Forums:" +msgstr "Fóruns:" + +#: include/identity.php:690 mod/events.php:508 +msgid "Basic" +msgstr "" + +#: include/identity.php:691 mod/admin.php:930 mod/contacts.php:868 +#: mod/events.php:509 +msgid "Advanced" +msgstr "Avançado" + +#: include/identity.php:715 mod/follow.php:143 mod/contacts.php:834 +msgid "Status Messages and Posts" +msgstr "Mensagem de Estado (status) e Publicações" + +#: include/identity.php:723 mod/contacts.php:842 +msgid "Profile Details" +msgstr "Detalhe do Perfil" + +#: include/identity.php:731 mod/photos.php:100 +msgid "Photo Albums" +msgstr "Álbuns de fotos" + +#: include/identity.php:770 mod/notes.php:46 +msgid "Personal Notes" +msgstr "Notas pessoais" + +#: include/identity.php:773 +msgid "Only You Can See This" +msgstr "Somente Você Pode Ver Isso" + +#: include/items.php:1447 mod/dfrn_request.php:745 mod/dfrn_confirm.php:726 +msgid "[Name Withheld]" +msgstr "[Nome não revelado]" + +#: include/items.php:1805 mod/viewsrc.php:15 mod/display.php:104 +#: mod/display.php:279 mod/display.php:478 mod/notice.php:15 mod/admin.php:234 +#: mod/admin.php:1448 mod/admin.php:1682 +msgid "Item not found." msgstr "O item não foi encontrado." -#: ../../mod/wallmessage.php:42 ../../mod/wallmessage.php:112 +#: include/items.php:1844 +msgid "Do you really want to delete this item?" +msgstr "Você realmente deseja deletar esse item?" + +#: include/items.php:1846 mod/follow.php:110 mod/suggest.php:29 +#: mod/api.php:105 mod/message.php:217 mod/dfrn_request.php:861 +#: mod/contacts.php:442 mod/profiles.php:641 mod/profiles.php:644 +#: mod/profiles.php:670 mod/register.php:238 mod/settings.php:1113 +#: mod/settings.php:1119 mod/settings.php:1127 mod/settings.php:1131 +#: mod/settings.php:1136 mod/settings.php:1142 mod/settings.php:1148 +#: mod/settings.php:1154 mod/settings.php:1180 mod/settings.php:1181 +#: mod/settings.php:1182 mod/settings.php:1183 mod/settings.php:1184 +msgid "Yes" +msgstr "Sim" + +#: include/items.php:2011 mod/wall_upload.php:77 mod/wall_upload.php:80 +#: mod/notes.php:22 mod/uimport.php:23 mod/nogroup.php:25 mod/invite.php:15 +#: mod/invite.php:101 mod/viewcontacts.php:45 mod/wall_attach.php:67 +#: mod/wall_attach.php:70 mod/allfriends.php:12 mod/cal.php:308 +#: mod/repair_ostatus.php:9 mod/delegate.php:12 mod/attach.php:33 +#: mod/follow.php:11 mod/follow.php:73 mod/follow.php:155 mod/suggest.php:58 +#: mod/display.php:474 mod/common.php:18 mod/editpost.php:10 mod/network.php:4 +#: mod/group.php:19 mod/wallmessage.php:9 mod/wallmessage.php:33 +#: mod/wallmessage.php:79 mod/wallmessage.php:103 mod/api.php:26 +#: mod/api.php:31 mod/ostatus_subscribe.php:9 mod/message.php:46 +#: mod/message.php:182 mod/manage.php:96 mod/crepair.php:100 +#: mod/contacts.php:350 mod/dfrn_confirm.php:57 mod/dirfind.php:11 +#: mod/events.php:190 mod/fsuggest.php:78 mod/item.php:185 mod/item.php:197 +#: mod/mood.php:114 mod/poke.php:150 mod/profile_photo.php:19 +#: mod/profile_photo.php:175 mod/profile_photo.php:186 +#: mod/profile_photo.php:199 mod/profiles.php:166 mod/profiles.php:598 +#: mod/register.php:42 mod/regmod.php:110 mod/settings.php:22 +#: mod/settings.php:128 mod/settings.php:650 mod/notifications.php:71 +#: mod/photos.php:172 mod/photos.php:1093 index.php:397 +msgid "Permission denied." +msgstr "Permissão negada." + +#: include/items.php:2116 +msgid "Archives" +msgstr "Arquivos" + +#: include/like.php:186 #, php-format -msgid "Number of daily wall messages for %s exceeded. Message failed." -msgstr "O número diário de mensagens do mural de %s foi excedido. Não foi possível enviar a mensagem." +msgid "%1$s is attending %2$s's %3$s" +msgstr "%1$s vai a %3$s de %2$s" -#: ../../mod/wallmessage.php:56 ../../mod/message.php:63 -msgid "No recipient selected." -msgstr "Não foi selecionado nenhum destinatário." - -#: ../../mod/wallmessage.php:59 -msgid "Unable to check your home location." -msgstr "Não foi possível verificar a sua localização." - -#: ../../mod/wallmessage.php:62 ../../mod/message.php:70 -msgid "Message could not be sent." -msgstr "Não foi possível enviar a mensagem." - -#: ../../mod/wallmessage.php:65 ../../mod/message.php:73 -msgid "Message collection failure." -msgstr "Falha na coleta de mensagens." - -#: ../../mod/wallmessage.php:68 ../../mod/message.php:76 -msgid "Message sent." -msgstr "A mensagem foi enviada." - -#: ../../mod/wallmessage.php:86 ../../mod/wallmessage.php:95 -msgid "No recipient." -msgstr "Nenhum destinatário." - -#: ../../mod/wallmessage.php:142 ../../mod/message.php:319 -msgid "Send Private Message" -msgstr "Enviar mensagem privada" - -#: ../../mod/wallmessage.php:143 +#: include/like.php:188 #, php-format -msgid "" -"If you wish for %s to respond, please check that the privacy settings on " -"your site allow private mail from unknown senders." -msgstr "Caso você deseje uma resposta de %s, por favor verifique se as configurações de privacidade em seu site permitem o recebimento de mensagens de remetentes desconhecidos." +msgid "%1$s is not attending %2$s's %3$s" +msgstr "%1$s não vai a %3$s de %2$s" -#: ../../mod/wallmessage.php:144 ../../mod/message.php:320 -#: ../../mod/message.php:553 -msgid "To:" -msgstr "Para:" +#: include/like.php:190 +#, php-format +msgid "%1$s may attend %2$s's %3$s" +msgstr "%1$s está pensando em ir a %3$s de %2$s" -#: ../../mod/wallmessage.php:145 ../../mod/message.php:325 -#: ../../mod/message.php:555 -msgid "Subject:" -msgstr "Assunto:" +#: include/message.php:15 include/message.php:173 +msgid "[no subject]" +msgstr "[sem assunto]" -#: ../../mod/wallmessage.php:151 ../../mod/invite.php:134 -#: ../../mod/message.php:329 ../../mod/message.php:558 -msgid "Your message:" -msgstr "Sua mensagem:" +#: include/plugin.php:526 include/plugin.php:528 +msgid "Click here to upgrade." +msgstr "Clique aqui para atualização (upgrade)." -#: ../../mod/group.php:29 -msgid "Group created." -msgstr "O grupo foi criado." +#: include/plugin.php:534 +msgid "This action exceeds the limits set by your subscription plan." +msgstr "Essa ação excede o limite definido para o seu plano de assinatura." -#: ../../mod/group.php:35 -msgid "Could not create group." -msgstr "Não foi possível criar o grupo." +#: include/plugin.php:539 +msgid "This action is not available under your subscription plan." +msgstr "Essa ação não está disponível em seu plano de assinatura." -#: ../../mod/group.php:47 ../../mod/group.php:140 -msgid "Group not found." -msgstr "O grupo não foi encontrado." +#: include/text.php:304 +msgid "newer" +msgstr "mais recente" -#: ../../mod/group.php:60 -msgid "Group name changed." -msgstr "O nome do grupo foi alterado." +#: include/text.php:306 +msgid "older" +msgstr "antigo" -#: ../../mod/group.php:87 -msgid "Save Group" -msgstr "Salvar o grupo" +#: include/text.php:311 +msgid "prev" +msgstr "anterior" -#: ../../mod/group.php:93 -msgid "Create a group of contacts/friends." -msgstr "Criar um grupo de contatos/amigos." +#: include/text.php:313 +msgid "first" +msgstr "primeiro" -#: ../../mod/group.php:94 ../../mod/group.php:180 -msgid "Group Name: " -msgstr "Nome do grupo: " +#: include/text.php:345 +msgid "last" +msgstr "último" -#: ../../mod/group.php:113 -msgid "Group removed." -msgstr "O grupo foi removido." +#: include/text.php:348 +msgid "next" +msgstr "próximo" -#: ../../mod/group.php:115 -msgid "Unable to remove group." -msgstr "Não foi possível remover o grupo." +#: include/text.php:403 +msgid "Loading more entries..." +msgstr "Baixando mais entradas..." -#: ../../mod/group.php:179 -msgid "Group Editor" -msgstr "Editor de grupo" +#: include/text.php:404 +msgid "The end" +msgstr "Fim" -#: ../../mod/group.php:192 -msgid "Members" -msgstr "Membros" +#: include/text.php:871 +msgid "No contacts" +msgstr "Nenhum contato" -#: ../../mod/group.php:194 ../../mod/contacts.php:586 -msgid "All Contacts" -msgstr "Todos os contatos" +#: include/text.php:894 +#, php-format +msgid "%d Contact" +msgid_plural "%d Contacts" +msgstr[0] "%d contato" +msgstr[1] "%d contatos" -#: ../../mod/group.php:224 ../../mod/profperm.php:105 -msgid "Click on a contact to add or remove." -msgstr "Clique em um contato para adicionar ou remover." +#: include/text.php:907 +msgid "View Contacts" +msgstr "Ver contatos" -#: ../../mod/delegate.php:101 -msgid "No potential page delegates located." -msgstr "Nenhuma página delegada potencial localizada." +#: include/text.php:995 mod/notes.php:61 mod/filer.php:31 mod/editpost.php:109 +msgid "Save" +msgstr "Salvar" -#: ../../mod/delegate.php:132 -msgid "" -"Delegates are able to manage all aspects of this account/page except for " -"basic account settings. Please do not delegate your personal account to " -"anybody that you do not trust completely." -msgstr "Delegados podem administrar todos os aspectos dessa página/conta exceto por configurações básicas da conta.\nFavor não delegar sua conta pessoal para ninguém que você não confie inteiramente." +#: include/text.php:1058 +msgid "poke" +msgstr "cutucar" -#: ../../mod/delegate.php:133 -msgid "Existing Page Managers" -msgstr "Administradores de Páginas Existentes" +#: include/text.php:1058 +msgid "poked" +msgstr "cutucado" -#: ../../mod/delegate.php:135 -msgid "Existing Page Delegates" -msgstr "Delegados de Páginas Existentes" +#: include/text.php:1059 +msgid "ping" +msgstr "ping" -#: ../../mod/delegate.php:137 -msgid "Potential Delegates" -msgstr "Delegados Potenciais" +#: include/text.php:1059 +msgid "pinged" +msgstr "pingado" -#: ../../mod/delegate.php:139 ../../mod/tagrm.php:93 -msgid "Remove" -msgstr "Remover" +#: include/text.php:1060 +msgid "prod" +msgstr "incentivar" -#: ../../mod/delegate.php:140 -msgid "Add" -msgstr "Adicionar" +#: include/text.php:1060 +msgid "prodded" +msgstr "incentivado" -#: ../../mod/delegate.php:141 -msgid "No entries." -msgstr "Sem entradas." +#: include/text.php:1061 +msgid "slap" +msgstr "bater" -#: ../../mod/notifications.php:26 -msgid "Invalid request identifier." -msgstr "Identificador de solicitação inválido" +#: include/text.php:1061 +msgid "slapped" +msgstr "batido" -#: ../../mod/notifications.php:35 ../../mod/notifications.php:165 -#: ../../mod/notifications.php:215 -msgid "Discard" -msgstr "Descartar" +#: include/text.php:1062 +msgid "finger" +msgstr "apontar" -#: ../../mod/notifications.php:51 ../../mod/notifications.php:164 -#: ../../mod/notifications.php:214 ../../mod/contacts.php:455 -#: ../../mod/contacts.php:519 ../../mod/contacts.php:731 -msgid "Ignore" -msgstr "Ignorar" +#: include/text.php:1062 +msgid "fingered" +msgstr "apontado" -#: ../../mod/notifications.php:78 +#: include/text.php:1063 +msgid "rebuff" +msgstr "rejeite" + +#: include/text.php:1063 +msgid "rebuffed" +msgstr "rejeitado" + +#: include/text.php:1077 +msgid "happy" +msgstr "feliz" + +#: include/text.php:1078 +msgid "sad" +msgstr "triste" + +#: include/text.php:1079 +msgid "mellow" +msgstr "desencanado" + +#: include/text.php:1080 +msgid "tired" +msgstr "cansado" + +#: include/text.php:1081 +msgid "perky" +msgstr "audacioso" + +#: include/text.php:1082 +msgid "angry" +msgstr "chateado" + +#: include/text.php:1083 +msgid "stupified" +msgstr "estupefato" + +#: include/text.php:1084 +msgid "puzzled" +msgstr "confuso" + +#: include/text.php:1085 +msgid "interested" +msgstr "interessado" + +#: include/text.php:1086 +msgid "bitter" +msgstr "rancoroso" + +#: include/text.php:1087 +msgid "cheerful" +msgstr "jovial" + +#: include/text.php:1088 +msgid "alive" +msgstr "vivo" + +#: include/text.php:1089 +msgid "annoyed" +msgstr "incomodado" + +#: include/text.php:1090 +msgid "anxious" +msgstr "ansioso" + +#: include/text.php:1091 +msgid "cranky" +msgstr "excêntrico" + +#: include/text.php:1092 +msgid "disturbed" +msgstr "perturbado" + +#: include/text.php:1093 +msgid "frustrated" +msgstr "frustrado" + +#: include/text.php:1094 +msgid "motivated" +msgstr "motivado" + +#: include/text.php:1095 +msgid "relaxed" +msgstr "relaxado" + +#: include/text.php:1096 +msgid "surprised" +msgstr "surpreso" + +#: include/text.php:1310 mod/videos.php:383 +msgid "View Video" +msgstr "Ver Vídeo" + +#: include/text.php:1342 +msgid "bytes" +msgstr "bytes" + +#: include/text.php:1374 include/text.php:1386 +msgid "Click to open/close" +msgstr "Clique para abrir/fechar" + +#: include/text.php:1512 +msgid "View on separate page" +msgstr "Ver em uma página separada" + +#: include/text.php:1513 +msgid "view on separate page" +msgstr "ver em uma página separada" + +#: include/text.php:1792 +msgid "activity" +msgstr "atividade" + +#: include/text.php:1794 mod/content.php:623 object/Item.php:431 +#: object/Item.php:444 +msgid "comment" +msgid_plural "comments" +msgstr[0] "comentário" +msgstr[1] "comentários" + +#: include/text.php:1795 +msgid "post" +msgstr "publicação" + +#: include/text.php:1963 +msgid "Item filed" +msgstr "O item foi arquivado" + +#: include/uimport.php:94 +msgid "Error decoding account file" +msgstr "Erro ao decodificar arquivo de conta" + +#: include/uimport.php:100 +msgid "Error! No version data in file! This is not a Friendica account file?" +msgstr "Erro! Nenhum arquivo de dados de versão! Esse não é um arquivo de conta do Friendica?" + +#: include/uimport.php:116 include/uimport.php:127 +msgid "Error! Cannot check nickname" +msgstr "Erro! Não consigo conferir o apelido (nickname)" + +#: include/uimport.php:120 include/uimport.php:131 +#, php-format +msgid "User '%s' already exists on this server!" +msgstr "User '%s' já existe nesse servidor!" + +#: include/uimport.php:153 +msgid "User creation error" +msgstr "Erro na criação do usuário" + +#: include/uimport.php:173 +msgid "User profile creation error" +msgstr "Erro na criação do perfil do Usuário" + +#: include/uimport.php:222 +#, php-format +msgid "%d contact not imported" +msgid_plural "%d contacts not imported" +msgstr[0] "%d contato não foi importado" +msgstr[1] "%d contatos não foram importados" + +#: include/uimport.php:292 +msgid "Done. You can now login with your username and password" +msgstr "Feito. Você agora pode entrar com seu nome de usuário e senha." + +#: include/NotificationsManager.php:153 msgid "System" msgstr "Sistema" -#: ../../mod/notifications.php:88 ../../mod/network.php:371 +#: include/NotificationsManager.php:167 mod/network.php:844 +#: mod/profiles.php:696 msgid "Personal" msgstr "Pessoal" -#: ../../mod/notifications.php:122 -msgid "Show Ignored Requests" -msgstr "Exibir solicitações ignoradas" - -#: ../../mod/notifications.php:122 -msgid "Hide Ignored Requests" -msgstr "Ocultar solicitações ignoradas" - -#: ../../mod/notifications.php:149 ../../mod/notifications.php:199 -msgid "Notification type: " -msgstr "Tipo de notificação:" - -#: ../../mod/notifications.php:150 -msgid "Friend Suggestion" -msgstr "Sugestão de amigo" - -#: ../../mod/notifications.php:152 -#, php-format -msgid "suggested by %s" -msgstr "sugerido por %s" - -#: ../../mod/notifications.php:157 ../../mod/notifications.php:208 -#: ../../mod/contacts.php:525 -msgid "Hide this contact from others" -msgstr "Ocultar este contato dos outros" - -#: ../../mod/notifications.php:158 ../../mod/notifications.php:209 -msgid "Post a new friend activity" -msgstr "Publicar a adição de amigo" - -#: ../../mod/notifications.php:158 ../../mod/notifications.php:209 -msgid "if applicable" -msgstr "se aplicável" - -#: ../../mod/notifications.php:161 ../../mod/notifications.php:212 -#: ../../mod/admin.php:1005 -msgid "Approve" -msgstr "Aprovar" - -#: ../../mod/notifications.php:181 -msgid "Claims to be known to you: " -msgstr "Alega ser conhecido por você: " - -#: ../../mod/notifications.php:181 -msgid "yes" -msgstr "sim" - -#: ../../mod/notifications.php:181 -msgid "no" -msgstr "não" - -#: ../../mod/notifications.php:182 -msgid "" -"Shall your connection be bidirectional or not? \"Friend\" implies that you " -"allow to read and you subscribe to their posts. \"Fan/Admirer\" means that " -"you allow to read but you do not want to read theirs. Approve as: " -msgstr "Sua conexão deve ser bidirecional ou não? \"Amigo\" implica que você permite ler e se inscreve nos textos dele. \"Fan / admirador\" significa que você permite ler, mas você não quer ler os textos dele. Aprovar como:" - -#: ../../mod/notifications.php:185 -msgid "" -"Shall your connection be bidirectional or not? \"Friend\" implies that you " -"allow to read and you subscribe to their posts. \"Sharer\" means that you " -"allow to read but you do not want to read theirs. Approve as: " -msgstr "Sua conexão deve ser bidirecional ou não? \"Amigo\" implica que você permite a leitura e assina o textos dele. \"Compartilhador\" significa que você permite a leitura mas você não quer ler os textos dele. Aprova como:" - -#: ../../mod/notifications.php:193 -msgid "Friend" -msgstr "Amigo" - -#: ../../mod/notifications.php:194 -msgid "Sharer" -msgstr "Compartilhador" - -#: ../../mod/notifications.php:194 -msgid "Fan/Admirer" -msgstr "Fã/Admirador" - -#: ../../mod/notifications.php:200 -msgid "Friend/Connect Request" -msgstr "Solicitação de amizade/conexão" - -#: ../../mod/notifications.php:200 -msgid "New Follower" -msgstr "Novo acompanhante" - -#: ../../mod/notifications.php:221 -msgid "No introductions." -msgstr "Sem apresentações." - -#: ../../mod/notifications.php:262 ../../mod/notifications.php:391 -#: ../../mod/notifications.php:482 -#, php-format -msgid "%s liked %s's post" -msgstr "%s gostou da publicação de %s" - -#: ../../mod/notifications.php:272 ../../mod/notifications.php:401 -#: ../../mod/notifications.php:492 -#, php-format -msgid "%s disliked %s's post" -msgstr "%s desgostou da publicação de %s" - -#: ../../mod/notifications.php:287 ../../mod/notifications.php:416 -#: ../../mod/notifications.php:507 -#, php-format -msgid "%s is now friends with %s" -msgstr "%s agora é amigo de %s" - -#: ../../mod/notifications.php:294 ../../mod/notifications.php:423 -#, php-format -msgid "%s created a new post" -msgstr "%s criou uma nova publicação" - -#: ../../mod/notifications.php:295 ../../mod/notifications.php:424 -#: ../../mod/notifications.php:517 +#: include/NotificationsManager.php:234 include/NotificationsManager.php:245 #, php-format msgid "%s commented on %s's post" msgstr "%s comentou uma publicação de %s" -#: ../../mod/notifications.php:310 -msgid "No more network notifications." -msgstr "Nenhuma notificação de rede." +#: include/NotificationsManager.php:244 +#, php-format +msgid "%s created a new post" +msgstr "%s criou uma nova publicação" -#: ../../mod/notifications.php:314 -msgid "Network Notifications" -msgstr "Notificações de rede" +#: include/NotificationsManager.php:258 +#, php-format +msgid "%s liked %s's post" +msgstr "%s gostou da publicação de %s" -#: ../../mod/notifications.php:340 ../../mod/notify.php:75 +#: include/NotificationsManager.php:269 +#, php-format +msgid "%s disliked %s's post" +msgstr "%s desgostou da publicação de %s" + +#: include/NotificationsManager.php:280 +#, php-format +msgid "%s is attending %s's event" +msgstr "%s vai comparecer ao evento de %s" + +#: include/NotificationsManager.php:291 +#, php-format +msgid "%s is not attending %s's event" +msgstr "%s não vai comparecer ao evento de %s" + +#: include/NotificationsManager.php:302 +#, php-format +msgid "%s may attend %s's event" +msgstr "%s talvez compareça ao evento de %s" + +#: include/NotificationsManager.php:317 +#, php-format +msgid "%s is now friends with %s" +msgstr "%s agora é amigo de %s" + +#: include/NotificationsManager.php:750 +msgid "Friend Suggestion" +msgstr "Sugestão de amigo" + +#: include/NotificationsManager.php:783 +msgid "Friend/Connect Request" +msgstr "Solicitação de amizade/conexão" + +#: include/NotificationsManager.php:783 +msgid "New Follower" +msgstr "Novo acompanhante" + +#: mod/oexchange.php:25 +msgid "Post successful." +msgstr "Publicado com sucesso." + +#: mod/update_community.php:18 mod/update_notes.php:37 +#: mod/update_display.php:22 mod/update_profile.php:41 +#: mod/update_network.php:25 +msgid "[Embedded content - reload page to view]" +msgstr "[Conteúdo incorporado - recarregue a página para ver]" + +#: mod/viewsrc.php:7 +msgid "Access denied." +msgstr "Acesso negado." + +#: mod/home.php:35 +#, php-format +msgid "Welcome to %s" +msgstr "Bem-vindo(a) a %s" + +#: mod/notify.php:60 msgid "No more system notifications." msgstr "Não fazer notificações de sistema." -#: ../../mod/notifications.php:344 ../../mod/notify.php:79 +#: mod/notify.php:64 mod/notifications.php:111 msgid "System Notifications" msgstr "Notificações de sistema" -#: ../../mod/notifications.php:439 -msgid "No more personal notifications." -msgstr "Nenhuma notificação pessoal." +#: mod/search.php:25 mod/network.php:191 +msgid "Remove term" +msgstr "Remover o termo" -#: ../../mod/notifications.php:443 -msgid "Personal Notifications" -msgstr "Notificações pessoais" +#: mod/search.php:93 mod/search.php:99 mod/directory.php:37 +#: mod/viewcontacts.php:35 mod/display.php:199 mod/community.php:22 +#: mod/dfrn_request.php:790 mod/videos.php:197 mod/photos.php:964 +msgid "Public access denied." +msgstr "Acesso público negado." -#: ../../mod/notifications.php:524 -msgid "No more home notifications." -msgstr "Não existe mais nenhuma notificação pessoal." +#: mod/search.php:100 +msgid "Only logged in users are permitted to perform a search." +msgstr "" -#: ../../mod/notifications.php:528 -msgid "Home Notifications" -msgstr "Notificações pessoais" +#: mod/search.php:124 +msgid "Too Many Requests" +msgstr "" -#: ../../mod/hcard.php:10 +#: mod/search.php:125 +msgid "Only one search per minute is permitted for not logged in users." +msgstr "" + +#: mod/search.php:224 mod/community.php:66 mod/community.php:75 +msgid "No results." +msgstr "Nenhum resultado." + +#: mod/search.php:230 +#, php-format +msgid "Items tagged with: %s" +msgstr "" + +#: mod/search.php:232 mod/network.php:146 mod/contacts.php:795 +#, php-format +msgid "Results for: %s" +msgstr "" + +#: mod/friendica.php:70 +msgid "This is Friendica, version" +msgstr "Este é o Friendica, versão" + +#: mod/friendica.php:71 +msgid "running at web location" +msgstr "sendo executado no endereço web" + +#: mod/friendica.php:73 +msgid "" +"Please visit Friendica.com to learn " +"more about the Friendica project." +msgstr "Por favor, visite friendica.com para aprender mais sobre o projeto Friendica." + +#: mod/friendica.php:75 +msgid "Bug reports and issues: please visit" +msgstr "Relate ou acompanhe um erro no" + +#: mod/friendica.php:75 +msgid "the bugtracker at github" +msgstr "GitHub" + +#: mod/friendica.php:76 +msgid "" +"Suggestions, praise, donations, etc. - please email \"Info\" at Friendica - " +"dot com" +msgstr "Sugestões, elogios, doações, etc. - favor enviar e-mail para \"Info\" arroba Friendica - ponto com" + +#: mod/friendica.php:90 +msgid "Installed plugins/addons/apps:" +msgstr "Plugins/complementos/aplicações instaladas:" + +#: mod/friendica.php:103 +msgid "No installed plugins/addons/apps" +msgstr "Nenhum plugin/complemento/aplicativo instalado" + +#: mod/lostpass.php:19 +msgid "No valid account found." +msgstr "Não foi encontrada nenhuma conta válida." + +#: mod/lostpass.php:35 +msgid "Password reset request issued. Check your email." +msgstr "A solicitação para reiniciar sua senha foi encaminhada. Verifique seu e-mail." + +#: mod/lostpass.php:42 +#, php-format +msgid "" +"\n" +"\t\tDear %1$s,\n" +"\t\t\tA request was recently received at \"%2$s\" to reset your account\n" +"\t\tpassword. In order to confirm this request, please select the verification link\n" +"\t\tbelow or paste it into your web browser address bar.\n" +"\n" +"\t\tIf you did NOT request this change, please DO NOT follow the link\n" +"\t\tprovided and ignore and/or delete this email.\n" +"\n" +"\t\tYour password will not be changed unless we can verify that you\n" +"\t\tissued this request." +msgstr "\n\t\tPrezado %1$s,\n\t\t\tUma solicitação foi recebida recentemente em \"%2$s\" para redefinir a\n\t\tsenha da sua conta. Para confirmar este pedido, por favor selecione o link de confirmação\n\t\tabaixo ou copie e cole-o na barra de endereço do seu navegador.\n\n\t\tSe NÃO foi você que solicitou esta alteração por favor, NÃO clique no link\n\t\tfornecido e ignore e/ou apague este e-mail.\n\n\t\tSua senha não será alterada a menos que possamos verificar que foi você que\n\t\temitiu esta solicitação." + +#: mod/lostpass.php:53 +#, php-format +msgid "" +"\n" +"\t\tFollow this link to verify your identity:\n" +"\n" +"\t\t%1$s\n" +"\n" +"\t\tYou will then receive a follow-up message containing the new password.\n" +"\t\tYou may change that password from your account settings page after logging in.\n" +"\n" +"\t\tThe login details are as follows:\n" +"\n" +"\t\tSite Location:\t%2$s\n" +"\t\tLogin Name:\t%3$s" +msgstr "\n\t\tSiga este link para verificar sua identidade:\n\n\t\t%1$s\n\n\t\tVocê então receberá uma mensagem de continuidade contendo a nova senha.\n\t\tVocê pode alterar sua senha na sua página de configurações após efetuar seu login.\n\n\t\tOs dados de login são os seguintes:\n\n\t\tLocalização do Site:\t%2$s\n\t\tNome de Login:\t%3$s" + +#: mod/lostpass.php:72 +#, php-format +msgid "Password reset requested at %s" +msgstr "Foi feita uma solicitação de reiniciação da senha em %s" + +#: mod/lostpass.php:92 +msgid "" +"Request could not be verified. (You may have previously submitted it.) " +"Password reset failed." +msgstr "Não foi possível verificar a solicitação (você pode tê-la submetido anteriormente). A senha não foi reiniciada." + +#: mod/lostpass.php:109 boot.php:1670 +msgid "Password Reset" +msgstr "Redifinir a senha" + +#: mod/lostpass.php:110 +msgid "Your password has been reset as requested." +msgstr "Sua senha foi reiniciada, conforme solicitado." + +#: mod/lostpass.php:111 +msgid "Your new password is" +msgstr "Sua nova senha é" + +#: mod/lostpass.php:112 +msgid "Save or copy your new password - and then" +msgstr "Grave ou copie a sua nova senha e, então" + +#: mod/lostpass.php:113 +msgid "click here to login" +msgstr "clique aqui para entrar" + +#: mod/lostpass.php:114 +msgid "" +"Your password may be changed from the Settings page after " +"successful login." +msgstr "Sua senha pode ser alterada na página de Configurações após você entrar em seu perfil." + +#: mod/lostpass.php:125 +#, php-format +msgid "" +"\n" +"\t\t\t\tDear %1$s,\n" +"\t\t\t\t\tYour password has been changed as requested. Please retain this\n" +"\t\t\t\tinformation for your records (or change your password immediately to\n" +"\t\t\t\tsomething that you will remember).\n" +"\t\t\t" +msgstr "\n\t\t\t\tCaro %1$s,\n\t\t\t\t\tSua senha foi alterada conforme solicitado. Por favor, guarde essas\n\t\t\t\tinformações para seus registros (ou altere a sua senha imediatamente para\n\t\t\t\talgo que você se lembrará).\n\t\t\t" + +#: mod/lostpass.php:131 +#, php-format +msgid "" +"\n" +"\t\t\t\tYour login details are as follows:\n" +"\n" +"\t\t\t\tSite Location:\t%1$s\n" +"\t\t\t\tLogin Name:\t%2$s\n" +"\t\t\t\tPassword:\t%3$s\n" +"\n" +"\t\t\t\tYou may change that password from your account settings page after logging in.\n" +"\t\t\t" +msgstr "\n\t\t\t\tOs seus dados de login são os seguintes:\n\n\t\t\t\tLocalização do Site:\t%1$s\n\t\t\t\tNome de Login:\t%2$s\n\t\t\t\tSenha:\t%3$s\n\n\t\t\t\tVocê pode alterar esta senha na sua página de configurações depois que efetuar o seu login.\n\t\t\t" + +#: mod/lostpass.php:147 +#, php-format +msgid "Your password has been changed at %s" +msgstr "Sua senha foi modifica às %s" + +#: mod/lostpass.php:159 +msgid "Forgot your Password?" +msgstr "Esqueceu a sua senha?" + +#: mod/lostpass.php:160 +msgid "" +"Enter your email address and submit to have your password reset. Then check " +"your email for further instructions." +msgstr "Digite o seu endereço de e-mail e clique em 'Reiniciar' para prosseguir com a reiniciação da sua senha. Após isso, verifique seu e-mail para mais instruções." + +#: mod/lostpass.php:161 boot.php:1658 +msgid "Nickname or Email: " +msgstr "Identificação ou e-mail: " + +#: mod/lostpass.php:162 +msgid "Reset" +msgstr "Reiniciar" + +#: mod/hcard.php:10 msgid "No profile" msgstr "Nenhum perfil" -#: ../../mod/settings.php:34 ../../mod/photos.php:80 -msgid "everybody" -msgstr "todos" +#: mod/help.php:41 +msgid "Help:" +msgstr "Ajuda:" -#: ../../mod/settings.php:41 ../../mod/admin.php:1016 -msgid "Account" -msgstr "Conta" +#: mod/help.php:53 mod/p.php:16 mod/p.php:43 mod/p.php:52 mod/fetch.php:12 +#: mod/fetch.php:39 mod/fetch.php:48 index.php:284 +msgid "Not Found" +msgstr "Não encontrada" -#: ../../mod/settings.php:46 -msgid "Additional features" -msgstr "Funcionalidades adicionais" +#: mod/help.php:56 index.php:287 +msgid "Page not found." +msgstr "Página não encontrada." -#: ../../mod/settings.php:51 -msgid "Display" -msgstr "Tela" +#: mod/wall_upload.php:20 mod/wall_upload.php:33 mod/wall_upload.php:86 +#: mod/wall_upload.php:122 mod/wall_upload.php:125 mod/wall_attach.php:17 +#: mod/wall_attach.php:25 mod/wall_attach.php:76 +msgid "Invalid request." +msgstr "Solicitação inválida." -#: ../../mod/settings.php:57 ../../mod/settings.php:785 -msgid "Social Networks" -msgstr "Redes Sociais" - -#: ../../mod/settings.php:62 ../../mod/admin.php:106 ../../mod/admin.php:1102 -#: ../../mod/admin.php:1155 -msgid "Plugins" -msgstr "Plugins" - -#: ../../mod/settings.php:72 -msgid "Connected apps" -msgstr "Aplicações conectadas" - -#: ../../mod/settings.php:77 ../../mod/uexport.php:85 -msgid "Export personal data" -msgstr "Exportar dados pessoais" - -#: ../../mod/settings.php:82 -msgid "Remove account" -msgstr "Remover a conta" - -#: ../../mod/settings.php:134 -msgid "Missing some important data!" -msgstr "Está faltando algum dado importante!" - -#: ../../mod/settings.php:137 ../../mod/settings.php:645 -#: ../../mod/contacts.php:729 -msgid "Update" -msgstr "Atualizar" - -#: ../../mod/settings.php:243 -msgid "Failed to connect with email account using the settings provided." -msgstr "Não foi possível conectar à conta de e-mail com as configurações fornecidas." - -#: ../../mod/settings.php:248 -msgid "Email settings updated." -msgstr "As configurações de e-mail foram atualizadas." - -#: ../../mod/settings.php:263 -msgid "Features updated" -msgstr "Funcionalidades atualizadas" - -#: ../../mod/settings.php:326 -msgid "Relocate message has been send to your contacts" -msgstr "A mensagem de relocação foi enviada para seus contatos" - -#: ../../mod/settings.php:340 -msgid "Passwords do not match. Password unchanged." -msgstr "As senhas não correspondem. A senha não foi modificada." - -#: ../../mod/settings.php:345 -msgid "Empty passwords are not allowed. Password unchanged." -msgstr "Não é permitido uma senha em branco. A senha não foi modificada." - -#: ../../mod/settings.php:353 -msgid "Wrong password." -msgstr "Senha errada." - -#: ../../mod/settings.php:364 -msgid "Password changed." -msgstr "A senha foi modificada." - -#: ../../mod/settings.php:366 -msgid "Password update failed. Please try again." -msgstr "Não foi possível atualizar a senha. Por favor, tente novamente." - -#: ../../mod/settings.php:433 -msgid " Please use a shorter name." -msgstr " Por favor, use um nome mais curto." - -#: ../../mod/settings.php:435 -msgid " Name too short." -msgstr " O nome é muito curto." - -#: ../../mod/settings.php:444 -msgid "Wrong Password" -msgstr "Senha Errada" - -#: ../../mod/settings.php:449 -msgid " Not valid email." -msgstr " Não é um e-mail válido." - -#: ../../mod/settings.php:455 -msgid " Cannot change to that email." -msgstr " Não foi possível alterar para esse e-mail." - -#: ../../mod/settings.php:511 -msgid "Private forum has no privacy permissions. Using default privacy group." -msgstr "O fórum privado não possui permissões de privacidade. Utilizando o grupo de privacidade padrão." - -#: ../../mod/settings.php:515 -msgid "Private forum has no privacy permissions and no default privacy group." -msgstr "O fórum privado não possui permissões de privacidade e nenhum grupo de privacidade padrão." - -#: ../../mod/settings.php:545 -msgid "Settings updated." -msgstr "As configurações foram atualizadas." - -#: ../../mod/settings.php:618 ../../mod/settings.php:644 -#: ../../mod/settings.php:680 -msgid "Add application" -msgstr "Adicionar aplicação" - -#: ../../mod/settings.php:619 ../../mod/settings.php:729 -#: ../../mod/settings.php:803 ../../mod/settings.php:885 -#: ../../mod/settings.php:1118 ../../mod/admin.php:620 -#: ../../mod/admin.php:1156 ../../mod/admin.php:1358 ../../mod/admin.php:1445 -msgid "Save Settings" -msgstr "Salvar configurações" - -#: ../../mod/settings.php:621 ../../mod/settings.php:647 -#: ../../mod/admin.php:1003 ../../mod/admin.php:1015 ../../mod/admin.php:1016 -#: ../../mod/admin.php:1029 ../../mod/crepair.php:165 -msgid "Name" -msgstr "Nome" - -#: ../../mod/settings.php:622 ../../mod/settings.php:648 -msgid "Consumer Key" -msgstr "Chave do consumidor" - -#: ../../mod/settings.php:623 ../../mod/settings.php:649 -msgid "Consumer Secret" -msgstr "Segredo do consumidor" - -#: ../../mod/settings.php:624 ../../mod/settings.php:650 -msgid "Redirect" -msgstr "Redirecionar" - -#: ../../mod/settings.php:625 ../../mod/settings.php:651 -msgid "Icon url" -msgstr "URL do ícone" - -#: ../../mod/settings.php:636 -msgid "You can't edit this application." -msgstr "Você não pode editar esta aplicação." - -#: ../../mod/settings.php:679 -msgid "Connected Apps" -msgstr "Aplicações conectadas" - -#: ../../mod/settings.php:683 -msgid "Client key starts with" -msgstr "A chave do cliente inicia com" - -#: ../../mod/settings.php:684 -msgid "No name" -msgstr "Sem nome" - -#: ../../mod/settings.php:685 -msgid "Remove authorization" -msgstr "Remover autorização" - -#: ../../mod/settings.php:697 -msgid "No Plugin settings configured" -msgstr "Não foi definida nenhuma configuração de plugin" - -#: ../../mod/settings.php:705 -msgid "Plugin Settings" -msgstr "Configurações do plugin" - -#: ../../mod/settings.php:719 -msgid "Off" -msgstr "Off" - -#: ../../mod/settings.php:719 -msgid "On" -msgstr "On" - -#: ../../mod/settings.php:727 -msgid "Additional Features" -msgstr "Funcionalidades Adicionais" - -#: ../../mod/settings.php:741 ../../mod/settings.php:742 +#: mod/wall_upload.php:151 mod/profile_photo.php:150 mod/photos.php:806 #, php-format -msgid "Built-in support for %s connectivity is %s" -msgstr "O suporte interno para conectividade de %s está %s" +msgid "Image exceeds size limit of %s" +msgstr "" -#: ../../mod/settings.php:741 ../../mod/settings.php:742 -msgid "enabled" -msgstr "habilitado" +#: mod/wall_upload.php:188 mod/profile_photo.php:159 mod/photos.php:846 +msgid "Unable to process image." +msgstr "Não foi possível processar a imagem." -#: ../../mod/settings.php:741 ../../mod/settings.php:742 -msgid "disabled" -msgstr "desabilitado" +#: mod/wall_upload.php:221 mod/profile_photo.php:307 mod/photos.php:873 +msgid "Image upload failed." +msgstr "Não foi possível enviar a imagem." -#: ../../mod/settings.php:742 -msgid "StatusNet" -msgstr "StatusNet" - -#: ../../mod/settings.php:778 -msgid "Email access is disabled on this site." -msgstr "O acesso ao e-mail está desabilitado neste site." - -#: ../../mod/settings.php:790 -msgid "Email/Mailbox Setup" -msgstr "Configurações do e-mail/caixa postal" - -#: ../../mod/settings.php:791 -msgid "" -"If you wish to communicate with email contacts using this service " -"(optional), please specify how to connect to your mailbox." -msgstr "Caso você deseje se comunicar com contatos de e-mail usando este serviço (opcional), por favor especifique como se conectar à sua caixa postal." - -#: ../../mod/settings.php:792 -msgid "Last successful email check:" -msgstr "Última checagem bem sucedida de e-mail:" - -#: ../../mod/settings.php:794 -msgid "IMAP server name:" -msgstr "Nome do servidor IMAP:" - -#: ../../mod/settings.php:795 -msgid "IMAP port:" -msgstr "Porta do IMAP:" - -#: ../../mod/settings.php:796 -msgid "Security:" -msgstr "Segurança:" - -#: ../../mod/settings.php:796 ../../mod/settings.php:801 -msgid "None" -msgstr "Nenhuma" - -#: ../../mod/settings.php:797 -msgid "Email login name:" -msgstr "Nome de usuário do e-mail:" - -#: ../../mod/settings.php:798 -msgid "Email password:" -msgstr "Senha do e-mail:" - -#: ../../mod/settings.php:799 -msgid "Reply-to address:" -msgstr "Endereço de resposta (Reply-to):" - -#: ../../mod/settings.php:800 -msgid "Send public posts to all email contacts:" -msgstr "Enviar publicações públicas para todos os contatos de e-mail:" - -#: ../../mod/settings.php:801 -msgid "Action after import:" -msgstr "Ação após a importação:" - -#: ../../mod/settings.php:801 -msgid "Mark as seen" -msgstr "Marcar como visto" - -#: ../../mod/settings.php:801 -msgid "Move to folder" -msgstr "Mover para pasta" - -#: ../../mod/settings.php:802 -msgid "Move to folder:" -msgstr "Mover para pasta:" - -#: ../../mod/settings.php:833 ../../mod/admin.php:545 -msgid "No special theme for mobile devices" -msgstr "Nenhum tema especial para dispositivos móveis" - -#: ../../mod/settings.php:883 -msgid "Display Settings" -msgstr "Configurações de exibição" - -#: ../../mod/settings.php:889 ../../mod/settings.php:904 -msgid "Display Theme:" -msgstr "Tema do perfil:" - -#: ../../mod/settings.php:890 -msgid "Mobile Theme:" -msgstr "Tema para dispositivos móveis:" - -#: ../../mod/settings.php:891 -msgid "Update browser every xx seconds" -msgstr "Atualizar o navegador a cada xx segundos" - -#: ../../mod/settings.php:891 -msgid "Minimum of 10 seconds, no maximum" -msgstr "Mínimo de 10 segundos, não possui máximo" - -#: ../../mod/settings.php:892 -msgid "Number of items to display per page:" -msgstr "Número de itens a serem exibidos por página:" - -#: ../../mod/settings.php:892 ../../mod/settings.php:893 -msgid "Maximum of 100 items" -msgstr "Máximo de 100 itens" - -#: ../../mod/settings.php:893 -msgid "Number of items to display per page when viewed from mobile device:" -msgstr "Número de itens a serem exibidos por página quando visualizando em um dispositivo móvel:" - -#: ../../mod/settings.php:894 -msgid "Don't show emoticons" -msgstr "Não exibir emoticons" - -#: ../../mod/settings.php:895 -msgid "Don't show notices" -msgstr "Não mostra avisos" - -#: ../../mod/settings.php:896 -msgid "Infinite scroll" -msgstr "rolamento infinito" - -#: ../../mod/settings.php:897 -msgid "Automatic updates only at the top of the network page" -msgstr "Atualizações automáticas só na parte superior da página da rede" - -#: ../../mod/settings.php:974 -msgid "User Types" -msgstr "Tipos de Usuários" - -#: ../../mod/settings.php:975 -msgid "Community Types" -msgstr "Tipos de Comunidades" - -#: ../../mod/settings.php:976 -msgid "Normal Account Page" -msgstr "Página de conta normal" - -#: ../../mod/settings.php:977 -msgid "This account is a normal personal profile" -msgstr "Essa conta é um perfil pessoal normal" - -#: ../../mod/settings.php:980 -msgid "Soapbox Page" -msgstr "Página de vitrine" - -#: ../../mod/settings.php:981 -msgid "Automatically approve all connection/friend requests as read-only fans" -msgstr "Aprova automaticamente todas as solicitações de conexão/amizade como fãs com permissão somente de leitura" - -#: ../../mod/settings.php:984 -msgid "Community Forum/Celebrity Account" -msgstr "Conta de fórum de comunidade/celebridade" - -#: ../../mod/settings.php:985 -msgid "" -"Automatically approve all connection/friend requests as read-write fans" -msgstr "Aprova automaticamente todas as solicitações de conexão/amizade como fãs com permissão de leitura e escrita" - -#: ../../mod/settings.php:988 -msgid "Automatic Friend Page" -msgstr "Página de amigo automático" - -#: ../../mod/settings.php:989 -msgid "Automatically approve all connection/friend requests as friends" -msgstr "Aprovar automaticamente todas as solicitações de conexão/amizade como amigos" - -#: ../../mod/settings.php:992 -msgid "Private Forum [Experimental]" -msgstr "Fórum privado [Experimental]" - -#: ../../mod/settings.php:993 -msgid "Private forum - approved members only" -msgstr "Fórum privado - somente membros aprovados" - -#: ../../mod/settings.php:1005 -msgid "OpenID:" -msgstr "OpenID:" - -#: ../../mod/settings.php:1005 -msgid "(Optional) Allow this OpenID to login to this account." -msgstr "(Opcional) Permitir o uso deste OpenID para entrar nesta conta" - -#: ../../mod/settings.php:1015 -msgid "Publish your default profile in your local site directory?" -msgstr "Publicar o seu perfil padrão no diretório local do seu site?" - -#: ../../mod/settings.php:1015 ../../mod/settings.php:1021 -#: ../../mod/settings.php:1029 ../../mod/settings.php:1033 -#: ../../mod/settings.php:1038 ../../mod/settings.php:1044 -#: ../../mod/settings.php:1050 ../../mod/settings.php:1056 -#: ../../mod/settings.php:1086 ../../mod/settings.php:1087 -#: ../../mod/settings.php:1088 ../../mod/settings.php:1089 -#: ../../mod/settings.php:1090 ../../mod/register.php:234 -#: ../../mod/dfrn_request.php:830 ../../mod/api.php:106 -#: ../../mod/profiles.php:661 ../../mod/profiles.php:665 -msgid "No" -msgstr "Não" - -#: ../../mod/settings.php:1021 -msgid "Publish your default profile in the global social directory?" -msgstr "Publicar o seu perfil padrão no diretório social global?" - -#: ../../mod/settings.php:1029 -msgid "Hide your contact/friend list from viewers of your default profile?" -msgstr "Ocultar visualização da sua lista de contatos/amigos no seu perfil padrão? " - -#: ../../mod/settings.php:1033 -msgid "" -"If enabled, posting public messages to Diaspora and other networks isn't " -"possible." -msgstr "Se ativado, postar mensagens públicas no Diáspora e em outras redes não será possível." - -#: ../../mod/settings.php:1038 -msgid "Allow friends to post to your profile page?" -msgstr "Permitir aos amigos publicarem na sua página de perfil?" - -#: ../../mod/settings.php:1044 -msgid "Allow friends to tag your posts?" -msgstr "Permitir aos amigos etiquetarem suas publicações?" - -#: ../../mod/settings.php:1050 -msgid "Allow us to suggest you as a potential friend to new members?" -msgstr "Permitir que você seja sugerido como amigo em potencial para novos membros?" - -#: ../../mod/settings.php:1056 -msgid "Permit unknown people to send you private mail?" -msgstr "Permitir que pessoas desconhecidas lhe enviem mensagens privadas?" - -#: ../../mod/settings.php:1064 -msgid "Profile is not published." -msgstr "O perfil não está publicado." - -#: ../../mod/settings.php:1067 ../../mod/profile_photo.php:248 -msgid "or" -msgstr "ou" - -#: ../../mod/settings.php:1072 -msgid "Your Identity Address is" -msgstr "O endereço da sua identidade é" - -#: ../../mod/settings.php:1083 -msgid "Automatically expire posts after this many days:" -msgstr "Expirar automaticamente publicações após tantos dias:" - -#: ../../mod/settings.php:1083 -msgid "If empty, posts will not expire. Expired posts will be deleted" -msgstr "Se deixado em branco, as publicações não irão expirar. Publicações expiradas serão excluídas." - -#: ../../mod/settings.php:1084 -msgid "Advanced expiration settings" -msgstr "Configurações avançadas de expiração" - -#: ../../mod/settings.php:1085 -msgid "Advanced Expiration" -msgstr "Expiração avançada" - -#: ../../mod/settings.php:1086 -msgid "Expire posts:" -msgstr "Expirar publicações:" - -#: ../../mod/settings.php:1087 -msgid "Expire personal notes:" -msgstr "Expirar notas pessoais:" - -#: ../../mod/settings.php:1088 -msgid "Expire starred posts:" -msgstr "Expirar publicações destacadas:" - -#: ../../mod/settings.php:1089 -msgid "Expire photos:" -msgstr "Expirar fotos:" - -#: ../../mod/settings.php:1090 -msgid "Only expire posts by others:" -msgstr "Expirar somente as publicações de outras pessoas:" - -#: ../../mod/settings.php:1116 -msgid "Account Settings" -msgstr "Configurações da conta" - -#: ../../mod/settings.php:1124 -msgid "Password Settings" -msgstr "Configurações da senha" - -#: ../../mod/settings.php:1125 -msgid "New Password:" -msgstr "Nova senha:" - -#: ../../mod/settings.php:1126 -msgid "Confirm:" -msgstr "Confirme:" - -#: ../../mod/settings.php:1126 -msgid "Leave password fields blank unless changing" -msgstr "Deixe os campos de senha em branco, a não ser que você queira alterá-la" - -#: ../../mod/settings.php:1127 -msgid "Current Password:" -msgstr "Senha Atual:" - -#: ../../mod/settings.php:1127 ../../mod/settings.php:1128 -msgid "Your current password to confirm the changes" -msgstr "Sua senha atual para confirmar as mudanças" - -#: ../../mod/settings.php:1128 -msgid "Password:" -msgstr "Senha:" - -#: ../../mod/settings.php:1132 -msgid "Basic Settings" -msgstr "Configurações básicas" - -#: ../../mod/settings.php:1134 -msgid "Email Address:" -msgstr "Endereço de e-mail:" - -#: ../../mod/settings.php:1135 -msgid "Your Timezone:" -msgstr "Seu fuso horário:" - -#: ../../mod/settings.php:1136 -msgid "Default Post Location:" -msgstr "Localização padrão de suas publicações:" - -#: ../../mod/settings.php:1137 -msgid "Use Browser Location:" -msgstr "Usar localizador do navegador:" - -#: ../../mod/settings.php:1140 -msgid "Security and Privacy Settings" -msgstr "Configurações de segurança e privacidade" - -#: ../../mod/settings.php:1142 -msgid "Maximum Friend Requests/Day:" -msgstr "Número máximo de requisições de amizade por dia:" - -#: ../../mod/settings.php:1142 ../../mod/settings.php:1172 -msgid "(to prevent spam abuse)" -msgstr "(para prevenir abuso de spammers)" - -#: ../../mod/settings.php:1143 -msgid "Default Post Permissions" -msgstr "Permissões padrão de publicação" - -#: ../../mod/settings.php:1144 -msgid "(click to open/close)" -msgstr "(clique para abrir/fechar)" - -#: ../../mod/settings.php:1153 ../../mod/photos.php:1146 -#: ../../mod/photos.php:1519 -msgid "Show to Groups" -msgstr "Mostre para Grupos" - -#: ../../mod/settings.php:1154 ../../mod/photos.php:1147 -#: ../../mod/photos.php:1520 -msgid "Show to Contacts" -msgstr "Mostre para Contatos" - -#: ../../mod/settings.php:1155 -msgid "Default Private Post" -msgstr "Publicação Privada Padrão" - -#: ../../mod/settings.php:1156 -msgid "Default Public Post" -msgstr "Publicação Pública Padrão" - -#: ../../mod/settings.php:1160 -msgid "Default Permissions for New Posts" -msgstr "Permissões Padrão para Publicações Novas" - -#: ../../mod/settings.php:1172 -msgid "Maximum private messages per day from unknown people:" -msgstr "Número máximo de mensagens privadas de pessoas desconhecidas, por dia:" - -#: ../../mod/settings.php:1175 -msgid "Notification Settings" -msgstr "Configurações de notificação" - -#: ../../mod/settings.php:1176 -msgid "By default post a status message when:" -msgstr "Por padrão, publicar uma mensagem de status quando:" - -#: ../../mod/settings.php:1177 -msgid "accepting a friend request" -msgstr "aceitar uma requisição de amizade" - -#: ../../mod/settings.php:1178 -msgid "joining a forum/community" -msgstr "associar-se a um fórum/comunidade" - -#: ../../mod/settings.php:1179 -msgid "making an interesting profile change" -msgstr "fazer uma modificação interessante em seu perfil" - -#: ../../mod/settings.php:1180 -msgid "Send a notification email when:" -msgstr "Enviar um e-mail de notificação sempre que:" - -#: ../../mod/settings.php:1181 -msgid "You receive an introduction" -msgstr "Você recebeu uma apresentação" - -#: ../../mod/settings.php:1182 -msgid "Your introductions are confirmed" -msgstr "Suas apresentações forem confirmadas" - -#: ../../mod/settings.php:1183 -msgid "Someone writes on your profile wall" -msgstr "Alguém escrever no mural do seu perfil" - -#: ../../mod/settings.php:1184 -msgid "Someone writes a followup comment" -msgstr "Alguém comentar a sua mensagem" - -#: ../../mod/settings.php:1185 -msgid "You receive a private message" -msgstr "Você recebeu uma mensagem privada" - -#: ../../mod/settings.php:1186 -msgid "You receive a friend suggestion" -msgstr "Você recebe uma suggestão de amigo" - -#: ../../mod/settings.php:1187 -msgid "You are tagged in a post" -msgstr "Você foi etiquetado em uma publicação" - -#: ../../mod/settings.php:1188 -msgid "You are poked/prodded/etc. in a post" -msgstr "Você está cutucado/incitado/etc. em uma publicação" - -#: ../../mod/settings.php:1190 -msgid "Text-only notification emails" -msgstr "Emails de notificação apenas de texto" - -#: ../../mod/settings.php:1192 -msgid "Send text only notification emails, without the html part" -msgstr "Enviar e-mails de notificação apenas de texto, sem a parte html" - -#: ../../mod/settings.php:1194 -msgid "Advanced Account/Page Type Settings" -msgstr "Conta avançada/Configurações do tipo de página" - -#: ../../mod/settings.php:1195 -msgid "Change the behaviour of this account for special situations" -msgstr "Modificar o comportamento desta conta em situações especiais" - -#: ../../mod/settings.php:1198 -msgid "Relocate" -msgstr "Relocação" - -#: ../../mod/settings.php:1199 -msgid "" -"If you have moved this profile from another server, and some of your " -"contacts don't receive your updates, try pushing this button." -msgstr "Se você moveu esse perfil de outro servidor e algum dos seus contatos não recebe atualizações, pressione esse botão." - -#: ../../mod/settings.php:1200 -msgid "Resend relocate message to contacts" -msgstr "Reenviar mensagem de relocação para os contatos" - -#: ../../mod/common.php:42 -msgid "Common Friends" -msgstr "Amigos em Comum" - -#: ../../mod/common.php:78 -msgid "No contacts in common." -msgstr "Nenhum contato em comum." - -#: ../../mod/lockview.php:31 ../../mod/lockview.php:39 +#: mod/lockview.php:31 mod/lockview.php:39 msgid "Remote privacy information not available." msgstr "Não existe informação disponível sobre a privacidade remota." -#: ../../mod/lockview.php:48 +#: mod/lockview.php:48 msgid "Visible to:" msgstr "Visível para:" -#: ../../mod/contacts.php:112 -#, php-format -msgid "%d contact edited." -msgid_plural "%d contacts edited" -msgstr[0] "%d contato editado" -msgstr[1] "%d contatos editados" +#: mod/directory.php:205 view/theme/vier/theme.php:201 +#: view/theme/diabook/theme.php:525 +msgid "Global Directory" +msgstr "Diretório global" -#: ../../mod/contacts.php:143 ../../mod/contacts.php:276 -msgid "Could not access contact record." -msgstr "Não foi possível acessar o registro do contato." +#: mod/directory.php:207 +msgid "Find on this site" +msgstr "Pesquisar neste site" -#: ../../mod/contacts.php:157 -msgid "Could not locate selected profile." -msgstr "Não foi possível localizar o perfil selecionado." +#: mod/directory.php:209 +msgid "Results for:" +msgstr "" -#: ../../mod/contacts.php:190 -msgid "Contact updated." -msgstr "O contato foi atualizado." +#: mod/directory.php:211 +msgid "Site Directory" +msgstr "Diretório do site" -#: ../../mod/contacts.php:192 ../../mod/dfrn_request.php:576 -msgid "Failed to update contact record." -msgstr "Não foi possível atualizar o registro do contato." +#: mod/directory.php:218 +msgid "No entries (some entries may be hidden)." +msgstr "Nenhuma entrada (algumas entradas podem estar ocultas)." -#: ../../mod/contacts.php:291 -msgid "Contact has been blocked" -msgstr "O contato foi bloqueado" +#: mod/openid.php:24 +msgid "OpenID protocol error. No ID returned." +msgstr "Erro no protocolo OpenID. Não foi retornada nenhuma ID." -#: ../../mod/contacts.php:291 -msgid "Contact has been unblocked" -msgstr "O contato foi desbloqueado" - -#: ../../mod/contacts.php:302 -msgid "Contact has been ignored" -msgstr "O contato foi ignorado" - -#: ../../mod/contacts.php:302 -msgid "Contact has been unignored" -msgstr "O contato deixou de ser ignorado" - -#: ../../mod/contacts.php:314 -msgid "Contact has been archived" -msgstr "O contato foi arquivado" - -#: ../../mod/contacts.php:314 -msgid "Contact has been unarchived" -msgstr "O contato foi desarquivado" - -#: ../../mod/contacts.php:339 ../../mod/contacts.php:727 -msgid "Do you really want to delete this contact?" -msgstr "Você realmente deseja deletar esse contato?" - -#: ../../mod/contacts.php:356 -msgid "Contact has been removed." -msgstr "O contato foi removido." - -#: ../../mod/contacts.php:394 -#, php-format -msgid "You are mutual friends with %s" -msgstr "Você possui uma amizade mútua com %s" - -#: ../../mod/contacts.php:398 -#, php-format -msgid "You are sharing with %s" -msgstr "Você está compartilhando com %s" - -#: ../../mod/contacts.php:403 -#, php-format -msgid "%s is sharing with you" -msgstr "%s está compartilhando com você" - -#: ../../mod/contacts.php:423 -msgid "Private communications are not available for this contact." -msgstr "As comunicações privadas não estão disponíveis para este contato." - -#: ../../mod/contacts.php:426 ../../mod/admin.php:569 -msgid "Never" -msgstr "Nunca" - -#: ../../mod/contacts.php:430 -msgid "(Update was successful)" -msgstr "(A atualização foi bem sucedida)" - -#: ../../mod/contacts.php:430 -msgid "(Update was not successful)" -msgstr "(A atualização não foi bem sucedida)" - -#: ../../mod/contacts.php:432 -msgid "Suggest friends" -msgstr "Sugerir amigos" - -#: ../../mod/contacts.php:436 -#, php-format -msgid "Network type: %s" -msgstr "Tipo de rede: %s" - -#: ../../mod/contacts.php:444 -msgid "View all contacts" -msgstr "Ver todos os contatos" - -#: ../../mod/contacts.php:449 ../../mod/contacts.php:518 -#: ../../mod/contacts.php:730 ../../mod/admin.php:1009 -msgid "Unblock" -msgstr "Desbloquear" - -#: ../../mod/contacts.php:449 ../../mod/contacts.php:518 -#: ../../mod/contacts.php:730 ../../mod/admin.php:1008 -msgid "Block" -msgstr "Bloquear" - -#: ../../mod/contacts.php:452 -msgid "Toggle Blocked status" -msgstr "Alternar o status de bloqueio" - -#: ../../mod/contacts.php:455 ../../mod/contacts.php:519 -#: ../../mod/contacts.php:731 -msgid "Unignore" -msgstr "Deixar de ignorar" - -#: ../../mod/contacts.php:458 -msgid "Toggle Ignored status" -msgstr "Alternar o status de ignorado" - -#: ../../mod/contacts.php:462 ../../mod/contacts.php:732 -msgid "Unarchive" -msgstr "Desarquivar" - -#: ../../mod/contacts.php:462 ../../mod/contacts.php:732 -msgid "Archive" -msgstr "Arquivar" - -#: ../../mod/contacts.php:465 -msgid "Toggle Archive status" -msgstr "Alternar o status de arquivamento" - -#: ../../mod/contacts.php:468 -msgid "Repair" -msgstr "Reparar" - -#: ../../mod/contacts.php:471 -msgid "Advanced Contact Settings" -msgstr "Configurações avançadas do contato" - -#: ../../mod/contacts.php:477 -msgid "Communications lost with this contact!" -msgstr "As comunicações com esse contato foram perdidas!" - -#: ../../mod/contacts.php:480 -msgid "Fetch further information for feeds" -msgstr "Pega mais informações para feeds" - -#: ../../mod/contacts.php:481 -msgid "Disabled" -msgstr "Desabilitado" - -#: ../../mod/contacts.php:481 -msgid "Fetch information" -msgstr "Buscar informações" - -#: ../../mod/contacts.php:481 -msgid "Fetch information and keywords" -msgstr "Buscar informação e palavras-chave" - -#: ../../mod/contacts.php:490 -msgid "Contact Editor" -msgstr "Editor de contatos" - -#: ../../mod/contacts.php:493 -msgid "Profile Visibility" -msgstr "Visibilidade do perfil" - -#: ../../mod/contacts.php:494 -#, php-format +#: mod/openid.php:60 msgid "" -"Please choose the profile you would like to display to %s when viewing your " -"profile securely." -msgstr "Por favor, selecione o perfil que você gostaria de exibir para %s quando estiver visualizando seu perfil de modo seguro." +"Account not found and OpenID registration is not permitted on this site." +msgstr "A conta não foi encontrada e não são permitidos registros via OpenID nesse site." -#: ../../mod/contacts.php:495 -msgid "Contact Information / Notes" -msgstr "Informações sobre o contato / Anotações" +#: mod/uimport.php:50 mod/register.php:191 +msgid "" +"This site has exceeded the number of allowed daily account registrations. " +"Please try again tomorrow." +msgstr "Este site excedeu o limite diário permitido para registros de novas contas.\nPor favor tente novamente amanhã." -#: ../../mod/contacts.php:496 -msgid "Edit contact notes" -msgstr "Editar as anotações do contato" +#: mod/uimport.php:64 mod/register.php:286 +msgid "Import" +msgstr "Importar" -#: ../../mod/contacts.php:501 ../../mod/contacts.php:695 -#: ../../mod/nogroup.php:40 ../../mod/viewcontacts.php:64 +#: mod/uimport.php:66 +msgid "Move account" +msgstr "Mover conta" + +#: mod/uimport.php:67 +msgid "You can import an account from another Friendica server." +msgstr "Você pode importar um conta de outro sevidor Friendica." + +#: mod/uimport.php:68 +msgid "" +"You need to export your account from the old server and upload it here. We " +"will recreate your old account here with all your contacts. We will try also" +" to inform your friends that you moved here." +msgstr "Você precisa exportar sua conta de um servidor antigo e fazer o upload aqui. Nós recriaremos sua conta antiga aqui com todos os seus contatos. Nós também tentaremos informar seus amigos que você se mudou para cá." + +#: mod/uimport.php:69 +msgid "" +"This feature is experimental. We can't import contacts from the OStatus " +"network (GNU Social/Statusnet) or from Diaspora" +msgstr "Esta funcionalidade está em fase de testes. Não importamos contatos da rede OStatuss (GNU Social/Statusnet) nem da Diaspora." + +#: mod/uimport.php:70 +msgid "Account file" +msgstr "Arquivo de conta" + +#: mod/uimport.php:70 +msgid "" +"To export your account, go to \"Settings->Export your personal data\" and " +"select \"Export account\"" +msgstr "Para exportar a sua conta, entre em \"Configurações->Exportar dados pessoais\" e selecione \"Exportar conta\"" + +#: mod/nogroup.php:41 mod/viewcontacts.php:97 mod/contacts.php:586 +#: mod/contacts.php:944 #, php-format msgid "Visit %s's profile [%s]" msgstr "Visitar o perfil de %s [%s]" -#: ../../mod/contacts.php:502 -msgid "Block/Unblock contact" -msgstr "Bloquear/desbloquear o contato" - -#: ../../mod/contacts.php:503 -msgid "Ignore contact" -msgstr "Ignorar o contato" - -#: ../../mod/contacts.php:504 -msgid "Repair URL settings" -msgstr "Reparar as definições de URL" - -#: ../../mod/contacts.php:505 -msgid "View conversations" -msgstr "Ver as conversas" - -#: ../../mod/contacts.php:507 -msgid "Delete contact" -msgstr "Excluir o contato" - -#: ../../mod/contacts.php:511 -msgid "Last update:" -msgstr "Última atualização:" - -#: ../../mod/contacts.php:513 -msgid "Update public posts" -msgstr "Atualizar publicações públicas" - -#: ../../mod/contacts.php:515 ../../mod/admin.php:1503 -msgid "Update now" -msgstr "Atualizar agora" - -#: ../../mod/contacts.php:522 -msgid "Currently blocked" -msgstr "Atualmente bloqueado" - -#: ../../mod/contacts.php:523 -msgid "Currently ignored" -msgstr "Atualmente ignorado" - -#: ../../mod/contacts.php:524 -msgid "Currently archived" -msgstr "Atualmente arquivado" - -#: ../../mod/contacts.php:525 -msgid "" -"Replies/likes to your public posts may still be visible" -msgstr "Respostas/gostadas associados às suas publicações ainda podem estar visíveis" - -#: ../../mod/contacts.php:526 -msgid "Notification for new posts" -msgstr "Notificações para novas publicações" - -#: ../../mod/contacts.php:526 -msgid "Send a notification of every new post of this contact" -msgstr "Envie uma notificação para todos as novas publicações deste contato" - -#: ../../mod/contacts.php:529 -msgid "Blacklisted keywords" -msgstr "Palavras-chave na Lista Negra" - -#: ../../mod/contacts.php:529 -msgid "" -"Comma separated list of keywords that should not be converted to hashtags, " -"when \"Fetch information and keywords\" is selected" -msgstr "Lista de palavras-chave separadas por vírgulas que não devem ser convertidas para hashtags, quando \"Buscar informações e palavras-chave\" for selecionado." - -#: ../../mod/contacts.php:580 -msgid "Suggestions" -msgstr "Sugestões" - -#: ../../mod/contacts.php:583 -msgid "Suggest potential friends" -msgstr "Sugerir amigos em potencial" - -#: ../../mod/contacts.php:589 -msgid "Show all contacts" -msgstr "Exibe todos os contatos" - -#: ../../mod/contacts.php:592 -msgid "Unblocked" -msgstr "Desbloquear" - -#: ../../mod/contacts.php:595 -msgid "Only show unblocked contacts" -msgstr "Exibe somente contatos desbloqueados" - -#: ../../mod/contacts.php:599 -msgid "Blocked" -msgstr "Bloqueado" - -#: ../../mod/contacts.php:602 -msgid "Only show blocked contacts" -msgstr "Exibe somente contatos bloqueados" - -#: ../../mod/contacts.php:606 -msgid "Ignored" -msgstr "Ignorados" - -#: ../../mod/contacts.php:609 -msgid "Only show ignored contacts" -msgstr "Exibe somente contatos ignorados" - -#: ../../mod/contacts.php:613 -msgid "Archived" -msgstr "Arquivados" - -#: ../../mod/contacts.php:616 -msgid "Only show archived contacts" -msgstr "Exibe somente contatos arquivados" - -#: ../../mod/contacts.php:620 -msgid "Hidden" -msgstr "Ocultos" - -#: ../../mod/contacts.php:623 -msgid "Only show hidden contacts" -msgstr "Exibe somente contatos ocultos" - -#: ../../mod/contacts.php:671 -msgid "Mutual Friendship" -msgstr "Amizade mútua" - -#: ../../mod/contacts.php:675 -msgid "is a fan of yours" -msgstr "é um fã seu" - -#: ../../mod/contacts.php:679 -msgid "you are a fan of" -msgstr "você é um fã de" - -#: ../../mod/contacts.php:696 ../../mod/nogroup.php:41 +#: mod/nogroup.php:42 mod/contacts.php:945 msgid "Edit contact" msgstr "Editar o contato" -#: ../../mod/contacts.php:722 -msgid "Search your contacts" -msgstr "Pesquisar seus contatos" +#: mod/nogroup.php:63 +msgid "Contacts who are not members of a group" +msgstr "Contatos que não são membros de um grupo" -#: ../../mod/contacts.php:723 ../../mod/directory.php:61 -msgid "Finding: " -msgstr "Pesquisando: " +#: mod/match.php:33 +msgid "No keywords to match. Please add keywords to your default profile." +msgstr "Não foi encontrada nenhuma palavra-chave associada a você. Por favor, adicione algumas ao seu perfil padrão." -#: ../../mod/wall_attach.php:75 -msgid "Sorry, maybe your upload is bigger than the PHP configuration allows" -msgstr "Lamento, talvez seu envio seja maior do que as configurações do PHP permitem" +#: mod/match.php:86 +msgid "is interested in:" +msgstr "se interessa por:" -#: ../../mod/wall_attach.php:75 -msgid "Or - did you try to upload an empty file?" -msgstr "Ou - você tentou enviar um arquivo vazio?" +#: mod/match.php:100 +msgid "Profile Match" +msgstr "Correspondência de perfil" -#: ../../mod/wall_attach.php:81 -#, php-format -msgid "File exceeds size limit of %d" -msgstr "O arquivo excedeu o tamanho limite de %d" +#: mod/match.php:107 mod/dirfind.php:240 +msgid "No matches" +msgstr "Nenhuma correspondência" -#: ../../mod/wall_attach.php:122 ../../mod/wall_attach.php:133 -msgid "File upload failed." -msgstr "Não foi possível enviar o arquivo." - -#: ../../mod/update_community.php:18 ../../mod/update_network.php:25 -#: ../../mod/update_notes.php:37 ../../mod/update_display.php:22 -#: ../../mod/update_profile.php:41 -msgid "[Embedded content - reload page to view]" -msgstr "[Conteúdo incorporado - recarregue a página para ver]" - -#: ../../mod/uexport.php:77 +#: mod/uexport.php:29 msgid "Export account" msgstr "Exportar conta" -#: ../../mod/uexport.php:77 +#: mod/uexport.php:29 msgid "" "Export your account info and contacts. Use this to make a backup of your " "account and/or to move it to another server." msgstr "Exporta suas informações de conta e contatos. Use para fazer uma cópia de segurança de sua conta e/ou para movê-la para outro servidor." -#: ../../mod/uexport.php:78 +#: mod/uexport.php:30 msgid "Export all" msgstr "Exportar tudo" -#: ../../mod/uexport.php:78 +#: mod/uexport.php:30 msgid "" "Export your accout info, contacts and all your items as json. Could be a " "very big file, and could take a lot of time. Use this to make a full backup " "of your account (photos are not exported)" msgstr "Exportar as informações de sua conta, contatos e todos os seus items como JSON. Pode ser um arquivo muito grande, e pode levar bastante tempo. Use isto para fazer uma cópia de segurança completa da sua conta (fotos não são exportadas)" -#: ../../mod/register.php:90 -msgid "" -"Registration successful. Please check your email for further instructions." -msgstr "O registro foi bem sucedido. Por favor, verifique seu e-mail para maiores informações." +#: mod/uexport.php:37 mod/settings.php:95 +msgid "Export personal data" +msgstr "Exportar dados pessoais" -#: ../../mod/register.php:96 +#: mod/invite.php:27 +msgid "Total invitation limit exceeded." +msgstr "Limite de convites totais excedido." + +#: mod/invite.php:49 +#, php-format +msgid "%s : Not a valid email address." +msgstr "%s : Não é um endereço de e-mail válido." + +#: mod/invite.php:73 +msgid "Please join us on Friendica" +msgstr "Por favor, junte-se à nós na Friendica" + +#: mod/invite.php:84 +msgid "Invitation limit exceeded. Please contact your site administrator." +msgstr "Limite de convites ultrapassado. Favor contactar o administrador do sítio." + +#: mod/invite.php:89 +#, php-format +msgid "%s : Message delivery failed." +msgstr "%s : Não foi possível enviar a mensagem." + +#: mod/invite.php:93 +#, php-format +msgid "%d message sent." +msgid_plural "%d messages sent." +msgstr[0] "%d mensagem enviada." +msgstr[1] "%d mensagens enviadas." + +#: mod/invite.php:112 +msgid "You have no more invitations available" +msgstr "Você não possui mais convites disponíveis" + +#: mod/invite.php:120 #, php-format msgid "" -"Failed to send email message. Here your accout details:
      login: %s
      " -"password: %s

      You can change your password after login." -msgstr "Falha ao enviar mensagem de email. Estes são os dados da sua conta:
      login: %s
      senha: %s

      Você pode alterar sua senha após fazer o login." +"Visit %s for a list of public sites that you can join. Friendica members on " +"other sites can all connect with each other, as well as with members of many" +" other social networks." +msgstr "Visite %s para obter uma lista de sites públicos onde você pode se cadastrar. Membros da friendica podem se conectar, mesmo que estejam em sites separados. Além disso você também pode se conectar com membros de várias outras redes sociais." -#: ../../mod/register.php:105 -msgid "Your registration can not be processed." -msgstr "Não foi possível processar o seu registro." - -#: ../../mod/register.php:148 -msgid "Your registration is pending approval by the site owner." -msgstr "A aprovação do seu registro está pendente junto ao administrador do site." - -#: ../../mod/register.php:186 ../../mod/uimport.php:50 +#: mod/invite.php:122 +#, php-format msgid "" -"This site has exceeded the number of allowed daily account registrations. " -"Please try again tomorrow." -msgstr "Este site excedeu o limite diário permitido para registros de novas contas.\nPor favor tente novamente amanhã." +"To accept this invitation, please visit and register at %s or any other " +"public Friendica website." +msgstr "Para aceitar esse convite, por favor cadastre-se em %s ou qualquer outro site friendica público." -#: ../../mod/register.php:214 +#: mod/invite.php:123 +#, php-format msgid "" -"You may (optionally) fill in this form via OpenID by supplying your OpenID " -"and clicking 'Register'." -msgstr "Você pode (opcionalmente) preencher este formulário via OpenID, fornecendo seu OpenID e clicando em 'Registrar'." +"Friendica sites all inter-connect to create a huge privacy-enhanced social " +"web that is owned and controlled by its members. They can also connect with " +"many traditional social networks. See %s for a list of alternate Friendica " +"sites you can join." +msgstr "Os sites friendica estão todos interconectados para criar uma grande rede social com foco na privacidade e controlada por seus membros, que também podem se conectar com várias redes sociais tradicionais. Dê uma olhada em %s para uma lista de sites friendica onde você pode se cadastrar." -#: ../../mod/register.php:215 +#: mod/invite.php:126 msgid "" -"If you are not familiar with OpenID, please leave that field blank and fill " -"in the rest of the items." -msgstr "Se você não está familiarizado com o OpenID, por favor, deixe esse campo em branco e preencha os outros itens." +"Our apologies. This system is not currently configured to connect with other" +" public sites or invite members." +msgstr "Desculpe, mas esse sistema não está configurado para conectar-se com outros sites públicos nem permite convidar novos membros." -#: ../../mod/register.php:216 -msgid "Your OpenID (optional): " -msgstr "Seu OpenID (opcional): " +#: mod/invite.php:132 +msgid "Send invitations" +msgstr "Enviar convites." -#: ../../mod/register.php:230 -msgid "Include your profile in member directory?" -msgstr "Incluir o seu perfil no diretório de membros?" +#: mod/invite.php:133 +msgid "Enter email addresses, one per line:" +msgstr "Digite os endereços de e-mail, um por linha:" -#: ../../mod/register.php:251 -msgid "Membership on this site is by invitation only." -msgstr "A associação a este site só pode ser feita mediante convite." +#: mod/invite.php:134 mod/wallmessage.php:151 mod/message.php:351 +#: mod/message.php:541 +msgid "Your message:" +msgstr "Sua mensagem:" -#: ../../mod/register.php:252 -msgid "Your invitation ID: " -msgstr "A ID do seu convite: " - -#: ../../mod/register.php:255 ../../mod/admin.php:621 -msgid "Registration" -msgstr "Registro" - -#: ../../mod/register.php:263 -msgid "Your Full Name (e.g. Joe Smith): " -msgstr "Seu nome completo (ex: José da Silva): " - -#: ../../mod/register.php:264 -msgid "Your Email Address: " -msgstr "Seu endereço de e-mail: " - -#: ../../mod/register.php:265 +#: mod/invite.php:135 msgid "" -"Choose a profile nickname. This must begin with a text character. Your " -"profile address on this site will then be " -"'nickname@$sitename'." -msgstr "Selecione uma identificação para o perfil. Ela deve começar com um caractere alfabético. O endereço do seu perfil neste site será 'identificação@$sitename'" +"You are cordially invited to join me and other close friends on Friendica - " +"and help us to create a better social web." +msgstr "Você está convidado a se juntar a mim e outros amigos em friendica - e também nos ajudar a criar uma experiência social melhor na web." -#: ../../mod/register.php:266 -msgid "Choose a nickname: " -msgstr "Escolha uma identificação: " +#: mod/invite.php:137 +msgid "You will need to supply this invitation code: $invite_code" +msgstr "Você preciso informar este código de convite: $invite_code" -#: ../../mod/register.php:275 ../../mod/uimport.php:64 -msgid "Import" -msgstr "Importar" +#: mod/invite.php:137 +msgid "" +"Once you have registered, please connect with me via my profile page at:" +msgstr "Após você se registrar, por favor conecte-se comigo através da minha página de perfil em:" -#: ../../mod/register.php:276 -msgid "Import your profile to this friendica instance" -msgstr "Importa seu perfil desta instância do friendica" +#: mod/invite.php:139 +msgid "" +"For more information about the Friendica project and why we feel it is " +"important, please visit http://friendica.com" +msgstr "Para mais informações sobre o projeto Friendica e porque nós achamos que ele é importante, por favor visite-nos em http://friendica.com." -#: ../../mod/oexchange.php:25 -msgid "Post successful." -msgstr "Publicado com sucesso." +#: mod/invite.php:140 mod/localtime.php:45 mod/message.php:357 +#: mod/message.php:547 mod/manage.php:143 mod/crepair.php:154 +#: mod/content.php:728 mod/contacts.php:577 mod/events.php:507 +#: mod/fsuggest.php:107 mod/mood.php:137 mod/poke.php:199 mod/profiles.php:681 +#: mod/install.php:272 mod/install.php:312 mod/photos.php:1125 +#: mod/photos.php:1249 mod/photos.php:1566 mod/photos.php:1617 +#: mod/photos.php:1665 mod/photos.php:1753 object/Item.php:720 +#: view/theme/frio/config.php:59 view/theme/cleanzero/config.php:80 +#: view/theme/quattro/config.php:64 view/theme/dispy/config.php:70 +#: view/theme/vier/config.php:107 view/theme/diabook/theme.php:633 +#: view/theme/diabook/config.php:148 view/theme/duepuntozero/config.php:59 +msgid "Submit" +msgstr "Enviar" -#: ../../mod/maintenance.php:5 +#: mod/fbrowser.php:41 mod/fbrowser.php:62 mod/photos.php:63 +#: mod/photos.php:193 mod/photos.php:1107 mod/photos.php:1233 +#: mod/photos.php:1256 mod/photos.php:1825 mod/photos.php:1837 +#: view/theme/diabook/theme.php:499 +msgid "Contact Photos" +msgstr "Fotos dos contatos" + +#: mod/fbrowser.php:133 +msgid "Files" +msgstr "Arquivos" + +#: mod/maintenance.php:5 msgid "System down for maintenance" msgstr "Sistema em manutenção" -#: ../../mod/profile.php:155 ../../mod/display.php:332 +#: mod/profperm.php:19 mod/group.php:72 index.php:396 +msgid "Permission denied" +msgstr "Permissão negada" + +#: mod/profperm.php:25 mod/profperm.php:56 +msgid "Invalid profile identifier." +msgstr "Identificador de perfil inválido." + +#: mod/profperm.php:102 +msgid "Profile Visibility Editor" +msgstr "Editor de visibilidade do perfil" + +#: mod/profperm.php:106 mod/group.php:223 +msgid "Click on a contact to add or remove." +msgstr "Clique em um contato para adicionar ou remover." + +#: mod/profperm.php:115 +msgid "Visible To" +msgstr "Visível para" + +#: mod/profperm.php:131 +msgid "All Contacts (with secure profile access)" +msgstr "Todos os contatos (com acesso a perfil seguro)" + +#: mod/viewcontacts.php:72 +msgid "No contacts." +msgstr "Nenhum contato." + +#: mod/tagrm.php:41 +msgid "Tag removed" +msgstr "A etiqueta foi removida" + +#: mod/tagrm.php:79 +msgid "Remove Item Tag" +msgstr "Remover a etiqueta do item" + +#: mod/tagrm.php:81 +msgid "Select a tag to remove: " +msgstr "Selecione uma etiqueta para remover: " + +#: mod/tagrm.php:93 mod/delegate.php:139 +msgid "Remove" +msgstr "Remover" + +#: mod/ping.php:272 +msgid "{0} wants to be your friend" +msgstr "{0} deseja ser seu amigo" + +#: mod/ping.php:287 +msgid "{0} sent you a message" +msgstr "{0} lhe enviou uma mensagem" + +#: mod/ping.php:302 +msgid "{0} requested registration" +msgstr "{0} solicitou registro" + +#: mod/wall_attach.php:94 +msgid "Sorry, maybe your upload is bigger than the PHP configuration allows" +msgstr "Lamento, talvez seu envio seja maior do que as configurações do PHP permitem" + +#: mod/wall_attach.php:94 +msgid "Or - did you try to upload an empty file?" +msgstr "Ou - você tentou enviar um arquivo vazio?" + +#: mod/wall_attach.php:105 +#, php-format +msgid "File exceeds size limit of %s" +msgstr "" + +#: mod/wall_attach.php:156 mod/wall_attach.php:172 +msgid "File upload failed." +msgstr "Não foi possível enviar o arquivo." + +#: mod/allfriends.php:43 +msgid "No friends to display." +msgstr "Nenhum amigo para exibir." + +#: mod/cal.php:152 mod/display.php:328 mod/profile.php:155 msgid "Access to this profile has been restricted." msgstr "O acesso a este perfil está restrito." -#: ../../mod/profile.php:180 +#: mod/cal.php:279 mod/events.php:380 +msgid "View" +msgstr "" + +#: mod/cal.php:280 mod/events.php:382 +msgid "Previous" +msgstr "Anterior" + +#: mod/cal.php:281 mod/events.php:383 mod/install.php:231 +msgid "Next" +msgstr "Próximo" + +#: mod/cal.php:301 +msgid "User not found" +msgstr "" + +#: mod/cal.php:317 +msgid "This calendar format is not supported" +msgstr "Esse formato de agenda não é contemplado" + +#: mod/cal.php:319 +msgid "No exportable data found" +msgstr "" + +#: mod/cal.php:327 +msgid "calendar" +msgstr "agenda" + +#: mod/repair_ostatus.php:14 +msgid "Resubscribing to OStatus contacts" +msgstr "" + +#: mod/repair_ostatus.php:30 +msgid "Error" +msgstr "Erro" + +#: mod/repair_ostatus.php:44 mod/ostatus_subscribe.php:51 +msgid "Done" +msgstr "" + +#: mod/repair_ostatus.php:50 mod/ostatus_subscribe.php:73 +msgid "Keep this window open until done." +msgstr "" + +#: mod/delegate.php:101 +msgid "No potential page delegates located." +msgstr "Nenhuma página delegada potencial localizada." + +#: mod/delegate.php:132 +msgid "" +"Delegates are able to manage all aspects of this account/page except for " +"basic account settings. Please do not delegate your personal account to " +"anybody that you do not trust completely." +msgstr "Delegados podem administrar todos os aspectos dessa página/conta exceto por configurações básicas da conta.\nFavor não delegar sua conta pessoal para ninguém que você não confie inteiramente." + +#: mod/delegate.php:133 +msgid "Existing Page Managers" +msgstr "Administradores de Páginas Existentes" + +#: mod/delegate.php:135 +msgid "Existing Page Delegates" +msgstr "Delegados de Páginas Existentes" + +#: mod/delegate.php:137 +msgid "Potential Delegates" +msgstr "Delegados Potenciais" + +#: mod/delegate.php:140 +msgid "Add" +msgstr "Adicionar" + +#: mod/delegate.php:141 +msgid "No entries." +msgstr "Sem entradas." + +#: mod/credits.php:16 +msgid "Credits" +msgstr "" + +#: mod/credits.php:17 +msgid "" +"Friendica is a community project, that would not be possible without the " +"help of many people. Here is a list of those who have contributed to the " +"code or the translation of Friendica. Thank you all!" +msgstr "" + +#: mod/filer.php:30 +msgid "- select -" +msgstr "-selecione-" + +#: mod/subthread.php:103 +#, php-format +msgid "%1$s is following %2$s's %3$s" +msgstr "%1$s está seguindo %2$s's %3$s" + +#: mod/attach.php:8 +msgid "Item not available." +msgstr "O item não está disponível." + +#: mod/attach.php:20 +msgid "Item was not found." +msgstr "O item não foi encontrado." + +#: mod/follow.php:19 mod/dfrn_request.php:874 +msgid "Submit Request" +msgstr "Enviar solicitação" + +#: mod/follow.php:30 +msgid "You already added this contact." +msgstr "Você já adicionou esse contato." + +#: mod/follow.php:39 +msgid "Diaspora support isn't enabled. Contact can't be added." +msgstr "" + +#: mod/follow.php:46 +msgid "OStatus support is disabled. Contact can't be added." +msgstr "" + +#: mod/follow.php:53 +msgid "The network type couldn't be detected. Contact can't be added." +msgstr "" + +#: mod/follow.php:109 mod/dfrn_request.php:860 +msgid "Please answer the following:" +msgstr "Por favor, entre com as informações solicitadas:" + +#: mod/follow.php:110 mod/dfrn_request.php:861 +#, php-format +msgid "Does %s know you?" +msgstr "%s conhece você?" + +#: mod/follow.php:110 mod/api.php:106 mod/dfrn_request.php:861 +#: mod/profiles.php:641 mod/profiles.php:645 mod/profiles.php:670 +#: mod/register.php:239 mod/settings.php:1113 mod/settings.php:1119 +#: mod/settings.php:1127 mod/settings.php:1131 mod/settings.php:1136 +#: mod/settings.php:1142 mod/settings.php:1148 mod/settings.php:1154 +#: mod/settings.php:1180 mod/settings.php:1181 mod/settings.php:1182 +#: mod/settings.php:1183 mod/settings.php:1184 +msgid "No" +msgstr "Não" + +#: mod/follow.php:111 mod/dfrn_request.php:865 +msgid "Add a personal note:" +msgstr "Adicione uma anotação pessoal:" + +#: mod/follow.php:117 mod/dfrn_request.php:871 +msgid "Your Identity Address:" +msgstr "Seu endereço de identificação:" + +#: mod/follow.php:126 mod/contacts.php:624 mod/notifications.php:243 +msgid "Profile URL" +msgstr "URL do perfil" + +#: mod/follow.php:180 +msgid "Contact added" +msgstr "O contato foi adicionado" + +#: mod/apps.php:7 index.php:240 +msgid "You must be logged in to use addons. " +msgstr "Você precisa estar logado para usar os addons." + +#: mod/apps.php:11 +msgid "Applications" +msgstr "Aplicativos" + +#: mod/apps.php:14 +msgid "No installed applications." +msgstr "Nenhum aplicativo instalado" + +#: mod/suggest.php:27 +msgid "Do you really want to delete this suggestion?" +msgstr "Você realmente deseja deletar essa sugestão?" + +#: mod/suggest.php:71 +msgid "" +"No suggestions available. If this is a new site, please try again in 24 " +"hours." +msgstr "Não existe nenhuma sugestão disponível. Se este for um site novo, por favor tente novamente em 24 horas." + +#: mod/suggest.php:84 mod/suggest.php:104 +msgid "Ignore/Hide" +msgstr "Ignorar/Ocultar" + +#: mod/p.php:9 +msgid "Not Extended" +msgstr "" + +#: mod/display.php:471 +msgid "Item has been removed." +msgstr "O item foi removido." + +#: mod/common.php:86 +msgid "No contacts in common." +msgstr "Nenhum contato em comum." + +#: mod/common.php:134 mod/contacts.php:861 +msgid "Common Friends" +msgstr "Amigos em Comum" + +#: mod/newmember.php:6 +msgid "Welcome to Friendica" +msgstr "Bemvindo ao Friendica" + +#: mod/newmember.php:8 +msgid "New Member Checklist" +msgstr "Dicas para os novos membros" + +#: mod/newmember.php:12 +msgid "" +"We would like to offer some tips and links to help make your experience " +"enjoyable. Click any item to visit the relevant page. A link to this page " +"will be visible from your home page for two weeks after your initial " +"registration and then will quietly disappear." +msgstr "Gostaríamos de oferecer algumas dicas e links para ajudar a tornar a sua experiência agradável. Clique em qualquer item para visitar a página correspondente. Um link para essa página será visível em sua home page por duas semanas após o seu registro inicial e, então, desaparecerá discretamente." + +#: mod/newmember.php:14 +msgid "Getting Started" +msgstr "Do Início" + +#: mod/newmember.php:18 +msgid "Friendica Walk-Through" +msgstr "Passo-a-passo da friendica" + +#: mod/newmember.php:18 +msgid "" +"On your Quick Start page - find a brief introduction to your " +"profile and network tabs, make some new connections, and find some groups to" +" join." +msgstr "Na sua página Início Rápido - encontre uma introdução rápida ao seu perfil e abas da rede, faça algumas conexões novas, e encontre alguns grupos entrar." + +#: mod/newmember.php:26 +msgid "Go to Your Settings" +msgstr "Ir para as suas configurações" + +#: mod/newmember.php:26 +msgid "" +"On your Settings page - change your initial password. Also make a " +"note of your Identity Address. This looks just like an email address - and " +"will be useful in making friends on the free social web." +msgstr "Em sua página Configurações - mude sua senha inicial. Também tome nota de seu Endereço de Identidade. Isso se parece com um endereço de e-mail - e será útil para se fazer amigos na rede social livre." + +#: mod/newmember.php:28 +msgid "" +"Review the other settings, particularly the privacy settings. An unpublished" +" directory listing is like having an unlisted phone number. In general, you " +"should probably publish your listing - unless all of your friends and " +"potential friends know exactly how to find you." +msgstr "Revise as outras configurações, em particular as relacionadas a privacidade. Não estar listado no diretório é o equivalente a não ter o seu número na lista telefônica. Normalmente é interessante você estar listado - a não ser que os seu amigos atuais e potenciais saibam exatamente como encontrar você." + +#: mod/newmember.php:36 mod/profile_photo.php:250 mod/profiles.php:700 +msgid "Upload Profile Photo" +msgstr "Enviar foto do perfil" + +#: mod/newmember.php:36 +msgid "" +"Upload a profile photo if you have not done so already. Studies have shown " +"that people with real photos of themselves are ten times more likely to make" +" friends than people who do not." +msgstr "Envie uma foto para o seu perfil, caso ainda não tenha feito isso. Estudos indicam que pessoas que publicam fotos reais delas mesmas têm 10 vezes mais chances de encontrar novos amigos do que as que não o fazem." + +#: mod/newmember.php:38 +msgid "Edit Your Profile" +msgstr "Editar seu perfil" + +#: mod/newmember.php:38 +msgid "" +"Edit your default profile to your liking. Review the " +"settings for hiding your list of friends and hiding the profile from unknown" +" visitors." +msgstr "Edite o seu perfil padrão a seu gosto. Revise as configurações de ocultação da sua lista de amigos e do seu perfil de visitantes desconhecidos." + +#: mod/newmember.php:40 +msgid "Profile Keywords" +msgstr "Palavras-chave do perfil" + +#: mod/newmember.php:40 +msgid "" +"Set some public keywords for your default profile which describe your " +"interests. We may be able to find other people with similar interests and " +"suggest friendships." +msgstr "Defina algumas palavras-chave públicas para o seu perfil padrão, que descrevam os seus interesses. Nós podemos encontrar outras pessoas com interesses similares e sugerir novas amizades." + +#: mod/newmember.php:44 +msgid "Connecting" +msgstr "Conexões" + +#: mod/newmember.php:51 +msgid "Importing Emails" +msgstr "Importação de e-mails" + +#: mod/newmember.php:51 +msgid "" +"Enter your email access information on your Connector Settings page if you " +"wish to import and interact with friends or mailing lists from your email " +"INBOX" +msgstr "Forneça a informação de acesso ao seu e-mail na sua página de Configuração de Conector se você deseja importar e interagir com amigos ou listas de discussão da sua Caixa de Entrada de e-mail" + +#: mod/newmember.php:53 +msgid "Go to Your Contacts Page" +msgstr "Ir para a sua página de contatos" + +#: mod/newmember.php:53 +msgid "" +"Your Contacts page is your gateway to managing friendships and connecting " +"with friends on other networks. Typically you enter their address or site " +"URL in the Add New Contact dialog." +msgstr "Sua página de contatos é sua rota para o gerenciamento de amizades e conexão com amigos em outras redes. Geralmente você fornece o endereço deles ou a URL do site na janela de diálogo Adicionar Novo Contato." + +#: mod/newmember.php:55 +msgid "Go to Your Site's Directory" +msgstr "Ir para o diretório do seu site" + +#: mod/newmember.php:55 +msgid "" +"The Directory page lets you find other people in this network or other " +"federated sites. Look for a Connect or Follow link on " +"their profile page. Provide your own Identity Address if requested." +msgstr "A página de Diretório permite que você encontre outras pessoas nesta rede ou em outras redes federadas. Procure por um link Conectar ou Seguir no perfil que deseja acompanhar. Forneça o seu Endereço de Identidade próprio, se solicitado." + +#: mod/newmember.php:57 +msgid "Finding New People" +msgstr "Pesquisar por novas pessoas" + +#: mod/newmember.php:57 +msgid "" +"On the side panel of the Contacts page are several tools to find new " +"friends. We can match people by interest, look up people by name or " +"interest, and provide suggestions based on network relationships. On a brand" +" new site, friend suggestions will usually begin to be populated within 24 " +"hours." +msgstr "No painel lateral da página de Contatos existem várias ferramentas para encontrar novos amigos. Você pode descobrir pessoas com os mesmos interesses, procurar por nomes ou interesses e fornecer sugestões baseadas nos relacionamentos da rede. Em um site completamente novo, as sugestões de amizades geralmente começam a ser populadas dentro de 24 horas." + +#: mod/newmember.php:65 +msgid "Group Your Contacts" +msgstr "Agrupe seus contatos" + +#: mod/newmember.php:65 +msgid "" +"Once you have made some friends, organize them into private conversation " +"groups from the sidebar of your Contacts page and then you can interact with" +" each group privately on your Network page." +msgstr "Após fazer novas amizades, organize-as em grupos de conversa privados, a partir da barra lateral na sua página de Contatos. A partir daí, você poderá interagir com cada grupo privativamente, na sua página de Rede." + +#: mod/newmember.php:68 +msgid "Why Aren't My Posts Public?" +msgstr "Por que as minhas publicações não são públicas?" + +#: mod/newmember.php:68 +msgid "" +"Friendica respects your privacy. By default, your posts will only show up to" +" people you've added as friends. For more information, see the help section " +"from the link above." +msgstr "A friendica respeita sua privacidade. Por padrão, suas publicações estarão visíveis apenas para as pessoas que você adicionou como amigos. Para mais informações, veja a página de ajuda, a partir do link acima." + +#: mod/newmember.php:73 +msgid "Getting Help" +msgstr "Obtendo ajuda" + +#: mod/newmember.php:77 +msgid "Go to the Help Section" +msgstr "Ir para a seção de ajuda" + +#: mod/newmember.php:77 +msgid "" +"Our help pages may be consulted for detail on other program" +" features and resources." +msgstr "Consulte nossas páginas de ajuda para mais detalhes sobre as características e recursos do programa." + +#: mod/removeme.php:46 mod/removeme.php:49 +msgid "Remove My Account" +msgstr "Remover minha conta" + +#: mod/removeme.php:47 +msgid "" +"This will completely remove your account. Once this has been done it is not " +"recoverable." +msgstr "Isso removerá completamente a sua conta. Uma vez feito isso, não será mais possível recuperá-la." + +#: mod/removeme.php:48 +msgid "Please enter your password for verification:" +msgstr "Por favor, digite a sua senha para verificação:" + +#: mod/editpost.php:17 mod/editpost.php:27 +msgid "Item not found" +msgstr "O item não foi encontrado" + +#: mod/editpost.php:40 +msgid "Edit post" +msgstr "Editar a publicação" + +#: mod/network.php:398 +#, php-format +msgid "Warning: This group contains %s member from an insecure network." +msgid_plural "" +"Warning: This group contains %s members from an insecure network." +msgstr[0] "Aviso: Este grupo contém %s membro de uma rede insegura." +msgstr[1] "Aviso: Este grupo contém %s membros de uma rede insegura." + +#: mod/network.php:401 +msgid "Private messages to this group are at risk of public disclosure." +msgstr "Mensagens privadas para este grupo correm o risco de sofrerem divulgação pública." + +#: mod/network.php:468 mod/content.php:119 +msgid "No such group" +msgstr "Este grupo não existe" + +#: mod/network.php:495 mod/group.php:193 mod/content.php:130 +msgid "Group is empty" +msgstr "O grupo está vazio" + +#: mod/network.php:499 mod/content.php:135 +#, php-format +msgid "Group: %s" +msgstr "Grupo: %s" + +#: mod/network.php:527 +msgid "Private messages to this person are at risk of public disclosure." +msgstr "Mensagens privadas para esta pessoa correm o risco de sofrerem divulgação pública." + +#: mod/network.php:532 +msgid "Invalid contact." +msgstr "Contato inválido." + +#: mod/network.php:825 +msgid "Commented Order" +msgstr "Ordem dos comentários" + +#: mod/network.php:828 +msgid "Sort by Comment Date" +msgstr "Ordenar pela data do comentário" + +#: mod/network.php:833 +msgid "Posted Order" +msgstr "Ordem das publicações" + +#: mod/network.php:836 +msgid "Sort by Post Date" +msgstr "Ordenar pela data de publicação" + +#: mod/network.php:847 +msgid "Posts that mention or involve you" +msgstr "Publicações que mencionem ou envolvam você" + +#: mod/network.php:855 +msgid "New" +msgstr "Nova" + +#: mod/network.php:858 +msgid "Activity Stream - by date" +msgstr "Fluxo de atividades - por data" + +#: mod/network.php:866 +msgid "Shared Links" +msgstr "Links compartilhados" + +#: mod/network.php:869 +msgid "Interesting Links" +msgstr "Links interessantes" + +#: mod/network.php:877 +msgid "Starred" +msgstr "Destacada" + +#: mod/network.php:880 +msgid "Favourite Posts" +msgstr "Publicações favoritas" + +#: mod/community.php:27 +msgid "Not available." +msgstr "Não disponível." + +#: mod/localtime.php:24 +msgid "Time Conversion" +msgstr "Conversão de tempo" + +#: mod/localtime.php:26 +msgid "" +"Friendica provides this service for sharing events with other networks and " +"friends in unknown timezones." +msgstr "Friendica oferece esse serviço para compartilhar eventos com outras redes e amigos em fusos horários desconhecidos." + +#: mod/localtime.php:30 +#, php-format +msgid "UTC time: %s" +msgstr "Hora UTC: %s" + +#: mod/localtime.php:33 +#, php-format +msgid "Current timezone: %s" +msgstr "Fuso horário atual: %s" + +#: mod/localtime.php:36 +#, php-format +msgid "Converted localtime: %s" +msgstr "Horário local convertido: %s" + +#: mod/localtime.php:41 +msgid "Please select your timezone:" +msgstr "Por favor, selecione seu fuso horário:" + +#: mod/bookmarklet.php:41 +msgid "The post was created" +msgstr "O texto foi criado" + +#: mod/group.php:29 +msgid "Group created." +msgstr "O grupo foi criado." + +#: mod/group.php:35 +msgid "Could not create group." +msgstr "Não foi possível criar o grupo." + +#: mod/group.php:47 mod/group.php:140 +msgid "Group not found." +msgstr "O grupo não foi encontrado." + +#: mod/group.php:60 +msgid "Group name changed." +msgstr "O nome do grupo foi alterado." + +#: mod/group.php:87 +msgid "Save Group" +msgstr "Salvar o grupo" + +#: mod/group.php:93 +msgid "Create a group of contacts/friends." +msgstr "Criar um grupo de contatos/amigos." + +#: mod/group.php:113 +msgid "Group removed." +msgstr "O grupo foi removido." + +#: mod/group.php:115 +msgid "Unable to remove group." +msgstr "Não foi possível remover o grupo." + +#: mod/group.php:177 +msgid "Group Editor" +msgstr "Editor de grupo" + +#: mod/group.php:190 +msgid "Members" +msgstr "Membros" + +#: mod/group.php:192 mod/contacts.php:690 +msgid "All Contacts" +msgstr "Todos os contatos" + +#: mod/wallmessage.php:42 mod/wallmessage.php:112 +#, php-format +msgid "Number of daily wall messages for %s exceeded. Message failed." +msgstr "O número diário de mensagens do mural de %s foi excedido. Não foi possível enviar a mensagem." + +#: mod/wallmessage.php:56 mod/message.php:71 +msgid "No recipient selected." +msgstr "Não foi selecionado nenhum destinatário." + +#: mod/wallmessage.php:59 +msgid "Unable to check your home location." +msgstr "Não foi possível verificar a sua localização." + +#: mod/wallmessage.php:62 mod/message.php:78 +msgid "Message could not be sent." +msgstr "Não foi possível enviar a mensagem." + +#: mod/wallmessage.php:65 mod/message.php:81 +msgid "Message collection failure." +msgstr "Falha na coleta de mensagens." + +#: mod/wallmessage.php:68 mod/message.php:84 +msgid "Message sent." +msgstr "A mensagem foi enviada." + +#: mod/wallmessage.php:86 mod/wallmessage.php:95 +msgid "No recipient." +msgstr "Nenhum destinatário." + +#: mod/wallmessage.php:142 mod/message.php:341 +msgid "Send Private Message" +msgstr "Enviar mensagem privada" + +#: mod/wallmessage.php:143 +#, php-format +msgid "" +"If you wish for %s to respond, please check that the privacy settings on " +"your site allow private mail from unknown senders." +msgstr "Caso você deseje uma resposta de %s, por favor verifique se as configurações de privacidade em seu site permitem o recebimento de mensagens de remetentes desconhecidos." + +#: mod/wallmessage.php:144 mod/message.php:342 mod/message.php:536 +msgid "To:" +msgstr "Para:" + +#: mod/wallmessage.php:145 mod/message.php:347 mod/message.php:538 +msgid "Subject:" +msgstr "Assunto:" + +#: mod/share.php:38 +msgid "link" +msgstr "ligação" + +#: mod/api.php:76 mod/api.php:102 +msgid "Authorize application connection" +msgstr "Autorizar a conexão com a aplicação" + +#: mod/api.php:77 +msgid "Return to your app and insert this Securty Code:" +msgstr "Volte para a sua aplicação e digite este código de segurança:" + +#: mod/api.php:89 +msgid "Please login to continue." +msgstr "Por favor, autentique-se para continuar." + +#: mod/api.php:104 +msgid "" +"Do you want to authorize this application to access your posts and contacts," +" and/or create new posts for you?" +msgstr "Deseja autorizar esta aplicação a acessar suas publicações e contatos e/ou criar novas publicações para você?" + +#: mod/babel.php:17 +msgid "Source (bbcode) text:" +msgstr "Texto fonte (bbcode):" + +#: mod/babel.php:23 +msgid "Source (Diaspora) text to convert to BBcode:" +msgstr "Texto fonte (Diaspora) a converter para BBcode:" + +#: mod/babel.php:31 +msgid "Source input: " +msgstr "Entrada fonte:" + +#: mod/babel.php:35 +msgid "bb2html (raw HTML): " +msgstr "bb2html (HTML puro):" + +#: mod/babel.php:39 +msgid "bb2html: " +msgstr "bb2html: " + +#: mod/babel.php:43 +msgid "bb2html2bb: " +msgstr "bb2html2bb: " + +#: mod/babel.php:47 +msgid "bb2md: " +msgstr "bb2md: " + +#: mod/babel.php:51 +msgid "bb2md2html: " +msgstr "bb2md2html: " + +#: mod/babel.php:55 +msgid "bb2dia2bb: " +msgstr "bb2dia2bb: " + +#: mod/babel.php:59 +msgid "bb2md2html2bb: " +msgstr "bb2md2html2bb: " + +#: mod/babel.php:69 +msgid "Source input (Diaspora format): " +msgstr "Fonte de entrada (formato Diaspora):" + +#: mod/babel.php:74 +msgid "diaspora2bb: " +msgstr "diaspora2bb: " + +#: mod/ostatus_subscribe.php:14 +msgid "Subscribing to OStatus contacts" +msgstr "" + +#: mod/ostatus_subscribe.php:25 +msgid "No contact provided." +msgstr "" + +#: mod/ostatus_subscribe.php:30 +msgid "Couldn't fetch information for contact." +msgstr "" + +#: mod/ostatus_subscribe.php:38 +msgid "Couldn't fetch friends for contact." +msgstr "" + +#: mod/ostatus_subscribe.php:65 +msgid "success" +msgstr "sucesso" + +#: mod/ostatus_subscribe.php:67 +msgid "failed" +msgstr "" + +#: mod/ostatus_subscribe.php:69 mod/content.php:792 object/Item.php:245 +msgid "ignored" +msgstr "Ignorado" + +#: mod/dfrn_poll.php:104 mod/dfrn_poll.php:537 +#, php-format +msgid "%1$s welcomes %2$s" +msgstr "%1$s dá as boas vinda à %2$s" + +#: mod/profile.php:179 msgid "Tips for New Members" msgstr "Dicas para novos membros" -#: ../../mod/videos.php:115 ../../mod/dfrn_request.php:762 -#: ../../mod/viewcontacts.php:19 ../../mod/photos.php:920 -#: ../../mod/search.php:89 ../../mod/community.php:18 -#: ../../mod/display.php:212 ../../mod/directory.php:33 -msgid "Public access denied." -msgstr "Acesso público negado." +#: mod/message.php:75 +msgid "Unable to locate contact information." +msgstr "Não foi possível localizar informação do contato." -#: ../../mod/videos.php:125 -msgid "No videos selected" -msgstr "Nenhum vídeo selecionado" +#: mod/message.php:215 +msgid "Do you really want to delete this message?" +msgstr "Você realmente deseja deletar essa mensagem?" -#: ../../mod/videos.php:226 ../../mod/photos.php:1031 -msgid "Access to this item is restricted." -msgstr "O acesso a este item é restrito." +#: mod/message.php:235 +msgid "Message deleted." +msgstr "A mensagem foi excluída." -#: ../../mod/videos.php:308 ../../mod/photos.php:1808 -msgid "View Album" -msgstr "Ver álbum" +#: mod/message.php:266 +msgid "Conversation removed." +msgstr "A conversa foi removida." -#: ../../mod/videos.php:317 -msgid "Recent Videos" -msgstr "Vídeos Recentes" +#: mod/message.php:383 +msgid "No messages." +msgstr "Nenhuma mensagem." -#: ../../mod/videos.php:319 -msgid "Upload New Videos" -msgstr "Envie Novos Vídeos" +#: mod/message.php:426 +msgid "Message not available." +msgstr "A mensagem não está disponível." -#: ../../mod/manage.php:106 +#: mod/message.php:503 +msgid "Delete message" +msgstr "Excluir a mensagem" + +#: mod/message.php:529 mod/message.php:609 +msgid "Delete conversation" +msgstr "Excluir conversa" + +#: mod/message.php:531 +msgid "" +"No secure communications available. You may be able to " +"respond from the sender's profile page." +msgstr "Não foi encontrada nenhuma comunicação segura. Você pode ser capaz de responder a partir da página de perfil do remetente." + +#: mod/message.php:535 +msgid "Send Reply" +msgstr "Enviar resposta" + +#: mod/message.php:579 +#, php-format +msgid "Unknown sender - %s" +msgstr "Remetente desconhecido - %s" + +#: mod/message.php:581 +#, php-format +msgid "You and %s" +msgstr "Você e %s" + +#: mod/message.php:583 +#, php-format +msgid "%s and You" +msgstr "%s e você" + +#: mod/message.php:612 +msgid "D, d M Y - g:i A" +msgstr "D, d M Y - g:i A" + +#: mod/message.php:615 +#, php-format +msgid "%d message" +msgid_plural "%d messages" +msgstr[0] "%d mensagem" +msgstr[1] "%d mensagens" + +#: mod/manage.php:139 msgid "Manage Identities and/or Pages" msgstr "Gerenciar identidades e/ou páginas" -#: ../../mod/manage.php:107 +#: mod/manage.php:140 msgid "" "Toggle between different identities or community/group pages which share " "your account details or which you have been granted \"manage\" permissions" msgstr "Alterne entre diferentes identidades ou páginas de comunidade/grupo que dividem detalhes da sua conta ou que você tenha fornecido permissões de \"administração\"" -#: ../../mod/manage.php:108 +#: mod/manage.php:141 msgid "Select an identity to manage: " msgstr "Selecione uma identidade para gerenciar: " -#: ../../mod/editpost.php:17 ../../mod/editpost.php:27 -msgid "Item not found" -msgstr "O item não foi encontrado" +#: mod/crepair.php:87 +msgid "Contact settings applied." +msgstr "As configurações do contato foram aplicadas." -#: ../../mod/editpost.php:39 -msgid "Edit post" -msgstr "Editar a publicação" +#: mod/crepair.php:89 +msgid "Contact update failed." +msgstr "Não foi possível atualizar o contato." -#: ../../mod/dirfind.php:26 -msgid "People Search" -msgstr "Pesquisar pessoas" +#: mod/crepair.php:114 mod/dfrn_confirm.php:122 mod/fsuggest.php:20 +#: mod/fsuggest.php:92 +msgid "Contact not found." +msgstr "O contato não foi encontrado." -#: ../../mod/dirfind.php:60 ../../mod/match.php:65 -msgid "No matches" -msgstr "Nenhuma correspondência" +#: mod/crepair.php:120 +msgid "" +"WARNING: This is highly advanced and if you enter incorrect" +" information your communications with this contact may stop working." +msgstr "ATENÇÃO: Isso é muito avançado, se você digitar informações incorretas, suas comunicações com esse contato pode parar de funcionar." -#: ../../mod/regmod.php:55 -msgid "Account approved." -msgstr "A conta foi aprovada." +#: mod/crepair.php:121 +msgid "" +"Please use your browser 'Back' button now if you are " +"uncertain what to do on this page." +msgstr "Por favor, use o botão 'Voltar' do seu navegador agora, caso você não tenha certeza do que está fazendo." -#: ../../mod/regmod.php:92 -#, php-format -msgid "Registration revoked for %s" -msgstr "O registro de %s foi revogado" +#: mod/crepair.php:134 mod/crepair.php:136 +msgid "No mirroring" +msgstr "Nenhum espelhamento" -#: ../../mod/regmod.php:104 -msgid "Please login." -msgstr "Por favor, autentique-se." +#: mod/crepair.php:134 +msgid "Mirror as forwarded posting" +msgstr "Espelhar como postagem encaminhada" -#: ../../mod/dfrn_request.php:95 +#: mod/crepair.php:134 mod/crepair.php:136 +msgid "Mirror as my own posting" +msgstr "Espelhar como minha própria postagem" + +#: mod/crepair.php:150 +msgid "Return to contact editor" +msgstr "Voltar ao editor de contatos" + +#: mod/crepair.php:152 +msgid "Refetch contact data" +msgstr "" + +#: mod/crepair.php:156 +msgid "Remote Self" +msgstr "Eu remoto" + +#: mod/crepair.php:159 +msgid "Mirror postings from this contact" +msgstr "Espelhar publicações deste contato" + +#: mod/crepair.php:161 +msgid "" +"Mark this contact as remote_self, this will cause friendica to repost new " +"entries from this contact." +msgstr "Marcar este contato como eu remoto: o Friendica replicará novas publicações desse usuário." + +#: mod/crepair.php:165 mod/admin.php:1374 mod/admin.php:1387 +#: mod/admin.php:1399 mod/admin.php:1415 mod/settings.php:665 +#: mod/settings.php:691 +msgid "Name" +msgstr "Nome" + +#: mod/crepair.php:166 +msgid "Account Nickname" +msgstr "Identificação da conta" + +#: mod/crepair.php:167 +msgid "@Tagname - overrides Name/Nickname" +msgstr "@Tagname - sobrescreve Nome/Identificação" + +#: mod/crepair.php:168 +msgid "Account URL" +msgstr "URL da conta" + +#: mod/crepair.php:169 +msgid "Friend Request URL" +msgstr "URL da requisição de amizade" + +#: mod/crepair.php:170 +msgid "Friend Confirm URL" +msgstr "URL da confirmação de amizade" + +#: mod/crepair.php:171 +msgid "Notification Endpoint URL" +msgstr "URL do ponto final da notificação" + +#: mod/crepair.php:172 +msgid "Poll/Feed URL" +msgstr "URL do captador/fonte de notícias" + +#: mod/crepair.php:173 +msgid "New photo from this URL" +msgstr "Nova imagem desta URL" + +#: mod/dfrn_request.php:100 msgid "This introduction has already been accepted." msgstr "Esta apresentação já foi aceita." -#: ../../mod/dfrn_request.php:120 ../../mod/dfrn_request.php:518 +#: mod/dfrn_request.php:123 mod/dfrn_request.php:518 msgid "Profile location is not valid or does not contain profile information." msgstr "A localização do perfil não é válida ou não contém uma informação de perfil." -#: ../../mod/dfrn_request.php:125 ../../mod/dfrn_request.php:523 +#: mod/dfrn_request.php:128 mod/dfrn_request.php:523 msgid "Warning: profile location has no identifiable owner name." msgstr "Aviso: a localização do perfil não possui nenhum nome identificável do seu dono." -#: ../../mod/dfrn_request.php:127 ../../mod/dfrn_request.php:525 +#: mod/dfrn_request.php:130 mod/dfrn_request.php:525 msgid "Warning: profile location has no profile photo." msgstr "Aviso: a localização do perfil não possui nenhuma foto do perfil." -#: ../../mod/dfrn_request.php:130 ../../mod/dfrn_request.php:528 +#: mod/dfrn_request.php:133 mod/dfrn_request.php:528 #, 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] "O parâmetro requerido %d não foi encontrado na localização fornecida" msgstr[1] "Os parâmetros requeridos %d não foram encontrados na localização fornecida" -#: ../../mod/dfrn_request.php:172 +#: mod/dfrn_request.php:178 msgid "Introduction complete." msgstr "A apresentação foi finalizada." -#: ../../mod/dfrn_request.php:214 +#: mod/dfrn_request.php:220 msgid "Unrecoverable protocol error." msgstr "Ocorreu um erro irrecuperável de protocolo." -#: ../../mod/dfrn_request.php:242 +#: mod/dfrn_request.php:248 msgid "Profile unavailable." msgstr "O perfil não está disponível." -#: ../../mod/dfrn_request.php:267 +#: mod/dfrn_request.php:273 #, php-format msgid "%s has received too many connection requests today." msgstr "%s recebeu solicitações de conexão em excesso hoje." -#: ../../mod/dfrn_request.php:268 +#: mod/dfrn_request.php:274 msgid "Spam protection measures have been invoked." msgstr "As medidas de proteção contra spam foram ativadas." -#: ../../mod/dfrn_request.php:269 +#: mod/dfrn_request.php:275 msgid "Friends are advised to please try again in 24 hours." msgstr "Os amigos foram notificados para tentar novamente em 24 horas." -#: ../../mod/dfrn_request.php:331 +#: mod/dfrn_request.php:337 msgid "Invalid locator" msgstr "Localizador inválido" -#: ../../mod/dfrn_request.php:340 +#: mod/dfrn_request.php:346 msgid "Invalid email address." msgstr "Endereço de e-mail inválido." -#: ../../mod/dfrn_request.php:367 +#: mod/dfrn_request.php:373 msgid "This account has not been configured for email. Request failed." msgstr "Essa conta não foi configurada para e-mails. Não foi possível atender à solicitação." -#: ../../mod/dfrn_request.php:463 -msgid "Unable to resolve your name at the provided location." -msgstr "Não foi possível encontrar a sua identificação no endereço indicado." - -#: ../../mod/dfrn_request.php:476 +#: mod/dfrn_request.php:476 msgid "You have already introduced yourself here." msgstr "Você já fez a sua apresentação aqui." -#: ../../mod/dfrn_request.php:480 +#: mod/dfrn_request.php:480 #, php-format msgid "Apparently you are already friends with %s." msgstr "Aparentemente você já é amigo de %s." -#: ../../mod/dfrn_request.php:501 +#: mod/dfrn_request.php:501 msgid "Invalid profile URL." msgstr "URL de perfil inválida." -#: ../../mod/dfrn_request.php:597 +#: mod/dfrn_request.php:579 mod/contacts.php:208 +msgid "Failed to update contact record." +msgstr "Não foi possível atualizar o registro do contato." + +#: mod/dfrn_request.php:600 msgid "Your introduction has been sent." msgstr "A sua apresentação foi enviada." -#: ../../mod/dfrn_request.php:650 +#: mod/dfrn_request.php:640 +msgid "" +"Remote subscription can't be done for your network. Please subscribe " +"directly on your system." +msgstr "A sua rede não permite inscrição a distância. Inscreva-se diretamente no seu sistema." + +#: mod/dfrn_request.php:663 msgid "Please login to confirm introduction." msgstr "Por favor, autentique-se para confirmar a apresentação." -#: ../../mod/dfrn_request.php:660 +#: mod/dfrn_request.php:673 msgid "" "Incorrect identity currently logged in. Please login to " "this profile." msgstr "A identidade autenticada está incorreta. Por favor, entre como este perfil." -#: ../../mod/dfrn_request.php:671 +#: mod/dfrn_request.php:687 mod/dfrn_request.php:704 +msgid "Confirm" +msgstr "Confirmar" + +#: mod/dfrn_request.php:699 msgid "Hide this contact" msgstr "Ocultar este contato" -#: ../../mod/dfrn_request.php:674 +#: mod/dfrn_request.php:702 #, php-format msgid "Welcome home %s." msgstr "Bem-vindo(a) à sua página pessoal %s." -#: ../../mod/dfrn_request.php:675 +#: mod/dfrn_request.php:703 #, php-format msgid "Please confirm your introduction/connection request to %s." msgstr "Por favor, confirme sua solicitação de apresentação/conexão para %s." -#: ../../mod/dfrn_request.php:804 +#: mod/dfrn_request.php:832 msgid "" "Please enter your 'Identity Address' from one of the following supported " "communications networks:" msgstr "Por favor, digite seu 'Endereço de Identificação' a partir de uma das seguintes redes de comunicação suportadas:" -#: ../../mod/dfrn_request.php:824 +#: mod/dfrn_request.php:853 +#, 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 "Caso você ainda não seja membro da rede social livre, clique aqui para encontrar um site Friendica público e junte-se à nós." +"href=\"%s/siteinfo\">follow this link to find a public Friendica site and " +"join us today." +msgstr "" -#: ../../mod/dfrn_request.php:827 +#: mod/dfrn_request.php:858 msgid "Friend/Connection Request" msgstr "Solicitação de amizade/conexão" -#: ../../mod/dfrn_request.php:828 +#: mod/dfrn_request.php:859 msgid "" "Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, " "testuser@identi.ca" msgstr "Examplos: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, testuser@identi.ca" -#: ../../mod/dfrn_request.php:829 -msgid "Please answer the following:" -msgstr "Por favor, entre com as informações solicitadas:" - -#: ../../mod/dfrn_request.php:830 -#, php-format -msgid "Does %s know you?" -msgstr "%s conhece você?" - -#: ../../mod/dfrn_request.php:834 -msgid "Add a personal note:" -msgstr "Adicione uma anotação pessoal:" - -#: ../../mod/dfrn_request.php:837 +#: mod/dfrn_request.php:868 msgid "StatusNet/Federated Social Web" msgstr "StatusNet/Federated Social Web" -#: ../../mod/dfrn_request.php:839 +#: mod/dfrn_request.php:870 #, php-format msgid "" " - please do not use this form. Instead, enter %s into your Diaspora search" " bar." msgstr " - Por favor, não utilize esse formulário. Ao invés disso, digite %s na sua barra de pesquisa do Diaspora." -#: ../../mod/dfrn_request.php:840 -msgid "Your Identity Address:" -msgstr "Seu endereço de identificação:" +#: mod/content.php:325 object/Item.php:95 +msgid "This entry was edited" +msgstr "Essa entrada foi editada" -#: ../../mod/dfrn_request.php:843 -msgid "Submit Request" -msgstr "Enviar solicitação" - -#: ../../mod/fbrowser.php:113 -msgid "Files" -msgstr "Arquivos" - -#: ../../mod/api.php:76 ../../mod/api.php:102 -msgid "Authorize application connection" -msgstr "Autorizar a conexão com a aplicação" - -#: ../../mod/api.php:77 -msgid "Return to your app and insert this Securty Code:" -msgstr "Volte para a sua aplicação e digite este código de segurança:" - -#: ../../mod/api.php:89 -msgid "Please login to continue." -msgstr "Por favor, autentique-se para continuar." - -#: ../../mod/api.php:104 -msgid "" -"Do you want to authorize this application to access your posts and contacts," -" and/or create new posts for you?" -msgstr "Deseja autorizar esta aplicação a acessar suas publicações e contatos e/ou criar novas publicações para você?" - -#: ../../mod/suggest.php:27 -msgid "Do you really want to delete this suggestion?" -msgstr "Você realmente deseja deletar essa sugestão?" - -#: ../../mod/suggest.php:74 -msgid "" -"No suggestions available. If this is a new site, please try again in 24 " -"hours." -msgstr "Não existe nenhuma sugestão disponível. Se este for um site novo, por favor tente novamente em 24 horas." - -#: ../../mod/suggest.php:92 -msgid "Ignore/Hide" -msgstr "Ignorar/Ocultar" - -#: ../../mod/nogroup.php:59 -msgid "Contacts who are not members of a group" -msgstr "Contatos que não são membros de um grupo" - -#: ../../mod/fsuggest.php:20 ../../mod/fsuggest.php:92 -#: ../../mod/crepair.php:133 ../../mod/dfrn_confirm.php:120 -msgid "Contact not found." -msgstr "O contato não foi encontrado." - -#: ../../mod/fsuggest.php:63 -msgid "Friend suggestion sent." -msgstr "A sugestão de amigo foi enviada" - -#: ../../mod/fsuggest.php:97 -msgid "Suggest Friends" -msgstr "Sugerir amigos" - -#: ../../mod/fsuggest.php:99 +#: mod/content.php:621 object/Item.php:429 #, php-format -msgid "Suggest a friend for %s" -msgstr "Sugerir um amigo para %s" +msgid "%d comment" +msgid_plural "%d comments" +msgstr[0] "%d comentário" +msgstr[1] "%d comentários" -#: ../../mod/share.php:44 -msgid "link" -msgstr "ligação" +#: mod/content.php:638 mod/photos.php:1405 object/Item.php:117 +msgid "Private Message" +msgstr "Mensagem privada" -#: ../../mod/viewcontacts.php:41 -msgid "No contacts." -msgstr "Nenhum contato." +#: mod/content.php:702 mod/photos.php:1594 object/Item.php:263 +msgid "I like this (toggle)" +msgstr "Eu gostei disso (alternar)" -#: ../../mod/admin.php:57 +#: mod/content.php:702 object/Item.php:263 +msgid "like" +msgstr "gostei" + +#: mod/content.php:703 mod/photos.php:1595 object/Item.php:264 +msgid "I don't like this (toggle)" +msgstr "Eu não gostei disso (alternar)" + +#: mod/content.php:703 object/Item.php:264 +msgid "dislike" +msgstr "desgostar" + +#: mod/content.php:705 object/Item.php:266 +msgid "Share this" +msgstr "Compartilhar isso" + +#: mod/content.php:705 object/Item.php:266 +msgid "share" +msgstr "compartilhar" + +#: mod/content.php:725 mod/photos.php:1614 mod/photos.php:1662 +#: mod/photos.php:1750 object/Item.php:717 +msgid "This is you" +msgstr "Este(a) é você" + +#: mod/content.php:727 mod/content.php:945 mod/photos.php:1616 +#: mod/photos.php:1664 mod/photos.php:1752 object/Item.php:403 +#: object/Item.php:719 boot.php:902 +msgid "Comment" +msgstr "Comentar" + +#: mod/content.php:729 object/Item.php:721 +msgid "Bold" +msgstr "Negrito" + +#: mod/content.php:730 object/Item.php:722 +msgid "Italic" +msgstr "Itálico" + +#: mod/content.php:731 object/Item.php:723 +msgid "Underline" +msgstr "Sublinhado" + +#: mod/content.php:732 object/Item.php:724 +msgid "Quote" +msgstr "Citação" + +#: mod/content.php:733 object/Item.php:725 +msgid "Code" +msgstr "Código" + +#: mod/content.php:734 object/Item.php:726 +msgid "Image" +msgstr "Imagem" + +#: mod/content.php:735 object/Item.php:727 +msgid "Link" +msgstr "Link" + +#: mod/content.php:736 object/Item.php:728 +msgid "Video" +msgstr "Vídeo" + +#: mod/content.php:746 mod/settings.php:725 object/Item.php:122 +#: object/Item.php:124 +msgid "Edit" +msgstr "Editar" + +#: mod/content.php:771 object/Item.php:227 +msgid "add star" +msgstr "destacar" + +#: mod/content.php:772 object/Item.php:228 +msgid "remove star" +msgstr "remover o destaque" + +#: mod/content.php:773 object/Item.php:229 +msgid "toggle star status" +msgstr "ativa/desativa o destaque" + +#: mod/content.php:776 object/Item.php:232 +msgid "starred" +msgstr "marcado com estrela" + +#: mod/content.php:777 mod/content.php:798 object/Item.php:252 +msgid "add tag" +msgstr "adicionar etiqueta" + +#: mod/content.php:787 object/Item.php:240 +msgid "ignore thread" +msgstr "ignorar tópico" + +#: mod/content.php:788 object/Item.php:241 +msgid "unignore thread" +msgstr "deixar de ignorar tópico" + +#: mod/content.php:789 object/Item.php:242 +msgid "toggle ignore status" +msgstr "alternar status ignorar" + +#: mod/content.php:803 object/Item.php:137 +msgid "save to folder" +msgstr "salvar na pasta" + +#: mod/content.php:848 object/Item.php:201 +msgid "I will attend" +msgstr "Eu vou" + +#: mod/content.php:848 object/Item.php:201 +msgid "I will not attend" +msgstr "Eu não vou" + +#: mod/content.php:848 object/Item.php:201 +msgid "I might attend" +msgstr "Eu estou pensando em ir" + +#: mod/content.php:912 object/Item.php:369 +msgid "to" +msgstr "para" + +#: mod/content.php:913 object/Item.php:371 +msgid "Wall-to-Wall" +msgstr "Mural-para-mural" + +#: mod/content.php:914 object/Item.php:372 +msgid "via Wall-To-Wall:" +msgstr "via Mural-para-mural" + +#: mod/admin.php:92 msgid "Theme settings updated." msgstr "As configurações do tema foram atualizadas." -#: ../../mod/admin.php:104 ../../mod/admin.php:619 +#: mod/admin.php:156 mod/admin.php:925 msgid "Site" msgstr "Site" -#: ../../mod/admin.php:105 ../../mod/admin.php:998 ../../mod/admin.php:1013 +#: mod/admin.php:157 mod/admin.php:869 mod/admin.php:1382 mod/admin.php:1397 msgid "Users" msgstr "Usuários" -#: ../../mod/admin.php:107 ../../mod/admin.php:1323 ../../mod/admin.php:1357 +#: mod/admin.php:158 mod/admin.php:1499 mod/admin.php:1559 mod/settings.php:74 +msgid "Plugins" +msgstr "Plugins" + +#: mod/admin.php:159 mod/admin.php:1757 mod/admin.php:1807 msgid "Themes" msgstr "Temas" -#: ../../mod/admin.php:108 +#: mod/admin.php:160 mod/settings.php:52 +msgid "Additional features" +msgstr "Funcionalidades adicionais" + +#: mod/admin.php:161 msgid "DB updates" msgstr "Atualizações do BD" -#: ../../mod/admin.php:123 ../../mod/admin.php:132 ../../mod/admin.php:1444 +#: mod/admin.php:162 mod/admin.php:397 +msgid "Inspect Queue" +msgstr "" + +#: mod/admin.php:163 mod/admin.php:363 +msgid "Federation Statistics" +msgstr "" + +#: mod/admin.php:177 mod/admin.php:188 mod/admin.php:1875 msgid "Logs" msgstr "Relatórios" -#: ../../mod/admin.php:124 +#: mod/admin.php:178 mod/admin.php:1942 +msgid "View Logs" +msgstr "" + +#: mod/admin.php:179 msgid "probe address" msgstr "prova endereço" -#: ../../mod/admin.php:125 +#: mod/admin.php:180 msgid "check webfinger" msgstr "verifica webfinger" -#: ../../mod/admin.php:131 +#: mod/admin.php:187 msgid "Plugin Features" msgstr "Recursos do plugin" -#: ../../mod/admin.php:133 +#: mod/admin.php:189 msgid "diagnostics" msgstr "diagnóstico" -#: ../../mod/admin.php:134 +#: mod/admin.php:190 msgid "User registrations waiting for confirmation" msgstr "Cadastros de novos usuários aguardando confirmação" -#: ../../mod/admin.php:193 ../../mod/admin.php:952 -msgid "Normal Account" -msgstr "Conta normal" +#: mod/admin.php:356 +msgid "" +"This page offers you some numbers to the known part of the federated social " +"network your Friendica node is part of. These numbers are not complete but " +"only reflect the part of the network your node is aware of." +msgstr "" -#: ../../mod/admin.php:194 ../../mod/admin.php:953 -msgid "Soapbox Account" -msgstr "Conta de vitrine" +#: mod/admin.php:357 +msgid "" +"The Auto Discovered Contact Directory feature is not enabled, it " +"will improve the data displayed here." +msgstr "" -#: ../../mod/admin.php:195 ../../mod/admin.php:954 -msgid "Community/Celebrity Account" -msgstr "Conta de comunidade/celebridade" - -#: ../../mod/admin.php:196 ../../mod/admin.php:955 -msgid "Automatic Friend Account" -msgstr "Conta de amigo automático" - -#: ../../mod/admin.php:197 -msgid "Blog Account" -msgstr "Conta de blog" - -#: ../../mod/admin.php:198 -msgid "Private Forum" -msgstr "Fórum privado" - -#: ../../mod/admin.php:217 -msgid "Message queues" -msgstr "Fila de mensagens" - -#: ../../mod/admin.php:222 ../../mod/admin.php:618 ../../mod/admin.php:997 -#: ../../mod/admin.php:1101 ../../mod/admin.php:1154 ../../mod/admin.php:1322 -#: ../../mod/admin.php:1356 ../../mod/admin.php:1443 +#: mod/admin.php:362 mod/admin.php:396 mod/admin.php:460 mod/admin.php:924 +#: mod/admin.php:1381 mod/admin.php:1498 mod/admin.php:1558 mod/admin.php:1756 +#: mod/admin.php:1806 mod/admin.php:1874 mod/admin.php:1941 msgid "Administration" msgstr "Administração" -#: ../../mod/admin.php:223 +#: mod/admin.php:369 +#, php-format +msgid "Currently this node is aware of %d nodes from the following platforms:" +msgstr "" + +#: mod/admin.php:399 +msgid "ID" +msgstr "ID" + +#: mod/admin.php:400 +msgid "Recipient Name" +msgstr "" + +#: mod/admin.php:401 +msgid "Recipient Profile" +msgstr "" + +#: mod/admin.php:403 +msgid "Created" +msgstr "" + +#: mod/admin.php:404 +msgid "Last Tried" +msgstr "" + +#: mod/admin.php:405 +msgid "" +"This page lists the content of the queue for outgoing postings. These are " +"postings the initial delivery failed for. They will be resend later and " +"eventually deleted if the delivery fails permanently." +msgstr "" + +#: mod/admin.php:424 mod/admin.php:1330 +msgid "Normal Account" +msgstr "Conta normal" + +#: mod/admin.php:425 mod/admin.php:1331 +msgid "Soapbox Account" +msgstr "Conta de vitrine" + +#: mod/admin.php:426 mod/admin.php:1332 +msgid "Community/Celebrity Account" +msgstr "Conta de comunidade/celebridade" + +#: mod/admin.php:427 mod/admin.php:1333 +msgid "Automatic Friend Account" +msgstr "Conta de amigo automático" + +#: mod/admin.php:428 +msgid "Blog Account" +msgstr "Conta de blog" + +#: mod/admin.php:429 +msgid "Private Forum" +msgstr "Fórum privado" + +#: mod/admin.php:455 +msgid "Message queues" +msgstr "Fila de mensagens" + +#: mod/admin.php:461 msgid "Summary" msgstr "Resumo" -#: ../../mod/admin.php:225 +#: mod/admin.php:463 msgid "Registered users" msgstr "Usuários registrados" -#: ../../mod/admin.php:227 +#: mod/admin.php:465 msgid "Pending registrations" msgstr "Registros pendentes" -#: ../../mod/admin.php:228 +#: mod/admin.php:466 msgid "Version" msgstr "Versão" -#: ../../mod/admin.php:232 +#: mod/admin.php:471 msgid "Active plugins" msgstr "Plugins ativos" -#: ../../mod/admin.php:255 +#: mod/admin.php:494 msgid "Can not parse base url. Must have at least ://" msgstr "Não foi possível analisar a URL. Ela deve conter pelo menos ://" -#: ../../mod/admin.php:516 +#: mod/admin.php:797 +msgid "RINO2 needs mcrypt php extension to work." +msgstr "" + +#: mod/admin.php:805 msgid "Site settings updated." msgstr "As configurações do site foram atualizadas." -#: ../../mod/admin.php:562 +#: mod/admin.php:833 mod/settings.php:919 +msgid "No special theme for mobile devices" +msgstr "Nenhum tema especial para dispositivos móveis" + +#: mod/admin.php:852 msgid "No community page" msgstr "Sem página de comunidade" -#: ../../mod/admin.php:563 +#: mod/admin.php:853 msgid "Public postings from users of this site" msgstr "Textos públicos de usuários deste sítio" -#: ../../mod/admin.php:564 +#: mod/admin.php:854 msgid "Global community page" msgstr "Página global da comunidade" -#: ../../mod/admin.php:570 +#: mod/admin.php:859 mod/contacts.php:530 +msgid "Never" +msgstr "Nunca" + +#: mod/admin.php:860 msgid "At post arrival" msgstr "Na chegada da publicação" -#: ../../mod/admin.php:579 +#: mod/admin.php:868 mod/contacts.php:557 +msgid "Disabled" +msgstr "Desabilitado" + +#: mod/admin.php:870 +msgid "Users, Global Contacts" +msgstr "Usuários, Contatos Globais" + +#: mod/admin.php:871 +msgid "Users, Global Contacts/fallback" +msgstr "Usuários, Contatos Globais/plano B" + +#: mod/admin.php:875 +msgid "One month" +msgstr "Um mês" + +#: mod/admin.php:876 +msgid "Three months" +msgstr "Três meses" + +#: mod/admin.php:877 +msgid "Half a year" +msgstr "Seis meses" + +#: mod/admin.php:878 +msgid "One year" +msgstr "Um ano" + +#: mod/admin.php:883 msgid "Multi user instance" msgstr "Instância multi usuário" -#: ../../mod/admin.php:602 +#: mod/admin.php:906 msgid "Closed" msgstr "Fechado" -#: ../../mod/admin.php:603 +#: mod/admin.php:907 msgid "Requires approval" msgstr "Requer aprovação" -#: ../../mod/admin.php:604 +#: mod/admin.php:908 msgid "Open" msgstr "Aberto" -#: ../../mod/admin.php:608 +#: mod/admin.php:912 msgid "No SSL policy, links will track page SSL state" msgstr "Nenhuma política de SSL, os links irão rastrear o estado SSL da página" -#: ../../mod/admin.php:609 +#: mod/admin.php:913 msgid "Force all links to use SSL" msgstr "Forçar todos os links a utilizar SSL" -#: ../../mod/admin.php:610 +#: mod/admin.php:914 msgid "Self-signed certificate, use SSL for local links only (discouraged)" msgstr "Certificado auto-assinado, usar SSL somente para links locais (não recomendado)" -#: ../../mod/admin.php:622 +#: mod/admin.php:926 mod/admin.php:1560 mod/admin.php:1808 mod/admin.php:1876 +#: mod/admin.php:2025 mod/settings.php:663 mod/settings.php:773 +#: mod/settings.php:820 mod/settings.php:889 mod/settings.php:976 +#: mod/settings.php:1214 +msgid "Save Settings" +msgstr "Salvar configurações" + +#: mod/admin.php:927 mod/register.php:263 +msgid "Registration" +msgstr "Registro" + +#: mod/admin.php:928 msgid "File upload" msgstr "Envio de arquivo" -#: ../../mod/admin.php:623 +#: mod/admin.php:929 msgid "Policies" msgstr "Políticas" -#: ../../mod/admin.php:624 -msgid "Advanced" -msgstr "Avançado" +#: mod/admin.php:931 +msgid "Auto Discovered Contact Directory" +msgstr "" -#: ../../mod/admin.php:625 +#: mod/admin.php:932 msgid "Performance" msgstr "Performance" -#: ../../mod/admin.php:626 +#: mod/admin.php:933 +msgid "Worker" +msgstr "" + +#: mod/admin.php:934 msgid "" "Relocate - WARNING: advanced function. Could make this server unreachable." msgstr "Relocação - ATENÇÃO: função avançada. Pode tornar esse servidor inacessível." -#: ../../mod/admin.php:629 +#: mod/admin.php:937 msgid "Site name" msgstr "Nome do site" -#: ../../mod/admin.php:630 +#: mod/admin.php:938 msgid "Host name" msgstr "Nome do host" -#: ../../mod/admin.php:631 +#: mod/admin.php:939 msgid "Sender Email" msgstr "enviador de email" -#: ../../mod/admin.php:632 +#: mod/admin.php:939 +msgid "" +"The email address your server shall use to send notification emails from." +msgstr "" + +#: mod/admin.php:940 msgid "Banner/Logo" msgstr "Banner/Logo" -#: ../../mod/admin.php:633 +#: mod/admin.php:941 msgid "Shortcut icon" msgstr "ícone de atalho" -#: ../../mod/admin.php:634 +#: mod/admin.php:941 +msgid "Link to an icon that will be used for browsers." +msgstr "" + +#: mod/admin.php:942 msgid "Touch icon" msgstr "ícone de toque" -#: ../../mod/admin.php:635 +#: mod/admin.php:942 +msgid "Link to an icon that will be used for tablets and mobiles." +msgstr "" + +#: mod/admin.php:943 msgid "Additional Info" msgstr "Informação adicional" -#: ../../mod/admin.php:635 +#: mod/admin.php:943 +#, php-format msgid "" "For public servers: you can add additional information here that will be " -"listed at dir.friendica.com/siteinfo." -msgstr "Para servidores públicos: você pode adicionar informações aqui que serão listadas em dir.friendica.com/siteinfo." +"listed at %s/siteinfo." +msgstr "" -#: ../../mod/admin.php:636 +#: mod/admin.php:944 msgid "System language" msgstr "Idioma do sistema" -#: ../../mod/admin.php:637 +#: mod/admin.php:945 msgid "System theme" msgstr "Tema do sistema" -#: ../../mod/admin.php:637 +#: mod/admin.php:945 msgid "" "Default system theme - may be over-ridden by user profiles - change theme settings" msgstr "Tema padrão do sistema. Pode ser substituído nos perfis de usuário - alterar configurações do tema" -#: ../../mod/admin.php:638 +#: mod/admin.php:946 msgid "Mobile system theme" msgstr "Tema do sistema para dispositivos móveis" -#: ../../mod/admin.php:638 +#: mod/admin.php:946 msgid "Theme for mobile devices" msgstr "Tema para dispositivos móveis" -#: ../../mod/admin.php:639 +#: mod/admin.php:947 msgid "SSL link policy" msgstr "Política de link SSL" -#: ../../mod/admin.php:639 +#: mod/admin.php:947 msgid "Determines whether generated links should be forced to use SSL" msgstr "Determina se os links gerados devem ser forçados a utilizar SSL" -#: ../../mod/admin.php:640 +#: mod/admin.php:948 msgid "Force SSL" msgstr "Forçar SSL" -#: ../../mod/admin.php:640 +#: mod/admin.php:948 msgid "" "Force all Non-SSL requests to SSL - Attention: on some systems it could lead" " to endless loops." msgstr "Forçar todas as solicitações não-SSL para SSL - Atenção: em alguns sistemas isso pode levar a loops infinitos." -#: ../../mod/admin.php:641 +#: mod/admin.php:949 msgid "Old style 'Share'" msgstr "Estilo antigo do 'Compartilhar' " -#: ../../mod/admin.php:641 +#: mod/admin.php:949 msgid "Deactivates the bbcode element 'share' for repeating items." msgstr "Desativa o elemento bbcode 'compartilhar' para repetir ítens." -#: ../../mod/admin.php:642 +#: mod/admin.php:950 msgid "Hide help entry from navigation menu" msgstr "Oculta a entrada 'Ajuda' do menu de navegação" -#: ../../mod/admin.php:642 +#: mod/admin.php:950 msgid "" "Hides the menu entry for the Help pages from the navigation menu. You can " "still access it calling /help directly." msgstr "Oculta a entrada de menu para as páginas de Ajuda do menu de navegação. Ainda será possível acessá-las chamando /help diretamente." -#: ../../mod/admin.php:643 +#: mod/admin.php:951 msgid "Single user instance" msgstr "Instância de usuário único" -#: ../../mod/admin.php:643 +#: mod/admin.php:951 msgid "Make this instance multi-user or single-user for the named user" msgstr "Faça essa instância multiusuário ou usuário único para o usuário em questão" -#: ../../mod/admin.php:644 +#: mod/admin.php:952 msgid "Maximum image size" msgstr "Tamanho máximo da imagem" -#: ../../mod/admin.php:644 +#: mod/admin.php:952 msgid "" "Maximum size in bytes of uploaded images. Default is 0, which means no " "limits." msgstr "Tamanho máximo, em bytes, das imagens enviadas. O padrão é 0, o que significa sem limites" -#: ../../mod/admin.php:645 +#: mod/admin.php:953 msgid "Maximum image length" msgstr "Tamanho máximo da imagem" -#: ../../mod/admin.php:645 +#: mod/admin.php:953 msgid "" "Maximum length in pixels of the longest side of uploaded images. Default is " "-1, which means no limits." msgstr "Tamanho máximo em pixels do lado mais largo das imagens enviadas. O padrão é -1, que significa sem limites." -#: ../../mod/admin.php:646 +#: mod/admin.php:954 msgid "JPEG image quality" msgstr "Qualidade da imagem JPEG" -#: ../../mod/admin.php:646 +#: mod/admin.php:954 msgid "" "Uploaded JPEGS will be saved at this quality setting [0-100]. Default is " "100, which is full quality." msgstr "Imagens JPEG enviadas serão salvas com essa qualidade [0-100]. O padrão é 100, que significa a melhor qualidade." -#: ../../mod/admin.php:648 +#: mod/admin.php:956 msgid "Register policy" msgstr "Política de registro" -#: ../../mod/admin.php:649 +#: mod/admin.php:957 msgid "Maximum Daily Registrations" msgstr "Registros Diários Máximos" -#: ../../mod/admin.php:649 +#: mod/admin.php:957 msgid "" "If registration is permitted above, this sets the maximum number of new user" " registrations to accept per day. If register is set to closed, this " "setting has no effect." msgstr "Se o registro é permitido acima, isso configura o número máximo de registros de novos usuários a serem aceitos por dia. Se o registro está configurado para 'fechado/closed' , essa configuração não tem efeito." -#: ../../mod/admin.php:650 +#: mod/admin.php:958 msgid "Register text" msgstr "Texto de registro" -#: ../../mod/admin.php:650 +#: mod/admin.php:958 msgid "Will be displayed prominently on the registration page." msgstr "Será exibido com destaque na página de registro." -#: ../../mod/admin.php:651 +#: mod/admin.php:959 msgid "Accounts abandoned after x days" msgstr "Contas abandonadas após x dias" -#: ../../mod/admin.php:651 +#: mod/admin.php:959 msgid "" "Will not waste system resources polling external sites for abandonded " "accounts. Enter 0 for no time limit." msgstr "Não desperdiçará recursos do sistema captando de sites externos para contas abandonadas. Digite 0 para nenhum limite de tempo." -#: ../../mod/admin.php:652 +#: mod/admin.php:960 msgid "Allowed friend domains" msgstr "Domínios de amigos permitidos" -#: ../../mod/admin.php:652 +#: mod/admin.php:960 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 dos domínios que têm permissão para estabelecer amizades com esse site, separados por vírgula. Caracteres curinga são aceitos. Deixe em branco para permitir qualquer domínio." -#: ../../mod/admin.php:653 +#: mod/admin.php:961 msgid "Allowed email domains" msgstr "Domínios de e-mail permitidos" -#: ../../mod/admin.php:653 +#: mod/admin.php:961 msgid "" "Comma separated list of domains which are allowed in email addresses for " "registrations to this site. Wildcards are accepted. Empty to allow any " "domains" msgstr "Lista de domínios separados por vírgula, que são permitidos em endereços de e-mail para registro nesse site. Caracteres-curinga são aceitos. Vazio para aceitar qualquer domínio" -#: ../../mod/admin.php:654 +#: mod/admin.php:962 msgid "Block public" msgstr "Bloquear acesso público" -#: ../../mod/admin.php:654 +#: mod/admin.php:962 msgid "" "Check to block public access to all otherwise public personal pages on this " "site unless you are currently logged in." msgstr "Marque para bloquear o acesso público a todas as páginas desse site, com exceção das páginas pessoais públicas, a não ser que a pessoa esteja autenticada." -#: ../../mod/admin.php:655 +#: mod/admin.php:963 msgid "Force publish" msgstr "Forçar a listagem" -#: ../../mod/admin.php:655 +#: mod/admin.php:963 msgid "" "Check to force all profiles on this site to be listed in the site directory." msgstr "Marque para forçar todos os perfis desse site a serem listados no diretório do site." -#: ../../mod/admin.php:656 -msgid "Global directory update URL" -msgstr "URL de atualização do diretório global" +#: mod/admin.php:964 +msgid "Global directory URL" +msgstr "" -#: ../../mod/admin.php:656 +#: mod/admin.php:964 msgid "" -"URL to update the global directory. If this is not set, the global directory" -" is completely unavailable to the application." -msgstr "URL para atualizar o diretório global. Se isso não for definido, o diretório global não estará disponível neste site." +"URL to the global directory. If this is not set, the global directory is " +"completely unavailable to the application." +msgstr "" -#: ../../mod/admin.php:657 +#: mod/admin.php:965 msgid "Allow threaded items" msgstr "Habilita itens aninhados" -#: ../../mod/admin.php:657 +#: mod/admin.php:965 msgid "Allow infinite level threading for items on this site." msgstr "Habilita nível infinito de aninhamento (threading) para itens." -#: ../../mod/admin.php:658 +#: mod/admin.php:966 msgid "Private posts by default for new users" msgstr "Publicações privadas por padrão para novos usuários" -#: ../../mod/admin.php:658 +#: mod/admin.php:966 msgid "" "Set default post permissions for all new members to the default privacy " "group rather than public." msgstr "Define as permissões padrão de publicação de todos os novos membros para o grupo de privacidade padrão, ao invés de torná-las públicas." -#: ../../mod/admin.php:659 +#: mod/admin.php:967 msgid "Don't include post content in email notifications" msgstr "Não incluir o conteúdo da postagem nas notificações de email" -#: ../../mod/admin.php:659 +#: mod/admin.php:967 msgid "" "Don't include the content of a post/comment/private message/etc. in the " "email notifications that are sent out from this site, as a privacy measure." msgstr "Não incluir o conteúdo de uma postagem/comentário/mensagem privada/etc. em notificações de email que são enviadas para fora desse sítio, como medida de segurança." -#: ../../mod/admin.php:660 +#: mod/admin.php:968 msgid "Disallow public access to addons listed in the apps menu." msgstr "Disabilita acesso público a addons listados no menu de aplicativos." -#: ../../mod/admin.php:660 +#: mod/admin.php:968 msgid "" "Checking this box will restrict addons listed in the apps menu to members " "only." msgstr "Marcar essa caixa ira restringir os addons listados no menu de aplicativos aos membros somente." -#: ../../mod/admin.php:661 +#: mod/admin.php:969 msgid "Don't embed private images in posts" msgstr "Não inclua imagens privadas em publicações" -#: ../../mod/admin.php:661 +#: mod/admin.php:969 msgid "" "Don't replace locally-hosted private photos in posts with an embedded copy " "of the image. This means that contacts who receive posts containing private " @@ -5381,319 +5409,521 @@ msgid "" "while." msgstr "Não substitue fotos privativas guardadas localmente em publicações por uma cópia inclusa da imagem. Isso significa que os contatos que recebem publicações contendo fotos privadas terão que autenticar e carregar cada imagem, o que pode levar algum tempo." -#: ../../mod/admin.php:662 +#: mod/admin.php:970 msgid "Allow Users to set remote_self" msgstr "Permite usuários configurarem remote_self" -#: ../../mod/admin.php:662 +#: mod/admin.php:970 msgid "" "With checking this, every user is allowed to mark every contact as a " "remote_self in the repair contact dialog. Setting this flag on a contact " "causes mirroring every posting of that contact in the users stream." msgstr "Ao marcar isto, todos os usuários poderão marcar cada contato como um remote_self na opção de reparar contato. Marcar isto para um contato produz espelhamento de toda publicação deste contato no fluxo dos usuários" -#: ../../mod/admin.php:663 +#: mod/admin.php:971 msgid "Block multiple registrations" msgstr "Bloquear registros repetidos" -#: ../../mod/admin.php:663 +#: mod/admin.php:971 msgid "Disallow users to register additional accounts for use as pages." msgstr "Desabilitar o registro de contas adicionais para serem usadas como páginas." -#: ../../mod/admin.php:664 +#: mod/admin.php:972 msgid "OpenID support" msgstr "Suporte ao OpenID" -#: ../../mod/admin.php:664 +#: mod/admin.php:972 msgid "OpenID support for registration and logins." msgstr "Suporte ao OpenID para registros e autenticações." -#: ../../mod/admin.php:665 +#: mod/admin.php:973 msgid "Fullname check" msgstr "Verificar nome completo" -#: ../../mod/admin.php:665 +#: mod/admin.php:973 msgid "" "Force users to register with a space between firstname and lastname in Full " "name, as an antispam measure" msgstr "Forçar os usuários a usar um espaço em branco entre o nome e o sobrenome, ao preencherem o nome completo no registro, como uma medida contra o spam" -#: ../../mod/admin.php:666 +#: mod/admin.php:974 msgid "UTF-8 Regular expressions" msgstr "Expressões regulares UTF-8" -#: ../../mod/admin.php:666 +#: mod/admin.php:974 msgid "Use PHP UTF8 regular expressions" msgstr "Use expressões regulares do PHP em UTF8" -#: ../../mod/admin.php:667 +#: mod/admin.php:975 msgid "Community Page Style" msgstr "Estilo da página de comunidade" -#: ../../mod/admin.php:667 +#: mod/admin.php:975 msgid "" "Type of community page to show. 'Global community' shows every public " "posting from an open distributed network that arrived on this server." msgstr "Tipo de página de comunidade para mostrar. 'Comunidade Global' mostra todos os textos públicos de uma rede aberta e distribuída que chega neste servidor." -#: ../../mod/admin.php:668 +#: mod/admin.php:976 msgid "Posts per user on community page" msgstr "Textos por usuário na página da comunidade" -#: ../../mod/admin.php:668 +#: mod/admin.php:976 msgid "" "The maximum number of posts per user on the community page. (Not valid for " "'Global Community')" msgstr "O número máximo de textos por usuário na página da comunidade. (Não é válido para 'comunidade global')" -#: ../../mod/admin.php:669 +#: mod/admin.php:977 msgid "Enable OStatus support" msgstr "Habilitar suporte ao OStatus" -#: ../../mod/admin.php:669 +#: mod/admin.php:977 msgid "" "Provide built-in OStatus (StatusNet, GNU Social etc.) compatibility. All " "communications in OStatus are public, so privacy warnings will be " "occasionally displayed." msgstr "Fornece compatibilidade OStatus (StatusNet, GNU Social, etc.). Todas as comunicações no OStatus são públicas, assim avisos de privacidade serão ocasionalmente mostrados." -#: ../../mod/admin.php:670 +#: mod/admin.php:978 msgid "OStatus conversation completion interval" msgstr "Intervalo de finalização da conversação OStatus " -#: ../../mod/admin.php:670 +#: mod/admin.php:978 msgid "" "How often shall the poller check for new entries in OStatus conversations? " "This can be a very ressource task." msgstr "De quanto em quanto tempo o \"buscador\" (poller) deve checar por novas entradas numa conversação OStatus? Essa pode ser uma tarefa bem demorada." -#: ../../mod/admin.php:671 +#: mod/admin.php:979 +msgid "Only import OStatus threads from our contacts" +msgstr "" + +#: mod/admin.php:979 +msgid "" +"Normally we import every content from our OStatus contacts. With this option" +" we only store threads that are started by a contact that is known on our " +"system." +msgstr "" + +#: mod/admin.php:980 +msgid "OStatus support can only be enabled if threading is enabled." +msgstr "" + +#: mod/admin.php:982 +msgid "" +"Diaspora support can't be enabled because Friendica was installed into a sub" +" directory." +msgstr "" + +#: mod/admin.php:983 msgid "Enable Diaspora support" msgstr "Habilitar suporte ao Diaspora" -#: ../../mod/admin.php:671 +#: mod/admin.php:983 msgid "Provide built-in Diaspora network compatibility." msgstr "Fornece compatibilidade nativa com a rede Diaspora." -#: ../../mod/admin.php:672 +#: mod/admin.php:984 msgid "Only allow Friendica contacts" msgstr "Permitir somente contatos Friendica" -#: ../../mod/admin.php:672 +#: mod/admin.php:984 msgid "" "All contacts must use Friendica protocols. All other built-in communication " "protocols disabled." msgstr "Todos os contatos devem usar protocolos Friendica. Todos os outros protocolos de comunicação embarcados estão desabilitados" -#: ../../mod/admin.php:673 +#: mod/admin.php:985 msgid "Verify SSL" msgstr "Verificar SSL" -#: ../../mod/admin.php:673 +#: mod/admin.php:985 msgid "" "If you wish, you can turn on strict certificate checking. This will mean you" " cannot connect (at all) to self-signed SSL sites." msgstr "Caso deseje, você pode habilitar a restrição de certificações. Isso significa que você não poderá conectar-se a nenhum site que use certificados auto-assinados." -#: ../../mod/admin.php:674 +#: mod/admin.php:986 msgid "Proxy user" msgstr "Usuário do proxy" -#: ../../mod/admin.php:675 +#: mod/admin.php:987 msgid "Proxy URL" msgstr "URL do proxy" -#: ../../mod/admin.php:676 +#: mod/admin.php:988 msgid "Network timeout" msgstr "Limite de tempo da rede" -#: ../../mod/admin.php:676 +#: mod/admin.php:988 msgid "Value is in seconds. Set to 0 for unlimited (not recommended)." msgstr "Valor em segundos. Defina como 0 para ilimitado (não recomendado)." -#: ../../mod/admin.php:677 +#: mod/admin.php:989 msgid "Delivery interval" msgstr "Intervalo de envio" -#: ../../mod/admin.php:677 +#: mod/admin.php:989 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 "Postergue o processo de entrega em background por essa quantidade de segundos visando reduzir a carga do sistema. Recomendado: 4-5 para servidores compartilhados (shared hosts), 2-3 para servidores privados virtuais (VPS). 0-1 para grandes servidores dedicados." -#: ../../mod/admin.php:678 +#: mod/admin.php:990 msgid "Poll interval" msgstr "Intervalo da busca (polling)" -#: ../../mod/admin.php:678 +#: mod/admin.php:990 msgid "" "Delay background polling processes by this many seconds to reduce system " "load. If 0, use delivery interval." msgstr "Postergue o processo de entrega em background por essa quantidade de segundos visando reduzir a carga do sistema. Se 0, use intervalo de entrega." -#: ../../mod/admin.php:679 +#: mod/admin.php:991 msgid "Maximum Load Average" msgstr "Média de Carga Máxima" -#: ../../mod/admin.php:679 +#: mod/admin.php:991 msgid "" "Maximum system load before delivery and poll processes are deferred - " "default 50." msgstr "Carga do sistema máxima antes que os processos de entrega e busca sejam postergados - padrão 50." -#: ../../mod/admin.php:681 +#: mod/admin.php:992 +msgid "Maximum Load Average (Frontend)" +msgstr "" + +#: mod/admin.php:992 +msgid "Maximum system load before the frontend quits service - default 50." +msgstr "" + +#: mod/admin.php:993 +msgid "Maximum table size for optimization" +msgstr "" + +#: mod/admin.php:993 +msgid "" +"Maximum table size (in MB) for the automatic optimization - default 100 MB. " +"Enter -1 to disable it." +msgstr "" + +#: mod/admin.php:994 +msgid "Minimum level of fragmentation" +msgstr "" + +#: mod/admin.php:994 +msgid "" +"Minimum fragmenation level to start the automatic optimization - default " +"value is 30%." +msgstr "" + +#: mod/admin.php:996 +msgid "Periodical check of global contacts" +msgstr "Checagem periódica dos contatos globais" + +#: mod/admin.php:996 +msgid "" +"If enabled, the global contacts are checked periodically for missing or " +"outdated data and the vitality of the contacts and servers." +msgstr "" + +#: mod/admin.php:997 +msgid "Days between requery" +msgstr "" + +#: mod/admin.php:997 +msgid "Number of days after which a server is requeried for his contacts." +msgstr "" + +#: mod/admin.php:998 +msgid "Discover contacts from other servers" +msgstr "" + +#: mod/admin.php:998 +msgid "" +"Periodically query other servers for contacts. You can choose between " +"'users': the users on the remote system, 'Global Contacts': active contacts " +"that are known on the system. The fallback is meant for Redmatrix servers " +"and older friendica servers, where global contacts weren't available. The " +"fallback increases the server load, so the recommened setting is 'Users, " +"Global Contacts'." +msgstr "Periodicamente buscar contatos em outros servidores. Você pode entre 'Usuários': os usuários do sistema remoto; e 'Contatos Globais': os contatos ativos conhecidos pelo sistema. O plano B é destinado a servidores rodando Redmatrix ou Friendica, se mais antigos, para os quais os contatos globais não estavam disponíveis. O plano B aumenta a carga do servidor, por isso a opção recomendada é 'Usuários, Contatos Globais'." + +#: mod/admin.php:999 +msgid "Timeframe for fetching global contacts" +msgstr "" + +#: mod/admin.php:999 +msgid "" +"When the discovery is activated, this value defines the timeframe for the " +"activity of the global contacts that are fetched from other servers." +msgstr "" + +#: mod/admin.php:1000 +msgid "Search the local directory" +msgstr "" + +#: mod/admin.php:1000 +msgid "" +"Search the local directory instead of the global directory. When searching " +"locally, every search will be executed on the global directory in the " +"background. This improves the search results when the search is repeated." +msgstr "" + +#: mod/admin.php:1002 +msgid "Publish server information" +msgstr "" + +#: mod/admin.php:1002 +msgid "" +"If enabled, general server and usage data will be published. The data " +"contains the name and version of the server, number of users with public " +"profiles, number of posts and the activated protocols and connectors. See the-federation.info for details." +msgstr "" + +#: mod/admin.php:1004 msgid "Use MySQL full text engine" msgstr "Use o engine de texto completo (full text) do MySQL" -#: ../../mod/admin.php:681 +#: mod/admin.php:1004 msgid "" "Activates the full text engine. Speeds up search - but can only search for " "four and more characters." msgstr "Ativa a engine de texto completo (full text). Acelera a busca - mas só pode buscar apenas por 4 ou mais caracteres." -#: ../../mod/admin.php:682 +#: mod/admin.php:1005 msgid "Suppress Language" msgstr "Retira idioma" -#: ../../mod/admin.php:682 +#: mod/admin.php:1005 msgid "Suppress language information in meta information about a posting." msgstr "Retira informações sobre idioma nas meta informações sobre uma publicação." -#: ../../mod/admin.php:683 +#: mod/admin.php:1006 msgid "Suppress Tags" msgstr "Suprime etiquetas" -#: ../../mod/admin.php:683 +#: mod/admin.php:1006 msgid "Suppress showing a list of hashtags at the end of the posting." msgstr "suprime mostrar uma lista de hashtags no final de cada texto." -#: ../../mod/admin.php:684 +#: mod/admin.php:1007 msgid "Path to item cache" msgstr "Diretório do cache de item" -#: ../../mod/admin.php:685 +#: mod/admin.php:1007 +msgid "The item caches buffers generated bbcode and external images." +msgstr "" + +#: mod/admin.php:1008 msgid "Cache duration in seconds" msgstr "Duração do cache em segundos" -#: ../../mod/admin.php:685 +#: mod/admin.php:1008 msgid "" "How long should the cache files be hold? Default value is 86400 seconds (One" " day). To disable the item cache, set the value to -1." msgstr "Por quanto tempo os arquivos de cache devem ser mantidos? O valor padrão é 86400 segundos (um dia). Para desativar o cache, defina o valor para -1." -#: ../../mod/admin.php:686 +#: mod/admin.php:1009 msgid "Maximum numbers of comments per post" msgstr "O número máximo de comentários por post" -#: ../../mod/admin.php:686 +#: mod/admin.php:1009 msgid "How much comments should be shown for each post? Default value is 100." msgstr "Quanto comentários devem ser mostradas em cada post? O valor padrão é 100." -#: ../../mod/admin.php:687 +#: mod/admin.php:1010 msgid "Path for lock file" msgstr "Diretório do arquivo de trava" -#: ../../mod/admin.php:688 +#: mod/admin.php:1010 +msgid "" +"The lock file is used to avoid multiple pollers at one time. Only define a " +"folder here." +msgstr "" + +#: mod/admin.php:1011 msgid "Temp path" msgstr "Diretório Temp" -#: ../../mod/admin.php:689 +#: mod/admin.php:1011 +msgid "" +"If you have a restricted system where the webserver can't access the system " +"temp path, enter another path here." +msgstr "" + +#: mod/admin.php:1012 msgid "Base path to installation" msgstr "Diretório base para instalação" -#: ../../mod/admin.php:690 +#: mod/admin.php:1012 +msgid "" +"If the system cannot detect the correct path to your installation, enter the" +" correct path here. This setting should only be set if you are using a " +"restricted system and symbolic links to your webroot." +msgstr "" + +#: mod/admin.php:1013 msgid "Disable picture proxy" msgstr "Disabilitar proxy de imagem" -#: ../../mod/admin.php:690 +#: mod/admin.php:1013 msgid "" "The picture proxy increases performance and privacy. It shouldn't be used on" " systems with very low bandwith." msgstr "O proxy de imagem aumenta o desempenho e privacidade. Ele não deve ser usado em sistemas com largura de banda muito baixa." -#: ../../mod/admin.php:691 +#: mod/admin.php:1014 msgid "Enable old style pager" msgstr "Habilita estilo antigo de paginação" -#: ../../mod/admin.php:691 +#: mod/admin.php:1014 msgid "" "The old style pager has page numbers but slows down massively the page " "speed." msgstr "O estilo antigo de paginação tem número de páginas mas dimunui muito a velocidade das páginas." -#: ../../mod/admin.php:692 +#: mod/admin.php:1015 msgid "Only search in tags" msgstr "Somente pesquisa nas estiquetas" -#: ../../mod/admin.php:692 +#: mod/admin.php:1015 msgid "On large systems the text search can slow down the system extremely." msgstr "Em grandes sistemas a pesquisa de texto pode deixar o sistema muito lento." -#: ../../mod/admin.php:694 +#: mod/admin.php:1017 msgid "New base url" msgstr "Nova URL base" -#: ../../mod/admin.php:711 +#: mod/admin.php:1017 +msgid "" +"Change base url for this server. Sends relocate message to all DFRN contacts" +" of all users." +msgstr "" + +#: mod/admin.php:1019 +msgid "RINO Encryption" +msgstr "" + +#: mod/admin.php:1019 +msgid "Encryption layer between nodes." +msgstr "" + +#: mod/admin.php:1020 +msgid "Embedly API key" +msgstr "" + +#: mod/admin.php:1020 +msgid "" +"Embedly is used to fetch additional data for " +"web pages. This is an optional parameter." +msgstr "" + +#: mod/admin.php:1022 +msgid "Enable 'worker' background processing" +msgstr "" + +#: mod/admin.php:1022 +msgid "" +"The worker background processing limits the number of parallel background " +"jobs to a maximum number and respects the system load." +msgstr "" + +#: mod/admin.php:1023 +msgid "Maximum number of parallel workers" +msgstr "" + +#: mod/admin.php:1023 +msgid "" +"On shared hosters set this to 2. On larger systems, values of 10 are great. " +"Default value is 4." +msgstr "" + +#: mod/admin.php:1024 +msgid "Don't use 'proc_open' with the worker" +msgstr "" + +#: mod/admin.php:1024 +msgid "" +"Enable this if your system doesn't allow the use of 'proc_open'. This can " +"happen on shared hosters. If this is enabled you should increase the " +"frequency of poller calls in your crontab." +msgstr "" + +#: mod/admin.php:1025 +msgid "Enable fastlane" +msgstr "" + +#: mod/admin.php:1025 +msgid "" +"When enabed, the fastlane mechanism starts an additional worker if processes" +" with higher priority are blocked by processes of lower priority." +msgstr "" + +#: mod/admin.php:1054 msgid "Update has been marked successful" msgstr "A atualização foi marcada como bem sucedida" -#: ../../mod/admin.php:719 +#: mod/admin.php:1062 #, php-format msgid "Database structure update %s was successfully applied." msgstr "A atualização da estrutura do banco de dados %s foi aplicada com sucesso." -#: ../../mod/admin.php:722 +#: mod/admin.php:1065 #, php-format msgid "Executing of database structure update %s failed with error: %s" msgstr "A execução da atualização da estrutura do banco de dados %s falhou com o erro: %s" -#: ../../mod/admin.php:734 +#: mod/admin.php:1077 #, php-format msgid "Executing %s failed with error: %s" msgstr "A execução de %s falhou com erro: %s" -#: ../../mod/admin.php:737 +#: mod/admin.php:1080 #, php-format msgid "Update %s was successfully applied." msgstr "A atualização %s foi aplicada com sucesso." -#: ../../mod/admin.php:741 +#: mod/admin.php:1084 #, php-format msgid "Update %s did not return a status. Unknown if it succeeded." msgstr "Atualizar %s não retornou um status. Desconhecido se ele teve sucesso." -#: ../../mod/admin.php:743 +#: mod/admin.php:1086 #, php-format msgid "There was no additional update function %s that needed to be called." msgstr "Não havia nenhuma função de atualização %s adicional que precisava ser chamada." -#: ../../mod/admin.php:762 +#: mod/admin.php:1105 msgid "No failed updates." msgstr "Nenhuma atualização com falha." -#: ../../mod/admin.php:763 +#: mod/admin.php:1106 msgid "Check database structure" msgstr "Verifique a estrutura do banco de dados" -#: ../../mod/admin.php:768 +#: mod/admin.php:1111 msgid "Failed Updates" msgstr "Atualizações com falha" -#: ../../mod/admin.php:769 +#: mod/admin.php:1112 msgid "" "This does not include updates prior to 1139, which did not return a status." msgstr "Isso não inclue atualizações antes da 1139, as quais não retornavam um status." -#: ../../mod/admin.php:770 +#: mod/admin.php:1113 msgid "Mark success (if update was manually applied)" msgstr "Marcar como bem sucedida (caso tenham sido aplicadas atualizações manuais)" -#: ../../mod/admin.php:771 +#: mod/admin.php:1114 msgid "Attempt to execute this update step automatically" msgstr "Tentar executar esse passo da atualização automaticamente" -#: ../../mod/admin.php:803 +#: mod/admin.php:1146 #, php-format msgid "" "\n" @@ -5701,7 +5931,7 @@ msgid "" "\t\t\t\tthe administrator of %2$s has set up an account for you." msgstr "\n\t\t\tCaro %1$s,\n\t\t\t\to administrador de %2$s criou uma conta para você." -#: ../../mod/admin.php:806 +#: mod/admin.php:1149 #, php-format msgid "" "\n" @@ -5731,2207 +5961,2874 @@ msgid "" "\t\t\tThank you and welcome to %4$s." msgstr "\n\t\t\tOs dados de login são os seguintes:\n\n\t\t\tLocal do Site:\t%1$s\n\t\t\tNome de Login:\t\t%2$s\n\t\t\tSenha:\t\t%3$s\n\n\t\t\tVocê pode alterar sua senha na página de \"Configurações\" da sua conta após fazer o login.\n\n\t\t\tPor favor, dedique alguns minutos na página para rever as outras configurações da sua conta.\n\n\t\t\tTalvez você também queira incluir algumas informações básicas adicionais ao seu perfil padrão\n\t\t\t(na página de \"Perfis\") para que outras pessoas possam encontrá-lo com facilidade.\n\n\t\t\tRecomendamos que inclua seu nome completo, adicione uma foto do perfil,\n\t\t\tadicionar algumas \"palavras-chave\" (muito útil para fazer novas amizades) - e\n\t\t\ttalvez em que pais você mora; se você não quiser ser mais específico\n\t\t\tdo que isso.\n\n\t\t\tNós respeitamos plenamente seu direito à privacidade, e nenhum desses itens são necessários.\n\t\t\tSe você é novo por aqui e não conheço ninguém, eles podem ajuda-lo\n\t\t\ta fazer novas e interessantes amizades.\n\n\t\t\tObrigado e bem-vindo a %4$s." -#: ../../mod/admin.php:850 +#: mod/admin.php:1193 #, php-format msgid "%s user blocked/unblocked" msgid_plural "%s users blocked/unblocked" msgstr[0] "%s usuário bloqueado/desbloqueado" msgstr[1] "%s usuários bloqueados/desbloqueados" -#: ../../mod/admin.php:857 +#: mod/admin.php:1200 #, php-format msgid "%s user deleted" msgid_plural "%s users deleted" msgstr[0] "%s usuário excluído" msgstr[1] "%s usuários excluídos" -#: ../../mod/admin.php:896 +#: mod/admin.php:1247 #, php-format msgid "User '%s' deleted" msgstr "O usuário '%s' foi excluído" -#: ../../mod/admin.php:904 +#: mod/admin.php:1255 #, php-format msgid "User '%s' unblocked" msgstr "O usuário '%s' foi desbloqueado" -#: ../../mod/admin.php:904 +#: mod/admin.php:1255 #, php-format msgid "User '%s' blocked" msgstr "O usuário '%s' foi bloqueado" -#: ../../mod/admin.php:999 -msgid "Add User" -msgstr "Adicionar usuário" - -#: ../../mod/admin.php:1000 -msgid "select all" -msgstr "selecionar todos" - -#: ../../mod/admin.php:1001 -msgid "User registrations waiting for confirm" -msgstr "Registros de usuário aguardando confirmação" - -#: ../../mod/admin.php:1002 -msgid "User waiting for permanent deletion" -msgstr "Usuário aguardando por fim permanente da conta." - -#: ../../mod/admin.php:1003 -msgid "Request date" -msgstr "Solicitar data" - -#: ../../mod/admin.php:1004 -msgid "No registrations." -msgstr "Nenhum registro." - -#: ../../mod/admin.php:1006 -msgid "Deny" -msgstr "Negar" - -#: ../../mod/admin.php:1010 -msgid "Site admin" -msgstr "Administração do site" - -#: ../../mod/admin.php:1011 -msgid "Account expired" -msgstr "Conta expirou" - -#: ../../mod/admin.php:1014 -msgid "New User" -msgstr "Novo usuário" - -#: ../../mod/admin.php:1015 ../../mod/admin.php:1016 +#: mod/admin.php:1374 mod/admin.php:1399 msgid "Register date" msgstr "Data de registro" -#: ../../mod/admin.php:1015 ../../mod/admin.php:1016 +#: mod/admin.php:1374 mod/admin.php:1399 msgid "Last login" msgstr "Última entrada" -#: ../../mod/admin.php:1015 ../../mod/admin.php:1016 +#: mod/admin.php:1374 mod/admin.php:1399 msgid "Last item" msgstr "Último item" -#: ../../mod/admin.php:1015 +#: mod/admin.php:1374 mod/settings.php:43 +msgid "Account" +msgstr "Conta" + +#: mod/admin.php:1383 +msgid "Add User" +msgstr "Adicionar usuário" + +#: mod/admin.php:1384 +msgid "select all" +msgstr "selecionar todos" + +#: mod/admin.php:1385 +msgid "User registrations waiting for confirm" +msgstr "Registros de usuário aguardando confirmação" + +#: mod/admin.php:1386 +msgid "User waiting for permanent deletion" +msgstr "Usuário aguardando por fim permanente da conta." + +#: mod/admin.php:1387 +msgid "Request date" +msgstr "Solicitar data" + +#: mod/admin.php:1388 +msgid "No registrations." +msgstr "Nenhum registro." + +#: mod/admin.php:1389 mod/notifications.php:176 mod/notifications.php:249 +msgid "Approve" +msgstr "Aprovar" + +#: mod/admin.php:1390 +msgid "Deny" +msgstr "Negar" + +#: mod/admin.php:1392 mod/contacts.php:605 mod/contacts.php:803 +#: mod/contacts.php:997 +msgid "Block" +msgstr "Bloquear" + +#: mod/admin.php:1393 mod/contacts.php:605 mod/contacts.php:803 +#: mod/contacts.php:997 +msgid "Unblock" +msgstr "Desbloquear" + +#: mod/admin.php:1394 +msgid "Site admin" +msgstr "Administração do site" + +#: mod/admin.php:1395 +msgid "Account expired" +msgstr "Conta expirou" + +#: mod/admin.php:1398 +msgid "New User" +msgstr "Novo usuário" + +#: mod/admin.php:1399 msgid "Deleted since" msgstr "Apagado desde" -#: ../../mod/admin.php:1018 +#: mod/admin.php:1404 msgid "" "Selected users will be deleted!\\n\\nEverything these users had posted on " "this site will be permanently deleted!\\n\\nAre you sure?" msgstr "Os usuários selecionados serão excluídos!\\n\\nTudo o que estes usuários publicaram neste site será excluído permanentemente!\\n\\nDeseja continuar?" -#: ../../mod/admin.php:1019 +#: mod/admin.php:1405 msgid "" "The user {0} will be deleted!\\n\\nEverything this user has posted on this " "site will be permanently deleted!\\n\\nAre you sure?" msgstr "O usuário {0} será excluído!\\n\\nTudo o que este usuário publicou neste site será permanentemente excluído!\\n\\nDeseja continuar?" -#: ../../mod/admin.php:1029 +#: mod/admin.php:1415 msgid "Name of the new user." -msgstr "Nome do novo usuários." +msgstr "Nome do novo usuário." -#: ../../mod/admin.php:1030 +#: mod/admin.php:1416 msgid "Nickname" msgstr "Apelido" -#: ../../mod/admin.php:1030 +#: mod/admin.php:1416 msgid "Nickname of the new user." msgstr "Apelido para o novo usuário." -#: ../../mod/admin.php:1031 +#: mod/admin.php:1417 msgid "Email address of the new user." msgstr "Endereço de e-mail do novo usuário." -#: ../../mod/admin.php:1064 +#: mod/admin.php:1460 #, php-format msgid "Plugin %s disabled." msgstr "O plugin %s foi desabilitado." -#: ../../mod/admin.php:1068 +#: mod/admin.php:1464 #, php-format msgid "Plugin %s enabled." msgstr "O plugin %s foi habilitado." -#: ../../mod/admin.php:1078 ../../mod/admin.php:1294 +#: mod/admin.php:1475 mod/admin.php:1711 msgid "Disable" msgstr "Desabilitar" -#: ../../mod/admin.php:1080 ../../mod/admin.php:1296 +#: mod/admin.php:1477 mod/admin.php:1713 msgid "Enable" msgstr "Habilitar" -#: ../../mod/admin.php:1103 ../../mod/admin.php:1324 +#: mod/admin.php:1500 mod/admin.php:1758 msgid "Toggle" msgstr "Alternar" -#: ../../mod/admin.php:1111 ../../mod/admin.php:1334 +#: mod/admin.php:1508 mod/admin.php:1767 msgid "Author: " msgstr "Autor: " -#: ../../mod/admin.php:1112 ../../mod/admin.php:1335 +#: mod/admin.php:1509 mod/admin.php:1768 msgid "Maintainer: " msgstr "Mantenedor: " -#: ../../mod/admin.php:1254 +#: mod/admin.php:1561 +msgid "Reload active plugins" +msgstr "" + +#: mod/admin.php:1566 +#, php-format +msgid "" +"There are currently no plugins available on your node. You can find the " +"official plugin repository at %1$s and might find other interesting plugins " +"in the open plugin registry at %2$s" +msgstr "" + +#: mod/admin.php:1671 msgid "No themes found." msgstr "Nenhum tema encontrado" -#: ../../mod/admin.php:1316 +#: mod/admin.php:1749 msgid "Screenshot" msgstr "Captura de tela" -#: ../../mod/admin.php:1362 +#: mod/admin.php:1809 +msgid "Reload active themes" +msgstr "" + +#: mod/admin.php:1814 +#, php-format +msgid "No themes found on the system. They should be paced in %1$s" +msgstr "" + +#: mod/admin.php:1815 msgid "[Experimental]" msgstr "[Esperimental]" -#: ../../mod/admin.php:1363 +#: mod/admin.php:1816 msgid "[Unsupported]" msgstr "[Não suportado]" -#: ../../mod/admin.php:1390 +#: mod/admin.php:1840 msgid "Log settings updated." msgstr "As configurações de relatórios foram atualizadas." -#: ../../mod/admin.php:1446 +#: mod/admin.php:1877 msgid "Clear" msgstr "Limpar" -#: ../../mod/admin.php:1452 +#: mod/admin.php:1882 msgid "Enable Debugging" -msgstr "Habilitar Debugging" +msgstr "Habilitar depuração" -#: ../../mod/admin.php:1453 +#: mod/admin.php:1883 msgid "Log file" msgstr "Arquivo do relatório" -#: ../../mod/admin.php:1453 +#: mod/admin.php:1883 msgid "" "Must be writable by web server. Relative to your Friendica top-level " "directory." msgstr "O servidor web precisa ter permissão de escrita. Relativa ao diretório raiz do seu Friendica." -#: ../../mod/admin.php:1454 +#: mod/admin.php:1884 msgid "Log level" msgstr "Nível do relatório" -#: ../../mod/admin.php:1504 -msgid "Close" -msgstr "Fechar" +#: mod/admin.php:1887 +msgid "PHP logging" +msgstr "" -#: ../../mod/admin.php:1510 -msgid "FTP Host" -msgstr "Endereço do FTP" - -#: ../../mod/admin.php:1511 -msgid "FTP Path" -msgstr "Caminho do FTP" - -#: ../../mod/admin.php:1512 -msgid "FTP User" -msgstr "Usuário do FTP" - -#: ../../mod/admin.php:1513 -msgid "FTP Password" -msgstr "Senha do FTP" - -#: ../../mod/wall_upload.php:122 ../../mod/profile_photo.php:144 -#, php-format -msgid "Image exceeds size limit of %d" -msgstr "A imagem excede o limite de tamanho de %d" - -#: ../../mod/wall_upload.php:144 ../../mod/photos.php:807 -#: ../../mod/profile_photo.php:153 -msgid "Unable to process image." -msgstr "Não foi possível processar a imagem." - -#: ../../mod/wall_upload.php:172 ../../mod/photos.php:834 -#: ../../mod/profile_photo.php:301 -msgid "Image upload failed." -msgstr "Não foi possível enviar a imagem." - -#: ../../mod/home.php:35 -#, php-format -msgid "Welcome to %s" -msgstr "Bem-vindo(a) a %s" - -#: ../../mod/openid.php:24 -msgid "OpenID protocol error. No ID returned." -msgstr "Erro no protocolo OpenID. Não foi retornada nenhuma ID." - -#: ../../mod/openid.php:53 +#: mod/admin.php:1888 msgid "" -"Account not found and OpenID registration is not permitted on this site." -msgstr "A conta não foi encontrada e não são permitidos registros via OpenID nesse site." +"To enable logging of PHP errors and warnings you can add the following to " +"the .htconfig.php file of your installation. The filename set in the " +"'error_log' line is relative to the friendica top-level directory and must " +"be writeable by the web server. The option '1' for 'log_errors' and " +"'display_errors' is to enable these options, set to '0' to disable them." +msgstr "" -#: ../../mod/network.php:142 -msgid "Search Results For:" -msgstr "Resultados de Busca Por:" +#: mod/admin.php:2014 mod/admin.php:2015 mod/settings.php:763 +msgid "Off" +msgstr "Off" -#: ../../mod/network.php:185 ../../mod/search.php:21 -msgid "Remove term" -msgstr "Remover o termo" +#: mod/admin.php:2014 mod/admin.php:2015 mod/settings.php:763 +msgid "On" +msgstr "On" -#: ../../mod/network.php:356 -msgid "Commented Order" -msgstr "Ordem dos comentários" - -#: ../../mod/network.php:359 -msgid "Sort by Comment Date" -msgstr "Ordenar pela data do comentário" - -#: ../../mod/network.php:362 -msgid "Posted Order" -msgstr "Ordem das publicações" - -#: ../../mod/network.php:365 -msgid "Sort by Post Date" -msgstr "Ordenar pela data de publicação" - -#: ../../mod/network.php:374 -msgid "Posts that mention or involve you" -msgstr "Publicações que mencionem ou envolvam você" - -#: ../../mod/network.php:380 -msgid "New" -msgstr "Nova" - -#: ../../mod/network.php:383 -msgid "Activity Stream - by date" -msgstr "Fluxo de atividades - por data" - -#: ../../mod/network.php:389 -msgid "Shared Links" -msgstr "Links compartilhados" - -#: ../../mod/network.php:392 -msgid "Interesting Links" -msgstr "Links interessantes" - -#: ../../mod/network.php:398 -msgid "Starred" -msgstr "Destacada" - -#: ../../mod/network.php:401 -msgid "Favourite Posts" -msgstr "Publicações favoritas" - -#: ../../mod/network.php:463 +#: mod/admin.php:2015 #, php-format -msgid "Warning: This group contains %s member from an insecure network." -msgid_plural "" -"Warning: This group contains %s members from an insecure network." -msgstr[0] "Aviso: Este grupo contém %s membro de uma rede insegura." -msgstr[1] "Aviso: Este grupo contém %s membros de uma rede insegura." +msgid "Lock feature %s" +msgstr "Bloquear funcionalidade %s" -#: ../../mod/network.php:466 -msgid "Private messages to this group are at risk of public disclosure." -msgstr "Mensagens privadas para este grupo correm o risco de sofrerem divulgação pública." +#: mod/admin.php:2023 +msgid "Manage Additional Features" +msgstr "Gerenciar funcionalidades adicionais" -#: ../../mod/network.php:520 ../../mod/content.php:119 -msgid "No such group" -msgstr "Este grupo não existe" - -#: ../../mod/network.php:537 ../../mod/content.php:130 -msgid "Group is empty" -msgstr "O grupo está vazio" - -#: ../../mod/network.php:544 ../../mod/content.php:134 -msgid "Group: " -msgstr "Grupo: " - -#: ../../mod/network.php:554 -msgid "Contact: " -msgstr "Contato: " - -#: ../../mod/network.php:556 -msgid "Private messages to this person are at risk of public disclosure." -msgstr "Mensagens privadas para esta pessoa correm o risco de sofrerem divulgação pública." - -#: ../../mod/network.php:561 -msgid "Invalid contact." -msgstr "Contato inválido." - -#: ../../mod/filer.php:30 -msgid "- select -" -msgstr "-selecione-" - -#: ../../mod/friendica.php:59 -msgid "This is Friendica, version" -msgstr "Este é o Friendica, versão" - -#: ../../mod/friendica.php:60 -msgid "running at web location" -msgstr "sendo executado no endereço web" - -#: ../../mod/friendica.php:62 -msgid "" -"Please visit Friendica.com to learn " -"more about the Friendica project." -msgstr "Por favor, visite friendica.com para aprender mais sobre o projeto Friendica." - -#: ../../mod/friendica.php:64 -msgid "Bug reports and issues: please visit" -msgstr "Relatos e acompanhamentos de erros podem ser encontrados em" - -#: ../../mod/friendica.php:65 -msgid "" -"Suggestions, praise, donations, etc. - please email \"Info\" at Friendica - " -"dot com" -msgstr "Sugestões, elogios, doações, etc. - favor enviar e-mail para \"Info\" arroba Friendica - ponto com" - -#: ../../mod/friendica.php:79 -msgid "Installed plugins/addons/apps:" -msgstr "Plugins/complementos/aplicações instaladas:" - -#: ../../mod/friendica.php:92 -msgid "No installed plugins/addons/apps" -msgstr "Nenhum plugin/complemento/aplicativo instalado" - -#: ../../mod/apps.php:11 -msgid "Applications" -msgstr "Aplicativos" - -#: ../../mod/apps.php:14 -msgid "No installed applications." -msgstr "Nenhum aplicativo instalado" - -#: ../../mod/photos.php:67 ../../mod/photos.php:1262 ../../mod/photos.php:1819 -msgid "Upload New Photos" -msgstr "Enviar novas fotos" - -#: ../../mod/photos.php:144 -msgid "Contact information unavailable" -msgstr "A informação de contato não está disponível" - -#: ../../mod/photos.php:165 -msgid "Album not found." -msgstr "O álbum não foi encontrado." - -#: ../../mod/photos.php:188 ../../mod/photos.php:200 ../../mod/photos.php:1204 -msgid "Delete Album" -msgstr "Excluir o álbum" - -#: ../../mod/photos.php:198 -msgid "Do you really want to delete this photo album and all its photos?" -msgstr "Você realmente deseja deletar esse álbum de fotos e todas as suas fotos?" - -#: ../../mod/photos.php:278 ../../mod/photos.php:289 ../../mod/photos.php:1515 -msgid "Delete Photo" -msgstr "Excluir a foto" - -#: ../../mod/photos.php:287 -msgid "Do you really want to delete this photo?" -msgstr "Você realmente deseja deletar essa foto?" - -#: ../../mod/photos.php:662 +#: mod/contacts.php:128 #, php-format -msgid "%1$s was tagged in %2$s by %3$s" -msgstr "%1$s foi marcado em %2$s por %3$s" +msgid "%d contact edited." +msgid_plural "%d contacts edited." +msgstr[0] "" +msgstr[1] "" -#: ../../mod/photos.php:662 -msgid "a photo" -msgstr "uma foto" +#: mod/contacts.php:159 mod/contacts.php:368 +msgid "Could not access contact record." +msgstr "Não foi possível acessar o registro do contato." -#: ../../mod/photos.php:767 -msgid "Image exceeds size limit of " -msgstr "A imagem excede o tamanho máximo de " +#: mod/contacts.php:173 +msgid "Could not locate selected profile." +msgstr "Não foi possível localizar o perfil selecionado." -#: ../../mod/photos.php:775 -msgid "Image file is empty." -msgstr "O arquivo de imagem está vazio." +#: mod/contacts.php:206 +msgid "Contact updated." +msgstr "O contato foi atualizado." -#: ../../mod/photos.php:930 -msgid "No photos selected" -msgstr "Não foi selecionada nenhuma foto" +#: mod/contacts.php:389 +msgid "Contact has been blocked" +msgstr "O contato foi bloqueado" -#: ../../mod/photos.php:1094 +#: mod/contacts.php:389 +msgid "Contact has been unblocked" +msgstr "O contato foi desbloqueado" + +#: mod/contacts.php:400 +msgid "Contact has been ignored" +msgstr "O contato foi ignorado" + +#: mod/contacts.php:400 +msgid "Contact has been unignored" +msgstr "O contato deixou de ser ignorado" + +#: mod/contacts.php:412 +msgid "Contact has been archived" +msgstr "O contato foi arquivado" + +#: mod/contacts.php:412 +msgid "Contact has been unarchived" +msgstr "O contato foi desarquivado" + +#: mod/contacts.php:437 +msgid "Drop contact" +msgstr "" + +#: mod/contacts.php:440 mod/contacts.php:799 +msgid "Do you really want to delete this contact?" +msgstr "Você realmente deseja deletar esse contato?" + +#: mod/contacts.php:457 +msgid "Contact has been removed." +msgstr "O contato foi removido." + +#: mod/contacts.php:498 #, php-format -msgid "You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage." -msgstr "Você está usando %1$.2f Mbytes dos %2$.2f Mbytes liberados para armazenamento de fotos." +msgid "You are mutual friends with %s" +msgstr "Você tem uma amizade mútua com %s" -#: ../../mod/photos.php:1129 -msgid "Upload Photos" -msgstr "Enviar fotos" - -#: ../../mod/photos.php:1133 ../../mod/photos.php:1199 -msgid "New album name: " -msgstr "Nome do novo álbum: " - -#: ../../mod/photos.php:1134 -msgid "or existing album name: " -msgstr "ou o nome de um álbum já existente: " - -#: ../../mod/photos.php:1135 -msgid "Do not show a status post for this upload" -msgstr "Não exiba uma publicação de status para este envio" - -#: ../../mod/photos.php:1137 ../../mod/photos.php:1510 -msgid "Permissions" -msgstr "Permissões" - -#: ../../mod/photos.php:1148 -msgid "Private Photo" -msgstr "Foto Privada" - -#: ../../mod/photos.php:1149 -msgid "Public Photo" -msgstr "Foto Pública" - -#: ../../mod/photos.php:1212 -msgid "Edit Album" -msgstr "Editar o álbum" - -#: ../../mod/photos.php:1218 -msgid "Show Newest First" -msgstr "Exibir as mais recentes primeiro" - -#: ../../mod/photos.php:1220 -msgid "Show Oldest First" -msgstr "Exibir as mais antigas primeiro" - -#: ../../mod/photos.php:1248 ../../mod/photos.php:1802 -msgid "View Photo" -msgstr "Ver a foto" - -#: ../../mod/photos.php:1294 -msgid "Permission denied. Access to this item may be restricted." -msgstr "Permissão negada. O acesso a este item pode estar restrito." - -#: ../../mod/photos.php:1296 -msgid "Photo not available" -msgstr "A foto não está disponível" - -#: ../../mod/photos.php:1352 -msgid "View photo" -msgstr "Ver a imagem" - -#: ../../mod/photos.php:1352 -msgid "Edit photo" -msgstr "Editar a foto" - -#: ../../mod/photos.php:1353 -msgid "Use as profile photo" -msgstr "Usar como uma foto de perfil" - -#: ../../mod/photos.php:1378 -msgid "View Full Size" -msgstr "Ver no tamanho real" - -#: ../../mod/photos.php:1457 -msgid "Tags: " -msgstr "Etiquetas: " - -#: ../../mod/photos.php:1460 -msgid "[Remove any tag]" -msgstr "[Remover qualquer etiqueta]" - -#: ../../mod/photos.php:1500 -msgid "Rotate CW (right)" -msgstr "Rotacionar para direita" - -#: ../../mod/photos.php:1501 -msgid "Rotate CCW (left)" -msgstr "Rotacionar para esquerda" - -#: ../../mod/photos.php:1503 -msgid "New album name" -msgstr "Novo nome para o álbum" - -#: ../../mod/photos.php:1506 -msgid "Caption" -msgstr "Legenda" - -#: ../../mod/photos.php:1508 -msgid "Add a Tag" -msgstr "Adicionar uma etiqueta" - -#: ../../mod/photos.php:1512 -msgid "" -"Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping" -msgstr "Por exemplo: @joao, @Joao_da_Silva, @joao@exemplo.com, #Minas_Gerais, #acampamento" - -#: ../../mod/photos.php:1521 -msgid "Private photo" -msgstr "Foto privada" - -#: ../../mod/photos.php:1522 -msgid "Public photo" -msgstr "Foto pública" - -#: ../../mod/photos.php:1817 -msgid "Recent Photos" -msgstr "Fotos recentes" - -#: ../../mod/bookmarklet.php:41 -msgid "The post was created" -msgstr "O texto foi criado" - -#: ../../mod/follow.php:27 -msgid "Contact added" -msgstr "O contato foi adicionado" - -#: ../../mod/uimport.php:66 -msgid "Move account" -msgstr "Mover conta" - -#: ../../mod/uimport.php:67 -msgid "You can import an account from another Friendica server." -msgstr "Você pode importar um conta de outro sevidor Friendica." - -#: ../../mod/uimport.php:68 -msgid "" -"You need to export your account from the old server and upload it here. We " -"will recreate your old account here with all your contacts. We will try also" -" to inform your friends that you moved here." -msgstr "Você precisa exportar sua conta de um servidor antigo e fazer o upload aqui. Nós recriaremos sua conta antiga aqui com todos os seus contatos. Nós também tentaremos informar seus amigos que você se mudou para cá." - -#: ../../mod/uimport.php:69 -msgid "" -"This feature is experimental. We can't import contacts from the OStatus " -"network (statusnet/identi.ca) or from Diaspora" -msgstr "Esse recurso é experimental. Nós não podemos importar contatos de uma rede OStatus (statusnet/identi.ca) ou do Diaspora" - -#: ../../mod/uimport.php:70 -msgid "Account file" -msgstr "Arquivo de conta" - -#: ../../mod/uimport.php:70 -msgid "" -"To export your account, go to \"Settings->Export your personal data\" and " -"select \"Export account\"" -msgstr "Para exportar a sua conta, entre em \"Configurações->Exportar dados pessoais\" e selecione \"Exportar conta\"" - -#: ../../mod/invite.php:27 -msgid "Total invitation limit exceeded." -msgstr "Limite de convites totais excedido." - -#: ../../mod/invite.php:49 +#: mod/contacts.php:502 #, php-format -msgid "%s : Not a valid email address." -msgstr "%s : Não é um endereço de e-mail válido." +msgid "You are sharing with %s" +msgstr "Você está compartilhando com %s" -#: ../../mod/invite.php:73 -msgid "Please join us on Friendica" -msgstr "Por favor, junte-se à nós na Friendica" - -#: ../../mod/invite.php:84 -msgid "Invitation limit exceeded. Please contact your site administrator." -msgstr "Limite de convites ultrapassado. Favor contactar o administrador do sítio." - -#: ../../mod/invite.php:89 +#: mod/contacts.php:507 #, php-format -msgid "%s : Message delivery failed." -msgstr "%s : Não foi possível enviar a mensagem." +msgid "%s is sharing with you" +msgstr "%s está compartilhando com você" -#: ../../mod/invite.php:93 +#: mod/contacts.php:527 +msgid "Private communications are not available for this contact." +msgstr "As comunicações privadas não estão disponíveis para este contato." + +#: mod/contacts.php:534 +msgid "(Update was successful)" +msgstr "(A atualização foi bem sucedida)" + +#: mod/contacts.php:534 +msgid "(Update was not successful)" +msgstr "(A atualização não foi bem sucedida)" + +#: mod/contacts.php:536 mod/contacts.php:978 +msgid "Suggest friends" +msgstr "Sugerir amigos" + +#: mod/contacts.php:540 #, php-format -msgid "%d message sent." -msgid_plural "%d messages sent." -msgstr[0] "%d mensagem enviada." -msgstr[1] "%d mensagens enviadas." +msgid "Network type: %s" +msgstr "Tipo de rede: %s" -#: ../../mod/invite.php:112 -msgid "You have no more invitations available" -msgstr "Você não possui mais convites disponíveis" +#: mod/contacts.php:553 +msgid "Communications lost with this contact!" +msgstr "As comunicações com esse contato foram perdidas!" -#: ../../mod/invite.php:120 +#: mod/contacts.php:556 +msgid "Fetch further information for feeds" +msgstr "Pega mais informações para feeds" + +#: mod/contacts.php:557 +msgid "Fetch information" +msgstr "Buscar informações" + +#: mod/contacts.php:557 +msgid "Fetch information and keywords" +msgstr "Buscar informação e palavras-chave" + +#: mod/contacts.php:575 +msgid "Contact" +msgstr "" + +#: mod/contacts.php:578 +msgid "Profile Visibility" +msgstr "Visibilidade do perfil" + +#: mod/contacts.php:579 #, php-format msgid "" -"Visit %s for a list of public sites that you can join. Friendica members on " -"other sites can all connect with each other, as well as with members of many" -" other social networks." -msgstr "Visite %s para obter uma lista de sites públicos onde você pode se cadastrar. Membros da friendica podem se conectar, mesmo que estejam em sites separados. Além disso você também pode se conectar com membros de várias outras redes sociais." +"Please choose the profile you would like to display to %s when viewing your " +"profile securely." +msgstr "Por favor, selecione o perfil que você gostaria de exibir para %s quando estiver visualizando seu perfil de modo seguro." -#: ../../mod/invite.php:122 -#, php-format +#: mod/contacts.php:580 +msgid "Contact Information / Notes" +msgstr "Informações sobre o contato / Anotações" + +#: mod/contacts.php:581 +msgid "Edit contact notes" +msgstr "Editar as anotações do contato" + +#: mod/contacts.php:587 +msgid "Block/Unblock contact" +msgstr "Bloquear/desbloquear o contato" + +#: mod/contacts.php:588 +msgid "Ignore contact" +msgstr "Ignorar o contato" + +#: mod/contacts.php:589 +msgid "Repair URL settings" +msgstr "Reparar as definições de URL" + +#: mod/contacts.php:590 +msgid "View conversations" +msgstr "Ver as conversas" + +#: mod/contacts.php:596 +msgid "Last update:" +msgstr "Última atualização:" + +#: mod/contacts.php:598 +msgid "Update public posts" +msgstr "Atualizar publicações públicas" + +#: mod/contacts.php:600 mod/contacts.php:988 +msgid "Update now" +msgstr "Atualizar agora" + +#: mod/contacts.php:606 mod/contacts.php:804 mod/contacts.php:1005 +msgid "Unignore" +msgstr "Deixar de ignorar" + +#: mod/contacts.php:606 mod/contacts.php:804 mod/contacts.php:1005 +#: mod/notifications.php:60 mod/notifications.php:179 +#: mod/notifications.php:251 +msgid "Ignore" +msgstr "Ignorar" + +#: mod/contacts.php:610 +msgid "Currently blocked" +msgstr "Atualmente bloqueado" + +#: mod/contacts.php:611 +msgid "Currently ignored" +msgstr "Atualmente ignorado" + +#: mod/contacts.php:612 +msgid "Currently archived" +msgstr "Atualmente arquivado" + +#: mod/contacts.php:613 mod/notifications.php:172 mod/notifications.php:239 +msgid "Hide this contact from others" +msgstr "Ocultar este contato dos outros" + +#: mod/contacts.php:613 msgid "" -"To accept this invitation, please visit and register at %s or any other " -"public Friendica website." -msgstr "Para aceitar esse convite, por favor cadastre-se em %s ou qualquer outro site friendica público." +"Replies/likes to your public posts may still be visible" +msgstr "Respostas/gostadas associados às suas publicações ainda podem estar visíveis" -#: ../../mod/invite.php:123 -#, php-format +#: mod/contacts.php:614 +msgid "Notification for new posts" +msgstr "Notificações para novas publicações" + +#: mod/contacts.php:614 +msgid "Send a notification of every new post of this contact" +msgstr "Envie uma notificação para todos as novas publicações deste contato" + +#: mod/contacts.php:617 +msgid "Blacklisted keywords" +msgstr "Palavras-chave na Lista Negra" + +#: mod/contacts.php:617 msgid "" -"Friendica sites all inter-connect to create a huge privacy-enhanced social " -"web that is owned and controlled by its members. They can also connect with " -"many traditional social networks. See %s for a list of alternate Friendica " -"sites you can join." -msgstr "Os sites friendica estão todos interconectados para criar uma grande rede social com foco na privacidade e controlada por seus membros, que também podem se conectar com várias redes sociais tradicionais. Dê uma olhada em %s para uma lista de sites friendica onde você pode se cadastrar." +"Comma separated list of keywords that should not be converted to hashtags, " +"when \"Fetch information and keywords\" is selected" +msgstr "Lista de palavras-chave separadas por vírgulas que não devem ser convertidas para hashtags, quando \"Buscar informações e palavras-chave\" for selecionado." -#: ../../mod/invite.php:126 -msgid "" -"Our apologies. This system is not currently configured to connect with other" -" public sites or invite members." -msgstr "Desculpe, mas esse sistema não está configurado para conectar-se com outros sites públicos nem permite convidar novos membros." +#: mod/contacts.php:633 +msgid "Actions" +msgstr "" -#: ../../mod/invite.php:132 -msgid "Send invitations" -msgstr "Enviar convites." +#: mod/contacts.php:636 +msgid "Contact Settings" +msgstr "" -#: ../../mod/invite.php:133 -msgid "Enter email addresses, one per line:" -msgstr "Digite os endereços de e-mail, um por linha:" +#: mod/contacts.php:682 +msgid "Suggestions" +msgstr "Sugestões" -#: ../../mod/invite.php:135 -msgid "" -"You are cordially invited to join me and other close friends on Friendica - " -"and help us to create a better social web." -msgstr "Você está convidado a se juntar a mim e outros amigos em friendica - e também nos ajudar a criar uma experiência social melhor na web." +#: mod/contacts.php:685 +msgid "Suggest potential friends" +msgstr "Sugerir amigos em potencial" -#: ../../mod/invite.php:137 -msgid "You will need to supply this invitation code: $invite_code" -msgstr "Você preciso informar este código de convite: $invite_code" +#: mod/contacts.php:693 +msgid "Show all contacts" +msgstr "Exibe todos os contatos" -#: ../../mod/invite.php:137 -msgid "" -"Once you have registered, please connect with me via my profile page at:" -msgstr "Após você se registrar, por favor conecte-se comigo através da minha página de perfil em:" +#: mod/contacts.php:698 +msgid "Unblocked" +msgstr "Desbloquear" -#: ../../mod/invite.php:139 -msgid "" -"For more information about the Friendica project and why we feel it is " -"important, please visit http://friendica.com" -msgstr "Para mais informações sobre o projeto Friendica e porque nós achamos que ele é importante, por favor visite-nos em http://friendica.com." +#: mod/contacts.php:701 +msgid "Only show unblocked contacts" +msgstr "Exibe somente contatos desbloqueados" -#: ../../mod/viewsrc.php:7 -msgid "Access denied." -msgstr "Acesso negado." +#: mod/contacts.php:707 +msgid "Blocked" +msgstr "Bloqueado" -#: ../../mod/lostpass.php:19 -msgid "No valid account found." -msgstr "Não foi encontrada nenhuma conta válida." +#: mod/contacts.php:710 +msgid "Only show blocked contacts" +msgstr "Exibe somente contatos bloqueados" -#: ../../mod/lostpass.php:35 -msgid "Password reset request issued. Check your email." -msgstr "A solicitação para reiniciar sua senha foi encaminhada. Verifique seu e-mail." +#: mod/contacts.php:716 +msgid "Ignored" +msgstr "Ignorados" -#: ../../mod/lostpass.php:42 -#, php-format -msgid "" -"\n" -"\t\tDear %1$s,\n" -"\t\t\tA request was recently received at \"%2$s\" to reset your account\n" -"\t\tpassword. In order to confirm this request, please select the verification link\n" -"\t\tbelow or paste it into your web browser address bar.\n" -"\n" -"\t\tIf you did NOT request this change, please DO NOT follow the link\n" -"\t\tprovided and ignore and/or delete this email.\n" -"\n" -"\t\tYour password will not be changed unless we can verify that you\n" -"\t\tissued this request." -msgstr "\n\t\tPrezado %1$s,\n\t\t\tUma solicitação foi recebida recentemente em \"%2$s\" para redefinir a\n\t\tsenha da sua conta. Para confirmar este pedido, por favor selecione o link de confirmação\n\t\tabaixo ou copie e cole-o na barra de endereço do seu navegador.\n\n\t\tSe NÃO foi você que solicitou esta alteração por favor, NÃO clique no link\n\t\tfornecido e ignore e/ou apague este e-mail.\n\n\t\tSua senha não será alterada a menos que possamos verificar que foi você que\n\t\temitiu esta solicitação." +#: mod/contacts.php:719 +msgid "Only show ignored contacts" +msgstr "Exibe somente contatos ignorados" -#: ../../mod/lostpass.php:53 -#, php-format -msgid "" -"\n" -"\t\tFollow this link to verify your identity:\n" -"\n" -"\t\t%1$s\n" -"\n" -"\t\tYou will then receive a follow-up message containing the new password.\n" -"\t\tYou may change that password from your account settings page after logging in.\n" -"\n" -"\t\tThe login details are as follows:\n" -"\n" -"\t\tSite Location:\t%2$s\n" -"\t\tLogin Name:\t%3$s" -msgstr "\n\t\tSiga este link para verificar sua identidade:\n\n\t\t%1$s\n\n\t\tVocê então receberá uma mensagem de continuidade contendo a nova senha.\n\t\tVocê pode alterar sua senha na sua página de configurações após efetuar seu login.\n\n\t\tOs dados de login são os seguintes:\n\n\t\tLocalização do Site:\t%2$s\n\t\tNome de Login:\t%3$s" +#: mod/contacts.php:725 +msgid "Archived" +msgstr "Arquivados" -#: ../../mod/lostpass.php:72 -#, php-format -msgid "Password reset requested at %s" -msgstr "Foi feita uma solicitação de reiniciação da senha em %s" +#: mod/contacts.php:728 +msgid "Only show archived contacts" +msgstr "Exibe somente contatos arquivados" -#: ../../mod/lostpass.php:92 -msgid "" -"Request could not be verified. (You may have previously submitted it.) " -"Password reset failed." -msgstr "Não foi possível verificar a solicitação (você pode tê-la submetido anteriormente). A senha não foi reiniciada." +#: mod/contacts.php:734 +msgid "Hidden" +msgstr "Ocultos" -#: ../../mod/lostpass.php:110 -msgid "Your password has been reset as requested." -msgstr "Sua senha foi reiniciada, conforme solicitado." +#: mod/contacts.php:737 +msgid "Only show hidden contacts" +msgstr "Exibe somente contatos ocultos" -#: ../../mod/lostpass.php:111 -msgid "Your new password is" -msgstr "Sua nova senha é" +#: mod/contacts.php:794 +msgid "Search your contacts" +msgstr "Pesquisar seus contatos" -#: ../../mod/lostpass.php:112 -msgid "Save or copy your new password - and then" -msgstr "Grave ou copie a sua nova senha e, então" +#: mod/contacts.php:802 mod/settings.php:158 mod/settings.php:689 +msgid "Update" +msgstr "Atualizar" -#: ../../mod/lostpass.php:113 -msgid "click here to login" -msgstr "clique aqui para entrar" +#: mod/contacts.php:805 mod/contacts.php:1013 +msgid "Archive" +msgstr "Arquivar" -#: ../../mod/lostpass.php:114 -msgid "" -"Your password may be changed from the Settings page after " -"successful login." -msgstr "Sua senha pode ser alterada na página de Configurações após você entrar em seu perfil." +#: mod/contacts.php:805 mod/contacts.php:1013 +msgid "Unarchive" +msgstr "Desarquivar" -#: ../../mod/lostpass.php:125 -#, php-format -msgid "" -"\n" -"\t\t\t\tDear %1$s,\n" -"\t\t\t\t\tYour password has been changed as requested. Please retain this\n" -"\t\t\t\tinformation for your records (or change your password immediately to\n" -"\t\t\t\tsomething that you will remember).\n" -"\t\t\t" -msgstr "\n\t\t\t\tCaro %1$s,\n\t\t\t\t\tSua senha foi alterada conforme solicitado. Por favor, guarde essas\n\t\t\t\tinformações para seus registros (ou altere a sua senha imediatamente para\n\t\t\t\talgo que você se lembrará).\n\t\t\t" +#: mod/contacts.php:808 +msgid "Batch Actions" +msgstr "" -#: ../../mod/lostpass.php:131 -#, php-format -msgid "" -"\n" -"\t\t\t\tYour login details are as follows:\n" -"\n" -"\t\t\t\tSite Location:\t%1$s\n" -"\t\t\t\tLogin Name:\t%2$s\n" -"\t\t\t\tPassword:\t%3$s\n" -"\n" -"\t\t\t\tYou may change that password from your account settings page after logging in.\n" -"\t\t\t" -msgstr "\n\t\t\t\tOs seus dados de login são os seguintes:\n\n\t\t\t\tLocalização do Site:\t%1$s\n\t\t\t\tNome de Login:\t%2$s\n\t\t\t\tSenha:\t%3$s\n\n\t\t\t\tVocê pode alterar esta senha na sua página de configurações depois que efetuar o seu login.\n\t\t\t" +#: mod/contacts.php:854 +msgid "View all contacts" +msgstr "Ver todos os contatos" -#: ../../mod/lostpass.php:147 -#, php-format -msgid "Your password has been changed at %s" -msgstr "Sua senha foi modifica às %s" +#: mod/contacts.php:864 +msgid "View all common friends" +msgstr "" -#: ../../mod/lostpass.php:159 -msgid "Forgot your Password?" -msgstr "Esqueceu a sua senha?" +#: mod/contacts.php:871 +msgid "Advanced Contact Settings" +msgstr "Configurações avançadas do contato" -#: ../../mod/lostpass.php:160 -msgid "" -"Enter your email address and submit to have your password reset. Then check " -"your email for further instructions." -msgstr "Digite o seu endereço de e-mail e clique em 'Reiniciar' para prosseguir com a reiniciação da sua senha. Após isso, verifique seu e-mail para mais instruções." +#: mod/contacts.php:916 +msgid "Mutual Friendship" +msgstr "Amizade mútua" -#: ../../mod/lostpass.php:161 -msgid "Nickname or Email: " -msgstr "Identificação ou e-mail: " +#: mod/contacts.php:920 +msgid "is a fan of yours" +msgstr "é um fã seu" -#: ../../mod/lostpass.php:162 -msgid "Reset" -msgstr "Reiniciar" +#: mod/contacts.php:924 +msgid "you are a fan of" +msgstr "você é um fã de" -#: ../../mod/babel.php:17 -msgid "Source (bbcode) text:" -msgstr "Texto fonte (bbcode):" +#: mod/contacts.php:999 +msgid "Toggle Blocked status" +msgstr "Alternar o status de bloqueio" -#: ../../mod/babel.php:23 -msgid "Source (Diaspora) text to convert to BBcode:" -msgstr "Texto fonte (Diaspora) a converter para BBcode:" +#: mod/contacts.php:1007 +msgid "Toggle Ignored status" +msgstr "Alternar o status de ignorado" -#: ../../mod/babel.php:31 -msgid "Source input: " -msgstr "Entrada fonte:" +#: mod/contacts.php:1015 +msgid "Toggle Archive status" +msgstr "Alternar o status de arquivamento" -#: ../../mod/babel.php:35 -msgid "bb2html (raw HTML): " -msgstr "bb2html (HTML puro):" +#: mod/contacts.php:1023 +msgid "Delete contact" +msgstr "Excluir o contato" -#: ../../mod/babel.php:39 -msgid "bb2html: " -msgstr "bb2html: " - -#: ../../mod/babel.php:43 -msgid "bb2html2bb: " -msgstr "bb2html2bb: " - -#: ../../mod/babel.php:47 -msgid "bb2md: " -msgstr "bb2md: " - -#: ../../mod/babel.php:51 -msgid "bb2md2html: " -msgstr "bb2md2html: " - -#: ../../mod/babel.php:55 -msgid "bb2dia2bb: " -msgstr "bb2dia2bb: " - -#: ../../mod/babel.php:59 -msgid "bb2md2html2bb: " -msgstr "bb2md2html2bb: " - -#: ../../mod/babel.php:69 -msgid "Source input (Diaspora format): " -msgstr "Fonte de entrada (formato Diaspora):" - -#: ../../mod/babel.php:74 -msgid "diaspora2bb: " -msgstr "diaspora2bb: " - -#: ../../mod/tagrm.php:41 -msgid "Tag removed" -msgstr "A etiqueta foi removida" - -#: ../../mod/tagrm.php:79 -msgid "Remove Item Tag" -msgstr "Remover a etiqueta do item" - -#: ../../mod/tagrm.php:81 -msgid "Select a tag to remove: " -msgstr "Selecione uma etiqueta para remover: " - -#: ../../mod/removeme.php:46 ../../mod/removeme.php:49 -msgid "Remove My Account" -msgstr "Remover minha conta" - -#: ../../mod/removeme.php:47 -msgid "" -"This will completely remove your account. Once this has been done it is not " -"recoverable." -msgstr "Isso removerá completamente a sua conta. Uma vez feito isso, não será mais possível recuperá-la." - -#: ../../mod/removeme.php:48 -msgid "Please enter your password for verification:" -msgstr "Por favor, digite a sua senha para verificação:" - -#: ../../mod/profperm.php:25 ../../mod/profperm.php:55 -msgid "Invalid profile identifier." -msgstr "Identificador de perfil inválido." - -#: ../../mod/profperm.php:101 -msgid "Profile Visibility Editor" -msgstr "Editor de visibilidade do perfil" - -#: ../../mod/profperm.php:114 -msgid "Visible To" -msgstr "Visível para" - -#: ../../mod/profperm.php:130 -msgid "All Contacts (with secure profile access)" -msgstr "Todos os contatos (com acesso a perfil seguro)" - -#: ../../mod/match.php:12 -msgid "Profile Match" -msgstr "Correspondência de perfil" - -#: ../../mod/match.php:20 -msgid "No keywords to match. Please add keywords to your default profile." -msgstr "Não foi encontrada nenhuma palavra-chave associada a você. Por favor, adicione algumas ao seu perfil padrão." - -#: ../../mod/match.php:57 -msgid "is interested in:" -msgstr "se interessa por:" - -#: ../../mod/events.php:66 -msgid "Event title and start time are required." -msgstr "O título do evento e a hora de início são obrigatórios." - -#: ../../mod/events.php:291 -msgid "l, F j" -msgstr "l, F j" - -#: ../../mod/events.php:313 -msgid "Edit event" -msgstr "Editar o evento" - -#: ../../mod/events.php:371 -msgid "Create New Event" -msgstr "Criar um novo evento" - -#: ../../mod/events.php:372 -msgid "Previous" -msgstr "Anterior" - -#: ../../mod/events.php:373 ../../mod/install.php:207 -msgid "Next" -msgstr "Próximo" - -#: ../../mod/events.php:446 -msgid "hour:minute" -msgstr "hora:minuto" - -#: ../../mod/events.php:456 -msgid "Event details" -msgstr "Detalhes do evento" - -#: ../../mod/events.php:457 -#, php-format -msgid "Format is %s %s. Starting date and Title are required." -msgstr "O formato é %s %s. O título e a data de início são obrigatórios." - -#: ../../mod/events.php:459 -msgid "Event Starts:" -msgstr "Início do evento:" - -#: ../../mod/events.php:459 ../../mod/events.php:473 -msgid "Required" -msgstr "Obrigatório" - -#: ../../mod/events.php:462 -msgid "Finish date/time is not known or not relevant" -msgstr "A data/hora de término não é conhecida ou não é relevante" - -#: ../../mod/events.php:464 -msgid "Event Finishes:" -msgstr "Término do evento:" - -#: ../../mod/events.php:467 -msgid "Adjust for viewer timezone" -msgstr "Ajustar para o fuso horário do visualizador" - -#: ../../mod/events.php:469 -msgid "Description:" -msgstr "Descrição:" - -#: ../../mod/events.php:473 -msgid "Title:" -msgstr "Título:" - -#: ../../mod/events.php:475 -msgid "Share this event" -msgstr "Compartilhar este evento" - -#: ../../mod/ping.php:240 -msgid "{0} wants to be your friend" -msgstr "{0} deseja ser seu amigo" - -#: ../../mod/ping.php:245 -msgid "{0} sent you a message" -msgstr "{0} lhe enviou uma mensagem" - -#: ../../mod/ping.php:250 -msgid "{0} requested registration" -msgstr "{0} solicitou registro" - -#: ../../mod/ping.php:256 -#, php-format -msgid "{0} commented %s's post" -msgstr "{0} comentou a publicação de %s" - -#: ../../mod/ping.php:261 -#, php-format -msgid "{0} liked %s's post" -msgstr "{0} gostou da publicação de %s" - -#: ../../mod/ping.php:266 -#, php-format -msgid "{0} disliked %s's post" -msgstr "{0} desgostou da publicação de %s" - -#: ../../mod/ping.php:271 -#, php-format -msgid "{0} is now friends with %s" -msgstr "{0} agora é amigo de %s" - -#: ../../mod/ping.php:276 -msgid "{0} posted" -msgstr "{0} publicou" - -#: ../../mod/ping.php:281 -#, php-format -msgid "{0} tagged %s's post with #%s" -msgstr "{0} etiquetou a publicação de %s com #%s" - -#: ../../mod/ping.php:287 -msgid "{0} mentioned you in a post" -msgstr "{0} mencionou você em uma publicação" - -#: ../../mod/mood.php:133 -msgid "Mood" -msgstr "Humor" - -#: ../../mod/mood.php:134 -msgid "Set your current mood and tell your friends" -msgstr "Defina o seu humor e conte aos seus amigos" - -#: ../../mod/search.php:174 ../../mod/community.php:62 -#: ../../mod/community.php:71 -msgid "No results." -msgstr "Nenhum resultado." - -#: ../../mod/message.php:67 -msgid "Unable to locate contact information." -msgstr "Não foi possível localizar informação do contato." - -#: ../../mod/message.php:207 -msgid "Do you really want to delete this message?" -msgstr "Você realmente deseja deletar essa mensagem?" - -#: ../../mod/message.php:227 -msgid "Message deleted." -msgstr "A mensagem foi excluída." - -#: ../../mod/message.php:258 -msgid "Conversation removed." -msgstr "A conversa foi removida." - -#: ../../mod/message.php:371 -msgid "No messages." -msgstr "Nenhuma mensagem." - -#: ../../mod/message.php:378 -#, php-format -msgid "Unknown sender - %s" -msgstr "Remetente desconhecido - %s" - -#: ../../mod/message.php:381 -#, php-format -msgid "You and %s" -msgstr "Você e %s" - -#: ../../mod/message.php:384 -#, php-format -msgid "%s and You" -msgstr "%s e você" - -#: ../../mod/message.php:405 ../../mod/message.php:546 -msgid "Delete conversation" -msgstr "Excluir conversa" - -#: ../../mod/message.php:408 -msgid "D, d M Y - g:i A" -msgstr "D, d M Y - g:i A" - -#: ../../mod/message.php:411 -#, php-format -msgid "%d message" -msgid_plural "%d messages" -msgstr[0] "%d mensagem" -msgstr[1] "%d mensagens" - -#: ../../mod/message.php:450 -msgid "Message not available." -msgstr "A mensagem não está disponível." - -#: ../../mod/message.php:520 -msgid "Delete message" -msgstr "Excluir a mensagem" - -#: ../../mod/message.php:548 -msgid "" -"No secure communications available. You may be able to " -"respond from the sender's profile page." -msgstr "Não foi encontrada nenhuma comunicação segura. Você pode ser capaz de responder a partir da página de perfil do remetente." - -#: ../../mod/message.php:552 -msgid "Send Reply" -msgstr "Enviar resposta" - -#: ../../mod/community.php:23 -msgid "Not available." -msgstr "Não disponível." - -#: ../../mod/profiles.php:18 ../../mod/profiles.php:133 -#: ../../mod/profiles.php:179 ../../mod/profiles.php:630 -#: ../../mod/dfrn_confirm.php:64 +#: mod/dfrn_confirm.php:66 mod/profiles.php:19 mod/profiles.php:134 +#: mod/profiles.php:180 mod/profiles.php:610 msgid "Profile not found." msgstr "O perfil não foi encontrado." -#: ../../mod/profiles.php:37 -msgid "Profile deleted." -msgstr "O perfil foi excluído." - -#: ../../mod/profiles.php:55 ../../mod/profiles.php:89 -msgid "Profile-" -msgstr "Perfil-" - -#: ../../mod/profiles.php:74 ../../mod/profiles.php:117 -msgid "New profile created." -msgstr "O novo perfil foi criado." - -#: ../../mod/profiles.php:95 -msgid "Profile unavailable to clone." -msgstr "O perfil não está disponível para clonagem." - -#: ../../mod/profiles.php:189 -msgid "Profile Name is required." -msgstr "É necessário informar o nome do perfil." - -#: ../../mod/profiles.php:340 -msgid "Marital Status" -msgstr "Situação amorosa" - -#: ../../mod/profiles.php:344 -msgid "Romantic Partner" -msgstr "Parceiro romântico" - -#: ../../mod/profiles.php:348 -msgid "Likes" -msgstr "Gosta de" - -#: ../../mod/profiles.php:352 -msgid "Dislikes" -msgstr "Não gosta de" - -#: ../../mod/profiles.php:356 -msgid "Work/Employment" -msgstr "Trabalho/emprego" - -#: ../../mod/profiles.php:359 -msgid "Religion" -msgstr "Religião" - -#: ../../mod/profiles.php:363 -msgid "Political Views" -msgstr "Posicionamento político" - -#: ../../mod/profiles.php:367 -msgid "Gender" -msgstr "Gênero" - -#: ../../mod/profiles.php:371 -msgid "Sexual Preference" -msgstr "Preferência sexual" - -#: ../../mod/profiles.php:375 -msgid "Homepage" -msgstr "Página Principal" - -#: ../../mod/profiles.php:379 ../../mod/profiles.php:698 -msgid "Interests" -msgstr "Interesses" - -#: ../../mod/profiles.php:383 -msgid "Address" -msgstr "Endereço" - -#: ../../mod/profiles.php:390 ../../mod/profiles.php:694 -msgid "Location" -msgstr "Localização" - -#: ../../mod/profiles.php:473 -msgid "Profile updated." -msgstr "O perfil foi atualizado." - -#: ../../mod/profiles.php:568 -msgid " and " -msgstr " e " - -#: ../../mod/profiles.php:576 -msgid "public profile" -msgstr "perfil público" - -#: ../../mod/profiles.php:579 -#, php-format -msgid "%1$s changed %2$s to “%3$s”" -msgstr "%1$s mudou %2$s para “%3$s”" - -#: ../../mod/profiles.php:580 -#, php-format -msgid " - Visit %1$s's %2$s" -msgstr " - Visite %2$s de %1$s" - -#: ../../mod/profiles.php:583 -#, php-format -msgid "%1$s has an updated %2$s, changing %3$s." -msgstr "%1$s foi atualizado %2$s, mudando %3$s." - -#: ../../mod/profiles.php:658 -msgid "Hide contacts and friends:" -msgstr "Esconder contatos e amigos:" - -#: ../../mod/profiles.php:663 -msgid "Hide your contact/friend list from viewers of this profile?" -msgstr "Ocultar sua lista de contatos/amigos dos visitantes no seu perfil?" - -#: ../../mod/profiles.php:685 -msgid "Edit Profile Details" -msgstr "Editar os detalhes do perfil" - -#: ../../mod/profiles.php:687 -msgid "Change Profile Photo" -msgstr "Mudar Foto do Perfil" - -#: ../../mod/profiles.php:688 -msgid "View this profile" -msgstr "Ver este perfil" - -#: ../../mod/profiles.php:689 -msgid "Create a new profile using these settings" -msgstr "Criar um novo perfil usando estas configurações" - -#: ../../mod/profiles.php:690 -msgid "Clone this profile" -msgstr "Clonar este perfil" - -#: ../../mod/profiles.php:691 -msgid "Delete this profile" -msgstr "Excluir este perfil" - -#: ../../mod/profiles.php:692 -msgid "Basic information" -msgstr "Informação básica" - -#: ../../mod/profiles.php:693 -msgid "Profile picture" -msgstr "Foto do perfil" - -#: ../../mod/profiles.php:695 -msgid "Preferences" -msgstr "Preferências" - -#: ../../mod/profiles.php:696 -msgid "Status information" -msgstr "Informação de Status" - -#: ../../mod/profiles.php:697 -msgid "Additional information" -msgstr "Informações adicionais" - -#: ../../mod/profiles.php:699 ../../mod/newmember.php:36 -#: ../../mod/profile_photo.php:244 -msgid "Upload Profile Photo" -msgstr "Enviar foto do perfil" - -#: ../../mod/profiles.php:700 -msgid "Profile Name:" -msgstr "Nome do perfil:" - -#: ../../mod/profiles.php:701 -msgid "Your Full Name:" -msgstr "Seu nome completo:" - -#: ../../mod/profiles.php:702 -msgid "Title/Description:" -msgstr "Título/Descrição:" - -#: ../../mod/profiles.php:703 -msgid "Your Gender:" -msgstr "Seu gênero:" - -#: ../../mod/profiles.php:704 -#, php-format -msgid "Birthday (%s):" -msgstr "Aniversário (%s):" - -#: ../../mod/profiles.php:705 -msgid "Street Address:" -msgstr "Endereço:" - -#: ../../mod/profiles.php:706 -msgid "Locality/City:" -msgstr "Localidade/Cidade:" - -#: ../../mod/profiles.php:707 -msgid "Postal/Zip Code:" -msgstr "CEP:" - -#: ../../mod/profiles.php:708 -msgid "Country:" -msgstr "País:" - -#: ../../mod/profiles.php:709 -msgid "Region/State:" -msgstr "Região/Estado:" - -#: ../../mod/profiles.php:710 -msgid " Marital Status:" -msgstr " Situação amorosa:" - -#: ../../mod/profiles.php:711 -msgid "Who: (if applicable)" -msgstr "Quem: (se pertinente)" - -#: ../../mod/profiles.php:712 -msgid "Examples: cathy123, Cathy Williams, cathy@example.com" -msgstr "Exemplos: fulano123, Fulano de Tal, fulano@exemplo.com" - -#: ../../mod/profiles.php:713 -msgid "Since [date]:" -msgstr "Desde [data]:" - -#: ../../mod/profiles.php:715 -msgid "Homepage URL:" -msgstr "Endereço do site web:" - -#: ../../mod/profiles.php:718 -msgid "Religious Views:" -msgstr "Orientação religiosa:" - -#: ../../mod/profiles.php:719 -msgid "Public Keywords:" -msgstr "Palavras-chave públicas:" - -#: ../../mod/profiles.php:720 -msgid "Private Keywords:" -msgstr "Palavras-chave privadas:" - -#: ../../mod/profiles.php:723 -msgid "Example: fishing photography software" -msgstr "Exemplo: pesca fotografia software" - -#: ../../mod/profiles.php:724 -msgid "(Used for suggesting potential friends, can be seen by others)" -msgstr "(Usado para sugerir amigos em potencial, pode ser visto pelos outros)" - -#: ../../mod/profiles.php:725 -msgid "(Used for searching profiles, never shown to others)" -msgstr "(Usado na pesquisa de perfis, nunca é exibido para os outros)" - -#: ../../mod/profiles.php:726 -msgid "Tell us about yourself..." -msgstr "Fale um pouco sobre você..." - -#: ../../mod/profiles.php:727 -msgid "Hobbies/Interests" -msgstr "Passatempos/Interesses" - -#: ../../mod/profiles.php:728 -msgid "Contact information and Social Networks" -msgstr "Informações de contato e redes sociais" - -#: ../../mod/profiles.php:729 -msgid "Musical interests" -msgstr "Preferências musicais" - -#: ../../mod/profiles.php:730 -msgid "Books, literature" -msgstr "Livros, literatura" - -#: ../../mod/profiles.php:731 -msgid "Television" -msgstr "Televisão" - -#: ../../mod/profiles.php:732 -msgid "Film/dance/culture/entertainment" -msgstr "Filme/dança/cultura/entretenimento" - -#: ../../mod/profiles.php:733 -msgid "Love/romance" -msgstr "Amor/romance" - -#: ../../mod/profiles.php:734 -msgid "Work/employment" -msgstr "Trabalho/emprego" - -#: ../../mod/profiles.php:735 -msgid "School/education" -msgstr "Escola/educação" - -#: ../../mod/profiles.php:740 -msgid "" -"This is your public profile.
      It may " -"be visible to anybody using the internet." -msgstr "Este é o seu perfil público.
      Ele pode estar visível para qualquer um que acesse a Internet." - -#: ../../mod/profiles.php:750 ../../mod/directory.php:113 -msgid "Age: " -msgstr "Idade: " - -#: ../../mod/profiles.php:803 -msgid "Edit/Manage Profiles" -msgstr "Editar/Gerenciar perfis" - -#: ../../mod/install.php:117 -msgid "Friendica Communications Server - Setup" -msgstr "Servidor de Comunicações Friendica - Configuração" - -#: ../../mod/install.php:123 -msgid "Could not connect to database." -msgstr "Não foi possível conectar ao banco de dados." - -#: ../../mod/install.php:127 -msgid "Could not create table." -msgstr "Não foi possível criar tabela." - -#: ../../mod/install.php:133 -msgid "Your Friendica site database has been installed." -msgstr "O banco de dados do seu site Friendica foi instalado." - -#: ../../mod/install.php:138 -msgid "" -"You may need to import the file \"database.sql\" manually using phpmyadmin " -"or mysql." -msgstr "Você provavelmente precisará importar o arquivo \"database.sql\" manualmente, usando o phpmyadmin ou o mysql." - -#: ../../mod/install.php:139 ../../mod/install.php:206 -#: ../../mod/install.php:525 -msgid "Please see the file \"INSTALL.txt\"." -msgstr "Por favor, dê uma olhada no arquivo \"INSTALL.TXT\"." - -#: ../../mod/install.php:203 -msgid "System check" -msgstr "Checagem do sistema" - -#: ../../mod/install.php:208 -msgid "Check again" -msgstr "Checar novamente" - -#: ../../mod/install.php:227 -msgid "Database connection" -msgstr "Conexão de banco de dados" - -#: ../../mod/install.php:228 -msgid "" -"In order to install Friendica we need to know how to connect to your " -"database." -msgstr "À fim de instalar o Friendica, você precisa saber como se conectar ao seu banco de dados." - -#: ../../mod/install.php:229 -msgid "" -"Please contact your hosting provider or site administrator if you have " -"questions about these settings." -msgstr "Por favor, entre em contato com a sua hospedagem ou com o administrador do site caso você tenha alguma dúvida em relação a essas configurações." - -#: ../../mod/install.php:230 -msgid "" -"The database you specify below should already exist. If it does not, please " -"create it before continuing." -msgstr "O banco de dados que você especificou abaixo já deve existir. Caso contrário, por favor crie-o antes de continuar." - -#: ../../mod/install.php:234 -msgid "Database Server Name" -msgstr "Nome do servidor de banco de dados" - -#: ../../mod/install.php:235 -msgid "Database Login Name" -msgstr "Nome do usuário do banco de dados" - -#: ../../mod/install.php:236 -msgid "Database Login Password" -msgstr "Senha do usuário do banco de dados" - -#: ../../mod/install.php:237 -msgid "Database Name" -msgstr "Nome do banco de dados" - -#: ../../mod/install.php:238 ../../mod/install.php:277 -msgid "Site administrator email address" -msgstr "Endereço de email do administrador do site" - -#: ../../mod/install.php:238 ../../mod/install.php:277 -msgid "" -"Your account email address must match this in order to use the web admin " -"panel." -msgstr "O endereço de email da sua conta deve ser igual a este para que você possa utilizar o painel de administração web." - -#: ../../mod/install.php:242 ../../mod/install.php:280 -msgid "Please select a default timezone for your website" -msgstr "Por favor, selecione o fuso horário padrão para o seu site" - -#: ../../mod/install.php:267 -msgid "Site settings" -msgstr "Configurações do site" - -#: ../../mod/install.php:321 -msgid "Could not find a command line version of PHP in the web server PATH." -msgstr "Não foi possível encontrar uma versão de linha de comando do PHP nos caminhos do seu servidor web." - -#: ../../mod/install.php:322 -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. See 'Activating scheduled tasks'" -msgstr "Caso você não tenha uma versão de linha de comando do PHP instalado no seu servidor, você não será capaz de executar a captação em segundo plano. Dê uma olhada em 'Activating scheduled tasks'" - -#: ../../mod/install.php:326 -msgid "PHP executable path" -msgstr "Caminho para o executável do PhP" - -#: ../../mod/install.php:326 -msgid "" -"Enter full path to php executable. You can leave this blank to continue the " -"installation." -msgstr "Digite o caminho completo do executável PHP. Você pode deixar isso em branco para continuar com a instalação." - -#: ../../mod/install.php:331 -msgid "Command line PHP" -msgstr "PHP em linha de comando" - -#: ../../mod/install.php:340 -msgid "PHP executable is not the php cli binary (could be cgi-fgci version)" -msgstr "O executável do PHP não é o binário do php cli (could be cgi-fcgi version)" - -#: ../../mod/install.php:341 -msgid "Found PHP version: " -msgstr "Encontrado PHP versão:" - -#: ../../mod/install.php:343 -msgid "PHP cli binary" -msgstr "Binário cli do PHP" - -#: ../../mod/install.php:354 -msgid "" -"The command line version of PHP on your system does not have " -"\"register_argc_argv\" enabled." -msgstr "\"register_argc_argv\" não está habilitado na versão de linha de comando do PHP no seu sistema." - -#: ../../mod/install.php:355 -msgid "This is required for message delivery to work." -msgstr "Isto é necessário para o funcionamento do envio de mensagens." - -#: ../../mod/install.php:357 -msgid "PHP register_argc_argv" -msgstr "PHP register_argc_argv" - -#: ../../mod/install.php:378 -msgid "" -"Error: the \"openssl_pkey_new\" function on this system is not able to " -"generate encryption keys" -msgstr "Erro: a função \"openssl_pkey_new\" no seu sistema não é capaz de gerar as chaves de criptografia" - -#: ../../mod/install.php:379 -msgid "" -"If running under Windows, please see " -"\"http://www.php.net/manual/en/openssl.installation.php\"." -msgstr "Se estiver usando o Windows, por favor dê uma olhada em \"http://www.php.net/manual/en/openssl.installation.php\"." - -#: ../../mod/install.php:381 -msgid "Generate encryption keys" -msgstr "Gerar chaves de encriptação" - -#: ../../mod/install.php:388 -msgid "libCurl PHP module" -msgstr "Módulo PHP libCurl" - -#: ../../mod/install.php:389 -msgid "GD graphics PHP module" -msgstr "Módulo PHP GD graphics" - -#: ../../mod/install.php:390 -msgid "OpenSSL PHP module" -msgstr "Módulo PHP OpenSSL" - -#: ../../mod/install.php:391 -msgid "mysqli PHP module" -msgstr "Módulo PHP mysqli" - -#: ../../mod/install.php:392 -msgid "mb_string PHP module" -msgstr "Módulo PHP mb_string " - -#: ../../mod/install.php:397 ../../mod/install.php:399 -msgid "Apache mod_rewrite module" -msgstr "Módulo mod_rewrite do Apache" - -#: ../../mod/install.php:397 -msgid "" -"Error: Apache webserver mod-rewrite module is required but not installed." -msgstr "Erro: o módulo mod-rewrite do Apache é necessário, mas não está instalado." - -#: ../../mod/install.php:405 -msgid "Error: libCURL PHP module required but not installed." -msgstr "Erro: o módulo libCURL do PHP é necessário, mas não está instalado." - -#: ../../mod/install.php:409 -msgid "" -"Error: GD graphics PHP module with JPEG support required but not installed." -msgstr "Erro: o módulo gráfico GD, com suporte a JPEG, do PHP é necessário, mas não está instalado." - -#: ../../mod/install.php:413 -msgid "Error: openssl PHP module required but not installed." -msgstr "Erro: o módulo openssl do PHP é necessário, mas não está instalado." - -#: ../../mod/install.php:417 -msgid "Error: mysqli PHP module required but not installed." -msgstr "Erro: o módulo mysqli do PHP é necessário, mas não está instalado." - -#: ../../mod/install.php:421 -msgid "Error: mb_string PHP module required but not installed." -msgstr "Erro: o módulo mb_string PHP é necessário, mas não está instalado." - -#: ../../mod/install.php:438 -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 "O instalador web precisa criar um arquivo chamado \".htconfig.php\" na pasta raiz da instalação e não está conseguindo." - -#: ../../mod/install.php:439 -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 "Geralmente isso está relacionado às definições de permissão, uma vez que o servidor web pode não estar conseguindo escrever os arquivos nesta pasta." - -#: ../../mod/install.php:440 -msgid "" -"At the end of this procedure, we will give you a text to save in a file " -"named .htconfig.php in your Friendica top folder." -msgstr "Ao final desse procedimento, será fornecido um texto que deverá ser salvo em um arquivo de nome. htconfig.php, na pasta raiz da instalação do seu Friendica." - -#: ../../mod/install.php:441 -msgid "" -"You can alternatively skip this procedure and perform a manual installation." -" Please see the file \"INSTALL.txt\" for instructions." -msgstr "Você também pode pular esse procedimento e executar uma instalação manual. Por favor, dê uma olhada no arquivo \"INSTALL.TXT\" para instruções." - -#: ../../mod/install.php:444 -msgid ".htconfig.php is writable" -msgstr ".htconfig.php tem permissão de escrita" - -#: ../../mod/install.php:454 -msgid "" -"Friendica uses the Smarty3 template engine to render its web views. Smarty3 " -"compiles templates to PHP to speed up rendering." -msgstr "Friendica usa o engine de template Smarty3 para renderizar suas web views. Smarty3 compila templates para PHP para acelerar a renderização." - -#: ../../mod/install.php:455 -msgid "" -"In order to store these compiled templates, the web server needs to have " -"write access to the directory view/smarty3/ under the Friendica top level " -"folder." -msgstr "Para guardar os templates compilados, o servidor web necessita de permissão de escrita no diretório view/smarty3/ no diretório raíz do Friendica." - -#: ../../mod/install.php:456 -msgid "" -"Please ensure that the user that your web server runs as (e.g. www-data) has" -" write access to this folder." -msgstr "Favor se certificar que o usuário sob o qual o servidor web roda (ex: www-data) tenha permissão de escrita nesse diretório." - -#: ../../mod/install.php:457 -msgid "" -"Note: as a security measure, you should give the web server write access to " -"view/smarty3/ only--not the template files (.tpl) that it contains." -msgstr "Nota: como uma medida de segurança, você deve fornecer ao servidor web permissão de escrita em view/smarty3/ somente--não aos arquivos de template (.tpl) que ele contém." - -#: ../../mod/install.php:460 -msgid "view/smarty3 is writable" -msgstr "view/smarty3 tem escrita permitida" - -#: ../../mod/install.php:472 -msgid "" -"Url rewrite in .htaccess is not working. Check your server configuration." -msgstr "A reescrita de URLs definida no .htaccess não está funcionando. Por favor, verifique as configurações do seu servidor." - -#: ../../mod/install.php:474 -msgid "Url rewrite is working" -msgstr "A reescrita de URLs está funcionando" - -#: ../../mod/install.php:484 -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 "Não foi possível gravar o arquivo de configuração \".htconfig.php\". Por favor, use o texto incluso para criar um arquivo de configuração na raiz da instalação do Friendika em seu servidor web." - -#: ../../mod/install.php:523 -msgid "

      What next

      " -msgstr "

      A seguir

      " - -#: ../../mod/install.php:524 -msgid "" -"IMPORTANT: You will need to [manually] setup a scheduled task for the " -"poller." -msgstr "IMPORTANTE: Você deve configurar [manualmente] uma tarefa agendada para o captador." - -#: ../../mod/help.php:31 -msgid "Help:" -msgstr "Ajuda:" - -#: ../../mod/crepair.php:106 -msgid "Contact settings applied." -msgstr "As configurações do contato foram aplicadas." - -#: ../../mod/crepair.php:108 -msgid "Contact update failed." -msgstr "Não foi possível atualizar o contato." - -#: ../../mod/crepair.php:139 -msgid "Repair Contact Settings" -msgstr "Corrigir configurações do contato" - -#: ../../mod/crepair.php:141 -msgid "" -"WARNING: This is highly advanced and if you enter incorrect" -" information your communications with this contact may stop working." -msgstr "ATENÇÃO: Isso é muito avançado, se você digitar informações incorretas, suas comunicações com esse contato pode parar de funcionar." - -#: ../../mod/crepair.php:142 -msgid "" -"Please use your browser 'Back' button now if you are " -"uncertain what to do on this page." -msgstr "Por favor, use o botão 'Voltar' do seu navegador agora, caso você não tenha certeza do que está fazendo." - -#: ../../mod/crepair.php:148 -msgid "Return to contact editor" -msgstr "Voltar ao editor de contatos" - -#: ../../mod/crepair.php:159 ../../mod/crepair.php:161 -msgid "No mirroring" -msgstr "Nenhum espelhamento" - -#: ../../mod/crepair.php:159 -msgid "Mirror as forwarded posting" -msgstr "Espelhar como postagem encaminhada" - -#: ../../mod/crepair.php:159 ../../mod/crepair.php:161 -msgid "Mirror as my own posting" -msgstr "Espelhar como minha própria postagem" - -#: ../../mod/crepair.php:166 -msgid "Account Nickname" -msgstr "Identificação da conta" - -#: ../../mod/crepair.php:167 -msgid "@Tagname - overrides Name/Nickname" -msgstr "@Tagname - sobrescreve Nome/Identificação" - -#: ../../mod/crepair.php:168 -msgid "Account URL" -msgstr "URL da conta" - -#: ../../mod/crepair.php:169 -msgid "Friend Request URL" -msgstr "URL da requisição de amizade" - -#: ../../mod/crepair.php:170 -msgid "Friend Confirm URL" -msgstr "URL da confirmação de amizade" - -#: ../../mod/crepair.php:171 -msgid "Notification Endpoint URL" -msgstr "URL do ponto final da notificação" - -#: ../../mod/crepair.php:172 -msgid "Poll/Feed URL" -msgstr "URL do captador/fonte de notícias" - -#: ../../mod/crepair.php:173 -msgid "New photo from this URL" -msgstr "Nova imagem desta URL" - -#: ../../mod/crepair.php:174 -msgid "Remote Self" -msgstr "Auto remoto" - -#: ../../mod/crepair.php:176 -msgid "Mirror postings from this contact" -msgstr "Espelhar publicações deste contato" - -#: ../../mod/crepair.php:176 -msgid "" -"Mark this contact as remote_self, this will cause friendica to repost new " -"entries from this contact." -msgstr "Marcar este contato como auto remoto fará com que o friendica republique novas entradas deste usuário." - -#: ../../mod/newmember.php:6 -msgid "Welcome to Friendica" -msgstr "Bemvindo ao Friendica" - -#: ../../mod/newmember.php:8 -msgid "New Member Checklist" -msgstr "Dicas para os novos membros" - -#: ../../mod/newmember.php:12 -msgid "" -"We would like to offer some tips and links to help make your experience " -"enjoyable. Click any item to visit the relevant page. A link to this page " -"will be visible from your home page for two weeks after your initial " -"registration and then will quietly disappear." -msgstr "Gostaríamos de oferecer algumas dicas e links para ajudar a tornar a sua experiência agradável. Clique em qualquer item para visitar a página correspondente. Um link para essa página será visível em sua home page por duas semanas após o seu registro inicial e, então, desaparecerá discretamente." - -#: ../../mod/newmember.php:14 -msgid "Getting Started" -msgstr "Do Início" - -#: ../../mod/newmember.php:18 -msgid "Friendica Walk-Through" -msgstr "Passo-a-passo da friendica" - -#: ../../mod/newmember.php:18 -msgid "" -"On your Quick Start page - find a brief introduction to your " -"profile and network tabs, make some new connections, and find some groups to" -" join." -msgstr "Na sua página Início Rápido - encontre uma introdução rápida ao seu perfil e abas da rede, faça algumas conexões novas, e encontre alguns grupos entrar." - -#: ../../mod/newmember.php:26 -msgid "Go to Your Settings" -msgstr "Ir para as suas configurações" - -#: ../../mod/newmember.php:26 -msgid "" -"On your Settings page - change your initial password. Also make a " -"note of your Identity Address. This looks just like an email address - and " -"will be useful in making friends on the free social web." -msgstr "Em sua página Configurações - mude sua senha inicial. Também tome nota de seu Endereço de Identidade. Isso se parece com um endereço de e-mail - e será útil para se fazer amigos na rede social livre." - -#: ../../mod/newmember.php:28 -msgid "" -"Review the other settings, particularly the privacy settings. An unpublished" -" directory listing is like having an unlisted phone number. In general, you " -"should probably publish your listing - unless all of your friends and " -"potential friends know exactly how to find you." -msgstr "Revise as outras configurações, em particular as relacionadas a privacidade. Não estar listado no diretório é o equivalente a não ter o seu número na lista telefônica. Normalmente é interessante você estar listado - a não ser que os seu amigos atuais e potenciais saibam exatamente como encontrar você." - -#: ../../mod/newmember.php:36 -msgid "" -"Upload a profile photo if you have not done so already. Studies have shown " -"that people with real photos of themselves are ten times more likely to make" -" friends than people who do not." -msgstr "Envie uma foto para o seu perfil, caso ainda não tenha feito isso. Estudos indicam que pessoas que publicam fotos reais delas mesmas têm 10 vezes mais chances de encontrar novos amigos do que as que não o fazem." - -#: ../../mod/newmember.php:38 -msgid "Edit Your Profile" -msgstr "Editar seu perfil" - -#: ../../mod/newmember.php:38 -msgid "" -"Edit your default profile to your liking. Review the " -"settings for hiding your list of friends and hiding the profile from unknown" -" visitors." -msgstr "Edite o seu perfil padrão a seu gosto. Revise as configurações de ocultação da sua lista de amigos e do seu perfil de visitantes desconhecidos." - -#: ../../mod/newmember.php:40 -msgid "Profile Keywords" -msgstr "Palavras-chave do perfil" - -#: ../../mod/newmember.php:40 -msgid "" -"Set some public keywords for your default profile which describe your " -"interests. We may be able to find other people with similar interests and " -"suggest friendships." -msgstr "Defina algumas palavras-chave públicas para o seu perfil padrão, que descrevam os seus interesses. Nós podemos encontrar outras pessoas com interesses similares e sugerir novas amizades." - -#: ../../mod/newmember.php:44 -msgid "Connecting" -msgstr "Conexões" - -#: ../../mod/newmember.php:49 -msgid "" -"Authorise the Facebook Connector if you currently have a Facebook account " -"and we will (optionally) import all your Facebook friends and conversations." -msgstr "Autorize o Conector com Facebook, caso você tenha uma conta lá e nós (opcionalmente) importaremos todos os seus amigos e conversas do Facebook." - -#: ../../mod/newmember.php:51 -msgid "" -"If this is your own personal server, installing the Facebook addon " -"may ease your transition to the free social web." -msgstr "Se esse é o seu servidor pessoal, instalar o complemento do Facebook talvez facilite a transição para a rede social livre." - -#: ../../mod/newmember.php:56 -msgid "Importing Emails" -msgstr "Importação de e-mails" - -#: ../../mod/newmember.php:56 -msgid "" -"Enter your email access information on your Connector Settings page if you " -"wish to import and interact with friends or mailing lists from your email " -"INBOX" -msgstr "Forneça a informação de acesso ao seu e-mail na sua página de Configuração de Conector se você deseja importar e interagir com amigos ou listas de discussão da sua Caixa de Entrada de e-mail" - -#: ../../mod/newmember.php:58 -msgid "Go to Your Contacts Page" -msgstr "Ir para a sua página de contatos" - -#: ../../mod/newmember.php:58 -msgid "" -"Your Contacts page is your gateway to managing friendships and connecting " -"with friends on other networks. Typically you enter their address or site " -"URL in the Add New Contact dialog." -msgstr "Sua página de contatos é sua rota para o gerenciamento de amizades e conexão com amigos em outras redes. Geralmente você fornece o endereço deles ou a URL do site na janela de diálogo Adicionar Novo Contato." - -#: ../../mod/newmember.php:60 -msgid "Go to Your Site's Directory" -msgstr "Ir para o diretório do seu site" - -#: ../../mod/newmember.php:60 -msgid "" -"The Directory page lets you find other people in this network or other " -"federated sites. Look for a Connect or Follow link on " -"their profile page. Provide your own Identity Address if requested." -msgstr "A página de Diretório permite que você encontre outras pessoas nesta rede ou em outras redes federadas. Procure por um link Conectar ou Seguir no perfil que deseja acompanhar. Forneça o seu Endereço de Identidade próprio, se solicitado." - -#: ../../mod/newmember.php:62 -msgid "Finding New People" -msgstr "Pesquisar por novas pessoas" - -#: ../../mod/newmember.php:62 -msgid "" -"On the side panel of the Contacts page are several tools to find new " -"friends. We can match people by interest, look up people by name or " -"interest, and provide suggestions based on network relationships. On a brand" -" new site, friend suggestions will usually begin to be populated within 24 " -"hours." -msgstr "No painel lateral da página de Contatos existem várias ferramentas para encontrar novos amigos. Você pode descobrir pessoas com os mesmos interesses, procurar por nomes ou interesses e fornecer sugestões baseadas nos relacionamentos da rede. Em um site completamente novo, as sugestões de amizades geralmente começam a ser populadas dentro de 24 horas." - -#: ../../mod/newmember.php:70 -msgid "Group Your Contacts" -msgstr "Agrupe seus contatos" - -#: ../../mod/newmember.php:70 -msgid "" -"Once you have made some friends, organize them into private conversation " -"groups from the sidebar of your Contacts page and then you can interact with" -" each group privately on your Network page." -msgstr "Após fazer novas amizades, organize-as em grupos de conversa privados, a partir da barra lateral na sua página de Contatos. A partir daí, você poderá interagir com cada grupo privativamente, na sua página de Rede." - -#: ../../mod/newmember.php:73 -msgid "Why Aren't My Posts Public?" -msgstr "Por que as minhas publicações não são públicas?" - -#: ../../mod/newmember.php:73 -msgid "" -"Friendica respects your privacy. By default, your posts will only show up to" -" people you've added as friends. For more information, see the help section " -"from the link above." -msgstr "A friendica respeita sua privacidade. Por padrão, suas publicações estarão visíveis apenas para as pessoas que você adicionou como amigos. Para mais informações, veja a página de ajuda, a partir do link acima." - -#: ../../mod/newmember.php:78 -msgid "Getting Help" -msgstr "Obtendo ajuda" - -#: ../../mod/newmember.php:82 -msgid "Go to the Help Section" -msgstr "Ir para a seção de ajuda" - -#: ../../mod/newmember.php:82 -msgid "" -"Our help pages may be consulted for detail on other program" -" features and resources." -msgstr "Nossas páginas de ajuda podem ser consultadas para mais detalhes sobre características e recursos do programa." - -#: ../../mod/poke.php:192 -msgid "Poke/Prod" -msgstr "Cutucar/Incitar" - -#: ../../mod/poke.php:193 -msgid "poke, prod or do other things to somebody" -msgstr "Cutuca, incita ou faz outras coisas com alguém" - -#: ../../mod/poke.php:194 -msgid "Recipient" -msgstr "Destinatário" - -#: ../../mod/poke.php:195 -msgid "Choose what you wish to do to recipient" -msgstr "Selecione o que você deseja fazer com o destinatário" - -#: ../../mod/poke.php:198 -msgid "Make this post private" -msgstr "Fazer com que essa publicação se torne privada" - -#: ../../mod/display.php:496 -msgid "Item has been removed." -msgstr "O item foi removido." - -#: ../../mod/subthread.php:103 -#, php-format -msgid "%1$s is following %2$s's %3$s" -msgstr "%1$s está seguindo %2$s's %3$s" - -#: ../../mod/dfrn_poll.php:103 ../../mod/dfrn_poll.php:536 -#, php-format -msgid "%1$s welcomes %2$s" -msgstr "%1$s dá as boas vinda à %2$s" - -#: ../../mod/dfrn_confirm.php:121 +#: mod/dfrn_confirm.php:123 msgid "" "This may occasionally happen if contact was requested by both persons and it" " has already been approved." msgstr "Isso pode acontecer eventualmente se o contato foi solicitado por ambas as pessoas e ele já tinha sido aprovado." -#: ../../mod/dfrn_confirm.php:240 +#: mod/dfrn_confirm.php:242 msgid "Response from remote site was not understood." msgstr "A resposta do site remoto não foi compreendida." -#: ../../mod/dfrn_confirm.php:249 ../../mod/dfrn_confirm.php:254 +#: mod/dfrn_confirm.php:251 mod/dfrn_confirm.php:256 msgid "Unexpected response from remote site: " msgstr "Resposta inesperada do site remoto: " -#: ../../mod/dfrn_confirm.php:263 +#: mod/dfrn_confirm.php:265 msgid "Confirmation completed successfully." msgstr "A confirmação foi completada com sucesso." -#: ../../mod/dfrn_confirm.php:265 ../../mod/dfrn_confirm.php:279 -#: ../../mod/dfrn_confirm.php:286 +#: mod/dfrn_confirm.php:267 mod/dfrn_confirm.php:281 mod/dfrn_confirm.php:288 msgid "Remote site reported: " msgstr "O site remoto relatou: " -#: ../../mod/dfrn_confirm.php:277 +#: mod/dfrn_confirm.php:279 msgid "Temporary failure. Please wait and try again." msgstr "Falha temporária. Por favor, aguarde e tente novamente." -#: ../../mod/dfrn_confirm.php:284 +#: mod/dfrn_confirm.php:286 msgid "Introduction failed or was revoked." msgstr "Ocorreu uma falha na apresentação ou ela foi revogada." -#: ../../mod/dfrn_confirm.php:429 +#: mod/dfrn_confirm.php:415 msgid "Unable to set contact photo." msgstr "Não foi possível definir a foto do contato." -#: ../../mod/dfrn_confirm.php:571 +#: mod/dfrn_confirm.php:553 #, php-format msgid "No user record found for '%s' " msgstr "Não foi encontrado nenhum registro de usuário para '%s' " -#: ../../mod/dfrn_confirm.php:581 +#: mod/dfrn_confirm.php:563 msgid "Our site encryption key is apparently messed up." msgstr "A chave de criptografia do nosso site está, aparentemente, bagunçada." -#: ../../mod/dfrn_confirm.php:592 +#: mod/dfrn_confirm.php:574 msgid "Empty site URL was provided or URL could not be decrypted by us." msgstr "Foi fornecida uma URL em branco ou não foi possível descriptografá-la." -#: ../../mod/dfrn_confirm.php:613 +#: mod/dfrn_confirm.php:595 msgid "Contact record was not found for you on our site." msgstr "O registro do contato não foi encontrado para você em seu site." -#: ../../mod/dfrn_confirm.php:627 +#: mod/dfrn_confirm.php:609 #, php-format msgid "Site public key not available in contact record for URL %s." msgstr "A chave pública do site não está disponível no registro do contato para a URL %s" -#: ../../mod/dfrn_confirm.php:647 +#: mod/dfrn_confirm.php:629 msgid "" "The ID provided by your system is a duplicate on our system. It should work " "if you try again." msgstr "O ID fornecido pelo seu sistema é uma duplicata em nosso sistema. Deve funcionar agora, se você tentar de novo." -#: ../../mod/dfrn_confirm.php:658 +#: mod/dfrn_confirm.php:640 msgid "Unable to set your contact credentials on our system." msgstr "Não foi possível definir suas credenciais de contato no nosso sistema." -#: ../../mod/dfrn_confirm.php:725 +#: mod/dfrn_confirm.php:699 msgid "Unable to update your contact profile details on our system" msgstr "Não foi possível atualizar os detalhes do seu perfil em nosso sistema." -#: ../../mod/dfrn_confirm.php:797 +#: mod/dfrn_confirm.php:771 #, php-format msgid "%1$s has joined %2$s" msgstr "%1$s se associou a %2$s" -#: ../../mod/item.php:114 +#: mod/dirfind.php:36 +#, php-format +msgid "People Search - %s" +msgstr "" + +#: mod/dirfind.php:47 +#, php-format +msgid "Forum Search - %s" +msgstr "" + +#: mod/events.php:95 mod/events.php:97 +msgid "Event can not end before it has started." +msgstr "O evento não pode terminar antes de ter começado." + +#: mod/events.php:104 mod/events.php:106 +msgid "Event title and start time are required." +msgstr "O título do evento e a hora de início são obrigatórios." + +#: mod/events.php:381 +msgid "Create New Event" +msgstr "Criar um novo evento" + +#: mod/events.php:483 +msgid "Event details" +msgstr "Detalhes do evento" + +#: mod/events.php:484 +msgid "Starting date and Title are required." +msgstr "" + +#: mod/events.php:485 mod/events.php:486 +msgid "Event Starts:" +msgstr "Início do evento:" + +#: mod/events.php:485 mod/events.php:497 mod/profiles.php:709 +msgid "Required" +msgstr "Obrigatório" + +#: mod/events.php:487 mod/events.php:503 +msgid "Finish date/time is not known or not relevant" +msgstr "A data/hora de término não é conhecida ou não é relevante" + +#: mod/events.php:489 mod/events.php:490 +msgid "Event Finishes:" +msgstr "Término do evento:" + +#: mod/events.php:491 mod/events.php:504 +msgid "Adjust for viewer timezone" +msgstr "Ajustar para o fuso horário do visualizador" + +#: mod/events.php:493 +msgid "Description:" +msgstr "Descrição:" + +#: mod/events.php:497 mod/events.php:499 +msgid "Title:" +msgstr "Título:" + +#: mod/events.php:500 mod/events.php:501 +msgid "Share this event" +msgstr "Compartilhar este evento" + +#: mod/fsuggest.php:63 +msgid "Friend suggestion sent." +msgstr "A sugestão de amigo foi enviada" + +#: mod/fsuggest.php:97 +msgid "Suggest Friends" +msgstr "Sugerir amigos" + +#: mod/fsuggest.php:99 +#, php-format +msgid "Suggest a friend for %s" +msgstr "Sugerir um amigo para %s" + +#: mod/item.php:116 msgid "Unable to locate original post." msgstr "Não foi possível localizar a publicação original." -#: ../../mod/item.php:346 +#: mod/item.php:334 msgid "Empty post discarded." msgstr "A publicação em branco foi descartada." -#: ../../mod/item.php:839 +#: mod/item.php:867 msgid "System error. Post not saved." msgstr "Erro no sistema. A publicação não foi salva." -#: ../../mod/item.php:965 +#: mod/item.php:993 #, php-format msgid "" "This message was sent to you by %s, a member of the Friendica social " "network." msgstr "Essa mensagem foi enviada a você por %s, um membro da rede social Friendica." -#: ../../mod/item.php:967 +#: mod/item.php:995 #, php-format msgid "You may visit them online at %s" msgstr "Você pode visitá-lo em %s" -#: ../../mod/item.php:968 +#: mod/item.php:996 msgid "" "Please contact the sender by replying to this post if you do not wish to " "receive these messages." msgstr "Por favor, entre em contato com o remetente respondendo a esta publicação, caso você não queira mais receber estas mensagens." -#: ../../mod/item.php:972 +#: mod/item.php:1000 #, php-format msgid "%s posted an update." msgstr "%s publicou uma atualização." -#: ../../mod/profile_photo.php:44 +#: mod/mood.php:133 +msgid "Mood" +msgstr "Humor" + +#: mod/mood.php:134 +msgid "Set your current mood and tell your friends" +msgstr "Defina o seu humor e conte aos seus amigos" + +#: mod/poke.php:192 +msgid "Poke/Prod" +msgstr "Cutucar/Incitar" + +#: mod/poke.php:193 +msgid "poke, prod or do other things to somebody" +msgstr "Cutuca, incita ou faz outras coisas com alguém" + +#: mod/poke.php:194 +msgid "Recipient" +msgstr "Destinatário" + +#: mod/poke.php:195 +msgid "Choose what you wish to do to recipient" +msgstr "Selecione o que você deseja fazer com o destinatário" + +#: mod/poke.php:198 +msgid "Make this post private" +msgstr "Fazer com que essa publicação se torne privada" + +#: mod/profile_photo.php:44 msgid "Image uploaded but image cropping failed." msgstr "A imagem foi enviada, mas não foi possível cortá-la." -#: ../../mod/profile_photo.php:77 ../../mod/profile_photo.php:84 -#: ../../mod/profile_photo.php:91 ../../mod/profile_photo.php:308 +#: mod/profile_photo.php:77 mod/profile_photo.php:84 mod/profile_photo.php:91 +#: mod/profile_photo.php:314 #, php-format msgid "Image size reduction [%s] failed." msgstr "Não foi possível reduzir o tamanho da imagem [%s]." -#: ../../mod/profile_photo.php:118 +#: mod/profile_photo.php:124 msgid "" "Shift-reload the page or clear browser cache if the new photo does not " "display immediately." msgstr "Recarregue a página pressionando a tecla Shift ou limpe o cache do navegador caso a nova foto não apareça imediatamente" -#: ../../mod/profile_photo.php:128 +#: mod/profile_photo.php:134 msgid "Unable to process image" msgstr "Não foi possível processar a imagem" -#: ../../mod/profile_photo.php:242 +#: mod/profile_photo.php:248 msgid "Upload File:" msgstr "Enviar arquivo:" -#: ../../mod/profile_photo.php:243 +#: mod/profile_photo.php:249 msgid "Select a profile:" msgstr "Selecione um perfil:" -#: ../../mod/profile_photo.php:245 +#: mod/profile_photo.php:251 msgid "Upload" msgstr "Enviar" -#: ../../mod/profile_photo.php:248 +#: mod/profile_photo.php:254 +msgid "or" +msgstr "ou" + +#: mod/profile_photo.php:254 msgid "skip this step" msgstr "pule esta etapa" -#: ../../mod/profile_photo.php:248 +#: mod/profile_photo.php:254 msgid "select a photo from your photo albums" msgstr "selecione uma foto de um álbum de fotos" -#: ../../mod/profile_photo.php:262 +#: mod/profile_photo.php:268 msgid "Crop Image" msgstr "Cortar a imagem" -#: ../../mod/profile_photo.php:263 +#: mod/profile_photo.php:269 msgid "Please adjust the image cropping for optimum viewing." msgstr "Por favor, ajuste o corte da imagem para a melhor visualização." -#: ../../mod/profile_photo.php:265 +#: mod/profile_photo.php:271 msgid "Done Editing" msgstr "Encerrar a edição" -#: ../../mod/profile_photo.php:299 +#: mod/profile_photo.php:305 msgid "Image uploaded successfully." msgstr "A imagem foi enviada com sucesso." -#: ../../mod/allfriends.php:34 +#: mod/profiles.php:38 +msgid "Profile deleted." +msgstr "O perfil foi excluído." + +#: mod/profiles.php:56 mod/profiles.php:90 +msgid "Profile-" +msgstr "Perfil-" + +#: mod/profiles.php:75 mod/profiles.php:118 +msgid "New profile created." +msgstr "O novo perfil foi criado." + +#: mod/profiles.php:96 +msgid "Profile unavailable to clone." +msgstr "O perfil não está disponível para clonagem." + +#: mod/profiles.php:190 +msgid "Profile Name is required." +msgstr "É necessário informar o nome do perfil." + +#: mod/profiles.php:337 +msgid "Marital Status" +msgstr "Situação amorosa" + +#: mod/profiles.php:341 +msgid "Romantic Partner" +msgstr "Parceiro romântico" + +#: mod/profiles.php:353 +msgid "Work/Employment" +msgstr "Trabalho/emprego" + +#: mod/profiles.php:356 +msgid "Religion" +msgstr "Religião" + +#: mod/profiles.php:360 +msgid "Political Views" +msgstr "Posicionamento político" + +#: mod/profiles.php:364 +msgid "Gender" +msgstr "Gênero" + +#: mod/profiles.php:368 +msgid "Sexual Preference" +msgstr "Preferência sexual" + +#: mod/profiles.php:372 +msgid "Homepage" +msgstr "Página Principal" + +#: mod/profiles.php:376 mod/profiles.php:695 +msgid "Interests" +msgstr "Interesses" + +#: mod/profiles.php:380 +msgid "Address" +msgstr "Endereço" + +#: mod/profiles.php:387 mod/profiles.php:691 +msgid "Location" +msgstr "Localização" + +#: mod/profiles.php:470 +msgid "Profile updated." +msgstr "O perfil foi atualizado." + +#: mod/profiles.php:557 +msgid " and " +msgstr " e " + +#: mod/profiles.php:565 +msgid "public profile" +msgstr "perfil público" + +#: mod/profiles.php:568 #, php-format -msgid "Friends of %s" -msgstr "Amigos de %s" +msgid "%1$s changed %2$s to “%3$s”" +msgstr "%1$s mudou %2$s para “%3$s”" -#: ../../mod/allfriends.php:40 -msgid "No friends to display." -msgstr "Nenhum amigo para exibir." +#: mod/profiles.php:569 +#, php-format +msgid " - Visit %1$s's %2$s" +msgstr " - Visite %2$s de %1$s" -#: ../../mod/directory.php:59 -msgid "Find on this site" -msgstr "Pesquisar neste site" +#: mod/profiles.php:572 +#, php-format +msgid "%1$s has an updated %2$s, changing %3$s." +msgstr "%1$s foi atualizado %2$s, mudando %3$s." -#: ../../mod/directory.php:62 -msgid "Site Directory" -msgstr "Diretório do site" +#: mod/profiles.php:638 +msgid "Hide contacts and friends:" +msgstr "Esconder contatos e amigos:" -#: ../../mod/directory.php:116 -msgid "Gender: " -msgstr "Gênero: " +#: mod/profiles.php:643 +msgid "Hide your contact/friend list from viewers of this profile?" +msgstr "Ocultar sua lista de contatos/amigos dos visitantes no seu perfil?" -#: ../../mod/directory.php:189 -msgid "No entries (some entries may be hidden)." -msgstr "Nenhuma entrada (algumas entradas podem estar ocultas)." +#: mod/profiles.php:667 +msgid "Show more profile fields:" +msgstr "" -#: ../../mod/localtime.php:24 -msgid "Time Conversion" -msgstr "Conversão de tempo" +#: mod/profiles.php:679 +msgid "Profile Actions" +msgstr "" -#: ../../mod/localtime.php:26 +#: mod/profiles.php:680 +msgid "Edit Profile Details" +msgstr "Editar os detalhes do perfil" + +#: mod/profiles.php:682 +msgid "Change Profile Photo" +msgstr "Mudar Foto do Perfil" + +#: mod/profiles.php:683 +msgid "View this profile" +msgstr "Ver este perfil" + +#: mod/profiles.php:685 +msgid "Create a new profile using these settings" +msgstr "Criar um novo perfil usando estas configurações" + +#: mod/profiles.php:686 +msgid "Clone this profile" +msgstr "Clonar este perfil" + +#: mod/profiles.php:687 +msgid "Delete this profile" +msgstr "Excluir este perfil" + +#: mod/profiles.php:689 +msgid "Basic information" +msgstr "Informação básica" + +#: mod/profiles.php:690 +msgid "Profile picture" +msgstr "Foto do perfil" + +#: mod/profiles.php:692 +msgid "Preferences" +msgstr "Preferências" + +#: mod/profiles.php:693 +msgid "Status information" +msgstr "Informação de Status" + +#: mod/profiles.php:694 +msgid "Additional information" +msgstr "Informações adicionais" + +#: mod/profiles.php:697 +msgid "Relation" +msgstr "" + +#: mod/profiles.php:701 +msgid "Your Gender:" +msgstr "Seu gênero:" + +#: mod/profiles.php:702 +msgid " Marital Status:" +msgstr " Situação amorosa:" + +#: mod/profiles.php:704 +msgid "Example: fishing photography software" +msgstr "Exemplo: pesca fotografia software" + +#: mod/profiles.php:709 +msgid "Profile Name:" +msgstr "Nome do perfil:" + +#: mod/profiles.php:711 msgid "" -"Friendica provides this service for sharing events with other networks and " -"friends in unknown timezones." -msgstr "Friendica provê esse serviço para compartilhar eventos com outras redes e amigos em fuso-horários desconhecidos." +"This is your public profile.
      It may " +"be visible to anybody using the internet." +msgstr "Este é o seu perfil público.
      Ele pode estar visível para qualquer um que acesse a Internet." -#: ../../mod/localtime.php:30 +#: mod/profiles.php:712 +msgid "Your Full Name:" +msgstr "Seu nome completo:" + +#: mod/profiles.php:713 +msgid "Title/Description:" +msgstr "Título/Descrição:" + +#: mod/profiles.php:716 +msgid "Street Address:" +msgstr "Endereço:" + +#: mod/profiles.php:717 +msgid "Locality/City:" +msgstr "Localidade/Cidade:" + +#: mod/profiles.php:718 +msgid "Region/State:" +msgstr "Região/Estado:" + +#: mod/profiles.php:719 +msgid "Postal/Zip Code:" +msgstr "CEP:" + +#: mod/profiles.php:720 +msgid "Country:" +msgstr "País:" + +#: mod/profiles.php:724 +msgid "Who: (if applicable)" +msgstr "Quem: (se pertinente)" + +#: mod/profiles.php:724 +msgid "Examples: cathy123, Cathy Williams, cathy@example.com" +msgstr "Exemplos: fulano123, Fulano de Tal, fulano@exemplo.com" + +#: mod/profiles.php:725 +msgid "Since [date]:" +msgstr "Desde [data]:" + +#: mod/profiles.php:727 +msgid "Tell us about yourself..." +msgstr "Fale um pouco sobre você..." + +#: mod/profiles.php:728 +msgid "Homepage URL:" +msgstr "Endereço do site web:" + +#: mod/profiles.php:731 +msgid "Religious Views:" +msgstr "Orientação religiosa:" + +#: mod/profiles.php:732 +msgid "Public Keywords:" +msgstr "Palavras-chave públicas:" + +#: mod/profiles.php:732 +msgid "(Used for suggesting potential friends, can be seen by others)" +msgstr "(Usado para sugerir amigos em potencial, pode ser visto pelos outros)" + +#: mod/profiles.php:733 +msgid "Private Keywords:" +msgstr "Palavras-chave privadas:" + +#: mod/profiles.php:733 +msgid "(Used for searching profiles, never shown to others)" +msgstr "(Usado na pesquisa de perfis, nunca é exibido para os outros)" + +#: mod/profiles.php:736 +msgid "Musical interests" +msgstr "Preferências musicais" + +#: mod/profiles.php:737 +msgid "Books, literature" +msgstr "Livros, literatura" + +#: mod/profiles.php:738 +msgid "Television" +msgstr "Televisão" + +#: mod/profiles.php:739 +msgid "Film/dance/culture/entertainment" +msgstr "Filme/dança/cultura/entretenimento" + +#: mod/profiles.php:740 +msgid "Hobbies/Interests" +msgstr "Passatempos/Interesses" + +#: mod/profiles.php:741 +msgid "Love/romance" +msgstr "Amor/romance" + +#: mod/profiles.php:742 +msgid "Work/employment" +msgstr "Trabalho/emprego" + +#: mod/profiles.php:743 +msgid "School/education" +msgstr "Escola/educação" + +#: mod/profiles.php:744 +msgid "Contact information and Social Networks" +msgstr "Informações de contato e redes sociais" + +#: mod/profiles.php:786 +msgid "Edit/Manage Profiles" +msgstr "Editar/Gerenciar perfis" + +#: mod/register.php:92 +msgid "" +"Registration successful. Please check your email for further instructions." +msgstr "O registro foi bem sucedido. Por favor, verifique seu e-mail para maiores informações." + +#: mod/register.php:97 #, php-format -msgid "UTC time: %s" -msgstr "Hora UTC: %s" +msgid "" +"Failed to send email message. Here your accout details:
      login: %s
      " +"password: %s

      You can change your password after login." +msgstr "Falha ao enviar mensagem de email. Estes são os dados da sua conta:
      login: %s
      senha: %s

      Você pode alterar sua senha após fazer o login." -#: ../../mod/localtime.php:33 +#: mod/register.php:104 +msgid "Registration successful." +msgstr "" + +#: mod/register.php:110 +msgid "Your registration can not be processed." +msgstr "Não foi possível processar o seu registro." + +#: mod/register.php:153 +msgid "Your registration is pending approval by the site owner." +msgstr "A aprovação do seu registro está pendente junto ao administrador do site." + +#: mod/register.php:219 +msgid "" +"You may (optionally) fill in this form via OpenID by supplying your OpenID " +"and clicking 'Register'." +msgstr "Você pode (opcionalmente) preencher este formulário via OpenID, fornecendo seu OpenID e clicando em 'Registrar'." + +#: mod/register.php:220 +msgid "" +"If you are not familiar with OpenID, please leave that field blank and fill " +"in the rest of the items." +msgstr "Se você não está familiarizado com o OpenID, por favor, deixe esse campo em branco e preencha os outros itens." + +#: mod/register.php:221 +msgid "Your OpenID (optional): " +msgstr "Seu OpenID (opcional): " + +#: mod/register.php:235 +msgid "Include your profile in member directory?" +msgstr "Incluir o seu perfil no diretório de membros?" + +#: mod/register.php:259 +msgid "Membership on this site is by invitation only." +msgstr "A associação a este site só pode ser feita mediante convite." + +#: mod/register.php:260 +msgid "Your invitation ID: " +msgstr "A ID do seu convite: " + +#: mod/register.php:271 +msgid "Your Full Name (e.g. Joe Smith, real or real-looking): " +msgstr "" + +#: mod/register.php:272 +msgid "Your Email Address: " +msgstr "Seu endereço de e-mail: " + +#: mod/register.php:274 mod/settings.php:1221 +msgid "New Password:" +msgstr "Nova senha:" + +#: mod/register.php:274 +msgid "Leave empty for an auto generated password." +msgstr "" + +#: mod/register.php:275 mod/settings.php:1222 +msgid "Confirm:" +msgstr "Confirme:" + +#: mod/register.php:276 +msgid "" +"Choose a profile nickname. This must begin with a text character. Your " +"profile address on this site will then be " +"'nickname@$sitename'." +msgstr "Selecione uma identificação para o perfil. Ela deve começar com um caractere alfabético. O endereço do seu perfil neste site será 'identificação@$sitename'" + +#: mod/register.php:277 +msgid "Choose a nickname: " +msgstr "Escolha uma identificação: " + +#: mod/register.php:287 +msgid "Import your profile to this friendica instance" +msgstr "Importa seu perfil desta instância do friendica" + +#: mod/regmod.php:55 +msgid "Account approved." +msgstr "A conta foi aprovada." + +#: mod/regmod.php:92 #, php-format -msgid "Current timezone: %s" -msgstr "Fuso horário atual: %s" +msgid "Registration revoked for %s" +msgstr "O registro de %s foi revogado" -#: ../../mod/localtime.php:36 +#: mod/regmod.php:104 +msgid "Please login." +msgstr "Por favor, autentique-se." + +#: mod/settings.php:36 mod/photos.php:118 +msgid "everybody" +msgstr "todos" + +#: mod/settings.php:60 +msgid "Display" +msgstr "Tela" + +#: mod/settings.php:67 mod/settings.php:871 +msgid "Social Networks" +msgstr "Redes Sociais" + +#: mod/settings.php:88 +msgid "Connected apps" +msgstr "Aplicações conectadas" + +#: mod/settings.php:102 +msgid "Remove account" +msgstr "Remover a conta" + +#: mod/settings.php:155 +msgid "Missing some important data!" +msgstr "Está faltando algum dado importante!" + +#: mod/settings.php:269 +msgid "Failed to connect with email account using the settings provided." +msgstr "Não foi possível conectar à conta de e-mail com as configurações fornecidas." + +#: mod/settings.php:274 +msgid "Email settings updated." +msgstr "As configurações de e-mail foram atualizadas." + +#: mod/settings.php:289 +msgid "Features updated" +msgstr "Funcionalidades atualizadas" + +#: mod/settings.php:356 +msgid "Relocate message has been send to your contacts" +msgstr "A mensagem de relocação foi enviada para seus contatos" + +#: mod/settings.php:375 +msgid "Empty passwords are not allowed. Password unchanged." +msgstr "Não é permitido uma senha em branco. A senha não foi modificada." + +#: mod/settings.php:383 +msgid "Wrong password." +msgstr "Senha errada." + +#: mod/settings.php:394 +msgid "Password changed." +msgstr "A senha foi modificada." + +#: mod/settings.php:396 +msgid "Password update failed. Please try again." +msgstr "Não foi possível atualizar a senha. Por favor, tente novamente." + +#: mod/settings.php:465 +msgid " Please use a shorter name." +msgstr " Por favor, use um nome mais curto." + +#: mod/settings.php:467 +msgid " Name too short." +msgstr " O nome é muito curto." + +#: mod/settings.php:476 +msgid "Wrong Password" +msgstr "Senha Errada" + +#: mod/settings.php:481 +msgid " Not valid email." +msgstr " Não é um e-mail válido." + +#: mod/settings.php:487 +msgid " Cannot change to that email." +msgstr " Não foi possível alterar para esse e-mail." + +#: mod/settings.php:543 +msgid "Private forum has no privacy permissions. Using default privacy group." +msgstr "O fórum privado não possui permissões de privacidade. Utilizando o grupo de privacidade padrão." + +#: mod/settings.php:547 +msgid "Private forum has no privacy permissions and no default privacy group." +msgstr "O fórum privado não possui permissões de privacidade e nenhum grupo de privacidade padrão." + +#: mod/settings.php:586 +msgid "Settings updated." +msgstr "As configurações foram atualizadas." + +#: mod/settings.php:662 mod/settings.php:688 mod/settings.php:724 +msgid "Add application" +msgstr "Adicionar aplicação" + +#: mod/settings.php:666 mod/settings.php:692 +msgid "Consumer Key" +msgstr "Chave do consumidor" + +#: mod/settings.php:667 mod/settings.php:693 +msgid "Consumer Secret" +msgstr "Segredo do consumidor" + +#: mod/settings.php:668 mod/settings.php:694 +msgid "Redirect" +msgstr "Redirecionar" + +#: mod/settings.php:669 mod/settings.php:695 +msgid "Icon url" +msgstr "URL do ícone" + +#: mod/settings.php:680 +msgid "You can't edit this application." +msgstr "Você não pode editar esta aplicação." + +#: mod/settings.php:723 +msgid "Connected Apps" +msgstr "Aplicações conectadas" + +#: mod/settings.php:727 +msgid "Client key starts with" +msgstr "A chave do cliente inicia com" + +#: mod/settings.php:728 +msgid "No name" +msgstr "Sem nome" + +#: mod/settings.php:729 +msgid "Remove authorization" +msgstr "Remover autorização" + +#: mod/settings.php:741 +msgid "No Plugin settings configured" +msgstr "Não foi definida nenhuma configuração de plugin" + +#: mod/settings.php:749 +msgid "Plugin Settings" +msgstr "Configurações do plugin" + +#: mod/settings.php:771 +msgid "Additional Features" +msgstr "Funcionalidades Adicionais" + +#: mod/settings.php:781 mod/settings.php:785 +msgid "General Social Media Settings" +msgstr "" + +#: mod/settings.php:791 +msgid "Disable intelligent shortening" +msgstr "" + +#: mod/settings.php:793 +msgid "" +"Normally the system tries to find the best link to add to shortened posts. " +"If this option is enabled then every shortened post will always point to the" +" original friendica post." +msgstr "" + +#: mod/settings.php:799 +msgid "Automatically follow any GNU Social (OStatus) followers/mentioners" +msgstr "" + +#: mod/settings.php:801 +msgid "" +"If you receive a message from an unknown OStatus user, this option decides " +"what to do. If it is checked, a new contact will be created for every " +"unknown user." +msgstr "" + +#: mod/settings.php:807 +msgid "Default group for OStatus contacts" +msgstr "" + +#: mod/settings.php:813 +msgid "Your legacy GNU Social account" +msgstr "" + +#: mod/settings.php:815 +msgid "" +"If you enter your old GNU Social/Statusnet account name here (in the format " +"user@domain.tld), your contacts will be added automatically. The field will " +"be emptied when done." +msgstr "" + +#: mod/settings.php:818 +msgid "Repair OStatus subscriptions" +msgstr "" + +#: mod/settings.php:827 mod/settings.php:828 #, php-format -msgid "Converted localtime: %s" -msgstr "Horário local convertido: %s" +msgid "Built-in support for %s connectivity is %s" +msgstr "O suporte interno para conectividade de %s está %s" -#: ../../mod/localtime.php:41 -msgid "Please select your timezone:" -msgstr "Por favor, selecione seu fuso horário:" +#: mod/settings.php:827 mod/settings.php:828 +msgid "enabled" +msgstr "habilitado" + +#: mod/settings.php:827 mod/settings.php:828 +msgid "disabled" +msgstr "desabilitado" + +#: mod/settings.php:828 +msgid "GNU Social (OStatus)" +msgstr "" + +#: mod/settings.php:864 +msgid "Email access is disabled on this site." +msgstr "O acesso ao e-mail está desabilitado neste site." + +#: mod/settings.php:876 +msgid "Email/Mailbox Setup" +msgstr "Configurações do e-mail/caixa postal" + +#: mod/settings.php:877 +msgid "" +"If you wish to communicate with email contacts using this service " +"(optional), please specify how to connect to your mailbox." +msgstr "Caso você deseje se comunicar com contatos de e-mail usando este serviço (opcional), por favor especifique como se conectar à sua caixa postal." + +#: mod/settings.php:878 +msgid "Last successful email check:" +msgstr "Última checagem bem sucedida de e-mail:" + +#: mod/settings.php:880 +msgid "IMAP server name:" +msgstr "Nome do servidor IMAP:" + +#: mod/settings.php:881 +msgid "IMAP port:" +msgstr "Porta do IMAP:" + +#: mod/settings.php:882 +msgid "Security:" +msgstr "Segurança:" + +#: mod/settings.php:882 mod/settings.php:887 +msgid "None" +msgstr "Nenhuma" + +#: mod/settings.php:883 +msgid "Email login name:" +msgstr "Nome de usuário do e-mail:" + +#: mod/settings.php:884 +msgid "Email password:" +msgstr "Senha do e-mail:" + +#: mod/settings.php:885 +msgid "Reply-to address:" +msgstr "Endereço de resposta (Reply-to):" + +#: mod/settings.php:886 +msgid "Send public posts to all email contacts:" +msgstr "Enviar publicações públicas para todos os contatos de e-mail:" + +#: mod/settings.php:887 +msgid "Action after import:" +msgstr "Ação após a importação:" + +#: mod/settings.php:887 +msgid "Move to folder" +msgstr "Mover para pasta" + +#: mod/settings.php:888 +msgid "Move to folder:" +msgstr "Mover para pasta:" + +#: mod/settings.php:974 +msgid "Display Settings" +msgstr "Configurações de exibição" + +#: mod/settings.php:980 mod/settings.php:1001 +msgid "Display Theme:" +msgstr "Tema do perfil:" + +#: mod/settings.php:981 +msgid "Mobile Theme:" +msgstr "Tema para dispositivos móveis:" + +#: mod/settings.php:982 +msgid "Update browser every xx seconds" +msgstr "Atualizar o navegador a cada xx segundos" + +#: mod/settings.php:982 +msgid "Minimum of 10 seconds. Enter -1 to disable it." +msgstr "" + +#: mod/settings.php:983 +msgid "Number of items to display per page:" +msgstr "Número de itens a serem exibidos por página:" + +#: mod/settings.php:983 mod/settings.php:984 +msgid "Maximum of 100 items" +msgstr "Máximo de 100 itens" + +#: mod/settings.php:984 +msgid "Number of items to display per page when viewed from mobile device:" +msgstr "Número de itens a serem exibidos por página quando visualizando em um dispositivo móvel:" + +#: mod/settings.php:985 +msgid "Don't show emoticons" +msgstr "Não exibir emoticons" + +#: mod/settings.php:986 +msgid "Calendar" +msgstr "Agenda" + +#: mod/settings.php:987 +msgid "Beginning of week:" +msgstr "" + +#: mod/settings.php:988 +msgid "Don't show notices" +msgstr "Não mostra avisos" + +#: mod/settings.php:989 +msgid "Infinite scroll" +msgstr "rolamento infinito" + +#: mod/settings.php:990 +msgid "Automatic updates only at the top of the network page" +msgstr "Atualizações automáticas só na parte superior da página da rede" + +#: mod/settings.php:992 +msgid "General Theme Settings" +msgstr "" + +#: mod/settings.php:993 +msgid "Custom Theme Settings" +msgstr "" + +#: mod/settings.php:994 +msgid "Content Settings" +msgstr "" + +#: mod/settings.php:995 view/theme/frio/config.php:61 +#: view/theme/cleanzero/config.php:82 view/theme/quattro/config.php:66 +#: view/theme/dispy/config.php:72 view/theme/vier/config.php:109 +#: view/theme/diabook/config.php:150 view/theme/duepuntozero/config.php:61 +msgid "Theme settings" +msgstr "Configurações do tema" + +#: mod/settings.php:1072 +msgid "User Types" +msgstr "Tipos de Usuários" + +#: mod/settings.php:1073 +msgid "Community Types" +msgstr "Tipos de Comunidades" + +#: mod/settings.php:1074 +msgid "Normal Account Page" +msgstr "Página de conta normal" + +#: mod/settings.php:1075 +msgid "This account is a normal personal profile" +msgstr "Essa conta é um perfil pessoal normal" + +#: mod/settings.php:1078 +msgid "Soapbox Page" +msgstr "Página de vitrine" + +#: mod/settings.php:1079 +msgid "Automatically approve all connection/friend requests as read-only fans" +msgstr "Aprova automaticamente todas as solicitações de conexão/amizade como fãs com permissão somente de leitura" + +#: mod/settings.php:1082 +msgid "Community Forum/Celebrity Account" +msgstr "Conta de fórum de comunidade/celebridade" + +#: mod/settings.php:1083 +msgid "" +"Automatically approve all connection/friend requests as read-write fans" +msgstr "Aprova automaticamente todas as solicitações de conexão/amizade como fãs com permissão de leitura e escrita" + +#: mod/settings.php:1086 +msgid "Automatic Friend Page" +msgstr "Página de amigo automático" + +#: mod/settings.php:1087 +msgid "Automatically approve all connection/friend requests as friends" +msgstr "Aprovar automaticamente todas as solicitações de conexão/amizade como amigos" + +#: mod/settings.php:1090 +msgid "Private Forum [Experimental]" +msgstr "Fórum privado [Experimental]" + +#: mod/settings.php:1091 +msgid "Private forum - approved members only" +msgstr "Fórum privado - somente membros aprovados" + +#: mod/settings.php:1103 +msgid "OpenID:" +msgstr "OpenID:" + +#: mod/settings.php:1103 +msgid "(Optional) Allow this OpenID to login to this account." +msgstr "(Opcional) Permitir o uso deste OpenID para entrar nesta conta" + +#: mod/settings.php:1113 +msgid "Publish your default profile in your local site directory?" +msgstr "Publicar o seu perfil padrão no diretório local do seu site?" + +#: mod/settings.php:1119 +msgid "Publish your default profile in the global social directory?" +msgstr "Publicar o seu perfil padrão no diretório social global?" + +#: mod/settings.php:1127 +msgid "Hide your contact/friend list from viewers of your default profile?" +msgstr "Ocultar visualização da sua lista de contatos/amigos no seu perfil padrão? " + +#: mod/settings.php:1131 +msgid "" +"If enabled, posting public messages to Diaspora and other networks isn't " +"possible." +msgstr "Se ativado, postar mensagens públicas no Diáspora e em outras redes não será possível." + +#: mod/settings.php:1136 +msgid "Allow friends to post to your profile page?" +msgstr "Permitir aos amigos publicarem na sua página de perfil?" + +#: mod/settings.php:1142 +msgid "Allow friends to tag your posts?" +msgstr "Permitir aos amigos etiquetarem suas publicações?" + +#: mod/settings.php:1148 +msgid "Allow us to suggest you as a potential friend to new members?" +msgstr "Permitir que você seja sugerido como amigo em potencial para novos membros?" + +#: mod/settings.php:1154 +msgid "Permit unknown people to send you private mail?" +msgstr "Permitir que pessoas desconhecidas lhe enviem mensagens privadas?" + +#: mod/settings.php:1162 +msgid "Profile is not published." +msgstr "O perfil não está publicado." + +#: mod/settings.php:1170 +#, php-format +msgid "Your Identity Address is '%s' or '%s'." +msgstr "" + +#: mod/settings.php:1177 +msgid "Automatically expire posts after this many days:" +msgstr "Expirar automaticamente publicações após tantos dias:" + +#: mod/settings.php:1177 +msgid "If empty, posts will not expire. Expired posts will be deleted" +msgstr "Se deixado em branco, as publicações não irão expirar. Publicações expiradas serão excluídas." + +#: mod/settings.php:1178 +msgid "Advanced expiration settings" +msgstr "Configurações avançadas de expiração" + +#: mod/settings.php:1179 +msgid "Advanced Expiration" +msgstr "Expiração avançada" + +#: mod/settings.php:1180 +msgid "Expire posts:" +msgstr "Expirar publicações:" + +#: mod/settings.php:1181 +msgid "Expire personal notes:" +msgstr "Expirar notas pessoais:" + +#: mod/settings.php:1182 +msgid "Expire starred posts:" +msgstr "Expirar publicações destacadas:" + +#: mod/settings.php:1183 +msgid "Expire photos:" +msgstr "Expirar fotos:" + +#: mod/settings.php:1184 +msgid "Only expire posts by others:" +msgstr "Expirar somente as publicações de outras pessoas:" + +#: mod/settings.php:1212 +msgid "Account Settings" +msgstr "Configurações da conta" + +#: mod/settings.php:1220 +msgid "Password Settings" +msgstr "Configurações da senha" + +#: mod/settings.php:1222 +msgid "Leave password fields blank unless changing" +msgstr "Deixe os campos de senha em branco, a não ser que você queira alterá-la" + +#: mod/settings.php:1223 +msgid "Current Password:" +msgstr "Senha Atual:" + +#: mod/settings.php:1223 mod/settings.php:1224 +msgid "Your current password to confirm the changes" +msgstr "Sua senha atual para confirmar as mudanças" + +#: mod/settings.php:1224 +msgid "Password:" +msgstr "Senha:" + +#: mod/settings.php:1228 +msgid "Basic Settings" +msgstr "Configurações básicas" + +#: mod/settings.php:1230 +msgid "Email Address:" +msgstr "Endereço de e-mail:" + +#: mod/settings.php:1231 +msgid "Your Timezone:" +msgstr "Seu fuso horário:" + +#: mod/settings.php:1232 +msgid "Your Language:" +msgstr "Seu idioma:" + +#: mod/settings.php:1232 +msgid "" +"Set the language we use to show you friendica interface and to send you " +"emails" +msgstr "" + +#: mod/settings.php:1233 +msgid "Default Post Location:" +msgstr "Localização padrão de suas publicações:" + +#: mod/settings.php:1234 +msgid "Use Browser Location:" +msgstr "Usar localizador do navegador:" + +#: mod/settings.php:1237 +msgid "Security and Privacy Settings" +msgstr "Configurações de segurança e privacidade" + +#: mod/settings.php:1239 +msgid "Maximum Friend Requests/Day:" +msgstr "Número máximo de requisições de amizade por dia:" + +#: mod/settings.php:1239 mod/settings.php:1269 +msgid "(to prevent spam abuse)" +msgstr "(para prevenir abuso de spammers)" + +#: mod/settings.php:1240 +msgid "Default Post Permissions" +msgstr "Permissões padrão de publicação" + +#: mod/settings.php:1241 +msgid "(click to open/close)" +msgstr "(clique para abrir/fechar)" + +#: mod/settings.php:1250 mod/photos.php:1187 mod/photos.php:1571 +msgid "Show to Groups" +msgstr "Mostre para Grupos" + +#: mod/settings.php:1251 mod/photos.php:1188 mod/photos.php:1572 +msgid "Show to Contacts" +msgstr "Mostre para Contatos" + +#: mod/settings.php:1252 +msgid "Default Private Post" +msgstr "Publicação Privada Padrão" + +#: mod/settings.php:1253 +msgid "Default Public Post" +msgstr "Publicação Pública Padrão" + +#: mod/settings.php:1257 +msgid "Default Permissions for New Posts" +msgstr "Permissões Padrão para Publicações Novas" + +#: mod/settings.php:1269 +msgid "Maximum private messages per day from unknown people:" +msgstr "Número máximo de mensagens privadas de pessoas desconhecidas, por dia:" + +#: mod/settings.php:1272 +msgid "Notification Settings" +msgstr "Configurações de notificação" + +#: mod/settings.php:1273 +msgid "By default post a status message when:" +msgstr "Por padrão, publicar uma mensagem de status quando:" + +#: mod/settings.php:1274 +msgid "accepting a friend request" +msgstr "aceitar uma requisição de amizade" + +#: mod/settings.php:1275 +msgid "joining a forum/community" +msgstr "associar-se a um fórum/comunidade" + +#: mod/settings.php:1276 +msgid "making an interesting profile change" +msgstr "fazer uma modificação interessante em seu perfil" + +#: mod/settings.php:1277 +msgid "Send a notification email when:" +msgstr "Enviar um e-mail de notificação sempre que:" + +#: mod/settings.php:1278 +msgid "You receive an introduction" +msgstr "Você recebeu uma apresentação" + +#: mod/settings.php:1279 +msgid "Your introductions are confirmed" +msgstr "Suas apresentações forem confirmadas" + +#: mod/settings.php:1280 +msgid "Someone writes on your profile wall" +msgstr "Alguém escrever no mural do seu perfil" + +#: mod/settings.php:1281 +msgid "Someone writes a followup comment" +msgstr "Alguém comentar a sua mensagem" + +#: mod/settings.php:1282 +msgid "You receive a private message" +msgstr "Você recebeu uma mensagem privada" + +#: mod/settings.php:1283 +msgid "You receive a friend suggestion" +msgstr "Você recebe uma suggestão de amigo" + +#: mod/settings.php:1284 +msgid "You are tagged in a post" +msgstr "Você foi etiquetado em uma publicação" + +#: mod/settings.php:1285 +msgid "You are poked/prodded/etc. in a post" +msgstr "Você está cutucado/incitado/etc. em uma publicação" + +#: mod/settings.php:1287 +msgid "Activate desktop notifications" +msgstr "" + +#: mod/settings.php:1287 +msgid "Show desktop popup on new notifications" +msgstr "" + +#: mod/settings.php:1289 +msgid "Text-only notification emails" +msgstr "Emails de notificação apenas de texto" + +#: mod/settings.php:1291 +msgid "Send text only notification emails, without the html part" +msgstr "Enviar e-mails de notificação apenas de texto, sem a parte html" + +#: mod/settings.php:1293 +msgid "Advanced Account/Page Type Settings" +msgstr "Conta avançada/Configurações do tipo de página" + +#: mod/settings.php:1294 +msgid "Change the behaviour of this account for special situations" +msgstr "Modificar o comportamento desta conta em situações especiais" + +#: mod/settings.php:1297 +msgid "Relocate" +msgstr "Relocação" + +#: mod/settings.php:1298 +msgid "" +"If you have moved this profile from another server, and some of your " +"contacts don't receive your updates, try pushing this button." +msgstr "Se você moveu esse perfil de outro servidor e algum dos seus contatos não recebe atualizações, pressione esse botão." + +#: mod/settings.php:1299 +msgid "Resend relocate message to contacts" +msgstr "Reenviar mensagem de relocação para os contatos" + +#: mod/videos.php:123 +msgid "Do you really want to delete this video?" +msgstr "" + +#: mod/videos.php:128 +msgid "Delete Video" +msgstr "" + +#: mod/videos.php:207 +msgid "No videos selected" +msgstr "Nenhum vídeo selecionado" + +#: mod/videos.php:308 mod/photos.php:1075 +msgid "Access to this item is restricted." +msgstr "O acesso a este item é restrito." + +#: mod/videos.php:390 mod/photos.php:1877 +msgid "View Album" +msgstr "Ver álbum" + +#: mod/videos.php:399 +msgid "Recent Videos" +msgstr "Vídeos Recentes" + +#: mod/videos.php:401 +msgid "Upload New Videos" +msgstr "Envie Novos Vídeos" + +#: mod/install.php:139 +msgid "Friendica Communications Server - Setup" +msgstr "Servidor de Comunicações Friendica - Configuração" + +#: mod/install.php:145 +msgid "Could not connect to database." +msgstr "Não foi possível conectar ao banco de dados." + +#: mod/install.php:149 +msgid "Could not create table." +msgstr "Não foi possível criar tabela." + +#: mod/install.php:155 +msgid "Your Friendica site database has been installed." +msgstr "O banco de dados do seu site Friendica foi instalado." + +#: mod/install.php:160 +msgid "" +"You may need to import the file \"database.sql\" manually using phpmyadmin " +"or mysql." +msgstr "Você provavelmente precisará importar o arquivo \"database.sql\" manualmente, usando o phpmyadmin ou o mysql." + +#: mod/install.php:161 mod/install.php:230 mod/install.php:602 +msgid "Please see the file \"INSTALL.txt\"." +msgstr "Por favor, dê uma olhada no arquivo \"INSTALL.TXT\"." + +#: mod/install.php:173 +msgid "Database already in use." +msgstr "" + +#: mod/install.php:227 +msgid "System check" +msgstr "Checagem do sistema" + +#: mod/install.php:232 +msgid "Check again" +msgstr "Checar novamente" + +#: mod/install.php:251 +msgid "Database connection" +msgstr "Conexão de banco de dados" + +#: mod/install.php:252 +msgid "" +"In order to install Friendica we need to know how to connect to your " +"database." +msgstr "À fim de instalar o Friendica, você precisa saber como se conectar ao seu banco de dados." + +#: mod/install.php:253 +msgid "" +"Please contact your hosting provider or site administrator if you have " +"questions about these settings." +msgstr "Por favor, entre em contato com a sua hospedagem ou com o administrador do site caso você tenha alguma dúvida em relação a essas configurações." + +#: mod/install.php:254 +msgid "" +"The database you specify below should already exist. If it does not, please " +"create it before continuing." +msgstr "O banco de dados que você especificou abaixo já deve existir. Caso contrário, por favor crie-o antes de continuar." + +#: mod/install.php:258 +msgid "Database Server Name" +msgstr "Nome do servidor de banco de dados" + +#: mod/install.php:259 +msgid "Database Login Name" +msgstr "Nome do usuário do banco de dados" + +#: mod/install.php:260 +msgid "Database Login Password" +msgstr "Senha do usuário do banco de dados" + +#: mod/install.php:261 +msgid "Database Name" +msgstr "Nome do banco de dados" + +#: mod/install.php:262 mod/install.php:303 +msgid "Site administrator email address" +msgstr "Endereço de email do administrador do site" + +#: mod/install.php:262 mod/install.php:303 +msgid "" +"Your account email address must match this in order to use the web admin " +"panel." +msgstr "O endereço de email da sua conta deve ser igual a este para que você possa utilizar o painel de administração web." + +#: mod/install.php:266 mod/install.php:306 +msgid "Please select a default timezone for your website" +msgstr "Por favor, selecione o fuso horário padrão para o seu site" + +#: mod/install.php:293 +msgid "Site settings" +msgstr "Configurações do site" + +#: mod/install.php:307 +msgid "System Language:" +msgstr "" + +#: mod/install.php:307 +msgid "" +"Set the default language for your Friendica installation interface and to " +"send emails." +msgstr "" + +#: mod/install.php:347 +msgid "Could not find a command line version of PHP in the web server PATH." +msgstr "Não foi possível encontrar uma versão de linha de comando do PHP nos caminhos do seu servidor web." + +#: mod/install.php:348 +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. See 'Setup the poller'" +msgstr "" + +#: mod/install.php:352 +msgid "PHP executable path" +msgstr "Caminho para o executável do PhP" + +#: mod/install.php:352 +msgid "" +"Enter full path to php executable. You can leave this blank to continue the " +"installation." +msgstr "Digite o caminho completo do executável PHP. Você pode deixar isso em branco para continuar com a instalação." + +#: mod/install.php:357 +msgid "Command line PHP" +msgstr "PHP em linha de comando" + +#: mod/install.php:366 +msgid "PHP executable is not the php cli binary (could be cgi-fgci version)" +msgstr "O executável do PHP não é o binário do php cli (could be cgi-fcgi version)" + +#: mod/install.php:367 +msgid "Found PHP version: " +msgstr "Encontrado PHP versão:" + +#: mod/install.php:369 +msgid "PHP cli binary" +msgstr "Binário cli do PHP" + +#: mod/install.php:380 +msgid "" +"The command line version of PHP on your system does not have " +"\"register_argc_argv\" enabled." +msgstr "\"register_argc_argv\" não está habilitado na versão de linha de comando do PHP no seu sistema." + +#: mod/install.php:381 +msgid "This is required for message delivery to work." +msgstr "Isto é necessário para o funcionamento do envio de mensagens." + +#: mod/install.php:383 +msgid "PHP register_argc_argv" +msgstr "PHP register_argc_argv" + +#: mod/install.php:404 +msgid "" +"Error: the \"openssl_pkey_new\" function on this system is not able to " +"generate encryption keys" +msgstr "Erro: a função \"openssl_pkey_new\" no seu sistema não é capaz de gerar as chaves de criptografia" + +#: mod/install.php:405 +msgid "" +"If running under Windows, please see " +"\"http://www.php.net/manual/en/openssl.installation.php\"." +msgstr "Se estiver usando o Windows, por favor dê uma olhada em \"http://www.php.net/manual/en/openssl.installation.php\"." + +#: mod/install.php:407 +msgid "Generate encryption keys" +msgstr "Gerar chaves de encriptação" + +#: mod/install.php:414 +msgid "libCurl PHP module" +msgstr "Módulo PHP libCurl" + +#: mod/install.php:415 +msgid "GD graphics PHP module" +msgstr "Módulo PHP GD graphics" + +#: mod/install.php:416 +msgid "OpenSSL PHP module" +msgstr "Módulo PHP OpenSSL" + +#: mod/install.php:417 +msgid "mysqli PHP module" +msgstr "Módulo PHP mysqli" + +#: mod/install.php:418 +msgid "mb_string PHP module" +msgstr "Módulo PHP mb_string " + +#: mod/install.php:419 +msgid "mcrypt PHP module" +msgstr "" + +#: mod/install.php:420 +msgid "XML PHP module" +msgstr "" + +#: mod/install.php:421 +msgid "iconv module" +msgstr "" + +#: mod/install.php:425 mod/install.php:427 +msgid "Apache mod_rewrite module" +msgstr "Módulo mod_rewrite do Apache" + +#: mod/install.php:425 +msgid "" +"Error: Apache webserver mod-rewrite module is required but not installed." +msgstr "Erro: o módulo mod-rewrite do Apache é necessário, mas não está instalado." + +#: mod/install.php:433 +msgid "Error: libCURL PHP module required but not installed." +msgstr "Erro: o módulo libCURL do PHP é necessário, mas não está instalado." + +#: mod/install.php:437 +msgid "" +"Error: GD graphics PHP module with JPEG support required but not installed." +msgstr "Erro: o módulo gráfico GD, com suporte a JPEG, do PHP é necessário, mas não está instalado." + +#: mod/install.php:441 +msgid "Error: openssl PHP module required but not installed." +msgstr "Erro: o módulo openssl do PHP é necessário, mas não está instalado." + +#: mod/install.php:445 +msgid "Error: mysqli PHP module required but not installed." +msgstr "Erro: o módulo mysqli do PHP é necessário, mas não está instalado." + +#: mod/install.php:449 +msgid "Error: mb_string PHP module required but not installed." +msgstr "Erro: o módulo mb_string PHP é necessário, mas não está instalado." + +#: mod/install.php:453 +msgid "Error: mcrypt PHP module required but not installed." +msgstr "Erro: o módulo mcrypt do PHP é necessário, mas não está instalado." + +#: mod/install.php:457 +msgid "Error: iconv PHP module required but not installed." +msgstr "" + +#: mod/install.php:466 +msgid "" +"If you are using php_cli, please make sure that mcrypt module is enabled in " +"its config file" +msgstr "" + +#: mod/install.php:469 +msgid "" +"Function mcrypt_create_iv() is not defined. This is needed to enable RINO2 " +"encryption layer." +msgstr "" + +#: mod/install.php:471 +msgid "mcrypt_create_iv() function" +msgstr "" + +#: mod/install.php:479 +msgid "Error, XML PHP module required but not installed." +msgstr "Erro: o módulo XML do PHP é necessário, mas não está instalado." + +#: mod/install.php:494 +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 "O instalador web precisa criar um arquivo chamado \".htconfig.php\" na pasta raiz da instalação e não está conseguindo." + +#: mod/install.php:495 +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 "Geralmente isso está relacionado às definições de permissão, uma vez que o servidor web pode não estar conseguindo escrever os arquivos nesta pasta." + +#: mod/install.php:496 +msgid "" +"At the end of this procedure, we will give you a text to save in a file " +"named .htconfig.php in your Friendica top folder." +msgstr "Ao final desse procedimento, será fornecido um texto que deverá ser salvo em um arquivo de nome. htconfig.php, na pasta raiz da instalação do seu Friendica." + +#: mod/install.php:497 +msgid "" +"You can alternatively skip this procedure and perform a manual installation." +" Please see the file \"INSTALL.txt\" for instructions." +msgstr "Você também pode pular esse procedimento e executar uma instalação manual. Por favor, dê uma olhada no arquivo \"INSTALL.TXT\" para instruções." + +#: mod/install.php:500 +msgid ".htconfig.php is writable" +msgstr ".htconfig.php tem permissão de escrita" + +#: mod/install.php:510 +msgid "" +"Friendica uses the Smarty3 template engine to render its web views. Smarty3 " +"compiles templates to PHP to speed up rendering." +msgstr "Friendica usa o engine de template Smarty3 para renderizar suas web views. Smarty3 compila templates para PHP para acelerar a renderização." + +#: mod/install.php:511 +msgid "" +"In order to store these compiled templates, the web server needs to have " +"write access to the directory view/smarty3/ under the Friendica top level " +"folder." +msgstr "Para guardar os templates compilados, o servidor web necessita de permissão de escrita no diretório view/smarty3/ no diretório raíz do Friendica." + +#: mod/install.php:512 +msgid "" +"Please ensure that the user that your web server runs as (e.g. www-data) has" +" write access to this folder." +msgstr "Favor se certificar que o usuário sob o qual o servidor web roda (ex: www-data) tenha permissão de escrita nesse diretório." + +#: mod/install.php:513 +msgid "" +"Note: as a security measure, you should give the web server write access to " +"view/smarty3/ only--not the template files (.tpl) that it contains." +msgstr "Nota: como uma medida de segurança, você deve fornecer ao servidor web permissão de escrita em view/smarty3/ somente--não aos arquivos de template (.tpl) que ele contém." + +#: mod/install.php:516 +msgid "view/smarty3 is writable" +msgstr "view/smarty3 tem escrita permitida" + +#: mod/install.php:532 +msgid "" +"Url rewrite in .htaccess is not working. Check your server configuration." +msgstr "A reescrita de URLs definida no .htaccess não está funcionando. Por favor, verifique as configurações do seu servidor." + +#: mod/install.php:534 +msgid "Url rewrite is working" +msgstr "A reescrita de URLs está funcionando" + +#: mod/install.php:551 +msgid "ImageMagick PHP extension is installed" +msgstr "" + +#: mod/install.php:553 +msgid "ImageMagick supports GIF" +msgstr "" + +#: mod/install.php:561 +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 "Não foi possível gravar o arquivo de configuração \".htconfig.php\". Por favor, use o texto incluso para criar um arquivo de configuração na raiz da instalação do Friendika em seu servidor web." + +#: mod/install.php:600 +msgid "

      What next

      " +msgstr "

      A seguir

      " + +#: mod/install.php:601 +msgid "" +"IMPORTANT: You will need to [manually] setup a scheduled task for the " +"poller." +msgstr "IMPORTANTE: Você deve configurar [manualmente] uma tarefa agendada para o captador." + +#: mod/notifications.php:35 +msgid "Invalid request identifier." +msgstr "Identificador de solicitação inválido" + +#: mod/notifications.php:44 mod/notifications.php:180 +#: mod/notifications.php:252 +msgid "Discard" +msgstr "Descartar" + +#: mod/notifications.php:105 +msgid "Network Notifications" +msgstr "Notificações de rede" + +#: mod/notifications.php:117 +msgid "Personal Notifications" +msgstr "Notificações pessoais" + +#: mod/notifications.php:123 +msgid "Home Notifications" +msgstr "Notificações pessoais" + +#: mod/notifications.php:152 +msgid "Show Ignored Requests" +msgstr "Exibir solicitações ignoradas" + +#: mod/notifications.php:152 +msgid "Hide Ignored Requests" +msgstr "Ocultar solicitações ignoradas" + +#: mod/notifications.php:164 mod/notifications.php:222 +msgid "Notification type: " +msgstr "Tipo de notificação:" + +#: mod/notifications.php:167 +#, php-format +msgid "suggested by %s" +msgstr "sugerido por %s" + +#: mod/notifications.php:173 mod/notifications.php:240 +msgid "Post a new friend activity" +msgstr "Publicar a adição de amigo" + +#: mod/notifications.php:173 mod/notifications.php:240 +msgid "if applicable" +msgstr "se aplicável" + +#: mod/notifications.php:195 +msgid "Claims to be known to you: " +msgstr "Alega ser conhecido por você: " + +#: mod/notifications.php:196 +msgid "yes" +msgstr "sim" + +#: mod/notifications.php:196 +msgid "no" +msgstr "não" + +#: mod/notifications.php:197 +msgid "" +"Shall your connection be bidirectional or not? \"Friend\" implies that you " +"allow to read and you subscribe to their posts. \"Fan/Admirer\" means that " +"you allow to read but you do not want to read theirs. Approve as: " +msgstr "Sua conexão deve ser bidirecional ou não? \"Amigo\" implica que você permite ler e se inscreve nos textos dele. \"Fan / admirador\" significa que você permite ler, mas você não quer ler os textos dele. Aprovar como:" + +#: mod/notifications.php:200 +msgid "" +"Shall your connection be bidirectional or not? \"Friend\" implies that you " +"allow to read and you subscribe to their posts. \"Sharer\" means that you " +"allow to read but you do not want to read theirs. Approve as: " +msgstr "Sua conexão deve ser bidirecional ou não? \"Amigo\" implica que você permite a leitura e assina o textos dele. \"Compartilhador\" significa que você permite a leitura mas você não quer ler os textos dele. Aprova como:" + +#: mod/notifications.php:209 +msgid "Friend" +msgstr "Amigo" + +#: mod/notifications.php:210 +msgid "Sharer" +msgstr "Compartilhador" + +#: mod/notifications.php:210 +msgid "Fan/Admirer" +msgstr "Fã/Admirador" + +#: mod/notifications.php:260 +msgid "No introductions." +msgstr "Sem apresentações." + +#: mod/notifications.php:299 +msgid "Show unread" +msgstr "" + +#: mod/notifications.php:299 +msgid "Show all" +msgstr "" + +#: mod/notifications.php:305 +#, php-format +msgid "No more %s notifications." +msgstr "" + +#: mod/photos.php:101 mod/photos.php:1886 +msgid "Recent Photos" +msgstr "Fotos recentes" + +#: mod/photos.php:104 mod/photos.php:1308 mod/photos.php:1888 +msgid "Upload New Photos" +msgstr "Enviar novas fotos" + +#: mod/photos.php:182 +msgid "Contact information unavailable" +msgstr "A informação de contato não está disponível" + +#: mod/photos.php:203 +msgid "Album not found." +msgstr "O álbum não foi encontrado." + +#: mod/photos.php:233 mod/photos.php:245 mod/photos.php:1250 +msgid "Delete Album" +msgstr "Excluir o álbum" + +#: mod/photos.php:243 +msgid "Do you really want to delete this photo album and all its photos?" +msgstr "Você realmente deseja deletar esse álbum de fotos e todas as suas fotos?" + +#: mod/photos.php:323 mod/photos.php:334 mod/photos.php:1567 +msgid "Delete Photo" +msgstr "Excluir a foto" + +#: mod/photos.php:332 +msgid "Do you really want to delete this photo?" +msgstr "Você realmente deseja deletar essa foto?" + +#: mod/photos.php:707 +#, php-format +msgid "%1$s was tagged in %2$s by %3$s" +msgstr "%1$s foi marcado em %2$s por %3$s" + +#: mod/photos.php:707 +msgid "a photo" +msgstr "uma foto" + +#: mod/photos.php:814 +msgid "Image file is empty." +msgstr "O arquivo de imagem está vazio." + +#: mod/photos.php:974 +msgid "No photos selected" +msgstr "Não foi selecionada nenhuma foto" + +#: mod/photos.php:1135 +#, php-format +msgid "You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage." +msgstr "Você está usando %1$.2f Mbytes dos %2$.2f Mbytes liberados para armazenamento de fotos." + +#: mod/photos.php:1170 +msgid "Upload Photos" +msgstr "Enviar fotos" + +#: mod/photos.php:1174 mod/photos.php:1245 +msgid "New album name: " +msgstr "Nome do novo álbum: " + +#: mod/photos.php:1175 +msgid "or existing album name: " +msgstr "ou o nome de um álbum já existente: " + +#: mod/photos.php:1176 +msgid "Do not show a status post for this upload" +msgstr "Não exiba uma publicação de status para este envio" + +#: mod/photos.php:1189 +msgid "Private Photo" +msgstr "Foto Privada" + +#: mod/photos.php:1190 +msgid "Public Photo" +msgstr "Foto Pública" + +#: mod/photos.php:1258 +msgid "Edit Album" +msgstr "Editar o álbum" + +#: mod/photos.php:1264 +msgid "Show Newest First" +msgstr "Exibir as mais recentes primeiro" + +#: mod/photos.php:1266 +msgid "Show Oldest First" +msgstr "Exibir as mais antigas primeiro" + +#: mod/photos.php:1294 mod/photos.php:1871 +msgid "View Photo" +msgstr "Ver a foto" + +#: mod/photos.php:1340 +msgid "Permission denied. Access to this item may be restricted." +msgstr "Permissão negada. O acesso a este item pode estar restrito." + +#: mod/photos.php:1342 +msgid "Photo not available" +msgstr "A foto não está disponível" + +#: mod/photos.php:1398 +msgid "View photo" +msgstr "Ver a imagem" + +#: mod/photos.php:1398 +msgid "Edit photo" +msgstr "Editar a foto" + +#: mod/photos.php:1399 +msgid "Use as profile photo" +msgstr "Usar como uma foto de perfil" + +#: mod/photos.php:1424 +msgid "View Full Size" +msgstr "Ver no tamanho real" + +#: mod/photos.php:1510 +msgid "Tags: " +msgstr "Etiquetas: " + +#: mod/photos.php:1513 +msgid "[Remove any tag]" +msgstr "[Remover qualquer etiqueta]" + +#: mod/photos.php:1553 +msgid "New album name" +msgstr "Novo nome para o álbum" + +#: mod/photos.php:1554 +msgid "Caption" +msgstr "Legenda" + +#: mod/photos.php:1555 +msgid "Add a Tag" +msgstr "Adicionar uma etiqueta" + +#: mod/photos.php:1555 +msgid "" +"Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping" +msgstr "Por exemplo: @joao, @Joao_da_Silva, @joao@exemplo.com, #Minas_Gerais, #acampamento" + +#: mod/photos.php:1556 +msgid "Do not rotate" +msgstr "" + +#: mod/photos.php:1557 +msgid "Rotate CW (right)" +msgstr "Rotacionar para direita" + +#: mod/photos.php:1558 +msgid "Rotate CCW (left)" +msgstr "Rotacionar para esquerda" + +#: mod/photos.php:1573 +msgid "Private photo" +msgstr "Foto privada" + +#: mod/photos.php:1574 +msgid "Public photo" +msgstr "Foto pública" + +#: mod/photos.php:1800 +msgid "Map" +msgstr "" + +#: object/Item.php:370 +msgid "via" +msgstr "via" + +#: view/theme/frio/php/Image.php:23 +msgid "Repeat the image" +msgstr "Lado a lado" + +#: view/theme/frio/php/Image.php:23 +msgid "Will repeat your image to fill the background." +msgstr "Repete a imagem para preencher o plano de fundo." + +#: view/theme/frio/php/Image.php:25 +msgid "Stretch" +msgstr "Esticar" + +#: view/theme/frio/php/Image.php:25 +msgid "Will stretch to width/height of the image." +msgstr "Estica até a largura/altura da imagem." + +#: view/theme/frio/php/Image.php:27 +msgid "Resize fill and-clip" +msgstr "Preencher e cortar" + +#: view/theme/frio/php/Image.php:27 +msgid "Resize to fill and retain aspect ratio." +msgstr "Redimensiona para preencher o plano de fundo, mantendo proporções." + +#: view/theme/frio/php/Image.php:29 +msgid "Resize best fit" +msgstr "Ajustar" + +#: view/theme/frio/php/Image.php:29 +msgid "Resize to best fit and retain aspect ratio." +msgstr "Redimensiona para ajustar ao plano de fundo, mantendo proporções." + +#: view/theme/frio/config.php:42 +msgid "Default" +msgstr "Padrão" + +#: view/theme/frio/config.php:54 +msgid "Note: " +msgstr "Observação:" + +#: view/theme/frio/config.php:54 +msgid "Check image permissions if all users are allowed to visit the image" +msgstr "" + +#: view/theme/frio/config.php:62 +msgid "Select scheme" +msgstr "Selecionar esquema de cores" + +#: view/theme/frio/config.php:63 +msgid "Navigation bar background color" +msgstr "Cor de fundo da barra de navegação" + +#: view/theme/frio/config.php:64 +msgid "Navigation bar icon color " +msgstr "Cor do ícone da barra de navegação" + +#: view/theme/frio/config.php:65 +msgid "Link color" +msgstr "Cor do link" + +#: view/theme/frio/config.php:66 +msgid "Set the background color" +msgstr "Escolher a cor de fundo" + +#: view/theme/frio/config.php:67 +msgid "Content background transparency" +msgstr "Transparência do fundo do conteúdo" + +#: view/theme/frio/config.php:68 +msgid "Set the background image" +msgstr "Escolher a imagem de fundo" + +#: view/theme/frio/theme.php:226 +msgid "Guest" +msgstr "Convidado" + +#: view/theme/frio/theme.php:232 +msgid "Visitor" +msgstr "Visitante" + +#: view/theme/cleanzero/config.php:83 +msgid "Set resize level for images in posts and comments (width and height)" +msgstr "Configure o nível de redimensionamento para imagens em publicações e comentários (largura e altura)" + +#: view/theme/cleanzero/config.php:84 view/theme/dispy/config.php:73 +#: view/theme/diabook/config.php:151 +msgid "Set font-size for posts and comments" +msgstr "Escolha o tamanho da fonte para publicações e comentários" + +#: view/theme/cleanzero/config.php:85 +msgid "Set theme width" +msgstr "Configure a largura do tema" + +#: view/theme/cleanzero/config.php:86 view/theme/quattro/config.php:68 +msgid "Color scheme" +msgstr "Esquema de cores" + +#: view/theme/quattro/config.php:67 +msgid "Alignment" +msgstr "Alinhamento" + +#: view/theme/quattro/config.php:67 +msgid "Left" +msgstr "Esquerda" + +#: view/theme/quattro/config.php:67 +msgid "Center" +msgstr "Centro" + +#: view/theme/quattro/config.php:69 +msgid "Posts font size" +msgstr "Tamanho da fonte para publicações" + +#: view/theme/quattro/config.php:70 +msgid "Textareas font size" +msgstr "Tamanho da fonte para campos texto" + +#: view/theme/dispy/config.php:74 view/theme/diabook/config.php:152 +msgid "Set line-height for posts and comments" +msgstr "Escolha comprimento da linha para publicações e comentários" + +#: view/theme/dispy/config.php:75 +msgid "Set colour scheme" +msgstr "Configure o esquema de cores" + +#: view/theme/vier/theme.php:152 view/theme/vier/config.php:112 +#: view/theme/diabook/theme.php:391 view/theme/diabook/theme.php:626 +#: view/theme/diabook/config.php:160 +msgid "Community Profiles" +msgstr "Profiles Comunitários" + +#: view/theme/vier/theme.php:181 view/theme/vier/config.php:116 +#: view/theme/diabook/theme.php:412 view/theme/diabook/theme.php:630 +#: view/theme/diabook/config.php:164 +msgid "Last users" +msgstr "Últimos usuários" + +#: view/theme/vier/theme.php:199 view/theme/vier/config.php:115 +#: view/theme/diabook/theme.php:523 view/theme/diabook/theme.php:629 +#: view/theme/diabook/config.php:163 +msgid "Find Friends" +msgstr "Encontrar amigos" + +#: view/theme/vier/theme.php:200 view/theme/diabook/theme.php:524 +msgid "Local Directory" +msgstr "Diretório Local" + +#: view/theme/vier/theme.php:291 +msgid "Quick Start" +msgstr "" + +#: view/theme/vier/theme.php:373 view/theme/vier/config.php:114 +#: view/theme/diabook/theme.php:606 view/theme/diabook/theme.php:628 +#: view/theme/diabook/config.php:162 +msgid "Connect Services" +msgstr "Conectar serviços" + +#: view/theme/vier/config.php:64 +msgid "Comma separated list of helper forums" +msgstr "" + +#: view/theme/vier/config.php:110 +msgid "Set style" +msgstr "escolha estilo" + +#: view/theme/vier/config.php:111 view/theme/diabook/theme.php:130 +#: view/theme/diabook/theme.php:544 view/theme/diabook/theme.php:624 +#: view/theme/diabook/config.php:158 +msgid "Community Pages" +msgstr "Páginas da Comunidade" + +#: view/theme/vier/config.php:113 view/theme/diabook/theme.php:599 +#: view/theme/diabook/theme.php:627 view/theme/diabook/config.php:161 +msgid "Help or @NewHere ?" +msgstr "Ajuda ou @NewHere ?" + +#: view/theme/diabook/theme.php:125 +msgid "Your contacts" +msgstr "Seus contatos" + +#: view/theme/diabook/theme.php:128 +msgid "Your personal photos" +msgstr "Suas fotos pessoais" + +#: view/theme/diabook/theme.php:441 view/theme/diabook/theme.php:632 +#: view/theme/diabook/config.php:166 +msgid "Last likes" +msgstr "Últimas gostadas" + +#: view/theme/diabook/theme.php:486 view/theme/diabook/theme.php:631 +#: view/theme/diabook/config.php:165 +msgid "Last photos" +msgstr "Últimas fotos" + +#: view/theme/diabook/theme.php:579 view/theme/diabook/theme.php:625 +#: view/theme/diabook/config.php:159 +msgid "Earth Layers" +msgstr "Camadas da Terra" + +#: view/theme/diabook/theme.php:584 +msgid "Set zoomfactor for Earth Layers" +msgstr "Configure o zoom para Camadas da Terra" + +#: view/theme/diabook/theme.php:585 view/theme/diabook/config.php:156 +msgid "Set longitude (X) for Earth Layers" +msgstr "Configure longitude (X) para Camadas da Terra" + +#: view/theme/diabook/theme.php:586 view/theme/diabook/config.php:157 +msgid "Set latitude (Y) for Earth Layers" +msgstr "Configure latitude (Y) para Camadas da Terra" + +#: view/theme/diabook/theme.php:622 +msgid "Show/hide boxes at right-hand column:" +msgstr "Mostre/esconda caixas na coluna à direita:" + +#: view/theme/diabook/config.php:153 +msgid "Set resolution for middle column" +msgstr "Escolha a resolução para a coluna do meio" + +#: view/theme/diabook/config.php:154 +msgid "Set color scheme" +msgstr "Configure o esquema de cores" + +#: view/theme/diabook/config.php:155 +msgid "Set zoomfactor for Earth Layer" +msgstr "Configure o zoom para Camadas da Terra" + +#: view/theme/duepuntozero/config.php:45 +msgid "greenzero" +msgstr "greenzero" + +#: view/theme/duepuntozero/config.php:46 +msgid "purplezero" +msgstr "purplezero" + +#: view/theme/duepuntozero/config.php:47 +msgid "easterbunny" +msgstr "easterbunny" + +#: view/theme/duepuntozero/config.php:48 +msgid "darkzero" +msgstr "darkzero" + +#: view/theme/duepuntozero/config.php:49 +msgid "comix" +msgstr "comix" + +#: view/theme/duepuntozero/config.php:50 +msgid "slackr" +msgstr "slackr" + +#: view/theme/duepuntozero/config.php:62 +msgid "Variations" +msgstr "Variações" + +#: index.php:447 +msgid "toggle mobile" +msgstr "habilita mobile" + +#: boot.php:901 +msgid "Delete this item?" +msgstr "Excluir este item?" + +#: boot.php:904 +msgid "show fewer" +msgstr "exibir menos" + +#: boot.php:1518 +#, php-format +msgid "Update %s failed. See error logs." +msgstr "Atualização %s falhou. Vide registro de erros (log)." + +#: boot.php:1630 +msgid "Create a New Account" +msgstr "Criar uma nova conta" + +#: boot.php:1659 +msgid "Password: " +msgstr "Senha: " + +#: boot.php:1660 +msgid "Remember me" +msgstr "Lembre-se de mim" + +#: boot.php:1663 +msgid "Or login using OpenID: " +msgstr "Ou login usando OpendID:" + +#: boot.php:1669 +msgid "Forgot your password?" +msgstr "Esqueceu a sua senha?" + +#: boot.php:1672 +msgid "Website Terms of Service" +msgstr "Termos de Serviço do Website" + +#: boot.php:1673 +msgid "terms of service" +msgstr "termos de serviço" + +#: boot.php:1675 +msgid "Website Privacy Policy" +msgstr "Política de Privacidade do Website" + +#: boot.php:1676 +msgid "privacy policy" +msgstr "política de privacidade" diff --git a/view/pt-br/strings.php b/view/lang/pt-br/strings.php similarity index 88% rename from view/pt-br/strings.php rename to view/lang/pt-br/strings.php index 7021e9802..2dddd531a 100644 --- a/view/pt-br/strings.php +++ b/view/lang/pt-br/strings.php @@ -5,202 +5,33 @@ function string_plural_select_pt_br($n){ return ($n > 1);; }} ; -$a->strings["Submit"] = "Enviar"; -$a->strings["Theme settings"] = "Configurações do tema"; -$a->strings["Set resize level for images in posts and comments (width and height)"] = "Configure o nível de redimensionamento para imagens em publicações e comentários (largura e altura)"; -$a->strings["Set font-size for posts and comments"] = "Escolha o tamanho da fonte para publicações e comentários"; -$a->strings["Set theme width"] = "Configure a largura do tema"; -$a->strings["Color scheme"] = "Esquema de cores"; -$a->strings["Set style"] = "escolha estilo"; -$a->strings["default"] = "padrão"; -$a->strings["greenzero"] = "greenzero"; -$a->strings["purplezero"] = "purplezero"; -$a->strings["easterbunny"] = "easterbunny"; -$a->strings["darkzero"] = "darkzero"; -$a->strings["comix"] = "comix"; -$a->strings["slackr"] = "slackr"; -$a->strings["Variations"] = "Variações"; -$a->strings["don't show"] = "não exibir"; -$a->strings["show"] = "exibir"; -$a->strings["Set line-height for posts and comments"] = "Escolha comprimento da linha para publicações e comentários"; -$a->strings["Set resolution for middle column"] = "Escolha a resolução para a coluna do meio"; -$a->strings["Set color scheme"] = "Configure o esquema de cores"; -$a->strings["Set zoomfactor for Earth Layer"] = "Configure o zoom para Camadas da Terra"; -$a->strings["Set longitude (X) for Earth Layers"] = "Configure longitude (X) para Camadas da Terra"; -$a->strings["Set latitude (Y) for Earth Layers"] = "Configure latitude (Y) para Camadas da Terra"; -$a->strings["Community Pages"] = "Páginas da Comunidade"; -$a->strings["Earth Layers"] = "Camadas da Terra"; -$a->strings["Community Profiles"] = "Profiles Comunitários"; -$a->strings["Help or @NewHere ?"] = "Ajuda ou @NewHere ?"; -$a->strings["Connect Services"] = "Conectar serviços"; -$a->strings["Find Friends"] = "Encontrar amigos"; -$a->strings["Last users"] = "Últimos usuários"; -$a->strings["Last photos"] = "Últimas fotos"; -$a->strings["Last likes"] = "Últimas gostadas"; -$a->strings["Home"] = "Pessoal"; -$a->strings["Your posts and conversations"] = "Suas publicações e conversas"; -$a->strings["Profile"] = "Perfil "; -$a->strings["Your profile page"] = "Sua página de perfil"; -$a->strings["Contacts"] = "Contatos"; -$a->strings["Your contacts"] = "Seus contatos"; -$a->strings["Photos"] = "Fotos"; -$a->strings["Your photos"] = "Suas fotos"; -$a->strings["Events"] = "Eventos"; -$a->strings["Your events"] = "Seus eventos"; -$a->strings["Personal notes"] = "Suas anotações pessoais"; -$a->strings["Your personal photos"] = "Suas fotos pessoais"; -$a->strings["Community"] = "Comunidade"; -$a->strings["event"] = "evento"; -$a->strings["status"] = "status"; -$a->strings["photo"] = "foto"; -$a->strings["%1\$s likes %2\$s's %3\$s"] = "%1\$s gosta de %3\$s de %2\$s"; -$a->strings["Contact Photos"] = "Fotos dos contatos"; -$a->strings["Profile Photos"] = "Fotos do perfil"; -$a->strings["Local Directory"] = "Diretório Local"; -$a->strings["Global Directory"] = "Diretório global"; -$a->strings["Similar Interests"] = "Interesses Parecidos"; -$a->strings["Friend Suggestions"] = "Sugestões de amigos"; -$a->strings["Invite Friends"] = "Convidar amigos"; -$a->strings["Settings"] = "Configurações"; -$a->strings["Set zoomfactor for Earth Layers"] = "Configure o zoom para Camadas da Terra"; -$a->strings["Show/hide boxes at right-hand column:"] = "Mostre/esconda caixas na coluna à direita:"; -$a->strings["Alignment"] = "Alinhamento"; -$a->strings["Left"] = "Esquerda"; -$a->strings["Center"] = "Centro"; -$a->strings["Posts font size"] = "Tamanho da fonte para publicações"; -$a->strings["Textareas font size"] = "Tamanho da fonte para campos texto"; -$a->strings["Set colour scheme"] = "Configure o esquema de cores"; -$a->strings["You must be logged in to use addons. "] = "Você precisa estar logado para usar os addons."; -$a->strings["Not Found"] = "Não encontrada"; -$a->strings["Page not found."] = "Página não encontrada."; -$a->strings["Permission denied"] = "Permissão negada"; -$a->strings["Permission denied."] = "Permissão negada."; -$a->strings["toggle mobile"] = "habilita mobile"; -$a->strings["Do you wish to confirm your identity (%s) with %s"] = "Você deseja confirmar sua identidade (%s) com %s"; -$a->strings["Confirm"] = "Confirmar"; -$a->strings["Do not confirm"] = "Não confirma"; -$a->strings["Trust This Site"] = "Confia neste site"; -$a->strings["No Identifier Sent"] = "Nenhum identificador enviado"; -$a->strings["Requested identity don't match logged in user."] = "Identidade solicitada não corresponde ao usuário conectado"; -$a->strings["Please wait; you are being redirected to <%s>"] = "Por favor aguarde; você será redirecionado para <%s>"; -$a->strings["Delete this item?"] = "Excluir este item?"; -$a->strings["Comment"] = "Comentar"; -$a->strings["show more"] = "exibir mais"; -$a->strings["show fewer"] = "exibir menos"; -$a->strings["Update %s failed. See error logs."] = "Atualização %s falhou. Vide registro de erros (log)."; -$a->strings["Create a New Account"] = "Criar uma nova conta"; -$a->strings["Register"] = "Registrar"; -$a->strings["Logout"] = "Sair"; -$a->strings["Login"] = "Entrar"; -$a->strings["Nickname or Email address: "] = "Identificação ou endereço de e-mail: "; -$a->strings["Password: "] = "Senha: "; -$a->strings["Remember me"] = "Lembre-se de mim"; -$a->strings["Or login using OpenID: "] = "Ou login usando OpendID:"; -$a->strings["Forgot your password?"] = "Esqueceu a sua senha?"; -$a->strings["Password Reset"] = "Redifinir a senha"; -$a->strings["Website Terms of Service"] = "Termos de Serviço do Website"; -$a->strings["terms of service"] = "termos de serviço"; -$a->strings["Website Privacy Policy"] = "Política de Privacidade do Website"; -$a->strings["privacy policy"] = "política de privacidade"; -$a->strings["Requested account is not available."] = "Conta solicitada não disponível"; -$a->strings["Requested profile is not available."] = "Perfil solicitado não está disponível."; -$a->strings["Edit profile"] = "Editar perfil"; -$a->strings["Connect"] = "Conectar"; -$a->strings["Message"] = "Mensagem"; -$a->strings["Profiles"] = "Perfis"; -$a->strings["Manage/edit profiles"] = "Gerenciar/editar perfis"; -$a->strings["Change profile photo"] = "Mudar a foto do perfil"; -$a->strings["Create New Profile"] = "Criar um novo perfil"; -$a->strings["Profile Image"] = "Imagem do perfil"; -$a->strings["visible to everybody"] = "visível para todos"; -$a->strings["Edit visibility"] = "Editar a visibilidade"; -$a->strings["Location:"] = "Localização:"; -$a->strings["Gender:"] = "Gênero:"; -$a->strings["Status:"] = "Situação:"; -$a->strings["Homepage:"] = "Página web:"; -$a->strings["About:"] = "Sobre:"; -$a->strings["Network:"] = "Rede:"; -$a->strings["g A l F d"] = "G l d F"; -$a->strings["F d"] = "F d"; -$a->strings["[today]"] = "[hoje]"; -$a->strings["Birthday Reminders"] = "Lembretes de aniversário"; -$a->strings["Birthdays this week:"] = "Aniversários nesta semana:"; -$a->strings["[No description]"] = "[Sem descrição]"; -$a->strings["Event Reminders"] = "Lembretes de eventos"; -$a->strings["Events this week:"] = "Eventos esta semana:"; -$a->strings["Status"] = "Status"; -$a->strings["Status Messages and Posts"] = "Mensagem de Estado (status) e Publicações"; -$a->strings["Profile Details"] = "Detalhe do Perfil"; -$a->strings["Photo Albums"] = "Álbuns de fotos"; -$a->strings["Videos"] = "Vídeos"; -$a->strings["Events and Calendar"] = "Eventos e Agenda"; -$a->strings["Personal Notes"] = "Notas pessoais"; -$a->strings["Only You Can See This"] = "Somente Você Pode Ver Isso"; -$a->strings["General Features"] = "Funcionalidades Gerais"; -$a->strings["Multiple Profiles"] = "Perfís Múltiplos"; -$a->strings["Ability to create multiple profiles"] = "Capacidade de criar perfis múltiplos"; -$a->strings["Post Composition Features"] = "Funcionalidades de Composição de Publicações"; -$a->strings["Richtext Editor"] = "Editor Richtext"; -$a->strings["Enable richtext editor"] = "Habilite editor richtext"; -$a->strings["Post Preview"] = "Pré-visualização da Publicação"; -$a->strings["Allow previewing posts and comments before publishing them"] = "Permite pré-visualizar publicações e comentários antes de publicá-los"; -$a->strings["Auto-mention Forums"] = "Auto-menção Fóruns"; -$a->strings["Add/remove mention when a fourm page is selected/deselected in ACL window."] = "Adiciona/Remove menções quando uma página de fórum é selecionada/deselecionada na janela ACL"; -$a->strings["Network Sidebar Widgets"] = "Widgets da Barra Lateral da Rede"; -$a->strings["Search by Date"] = "Buscar por Data"; -$a->strings["Ability to select posts by date ranges"] = "Capacidade de selecionar publicações por intervalos de data"; -$a->strings["Group Filter"] = "Filtrar Grupo"; -$a->strings["Enable widget to display Network posts only from selected group"] = "Habilita widget para mostrar publicações da Rede somente de grupos selecionados"; -$a->strings["Network Filter"] = "Filtrar Rede"; -$a->strings["Enable widget to display Network posts only from selected network"] = "Habilita widget para mostrar publicações da Rede de redes selecionadas"; -$a->strings["Saved Searches"] = "Pesquisas salvas"; -$a->strings["Save search terms for re-use"] = "Guarde as palavras-chaves para reuso"; -$a->strings["Network Tabs"] = "Abas da Rede"; -$a->strings["Network Personal Tab"] = "Aba Pessoal da Rede"; -$a->strings["Enable tab to display only Network posts that you've interacted on"] = "Habilitar aba para mostrar apenas as publicações da Rede que você tenha interagido"; -$a->strings["Network New Tab"] = "Aba Nova da Rede"; -$a->strings["Enable tab to display only new Network posts (from the last 12 hours)"] = "Habilite aba para mostra apenas publicações da Rede novas (das últimas 12 horas)"; -$a->strings["Network Shared Links Tab"] = "Aba de Links Compartilhados da Rede"; -$a->strings["Enable tab to display only Network posts with links in them"] = "Habilite aba para mostrar somente publicações da Rede que contenham links"; -$a->strings["Post/Comment Tools"] = "Ferramentas de Publicação/Comentário"; -$a->strings["Multiple Deletion"] = "Deleção Multipla"; -$a->strings["Select and delete multiple posts/comments at once"] = "Selecione e delete múltiplas publicações/comentário imediatamente"; -$a->strings["Edit Sent Posts"] = "Editar Publicações Enviadas"; -$a->strings["Edit and correct posts and comments after sending"] = "Editar e corrigir publicações e comentários após envio"; -$a->strings["Tagging"] = "Etiquetagem"; -$a->strings["Ability to tag existing posts"] = "Capacidade de colocar etiquetas em publicações existentes"; -$a->strings["Post Categories"] = "Categorias de Publicações"; -$a->strings["Add categories to your posts"] = "Adicione Categorias ás Publicações"; -$a->strings["Saved Folders"] = "Pastas salvas"; -$a->strings["Ability to file posts under folders"] = "Capacidade de arquivar publicações em pastas"; -$a->strings["Dislike Posts"] = "Desgostar de publicações"; -$a->strings["Ability to dislike posts/comments"] = "Capacidade de desgostar de publicações/comentários"; -$a->strings["Star Posts"] = "Destacar publicações"; -$a->strings["Ability to mark special posts with a star indicator"] = "Capacidade de marcar publicações especiais com uma estrela indicadora"; -$a->strings["Mute Post Notifications"] = "Silenciar Notificações de Postagem"; -$a->strings["Ability to mute notifications for a thread"] = "Habilitar notificação silenciosa para a tarefa"; -$a->strings["%s's birthday"] = "aniversários de %s's"; -$a->strings["Happy Birthday %s"] = "Feliz Aniversário %s"; -$a->strings["[Name Withheld]"] = "[Nome não revelado]"; -$a->strings["Item not found."] = "O item não foi encontrado."; -$a->strings["Do you really want to delete this item?"] = "Você realmente deseja deletar esse item?"; -$a->strings["Yes"] = "Sim"; -$a->strings["Cancel"] = "Cancelar"; -$a->strings["Archives"] = "Arquivos"; -$a->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."] = "Um grupo com esse nome, anteriormente excluído, foi reativado. Permissões de itens já existentes poderão ser aplicadas a esse grupo e qualquer futuros membros. Se não é essa a sua intenção, favor criar outro grupo com um nome diferente."; -$a->strings["Default privacy group for new contacts"] = "Grupo de privacidade padrão para novos contatos"; -$a->strings["Everybody"] = "Todos"; -$a->strings["edit"] = "editar"; -$a->strings["Groups"] = "Grupos"; -$a->strings["Edit group"] = "Editar grupo"; -$a->strings["Create a new group"] = "Criar um novo grupo"; -$a->strings["Contacts not in any group"] = "Contatos não estão dentro de nenhum grupo"; -$a->strings["add"] = "adicionar"; -$a->strings["Wall Photos"] = "Fotos do mural"; -$a->strings["Cannot locate DNS info for database server '%s'"] = "Não foi possível localizar a informação de DNS para o servidor de banco de dados '%s'"; +$a->strings["Miscellaneous"] = "Miscelânea"; +$a->strings["Birthday:"] = "Aniversário:"; +$a->strings["Age: "] = "Idade: "; +$a->strings["YYYY-MM-DD or MM-DD"] = "AAAA-MM-DD ou MM-DD"; +$a->strings["never"] = "nunca"; +$a->strings["less than a second ago"] = "menos de um segundo atrás"; +$a->strings["year"] = "ano"; +$a->strings["years"] = "anos"; +$a->strings["month"] = "mês"; +$a->strings["months"] = "meses"; +$a->strings["week"] = "semana"; +$a->strings["weeks"] = "semanas"; +$a->strings["day"] = "dia"; +$a->strings["days"] = "dias"; +$a->strings["hour"] = "hora"; +$a->strings["hours"] = "horas"; +$a->strings["minute"] = "minuto"; +$a->strings["minutes"] = "minutos"; +$a->strings["second"] = "segundo"; +$a->strings["seconds"] = "segundos"; +$a->strings["%1\$d %2\$s ago"] = "%1\$d %2\$s atrás"; +$a->strings["%s's birthday"] = "aniversário de %s"; +$a->strings["Happy Birthday %s"] = "Feliz aniversário, %s"; $a->strings["Add New Contact"] = "Adicionar Contato Novo"; $a->strings["Enter address or web location"] = "Forneça endereço ou localização web"; $a->strings["Example: bob@example.com, http://example.com/barbara"] = "Por exemplo: joao@exemplo.com, http://exemplo.com/maria"; +$a->strings["Connect"] = "Conectar"; $a->strings["%d invitation available"] = array( 0 => "%d convite disponível", 1 => "%d convites disponíveis", @@ -210,18 +41,24 @@ $a->strings["Enter name or interest"] = "Fornecer nome ou interesse"; $a->strings["Connect/Follow"] = "Conectar-se/acompanhar"; $a->strings["Examples: Robert Morgenstein, Fishing"] = "Examplos: Robert Morgenstein, Fishing"; $a->strings["Find"] = "Pesquisar"; +$a->strings["Friend Suggestions"] = "Sugestões de amigos"; +$a->strings["Similar Interests"] = "Interesses Parecidos"; $a->strings["Random Profile"] = "Perfil Randômico"; +$a->strings["Invite Friends"] = "Convidar amigos"; $a->strings["Networks"] = "Redes"; $a->strings["All Networks"] = "Todas as redes"; +$a->strings["Saved Folders"] = "Pastas salvas"; $a->strings["Everything"] = "Tudo"; $a->strings["Categories"] = "Categorias"; $a->strings["%d contact in common"] = array( 0 => "%d contato em comum", 1 => "%d contatos em comum", ); +$a->strings["show more"] = "exibir mais"; $a->strings["Friendica Notification"] = "Notificação Friendica"; $a->strings["Thank You,"] = "Obrigado,"; $a->strings["%s Administrator"] = "%s Administrador"; +$a->strings["%1\$s, %2\$s Administrator"] = "%1\$s, %2\$s Administrador"; $a->strings["noreply"] = "naoresponda"; $a->strings["%s "] = "%s "; $a->strings["[Friendica:Notify] New mail received at %s"] = "[Friendica:Notify] Nova mensagem recebida em %s"; @@ -266,58 +103,251 @@ $a->strings["Name:"] = "Nome:"; $a->strings["Photo:"] = "Foto:"; $a->strings["Please visit %s to approve or reject the suggestion."] = "Favor visitar %s para aprovar ou rejeitar a sugestão."; $a->strings["[Friendica:Notify] Connection accepted"] = "[Friendica:Notificação] Conexão aceita"; -$a->strings["'%1\$s' has acepted your connection request at %2\$s"] = "'%1\$s' sua solicitação de conexão foi aceita em %2\$s"; +$a->strings["'%1\$s' has accepted your connection request at %2\$s"] = "'%1\$s' aceitou o seu pedido de conexão no %2\$s"; $a->strings["%2\$s has accepted your [url=%1\$s]connection request[/url]."] = "%2\$s Foi aceita [url=%1\$s] a conexão solicitada[/url]."; -$a->strings["You are now mutual friends and may exchange status updates, photos, and email\n\twithout restriction."] = "Você agora são amigos em comum e podem trocar atualizações de status, fotos e e-mail\n\tsem restrições."; -$a->strings["Please visit %s if you wish to make any changes to this relationship."] = "Por favor, visite %s se você desejar fazer quaisquer alterações a este relacionamento."; +$a->strings["You are now mutual friends and may exchange status updates, photos, and email without restriction."] = "Vocês agora são amigos mútuos e podem trocar atualizações de status, fotos e e-mails livremente."; +$a->strings["Please visit %s if you wish to make any changes to this relationship."] = ""; $a->strings["'%1\$s' has chosen to accept you a \"fan\", which restricts some forms of communication - such as private messaging and some profile interactions. If this is a celebrity or community page, these settings were applied automatically."] = "'%1\$s' optou por aceitá-lo um \"fã\", o que restringe algumas formas de comunicação - como mensagens privadas e algumas interações de perfil. Se esta é uma página de celebridade ou de uma comunidade, essas configurações foram aplicadas automaticamente."; -$a->strings["'%1\$s' may choose to extend this into a two-way or more permissive relationship in the future. "] = "'%1\$s' pode optar no futuro por estender isso para um relacionamento bidirecional ou superior permissivo."; +$a->strings["'%1\$s' may choose to extend this into a two-way or more permissive relationship in the future."] = ""; +$a->strings["Please visit %s if you wish to make any changes to this relationship."] = "Por favor, visite %s se você desejar fazer quaisquer alterações a este relacionamento."; $a->strings["[Friendica System:Notify] registration request"] = "[Friendica: Notificação do Sistema] solicitação de cadastro"; $a->strings["You've received a registration request from '%1\$s' at %2\$s"] = "Você recebeu um pedido de cadastro de '%1\$s' em %2\$s"; $a->strings["You've received a [url=%1\$s]registration request[/url] from %2\$s."] = "Você recebeu uma [url=%1\$s]solicitação de cadastro[/url] de %2\$s."; $a->strings["Full Name:\t%1\$s\\nSite Location:\t%2\$s\\nLogin Name:\t%3\$s (%4\$s)"] = "Nome completo:\t%1\$s\\nLocal do Site:\t%2\$s\\nNome de Login:\t%3\$s (%4\$s)"; $a->strings["Please visit %s to approve or reject the request."] = "Por favor, visite %s para aprovar ou rejeitar a solicitação."; -$a->strings["User not found."] = "Usuário não encontrado."; -$a->strings["Daily posting limit of %d posts reached. The post was rejected."] = "O limite diário de postagem de %d mensagens foi atingido. O post foi rejeitado."; -$a->strings["Weekly posting limit of %d posts reached. The post was rejected."] = "O limite de postagem semanal de %d mensagens foi atingido. O post foi rejeitado."; -$a->strings["Monthly posting limit of %d posts reached. The post was rejected."] = "O limite de postagem mensal de %d mensagens foi atingido. O post foi rejeitado."; -$a->strings["There is no status with this id."] = "Não existe status com esse id."; -$a->strings["There is no conversation with this id."] = "Não existe conversas com esse id."; -$a->strings["Invalid request."] = "Solicitação inválida."; -$a->strings["Invalid item."] = "Ítem inválido."; -$a->strings["Invalid action. "] = "Ação inválida."; -$a->strings["DB error"] = "Erro do Banco de Dados"; -$a->strings["view full size"] = "ver na tela inteira"; -$a->strings[" on Last.fm"] = "na Last.fm"; -$a->strings["Full Name:"] = "Nome completo:"; -$a->strings["j F, Y"] = "j de F, Y"; -$a->strings["j F"] = "j de F"; -$a->strings["Birthday:"] = "Aniversário:"; -$a->strings["Age:"] = "Idade:"; -$a->strings["for %1\$d %2\$s"] = "para %1\$d %2\$s"; -$a->strings["Sexual Preference:"] = "Preferência sexual:"; -$a->strings["Hometown:"] = "Cidade:"; -$a->strings["Tags:"] = "Etiquetas:"; -$a->strings["Political Views:"] = "Posição política:"; -$a->strings["Religion:"] = "Religião:"; -$a->strings["Hobbies/Interests:"] = "Passatempos/Interesses:"; -$a->strings["Likes:"] = "Gosta de:"; -$a->strings["Dislikes:"] = "Não gosta de:"; -$a->strings["Contact information and Social Networks:"] = "Informações de contato e redes sociais:"; -$a->strings["Musical interests:"] = "Preferências musicais:"; -$a->strings["Books, literature:"] = "Livros, literatura:"; -$a->strings["Television:"] = "Televisão:"; -$a->strings["Film/dance/culture/entertainment:"] = "Filmes/dança/cultura/entretenimento:"; -$a->strings["Love/Romance:"] = "Amor/romance:"; -$a->strings["Work/employment:"] = "Trabalho/emprego:"; -$a->strings["School/education:"] = "Escola/educação:"; +$a->strings["Forums"] = "Fóruns"; +$a->strings["External link to forum"] = "Link externo para fórum"; +$a->strings["l F d, Y \\@ g:i A"] = "l F d, Y \\@ H:i"; +$a->strings["Starts:"] = "Início:"; +$a->strings["Finishes:"] = "Término:"; +$a->strings["Location:"] = "Localização:"; +$a->strings["Sun"] = "Dom"; +$a->strings["Mon"] = "Seg"; +$a->strings["Tue"] = "Ter"; +$a->strings["Wed"] = "Qua"; +$a->strings["Thu"] = "Qui"; +$a->strings["Fri"] = "Sex"; +$a->strings["Sat"] = "Sáb"; +$a->strings["Sunday"] = "Domingo"; +$a->strings["Monday"] = "Segunda"; +$a->strings["Tuesday"] = "Terça"; +$a->strings["Wednesday"] = "Quarta"; +$a->strings["Thursday"] = "Quinta"; +$a->strings["Friday"] = "Sexta"; +$a->strings["Saturday"] = "Sábado"; +$a->strings["Jan"] = "Jan"; +$a->strings["Feb"] = "Fev"; +$a->strings["Mar"] = "Mar"; +$a->strings["Apr"] = "Abr"; +$a->strings["May"] = "Maio"; +$a->strings["Jun"] = "Jun"; +$a->strings["Jul"] = "Jul"; +$a->strings["Aug"] = "Ago"; +$a->strings["Sept"] = "Set"; +$a->strings["Oct"] = "Out"; +$a->strings["Nov"] = "Nov"; +$a->strings["Dec"] = "Dez"; +$a->strings["January"] = "Janeiro"; +$a->strings["February"] = "Fevereiro"; +$a->strings["March"] = "Março"; +$a->strings["April"] = "Abril"; +$a->strings["June"] = "Junho"; +$a->strings["July"] = "Julho"; +$a->strings["August"] = "Agosto"; +$a->strings["September"] = "Setembro"; +$a->strings["October"] = "Outubro"; +$a->strings["November"] = "Novembro"; +$a->strings["December"] = "Dezembro"; +$a->strings["today"] = "hoje"; +$a->strings["l, F j"] = "l, F j"; +$a->strings["Edit event"] = "Editar o evento"; +$a->strings["link to source"] = "exibir a origem"; +$a->strings["Export"] = "Exportar"; +$a->strings["Export calendar as ical"] = "Exportar a agenda como iCal"; +$a->strings["Export calendar as csv"] = "Exportar a agenda como CSV"; +$a->strings["Welcome "] = "Bem-vindo(a) "; +$a->strings["Please upload a profile photo."] = "Por favor, envie uma foto para o perfil."; +$a->strings["Welcome back "] = "Bem-vindo(a) de volta "; +$a->strings["The form security token was not correct. This probably happened because the form has been opened for too long (>3 hours) before submitting it."] = "O token de segurança do formulário não estava correto. Isso provavelmente aconteceu porque o formulário ficou aberto por muito tempo (>3 horas) antes da sua submissão."; +$a->strings["Male"] = "Masculino"; +$a->strings["Female"] = "Feminino"; +$a->strings["Currently Male"] = "Atualmente masculino"; +$a->strings["Currently Female"] = "Atualmente feminino"; +$a->strings["Mostly Male"] = "Masculino a maior parte do tempo"; +$a->strings["Mostly Female"] = "Feminino a maior parte do tempo"; +$a->strings["Transgender"] = "Transgênero"; +$a->strings["Intersex"] = "Intersexual"; +$a->strings["Transsexual"] = "Transexual"; +$a->strings["Hermaphrodite"] = "Hermafrodita"; +$a->strings["Neuter"] = "Neutro"; +$a->strings["Non-specific"] = "Não específico"; +$a->strings["Other"] = "Outro"; +$a->strings["Undecided"] = array( + 0 => "", + 1 => "", +); +$a->strings["Males"] = "Homens"; +$a->strings["Females"] = "Mulheres"; +$a->strings["Gay"] = "Gays"; +$a->strings["Lesbian"] = "Lésbicas"; +$a->strings["No Preference"] = "Sem preferência"; +$a->strings["Bisexual"] = "Bissexuais"; +$a->strings["Autosexual"] = "Autossexuais"; +$a->strings["Abstinent"] = "Abstêmios"; +$a->strings["Virgin"] = "Virgens"; +$a->strings["Deviant"] = "Desviantes"; +$a->strings["Fetish"] = "Fetiches"; +$a->strings["Oodles"] = "Insaciável"; +$a->strings["Nonsexual"] = "Não sexual"; +$a->strings["Single"] = "Solteiro(a)"; +$a->strings["Lonely"] = "Solitário(a)"; +$a->strings["Available"] = "Disponível"; +$a->strings["Unavailable"] = "Não disponível"; +$a->strings["Has crush"] = "Tem uma paixão"; +$a->strings["Infatuated"] = "Apaixonado"; +$a->strings["Dating"] = "Saindo com alguém"; +$a->strings["Unfaithful"] = "Infiel"; +$a->strings["Sex Addict"] = "Viciado(a) em sexo"; +$a->strings["Friends"] = "Amigos"; +$a->strings["Friends/Benefits"] = "Amigos/Benefícios"; +$a->strings["Casual"] = "Casual"; +$a->strings["Engaged"] = "Envolvido(a)"; +$a->strings["Married"] = "Casado(a)"; +$a->strings["Imaginarily married"] = "Casado imaginariamente"; +$a->strings["Partners"] = "Parceiros"; +$a->strings["Cohabiting"] = "Coabitando"; +$a->strings["Common law"] = "Direito comum"; +$a->strings["Happy"] = "Feliz"; +$a->strings["Not looking"] = "Não estou procurando"; +$a->strings["Swinger"] = "Swinger"; +$a->strings["Betrayed"] = "Traído(a)"; +$a->strings["Separated"] = "Separado(a)"; +$a->strings["Unstable"] = "Instável"; +$a->strings["Divorced"] = "Divorciado(a)"; +$a->strings["Imaginarily divorced"] = "Divorciado imaginariamente"; +$a->strings["Widowed"] = "Viúvo(a)"; +$a->strings["Uncertain"] = "Incerto(a)"; +$a->strings["It's complicated"] = "É complicado"; +$a->strings["Don't care"] = "Não importa"; +$a->strings["Ask me"] = "Pergunte-me"; +$a->strings["Embedded content"] = "Conteúdo incorporado"; +$a->strings["Embedding disabled"] = "A incorporação está desabilitada"; +$a->strings["Image/photo"] = "Imagem/foto"; +$a->strings["%2\$s %3\$s"] = "%2\$s %3\$s"; +$a->strings["$1 wrote:"] = "$1 escreveu:"; +$a->strings["Encrypted content"] = "Conteúdo criptografado"; +$a->strings["Cannot locate DNS info for database server '%s'"] = "Não foi possível localizar a informação de DNS para o servidor de banco de dados '%s'"; +$a->strings["Logged out."] = "Saiu."; +$a->strings["Login failed."] = "Não foi possível autenticar."; +$a->strings["We encountered a problem while logging in with the OpenID you provided. Please check the correct spelling of the ID."] = "Foi encontrado um erro ao tentar conectar usando o OpenID que você forneceu. Por favor, verifique se sua ID está escrita corretamente."; +$a->strings["The error message was:"] = "A mensagem de erro foi:"; +$a->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."] = "Um grupo com esse nome, anteriormente excluído, foi reativado. Permissões de itens já existentes poderão ser aplicadas a esse grupo e qualquer futuros membros. Se não é essa a sua intenção, favor criar outro grupo com um nome diferente."; +$a->strings["Default privacy group for new contacts"] = "Grupo de privacidade padrão para novos contatos"; +$a->strings["Everybody"] = "Todos"; +$a->strings["edit"] = "editar"; +$a->strings["Groups"] = "Grupos"; +$a->strings["Edit groups"] = "Editar grupos"; +$a->strings["Edit group"] = "Editar grupo"; +$a->strings["Create a new group"] = "Criar um novo grupo"; +$a->strings["Group Name: "] = "Nome do grupo: "; +$a->strings["Contacts not in any group"] = "Contatos não estão dentro de nenhum grupo"; +$a->strings["add"] = "adicionar"; +$a->strings["Wall Photos"] = "Fotos do mural"; +$a->strings["(no subject)"] = "(sem assunto)"; +$a->strings["Passwords do not match. Password unchanged."] = "As senhas não correspondem. A senha não foi modificada."; +$a->strings["An invitation is required."] = "É necessário um convite."; +$a->strings["Invitation could not be verified."] = "Não foi possível verificar o convite."; +$a->strings["Invalid OpenID url"] = "A URL do OpenID é inválida"; +$a->strings["Please enter the required information."] = "Por favor, forneça a informação solicitada."; +$a->strings["Please use a shorter name."] = "Por favor, use um nome mais curto."; +$a->strings["Name too short."] = "O nome é muito curto."; +$a->strings["That doesn't appear to be your full (First Last) name."] = "Isso não parece ser o seu nome completo (Nome Sobrenome)."; +$a->strings["Your email domain is not among those allowed on this site."] = "O domínio do seu e-mail não está entre os permitidos neste site."; +$a->strings["Not a valid email address."] = "Não é um endereço de e-mail válido."; +$a->strings["Cannot use that email."] = "Não é possível usar esse e-mail."; +$a->strings["Your \"nickname\" can only contain \"a-z\", \"0-9\" and \"_\"."] = ""; +$a->strings["Nickname is already registered. Please choose another."] = "Esta identificação já foi registrada. Por favor, escolha outra."; +$a->strings["Nickname was once registered here and may not be re-used. Please choose another."] = "Essa identificação já foi registrada e não pode ser reutilizada. Por favor, escolha outra."; +$a->strings["SERIOUS ERROR: Generation of security keys failed."] = "ERRO GRAVE: Não foi possível gerar as chaves de segurança."; +$a->strings["An error occurred during registration. Please try again."] = "Ocorreu um erro durante o registro. Por favor, tente novamente."; +$a->strings["default"] = "padrão"; +$a->strings["An error occurred creating your default profile. Please try again."] = "Ocorreu um erro na criação do seu perfil padrão. Por favor, tente novamente."; +$a->strings["Profile Photos"] = "Fotos do perfil"; +$a->strings["\n\t\tDear %1\$s,\n\t\t\tThank you for registering at %2\$s. Your account has been created.\n\t"] = "\n\t\tCaro %1\$s,\n\t\t\tObrigado por se cadastrar em %2\$s. Sua conta foi criada.\n\t"; +$a->strings["\n\t\tThe login details are as follows:\n\t\t\tSite Location:\t%3\$s\n\t\t\tLogin Name:\t%1\$s\n\t\t\tPassword:\t%5\$s\n\n\t\tYou may change your password from your account \"Settings\" page after logging\n\t\tin.\n\n\t\tPlease take a few moments to review the other account settings on that page.\n\n\t\tYou may also wish to add some basic information to your default profile\n\t\t(on the \"Profiles\" page) so that other people can easily find you.\n\n\t\tWe recommend setting your full name, adding a profile photo,\n\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n\t\tperhaps what country you live in; if you do not wish to be more specific\n\t\tthan that.\n\n\t\tWe fully respect your right to privacy, and none of these items are necessary.\n\t\tIf you are new and do not know anybody here, they may help\n\t\tyou to make some new and interesting friends.\n\n\n\t\tThank you and welcome to %2\$s."] = "\n\t\tOs dados de login são os seguintes:\n\t\t\tLocal do Site:\t%3\$s\n\t\t\tNome de Login:\t%1\$s\n\t\t\tSenha:\t%5\$s\n\n\t\tVocê pode alterar sua senha na página de \"Configurações\" da sua conta após fazer o login\n\n\t\tPor favor, dedique alguns minutos na página para rever as outras configurações da sua conta.\n\n\t\tTalvez você também queira incluir algumas informações básicas adicionais ao seu perfil padrão\n\t\t(na página de \"Perfis\") para que outras pessoas possam encontrá-lo com facilidade.\n\n\t\tRecomendamos que inclua seu nome completo, adicione uma foto do perfil,\n\t\tadicionar algumas \"palavras-chave\" (muito útil para fazer novas amizades) - e\n\t\ttalvez em que pais você mora; se você não quiser ser mais específico \n\t\tdo que isso.\n\n\t\tNós respeitamos plenamente seu direito à privacidade, e nenhum desses itens são necessários.\n\t\tSe você é novo por aqui e não conheço ninguém, eles podem ajuda-lo a fazer novas e interessantes amizades.\n\n\n\t\tObrigado e bem-vindo a %2\$s."; +$a->strings["Registration details for %s"] = "Detalhes do registro de %s"; +$a->strings["General Features"] = "Funcionalidades Gerais"; +$a->strings["Multiple Profiles"] = "Perfis Múltiplos"; +$a->strings["Ability to create multiple profiles"] = "Capacidade de criar perfis múltiplos"; +$a->strings["Photo Location"] = ""; +$a->strings["Photo metadata is normally stripped. This extracts the location (if present) prior to stripping metadata and links it to a map."] = ""; +$a->strings["Export Public Calendar"] = "Exportar a agenda pública"; +$a->strings["Ability for visitors to download the public calendar"] = "Visitantes podem baixar a agenda pública"; +$a->strings["Post Composition Features"] = "Funcionalidades de Composição de Publicações"; +$a->strings["Richtext Editor"] = "Editor Richtext"; +$a->strings["Enable richtext editor"] = "Habilite editor richtext"; +$a->strings["Post Preview"] = "Pré-visualização da Publicação"; +$a->strings["Allow previewing posts and comments before publishing them"] = "Permite pré-visualizar publicações e comentários antes de publicá-los"; +$a->strings["Auto-mention Forums"] = "Auto-menção Fóruns"; +$a->strings["Add/remove mention when a fourm page is selected/deselected in ACL window."] = "Adiciona/Remove menções quando uma página de fórum é selecionada/deselecionada na janela ACL"; +$a->strings["Network Sidebar Widgets"] = "Widgets da Barra Lateral da Rede"; +$a->strings["Search by Date"] = "Buscar por Data"; +$a->strings["Ability to select posts by date ranges"] = "Capacidade de selecionar publicações por intervalos de data"; +$a->strings["List Forums"] = ""; +$a->strings["Enable widget to display the forums your are connected with"] = ""; +$a->strings["Group Filter"] = "Filtrar Grupo"; +$a->strings["Enable widget to display Network posts only from selected group"] = "Habilita widget para mostrar publicações da Rede somente de grupos selecionados"; +$a->strings["Network Filter"] = "Filtrar Rede"; +$a->strings["Enable widget to display Network posts only from selected network"] = "Habilita widget para mostrar publicações da Rede de redes selecionadas"; +$a->strings["Saved Searches"] = "Pesquisas salvas"; +$a->strings["Save search terms for re-use"] = "Guarde as palavras-chaves para reuso"; +$a->strings["Network Tabs"] = "Abas da Rede"; +$a->strings["Network Personal Tab"] = "Aba Pessoal da Rede"; +$a->strings["Enable tab to display only Network posts that you've interacted on"] = "Habilitar aba para mostrar apenas as publicações da Rede que você tenha interagido"; +$a->strings["Network New Tab"] = "Aba Nova da Rede"; +$a->strings["Enable tab to display only new Network posts (from the last 12 hours)"] = "Habilite aba para mostra apenas publicações da Rede novas (das últimas 12 horas)"; +$a->strings["Network Shared Links Tab"] = "Aba de Links Compartilhados da Rede"; +$a->strings["Enable tab to display only Network posts with links in them"] = "Habilite aba para mostrar somente publicações da Rede que contenham links"; +$a->strings["Post/Comment Tools"] = "Ferramentas de Publicação/Comentário"; +$a->strings["Multiple Deletion"] = "Deleção Multipla"; +$a->strings["Select and delete multiple posts/comments at once"] = "Selecione e delete múltiplas publicações/comentário imediatamente"; +$a->strings["Edit Sent Posts"] = "Editar Publicações Enviadas"; +$a->strings["Edit and correct posts and comments after sending"] = "Editar e corrigir publicações e comentários após envio"; +$a->strings["Tagging"] = "Etiquetagem"; +$a->strings["Ability to tag existing posts"] = "Capacidade de colocar etiquetas em publicações existentes"; +$a->strings["Post Categories"] = "Categorias de Publicações"; +$a->strings["Add categories to your posts"] = "Adicione Categorias ás Publicações"; +$a->strings["Ability to file posts under folders"] = "Capacidade de arquivar publicações em pastas"; +$a->strings["Dislike Posts"] = "Desgostar de publicações"; +$a->strings["Ability to dislike posts/comments"] = "Capacidade de desgostar de publicações/comentários"; +$a->strings["Star Posts"] = "Destacar publicações"; +$a->strings["Ability to mark special posts with a star indicator"] = "Capacidade de marcar publicações especiais com uma estrela indicadora"; +$a->strings["Mute Post Notifications"] = "Silenciar Notificações de Postagem"; +$a->strings["Ability to mute notifications for a thread"] = "Habilitar notificação silenciosa para a tarefa"; +$a->strings["Advanced Profile Settings"] = "Configurações de perfil avançadas"; +$a->strings["Show visitors public community forums at the Advanced Profile Page"] = ""; $a->strings["Nothing new here"] = "Nada de novo aqui"; $a->strings["Clear notifications"] = "Descartar notificações"; +$a->strings["@name, !forum, #tags, content"] = ""; +$a->strings["Logout"] = "Sair"; $a->strings["End this session"] = "Terminar esta sessão"; +$a->strings["Status"] = "Status"; +$a->strings["Your posts and conversations"] = "Suas publicações e conversas"; +$a->strings["Profile"] = "Perfil "; +$a->strings["Your profile page"] = "Sua página de perfil"; +$a->strings["Photos"] = "Fotos"; +$a->strings["Your photos"] = "Suas fotos"; +$a->strings["Videos"] = "Vídeos"; $a->strings["Your videos"] = "Seus vídeos"; +$a->strings["Events"] = "Eventos"; +$a->strings["Your events"] = "Seus eventos"; +$a->strings["Personal notes"] = "Suas anotações pessoais"; $a->strings["Your personal notes"] = "Suas anotações pessoais"; +$a->strings["Login"] = "Entrar"; $a->strings["Sign in"] = "Entrar"; +$a->strings["Home"] = "Pessoal"; $a->strings["Home Page"] = "Página pessoal"; +$a->strings["Register"] = "Registrar"; $a->strings["Create an account"] = "Criar uma conta"; $a->strings["Help"] = "Ajuda"; $a->strings["Help and documentation"] = "Ajuda e documentação"; @@ -325,8 +355,13 @@ $a->strings["Apps"] = "Aplicativos"; $a->strings["Addon applications, utilities, games"] = "Complementos, utilitários, jogos"; $a->strings["Search"] = "Pesquisar"; $a->strings["Search site content"] = "Pesquisar conteúdo no site"; +$a->strings["Full Text"] = ""; +$a->strings["Tags"] = ""; +$a->strings["Contacts"] = "Contatos"; +$a->strings["Community"] = "Comunidade"; $a->strings["Conversations on this site"] = "Conversas neste site"; $a->strings["Conversations on the network"] = "Conversas na rede"; +$a->strings["Events and Calendar"] = "Eventos e Agenda"; $a->strings["Directory"] = "Diretório"; $a->strings["People directory"] = "Diretório de pessoas"; $a->strings["Information"] = "Informação"; @@ -339,6 +374,7 @@ $a->strings["Introductions"] = "Apresentações"; $a->strings["Friend Requests"] = "Requisições de Amizade"; $a->strings["Notifications"] = "Notificações"; $a->strings["See all notifications"] = "Ver todas notificações"; +$a->strings["Mark as seen"] = "Marcar como visto"; $a->strings["Mark all system notifications seen"] = "Marcar todas as notificações de sistema como vistas"; $a->strings["Messages"] = "Mensagens"; $a->strings["Private mail"] = "Mensagem privada"; @@ -349,76 +385,15 @@ $a->strings["Manage"] = "Gerenciar"; $a->strings["Manage other pages"] = "Gerenciar outras páginas"; $a->strings["Delegations"] = "Delegações"; $a->strings["Delegate Page Management"] = "Delegar Administração de Página"; +$a->strings["Settings"] = "Configurações"; $a->strings["Account settings"] = "Configurações da conta"; +$a->strings["Profiles"] = "Perfis"; $a->strings["Manage/Edit Profiles"] = "Administrar/Editar Perfis"; $a->strings["Manage/edit friends and contacts"] = "Gerenciar/editar amigos e contatos"; $a->strings["Admin"] = "Admin"; $a->strings["Site setup and configuration"] = "Configurações do site"; $a->strings["Navigation"] = "Navegação"; $a->strings["Site map"] = "Mapa do Site"; -$a->strings["Click here to upgrade."] = "Clique aqui para atualização (upgrade)."; -$a->strings["This action exceeds the limits set by your subscription plan."] = "Essa ação excede o limite definido para o seu plano de assinatura."; -$a->strings["This action is not available under your subscription plan."] = "Essa ação não está disponível em seu plano de assinatura."; -$a->strings["Disallowed profile URL."] = "URL de perfil não permitida."; -$a->strings["Connect URL missing."] = "URL de conexão faltando."; -$a->strings["This site is not configured to allow communications with other networks."] = "Este site não está configurado para permitir comunicações com outras redes."; -$a->strings["No compatible communication protocols or feeds were discovered."] = "Não foi descoberto nenhum protocolo de comunicação ou fonte de notícias compatível."; -$a->strings["The profile address specified does not provide adequate information."] = "O endereço de perfil especificado não fornece informação adequada."; -$a->strings["An author or name was not found."] = "Não foi encontrado nenhum autor ou nome."; -$a->strings["No browser URL could be matched to this address."] = "Não foi possível encontrar nenhuma URL de navegação neste endereço."; -$a->strings["Unable to match @-style Identity Address with a known protocol or email contact."] = "Não foi possível casa o estilo @ de Endereço de Identidade com um protocolo conhecido ou contato de email."; -$a->strings["Use mailto: in front of address to force email check."] = "Use mailto: antes do endereço para forçar a checagem de email."; -$a->strings["The profile address specified belongs to a network which has been disabled on this site."] = "O endereço de perfil especificado pertence a uma rede que foi desabilitada neste site."; -$a->strings["Limited profile. This person will be unable to receive direct/personal notifications from you."] = "Perfil limitado. Essa pessoa não poderá receber notificações diretas/pessoais de você."; -$a->strings["Unable to retrieve contact information."] = "Não foi possível recuperar a informação do contato."; -$a->strings["following"] = "acompanhando"; -$a->strings["Error decoding account file"] = "Erro ao decodificar arquivo de conta"; -$a->strings["Error! No version data in file! This is not a Friendica account file?"] = "Erro! Nenhum arquivo de dados de versão! Esse não é um arquivo de conta do Friendica?"; -$a->strings["Error! Cannot check nickname"] = "Erro! Não consigo conferir o apelido (nickname)"; -$a->strings["User '%s' already exists on this server!"] = "User '%s' já existe nesse servidor!"; -$a->strings["User creation error"] = "Erro na criação do usuário"; -$a->strings["User profile creation error"] = "Erro na criação do perfil do Usuário"; -$a->strings["%d contact not imported"] = array( - 0 => "%d contato não foi importado", - 1 => "%d contatos não foram importados", -); -$a->strings["Done. You can now login with your username and password"] = "Feito. Você agora pode entrar com seu nome de usuário e senha"; -$a->strings["l F d, Y \\@ g:i A"] = "l F d, Y \\@ H:i"; -$a->strings["Starts:"] = "Início:"; -$a->strings["Finishes:"] = "Término:"; -$a->strings["stopped following"] = "parou de acompanhar"; -$a->strings["Poke"] = "Cutucar"; -$a->strings["View Status"] = "Ver Status"; -$a->strings["View Profile"] = "Ver Perfil"; -$a->strings["View Photos"] = "Ver Fotos"; -$a->strings["Network Posts"] = "Publicações da Rede"; -$a->strings["Edit Contact"] = "Editar Contato"; -$a->strings["Drop Contact"] = "Excluir o contato"; -$a->strings["Send PM"] = "Enviar MP"; -$a->strings["\n\t\t\tThe friendica developers released update %s recently,\n\t\t\tbut when I tried to install it, something went terribly wrong.\n\t\t\tThis needs to be fixed soon and I can't do it alone. Please contact a\n\t\t\tfriendica developer if you can not help me on your own. My database might be invalid."] = "\n\t\t\tOs desenvolvedores de Friendica lançaram recentemente uma atualização %s,\n\t\t\tmas quando tentei instalá-la, algo deu terrivelmente errado.\n\t\t\tIsso precisa ser corrigido em breve e eu não posso fazer isso sozinho. Por favor, contate um\n\t\t\tdesenvolvedor da Friendica se você não pode me ajudar sozinho. Meu banco de dados pode ser inválido."; -$a->strings["The error message is\n[pre]%s[/pre]"] = "A mensagem de erro é\n[pre]%s[/pre]"; -$a->strings["Errors encountered creating database tables."] = "Foram encontrados erros durante a criação das tabelas do banco de dados."; -$a->strings["Errors encountered performing database changes."] = "Erros encontrados realizando mudanças no banco de dados."; -$a->strings["Miscellaneous"] = "Miscelânea"; -$a->strings["year"] = "ano"; -$a->strings["month"] = "mês"; -$a->strings["day"] = "dia"; -$a->strings["never"] = "nunca"; -$a->strings["less than a second ago"] = "menos de um segundo atrás"; -$a->strings["years"] = "anos"; -$a->strings["months"] = "meses"; -$a->strings["week"] = "semana"; -$a->strings["weeks"] = "semanas"; -$a->strings["days"] = "dias"; -$a->strings["hour"] = "hora"; -$a->strings["hours"] = "horas"; -$a->strings["minute"] = "minuto"; -$a->strings["minutes"] = "minutos"; -$a->strings["second"] = "segundo"; -$a->strings["seconds"] = "segundos"; -$a->strings["%1\$d %2\$s ago"] = "%1\$d %2\$s atrás"; -$a->strings["[no subject]"] = "[sem assunto]"; -$a->strings["(no subject)"] = "(sem assunto)"; $a->strings["Unknown | Not categorised"] = "Desconhecido | Não categorizado"; $a->strings["Block immediately"] = "Bloquear imediatamente"; $a->strings["Shady, spammer, self-marketer"] = "Dissimulado, spammer, propagandista"; @@ -445,17 +420,31 @@ $a->strings["Google+"] = "Google+"; $a->strings["pump.io"] = "pump.io"; $a->strings["Twitter"] = "Twitter"; $a->strings["Diaspora Connector"] = "Conector do Diáspora"; -$a->strings["Statusnet"] = "Statusnet"; +$a->strings["GNU Social"] = "GNU Social"; $a->strings["App.net"] = "App.net"; -$a->strings["%1\$s is now friends with %2\$s"] = "%1\$s agora é amigo de %2\$s"; -$a->strings["Sharing notification from Diaspora network"] = "Notificação de compartilhamento da rede Diaspora"; -$a->strings["Attachments:"] = "Anexos:"; +$a->strings["Hubzilla/Redmatrix"] = "Hubzilla/Redmatrix"; +$a->strings["event"] = "evento"; +$a->strings["status"] = "status"; +$a->strings["photo"] = "foto"; +$a->strings["%1\$s likes %2\$s's %3\$s"] = "%1\$s gosta de %3\$s de %2\$s"; $a->strings["%1\$s doesn't like %2\$s's %3\$s"] = "%1\$s não gosta de %3\$s de %2\$s"; +$a->strings["%1\$s attends %2\$s's %3\$s"] = ""; +$a->strings["%1\$s doesn't attend %2\$s's %3\$s"] = ""; +$a->strings["%1\$s attends maybe %2\$s's %3\$s"] = ""; +$a->strings["%1\$s is now friends with %2\$s"] = "%1\$s agora é amigo de %2\$s"; $a->strings["%1\$s poked %2\$s"] = "%1\$s cutucou %2\$s"; $a->strings["%1\$s is currently %2\$s"] = "%1\$s atualmente está %2\$s"; $a->strings["%1\$s tagged %2\$s's %3\$s with %4\$s"] = "%1\$s etiquetou %3\$s de %2\$s com %4\$s"; $a->strings["post/item"] = "postagem/item"; $a->strings["%1\$s marked %2\$s's %3\$s as favorite"] = "%1\$s marcou %3\$s de %2\$s como favorito"; +$a->strings["Likes"] = "Gosta de"; +$a->strings["Dislikes"] = "Não gosta de"; +$a->strings["Attending"] = array( + 0 => "", + 1 => "", +); +$a->strings["Not attending"] = ""; +$a->strings["Might attend"] = ""; $a->strings["Select"] = "Selecionar"; $a->strings["Delete"] = "Excluir"; $a->strings["View %s's profile @ %s"] = "Ver o perfil de %s @ %s"; @@ -467,14 +456,30 @@ $a->strings["Please wait"] = "Por favor, espere"; $a->strings["remove"] = "remover"; $a->strings["Delete Selected Items"] = "Excluir os itens selecionados"; $a->strings["Follow Thread"] = "Seguir o Thread"; +$a->strings["View Status"] = "Ver Status"; +$a->strings["View Profile"] = "Ver Perfil"; +$a->strings["View Photos"] = "Ver Fotos"; +$a->strings["Network Posts"] = "Publicações da Rede"; +$a->strings["Edit Contact"] = "Editar Contato"; +$a->strings["Send PM"] = "Enviar MP"; +$a->strings["Poke"] = "Cutucar"; $a->strings["%s likes this."] = "%s gostou disso."; $a->strings["%s doesn't like this."] = "%s não gostou disso."; -$a->strings["%2\$d people like this"] = "%2\$d pessoas gostaram disso"; -$a->strings["%2\$d people don't like this"] = "%2\$d pessoas não gostaram disso"; +$a->strings["%s attends."] = ""; +$a->strings["%s doesn't attend."] = ""; +$a->strings["%s attends maybe."] = ""; $a->strings["and"] = "e"; $a->strings[", and %d other people"] = ", e mais %d outras pessoas"; -$a->strings["%s like this."] = "%s gostaram disso."; -$a->strings["%s don't like this."] = "%s não gostaram disso."; +$a->strings["%2\$d people like this"] = "%2\$d pessoas gostaram disso"; +$a->strings["%s like this."] = "%s curtiu."; +$a->strings["%2\$d people don't like this"] = "%2\$d pessoas não gostaram disso"; +$a->strings["%s don't like this."] = "%s não curtiu."; +$a->strings["%2\$d people attend"] = ""; +$a->strings["%s attend."] = ""; +$a->strings["%2\$d people don't attend"] = ""; +$a->strings["%s don't attend."] = ""; +$a->strings["%2\$d people anttend maybe"] = ""; +$a->strings["%s anttend maybe."] = ""; $a->strings["Visible to everybody"] = "Visível para todos"; $a->strings["Please enter a link URL:"] = "Por favor, digite uma URL:"; $a->strings["Please enter a video link/URL:"] = "Favor fornecer um link/URL de vídeo"; @@ -483,9 +488,6 @@ $a->strings["Tag term:"] = "Etiqueta:"; $a->strings["Save to Folder:"] = "Salvar na pasta:"; $a->strings["Where are you right now?"] = "Onde você está agora?"; $a->strings["Delete item(s)?"] = "Deletar item(s)?"; -$a->strings["Post to Email"] = "Enviar por e-mail"; -$a->strings["Connectors disabled, since \"%s\" is enabled."] = "Conectores desabilitados, desde \"%s\" está habilitado."; -$a->strings["Hide your profile details from unknown viewers?"] = "Ocultar os detalhes do seu perfil para pessoas desconhecidas?"; $a->strings["Share"] = "Compartilhar"; $a->strings["Upload photo"] = "Enviar foto"; $a->strings["upload photo"] = "upload de foto"; @@ -505,13 +507,129 @@ $a->strings["Set title"] = "Definir o título"; $a->strings["Categories (comma-separated list)"] = "Categorias (lista separada por vírgulas)"; $a->strings["Permission settings"] = "Configurações de permissão"; $a->strings["permissions"] = "permissões"; -$a->strings["CC: email addresses"] = "CC: endereço de e-mail"; $a->strings["Public post"] = "Publicação pública"; -$a->strings["Example: bob@example.com, mary@example.com"] = "Por exemplo: joao@exemplo.com, maria@exemplo.com"; $a->strings["Preview"] = "Pré-visualização"; +$a->strings["Cancel"] = "Cancelar"; $a->strings["Post to Groups"] = "Postar em Grupos"; $a->strings["Post to Contacts"] = "Publique para Contatos"; $a->strings["Private post"] = "Publicação privada"; +$a->strings["Message"] = "Mensagem"; +$a->strings["Browser"] = "Navegador"; +$a->strings["View all"] = ""; +$a->strings["Like"] = array( + 0 => "Curtida", + 1 => "Curtidas", +); +$a->strings["Dislike"] = array( + 0 => "Não curtiu", + 1 => "Não curtiram", +); +$a->strings["Not Attending"] = array( + 0 => "Não vai", + 1 => "Não vão", +); +$a->strings["view full size"] = "ver na tela inteira"; +$a->strings["\n\t\t\tThe friendica developers released update %s recently,\n\t\t\tbut when I tried to install it, something went terribly wrong.\n\t\t\tThis needs to be fixed soon and I can't do it alone. Please contact a\n\t\t\tfriendica developer if you can not help me on your own. My database might be invalid."] = "\n\t\t\tOs desenvolvedores de Friendica lançaram recentemente uma atualização %s,\n\t\t\tmas quando tentei instalá-la, algo deu terrivelmente errado.\n\t\t\tIsso precisa ser corrigido em breve e eu não posso fazer isso sozinho. Por favor, contate um\n\t\t\tdesenvolvedor da Friendica se você não pode me ajudar sozinho. Meu banco de dados pode ser inválido."; +$a->strings["The error message is\n[pre]%s[/pre]"] = "A mensagem de erro é\n[pre]%s[/pre]"; +$a->strings["Errors encountered creating database tables."] = "Foram encontrados erros durante a criação das tabelas do banco de dados."; +$a->strings["Errors encountered performing database changes."] = "Erros encontrados realizando mudanças no banco de dados."; +$a->strings["stopped following"] = "parou de acompanhar"; +$a->strings["Drop Contact"] = "Excluir o contato"; +$a->strings["Post to Email"] = "Enviar por e-mail"; +$a->strings["Connectors disabled, since \"%s\" is enabled."] = "Conectores desabilitados, desde \"%s\" está habilitado."; +$a->strings["Hide your profile details from unknown viewers?"] = "Ocultar os detalhes do seu perfil para pessoas desconhecidas?"; +$a->strings["Visible to everybody"] = "Visível para todos"; +$a->strings["show"] = "exibir"; +$a->strings["don't show"] = "não exibir"; +$a->strings["CC: email addresses"] = "CC: endereço de e-mail"; +$a->strings["Example: bob@example.com, mary@example.com"] = "Por exemplo: joao@exemplo.com, maria@exemplo.com"; +$a->strings["Permissions"] = "Permissões"; +$a->strings["Close"] = "Fechar"; +$a->strings["Daily posting limit of %d posts reached. The post was rejected."] = "O limite diário de postagem de %d mensagens foi atingido. O post foi rejeitado."; +$a->strings["Weekly posting limit of %d posts reached. The post was rejected."] = "O limite de postagem semanal de %d mensagens foi atingido. O post foi rejeitado."; +$a->strings["Monthly posting limit of %d posts reached. The post was rejected."] = "O limite de postagem mensal de %d mensagens foi atingido. O post foi rejeitado."; +$a->strings["%s\\'s birthday"] = "Aniversário de %s\__DQ_"; +$a->strings["Sharing notification from Diaspora network"] = "Notificação de compartilhamento da rede Diaspora"; +$a->strings["Attachments:"] = "Anexos:"; +$a->strings["Disallowed profile URL."] = "URL de perfil não permitida."; +$a->strings["Connect URL missing."] = "URL de conexão faltando."; +$a->strings["This site is not configured to allow communications with other networks."] = "Este site não está configurado para permitir comunicações com outras redes."; +$a->strings["No compatible communication protocols or feeds were discovered."] = "Não foi descoberto nenhum protocolo de comunicação ou fonte de notícias compatível."; +$a->strings["The profile address specified does not provide adequate information."] = "O endereço de perfil especificado não fornece informação adequada."; +$a->strings["An author or name was not found."] = "Não foi encontrado nenhum autor ou nome."; +$a->strings["No browser URL could be matched to this address."] = "Não foi possível encontrar nenhuma URL de navegação neste endereço."; +$a->strings["Unable to match @-style Identity Address with a known protocol or email contact."] = "Não foi possível casa o estilo @ de Endereço de Identidade com um protocolo conhecido ou contato de email."; +$a->strings["Use mailto: in front of address to force email check."] = "Use mailto: antes do endereço para forçar a checagem de email."; +$a->strings["The profile address specified belongs to a network which has been disabled on this site."] = "O endereço de perfil especificado pertence a uma rede que foi desabilitada neste site."; +$a->strings["Limited profile. This person will be unable to receive direct/personal notifications from you."] = "Perfil limitado. Essa pessoa não poderá receber notificações diretas/pessoais de você."; +$a->strings["Unable to retrieve contact information."] = "Não foi possível recuperar a informação do contato."; +$a->strings["following"] = "acompanhando"; +$a->strings["Requested account is not available."] = "Conta solicitada não disponível"; +$a->strings["Requested profile is not available."] = "Perfil solicitado não está disponível."; +$a->strings["Edit profile"] = "Editar perfil"; +$a->strings["Atom feed"] = ""; +$a->strings["Manage/edit profiles"] = "Gerenciar/editar perfis"; +$a->strings["Change profile photo"] = "Mudar a foto do perfil"; +$a->strings["Create New Profile"] = "Criar um novo perfil"; +$a->strings["Profile Image"] = "Imagem do perfil"; +$a->strings["visible to everybody"] = "visível para todos"; +$a->strings["Edit visibility"] = "Editar a visibilidade"; +$a->strings["Forum"] = "Fórum"; +$a->strings["Gender:"] = "Gênero:"; +$a->strings["Status:"] = "Situação:"; +$a->strings["Homepage:"] = "Página web:"; +$a->strings["About:"] = "Sobre:"; +$a->strings["Network:"] = "Rede:"; +$a->strings["g A l F d"] = "G l d F"; +$a->strings["F d"] = "F d"; +$a->strings["[today]"] = "[hoje]"; +$a->strings["Birthday Reminders"] = "Lembretes de aniversário"; +$a->strings["Birthdays this week:"] = "Aniversários nesta semana:"; +$a->strings["[No description]"] = "[Sem descrição]"; +$a->strings["Event Reminders"] = "Lembretes de eventos"; +$a->strings["Events this week:"] = "Eventos esta semana:"; +$a->strings["Full Name:"] = "Nome completo:"; +$a->strings["j F, Y"] = "j de F, Y"; +$a->strings["j F"] = "j de F"; +$a->strings["Age:"] = "Idade:"; +$a->strings["for %1\$d %2\$s"] = "para %1\$d %2\$s"; +$a->strings["Sexual Preference:"] = "Preferência sexual:"; +$a->strings["Hometown:"] = "Cidade:"; +$a->strings["Tags:"] = "Etiquetas:"; +$a->strings["Political Views:"] = "Posição política:"; +$a->strings["Religion:"] = "Religião:"; +$a->strings["Hobbies/Interests:"] = "Passatempos/Interesses:"; +$a->strings["Likes:"] = "Gosta de:"; +$a->strings["Dislikes:"] = "Não gosta de:"; +$a->strings["Contact information and Social Networks:"] = "Informações de contato e redes sociais:"; +$a->strings["Musical interests:"] = "Preferências musicais:"; +$a->strings["Books, literature:"] = "Livros, literatura:"; +$a->strings["Television:"] = "Televisão:"; +$a->strings["Film/dance/culture/entertainment:"] = "Filmes/dança/cultura/entretenimento:"; +$a->strings["Love/Romance:"] = "Amor/romance:"; +$a->strings["Work/employment:"] = "Trabalho/emprego:"; +$a->strings["School/education:"] = "Escola/educação:"; +$a->strings["Forums:"] = "Fóruns:"; +$a->strings["Basic"] = ""; +$a->strings["Advanced"] = "Avançado"; +$a->strings["Status Messages and Posts"] = "Mensagem de Estado (status) e Publicações"; +$a->strings["Profile Details"] = "Detalhe do Perfil"; +$a->strings["Photo Albums"] = "Álbuns de fotos"; +$a->strings["Personal Notes"] = "Notas pessoais"; +$a->strings["Only You Can See This"] = "Somente Você Pode Ver Isso"; +$a->strings["[Name Withheld]"] = "[Nome não revelado]"; +$a->strings["Item not found."] = "O item não foi encontrado."; +$a->strings["Do you really want to delete this item?"] = "Você realmente deseja deletar esse item?"; +$a->strings["Yes"] = "Sim"; +$a->strings["Permission denied."] = "Permissão negada."; +$a->strings["Archives"] = "Arquivos"; +$a->strings["%1\$s is attending %2\$s's %3\$s"] = "%1\$s vai a %3\$s de %2\$s"; +$a->strings["%1\$s is not attending %2\$s's %3\$s"] = "%1\$s não vai a %3\$s de %2\$s"; +$a->strings["%1\$s may attend %2\$s's %3\$s"] = "%1\$s está pensando em ir a %3\$s de %2\$s"; +$a->strings["[no subject]"] = "[sem assunto]"; +$a->strings["Click here to upgrade."] = "Clique aqui para atualização (upgrade)."; +$a->strings["This action exceeds the limits set by your subscription plan."] = "Essa ação excede o limite definido para o seu plano de assinatura."; +$a->strings["This action is not available under your subscription plan."] = "Essa ação não está disponível em seu plano de assinatura."; $a->strings["newer"] = "mais recente"; $a->strings["older"] = "antigo"; $a->strings["prev"] = "anterior"; @@ -559,30 +677,11 @@ $a->strings["frustrated"] = "frustrado"; $a->strings["motivated"] = "motivado"; $a->strings["relaxed"] = "relaxado"; $a->strings["surprised"] = "surpreso"; -$a->strings["Monday"] = "Segunda"; -$a->strings["Tuesday"] = "Terça"; -$a->strings["Wednesday"] = "Quarta"; -$a->strings["Thursday"] = "Quinta"; -$a->strings["Friday"] = "Sexta"; -$a->strings["Saturday"] = "Sábado"; -$a->strings["Sunday"] = "Domingo"; -$a->strings["January"] = "Janeiro"; -$a->strings["February"] = "Fevereiro"; -$a->strings["March"] = "Março"; -$a->strings["April"] = "Abril"; -$a->strings["May"] = "Maio"; -$a->strings["June"] = "Junho"; -$a->strings["July"] = "Julho"; -$a->strings["August"] = "Agosto"; -$a->strings["September"] = "Setembro"; -$a->strings["October"] = "Outubro"; -$a->strings["November"] = "Novembro"; -$a->strings["December"] = "Dezembro"; $a->strings["View Video"] = "Ver Vídeo"; $a->strings["bytes"] = "bytes"; $a->strings["Click to open/close"] = "Clique para abrir/fechar"; -$a->strings["link to source"] = "exibir a origem"; -$a->strings["Select an alternate language"] = "Selecione um idioma alternativo"; +$a->strings["View on separate page"] = "Ver em uma página separada"; +$a->strings["view on separate page"] = "ver em uma página separada"; $a->strings["activity"] = "atividade"; $a->strings["comment"] = array( 0 => "comentário", @@ -590,137 +689,275 @@ $a->strings["comment"] = array( ); $a->strings["post"] = "publicação"; $a->strings["Item filed"] = "O item foi arquivado"; -$a->strings["Logged out."] = "Saiu."; -$a->strings["Login failed."] = "Não foi possível autenticar."; -$a->strings["We encountered a problem while logging in with the OpenID you provided. Please check the correct spelling of the ID."] = "Foi encontrado um erro ao tentar conectar usando o OpenID que você forneceu. Por favor, verifique se sua ID está escrita corretamente."; -$a->strings["The error message was:"] = "A mensagem de erro foi:"; -$a->strings["Image/photo"] = "Imagem/foto"; -$a->strings["%2\$s %3\$s"] = "%2\$s %3\$s"; -$a->strings["%s wrote the following post"] = "%s escreveu a seguinte publicação"; -$a->strings["$1 wrote:"] = "$1 escreveu:"; -$a->strings["Encrypted content"] = "Conteúdo criptografado"; -$a->strings["Welcome "] = "Bem-vindo(a) "; -$a->strings["Please upload a profile photo."] = "Por favor, envie uma foto para o perfil."; -$a->strings["Welcome back "] = "Bem-vindo(a) de volta "; -$a->strings["The form security token was not correct. This probably happened because the form has been opened for too long (>3 hours) before submitting it."] = "O token de segurança do formulário não estava correto. Isso provavelmente aconteceu porque o formulário ficou aberto por muito tempo (>3 horas) antes da sua submissão."; -$a->strings["Embedded content"] = "Conteúdo incorporado"; -$a->strings["Embedding disabled"] = "A incorporação está desabilitada"; -$a->strings["Male"] = "Masculino"; -$a->strings["Female"] = "Feminino"; -$a->strings["Currently Male"] = "Atualmente masculino"; -$a->strings["Currently Female"] = "Atualmente feminino"; -$a->strings["Mostly Male"] = "Masculino a maior parte do tempo"; -$a->strings["Mostly Female"] = "Feminino a maior parte do tempo"; -$a->strings["Transgender"] = "Transgênero"; -$a->strings["Intersex"] = "Intersexual"; -$a->strings["Transsexual"] = "Transexual"; -$a->strings["Hermaphrodite"] = "Hermafrodita"; -$a->strings["Neuter"] = "Neutro"; -$a->strings["Non-specific"] = "Não específico"; -$a->strings["Other"] = "Outro"; -$a->strings["Undecided"] = "Indeciso"; -$a->strings["Males"] = "Homens"; -$a->strings["Females"] = "Mulheres"; -$a->strings["Gay"] = "Gays"; -$a->strings["Lesbian"] = "Lésbicas"; -$a->strings["No Preference"] = "Sem preferência"; -$a->strings["Bisexual"] = "Bissexuais"; -$a->strings["Autosexual"] = "Autossexuais"; -$a->strings["Abstinent"] = "Abstêmios"; -$a->strings["Virgin"] = "Virgens"; -$a->strings["Deviant"] = "Desviantes"; -$a->strings["Fetish"] = "Fetiches"; -$a->strings["Oodles"] = "Insaciável"; -$a->strings["Nonsexual"] = "Não sexual"; -$a->strings["Single"] = "Solteiro(a)"; -$a->strings["Lonely"] = "Solitário(a)"; -$a->strings["Available"] = "Disponível"; -$a->strings["Unavailable"] = "Não disponível"; -$a->strings["Has crush"] = "Tem uma paixão"; -$a->strings["Infatuated"] = "Apaixonado"; -$a->strings["Dating"] = "Saindo com alguém"; -$a->strings["Unfaithful"] = "Infiel"; -$a->strings["Sex Addict"] = "Viciado(a) em sexo"; -$a->strings["Friends"] = "Amigos"; -$a->strings["Friends/Benefits"] = "Amigos/Benefícios"; -$a->strings["Casual"] = "Casual"; -$a->strings["Engaged"] = "Envolvido(a)"; -$a->strings["Married"] = "Casado(a)"; -$a->strings["Imaginarily married"] = "Casado imaginariamente"; -$a->strings["Partners"] = "Parceiros"; -$a->strings["Cohabiting"] = "Coabitando"; -$a->strings["Common law"] = "Direito comum"; -$a->strings["Happy"] = "Feliz"; -$a->strings["Not looking"] = "Não estou procurando"; -$a->strings["Swinger"] = "Swinger"; -$a->strings["Betrayed"] = "Traído(a)"; -$a->strings["Separated"] = "Separado(a)"; -$a->strings["Unstable"] = "Instável"; -$a->strings["Divorced"] = "Divorciado(a)"; -$a->strings["Imaginarily divorced"] = "Divorciado imaginariamente"; -$a->strings["Widowed"] = "Viúvo(a)"; -$a->strings["Uncertain"] = "Incerto(a)"; -$a->strings["It's complicated"] = "É complicado"; -$a->strings["Don't care"] = "Não importa"; -$a->strings["Ask me"] = "Pergunte-me"; -$a->strings["An invitation is required."] = "É necessário um convite."; -$a->strings["Invitation could not be verified."] = "Não foi possível verificar o convite."; -$a->strings["Invalid OpenID url"] = "A URL do OpenID é inválida"; -$a->strings["Please enter the required information."] = "Por favor, forneça a informação solicitada."; -$a->strings["Please use a shorter name."] = "Por favor, use um nome mais curto."; -$a->strings["Name too short."] = "O nome é muito curto."; -$a->strings["That doesn't appear to be your full (First Last) name."] = "Isso não parece ser o seu nome completo (Nome Sobrenome)."; -$a->strings["Your email domain is not among those allowed on this site."] = "O domínio do seu e-mail não está entre os permitidos neste site."; -$a->strings["Not a valid email address."] = "Não é um endereço de e-mail válido."; -$a->strings["Cannot use that email."] = "Não é possível usar esse e-mail."; -$a->strings["Your \"nickname\" can only contain \"a-z\", \"0-9\", \"-\", and \"_\", and must also begin with a letter."] = "A sua identificação pode conter somente os caracteres \"a-z\", \"0-9\", \"-\", e \"_\", além disso, deve começar com uma letra."; -$a->strings["Nickname is already registered. Please choose another."] = "Esta identificação já foi registrada. Por favor, escolha outra."; -$a->strings["Nickname was once registered here and may not be re-used. Please choose another."] = "Essa identificação já foi registrada e não pode ser reutilizada. Por favor, escolha outra."; -$a->strings["SERIOUS ERROR: Generation of security keys failed."] = "ERRO GRAVE: Não foi possível gerar as chaves de segurança."; -$a->strings["An error occurred during registration. Please try again."] = "Ocorreu um erro durante o registro. Por favor, tente novamente."; -$a->strings["An error occurred creating your default profile. Please try again."] = "Ocorreu um erro na criação do seu perfil padrão. Por favor, tente novamente."; -$a->strings["\n\t\tDear %1\$s,\n\t\t\tThank you for registering at %2\$s. Your account has been created.\n\t"] = "\n\t\tCaro %1\$s,\n\t\t\tObrigado por se cadastrar em %2\$s. Sua conta foi criada.\n\t"; -$a->strings["\n\t\tThe login details are as follows:\n\t\t\tSite Location:\t%3\$s\n\t\t\tLogin Name:\t%1\$s\n\t\t\tPassword:\t%5\$s\n\n\t\tYou may change your password from your account \"Settings\" page after logging\n\t\tin.\n\n\t\tPlease take a few moments to review the other account settings on that page.\n\n\t\tYou may also wish to add some basic information to your default profile\n\t\t(on the \"Profiles\" page) so that other people can easily find you.\n\n\t\tWe recommend setting your full name, adding a profile photo,\n\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n\t\tperhaps what country you live in; if you do not wish to be more specific\n\t\tthan that.\n\n\t\tWe fully respect your right to privacy, and none of these items are necessary.\n\t\tIf you are new and do not know anybody here, they may help\n\t\tyou to make some new and interesting friends.\n\n\n\t\tThank you and welcome to %2\$s."] = "\n\t\tOs dados de login são os seguintes:\n\t\t\tLocal do Site:\t%3\$s\n\t\t\tNome de Login:\t%1\$s\n\t\t\tSenha:\t%5\$s\n\n\t\tVocê pode alterar sua senha na página de \"Configurações\" da sua conta após fazer o login\n\n\t\tPor favor, dedique alguns minutos na página para rever as outras configurações da sua conta.\n\n\t\tTalvez você também queira incluir algumas informações básicas adicionais ao seu perfil padrão\n\t\t(na página de \"Perfis\") para que outras pessoas possam encontrá-lo com facilidade.\n\n\t\tRecomendamos que inclua seu nome completo, adicione uma foto do perfil,\n\t\tadicionar algumas \"palavras-chave\" (muito útil para fazer novas amizades) - e\n\t\ttalvez em que pais você mora; se você não quiser ser mais específico \n\t\tdo que isso.\n\n\t\tNós respeitamos plenamente seu direito à privacidade, e nenhum desses itens são necessários.\n\t\tSe você é novo por aqui e não conheço ninguém, eles podem ajuda-lo a fazer novas e interessantes amizades.\n\n\n\t\tObrigado e bem-vindo a %2\$s."; -$a->strings["Registration details for %s"] = "Detalhes do registro de %s"; -$a->strings["Visible to everybody"] = "Visível para todos"; -$a->strings["This entry was edited"] = "Essa entrada foi editada"; -$a->strings["Private Message"] = "Mensagem privada"; -$a->strings["Edit"] = "Editar"; -$a->strings["save to folder"] = "salvar na pasta"; -$a->strings["add star"] = "destacar"; -$a->strings["remove star"] = "remover o destaque"; -$a->strings["toggle star status"] = "ativa/desativa o destaque"; -$a->strings["starred"] = "marcado com estrela"; -$a->strings["ignore thread"] = "ignorar tópico"; -$a->strings["unignore thread"] = "deixar de ignorar tópico"; -$a->strings["toggle ignore status"] = "alternar status ignorar"; -$a->strings["ignored"] = "Ignorado"; -$a->strings["add tag"] = "adicionar etiqueta"; -$a->strings["I like this (toggle)"] = "Eu gostei disso (alternar)"; -$a->strings["like"] = "gostei"; -$a->strings["I don't like this (toggle)"] = "Eu não gostei disso (alternar)"; -$a->strings["dislike"] = "desgostar"; -$a->strings["Share this"] = "Compartilhar isso"; -$a->strings["share"] = "compartilhar"; -$a->strings["to"] = "para"; -$a->strings["via"] = "via"; -$a->strings["Wall-to-Wall"] = "Mural-para-mural"; -$a->strings["via Wall-To-Wall:"] = "via Mural-para-mural"; -$a->strings["%d comment"] = array( - 0 => "%d comentário", - 1 => "%d comentários", +$a->strings["Error decoding account file"] = "Erro ao decodificar arquivo de conta"; +$a->strings["Error! No version data in file! This is not a Friendica account file?"] = "Erro! Nenhum arquivo de dados de versão! Esse não é um arquivo de conta do Friendica?"; +$a->strings["Error! Cannot check nickname"] = "Erro! Não consigo conferir o apelido (nickname)"; +$a->strings["User '%s' already exists on this server!"] = "User '%s' já existe nesse servidor!"; +$a->strings["User creation error"] = "Erro na criação do usuário"; +$a->strings["User profile creation error"] = "Erro na criação do perfil do Usuário"; +$a->strings["%d contact not imported"] = array( + 0 => "%d contato não foi importado", + 1 => "%d contatos não foram importados", ); -$a->strings["This is you"] = "Este(a) é você"; -$a->strings["Bold"] = "Negrito"; -$a->strings["Italic"] = "Itálico"; -$a->strings["Underline"] = "Sublinhado"; -$a->strings["Quote"] = "Citação"; -$a->strings["Code"] = "Código"; -$a->strings["Image"] = "Imagem"; -$a->strings["Link"] = "Link"; -$a->strings["Video"] = "Vídeo"; +$a->strings["Done. You can now login with your username and password"] = "Feito. Você agora pode entrar com seu nome de usuário e senha."; +$a->strings["System"] = "Sistema"; +$a->strings["Personal"] = "Pessoal"; +$a->strings["%s commented on %s's post"] = "%s comentou uma publicação de %s"; +$a->strings["%s created a new post"] = "%s criou uma nova publicação"; +$a->strings["%s liked %s's post"] = "%s gostou da publicação de %s"; +$a->strings["%s disliked %s's post"] = "%s desgostou da publicação de %s"; +$a->strings["%s is attending %s's event"] = "%s vai comparecer ao evento de %s"; +$a->strings["%s is not attending %s's event"] = "%s não vai comparecer ao evento de %s"; +$a->strings["%s may attend %s's event"] = "%s talvez compareça ao evento de %s"; +$a->strings["%s is now friends with %s"] = "%s agora é amigo de %s"; +$a->strings["Friend Suggestion"] = "Sugestão de amigo"; +$a->strings["Friend/Connect Request"] = "Solicitação de amizade/conexão"; +$a->strings["New Follower"] = "Novo acompanhante"; +$a->strings["Post successful."] = "Publicado com sucesso."; +$a->strings["[Embedded content - reload page to view]"] = "[Conteúdo incorporado - recarregue a página para ver]"; +$a->strings["Access denied."] = "Acesso negado."; +$a->strings["Welcome to %s"] = "Bem-vindo(a) a %s"; +$a->strings["No more system notifications."] = "Não fazer notificações de sistema."; +$a->strings["System Notifications"] = "Notificações de sistema"; +$a->strings["Remove term"] = "Remover o termo"; +$a->strings["Public access denied."] = "Acesso público negado."; +$a->strings["Only logged in users are permitted to perform a search."] = ""; +$a->strings["Too Many Requests"] = ""; +$a->strings["Only one search per minute is permitted for not logged in users."] = ""; +$a->strings["No results."] = "Nenhum resultado."; +$a->strings["Items tagged with: %s"] = ""; +$a->strings["Results for: %s"] = ""; +$a->strings["This is Friendica, version"] = "Este é o Friendica, versão"; +$a->strings["running at web location"] = "sendo executado no endereço web"; +$a->strings["Please visit Friendica.com to learn more about the Friendica project."] = "Por favor, visite friendica.com para aprender mais sobre o projeto Friendica."; +$a->strings["Bug reports and issues: please visit"] = "Relate ou acompanhe um erro no"; +$a->strings["the bugtracker at github"] = "GitHub"; +$a->strings["Suggestions, praise, donations, etc. - please email \"Info\" at Friendica - dot com"] = "Sugestões, elogios, doações, etc. - favor enviar e-mail para \"Info\" arroba Friendica - ponto com"; +$a->strings["Installed plugins/addons/apps:"] = "Plugins/complementos/aplicações instaladas:"; +$a->strings["No installed plugins/addons/apps"] = "Nenhum plugin/complemento/aplicativo instalado"; +$a->strings["No valid account found."] = "Não foi encontrada nenhuma conta válida."; +$a->strings["Password reset request issued. Check your email."] = "A solicitação para reiniciar sua senha foi encaminhada. Verifique seu e-mail."; +$a->strings["\n\t\tDear %1\$s,\n\t\t\tA request was recently received at \"%2\$s\" to reset your account\n\t\tpassword. In order to confirm this request, please select the verification link\n\t\tbelow or paste it into your web browser address bar.\n\n\t\tIf you did NOT request this change, please DO NOT follow the link\n\t\tprovided and ignore and/or delete this email.\n\n\t\tYour password will not be changed unless we can verify that you\n\t\tissued this request."] = "\n\t\tPrezado %1\$s,\n\t\t\tUma solicitação foi recebida recentemente em \"%2\$s\" para redefinir a\n\t\tsenha da sua conta. Para confirmar este pedido, por favor selecione o link de confirmação\n\t\tabaixo ou copie e cole-o na barra de endereço do seu navegador.\n\n\t\tSe NÃO foi você que solicitou esta alteração por favor, NÃO clique no link\n\t\tfornecido e ignore e/ou apague este e-mail.\n\n\t\tSua senha não será alterada a menos que possamos verificar que foi você que\n\t\temitiu esta solicitação."; +$a->strings["\n\t\tFollow this link to verify your identity:\n\n\t\t%1\$s\n\n\t\tYou will then receive a follow-up message containing the new password.\n\t\tYou may change that password from your account settings page after logging in.\n\n\t\tThe login details are as follows:\n\n\t\tSite Location:\t%2\$s\n\t\tLogin Name:\t%3\$s"] = "\n\t\tSiga este link para verificar sua identidade:\n\n\t\t%1\$s\n\n\t\tVocê então receberá uma mensagem de continuidade contendo a nova senha.\n\t\tVocê pode alterar sua senha na sua página de configurações após efetuar seu login.\n\n\t\tOs dados de login são os seguintes:\n\n\t\tLocalização do Site:\t%2\$s\n\t\tNome de Login:\t%3\$s"; +$a->strings["Password reset requested at %s"] = "Foi feita uma solicitação de reiniciação da senha em %s"; +$a->strings["Request could not be verified. (You may have previously submitted it.) Password reset failed."] = "Não foi possível verificar a solicitação (você pode tê-la submetido anteriormente). A senha não foi reiniciada."; +$a->strings["Password Reset"] = "Redifinir a senha"; +$a->strings["Your password has been reset as requested."] = "Sua senha foi reiniciada, conforme solicitado."; +$a->strings["Your new password is"] = "Sua nova senha é"; +$a->strings["Save or copy your new password - and then"] = "Grave ou copie a sua nova senha e, então"; +$a->strings["click here to login"] = "clique aqui para entrar"; +$a->strings["Your password may be changed from the Settings page after successful login."] = "Sua senha pode ser alterada na página de Configurações após você entrar em seu perfil."; +$a->strings["\n\t\t\t\tDear %1\$s,\n\t\t\t\t\tYour password has been changed as requested. Please retain this\n\t\t\t\tinformation for your records (or change your password immediately to\n\t\t\t\tsomething that you will remember).\n\t\t\t"] = "\n\t\t\t\tCaro %1\$s,\n\t\t\t\t\tSua senha foi alterada conforme solicitado. Por favor, guarde essas\n\t\t\t\tinformações para seus registros (ou altere a sua senha imediatamente para\n\t\t\t\talgo que você se lembrará).\n\t\t\t"; +$a->strings["\n\t\t\t\tYour login details are as follows:\n\n\t\t\t\tSite Location:\t%1\$s\n\t\t\t\tLogin Name:\t%2\$s\n\t\t\t\tPassword:\t%3\$s\n\n\t\t\t\tYou may change that password from your account settings page after logging in.\n\t\t\t"] = "\n\t\t\t\tOs seus dados de login são os seguintes:\n\n\t\t\t\tLocalização do Site:\t%1\$s\n\t\t\t\tNome de Login:\t%2\$s\n\t\t\t\tSenha:\t%3\$s\n\n\t\t\t\tVocê pode alterar esta senha na sua página de configurações depois que efetuar o seu login.\n\t\t\t"; +$a->strings["Your password has been changed at %s"] = "Sua senha foi modifica às %s"; +$a->strings["Forgot your Password?"] = "Esqueceu a sua senha?"; +$a->strings["Enter your email address and submit to have your password reset. Then check your email for further instructions."] = "Digite o seu endereço de e-mail e clique em 'Reiniciar' para prosseguir com a reiniciação da sua senha. Após isso, verifique seu e-mail para mais instruções."; +$a->strings["Nickname or Email: "] = "Identificação ou e-mail: "; +$a->strings["Reset"] = "Reiniciar"; +$a->strings["No profile"] = "Nenhum perfil"; +$a->strings["Help:"] = "Ajuda:"; +$a->strings["Not Found"] = "Não encontrada"; +$a->strings["Page not found."] = "Página não encontrada."; +$a->strings["Invalid request."] = "Solicitação inválida."; +$a->strings["Image exceeds size limit of %s"] = ""; +$a->strings["Unable to process image."] = "Não foi possível processar a imagem."; +$a->strings["Image upload failed."] = "Não foi possível enviar a imagem."; +$a->strings["Remote privacy information not available."] = "Não existe informação disponível sobre a privacidade remota."; +$a->strings["Visible to:"] = "Visível para:"; +$a->strings["Global Directory"] = "Diretório global"; +$a->strings["Find on this site"] = "Pesquisar neste site"; +$a->strings["Results for:"] = ""; +$a->strings["Site Directory"] = "Diretório do site"; +$a->strings["No entries (some entries may be hidden)."] = "Nenhuma entrada (algumas entradas podem estar ocultas)."; +$a->strings["OpenID protocol error. No ID returned."] = "Erro no protocolo OpenID. Não foi retornada nenhuma ID."; +$a->strings["Account not found and OpenID registration is not permitted on this site."] = "A conta não foi encontrada e não são permitidos registros via OpenID nesse site."; +$a->strings["This site has exceeded the number of allowed daily account registrations. Please try again tomorrow."] = "Este site excedeu o limite diário permitido para registros de novas contas.\nPor favor tente novamente amanhã."; +$a->strings["Import"] = "Importar"; +$a->strings["Move account"] = "Mover conta"; +$a->strings["You can import an account from another Friendica server."] = "Você pode importar um conta de outro sevidor Friendica."; +$a->strings["You need to export your account from the old server and upload it here. We will recreate your old account here with all your contacts. We will try also to inform your friends that you moved here."] = "Você precisa exportar sua conta de um servidor antigo e fazer o upload aqui. Nós recriaremos sua conta antiga aqui com todos os seus contatos. Nós também tentaremos informar seus amigos que você se mudou para cá."; +$a->strings["This feature is experimental. We can't import contacts from the OStatus network (GNU Social/Statusnet) or from Diaspora"] = "Esta funcionalidade está em fase de testes. Não importamos contatos da rede OStatuss (GNU Social/Statusnet) nem da Diaspora."; +$a->strings["Account file"] = "Arquivo de conta"; +$a->strings["To export your account, go to \"Settings->Export your personal data\" and select \"Export account\""] = "Para exportar a sua conta, entre em \"Configurações->Exportar dados pessoais\" e selecione \"Exportar conta\""; +$a->strings["Visit %s's profile [%s]"] = "Visitar o perfil de %s [%s]"; +$a->strings["Edit contact"] = "Editar o contato"; +$a->strings["Contacts who are not members of a group"] = "Contatos que não são membros de um grupo"; +$a->strings["No keywords to match. Please add keywords to your default profile."] = "Não foi encontrada nenhuma palavra-chave associada a você. Por favor, adicione algumas ao seu perfil padrão."; +$a->strings["is interested in:"] = "se interessa por:"; +$a->strings["Profile Match"] = "Correspondência de perfil"; +$a->strings["No matches"] = "Nenhuma correspondência"; +$a->strings["Export account"] = "Exportar conta"; +$a->strings["Export your account info and contacts. Use this to make a backup of your account and/or to move it to another server."] = "Exporta suas informações de conta e contatos. Use para fazer uma cópia de segurança de sua conta e/ou para movê-la para outro servidor."; +$a->strings["Export all"] = "Exportar tudo"; +$a->strings["Export your accout info, contacts and all your items as json. Could be a very big file, and could take a lot of time. Use this to make a full backup of your account (photos are not exported)"] = "Exportar as informações de sua conta, contatos e todos os seus items como JSON. Pode ser um arquivo muito grande, e pode levar bastante tempo. Use isto para fazer uma cópia de segurança completa da sua conta (fotos não são exportadas)"; +$a->strings["Export personal data"] = "Exportar dados pessoais"; +$a->strings["Total invitation limit exceeded."] = "Limite de convites totais excedido."; +$a->strings["%s : Not a valid email address."] = "%s : Não é um endereço de e-mail válido."; +$a->strings["Please join us on Friendica"] = "Por favor, junte-se à nós na Friendica"; +$a->strings["Invitation limit exceeded. Please contact your site administrator."] = "Limite de convites ultrapassado. Favor contactar o administrador do sítio."; +$a->strings["%s : Message delivery failed."] = "%s : Não foi possível enviar a mensagem."; +$a->strings["%d message sent."] = array( + 0 => "%d mensagem enviada.", + 1 => "%d mensagens enviadas.", +); +$a->strings["You have no more invitations available"] = "Você não possui mais convites disponíveis"; +$a->strings["Visit %s for a list of public sites that you can join. Friendica members on other sites can all connect with each other, as well as with members of many other social networks."] = "Visite %s para obter uma lista de sites públicos onde você pode se cadastrar. Membros da friendica podem se conectar, mesmo que estejam em sites separados. Além disso você também pode se conectar com membros de várias outras redes sociais."; +$a->strings["To accept this invitation, please visit and register at %s or any other public Friendica website."] = "Para aceitar esse convite, por favor cadastre-se em %s ou qualquer outro site friendica público."; +$a->strings["Friendica sites all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks. See %s for a list of alternate Friendica sites you can join."] = "Os sites friendica estão todos interconectados para criar uma grande rede social com foco na privacidade e controlada por seus membros, que também podem se conectar com várias redes sociais tradicionais. Dê uma olhada em %s para uma lista de sites friendica onde você pode se cadastrar."; +$a->strings["Our apologies. This system is not currently configured to connect with other public sites or invite members."] = "Desculpe, mas esse sistema não está configurado para conectar-se com outros sites públicos nem permite convidar novos membros."; +$a->strings["Send invitations"] = "Enviar convites."; +$a->strings["Enter email addresses, one per line:"] = "Digite os endereços de e-mail, um por linha:"; +$a->strings["Your message:"] = "Sua mensagem:"; +$a->strings["You are cordially invited to join me and other close friends on Friendica - and help us to create a better social web."] = "Você está convidado a se juntar a mim e outros amigos em friendica - e também nos ajudar a criar uma experiência social melhor na web."; +$a->strings["You will need to supply this invitation code: \$invite_code"] = "Você preciso informar este código de convite: \$invite_code"; +$a->strings["Once you have registered, please connect with me via my profile page at:"] = "Após você se registrar, por favor conecte-se comigo através da minha página de perfil em:"; +$a->strings["For more information about the Friendica project and why we feel it is important, please visit http://friendica.com"] = "Para mais informações sobre o projeto Friendica e porque nós achamos que ele é importante, por favor visite-nos em http://friendica.com."; +$a->strings["Submit"] = "Enviar"; +$a->strings["Contact Photos"] = "Fotos dos contatos"; +$a->strings["Files"] = "Arquivos"; +$a->strings["System down for maintenance"] = "Sistema em manutenção"; +$a->strings["Permission denied"] = "Permissão negada"; +$a->strings["Invalid profile identifier."] = "Identificador de perfil inválido."; +$a->strings["Profile Visibility Editor"] = "Editor de visibilidade do perfil"; +$a->strings["Click on a contact to add or remove."] = "Clique em um contato para adicionar ou remover."; +$a->strings["Visible To"] = "Visível para"; +$a->strings["All Contacts (with secure profile access)"] = "Todos os contatos (com acesso a perfil seguro)"; +$a->strings["No contacts."] = "Nenhum contato."; +$a->strings["Tag removed"] = "A etiqueta foi removida"; +$a->strings["Remove Item Tag"] = "Remover a etiqueta do item"; +$a->strings["Select a tag to remove: "] = "Selecione uma etiqueta para remover: "; +$a->strings["Remove"] = "Remover"; +$a->strings["{0} wants to be your friend"] = "{0} deseja ser seu amigo"; +$a->strings["{0} sent you a message"] = "{0} lhe enviou uma mensagem"; +$a->strings["{0} requested registration"] = "{0} solicitou registro"; +$a->strings["Sorry, maybe your upload is bigger than the PHP configuration allows"] = "Lamento, talvez seu envio seja maior do que as configurações do PHP permitem"; +$a->strings["Or - did you try to upload an empty file?"] = "Ou - você tentou enviar um arquivo vazio?"; +$a->strings["File exceeds size limit of %s"] = ""; +$a->strings["File upload failed."] = "Não foi possível enviar o arquivo."; +$a->strings["No friends to display."] = "Nenhum amigo para exibir."; +$a->strings["Access to this profile has been restricted."] = "O acesso a este perfil está restrito."; +$a->strings["View"] = ""; +$a->strings["Previous"] = "Anterior"; +$a->strings["Next"] = "Próximo"; +$a->strings["User not found"] = ""; +$a->strings["This calendar format is not supported"] = "Esse formato de agenda não é contemplado"; +$a->strings["No exportable data found"] = ""; +$a->strings["calendar"] = "agenda"; +$a->strings["Resubscribing to OStatus contacts"] = ""; +$a->strings["Error"] = "Erro"; +$a->strings["Done"] = ""; +$a->strings["Keep this window open until done."] = ""; +$a->strings["No potential page delegates located."] = "Nenhuma página delegada potencial localizada."; +$a->strings["Delegates are able to manage all aspects of this account/page except for basic account settings. Please do not delegate your personal account to anybody that you do not trust completely."] = "Delegados podem administrar todos os aspectos dessa página/conta exceto por configurações básicas da conta.\nFavor não delegar sua conta pessoal para ninguém que você não confie inteiramente."; +$a->strings["Existing Page Managers"] = "Administradores de Páginas Existentes"; +$a->strings["Existing Page Delegates"] = "Delegados de Páginas Existentes"; +$a->strings["Potential Delegates"] = "Delegados Potenciais"; +$a->strings["Add"] = "Adicionar"; +$a->strings["No entries."] = "Sem entradas."; +$a->strings["Credits"] = ""; +$a->strings["Friendica is a community project, that would not be possible without the help of many people. Here is a list of those who have contributed to the code or the translation of Friendica. Thank you all!"] = ""; +$a->strings["- select -"] = "-selecione-"; +$a->strings["%1\$s is following %2\$s's %3\$s"] = "%1\$s está seguindo %2\$s's %3\$s"; $a->strings["Item not available."] = "O item não está disponível."; $a->strings["Item was not found."] = "O item não foi encontrado."; +$a->strings["Submit Request"] = "Enviar solicitação"; +$a->strings["You already added this contact."] = "Você já adicionou esse contato."; +$a->strings["Diaspora support isn't enabled. Contact can't be added."] = ""; +$a->strings["OStatus support is disabled. Contact can't be added."] = ""; +$a->strings["The network type couldn't be detected. Contact can't be added."] = ""; +$a->strings["Please answer the following:"] = "Por favor, entre com as informações solicitadas:"; +$a->strings["Does %s know you?"] = "%s conhece você?"; +$a->strings["No"] = "Não"; +$a->strings["Add a personal note:"] = "Adicione uma anotação pessoal:"; +$a->strings["Your Identity Address:"] = "Seu endereço de identificação:"; +$a->strings["Profile URL"] = "URL do perfil"; +$a->strings["Contact added"] = "O contato foi adicionado"; +$a->strings["You must be logged in to use addons. "] = "Você precisa estar logado para usar os addons."; +$a->strings["Applications"] = "Aplicativos"; +$a->strings["No installed applications."] = "Nenhum aplicativo instalado"; +$a->strings["Do you really want to delete this suggestion?"] = "Você realmente deseja deletar essa sugestão?"; +$a->strings["No suggestions available. If this is a new site, please try again in 24 hours."] = "Não existe nenhuma sugestão disponível. Se este for um site novo, por favor tente novamente em 24 horas."; +$a->strings["Ignore/Hide"] = "Ignorar/Ocultar"; +$a->strings["Not Extended"] = ""; +$a->strings["Item has been removed."] = "O item foi removido."; +$a->strings["No contacts in common."] = "Nenhum contato em comum."; +$a->strings["Common Friends"] = "Amigos em Comum"; +$a->strings["Welcome to Friendica"] = "Bemvindo ao Friendica"; +$a->strings["New Member Checklist"] = "Dicas para os novos membros"; +$a->strings["We would like to offer some tips and links to help make your experience enjoyable. Click any item to visit the relevant page. A link to this page will be visible from your home page for two weeks after your initial registration and then will quietly disappear."] = "Gostaríamos de oferecer algumas dicas e links para ajudar a tornar a sua experiência agradável. Clique em qualquer item para visitar a página correspondente. Um link para essa página será visível em sua home page por duas semanas após o seu registro inicial e, então, desaparecerá discretamente."; +$a->strings["Getting Started"] = "Do Início"; +$a->strings["Friendica Walk-Through"] = "Passo-a-passo da friendica"; +$a->strings["On your Quick Start page - find a brief introduction to your profile and network tabs, make some new connections, and find some groups to join."] = "Na sua página Início Rápido - encontre uma introdução rápida ao seu perfil e abas da rede, faça algumas conexões novas, e encontre alguns grupos entrar."; +$a->strings["Go to Your Settings"] = "Ir para as suas configurações"; +$a->strings["On your Settings page - change your initial password. Also make a note of your Identity Address. This looks just like an email address - and will be useful in making friends on the free social web."] = "Em sua página Configurações - mude sua senha inicial. Também tome nota de seu Endereço de Identidade. Isso se parece com um endereço de e-mail - e será útil para se fazer amigos na rede social livre."; +$a->strings["Review the other settings, particularly the privacy settings. An unpublished directory listing is like having an unlisted phone number. In general, you should probably publish your listing - unless all of your friends and potential friends know exactly how to find you."] = "Revise as outras configurações, em particular as relacionadas a privacidade. Não estar listado no diretório é o equivalente a não ter o seu número na lista telefônica. Normalmente é interessante você estar listado - a não ser que os seu amigos atuais e potenciais saibam exatamente como encontrar você."; +$a->strings["Upload Profile Photo"] = "Enviar foto do perfil"; +$a->strings["Upload a profile photo if you have not done so already. Studies have shown that people with real photos of themselves are ten times more likely to make friends than people who do not."] = "Envie uma foto para o seu perfil, caso ainda não tenha feito isso. Estudos indicam que pessoas que publicam fotos reais delas mesmas têm 10 vezes mais chances de encontrar novos amigos do que as que não o fazem."; +$a->strings["Edit Your Profile"] = "Editar seu perfil"; +$a->strings["Edit your default profile to your liking. Review the settings for hiding your list of friends and hiding the profile from unknown visitors."] = "Edite o seu perfil padrão a seu gosto. Revise as configurações de ocultação da sua lista de amigos e do seu perfil de visitantes desconhecidos."; +$a->strings["Profile Keywords"] = "Palavras-chave do perfil"; +$a->strings["Set some public keywords for your default profile which describe your interests. We may be able to find other people with similar interests and suggest friendships."] = "Defina algumas palavras-chave públicas para o seu perfil padrão, que descrevam os seus interesses. Nós podemos encontrar outras pessoas com interesses similares e sugerir novas amizades."; +$a->strings["Connecting"] = "Conexões"; +$a->strings["Importing Emails"] = "Importação de e-mails"; +$a->strings["Enter your email access information on your Connector Settings page if you wish to import and interact with friends or mailing lists from your email INBOX"] = "Forneça a informação de acesso ao seu e-mail na sua página de Configuração de Conector se você deseja importar e interagir com amigos ou listas de discussão da sua Caixa de Entrada de e-mail"; +$a->strings["Go to Your Contacts Page"] = "Ir para a sua página de contatos"; +$a->strings["Your Contacts page is your gateway to managing friendships and connecting with friends on other networks. Typically you enter their address or site URL in the Add New Contact dialog."] = "Sua página de contatos é sua rota para o gerenciamento de amizades e conexão com amigos em outras redes. Geralmente você fornece o endereço deles ou a URL do site na janela de diálogo Adicionar Novo Contato."; +$a->strings["Go to Your Site's Directory"] = "Ir para o diretório do seu site"; +$a->strings["The Directory page lets you find other people in this network or other federated sites. Look for a Connect or Follow link on their profile page. Provide your own Identity Address if requested."] = "A página de Diretório permite que você encontre outras pessoas nesta rede ou em outras redes federadas. Procure por um link Conectar ou Seguir no perfil que deseja acompanhar. Forneça o seu Endereço de Identidade próprio, se solicitado."; +$a->strings["Finding New People"] = "Pesquisar por novas pessoas"; +$a->strings["On the side panel of the Contacts page are several tools to find new friends. We can match people by interest, look up people by name or interest, and provide suggestions based on network relationships. On a brand new site, friend suggestions will usually begin to be populated within 24 hours."] = "No painel lateral da página de Contatos existem várias ferramentas para encontrar novos amigos. Você pode descobrir pessoas com os mesmos interesses, procurar por nomes ou interesses e fornecer sugestões baseadas nos relacionamentos da rede. Em um site completamente novo, as sugestões de amizades geralmente começam a ser populadas dentro de 24 horas."; +$a->strings["Group Your Contacts"] = "Agrupe seus contatos"; +$a->strings["Once you have made some friends, organize them into private conversation groups from the sidebar of your Contacts page and then you can interact with each group privately on your Network page."] = "Após fazer novas amizades, organize-as em grupos de conversa privados, a partir da barra lateral na sua página de Contatos. A partir daí, você poderá interagir com cada grupo privativamente, na sua página de Rede."; +$a->strings["Why Aren't My Posts Public?"] = "Por que as minhas publicações não são públicas?"; +$a->strings["Friendica respects your privacy. By default, your posts will only show up to people you've added as friends. For more information, see the help section from the link above."] = "A friendica respeita sua privacidade. Por padrão, suas publicações estarão visíveis apenas para as pessoas que você adicionou como amigos. Para mais informações, veja a página de ajuda, a partir do link acima."; +$a->strings["Getting Help"] = "Obtendo ajuda"; +$a->strings["Go to the Help Section"] = "Ir para a seção de ajuda"; +$a->strings["Our help pages may be consulted for detail on other program features and resources."] = "Consulte nossas páginas de ajuda para mais detalhes sobre as características e recursos do programa."; +$a->strings["Remove My Account"] = "Remover minha conta"; +$a->strings["This will completely remove your account. Once this has been done it is not recoverable."] = "Isso removerá completamente a sua conta. Uma vez feito isso, não será mais possível recuperá-la."; +$a->strings["Please enter your password for verification:"] = "Por favor, digite a sua senha para verificação:"; +$a->strings["Item not found"] = "O item não foi encontrado"; +$a->strings["Edit post"] = "Editar a publicação"; +$a->strings["Warning: This group contains %s member from an insecure network."] = array( + 0 => "Aviso: Este grupo contém %s membro de uma rede insegura.", + 1 => "Aviso: Este grupo contém %s membros de uma rede insegura.", +); +$a->strings["Private messages to this group are at risk of public disclosure."] = "Mensagens privadas para este grupo correm o risco de sofrerem divulgação pública."; +$a->strings["No such group"] = "Este grupo não existe"; +$a->strings["Group is empty"] = "O grupo está vazio"; +$a->strings["Group: %s"] = "Grupo: %s"; +$a->strings["Private messages to this person are at risk of public disclosure."] = "Mensagens privadas para esta pessoa correm o risco de sofrerem divulgação pública."; +$a->strings["Invalid contact."] = "Contato inválido."; +$a->strings["Commented Order"] = "Ordem dos comentários"; +$a->strings["Sort by Comment Date"] = "Ordenar pela data do comentário"; +$a->strings["Posted Order"] = "Ordem das publicações"; +$a->strings["Sort by Post Date"] = "Ordenar pela data de publicação"; +$a->strings["Posts that mention or involve you"] = "Publicações que mencionem ou envolvam você"; +$a->strings["New"] = "Nova"; +$a->strings["Activity Stream - by date"] = "Fluxo de atividades - por data"; +$a->strings["Shared Links"] = "Links compartilhados"; +$a->strings["Interesting Links"] = "Links interessantes"; +$a->strings["Starred"] = "Destacada"; +$a->strings["Favourite Posts"] = "Publicações favoritas"; +$a->strings["Not available."] = "Não disponível."; +$a->strings["Time Conversion"] = "Conversão de tempo"; +$a->strings["Friendica provides this service for sharing events with other networks and friends in unknown timezones."] = "Friendica oferece esse serviço para compartilhar eventos com outras redes e amigos em fusos horários desconhecidos."; +$a->strings["UTC time: %s"] = "Hora UTC: %s"; +$a->strings["Current timezone: %s"] = "Fuso horário atual: %s"; +$a->strings["Converted localtime: %s"] = "Horário local convertido: %s"; +$a->strings["Please select your timezone:"] = "Por favor, selecione seu fuso horário:"; +$a->strings["The post was created"] = "O texto foi criado"; +$a->strings["Group created."] = "O grupo foi criado."; +$a->strings["Could not create group."] = "Não foi possível criar o grupo."; +$a->strings["Group not found."] = "O grupo não foi encontrado."; +$a->strings["Group name changed."] = "O nome do grupo foi alterado."; +$a->strings["Save Group"] = "Salvar o grupo"; +$a->strings["Create a group of contacts/friends."] = "Criar um grupo de contatos/amigos."; +$a->strings["Group removed."] = "O grupo foi removido."; +$a->strings["Unable to remove group."] = "Não foi possível remover o grupo."; +$a->strings["Group Editor"] = "Editor de grupo"; +$a->strings["Members"] = "Membros"; +$a->strings["All Contacts"] = "Todos os contatos"; $a->strings["Number of daily wall messages for %s exceeded. Message failed."] = "O número diário de mensagens do mural de %s foi excedido. Não foi possível enviar a mensagem."; $a->strings["No recipient selected."] = "Não foi selecionado nenhum destinatário."; $a->strings["Unable to check your home location."] = "Não foi possível verificar a sua localização."; @@ -732,358 +969,75 @@ $a->strings["Send Private Message"] = "Enviar mensagem privada"; $a->strings["If you wish for %s to respond, please check that the privacy settings on your site allow private mail from unknown senders."] = "Caso você deseje uma resposta de %s, por favor verifique se as configurações de privacidade em seu site permitem o recebimento de mensagens de remetentes desconhecidos."; $a->strings["To:"] = "Para:"; $a->strings["Subject:"] = "Assunto:"; -$a->strings["Your message:"] = "Sua mensagem:"; -$a->strings["Group created."] = "O grupo foi criado."; -$a->strings["Could not create group."] = "Não foi possível criar o grupo."; -$a->strings["Group not found."] = "O grupo não foi encontrado."; -$a->strings["Group name changed."] = "O nome do grupo foi alterado."; -$a->strings["Save Group"] = "Salvar o grupo"; -$a->strings["Create a group of contacts/friends."] = "Criar um grupo de contatos/amigos."; -$a->strings["Group Name: "] = "Nome do grupo: "; -$a->strings["Group removed."] = "O grupo foi removido."; -$a->strings["Unable to remove group."] = "Não foi possível remover o grupo."; -$a->strings["Group Editor"] = "Editor de grupo"; -$a->strings["Members"] = "Membros"; -$a->strings["All Contacts"] = "Todos os contatos"; -$a->strings["Click on a contact to add or remove."] = "Clique em um contato para adicionar ou remover."; -$a->strings["No potential page delegates located."] = "Nenhuma página delegada potencial localizada."; -$a->strings["Delegates are able to manage all aspects of this account/page except for basic account settings. Please do not delegate your personal account to anybody that you do not trust completely."] = "Delegados podem administrar todos os aspectos dessa página/conta exceto por configurações básicas da conta.\nFavor não delegar sua conta pessoal para ninguém que você não confie inteiramente."; -$a->strings["Existing Page Managers"] = "Administradores de Páginas Existentes"; -$a->strings["Existing Page Delegates"] = "Delegados de Páginas Existentes"; -$a->strings["Potential Delegates"] = "Delegados Potenciais"; -$a->strings["Remove"] = "Remover"; -$a->strings["Add"] = "Adicionar"; -$a->strings["No entries."] = "Sem entradas."; -$a->strings["Invalid request identifier."] = "Identificador de solicitação inválido"; -$a->strings["Discard"] = "Descartar"; -$a->strings["Ignore"] = "Ignorar"; -$a->strings["System"] = "Sistema"; -$a->strings["Personal"] = "Pessoal"; -$a->strings["Show Ignored Requests"] = "Exibir solicitações ignoradas"; -$a->strings["Hide Ignored Requests"] = "Ocultar solicitações ignoradas"; -$a->strings["Notification type: "] = "Tipo de notificação:"; -$a->strings["Friend Suggestion"] = "Sugestão de amigo"; -$a->strings["suggested by %s"] = "sugerido por %s"; -$a->strings["Hide this contact from others"] = "Ocultar este contato dos outros"; -$a->strings["Post a new friend activity"] = "Publicar a adição de amigo"; -$a->strings["if applicable"] = "se aplicável"; -$a->strings["Approve"] = "Aprovar"; -$a->strings["Claims to be known to you: "] = "Alega ser conhecido por você: "; -$a->strings["yes"] = "sim"; -$a->strings["no"] = "não"; -$a->strings["Shall your connection be bidirectional or not? \"Friend\" implies that you allow to read and you subscribe to their posts. \"Fan/Admirer\" means that you allow to read but you do not want to read theirs. Approve as: "] = "Sua conexão deve ser bidirecional ou não? \"Amigo\" implica que você permite ler e se inscreve nos textos dele. \"Fan / admirador\" significa que você permite ler, mas você não quer ler os textos dele. Aprovar como:"; -$a->strings["Shall your connection be bidirectional or not? \"Friend\" implies that you allow to read and you subscribe to their posts. \"Sharer\" means that you allow to read but you do not want to read theirs. Approve as: "] = "Sua conexão deve ser bidirecional ou não? \"Amigo\" implica que você permite a leitura e assina o textos dele. \"Compartilhador\" significa que você permite a leitura mas você não quer ler os textos dele. Aprova como:"; -$a->strings["Friend"] = "Amigo"; -$a->strings["Sharer"] = "Compartilhador"; -$a->strings["Fan/Admirer"] = "Fã/Admirador"; -$a->strings["Friend/Connect Request"] = "Solicitação de amizade/conexão"; -$a->strings["New Follower"] = "Novo acompanhante"; -$a->strings["No introductions."] = "Sem apresentações."; -$a->strings["%s liked %s's post"] = "%s gostou da publicação de %s"; -$a->strings["%s disliked %s's post"] = "%s desgostou da publicação de %s"; -$a->strings["%s is now friends with %s"] = "%s agora é amigo de %s"; -$a->strings["%s created a new post"] = "%s criou uma nova publicação"; -$a->strings["%s commented on %s's post"] = "%s comentou uma publicação de %s"; -$a->strings["No more network notifications."] = "Nenhuma notificação de rede."; -$a->strings["Network Notifications"] = "Notificações de rede"; -$a->strings["No more system notifications."] = "Não fazer notificações de sistema."; -$a->strings["System Notifications"] = "Notificações de sistema"; -$a->strings["No more personal notifications."] = "Nenhuma notificação pessoal."; -$a->strings["Personal Notifications"] = "Notificações pessoais"; -$a->strings["No more home notifications."] = "Não existe mais nenhuma notificação pessoal."; -$a->strings["Home Notifications"] = "Notificações pessoais"; -$a->strings["No profile"] = "Nenhum perfil"; -$a->strings["everybody"] = "todos"; -$a->strings["Account"] = "Conta"; -$a->strings["Additional features"] = "Funcionalidades adicionais"; -$a->strings["Display"] = "Tela"; -$a->strings["Social Networks"] = "Redes Sociais"; -$a->strings["Plugins"] = "Plugins"; -$a->strings["Connected apps"] = "Aplicações conectadas"; -$a->strings["Export personal data"] = "Exportar dados pessoais"; -$a->strings["Remove account"] = "Remover a conta"; -$a->strings["Missing some important data!"] = "Está faltando algum dado importante!"; -$a->strings["Update"] = "Atualizar"; -$a->strings["Failed to connect with email account using the settings provided."] = "Não foi possível conectar à conta de e-mail com as configurações fornecidas."; -$a->strings["Email settings updated."] = "As configurações de e-mail foram atualizadas."; -$a->strings["Features updated"] = "Funcionalidades atualizadas"; -$a->strings["Relocate message has been send to your contacts"] = "A mensagem de relocação foi enviada para seus contatos"; -$a->strings["Passwords do not match. Password unchanged."] = "As senhas não correspondem. A senha não foi modificada."; -$a->strings["Empty passwords are not allowed. Password unchanged."] = "Não é permitido uma senha em branco. A senha não foi modificada."; -$a->strings["Wrong password."] = "Senha errada."; -$a->strings["Password changed."] = "A senha foi modificada."; -$a->strings["Password update failed. Please try again."] = "Não foi possível atualizar a senha. Por favor, tente novamente."; -$a->strings[" Please use a shorter name."] = " Por favor, use um nome mais curto."; -$a->strings[" Name too short."] = " O nome é muito curto."; -$a->strings["Wrong Password"] = "Senha Errada"; -$a->strings[" Not valid email."] = " Não é um e-mail válido."; -$a->strings[" Cannot change to that email."] = " Não foi possível alterar para esse e-mail."; -$a->strings["Private forum has no privacy permissions. Using default privacy group."] = "O fórum privado não possui permissões de privacidade. Utilizando o grupo de privacidade padrão."; -$a->strings["Private forum has no privacy permissions and no default privacy group."] = "O fórum privado não possui permissões de privacidade e nenhum grupo de privacidade padrão."; -$a->strings["Settings updated."] = "As configurações foram atualizadas."; -$a->strings["Add application"] = "Adicionar aplicação"; -$a->strings["Save Settings"] = "Salvar configurações"; -$a->strings["Name"] = "Nome"; -$a->strings["Consumer Key"] = "Chave do consumidor"; -$a->strings["Consumer Secret"] = "Segredo do consumidor"; -$a->strings["Redirect"] = "Redirecionar"; -$a->strings["Icon url"] = "URL do ícone"; -$a->strings["You can't edit this application."] = "Você não pode editar esta aplicação."; -$a->strings["Connected Apps"] = "Aplicações conectadas"; -$a->strings["Client key starts with"] = "A chave do cliente inicia com"; -$a->strings["No name"] = "Sem nome"; -$a->strings["Remove authorization"] = "Remover autorização"; -$a->strings["No Plugin settings configured"] = "Não foi definida nenhuma configuração de plugin"; -$a->strings["Plugin Settings"] = "Configurações do plugin"; -$a->strings["Off"] = "Off"; -$a->strings["On"] = "On"; -$a->strings["Additional Features"] = "Funcionalidades Adicionais"; -$a->strings["Built-in support for %s connectivity is %s"] = "O suporte interno para conectividade de %s está %s"; -$a->strings["enabled"] = "habilitado"; -$a->strings["disabled"] = "desabilitado"; -$a->strings["StatusNet"] = "StatusNet"; -$a->strings["Email access is disabled on this site."] = "O acesso ao e-mail está desabilitado neste site."; -$a->strings["Email/Mailbox Setup"] = "Configurações do e-mail/caixa postal"; -$a->strings["If you wish to communicate with email contacts using this service (optional), please specify how to connect to your mailbox."] = "Caso você deseje se comunicar com contatos de e-mail usando este serviço (opcional), por favor especifique como se conectar à sua caixa postal."; -$a->strings["Last successful email check:"] = "Última checagem bem sucedida de e-mail:"; -$a->strings["IMAP server name:"] = "Nome do servidor IMAP:"; -$a->strings["IMAP port:"] = "Porta do IMAP:"; -$a->strings["Security:"] = "Segurança:"; -$a->strings["None"] = "Nenhuma"; -$a->strings["Email login name:"] = "Nome de usuário do e-mail:"; -$a->strings["Email password:"] = "Senha do e-mail:"; -$a->strings["Reply-to address:"] = "Endereço de resposta (Reply-to):"; -$a->strings["Send public posts to all email contacts:"] = "Enviar publicações públicas para todos os contatos de e-mail:"; -$a->strings["Action after import:"] = "Ação após a importação:"; -$a->strings["Mark as seen"] = "Marcar como visto"; -$a->strings["Move to folder"] = "Mover para pasta"; -$a->strings["Move to folder:"] = "Mover para pasta:"; -$a->strings["No special theme for mobile devices"] = "Nenhum tema especial para dispositivos móveis"; -$a->strings["Display Settings"] = "Configurações de exibição"; -$a->strings["Display Theme:"] = "Tema do perfil:"; -$a->strings["Mobile Theme:"] = "Tema para dispositivos móveis:"; -$a->strings["Update browser every xx seconds"] = "Atualizar o navegador a cada xx segundos"; -$a->strings["Minimum of 10 seconds, no maximum"] = "Mínimo de 10 segundos, não possui máximo"; -$a->strings["Number of items to display per page:"] = "Número de itens a serem exibidos por página:"; -$a->strings["Maximum of 100 items"] = "Máximo de 100 itens"; -$a->strings["Number of items to display per page when viewed from mobile device:"] = "Número de itens a serem exibidos por página quando visualizando em um dispositivo móvel:"; -$a->strings["Don't show emoticons"] = "Não exibir emoticons"; -$a->strings["Don't show notices"] = "Não mostra avisos"; -$a->strings["Infinite scroll"] = "rolamento infinito"; -$a->strings["Automatic updates only at the top of the network page"] = "Atualizações automáticas só na parte superior da página da rede"; -$a->strings["User Types"] = "Tipos de Usuários"; -$a->strings["Community Types"] = "Tipos de Comunidades"; -$a->strings["Normal Account Page"] = "Página de conta normal"; -$a->strings["This account is a normal personal profile"] = "Essa conta é um perfil pessoal normal"; -$a->strings["Soapbox Page"] = "Página de vitrine"; -$a->strings["Automatically approve all connection/friend requests as read-only fans"] = "Aprova automaticamente todas as solicitações de conexão/amizade como fãs com permissão somente de leitura"; -$a->strings["Community Forum/Celebrity Account"] = "Conta de fórum de comunidade/celebridade"; -$a->strings["Automatically approve all connection/friend requests as read-write fans"] = "Aprova automaticamente todas as solicitações de conexão/amizade como fãs com permissão de leitura e escrita"; -$a->strings["Automatic Friend Page"] = "Página de amigo automático"; -$a->strings["Automatically approve all connection/friend requests as friends"] = "Aprovar automaticamente todas as solicitações de conexão/amizade como amigos"; -$a->strings["Private Forum [Experimental]"] = "Fórum privado [Experimental]"; -$a->strings["Private forum - approved members only"] = "Fórum privado - somente membros aprovados"; -$a->strings["OpenID:"] = "OpenID:"; -$a->strings["(Optional) Allow this OpenID to login to this account."] = "(Opcional) Permitir o uso deste OpenID para entrar nesta conta"; -$a->strings["Publish your default profile in your local site directory?"] = "Publicar o seu perfil padrão no diretório local do seu site?"; -$a->strings["No"] = "Não"; -$a->strings["Publish your default profile in the global social directory?"] = "Publicar o seu perfil padrão no diretório social global?"; -$a->strings["Hide your contact/friend list from viewers of your default profile?"] = "Ocultar visualização da sua lista de contatos/amigos no seu perfil padrão? "; -$a->strings["If enabled, posting public messages to Diaspora and other networks isn't possible."] = "Se ativado, postar mensagens públicas no Diáspora e em outras redes não será possível."; -$a->strings["Allow friends to post to your profile page?"] = "Permitir aos amigos publicarem na sua página de perfil?"; -$a->strings["Allow friends to tag your posts?"] = "Permitir aos amigos etiquetarem suas publicações?"; -$a->strings["Allow us to suggest you as a potential friend to new members?"] = "Permitir que você seja sugerido como amigo em potencial para novos membros?"; -$a->strings["Permit unknown people to send you private mail?"] = "Permitir que pessoas desconhecidas lhe enviem mensagens privadas?"; -$a->strings["Profile is not published."] = "O perfil não está publicado."; -$a->strings["or"] = "ou"; -$a->strings["Your Identity Address is"] = "O endereço da sua identidade é"; -$a->strings["Automatically expire posts after this many days:"] = "Expirar automaticamente publicações após tantos dias:"; -$a->strings["If empty, posts will not expire. Expired posts will be deleted"] = "Se deixado em branco, as publicações não irão expirar. Publicações expiradas serão excluídas."; -$a->strings["Advanced expiration settings"] = "Configurações avançadas de expiração"; -$a->strings["Advanced Expiration"] = "Expiração avançada"; -$a->strings["Expire posts:"] = "Expirar publicações:"; -$a->strings["Expire personal notes:"] = "Expirar notas pessoais:"; -$a->strings["Expire starred posts:"] = "Expirar publicações destacadas:"; -$a->strings["Expire photos:"] = "Expirar fotos:"; -$a->strings["Only expire posts by others:"] = "Expirar somente as publicações de outras pessoas:"; -$a->strings["Account Settings"] = "Configurações da conta"; -$a->strings["Password Settings"] = "Configurações da senha"; -$a->strings["New Password:"] = "Nova senha:"; -$a->strings["Confirm:"] = "Confirme:"; -$a->strings["Leave password fields blank unless changing"] = "Deixe os campos de senha em branco, a não ser que você queira alterá-la"; -$a->strings["Current Password:"] = "Senha Atual:"; -$a->strings["Your current password to confirm the changes"] = "Sua senha atual para confirmar as mudanças"; -$a->strings["Password:"] = "Senha:"; -$a->strings["Basic Settings"] = "Configurações básicas"; -$a->strings["Email Address:"] = "Endereço de e-mail:"; -$a->strings["Your Timezone:"] = "Seu fuso horário:"; -$a->strings["Default Post Location:"] = "Localização padrão de suas publicações:"; -$a->strings["Use Browser Location:"] = "Usar localizador do navegador:"; -$a->strings["Security and Privacy Settings"] = "Configurações de segurança e privacidade"; -$a->strings["Maximum Friend Requests/Day:"] = "Número máximo de requisições de amizade por dia:"; -$a->strings["(to prevent spam abuse)"] = "(para prevenir abuso de spammers)"; -$a->strings["Default Post Permissions"] = "Permissões padrão de publicação"; -$a->strings["(click to open/close)"] = "(clique para abrir/fechar)"; -$a->strings["Show to Groups"] = "Mostre para Grupos"; -$a->strings["Show to Contacts"] = "Mostre para Contatos"; -$a->strings["Default Private Post"] = "Publicação Privada Padrão"; -$a->strings["Default Public Post"] = "Publicação Pública Padrão"; -$a->strings["Default Permissions for New Posts"] = "Permissões Padrão para Publicações Novas"; -$a->strings["Maximum private messages per day from unknown people:"] = "Número máximo de mensagens privadas de pessoas desconhecidas, por dia:"; -$a->strings["Notification Settings"] = "Configurações de notificação"; -$a->strings["By default post a status message when:"] = "Por padrão, publicar uma mensagem de status quando:"; -$a->strings["accepting a friend request"] = "aceitar uma requisição de amizade"; -$a->strings["joining a forum/community"] = "associar-se a um fórum/comunidade"; -$a->strings["making an interesting profile change"] = "fazer uma modificação interessante em seu perfil"; -$a->strings["Send a notification email when:"] = "Enviar um e-mail de notificação sempre que:"; -$a->strings["You receive an introduction"] = "Você recebeu uma apresentação"; -$a->strings["Your introductions are confirmed"] = "Suas apresentações forem confirmadas"; -$a->strings["Someone writes on your profile wall"] = "Alguém escrever no mural do seu perfil"; -$a->strings["Someone writes a followup comment"] = "Alguém comentar a sua mensagem"; -$a->strings["You receive a private message"] = "Você recebeu uma mensagem privada"; -$a->strings["You receive a friend suggestion"] = "Você recebe uma suggestão de amigo"; -$a->strings["You are tagged in a post"] = "Você foi etiquetado em uma publicação"; -$a->strings["You are poked/prodded/etc. in a post"] = "Você está cutucado/incitado/etc. em uma publicação"; -$a->strings["Text-only notification emails"] = "Emails de notificação apenas de texto"; -$a->strings["Send text only notification emails, without the html part"] = "Enviar e-mails de notificação apenas de texto, sem a parte html"; -$a->strings["Advanced Account/Page Type Settings"] = "Conta avançada/Configurações do tipo de página"; -$a->strings["Change the behaviour of this account for special situations"] = "Modificar o comportamento desta conta em situações especiais"; -$a->strings["Relocate"] = "Relocação"; -$a->strings["If you have moved this profile from another server, and some of your contacts don't receive your updates, try pushing this button."] = "Se você moveu esse perfil de outro servidor e algum dos seus contatos não recebe atualizações, pressione esse botão."; -$a->strings["Resend relocate message to contacts"] = "Reenviar mensagem de relocação para os contatos"; -$a->strings["Common Friends"] = "Amigos em Comum"; -$a->strings["No contacts in common."] = "Nenhum contato em comum."; -$a->strings["Remote privacy information not available."] = "Não existe informação disponível sobre a privacidade remota."; -$a->strings["Visible to:"] = "Visível para:"; -$a->strings["%d contact edited."] = array( - 0 => "%d contato editado", - 1 => "%d contatos editados", -); -$a->strings["Could not access contact record."] = "Não foi possível acessar o registro do contato."; -$a->strings["Could not locate selected profile."] = "Não foi possível localizar o perfil selecionado."; -$a->strings["Contact updated."] = "O contato foi atualizado."; -$a->strings["Failed to update contact record."] = "Não foi possível atualizar o registro do contato."; -$a->strings["Contact has been blocked"] = "O contato foi bloqueado"; -$a->strings["Contact has been unblocked"] = "O contato foi desbloqueado"; -$a->strings["Contact has been ignored"] = "O contato foi ignorado"; -$a->strings["Contact has been unignored"] = "O contato deixou de ser ignorado"; -$a->strings["Contact has been archived"] = "O contato foi arquivado"; -$a->strings["Contact has been unarchived"] = "O contato foi desarquivado"; -$a->strings["Do you really want to delete this contact?"] = "Você realmente deseja deletar esse contato?"; -$a->strings["Contact has been removed."] = "O contato foi removido."; -$a->strings["You are mutual friends with %s"] = "Você possui uma amizade mútua com %s"; -$a->strings["You are sharing with %s"] = "Você está compartilhando com %s"; -$a->strings["%s is sharing with you"] = "%s está compartilhando com você"; -$a->strings["Private communications are not available for this contact."] = "As comunicações privadas não estão disponíveis para este contato."; -$a->strings["Never"] = "Nunca"; -$a->strings["(Update was successful)"] = "(A atualização foi bem sucedida)"; -$a->strings["(Update was not successful)"] = "(A atualização não foi bem sucedida)"; -$a->strings["Suggest friends"] = "Sugerir amigos"; -$a->strings["Network type: %s"] = "Tipo de rede: %s"; -$a->strings["View all contacts"] = "Ver todos os contatos"; -$a->strings["Unblock"] = "Desbloquear"; -$a->strings["Block"] = "Bloquear"; -$a->strings["Toggle Blocked status"] = "Alternar o status de bloqueio"; -$a->strings["Unignore"] = "Deixar de ignorar"; -$a->strings["Toggle Ignored status"] = "Alternar o status de ignorado"; -$a->strings["Unarchive"] = "Desarquivar"; -$a->strings["Archive"] = "Arquivar"; -$a->strings["Toggle Archive status"] = "Alternar o status de arquivamento"; -$a->strings["Repair"] = "Reparar"; -$a->strings["Advanced Contact Settings"] = "Configurações avançadas do contato"; -$a->strings["Communications lost with this contact!"] = "As comunicações com esse contato foram perdidas!"; -$a->strings["Fetch further information for feeds"] = "Pega mais informações para feeds"; -$a->strings["Disabled"] = "Desabilitado"; -$a->strings["Fetch information"] = "Buscar informações"; -$a->strings["Fetch information and keywords"] = "Buscar informação e palavras-chave"; -$a->strings["Contact Editor"] = "Editor de contatos"; -$a->strings["Profile Visibility"] = "Visibilidade do perfil"; -$a->strings["Please choose the profile you would like to display to %s when viewing your profile securely."] = "Por favor, selecione o perfil que você gostaria de exibir para %s quando estiver visualizando seu perfil de modo seguro."; -$a->strings["Contact Information / Notes"] = "Informações sobre o contato / Anotações"; -$a->strings["Edit contact notes"] = "Editar as anotações do contato"; -$a->strings["Visit %s's profile [%s]"] = "Visitar o perfil de %s [%s]"; -$a->strings["Block/Unblock contact"] = "Bloquear/desbloquear o contato"; -$a->strings["Ignore contact"] = "Ignorar o contato"; -$a->strings["Repair URL settings"] = "Reparar as definições de URL"; -$a->strings["View conversations"] = "Ver as conversas"; -$a->strings["Delete contact"] = "Excluir o contato"; -$a->strings["Last update:"] = "Última atualização:"; -$a->strings["Update public posts"] = "Atualizar publicações públicas"; -$a->strings["Update now"] = "Atualizar agora"; -$a->strings["Currently blocked"] = "Atualmente bloqueado"; -$a->strings["Currently ignored"] = "Atualmente ignorado"; -$a->strings["Currently archived"] = "Atualmente arquivado"; -$a->strings["Replies/likes to your public posts may still be visible"] = "Respostas/gostadas associados às suas publicações ainda podem estar visíveis"; -$a->strings["Notification for new posts"] = "Notificações para novas publicações"; -$a->strings["Send a notification of every new post of this contact"] = "Envie uma notificação para todos as novas publicações deste contato"; -$a->strings["Blacklisted keywords"] = "Palavras-chave na Lista Negra"; -$a->strings["Comma separated list of keywords that should not be converted to hashtags, when \"Fetch information and keywords\" is selected"] = "Lista de palavras-chave separadas por vírgulas que não devem ser convertidas para hashtags, quando \"Buscar informações e palavras-chave\" for selecionado."; -$a->strings["Suggestions"] = "Sugestões"; -$a->strings["Suggest potential friends"] = "Sugerir amigos em potencial"; -$a->strings["Show all contacts"] = "Exibe todos os contatos"; -$a->strings["Unblocked"] = "Desbloquear"; -$a->strings["Only show unblocked contacts"] = "Exibe somente contatos desbloqueados"; -$a->strings["Blocked"] = "Bloqueado"; -$a->strings["Only show blocked contacts"] = "Exibe somente contatos bloqueados"; -$a->strings["Ignored"] = "Ignorados"; -$a->strings["Only show ignored contacts"] = "Exibe somente contatos ignorados"; -$a->strings["Archived"] = "Arquivados"; -$a->strings["Only show archived contacts"] = "Exibe somente contatos arquivados"; -$a->strings["Hidden"] = "Ocultos"; -$a->strings["Only show hidden contacts"] = "Exibe somente contatos ocultos"; -$a->strings["Mutual Friendship"] = "Amizade mútua"; -$a->strings["is a fan of yours"] = "é um fã seu"; -$a->strings["you are a fan of"] = "você é um fã de"; -$a->strings["Edit contact"] = "Editar o contato"; -$a->strings["Search your contacts"] = "Pesquisar seus contatos"; -$a->strings["Finding: "] = "Pesquisando: "; -$a->strings["Sorry, maybe your upload is bigger than the PHP configuration allows"] = "Lamento, talvez seu envio seja maior do que as configurações do PHP permitem"; -$a->strings["Or - did you try to upload an empty file?"] = "Ou - você tentou enviar um arquivo vazio?"; -$a->strings["File exceeds size limit of %d"] = "O arquivo excedeu o tamanho limite de %d"; -$a->strings["File upload failed."] = "Não foi possível enviar o arquivo."; -$a->strings["[Embedded content - reload page to view]"] = "[Conteúdo incorporado - recarregue a página para ver]"; -$a->strings["Export account"] = "Exportar conta"; -$a->strings["Export your account info and contacts. Use this to make a backup of your account and/or to move it to another server."] = "Exporta suas informações de conta e contatos. Use para fazer uma cópia de segurança de sua conta e/ou para movê-la para outro servidor."; -$a->strings["Export all"] = "Exportar tudo"; -$a->strings["Export your accout info, contacts and all your items as json. Could be a very big file, and could take a lot of time. Use this to make a full backup of your account (photos are not exported)"] = "Exportar as informações de sua conta, contatos e todos os seus items como JSON. Pode ser um arquivo muito grande, e pode levar bastante tempo. Use isto para fazer uma cópia de segurança completa da sua conta (fotos não são exportadas)"; -$a->strings["Registration successful. Please check your email for further instructions."] = "O registro foi bem sucedido. Por favor, verifique seu e-mail para maiores informações."; -$a->strings["Failed to send email message. Here your accout details:
      login: %s
      password: %s

      You can change your password after login."] = "Falha ao enviar mensagem de email. Estes são os dados da sua conta:
      login: %s
      senha: %s

      Você pode alterar sua senha após fazer o login."; -$a->strings["Your registration can not be processed."] = "Não foi possível processar o seu registro."; -$a->strings["Your registration is pending approval by the site owner."] = "A aprovação do seu registro está pendente junto ao administrador do site."; -$a->strings["This site has exceeded the number of allowed daily account registrations. Please try again tomorrow."] = "Este site excedeu o limite diário permitido para registros de novas contas.\nPor favor tente novamente amanhã."; -$a->strings["You may (optionally) fill in this form via OpenID by supplying your OpenID and clicking 'Register'."] = "Você pode (opcionalmente) preencher este formulário via OpenID, fornecendo seu OpenID e clicando em 'Registrar'."; -$a->strings["If you are not familiar with OpenID, please leave that field blank and fill in the rest of the items."] = "Se você não está familiarizado com o OpenID, por favor, deixe esse campo em branco e preencha os outros itens."; -$a->strings["Your OpenID (optional): "] = "Seu OpenID (opcional): "; -$a->strings["Include your profile in member directory?"] = "Incluir o seu perfil no diretório de membros?"; -$a->strings["Membership on this site is by invitation only."] = "A associação a este site só pode ser feita mediante convite."; -$a->strings["Your invitation ID: "] = "A ID do seu convite: "; -$a->strings["Registration"] = "Registro"; -$a->strings["Your Full Name (e.g. Joe Smith): "] = "Seu nome completo (ex: José da Silva): "; -$a->strings["Your Email Address: "] = "Seu endereço de e-mail: "; -$a->strings["Choose a profile nickname. This must begin with a text character. Your profile address on this site will then be 'nickname@\$sitename'."] = "Selecione uma identificação para o perfil. Ela deve começar com um caractere alfabético. O endereço do seu perfil neste site será 'identificação@\$sitename'"; -$a->strings["Choose a nickname: "] = "Escolha uma identificação: "; -$a->strings["Import"] = "Importar"; -$a->strings["Import your profile to this friendica instance"] = "Importa seu perfil desta instância do friendica"; -$a->strings["Post successful."] = "Publicado com sucesso."; -$a->strings["System down for maintenance"] = "Sistema em manutenção"; -$a->strings["Access to this profile has been restricted."] = "O acesso a este perfil está restrito."; +$a->strings["link"] = "ligação"; +$a->strings["Authorize application connection"] = "Autorizar a conexão com a aplicação"; +$a->strings["Return to your app and insert this Securty Code:"] = "Volte para a sua aplicação e digite este código de segurança:"; +$a->strings["Please login to continue."] = "Por favor, autentique-se para continuar."; +$a->strings["Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?"] = "Deseja autorizar esta aplicação a acessar suas publicações e contatos e/ou criar novas publicações para você?"; +$a->strings["Source (bbcode) text:"] = "Texto fonte (bbcode):"; +$a->strings["Source (Diaspora) text to convert to BBcode:"] = "Texto fonte (Diaspora) a converter para BBcode:"; +$a->strings["Source input: "] = "Entrada fonte:"; +$a->strings["bb2html (raw HTML): "] = "bb2html (HTML puro):"; +$a->strings["bb2html: "] = "bb2html: "; +$a->strings["bb2html2bb: "] = "bb2html2bb: "; +$a->strings["bb2md: "] = "bb2md: "; +$a->strings["bb2md2html: "] = "bb2md2html: "; +$a->strings["bb2dia2bb: "] = "bb2dia2bb: "; +$a->strings["bb2md2html2bb: "] = "bb2md2html2bb: "; +$a->strings["Source input (Diaspora format): "] = "Fonte de entrada (formato Diaspora):"; +$a->strings["diaspora2bb: "] = "diaspora2bb: "; +$a->strings["Subscribing to OStatus contacts"] = ""; +$a->strings["No contact provided."] = ""; +$a->strings["Couldn't fetch information for contact."] = ""; +$a->strings["Couldn't fetch friends for contact."] = ""; +$a->strings["success"] = "sucesso"; +$a->strings["failed"] = ""; +$a->strings["ignored"] = "Ignorado"; +$a->strings["%1\$s welcomes %2\$s"] = "%1\$s dá as boas vinda à %2\$s"; $a->strings["Tips for New Members"] = "Dicas para novos membros"; -$a->strings["Public access denied."] = "Acesso público negado."; -$a->strings["No videos selected"] = "Nenhum vídeo selecionado"; -$a->strings["Access to this item is restricted."] = "O acesso a este item é restrito."; -$a->strings["View Album"] = "Ver álbum"; -$a->strings["Recent Videos"] = "Vídeos Recentes"; -$a->strings["Upload New Videos"] = "Envie Novos Vídeos"; +$a->strings["Unable to locate contact information."] = "Não foi possível localizar informação do contato."; +$a->strings["Do you really want to delete this message?"] = "Você realmente deseja deletar essa mensagem?"; +$a->strings["Message deleted."] = "A mensagem foi excluída."; +$a->strings["Conversation removed."] = "A conversa foi removida."; +$a->strings["No messages."] = "Nenhuma mensagem."; +$a->strings["Message not available."] = "A mensagem não está disponível."; +$a->strings["Delete message"] = "Excluir a mensagem"; +$a->strings["Delete conversation"] = "Excluir conversa"; +$a->strings["No secure communications available. You may be able to respond from the sender's profile page."] = "Não foi encontrada nenhuma comunicação segura. Você pode ser capaz de responder a partir da página de perfil do remetente."; +$a->strings["Send Reply"] = "Enviar resposta"; +$a->strings["Unknown sender - %s"] = "Remetente desconhecido - %s"; +$a->strings["You and %s"] = "Você e %s"; +$a->strings["%s and You"] = "%s e você"; +$a->strings["D, d M Y - g:i A"] = "D, d M Y - g:i A"; +$a->strings["%d message"] = array( + 0 => "%d mensagem", + 1 => "%d mensagens", +); $a->strings["Manage Identities and/or Pages"] = "Gerenciar identidades e/ou páginas"; $a->strings["Toggle between different identities or community/group pages which share your account details or which you have been granted \"manage\" permissions"] = "Alterne entre diferentes identidades ou páginas de comunidade/grupo que dividem detalhes da sua conta ou que você tenha fornecido permissões de \"administração\""; $a->strings["Select an identity to manage: "] = "Selecione uma identidade para gerenciar: "; -$a->strings["Item not found"] = "O item não foi encontrado"; -$a->strings["Edit post"] = "Editar a publicação"; -$a->strings["People Search"] = "Pesquisar pessoas"; -$a->strings["No matches"] = "Nenhuma correspondência"; -$a->strings["Account approved."] = "A conta foi aprovada."; -$a->strings["Registration revoked for %s"] = "O registro de %s foi revogado"; -$a->strings["Please login."] = "Por favor, autentique-se."; +$a->strings["Contact settings applied."] = "As configurações do contato foram aplicadas."; +$a->strings["Contact update failed."] = "Não foi possível atualizar o contato."; +$a->strings["Contact not found."] = "O contato não foi encontrado."; +$a->strings["WARNING: This is highly advanced and if you enter incorrect information your communications with this contact may stop working."] = "ATENÇÃO: Isso é muito avançado, se você digitar informações incorretas, suas comunicações com esse contato pode parar de funcionar."; +$a->strings["Please use your browser 'Back' button now if you are uncertain what to do on this page."] = "Por favor, use o botão 'Voltar' do seu navegador agora, caso você não tenha certeza do que está fazendo."; +$a->strings["No mirroring"] = "Nenhum espelhamento"; +$a->strings["Mirror as forwarded posting"] = "Espelhar como postagem encaminhada"; +$a->strings["Mirror as my own posting"] = "Espelhar como minha própria postagem"; +$a->strings["Return to contact editor"] = "Voltar ao editor de contatos"; +$a->strings["Refetch contact data"] = ""; +$a->strings["Remote Self"] = "Eu remoto"; +$a->strings["Mirror postings from this contact"] = "Espelhar publicações deste contato"; +$a->strings["Mark this contact as remote_self, this will cause friendica to repost new entries from this contact."] = "Marcar este contato como eu remoto: o Friendica replicará novas publicações desse usuário."; +$a->strings["Name"] = "Nome"; +$a->strings["Account Nickname"] = "Identificação da conta"; +$a->strings["@Tagname - overrides Name/Nickname"] = "@Tagname - sobrescreve Nome/Identificação"; +$a->strings["Account URL"] = "URL da conta"; +$a->strings["Friend Request URL"] = "URL da requisição de amizade"; +$a->strings["Friend Confirm URL"] = "URL da confirmação de amizade"; +$a->strings["Notification Endpoint URL"] = "URL do ponto final da notificação"; +$a->strings["Poll/Feed URL"] = "URL do captador/fonte de notícias"; +$a->strings["New photo from this URL"] = "Nova imagem desta URL"; $a->strings["This introduction has already been accepted."] = "Esta apresentação já foi aceita."; $a->strings["Profile location is not valid or does not contain profile information."] = "A localização do perfil não é válida ou não contém uma informação de perfil."; $a->strings["Warning: profile location has no identifiable owner name."] = "Aviso: a localização do perfil não possui nenhum nome identificável do seu dono."; @@ -1101,53 +1055,88 @@ $a->strings["Friends are advised to please try again in 24 hours."] = "Os amigos $a->strings["Invalid locator"] = "Localizador inválido"; $a->strings["Invalid email address."] = "Endereço de e-mail inválido."; $a->strings["This account has not been configured for email. Request failed."] = "Essa conta não foi configurada para e-mails. Não foi possível atender à solicitação."; -$a->strings["Unable to resolve your name at the provided location."] = "Não foi possível encontrar a sua identificação no endereço indicado."; $a->strings["You have already introduced yourself here."] = "Você já fez a sua apresentação aqui."; $a->strings["Apparently you are already friends with %s."] = "Aparentemente você já é amigo de %s."; $a->strings["Invalid profile URL."] = "URL de perfil inválida."; +$a->strings["Failed to update contact record."] = "Não foi possível atualizar o registro do contato."; $a->strings["Your introduction has been sent."] = "A sua apresentação foi enviada."; +$a->strings["Remote subscription can't be done for your network. Please subscribe directly on your system."] = "A sua rede não permite inscrição a distância. Inscreva-se diretamente no seu sistema."; $a->strings["Please login to confirm introduction."] = "Por favor, autentique-se para confirmar a apresentação."; $a->strings["Incorrect identity currently logged in. Please login to this profile."] = "A identidade autenticada está incorreta. Por favor, entre como este perfil."; +$a->strings["Confirm"] = "Confirmar"; $a->strings["Hide this contact"] = "Ocultar este contato"; $a->strings["Welcome home %s."] = "Bem-vindo(a) à sua página pessoal %s."; $a->strings["Please confirm your introduction/connection request to %s."] = "Por favor, confirme sua solicitação de apresentação/conexão para %s."; $a->strings["Please enter your 'Identity Address' from one of the following supported communications networks:"] = "Por favor, digite seu 'Endereço de Identificação' a partir de uma das seguintes redes de comunicação suportadas:"; -$a->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."] = "Caso você ainda não seja membro da rede social livre, clique aqui para encontrar um site Friendica público e junte-se à nós."; +$a->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."] = ""; $a->strings["Friend/Connection Request"] = "Solicitação de amizade/conexão"; $a->strings["Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, testuser@identi.ca"] = "Examplos: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, testuser@identi.ca"; -$a->strings["Please answer the following:"] = "Por favor, entre com as informações solicitadas:"; -$a->strings["Does %s know you?"] = "%s conhece você?"; -$a->strings["Add a personal note:"] = "Adicione uma anotação pessoal:"; $a->strings["StatusNet/Federated Social Web"] = "StatusNet/Federated Social Web"; $a->strings[" - please do not use this form. Instead, enter %s into your Diaspora search bar."] = " - Por favor, não utilize esse formulário. Ao invés disso, digite %s na sua barra de pesquisa do Diaspora."; -$a->strings["Your Identity Address:"] = "Seu endereço de identificação:"; -$a->strings["Submit Request"] = "Enviar solicitação"; -$a->strings["Files"] = "Arquivos"; -$a->strings["Authorize application connection"] = "Autorizar a conexão com a aplicação"; -$a->strings["Return to your app and insert this Securty Code:"] = "Volte para a sua aplicação e digite este código de segurança:"; -$a->strings["Please login to continue."] = "Por favor, autentique-se para continuar."; -$a->strings["Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?"] = "Deseja autorizar esta aplicação a acessar suas publicações e contatos e/ou criar novas publicações para você?"; -$a->strings["Do you really want to delete this suggestion?"] = "Você realmente deseja deletar essa sugestão?"; -$a->strings["No suggestions available. If this is a new site, please try again in 24 hours."] = "Não existe nenhuma sugestão disponível. Se este for um site novo, por favor tente novamente em 24 horas."; -$a->strings["Ignore/Hide"] = "Ignorar/Ocultar"; -$a->strings["Contacts who are not members of a group"] = "Contatos que não são membros de um grupo"; -$a->strings["Contact not found."] = "O contato não foi encontrado."; -$a->strings["Friend suggestion sent."] = "A sugestão de amigo foi enviada"; -$a->strings["Suggest Friends"] = "Sugerir amigos"; -$a->strings["Suggest a friend for %s"] = "Sugerir um amigo para %s"; -$a->strings["link"] = "ligação"; -$a->strings["No contacts."] = "Nenhum contato."; +$a->strings["This entry was edited"] = "Essa entrada foi editada"; +$a->strings["%d comment"] = array( + 0 => "%d comentário", + 1 => "%d comentários", +); +$a->strings["Private Message"] = "Mensagem privada"; +$a->strings["I like this (toggle)"] = "Eu gostei disso (alternar)"; +$a->strings["like"] = "gostei"; +$a->strings["I don't like this (toggle)"] = "Eu não gostei disso (alternar)"; +$a->strings["dislike"] = "desgostar"; +$a->strings["Share this"] = "Compartilhar isso"; +$a->strings["share"] = "compartilhar"; +$a->strings["This is you"] = "Este(a) é você"; +$a->strings["Comment"] = "Comentar"; +$a->strings["Bold"] = "Negrito"; +$a->strings["Italic"] = "Itálico"; +$a->strings["Underline"] = "Sublinhado"; +$a->strings["Quote"] = "Citação"; +$a->strings["Code"] = "Código"; +$a->strings["Image"] = "Imagem"; +$a->strings["Link"] = "Link"; +$a->strings["Video"] = "Vídeo"; +$a->strings["Edit"] = "Editar"; +$a->strings["add star"] = "destacar"; +$a->strings["remove star"] = "remover o destaque"; +$a->strings["toggle star status"] = "ativa/desativa o destaque"; +$a->strings["starred"] = "marcado com estrela"; +$a->strings["add tag"] = "adicionar etiqueta"; +$a->strings["ignore thread"] = "ignorar tópico"; +$a->strings["unignore thread"] = "deixar de ignorar tópico"; +$a->strings["toggle ignore status"] = "alternar status ignorar"; +$a->strings["save to folder"] = "salvar na pasta"; +$a->strings["I will attend"] = "Eu vou"; +$a->strings["I will not attend"] = "Eu não vou"; +$a->strings["I might attend"] = "Eu estou pensando em ir"; +$a->strings["to"] = "para"; +$a->strings["Wall-to-Wall"] = "Mural-para-mural"; +$a->strings["via Wall-To-Wall:"] = "via Mural-para-mural"; $a->strings["Theme settings updated."] = "As configurações do tema foram atualizadas."; $a->strings["Site"] = "Site"; $a->strings["Users"] = "Usuários"; +$a->strings["Plugins"] = "Plugins"; $a->strings["Themes"] = "Temas"; +$a->strings["Additional features"] = "Funcionalidades adicionais"; $a->strings["DB updates"] = "Atualizações do BD"; +$a->strings["Inspect Queue"] = ""; +$a->strings["Federation Statistics"] = ""; $a->strings["Logs"] = "Relatórios"; +$a->strings["View Logs"] = ""; $a->strings["probe address"] = "prova endereço"; $a->strings["check webfinger"] = "verifica webfinger"; $a->strings["Plugin Features"] = "Recursos do plugin"; $a->strings["diagnostics"] = "diagnóstico"; $a->strings["User registrations waiting for confirmation"] = "Cadastros de novos usuários aguardando confirmação"; +$a->strings["This page offers you some numbers to the known part of the federated social network your Friendica node is part of. These numbers are not complete but only reflect the part of the network your node is aware of."] = ""; +$a->strings["The Auto Discovered Contact Directory feature is not enabled, it will improve the data displayed here."] = ""; +$a->strings["Administration"] = "Administração"; +$a->strings["Currently this node is aware of %d nodes from the following platforms:"] = ""; +$a->strings["ID"] = "ID"; +$a->strings["Recipient Name"] = ""; +$a->strings["Recipient Profile"] = ""; +$a->strings["Created"] = ""; +$a->strings["Last Tried"] = ""; +$a->strings["This page lists the content of the queue for outgoing postings. These are postings the initial delivery failed for. They will be resend later and eventually deleted if the delivery fails permanently."] = ""; $a->strings["Normal Account"] = "Conta normal"; $a->strings["Soapbox Account"] = "Conta de vitrine"; $a->strings["Community/Celebrity Account"] = "Conta de comunidade/celebridade"; @@ -1155,18 +1144,27 @@ $a->strings["Automatic Friend Account"] = "Conta de amigo automático"; $a->strings["Blog Account"] = "Conta de blog"; $a->strings["Private Forum"] = "Fórum privado"; $a->strings["Message queues"] = "Fila de mensagens"; -$a->strings["Administration"] = "Administração"; $a->strings["Summary"] = "Resumo"; $a->strings["Registered users"] = "Usuários registrados"; $a->strings["Pending registrations"] = "Registros pendentes"; $a->strings["Version"] = "Versão"; $a->strings["Active plugins"] = "Plugins ativos"; $a->strings["Can not parse base url. Must have at least ://"] = "Não foi possível analisar a URL. Ela deve conter pelo menos ://"; +$a->strings["RINO2 needs mcrypt php extension to work."] = ""; $a->strings["Site settings updated."] = "As configurações do site foram atualizadas."; +$a->strings["No special theme for mobile devices"] = "Nenhum tema especial para dispositivos móveis"; $a->strings["No community page"] = "Sem página de comunidade"; $a->strings["Public postings from users of this site"] = "Textos públicos de usuários deste sítio"; $a->strings["Global community page"] = "Página global da comunidade"; +$a->strings["Never"] = "Nunca"; $a->strings["At post arrival"] = "Na chegada da publicação"; +$a->strings["Disabled"] = "Desabilitado"; +$a->strings["Users, Global Contacts"] = "Usuários, Contatos Globais"; +$a->strings["Users, Global Contacts/fallback"] = "Usuários, Contatos Globais/plano B"; +$a->strings["One month"] = "Um mês"; +$a->strings["Three months"] = "Três meses"; +$a->strings["Half a year"] = "Seis meses"; +$a->strings["One year"] = "Um ano"; $a->strings["Multi user instance"] = "Instância multi usuário"; $a->strings["Closed"] = "Fechado"; $a->strings["Requires approval"] = "Requer aprovação"; @@ -1174,19 +1172,25 @@ $a->strings["Open"] = "Aberto"; $a->strings["No SSL policy, links will track page SSL state"] = "Nenhuma política de SSL, os links irão rastrear o estado SSL da página"; $a->strings["Force all links to use SSL"] = "Forçar todos os links a utilizar SSL"; $a->strings["Self-signed certificate, use SSL for local links only (discouraged)"] = "Certificado auto-assinado, usar SSL somente para links locais (não recomendado)"; +$a->strings["Save Settings"] = "Salvar configurações"; +$a->strings["Registration"] = "Registro"; $a->strings["File upload"] = "Envio de arquivo"; $a->strings["Policies"] = "Políticas"; -$a->strings["Advanced"] = "Avançado"; +$a->strings["Auto Discovered Contact Directory"] = ""; $a->strings["Performance"] = "Performance"; +$a->strings["Worker"] = ""; $a->strings["Relocate - WARNING: advanced function. Could make this server unreachable."] = "Relocação - ATENÇÃO: função avançada. Pode tornar esse servidor inacessível."; $a->strings["Site name"] = "Nome do site"; $a->strings["Host name"] = "Nome do host"; $a->strings["Sender Email"] = "enviador de email"; +$a->strings["The email address your server shall use to send notification emails from."] = ""; $a->strings["Banner/Logo"] = "Banner/Logo"; $a->strings["Shortcut icon"] = "ícone de atalho"; +$a->strings["Link to an icon that will be used for browsers."] = ""; $a->strings["Touch icon"] = "ícone de toque"; +$a->strings["Link to an icon that will be used for tablets and mobiles."] = ""; $a->strings["Additional Info"] = "Informação adicional"; -$a->strings["For public servers: you can add additional information here that will be listed at dir.friendica.com/siteinfo."] = "Para servidores públicos: você pode adicionar informações aqui que serão listadas em dir.friendica.com/siteinfo."; +$a->strings["For public servers: you can add additional information here that will be listed at %s/siteinfo."] = ""; $a->strings["System language"] = "Idioma do sistema"; $a->strings["System theme"] = "Tema do sistema"; $a->strings["Default system theme - may be over-ridden by user profiles - change theme settings"] = "Tema padrão do sistema. Pode ser substituído nos perfis de usuário - alterar configurações do tema"; @@ -1223,8 +1227,8 @@ $a->strings["Block public"] = "Bloquear acesso público"; $a->strings["Check to block public access to all otherwise public personal pages on this site unless you are currently logged in."] = "Marque para bloquear o acesso público a todas as páginas desse site, com exceção das páginas pessoais públicas, a não ser que a pessoa esteja autenticada."; $a->strings["Force publish"] = "Forçar a listagem"; $a->strings["Check to force all profiles on this site to be listed in the site directory."] = "Marque para forçar todos os perfis desse site a serem listados no diretório do site."; -$a->strings["Global directory update URL"] = "URL de atualização do diretório global"; -$a->strings["URL to update the global directory. If this is not set, the global directory is completely unavailable to the application."] = "URL para atualizar o diretório global. Se isso não for definido, o diretório global não estará disponível neste site."; +$a->strings["Global directory URL"] = ""; +$a->strings["URL to the global directory. If this is not set, the global directory is completely unavailable to the application."] = ""; $a->strings["Allow threaded items"] = "Habilita itens aninhados"; $a->strings["Allow infinite level threading for items on this site."] = "Habilita nível infinito de aninhamento (threading) para itens."; $a->strings["Private posts by default for new users"] = "Publicações privadas por padrão para novos usuários"; @@ -1253,6 +1257,10 @@ $a->strings["Enable OStatus support"] = "Habilitar suporte ao OStatus"; $a->strings["Provide built-in OStatus (StatusNet, GNU Social etc.) compatibility. All communications in OStatus are public, so privacy warnings will be occasionally displayed."] = "Fornece compatibilidade OStatus (StatusNet, GNU Social, etc.). Todas as comunicações no OStatus são públicas, assim avisos de privacidade serão ocasionalmente mostrados."; $a->strings["OStatus conversation completion interval"] = "Intervalo de finalização da conversação OStatus "; $a->strings["How often shall the poller check for new entries in OStatus conversations? This can be a very ressource task."] = "De quanto em quanto tempo o \"buscador\" (poller) deve checar por novas entradas numa conversação OStatus? Essa pode ser uma tarefa bem demorada."; +$a->strings["Only import OStatus threads from our contacts"] = ""; +$a->strings["Normally we import every content from our OStatus contacts. With this option we only store threads that are started by a contact that is known on our system."] = ""; +$a->strings["OStatus support can only be enabled if threading is enabled."] = ""; +$a->strings["Diaspora support can't be enabled because Friendica was installed into a sub directory."] = ""; $a->strings["Enable Diaspora support"] = "Habilitar suporte ao Diaspora"; $a->strings["Provide built-in Diaspora network compatibility."] = "Fornece compatibilidade nativa com a rede Diaspora."; $a->strings["Only allow Friendica contacts"] = "Permitir somente contatos Friendica"; @@ -1269,6 +1277,24 @@ $a->strings["Poll interval"] = "Intervalo da busca (polling)"; $a->strings["Delay background polling processes by this many seconds to reduce system load. If 0, use delivery interval."] = "Postergue o processo de entrega em background por essa quantidade de segundos visando reduzir a carga do sistema. Se 0, use intervalo de entrega."; $a->strings["Maximum Load Average"] = "Média de Carga Máxima"; $a->strings["Maximum system load before delivery and poll processes are deferred - default 50."] = "Carga do sistema máxima antes que os processos de entrega e busca sejam postergados - padrão 50."; +$a->strings["Maximum Load Average (Frontend)"] = ""; +$a->strings["Maximum system load before the frontend quits service - default 50."] = ""; +$a->strings["Maximum table size for optimization"] = ""; +$a->strings["Maximum table size (in MB) for the automatic optimization - default 100 MB. Enter -1 to disable it."] = ""; +$a->strings["Minimum level of fragmentation"] = ""; +$a->strings["Minimum fragmenation level to start the automatic optimization - default value is 30%."] = ""; +$a->strings["Periodical check of global contacts"] = "Checagem periódica dos contatos globais"; +$a->strings["If enabled, the global contacts are checked periodically for missing or outdated data and the vitality of the contacts and servers."] = ""; +$a->strings["Days between requery"] = ""; +$a->strings["Number of days after which a server is requeried for his contacts."] = ""; +$a->strings["Discover contacts from other servers"] = ""; +$a->strings["Periodically query other servers for contacts. You can choose between 'users': the users on the remote system, 'Global Contacts': active contacts that are known on the system. The fallback is meant for Redmatrix servers and older friendica servers, where global contacts weren't available. The fallback increases the server load, so the recommened setting is 'Users, Global Contacts'."] = "Periodicamente buscar contatos em outros servidores. Você pode entre 'Usuários': os usuários do sistema remoto; e 'Contatos Globais': os contatos ativos conhecidos pelo sistema. O plano B é destinado a servidores rodando Redmatrix ou Friendica, se mais antigos, para os quais os contatos globais não estavam disponíveis. O plano B aumenta a carga do servidor, por isso a opção recomendada é 'Usuários, Contatos Globais'."; +$a->strings["Timeframe for fetching global contacts"] = ""; +$a->strings["When the discovery is activated, this value defines the timeframe for the activity of the global contacts that are fetched from other servers."] = ""; +$a->strings["Search the local directory"] = ""; +$a->strings["Search the local directory instead of the global directory. When searching locally, every search will be executed on the global directory in the background. This improves the search results when the search is repeated."] = ""; +$a->strings["Publish server information"] = ""; +$a->strings["If enabled, general server and usage data will be published. The data contains the name and version of the server, number of users with public profiles, number of posts and the activated protocols and connectors. See the-federation.info for details."] = ""; $a->strings["Use MySQL full text engine"] = "Use o engine de texto completo (full text) do MySQL"; $a->strings["Activates the full text engine. Speeds up search - but can only search for four and more characters."] = "Ativa a engine de texto completo (full text). Acelera a busca - mas só pode buscar apenas por 4 ou mais caracteres."; $a->strings["Suppress Language"] = "Retira idioma"; @@ -1276,13 +1302,17 @@ $a->strings["Suppress language information in meta information about a posting." $a->strings["Suppress Tags"] = "Suprime etiquetas"; $a->strings["Suppress showing a list of hashtags at the end of the posting."] = "suprime mostrar uma lista de hashtags no final de cada texto."; $a->strings["Path to item cache"] = "Diretório do cache de item"; +$a->strings["The item caches buffers generated bbcode and external images."] = ""; $a->strings["Cache duration in seconds"] = "Duração do cache em segundos"; $a->strings["How long should the cache files be hold? Default value is 86400 seconds (One day). To disable the item cache, set the value to -1."] = "Por quanto tempo os arquivos de cache devem ser mantidos? O valor padrão é 86400 segundos (um dia). Para desativar o cache, defina o valor para -1."; $a->strings["Maximum numbers of comments per post"] = "O número máximo de comentários por post"; $a->strings["How much comments should be shown for each post? Default value is 100."] = "Quanto comentários devem ser mostradas em cada post? O valor padrão é 100."; $a->strings["Path for lock file"] = "Diretório do arquivo de trava"; +$a->strings["The lock file is used to avoid multiple pollers at one time. Only define a folder here."] = ""; $a->strings["Temp path"] = "Diretório Temp"; +$a->strings["If you have a restricted system where the webserver can't access the system temp path, enter another path here."] = ""; $a->strings["Base path to installation"] = "Diretório base para instalação"; +$a->strings["If the system cannot detect the correct path to your installation, enter the correct path here. This setting should only be set if you are using a restricted system and symbolic links to your webroot."] = ""; $a->strings["Disable picture proxy"] = "Disabilitar proxy de imagem"; $a->strings["The picture proxy increases performance and privacy. It shouldn't be used on systems with very low bandwith."] = "O proxy de imagem aumenta o desempenho e privacidade. Ele não deve ser usado em sistemas com largura de banda muito baixa."; $a->strings["Enable old style pager"] = "Habilita estilo antigo de paginação"; @@ -1290,6 +1320,19 @@ $a->strings["The old style pager has page numbers but slows down massively the p $a->strings["Only search in tags"] = "Somente pesquisa nas estiquetas"; $a->strings["On large systems the text search can slow down the system extremely."] = "Em grandes sistemas a pesquisa de texto pode deixar o sistema muito lento."; $a->strings["New base url"] = "Nova URL base"; +$a->strings["Change base url for this server. Sends relocate message to all DFRN contacts of all users."] = ""; +$a->strings["RINO Encryption"] = ""; +$a->strings["Encryption layer between nodes."] = ""; +$a->strings["Embedly API key"] = ""; +$a->strings["Embedly is used to fetch additional data for web pages. This is an optional parameter."] = ""; +$a->strings["Enable 'worker' background processing"] = ""; +$a->strings["The worker background processing limits the number of parallel background jobs to a maximum number and respects the system load."] = ""; +$a->strings["Maximum number of parallel workers"] = ""; +$a->strings["On shared hosters set this to 2. On larger systems, values of 10 are great. Default value is 4."] = ""; +$a->strings["Don't use 'proc_open' with the worker"] = ""; +$a->strings["Enable this if your system doesn't allow the use of 'proc_open'. This can happen on shared hosters. If this is enabled you should increase the frequency of poller calls in your crontab."] = ""; +$a->strings["Enable fastlane"] = ""; +$a->strings["When enabed, the fastlane mechanism starts an additional worker if processes with higher priority are blocked by processes of lower priority."] = ""; $a->strings["Update has been marked successful"] = "A atualização foi marcada como bem sucedida"; $a->strings["Database structure update %s was successfully applied."] = "A atualização da estrutura do banco de dados %s foi aplicada com sucesso."; $a->strings["Executing of database structure update %s failed with error: %s"] = "A execução da atualização da estrutura do banco de dados %s falhou com o erro: %s"; @@ -1316,23 +1359,27 @@ $a->strings["%s user deleted"] = array( $a->strings["User '%s' deleted"] = "O usuário '%s' foi excluído"; $a->strings["User '%s' unblocked"] = "O usuário '%s' foi desbloqueado"; $a->strings["User '%s' blocked"] = "O usuário '%s' foi bloqueado"; +$a->strings["Register date"] = "Data de registro"; +$a->strings["Last login"] = "Última entrada"; +$a->strings["Last item"] = "Último item"; +$a->strings["Account"] = "Conta"; $a->strings["Add User"] = "Adicionar usuário"; $a->strings["select all"] = "selecionar todos"; $a->strings["User registrations waiting for confirm"] = "Registros de usuário aguardando confirmação"; $a->strings["User waiting for permanent deletion"] = "Usuário aguardando por fim permanente da conta."; $a->strings["Request date"] = "Solicitar data"; $a->strings["No registrations."] = "Nenhum registro."; +$a->strings["Approve"] = "Aprovar"; $a->strings["Deny"] = "Negar"; +$a->strings["Block"] = "Bloquear"; +$a->strings["Unblock"] = "Desbloquear"; $a->strings["Site admin"] = "Administração do site"; $a->strings["Account expired"] = "Conta expirou"; $a->strings["New User"] = "Novo usuário"; -$a->strings["Register date"] = "Data de registro"; -$a->strings["Last login"] = "Última entrada"; -$a->strings["Last item"] = "Último item"; $a->strings["Deleted since"] = "Apagado desde"; $a->strings["Selected users will be deleted!\\n\\nEverything these users had posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "Os usuários selecionados serão excluídos!\\n\\nTudo o que estes usuários publicaram neste site será excluído permanentemente!\\n\\nDeseja continuar?"; $a->strings["The user {0} will be deleted!\\n\\nEverything this user has posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "O usuário {0} será excluído!\\n\\nTudo o que este usuário publicou neste site será permanentemente excluído!\\n\\nDeseja continuar?"; -$a->strings["Name of the new user."] = "Nome do novo usuários."; +$a->strings["Name of the new user."] = "Nome do novo usuário."; $a->strings["Nickname"] = "Apelido"; $a->strings["Nickname of the new user."] = "Apelido para o novo usuário."; $a->strings["Email address of the new user."] = "Endereço de e-mail do novo usuário."; @@ -1343,418 +1390,108 @@ $a->strings["Enable"] = "Habilitar"; $a->strings["Toggle"] = "Alternar"; $a->strings["Author: "] = "Autor: "; $a->strings["Maintainer: "] = "Mantenedor: "; +$a->strings["Reload active plugins"] = ""; +$a->strings["There are currently no plugins available on your node. You can find the official plugin repository at %1\$s and might find other interesting plugins in the open plugin registry at %2\$s"] = ""; $a->strings["No themes found."] = "Nenhum tema encontrado"; $a->strings["Screenshot"] = "Captura de tela"; +$a->strings["Reload active themes"] = ""; +$a->strings["No themes found on the system. They should be paced in %1\$s"] = ""; $a->strings["[Experimental]"] = "[Esperimental]"; $a->strings["[Unsupported]"] = "[Não suportado]"; $a->strings["Log settings updated."] = "As configurações de relatórios foram atualizadas."; $a->strings["Clear"] = "Limpar"; -$a->strings["Enable Debugging"] = "Habilitar Debugging"; +$a->strings["Enable Debugging"] = "Habilitar depuração"; $a->strings["Log file"] = "Arquivo do relatório"; $a->strings["Must be writable by web server. Relative to your Friendica top-level directory."] = "O servidor web precisa ter permissão de escrita. Relativa ao diretório raiz do seu Friendica."; $a->strings["Log level"] = "Nível do relatório"; -$a->strings["Close"] = "Fechar"; -$a->strings["FTP Host"] = "Endereço do FTP"; -$a->strings["FTP Path"] = "Caminho do FTP"; -$a->strings["FTP User"] = "Usuário do FTP"; -$a->strings["FTP Password"] = "Senha do FTP"; -$a->strings["Image exceeds size limit of %d"] = "A imagem excede o limite de tamanho de %d"; -$a->strings["Unable to process image."] = "Não foi possível processar a imagem."; -$a->strings["Image upload failed."] = "Não foi possível enviar a imagem."; -$a->strings["Welcome to %s"] = "Bem-vindo(a) a %s"; -$a->strings["OpenID protocol error. No ID returned."] = "Erro no protocolo OpenID. Não foi retornada nenhuma ID."; -$a->strings["Account not found and OpenID registration is not permitted on this site."] = "A conta não foi encontrada e não são permitidos registros via OpenID nesse site."; -$a->strings["Search Results For:"] = "Resultados de Busca Por:"; -$a->strings["Remove term"] = "Remover o termo"; -$a->strings["Commented Order"] = "Ordem dos comentários"; -$a->strings["Sort by Comment Date"] = "Ordenar pela data do comentário"; -$a->strings["Posted Order"] = "Ordem das publicações"; -$a->strings["Sort by Post Date"] = "Ordenar pela data de publicação"; -$a->strings["Posts that mention or involve you"] = "Publicações que mencionem ou envolvam você"; -$a->strings["New"] = "Nova"; -$a->strings["Activity Stream - by date"] = "Fluxo de atividades - por data"; -$a->strings["Shared Links"] = "Links compartilhados"; -$a->strings["Interesting Links"] = "Links interessantes"; -$a->strings["Starred"] = "Destacada"; -$a->strings["Favourite Posts"] = "Publicações favoritas"; -$a->strings["Warning: This group contains %s member from an insecure network."] = array( - 0 => "Aviso: Este grupo contém %s membro de uma rede insegura.", - 1 => "Aviso: Este grupo contém %s membros de uma rede insegura.", +$a->strings["PHP logging"] = ""; +$a->strings["To enable logging of PHP errors and warnings you can add the following to the .htconfig.php file of your installation. The filename set in the 'error_log' line is relative to the friendica top-level directory and must be writeable by the web server. The option '1' for 'log_errors' and 'display_errors' is to enable these options, set to '0' to disable them."] = ""; +$a->strings["Off"] = "Off"; +$a->strings["On"] = "On"; +$a->strings["Lock feature %s"] = "Bloquear funcionalidade %s"; +$a->strings["Manage Additional Features"] = "Gerenciar funcionalidades adicionais"; +$a->strings["%d contact edited."] = array( + 0 => "", + 1 => "", ); -$a->strings["Private messages to this group are at risk of public disclosure."] = "Mensagens privadas para este grupo correm o risco de sofrerem divulgação pública."; -$a->strings["No such group"] = "Este grupo não existe"; -$a->strings["Group is empty"] = "O grupo está vazio"; -$a->strings["Group: "] = "Grupo: "; -$a->strings["Contact: "] = "Contato: "; -$a->strings["Private messages to this person are at risk of public disclosure."] = "Mensagens privadas para esta pessoa correm o risco de sofrerem divulgação pública."; -$a->strings["Invalid contact."] = "Contato inválido."; -$a->strings["- select -"] = "-selecione-"; -$a->strings["This is Friendica, version"] = "Este é o Friendica, versão"; -$a->strings["running at web location"] = "sendo executado no endereço web"; -$a->strings["Please visit Friendica.com to learn more about the Friendica project."] = "Por favor, visite friendica.com para aprender mais sobre o projeto Friendica."; -$a->strings["Bug reports and issues: please visit"] = "Relatos e acompanhamentos de erros podem ser encontrados em"; -$a->strings["Suggestions, praise, donations, etc. - please email \"Info\" at Friendica - dot com"] = "Sugestões, elogios, doações, etc. - favor enviar e-mail para \"Info\" arroba Friendica - ponto com"; -$a->strings["Installed plugins/addons/apps:"] = "Plugins/complementos/aplicações instaladas:"; -$a->strings["No installed plugins/addons/apps"] = "Nenhum plugin/complemento/aplicativo instalado"; -$a->strings["Applications"] = "Aplicativos"; -$a->strings["No installed applications."] = "Nenhum aplicativo instalado"; -$a->strings["Upload New Photos"] = "Enviar novas fotos"; -$a->strings["Contact information unavailable"] = "A informação de contato não está disponível"; -$a->strings["Album not found."] = "O álbum não foi encontrado."; -$a->strings["Delete Album"] = "Excluir o álbum"; -$a->strings["Do you really want to delete this photo album and all its photos?"] = "Você realmente deseja deletar esse álbum de fotos e todas as suas fotos?"; -$a->strings["Delete Photo"] = "Excluir a foto"; -$a->strings["Do you really want to delete this photo?"] = "Você realmente deseja deletar essa foto?"; -$a->strings["%1\$s was tagged in %2\$s by %3\$s"] = "%1\$s foi marcado em %2\$s por %3\$s"; -$a->strings["a photo"] = "uma foto"; -$a->strings["Image exceeds size limit of "] = "A imagem excede o tamanho máximo de "; -$a->strings["Image file is empty."] = "O arquivo de imagem está vazio."; -$a->strings["No photos selected"] = "Não foi selecionada nenhuma foto"; -$a->strings["You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage."] = "Você está usando %1$.2f Mbytes dos %2$.2f Mbytes liberados para armazenamento de fotos."; -$a->strings["Upload Photos"] = "Enviar fotos"; -$a->strings["New album name: "] = "Nome do novo álbum: "; -$a->strings["or existing album name: "] = "ou o nome de um álbum já existente: "; -$a->strings["Do not show a status post for this upload"] = "Não exiba uma publicação de status para este envio"; -$a->strings["Permissions"] = "Permissões"; -$a->strings["Private Photo"] = "Foto Privada"; -$a->strings["Public Photo"] = "Foto Pública"; -$a->strings["Edit Album"] = "Editar o álbum"; -$a->strings["Show Newest First"] = "Exibir as mais recentes primeiro"; -$a->strings["Show Oldest First"] = "Exibir as mais antigas primeiro"; -$a->strings["View Photo"] = "Ver a foto"; -$a->strings["Permission denied. Access to this item may be restricted."] = "Permissão negada. O acesso a este item pode estar restrito."; -$a->strings["Photo not available"] = "A foto não está disponível"; -$a->strings["View photo"] = "Ver a imagem"; -$a->strings["Edit photo"] = "Editar a foto"; -$a->strings["Use as profile photo"] = "Usar como uma foto de perfil"; -$a->strings["View Full Size"] = "Ver no tamanho real"; -$a->strings["Tags: "] = "Etiquetas: "; -$a->strings["[Remove any tag]"] = "[Remover qualquer etiqueta]"; -$a->strings["Rotate CW (right)"] = "Rotacionar para direita"; -$a->strings["Rotate CCW (left)"] = "Rotacionar para esquerda"; -$a->strings["New album name"] = "Novo nome para o álbum"; -$a->strings["Caption"] = "Legenda"; -$a->strings["Add a Tag"] = "Adicionar uma etiqueta"; -$a->strings["Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"] = "Por exemplo: @joao, @Joao_da_Silva, @joao@exemplo.com, #Minas_Gerais, #acampamento"; -$a->strings["Private photo"] = "Foto privada"; -$a->strings["Public photo"] = "Foto pública"; -$a->strings["Recent Photos"] = "Fotos recentes"; -$a->strings["The post was created"] = "O texto foi criado"; -$a->strings["Contact added"] = "O contato foi adicionado"; -$a->strings["Move account"] = "Mover conta"; -$a->strings["You can import an account from another Friendica server."] = "Você pode importar um conta de outro sevidor Friendica."; -$a->strings["You need to export your account from the old server and upload it here. We will recreate your old account here with all your contacts. We will try also to inform your friends that you moved here."] = "Você precisa exportar sua conta de um servidor antigo e fazer o upload aqui. Nós recriaremos sua conta antiga aqui com todos os seus contatos. Nós também tentaremos informar seus amigos que você se mudou para cá."; -$a->strings["This feature is experimental. We can't import contacts from the OStatus network (statusnet/identi.ca) or from Diaspora"] = "Esse recurso é experimental. Nós não podemos importar contatos de uma rede OStatus (statusnet/identi.ca) ou do Diaspora"; -$a->strings["Account file"] = "Arquivo de conta"; -$a->strings["To export your account, go to \"Settings->Export your personal data\" and select \"Export account\""] = "Para exportar a sua conta, entre em \"Configurações->Exportar dados pessoais\" e selecione \"Exportar conta\""; -$a->strings["Total invitation limit exceeded."] = "Limite de convites totais excedido."; -$a->strings["%s : Not a valid email address."] = "%s : Não é um endereço de e-mail válido."; -$a->strings["Please join us on Friendica"] = "Por favor, junte-se à nós na Friendica"; -$a->strings["Invitation limit exceeded. Please contact your site administrator."] = "Limite de convites ultrapassado. Favor contactar o administrador do sítio."; -$a->strings["%s : Message delivery failed."] = "%s : Não foi possível enviar a mensagem."; -$a->strings["%d message sent."] = array( - 0 => "%d mensagem enviada.", - 1 => "%d mensagens enviadas.", -); -$a->strings["You have no more invitations available"] = "Você não possui mais convites disponíveis"; -$a->strings["Visit %s for a list of public sites that you can join. Friendica members on other sites can all connect with each other, as well as with members of many other social networks."] = "Visite %s para obter uma lista de sites públicos onde você pode se cadastrar. Membros da friendica podem se conectar, mesmo que estejam em sites separados. Além disso você também pode se conectar com membros de várias outras redes sociais."; -$a->strings["To accept this invitation, please visit and register at %s or any other public Friendica website."] = "Para aceitar esse convite, por favor cadastre-se em %s ou qualquer outro site friendica público."; -$a->strings["Friendica sites all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks. See %s for a list of alternate Friendica sites you can join."] = "Os sites friendica estão todos interconectados para criar uma grande rede social com foco na privacidade e controlada por seus membros, que também podem se conectar com várias redes sociais tradicionais. Dê uma olhada em %s para uma lista de sites friendica onde você pode se cadastrar."; -$a->strings["Our apologies. This system is not currently configured to connect with other public sites or invite members."] = "Desculpe, mas esse sistema não está configurado para conectar-se com outros sites públicos nem permite convidar novos membros."; -$a->strings["Send invitations"] = "Enviar convites."; -$a->strings["Enter email addresses, one per line:"] = "Digite os endereços de e-mail, um por linha:"; -$a->strings["You are cordially invited to join me and other close friends on Friendica - and help us to create a better social web."] = "Você está convidado a se juntar a mim e outros amigos em friendica - e também nos ajudar a criar uma experiência social melhor na web."; -$a->strings["You will need to supply this invitation code: \$invite_code"] = "Você preciso informar este código de convite: \$invite_code"; -$a->strings["Once you have registered, please connect with me via my profile page at:"] = "Após você se registrar, por favor conecte-se comigo através da minha página de perfil em:"; -$a->strings["For more information about the Friendica project and why we feel it is important, please visit http://friendica.com"] = "Para mais informações sobre o projeto Friendica e porque nós achamos que ele é importante, por favor visite-nos em http://friendica.com."; -$a->strings["Access denied."] = "Acesso negado."; -$a->strings["No valid account found."] = "Não foi encontrada nenhuma conta válida."; -$a->strings["Password reset request issued. Check your email."] = "A solicitação para reiniciar sua senha foi encaminhada. Verifique seu e-mail."; -$a->strings["\n\t\tDear %1\$s,\n\t\t\tA request was recently received at \"%2\$s\" to reset your account\n\t\tpassword. In order to confirm this request, please select the verification link\n\t\tbelow or paste it into your web browser address bar.\n\n\t\tIf you did NOT request this change, please DO NOT follow the link\n\t\tprovided and ignore and/or delete this email.\n\n\t\tYour password will not be changed unless we can verify that you\n\t\tissued this request."] = "\n\t\tPrezado %1\$s,\n\t\t\tUma solicitação foi recebida recentemente em \"%2\$s\" para redefinir a\n\t\tsenha da sua conta. Para confirmar este pedido, por favor selecione o link de confirmação\n\t\tabaixo ou copie e cole-o na barra de endereço do seu navegador.\n\n\t\tSe NÃO foi você que solicitou esta alteração por favor, NÃO clique no link\n\t\tfornecido e ignore e/ou apague este e-mail.\n\n\t\tSua senha não será alterada a menos que possamos verificar que foi você que\n\t\temitiu esta solicitação."; -$a->strings["\n\t\tFollow this link to verify your identity:\n\n\t\t%1\$s\n\n\t\tYou will then receive a follow-up message containing the new password.\n\t\tYou may change that password from your account settings page after logging in.\n\n\t\tThe login details are as follows:\n\n\t\tSite Location:\t%2\$s\n\t\tLogin Name:\t%3\$s"] = "\n\t\tSiga este link para verificar sua identidade:\n\n\t\t%1\$s\n\n\t\tVocê então receberá uma mensagem de continuidade contendo a nova senha.\n\t\tVocê pode alterar sua senha na sua página de configurações após efetuar seu login.\n\n\t\tOs dados de login são os seguintes:\n\n\t\tLocalização do Site:\t%2\$s\n\t\tNome de Login:\t%3\$s"; -$a->strings["Password reset requested at %s"] = "Foi feita uma solicitação de reiniciação da senha em %s"; -$a->strings["Request could not be verified. (You may have previously submitted it.) Password reset failed."] = "Não foi possível verificar a solicitação (você pode tê-la submetido anteriormente). A senha não foi reiniciada."; -$a->strings["Your password has been reset as requested."] = "Sua senha foi reiniciada, conforme solicitado."; -$a->strings["Your new password is"] = "Sua nova senha é"; -$a->strings["Save or copy your new password - and then"] = "Grave ou copie a sua nova senha e, então"; -$a->strings["click here to login"] = "clique aqui para entrar"; -$a->strings["Your password may be changed from the Settings page after successful login."] = "Sua senha pode ser alterada na página de Configurações após você entrar em seu perfil."; -$a->strings["\n\t\t\t\tDear %1\$s,\n\t\t\t\t\tYour password has been changed as requested. Please retain this\n\t\t\t\tinformation for your records (or change your password immediately to\n\t\t\t\tsomething that you will remember).\n\t\t\t"] = "\n\t\t\t\tCaro %1\$s,\n\t\t\t\t\tSua senha foi alterada conforme solicitado. Por favor, guarde essas\n\t\t\t\tinformações para seus registros (ou altere a sua senha imediatamente para\n\t\t\t\talgo que você se lembrará).\n\t\t\t"; -$a->strings["\n\t\t\t\tYour login details are as follows:\n\n\t\t\t\tSite Location:\t%1\$s\n\t\t\t\tLogin Name:\t%2\$s\n\t\t\t\tPassword:\t%3\$s\n\n\t\t\t\tYou may change that password from your account settings page after logging in.\n\t\t\t"] = "\n\t\t\t\tOs seus dados de login são os seguintes:\n\n\t\t\t\tLocalização do Site:\t%1\$s\n\t\t\t\tNome de Login:\t%2\$s\n\t\t\t\tSenha:\t%3\$s\n\n\t\t\t\tVocê pode alterar esta senha na sua página de configurações depois que efetuar o seu login.\n\t\t\t"; -$a->strings["Your password has been changed at %s"] = "Sua senha foi modifica às %s"; -$a->strings["Forgot your Password?"] = "Esqueceu a sua senha?"; -$a->strings["Enter your email address and submit to have your password reset. Then check your email for further instructions."] = "Digite o seu endereço de e-mail e clique em 'Reiniciar' para prosseguir com a reiniciação da sua senha. Após isso, verifique seu e-mail para mais instruções."; -$a->strings["Nickname or Email: "] = "Identificação ou e-mail: "; -$a->strings["Reset"] = "Reiniciar"; -$a->strings["Source (bbcode) text:"] = "Texto fonte (bbcode):"; -$a->strings["Source (Diaspora) text to convert to BBcode:"] = "Texto fonte (Diaspora) a converter para BBcode:"; -$a->strings["Source input: "] = "Entrada fonte:"; -$a->strings["bb2html (raw HTML): "] = "bb2html (HTML puro):"; -$a->strings["bb2html: "] = "bb2html: "; -$a->strings["bb2html2bb: "] = "bb2html2bb: "; -$a->strings["bb2md: "] = "bb2md: "; -$a->strings["bb2md2html: "] = "bb2md2html: "; -$a->strings["bb2dia2bb: "] = "bb2dia2bb: "; -$a->strings["bb2md2html2bb: "] = "bb2md2html2bb: "; -$a->strings["Source input (Diaspora format): "] = "Fonte de entrada (formato Diaspora):"; -$a->strings["diaspora2bb: "] = "diaspora2bb: "; -$a->strings["Tag removed"] = "A etiqueta foi removida"; -$a->strings["Remove Item Tag"] = "Remover a etiqueta do item"; -$a->strings["Select a tag to remove: "] = "Selecione uma etiqueta para remover: "; -$a->strings["Remove My Account"] = "Remover minha conta"; -$a->strings["This will completely remove your account. Once this has been done it is not recoverable."] = "Isso removerá completamente a sua conta. Uma vez feito isso, não será mais possível recuperá-la."; -$a->strings["Please enter your password for verification:"] = "Por favor, digite a sua senha para verificação:"; -$a->strings["Invalid profile identifier."] = "Identificador de perfil inválido."; -$a->strings["Profile Visibility Editor"] = "Editor de visibilidade do perfil"; -$a->strings["Visible To"] = "Visível para"; -$a->strings["All Contacts (with secure profile access)"] = "Todos os contatos (com acesso a perfil seguro)"; -$a->strings["Profile Match"] = "Correspondência de perfil"; -$a->strings["No keywords to match. Please add keywords to your default profile."] = "Não foi encontrada nenhuma palavra-chave associada a você. Por favor, adicione algumas ao seu perfil padrão."; -$a->strings["is interested in:"] = "se interessa por:"; -$a->strings["Event title and start time are required."] = "O título do evento e a hora de início são obrigatórios."; -$a->strings["l, F j"] = "l, F j"; -$a->strings["Edit event"] = "Editar o evento"; -$a->strings["Create New Event"] = "Criar um novo evento"; -$a->strings["Previous"] = "Anterior"; -$a->strings["Next"] = "Próximo"; -$a->strings["hour:minute"] = "hora:minuto"; -$a->strings["Event details"] = "Detalhes do evento"; -$a->strings["Format is %s %s. Starting date and Title are required."] = "O formato é %s %s. O título e a data de início são obrigatórios."; -$a->strings["Event Starts:"] = "Início do evento:"; -$a->strings["Required"] = "Obrigatório"; -$a->strings["Finish date/time is not known or not relevant"] = "A data/hora de término não é conhecida ou não é relevante"; -$a->strings["Event Finishes:"] = "Término do evento:"; -$a->strings["Adjust for viewer timezone"] = "Ajustar para o fuso horário do visualizador"; -$a->strings["Description:"] = "Descrição:"; -$a->strings["Title:"] = "Título:"; -$a->strings["Share this event"] = "Compartilhar este evento"; -$a->strings["{0} wants to be your friend"] = "{0} deseja ser seu amigo"; -$a->strings["{0} sent you a message"] = "{0} lhe enviou uma mensagem"; -$a->strings["{0} requested registration"] = "{0} solicitou registro"; -$a->strings["{0} commented %s's post"] = "{0} comentou a publicação de %s"; -$a->strings["{0} liked %s's post"] = "{0} gostou da publicação de %s"; -$a->strings["{0} disliked %s's post"] = "{0} desgostou da publicação de %s"; -$a->strings["{0} is now friends with %s"] = "{0} agora é amigo de %s"; -$a->strings["{0} posted"] = "{0} publicou"; -$a->strings["{0} tagged %s's post with #%s"] = "{0} etiquetou a publicação de %s com #%s"; -$a->strings["{0} mentioned you in a post"] = "{0} mencionou você em uma publicação"; -$a->strings["Mood"] = "Humor"; -$a->strings["Set your current mood and tell your friends"] = "Defina o seu humor e conte aos seus amigos"; -$a->strings["No results."] = "Nenhum resultado."; -$a->strings["Unable to locate contact information."] = "Não foi possível localizar informação do contato."; -$a->strings["Do you really want to delete this message?"] = "Você realmente deseja deletar essa mensagem?"; -$a->strings["Message deleted."] = "A mensagem foi excluída."; -$a->strings["Conversation removed."] = "A conversa foi removida."; -$a->strings["No messages."] = "Nenhuma mensagem."; -$a->strings["Unknown sender - %s"] = "Remetente desconhecido - %s"; -$a->strings["You and %s"] = "Você e %s"; -$a->strings["%s and You"] = "%s e você"; -$a->strings["Delete conversation"] = "Excluir conversa"; -$a->strings["D, d M Y - g:i A"] = "D, d M Y - g:i A"; -$a->strings["%d message"] = array( - 0 => "%d mensagem", - 1 => "%d mensagens", -); -$a->strings["Message not available."] = "A mensagem não está disponível."; -$a->strings["Delete message"] = "Excluir a mensagem"; -$a->strings["No secure communications available. You may be able to respond from the sender's profile page."] = "Não foi encontrada nenhuma comunicação segura. Você pode ser capaz de responder a partir da página de perfil do remetente."; -$a->strings["Send Reply"] = "Enviar resposta"; -$a->strings["Not available."] = "Não disponível."; +$a->strings["Could not access contact record."] = "Não foi possível acessar o registro do contato."; +$a->strings["Could not locate selected profile."] = "Não foi possível localizar o perfil selecionado."; +$a->strings["Contact updated."] = "O contato foi atualizado."; +$a->strings["Contact has been blocked"] = "O contato foi bloqueado"; +$a->strings["Contact has been unblocked"] = "O contato foi desbloqueado"; +$a->strings["Contact has been ignored"] = "O contato foi ignorado"; +$a->strings["Contact has been unignored"] = "O contato deixou de ser ignorado"; +$a->strings["Contact has been archived"] = "O contato foi arquivado"; +$a->strings["Contact has been unarchived"] = "O contato foi desarquivado"; +$a->strings["Drop contact"] = ""; +$a->strings["Do you really want to delete this contact?"] = "Você realmente deseja deletar esse contato?"; +$a->strings["Contact has been removed."] = "O contato foi removido."; +$a->strings["You are mutual friends with %s"] = "Você tem uma amizade mútua com %s"; +$a->strings["You are sharing with %s"] = "Você está compartilhando com %s"; +$a->strings["%s is sharing with you"] = "%s está compartilhando com você"; +$a->strings["Private communications are not available for this contact."] = "As comunicações privadas não estão disponíveis para este contato."; +$a->strings["(Update was successful)"] = "(A atualização foi bem sucedida)"; +$a->strings["(Update was not successful)"] = "(A atualização não foi bem sucedida)"; +$a->strings["Suggest friends"] = "Sugerir amigos"; +$a->strings["Network type: %s"] = "Tipo de rede: %s"; +$a->strings["Communications lost with this contact!"] = "As comunicações com esse contato foram perdidas!"; +$a->strings["Fetch further information for feeds"] = "Pega mais informações para feeds"; +$a->strings["Fetch information"] = "Buscar informações"; +$a->strings["Fetch information and keywords"] = "Buscar informação e palavras-chave"; +$a->strings["Contact"] = ""; +$a->strings["Profile Visibility"] = "Visibilidade do perfil"; +$a->strings["Please choose the profile you would like to display to %s when viewing your profile securely."] = "Por favor, selecione o perfil que você gostaria de exibir para %s quando estiver visualizando seu perfil de modo seguro."; +$a->strings["Contact Information / Notes"] = "Informações sobre o contato / Anotações"; +$a->strings["Edit contact notes"] = "Editar as anotações do contato"; +$a->strings["Block/Unblock contact"] = "Bloquear/desbloquear o contato"; +$a->strings["Ignore contact"] = "Ignorar o contato"; +$a->strings["Repair URL settings"] = "Reparar as definições de URL"; +$a->strings["View conversations"] = "Ver as conversas"; +$a->strings["Last update:"] = "Última atualização:"; +$a->strings["Update public posts"] = "Atualizar publicações públicas"; +$a->strings["Update now"] = "Atualizar agora"; +$a->strings["Unignore"] = "Deixar de ignorar"; +$a->strings["Ignore"] = "Ignorar"; +$a->strings["Currently blocked"] = "Atualmente bloqueado"; +$a->strings["Currently ignored"] = "Atualmente ignorado"; +$a->strings["Currently archived"] = "Atualmente arquivado"; +$a->strings["Hide this contact from others"] = "Ocultar este contato dos outros"; +$a->strings["Replies/likes to your public posts may still be visible"] = "Respostas/gostadas associados às suas publicações ainda podem estar visíveis"; +$a->strings["Notification for new posts"] = "Notificações para novas publicações"; +$a->strings["Send a notification of every new post of this contact"] = "Envie uma notificação para todos as novas publicações deste contato"; +$a->strings["Blacklisted keywords"] = "Palavras-chave na Lista Negra"; +$a->strings["Comma separated list of keywords that should not be converted to hashtags, when \"Fetch information and keywords\" is selected"] = "Lista de palavras-chave separadas por vírgulas que não devem ser convertidas para hashtags, quando \"Buscar informações e palavras-chave\" for selecionado."; +$a->strings["Actions"] = ""; +$a->strings["Contact Settings"] = ""; +$a->strings["Suggestions"] = "Sugestões"; +$a->strings["Suggest potential friends"] = "Sugerir amigos em potencial"; +$a->strings["Show all contacts"] = "Exibe todos os contatos"; +$a->strings["Unblocked"] = "Desbloquear"; +$a->strings["Only show unblocked contacts"] = "Exibe somente contatos desbloqueados"; +$a->strings["Blocked"] = "Bloqueado"; +$a->strings["Only show blocked contacts"] = "Exibe somente contatos bloqueados"; +$a->strings["Ignored"] = "Ignorados"; +$a->strings["Only show ignored contacts"] = "Exibe somente contatos ignorados"; +$a->strings["Archived"] = "Arquivados"; +$a->strings["Only show archived contacts"] = "Exibe somente contatos arquivados"; +$a->strings["Hidden"] = "Ocultos"; +$a->strings["Only show hidden contacts"] = "Exibe somente contatos ocultos"; +$a->strings["Search your contacts"] = "Pesquisar seus contatos"; +$a->strings["Update"] = "Atualizar"; +$a->strings["Archive"] = "Arquivar"; +$a->strings["Unarchive"] = "Desarquivar"; +$a->strings["Batch Actions"] = ""; +$a->strings["View all contacts"] = "Ver todos os contatos"; +$a->strings["View all common friends"] = ""; +$a->strings["Advanced Contact Settings"] = "Configurações avançadas do contato"; +$a->strings["Mutual Friendship"] = "Amizade mútua"; +$a->strings["is a fan of yours"] = "é um fã seu"; +$a->strings["you are a fan of"] = "você é um fã de"; +$a->strings["Toggle Blocked status"] = "Alternar o status de bloqueio"; +$a->strings["Toggle Ignored status"] = "Alternar o status de ignorado"; +$a->strings["Toggle Archive status"] = "Alternar o status de arquivamento"; +$a->strings["Delete contact"] = "Excluir o contato"; $a->strings["Profile not found."] = "O perfil não foi encontrado."; -$a->strings["Profile deleted."] = "O perfil foi excluído."; -$a->strings["Profile-"] = "Perfil-"; -$a->strings["New profile created."] = "O novo perfil foi criado."; -$a->strings["Profile unavailable to clone."] = "O perfil não está disponível para clonagem."; -$a->strings["Profile Name is required."] = "É necessário informar o nome do perfil."; -$a->strings["Marital Status"] = "Situação amorosa"; -$a->strings["Romantic Partner"] = "Parceiro romântico"; -$a->strings["Likes"] = "Gosta de"; -$a->strings["Dislikes"] = "Não gosta de"; -$a->strings["Work/Employment"] = "Trabalho/emprego"; -$a->strings["Religion"] = "Religião"; -$a->strings["Political Views"] = "Posicionamento político"; -$a->strings["Gender"] = "Gênero"; -$a->strings["Sexual Preference"] = "Preferência sexual"; -$a->strings["Homepage"] = "Página Principal"; -$a->strings["Interests"] = "Interesses"; -$a->strings["Address"] = "Endereço"; -$a->strings["Location"] = "Localização"; -$a->strings["Profile updated."] = "O perfil foi atualizado."; -$a->strings[" and "] = " e "; -$a->strings["public profile"] = "perfil público"; -$a->strings["%1\$s changed %2\$s to “%3\$s”"] = "%1\$s mudou %2\$s para “%3\$s”"; -$a->strings[" - Visit %1\$s's %2\$s"] = " - Visite %2\$s de %1\$s"; -$a->strings["%1\$s has an updated %2\$s, changing %3\$s."] = "%1\$s foi atualizado %2\$s, mudando %3\$s."; -$a->strings["Hide contacts and friends:"] = "Esconder contatos e amigos:"; -$a->strings["Hide your contact/friend list from viewers of this profile?"] = "Ocultar sua lista de contatos/amigos dos visitantes no seu perfil?"; -$a->strings["Edit Profile Details"] = "Editar os detalhes do perfil"; -$a->strings["Change Profile Photo"] = "Mudar Foto do Perfil"; -$a->strings["View this profile"] = "Ver este perfil"; -$a->strings["Create a new profile using these settings"] = "Criar um novo perfil usando estas configurações"; -$a->strings["Clone this profile"] = "Clonar este perfil"; -$a->strings["Delete this profile"] = "Excluir este perfil"; -$a->strings["Basic information"] = "Informação básica"; -$a->strings["Profile picture"] = "Foto do perfil"; -$a->strings["Preferences"] = "Preferências"; -$a->strings["Status information"] = "Informação de Status"; -$a->strings["Additional information"] = "Informações adicionais"; -$a->strings["Upload Profile Photo"] = "Enviar foto do perfil"; -$a->strings["Profile Name:"] = "Nome do perfil:"; -$a->strings["Your Full Name:"] = "Seu nome completo:"; -$a->strings["Title/Description:"] = "Título/Descrição:"; -$a->strings["Your Gender:"] = "Seu gênero:"; -$a->strings["Birthday (%s):"] = "Aniversário (%s):"; -$a->strings["Street Address:"] = "Endereço:"; -$a->strings["Locality/City:"] = "Localidade/Cidade:"; -$a->strings["Postal/Zip Code:"] = "CEP:"; -$a->strings["Country:"] = "País:"; -$a->strings["Region/State:"] = "Região/Estado:"; -$a->strings[" Marital Status:"] = " Situação amorosa:"; -$a->strings["Who: (if applicable)"] = "Quem: (se pertinente)"; -$a->strings["Examples: cathy123, Cathy Williams, cathy@example.com"] = "Exemplos: fulano123, Fulano de Tal, fulano@exemplo.com"; -$a->strings["Since [date]:"] = "Desde [data]:"; -$a->strings["Homepage URL:"] = "Endereço do site web:"; -$a->strings["Religious Views:"] = "Orientação religiosa:"; -$a->strings["Public Keywords:"] = "Palavras-chave públicas:"; -$a->strings["Private Keywords:"] = "Palavras-chave privadas:"; -$a->strings["Example: fishing photography software"] = "Exemplo: pesca fotografia software"; -$a->strings["(Used for suggesting potential friends, can be seen by others)"] = "(Usado para sugerir amigos em potencial, pode ser visto pelos outros)"; -$a->strings["(Used for searching profiles, never shown to others)"] = "(Usado na pesquisa de perfis, nunca é exibido para os outros)"; -$a->strings["Tell us about yourself..."] = "Fale um pouco sobre você..."; -$a->strings["Hobbies/Interests"] = "Passatempos/Interesses"; -$a->strings["Contact information and Social Networks"] = "Informações de contato e redes sociais"; -$a->strings["Musical interests"] = "Preferências musicais"; -$a->strings["Books, literature"] = "Livros, literatura"; -$a->strings["Television"] = "Televisão"; -$a->strings["Film/dance/culture/entertainment"] = "Filme/dança/cultura/entretenimento"; -$a->strings["Love/romance"] = "Amor/romance"; -$a->strings["Work/employment"] = "Trabalho/emprego"; -$a->strings["School/education"] = "Escola/educação"; -$a->strings["This is your public profile.
      It may be visible to anybody using the internet."] = "Este é o seu perfil público.
      Ele pode estar visível para qualquer um que acesse a Internet."; -$a->strings["Age: "] = "Idade: "; -$a->strings["Edit/Manage Profiles"] = "Editar/Gerenciar perfis"; -$a->strings["Friendica Communications Server - Setup"] = "Servidor de Comunicações Friendica - Configuração"; -$a->strings["Could not connect to database."] = "Não foi possível conectar ao banco de dados."; -$a->strings["Could not create table."] = "Não foi possível criar tabela."; -$a->strings["Your Friendica site database has been installed."] = "O banco de dados do seu site Friendica foi instalado."; -$a->strings["You may need to import the file \"database.sql\" manually using phpmyadmin or mysql."] = "Você provavelmente precisará importar o arquivo \"database.sql\" manualmente, usando o phpmyadmin ou o mysql."; -$a->strings["Please see the file \"INSTALL.txt\"."] = "Por favor, dê uma olhada no arquivo \"INSTALL.TXT\"."; -$a->strings["System check"] = "Checagem do sistema"; -$a->strings["Check again"] = "Checar novamente"; -$a->strings["Database connection"] = "Conexão de banco de dados"; -$a->strings["In order to install Friendica we need to know how to connect to your database."] = "À fim de instalar o Friendica, você precisa saber como se conectar ao seu banco de dados."; -$a->strings["Please contact your hosting provider or site administrator if you have questions about these settings."] = "Por favor, entre em contato com a sua hospedagem ou com o administrador do site caso você tenha alguma dúvida em relação a essas configurações."; -$a->strings["The database you specify below should already exist. If it does not, please create it before continuing."] = "O banco de dados que você especificou abaixo já deve existir. Caso contrário, por favor crie-o antes de continuar."; -$a->strings["Database Server Name"] = "Nome do servidor de banco de dados"; -$a->strings["Database Login Name"] = "Nome do usuário do banco de dados"; -$a->strings["Database Login Password"] = "Senha do usuário do banco de dados"; -$a->strings["Database Name"] = "Nome do banco de dados"; -$a->strings["Site administrator email address"] = "Endereço de email do administrador do site"; -$a->strings["Your account email address must match this in order to use the web admin panel."] = "O endereço de email da sua conta deve ser igual a este para que você possa utilizar o painel de administração web."; -$a->strings["Please select a default timezone for your website"] = "Por favor, selecione o fuso horário padrão para o seu site"; -$a->strings["Site settings"] = "Configurações do site"; -$a->strings["Could not find a command line version of PHP in the web server PATH."] = "Não foi possível encontrar uma versão de linha de comando do PHP nos caminhos do seu servidor web."; -$a->strings["If you don't have a command line version of PHP installed on server, you will not be able to run background polling via cron. See 'Activating scheduled tasks'"] = "Caso você não tenha uma versão de linha de comando do PHP instalado no seu servidor, você não será capaz de executar a captação em segundo plano. Dê uma olhada em 'Activating scheduled tasks'"; -$a->strings["PHP executable path"] = "Caminho para o executável do PhP"; -$a->strings["Enter full path to php executable. You can leave this blank to continue the installation."] = "Digite o caminho completo do executável PHP. Você pode deixar isso em branco para continuar com a instalação."; -$a->strings["Command line PHP"] = "PHP em linha de comando"; -$a->strings["PHP executable is not the php cli binary (could be cgi-fgci version)"] = "O executável do PHP não é o binário do php cli (could be cgi-fcgi version)"; -$a->strings["Found PHP version: "] = "Encontrado PHP versão:"; -$a->strings["PHP cli binary"] = "Binário cli do PHP"; -$a->strings["The command line version of PHP on your system does not have \"register_argc_argv\" enabled."] = "\"register_argc_argv\" não está habilitado na versão de linha de comando do PHP no seu sistema."; -$a->strings["This is required for message delivery to work."] = "Isto é necessário para o funcionamento do envio de mensagens."; -$a->strings["PHP register_argc_argv"] = "PHP register_argc_argv"; -$a->strings["Error: the \"openssl_pkey_new\" function on this system is not able to generate encryption keys"] = "Erro: a função \"openssl_pkey_new\" no seu sistema não é capaz de gerar as chaves de criptografia"; -$a->strings["If running under Windows, please see \"http://www.php.net/manual/en/openssl.installation.php\"."] = "Se estiver usando o Windows, por favor dê uma olhada em \"http://www.php.net/manual/en/openssl.installation.php\"."; -$a->strings["Generate encryption keys"] = "Gerar chaves de encriptação"; -$a->strings["libCurl PHP module"] = "Módulo PHP libCurl"; -$a->strings["GD graphics PHP module"] = "Módulo PHP GD graphics"; -$a->strings["OpenSSL PHP module"] = "Módulo PHP OpenSSL"; -$a->strings["mysqli PHP module"] = "Módulo PHP mysqli"; -$a->strings["mb_string PHP module"] = "Módulo PHP mb_string "; -$a->strings["Apache mod_rewrite module"] = "Módulo mod_rewrite do Apache"; -$a->strings["Error: Apache webserver mod-rewrite module is required but not installed."] = "Erro: o módulo mod-rewrite do Apache é necessário, mas não está instalado."; -$a->strings["Error: libCURL PHP module required but not installed."] = "Erro: o módulo libCURL do PHP é necessário, mas não está instalado."; -$a->strings["Error: GD graphics PHP module with JPEG support required but not installed."] = "Erro: o módulo gráfico GD, com suporte a JPEG, do PHP é necessário, mas não está instalado."; -$a->strings["Error: openssl PHP module required but not installed."] = "Erro: o módulo openssl do PHP é necessário, mas não está instalado."; -$a->strings["Error: mysqli PHP module required but not installed."] = "Erro: o módulo mysqli do PHP é necessário, mas não está instalado."; -$a->strings["Error: mb_string PHP module required but not installed."] = "Erro: o módulo mb_string PHP é necessário, mas não está instalado."; -$a->strings["The web installer needs to be able to create a file called \".htconfig.php\" in the top folder of your web server and it is unable to do so."] = "O instalador web precisa criar um arquivo chamado \".htconfig.php\" na pasta raiz da instalação e não está conseguindo."; -$a->strings["This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can."] = "Geralmente isso está relacionado às definições de permissão, uma vez que o servidor web pode não estar conseguindo escrever os arquivos nesta pasta."; -$a->strings["At the end of this procedure, we will give you a text to save in a file named .htconfig.php in your Friendica top folder."] = "Ao final desse procedimento, será fornecido um texto que deverá ser salvo em um arquivo de nome. htconfig.php, na pasta raiz da instalação do seu Friendica."; -$a->strings["You can alternatively skip this procedure and perform a manual installation. Please see the file \"INSTALL.txt\" for instructions."] = "Você também pode pular esse procedimento e executar uma instalação manual. Por favor, dê uma olhada no arquivo \"INSTALL.TXT\" para instruções."; -$a->strings[".htconfig.php is writable"] = ".htconfig.php tem permissão de escrita"; -$a->strings["Friendica uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering."] = "Friendica usa o engine de template Smarty3 para renderizar suas web views. Smarty3 compila templates para PHP para acelerar a renderização."; -$a->strings["In order to store these compiled templates, the web server needs to have write access to the directory view/smarty3/ under the Friendica top level folder."] = "Para guardar os templates compilados, o servidor web necessita de permissão de escrita no diretório view/smarty3/ no diretório raíz do Friendica."; -$a->strings["Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder."] = "Favor se certificar que o usuário sob o qual o servidor web roda (ex: www-data) tenha permissão de escrita nesse diretório."; -$a->strings["Note: as a security measure, you should give the web server write access to view/smarty3/ only--not the template files (.tpl) that it contains."] = "Nota: como uma medida de segurança, você deve fornecer ao servidor web permissão de escrita em view/smarty3/ somente--não aos arquivos de template (.tpl) que ele contém."; -$a->strings["view/smarty3 is writable"] = "view/smarty3 tem escrita permitida"; -$a->strings["Url rewrite in .htaccess is not working. Check your server configuration."] = "A reescrita de URLs definida no .htaccess não está funcionando. Por favor, verifique as configurações do seu servidor."; -$a->strings["Url rewrite is working"] = "A reescrita de URLs está funcionando"; -$a->strings["The database configuration file \".htconfig.php\" could not be written. Please use the enclosed text to create a configuration file in your web server root."] = "Não foi possível gravar o arquivo de configuração \".htconfig.php\". Por favor, use o texto incluso para criar um arquivo de configuração na raiz da instalação do Friendika em seu servidor web."; -$a->strings["

      What next

      "] = "

      A seguir

      "; -$a->strings["IMPORTANT: You will need to [manually] setup a scheduled task for the poller."] = "IMPORTANTE: Você deve configurar [manualmente] uma tarefa agendada para o captador."; -$a->strings["Help:"] = "Ajuda:"; -$a->strings["Contact settings applied."] = "As configurações do contato foram aplicadas."; -$a->strings["Contact update failed."] = "Não foi possível atualizar o contato."; -$a->strings["Repair Contact Settings"] = "Corrigir configurações do contato"; -$a->strings["WARNING: This is highly advanced and if you enter incorrect information your communications with this contact may stop working."] = "ATENÇÃO: Isso é muito avançado, se você digitar informações incorretas, suas comunicações com esse contato pode parar de funcionar."; -$a->strings["Please use your browser 'Back' button now if you are uncertain what to do on this page."] = "Por favor, use o botão 'Voltar' do seu navegador agora, caso você não tenha certeza do que está fazendo."; -$a->strings["Return to contact editor"] = "Voltar ao editor de contatos"; -$a->strings["No mirroring"] = "Nenhum espelhamento"; -$a->strings["Mirror as forwarded posting"] = "Espelhar como postagem encaminhada"; -$a->strings["Mirror as my own posting"] = "Espelhar como minha própria postagem"; -$a->strings["Account Nickname"] = "Identificação da conta"; -$a->strings["@Tagname - overrides Name/Nickname"] = "@Tagname - sobrescreve Nome/Identificação"; -$a->strings["Account URL"] = "URL da conta"; -$a->strings["Friend Request URL"] = "URL da requisição de amizade"; -$a->strings["Friend Confirm URL"] = "URL da confirmação de amizade"; -$a->strings["Notification Endpoint URL"] = "URL do ponto final da notificação"; -$a->strings["Poll/Feed URL"] = "URL do captador/fonte de notícias"; -$a->strings["New photo from this URL"] = "Nova imagem desta URL"; -$a->strings["Remote Self"] = "Auto remoto"; -$a->strings["Mirror postings from this contact"] = "Espelhar publicações deste contato"; -$a->strings["Mark this contact as remote_self, this will cause friendica to repost new entries from this contact."] = "Marcar este contato como auto remoto fará com que o friendica republique novas entradas deste usuário."; -$a->strings["Welcome to Friendica"] = "Bemvindo ao Friendica"; -$a->strings["New Member Checklist"] = "Dicas para os novos membros"; -$a->strings["We would like to offer some tips and links to help make your experience enjoyable. Click any item to visit the relevant page. A link to this page will be visible from your home page for two weeks after your initial registration and then will quietly disappear."] = "Gostaríamos de oferecer algumas dicas e links para ajudar a tornar a sua experiência agradável. Clique em qualquer item para visitar a página correspondente. Um link para essa página será visível em sua home page por duas semanas após o seu registro inicial e, então, desaparecerá discretamente."; -$a->strings["Getting Started"] = "Do Início"; -$a->strings["Friendica Walk-Through"] = "Passo-a-passo da friendica"; -$a->strings["On your Quick Start page - find a brief introduction to your profile and network tabs, make some new connections, and find some groups to join."] = "Na sua página Início Rápido - encontre uma introdução rápida ao seu perfil e abas da rede, faça algumas conexões novas, e encontre alguns grupos entrar."; -$a->strings["Go to Your Settings"] = "Ir para as suas configurações"; -$a->strings["On your Settings page - change your initial password. Also make a note of your Identity Address. This looks just like an email address - and will be useful in making friends on the free social web."] = "Em sua página Configurações - mude sua senha inicial. Também tome nota de seu Endereço de Identidade. Isso se parece com um endereço de e-mail - e será útil para se fazer amigos na rede social livre."; -$a->strings["Review the other settings, particularly the privacy settings. An unpublished directory listing is like having an unlisted phone number. In general, you should probably publish your listing - unless all of your friends and potential friends know exactly how to find you."] = "Revise as outras configurações, em particular as relacionadas a privacidade. Não estar listado no diretório é o equivalente a não ter o seu número na lista telefônica. Normalmente é interessante você estar listado - a não ser que os seu amigos atuais e potenciais saibam exatamente como encontrar você."; -$a->strings["Upload a profile photo if you have not done so already. Studies have shown that people with real photos of themselves are ten times more likely to make friends than people who do not."] = "Envie uma foto para o seu perfil, caso ainda não tenha feito isso. Estudos indicam que pessoas que publicam fotos reais delas mesmas têm 10 vezes mais chances de encontrar novos amigos do que as que não o fazem."; -$a->strings["Edit Your Profile"] = "Editar seu perfil"; -$a->strings["Edit your default profile to your liking. Review the settings for hiding your list of friends and hiding the profile from unknown visitors."] = "Edite o seu perfil padrão a seu gosto. Revise as configurações de ocultação da sua lista de amigos e do seu perfil de visitantes desconhecidos."; -$a->strings["Profile Keywords"] = "Palavras-chave do perfil"; -$a->strings["Set some public keywords for your default profile which describe your interests. We may be able to find other people with similar interests and suggest friendships."] = "Defina algumas palavras-chave públicas para o seu perfil padrão, que descrevam os seus interesses. Nós podemos encontrar outras pessoas com interesses similares e sugerir novas amizades."; -$a->strings["Connecting"] = "Conexões"; -$a->strings["Authorise the Facebook Connector if you currently have a Facebook account and we will (optionally) import all your Facebook friends and conversations."] = "Autorize o Conector com Facebook, caso você tenha uma conta lá e nós (opcionalmente) importaremos todos os seus amigos e conversas do Facebook."; -$a->strings["If this is your own personal server, installing the Facebook addon may ease your transition to the free social web."] = "Se esse é o seu servidor pessoal, instalar o complemento do Facebook talvez facilite a transição para a rede social livre."; -$a->strings["Importing Emails"] = "Importação de e-mails"; -$a->strings["Enter your email access information on your Connector Settings page if you wish to import and interact with friends or mailing lists from your email INBOX"] = "Forneça a informação de acesso ao seu e-mail na sua página de Configuração de Conector se você deseja importar e interagir com amigos ou listas de discussão da sua Caixa de Entrada de e-mail"; -$a->strings["Go to Your Contacts Page"] = "Ir para a sua página de contatos"; -$a->strings["Your Contacts page is your gateway to managing friendships and connecting with friends on other networks. Typically you enter their address or site URL in the Add New Contact dialog."] = "Sua página de contatos é sua rota para o gerenciamento de amizades e conexão com amigos em outras redes. Geralmente você fornece o endereço deles ou a URL do site na janela de diálogo Adicionar Novo Contato."; -$a->strings["Go to Your Site's Directory"] = "Ir para o diretório do seu site"; -$a->strings["The Directory page lets you find other people in this network or other federated sites. Look for a Connect or Follow link on their profile page. Provide your own Identity Address if requested."] = "A página de Diretório permite que você encontre outras pessoas nesta rede ou em outras redes federadas. Procure por um link Conectar ou Seguir no perfil que deseja acompanhar. Forneça o seu Endereço de Identidade próprio, se solicitado."; -$a->strings["Finding New People"] = "Pesquisar por novas pessoas"; -$a->strings["On the side panel of the Contacts page are several tools to find new friends. We can match people by interest, look up people by name or interest, and provide suggestions based on network relationships. On a brand new site, friend suggestions will usually begin to be populated within 24 hours."] = "No painel lateral da página de Contatos existem várias ferramentas para encontrar novos amigos. Você pode descobrir pessoas com os mesmos interesses, procurar por nomes ou interesses e fornecer sugestões baseadas nos relacionamentos da rede. Em um site completamente novo, as sugestões de amizades geralmente começam a ser populadas dentro de 24 horas."; -$a->strings["Group Your Contacts"] = "Agrupe seus contatos"; -$a->strings["Once you have made some friends, organize them into private conversation groups from the sidebar of your Contacts page and then you can interact with each group privately on your Network page."] = "Após fazer novas amizades, organize-as em grupos de conversa privados, a partir da barra lateral na sua página de Contatos. A partir daí, você poderá interagir com cada grupo privativamente, na sua página de Rede."; -$a->strings["Why Aren't My Posts Public?"] = "Por que as minhas publicações não são públicas?"; -$a->strings["Friendica respects your privacy. By default, your posts will only show up to people you've added as friends. For more information, see the help section from the link above."] = "A friendica respeita sua privacidade. Por padrão, suas publicações estarão visíveis apenas para as pessoas que você adicionou como amigos. Para mais informações, veja a página de ajuda, a partir do link acima."; -$a->strings["Getting Help"] = "Obtendo ajuda"; -$a->strings["Go to the Help Section"] = "Ir para a seção de ajuda"; -$a->strings["Our help pages may be consulted for detail on other program features and resources."] = "Nossas páginas de ajuda podem ser consultadas para mais detalhes sobre características e recursos do programa."; -$a->strings["Poke/Prod"] = "Cutucar/Incitar"; -$a->strings["poke, prod or do other things to somebody"] = "Cutuca, incita ou faz outras coisas com alguém"; -$a->strings["Recipient"] = "Destinatário"; -$a->strings["Choose what you wish to do to recipient"] = "Selecione o que você deseja fazer com o destinatário"; -$a->strings["Make this post private"] = "Fazer com que essa publicação se torne privada"; -$a->strings["Item has been removed."] = "O item foi removido."; -$a->strings["%1\$s is following %2\$s's %3\$s"] = "%1\$s está seguindo %2\$s's %3\$s"; -$a->strings["%1\$s welcomes %2\$s"] = "%1\$s dá as boas vinda à %2\$s"; $a->strings["This may occasionally happen if contact was requested by both persons and it has already been approved."] = "Isso pode acontecer eventualmente se o contato foi solicitado por ambas as pessoas e ele já tinha sido aprovado."; $a->strings["Response from remote site was not understood."] = "A resposta do site remoto não foi compreendida."; $a->strings["Unexpected response from remote site: "] = "Resposta inesperada do site remoto: "; @@ -1772,6 +1509,24 @@ $a->strings["The ID provided by your system is a duplicate on our system. It sho $a->strings["Unable to set your contact credentials on our system."] = "Não foi possível definir suas credenciais de contato no nosso sistema."; $a->strings["Unable to update your contact profile details on our system"] = "Não foi possível atualizar os detalhes do seu perfil em nosso sistema."; $a->strings["%1\$s has joined %2\$s"] = "%1\$s se associou a %2\$s"; +$a->strings["People Search - %s"] = ""; +$a->strings["Forum Search - %s"] = ""; +$a->strings["Event can not end before it has started."] = "O evento não pode terminar antes de ter começado."; +$a->strings["Event title and start time are required."] = "O título do evento e a hora de início são obrigatórios."; +$a->strings["Create New Event"] = "Criar um novo evento"; +$a->strings["Event details"] = "Detalhes do evento"; +$a->strings["Starting date and Title are required."] = ""; +$a->strings["Event Starts:"] = "Início do evento:"; +$a->strings["Required"] = "Obrigatório"; +$a->strings["Finish date/time is not known or not relevant"] = "A data/hora de término não é conhecida ou não é relevante"; +$a->strings["Event Finishes:"] = "Término do evento:"; +$a->strings["Adjust for viewer timezone"] = "Ajustar para o fuso horário do visualizador"; +$a->strings["Description:"] = "Descrição:"; +$a->strings["Title:"] = "Título:"; +$a->strings["Share this event"] = "Compartilhar este evento"; +$a->strings["Friend suggestion sent."] = "A sugestão de amigo foi enviada"; +$a->strings["Suggest Friends"] = "Sugerir amigos"; +$a->strings["Suggest a friend for %s"] = "Sugerir um amigo para %s"; $a->strings["Unable to locate original post."] = "Não foi possível localizar a publicação original."; $a->strings["Empty post discarded."] = "A publicação em branco foi descartada."; $a->strings["System error. Post not saved."] = "Erro no sistema. A publicação não foi salva."; @@ -1779,6 +1534,13 @@ $a->strings["This message was sent to you by %s, a member of the Friendica socia $a->strings["You may visit them online at %s"] = "Você pode visitá-lo em %s"; $a->strings["Please contact the sender by replying to this post if you do not wish to receive these messages."] = "Por favor, entre em contato com o remetente respondendo a esta publicação, caso você não queira mais receber estas mensagens."; $a->strings["%s posted an update."] = "%s publicou uma atualização."; +$a->strings["Mood"] = "Humor"; +$a->strings["Set your current mood and tell your friends"] = "Defina o seu humor e conte aos seus amigos"; +$a->strings["Poke/Prod"] = "Cutucar/Incitar"; +$a->strings["poke, prod or do other things to somebody"] = "Cutuca, incita ou faz outras coisas com alguém"; +$a->strings["Recipient"] = "Destinatário"; +$a->strings["Choose what you wish to do to recipient"] = "Selecione o que você deseja fazer com o destinatário"; +$a->strings["Make this post private"] = "Fazer com que essa publicação se torne privada"; $a->strings["Image uploaded but image cropping failed."] = "A imagem foi enviada, mas não foi possível cortá-la."; $a->strings["Image size reduction [%s] failed."] = "Não foi possível reduzir o tamanho da imagem [%s]."; $a->strings["Shift-reload the page or clear browser cache if the new photo does not display immediately."] = "Recarregue a página pressionando a tecla Shift ou limpe o cache do navegador caso a nova foto não apareça imediatamente"; @@ -1786,21 +1548,483 @@ $a->strings["Unable to process image"] = "Não foi possível processar a imagem" $a->strings["Upload File:"] = "Enviar arquivo:"; $a->strings["Select a profile:"] = "Selecione um perfil:"; $a->strings["Upload"] = "Enviar"; +$a->strings["or"] = "ou"; $a->strings["skip this step"] = "pule esta etapa"; $a->strings["select a photo from your photo albums"] = "selecione uma foto de um álbum de fotos"; $a->strings["Crop Image"] = "Cortar a imagem"; $a->strings["Please adjust the image cropping for optimum viewing."] = "Por favor, ajuste o corte da imagem para a melhor visualização."; $a->strings["Done Editing"] = "Encerrar a edição"; $a->strings["Image uploaded successfully."] = "A imagem foi enviada com sucesso."; -$a->strings["Friends of %s"] = "Amigos de %s"; -$a->strings["No friends to display."] = "Nenhum amigo para exibir."; -$a->strings["Find on this site"] = "Pesquisar neste site"; -$a->strings["Site Directory"] = "Diretório do site"; -$a->strings["Gender: "] = "Gênero: "; -$a->strings["No entries (some entries may be hidden)."] = "Nenhuma entrada (algumas entradas podem estar ocultas)."; -$a->strings["Time Conversion"] = "Conversão de tempo"; -$a->strings["Friendica provides this service for sharing events with other networks and friends in unknown timezones."] = "Friendica provê esse serviço para compartilhar eventos com outras redes e amigos em fuso-horários desconhecidos."; -$a->strings["UTC time: %s"] = "Hora UTC: %s"; -$a->strings["Current timezone: %s"] = "Fuso horário atual: %s"; -$a->strings["Converted localtime: %s"] = "Horário local convertido: %s"; -$a->strings["Please select your timezone:"] = "Por favor, selecione seu fuso horário:"; +$a->strings["Profile deleted."] = "O perfil foi excluído."; +$a->strings["Profile-"] = "Perfil-"; +$a->strings["New profile created."] = "O novo perfil foi criado."; +$a->strings["Profile unavailable to clone."] = "O perfil não está disponível para clonagem."; +$a->strings["Profile Name is required."] = "É necessário informar o nome do perfil."; +$a->strings["Marital Status"] = "Situação amorosa"; +$a->strings["Romantic Partner"] = "Parceiro romântico"; +$a->strings["Work/Employment"] = "Trabalho/emprego"; +$a->strings["Religion"] = "Religião"; +$a->strings["Political Views"] = "Posicionamento político"; +$a->strings["Gender"] = "Gênero"; +$a->strings["Sexual Preference"] = "Preferência sexual"; +$a->strings["Homepage"] = "Página Principal"; +$a->strings["Interests"] = "Interesses"; +$a->strings["Address"] = "Endereço"; +$a->strings["Location"] = "Localização"; +$a->strings["Profile updated."] = "O perfil foi atualizado."; +$a->strings[" and "] = " e "; +$a->strings["public profile"] = "perfil público"; +$a->strings["%1\$s changed %2\$s to “%3\$s”"] = "%1\$s mudou %2\$s para “%3\$s”"; +$a->strings[" - Visit %1\$s's %2\$s"] = " - Visite %2\$s de %1\$s"; +$a->strings["%1\$s has an updated %2\$s, changing %3\$s."] = "%1\$s foi atualizado %2\$s, mudando %3\$s."; +$a->strings["Hide contacts and friends:"] = "Esconder contatos e amigos:"; +$a->strings["Hide your contact/friend list from viewers of this profile?"] = "Ocultar sua lista de contatos/amigos dos visitantes no seu perfil?"; +$a->strings["Show more profile fields:"] = ""; +$a->strings["Profile Actions"] = ""; +$a->strings["Edit Profile Details"] = "Editar os detalhes do perfil"; +$a->strings["Change Profile Photo"] = "Mudar Foto do Perfil"; +$a->strings["View this profile"] = "Ver este perfil"; +$a->strings["Create a new profile using these settings"] = "Criar um novo perfil usando estas configurações"; +$a->strings["Clone this profile"] = "Clonar este perfil"; +$a->strings["Delete this profile"] = "Excluir este perfil"; +$a->strings["Basic information"] = "Informação básica"; +$a->strings["Profile picture"] = "Foto do perfil"; +$a->strings["Preferences"] = "Preferências"; +$a->strings["Status information"] = "Informação de Status"; +$a->strings["Additional information"] = "Informações adicionais"; +$a->strings["Relation"] = ""; +$a->strings["Your Gender:"] = "Seu gênero:"; +$a->strings[" Marital Status:"] = " Situação amorosa:"; +$a->strings["Example: fishing photography software"] = "Exemplo: pesca fotografia software"; +$a->strings["Profile Name:"] = "Nome do perfil:"; +$a->strings["This is your public profile.
      It may be visible to anybody using the internet."] = "Este é o seu perfil público.
      Ele pode estar visível para qualquer um que acesse a Internet."; +$a->strings["Your Full Name:"] = "Seu nome completo:"; +$a->strings["Title/Description:"] = "Título/Descrição:"; +$a->strings["Street Address:"] = "Endereço:"; +$a->strings["Locality/City:"] = "Localidade/Cidade:"; +$a->strings["Region/State:"] = "Região/Estado:"; +$a->strings["Postal/Zip Code:"] = "CEP:"; +$a->strings["Country:"] = "País:"; +$a->strings["Who: (if applicable)"] = "Quem: (se pertinente)"; +$a->strings["Examples: cathy123, Cathy Williams, cathy@example.com"] = "Exemplos: fulano123, Fulano de Tal, fulano@exemplo.com"; +$a->strings["Since [date]:"] = "Desde [data]:"; +$a->strings["Tell us about yourself..."] = "Fale um pouco sobre você..."; +$a->strings["Homepage URL:"] = "Endereço do site web:"; +$a->strings["Religious Views:"] = "Orientação religiosa:"; +$a->strings["Public Keywords:"] = "Palavras-chave públicas:"; +$a->strings["(Used for suggesting potential friends, can be seen by others)"] = "(Usado para sugerir amigos em potencial, pode ser visto pelos outros)"; +$a->strings["Private Keywords:"] = "Palavras-chave privadas:"; +$a->strings["(Used for searching profiles, never shown to others)"] = "(Usado na pesquisa de perfis, nunca é exibido para os outros)"; +$a->strings["Musical interests"] = "Preferências musicais"; +$a->strings["Books, literature"] = "Livros, literatura"; +$a->strings["Television"] = "Televisão"; +$a->strings["Film/dance/culture/entertainment"] = "Filme/dança/cultura/entretenimento"; +$a->strings["Hobbies/Interests"] = "Passatempos/Interesses"; +$a->strings["Love/romance"] = "Amor/romance"; +$a->strings["Work/employment"] = "Trabalho/emprego"; +$a->strings["School/education"] = "Escola/educação"; +$a->strings["Contact information and Social Networks"] = "Informações de contato e redes sociais"; +$a->strings["Edit/Manage Profiles"] = "Editar/Gerenciar perfis"; +$a->strings["Registration successful. Please check your email for further instructions."] = "O registro foi bem sucedido. Por favor, verifique seu e-mail para maiores informações."; +$a->strings["Failed to send email message. Here your accout details:
      login: %s
      password: %s

      You can change your password after login."] = "Falha ao enviar mensagem de email. Estes são os dados da sua conta:
      login: %s
      senha: %s

      Você pode alterar sua senha após fazer o login."; +$a->strings["Registration successful."] = ""; +$a->strings["Your registration can not be processed."] = "Não foi possível processar o seu registro."; +$a->strings["Your registration is pending approval by the site owner."] = "A aprovação do seu registro está pendente junto ao administrador do site."; +$a->strings["You may (optionally) fill in this form via OpenID by supplying your OpenID and clicking 'Register'."] = "Você pode (opcionalmente) preencher este formulário via OpenID, fornecendo seu OpenID e clicando em 'Registrar'."; +$a->strings["If you are not familiar with OpenID, please leave that field blank and fill in the rest of the items."] = "Se você não está familiarizado com o OpenID, por favor, deixe esse campo em branco e preencha os outros itens."; +$a->strings["Your OpenID (optional): "] = "Seu OpenID (opcional): "; +$a->strings["Include your profile in member directory?"] = "Incluir o seu perfil no diretório de membros?"; +$a->strings["Membership on this site is by invitation only."] = "A associação a este site só pode ser feita mediante convite."; +$a->strings["Your invitation ID: "] = "A ID do seu convite: "; +$a->strings["Your Full Name (e.g. Joe Smith, real or real-looking): "] = ""; +$a->strings["Your Email Address: "] = "Seu endereço de e-mail: "; +$a->strings["New Password:"] = "Nova senha:"; +$a->strings["Leave empty for an auto generated password."] = ""; +$a->strings["Confirm:"] = "Confirme:"; +$a->strings["Choose a profile nickname. This must begin with a text character. Your profile address on this site will then be 'nickname@\$sitename'."] = "Selecione uma identificação para o perfil. Ela deve começar com um caractere alfabético. O endereço do seu perfil neste site será 'identificação@\$sitename'"; +$a->strings["Choose a nickname: "] = "Escolha uma identificação: "; +$a->strings["Import your profile to this friendica instance"] = "Importa seu perfil desta instância do friendica"; +$a->strings["Account approved."] = "A conta foi aprovada."; +$a->strings["Registration revoked for %s"] = "O registro de %s foi revogado"; +$a->strings["Please login."] = "Por favor, autentique-se."; +$a->strings["everybody"] = "todos"; +$a->strings["Display"] = "Tela"; +$a->strings["Social Networks"] = "Redes Sociais"; +$a->strings["Connected apps"] = "Aplicações conectadas"; +$a->strings["Remove account"] = "Remover a conta"; +$a->strings["Missing some important data!"] = "Está faltando algum dado importante!"; +$a->strings["Failed to connect with email account using the settings provided."] = "Não foi possível conectar à conta de e-mail com as configurações fornecidas."; +$a->strings["Email settings updated."] = "As configurações de e-mail foram atualizadas."; +$a->strings["Features updated"] = "Funcionalidades atualizadas"; +$a->strings["Relocate message has been send to your contacts"] = "A mensagem de relocação foi enviada para seus contatos"; +$a->strings["Empty passwords are not allowed. Password unchanged."] = "Não é permitido uma senha em branco. A senha não foi modificada."; +$a->strings["Wrong password."] = "Senha errada."; +$a->strings["Password changed."] = "A senha foi modificada."; +$a->strings["Password update failed. Please try again."] = "Não foi possível atualizar a senha. Por favor, tente novamente."; +$a->strings[" Please use a shorter name."] = " Por favor, use um nome mais curto."; +$a->strings[" Name too short."] = " O nome é muito curto."; +$a->strings["Wrong Password"] = "Senha Errada"; +$a->strings[" Not valid email."] = " Não é um e-mail válido."; +$a->strings[" Cannot change to that email."] = " Não foi possível alterar para esse e-mail."; +$a->strings["Private forum has no privacy permissions. Using default privacy group."] = "O fórum privado não possui permissões de privacidade. Utilizando o grupo de privacidade padrão."; +$a->strings["Private forum has no privacy permissions and no default privacy group."] = "O fórum privado não possui permissões de privacidade e nenhum grupo de privacidade padrão."; +$a->strings["Settings updated."] = "As configurações foram atualizadas."; +$a->strings["Add application"] = "Adicionar aplicação"; +$a->strings["Consumer Key"] = "Chave do consumidor"; +$a->strings["Consumer Secret"] = "Segredo do consumidor"; +$a->strings["Redirect"] = "Redirecionar"; +$a->strings["Icon url"] = "URL do ícone"; +$a->strings["You can't edit this application."] = "Você não pode editar esta aplicação."; +$a->strings["Connected Apps"] = "Aplicações conectadas"; +$a->strings["Client key starts with"] = "A chave do cliente inicia com"; +$a->strings["No name"] = "Sem nome"; +$a->strings["Remove authorization"] = "Remover autorização"; +$a->strings["No Plugin settings configured"] = "Não foi definida nenhuma configuração de plugin"; +$a->strings["Plugin Settings"] = "Configurações do plugin"; +$a->strings["Additional Features"] = "Funcionalidades Adicionais"; +$a->strings["General Social Media Settings"] = ""; +$a->strings["Disable intelligent shortening"] = ""; +$a->strings["Normally the system tries to find the best link to add to shortened posts. If this option is enabled then every shortened post will always point to the original friendica post."] = ""; +$a->strings["Automatically follow any GNU Social (OStatus) followers/mentioners"] = ""; +$a->strings["If you receive a message from an unknown OStatus user, this option decides what to do. If it is checked, a new contact will be created for every unknown user."] = ""; +$a->strings["Default group for OStatus contacts"] = ""; +$a->strings["Your legacy GNU Social account"] = ""; +$a->strings["If you enter your old GNU Social/Statusnet account name here (in the format user@domain.tld), your contacts will be added automatically. The field will be emptied when done."] = ""; +$a->strings["Repair OStatus subscriptions"] = ""; +$a->strings["Built-in support for %s connectivity is %s"] = "O suporte interno para conectividade de %s está %s"; +$a->strings["enabled"] = "habilitado"; +$a->strings["disabled"] = "desabilitado"; +$a->strings["GNU Social (OStatus)"] = ""; +$a->strings["Email access is disabled on this site."] = "O acesso ao e-mail está desabilitado neste site."; +$a->strings["Email/Mailbox Setup"] = "Configurações do e-mail/caixa postal"; +$a->strings["If you wish to communicate with email contacts using this service (optional), please specify how to connect to your mailbox."] = "Caso você deseje se comunicar com contatos de e-mail usando este serviço (opcional), por favor especifique como se conectar à sua caixa postal."; +$a->strings["Last successful email check:"] = "Última checagem bem sucedida de e-mail:"; +$a->strings["IMAP server name:"] = "Nome do servidor IMAP:"; +$a->strings["IMAP port:"] = "Porta do IMAP:"; +$a->strings["Security:"] = "Segurança:"; +$a->strings["None"] = "Nenhuma"; +$a->strings["Email login name:"] = "Nome de usuário do e-mail:"; +$a->strings["Email password:"] = "Senha do e-mail:"; +$a->strings["Reply-to address:"] = "Endereço de resposta (Reply-to):"; +$a->strings["Send public posts to all email contacts:"] = "Enviar publicações públicas para todos os contatos de e-mail:"; +$a->strings["Action after import:"] = "Ação após a importação:"; +$a->strings["Move to folder"] = "Mover para pasta"; +$a->strings["Move to folder:"] = "Mover para pasta:"; +$a->strings["Display Settings"] = "Configurações de exibição"; +$a->strings["Display Theme:"] = "Tema do perfil:"; +$a->strings["Mobile Theme:"] = "Tema para dispositivos móveis:"; +$a->strings["Update browser every xx seconds"] = "Atualizar o navegador a cada xx segundos"; +$a->strings["Minimum of 10 seconds. Enter -1 to disable it."] = ""; +$a->strings["Number of items to display per page:"] = "Número de itens a serem exibidos por página:"; +$a->strings["Maximum of 100 items"] = "Máximo de 100 itens"; +$a->strings["Number of items to display per page when viewed from mobile device:"] = "Número de itens a serem exibidos por página quando visualizando em um dispositivo móvel:"; +$a->strings["Don't show emoticons"] = "Não exibir emoticons"; +$a->strings["Calendar"] = "Agenda"; +$a->strings["Beginning of week:"] = ""; +$a->strings["Don't show notices"] = "Não mostra avisos"; +$a->strings["Infinite scroll"] = "rolamento infinito"; +$a->strings["Automatic updates only at the top of the network page"] = "Atualizações automáticas só na parte superior da página da rede"; +$a->strings["General Theme Settings"] = ""; +$a->strings["Custom Theme Settings"] = ""; +$a->strings["Content Settings"] = ""; +$a->strings["Theme settings"] = "Configurações do tema"; +$a->strings["User Types"] = "Tipos de Usuários"; +$a->strings["Community Types"] = "Tipos de Comunidades"; +$a->strings["Normal Account Page"] = "Página de conta normal"; +$a->strings["This account is a normal personal profile"] = "Essa conta é um perfil pessoal normal"; +$a->strings["Soapbox Page"] = "Página de vitrine"; +$a->strings["Automatically approve all connection/friend requests as read-only fans"] = "Aprova automaticamente todas as solicitações de conexão/amizade como fãs com permissão somente de leitura"; +$a->strings["Community Forum/Celebrity Account"] = "Conta de fórum de comunidade/celebridade"; +$a->strings["Automatically approve all connection/friend requests as read-write fans"] = "Aprova automaticamente todas as solicitações de conexão/amizade como fãs com permissão de leitura e escrita"; +$a->strings["Automatic Friend Page"] = "Página de amigo automático"; +$a->strings["Automatically approve all connection/friend requests as friends"] = "Aprovar automaticamente todas as solicitações de conexão/amizade como amigos"; +$a->strings["Private Forum [Experimental]"] = "Fórum privado [Experimental]"; +$a->strings["Private forum - approved members only"] = "Fórum privado - somente membros aprovados"; +$a->strings["OpenID:"] = "OpenID:"; +$a->strings["(Optional) Allow this OpenID to login to this account."] = "(Opcional) Permitir o uso deste OpenID para entrar nesta conta"; +$a->strings["Publish your default profile in your local site directory?"] = "Publicar o seu perfil padrão no diretório local do seu site?"; +$a->strings["Publish your default profile in the global social directory?"] = "Publicar o seu perfil padrão no diretório social global?"; +$a->strings["Hide your contact/friend list from viewers of your default profile?"] = "Ocultar visualização da sua lista de contatos/amigos no seu perfil padrão? "; +$a->strings["If enabled, posting public messages to Diaspora and other networks isn't possible."] = "Se ativado, postar mensagens públicas no Diáspora e em outras redes não será possível."; +$a->strings["Allow friends to post to your profile page?"] = "Permitir aos amigos publicarem na sua página de perfil?"; +$a->strings["Allow friends to tag your posts?"] = "Permitir aos amigos etiquetarem suas publicações?"; +$a->strings["Allow us to suggest you as a potential friend to new members?"] = "Permitir que você seja sugerido como amigo em potencial para novos membros?"; +$a->strings["Permit unknown people to send you private mail?"] = "Permitir que pessoas desconhecidas lhe enviem mensagens privadas?"; +$a->strings["Profile is not published."] = "O perfil não está publicado."; +$a->strings["Your Identity Address is '%s' or '%s'."] = ""; +$a->strings["Automatically expire posts after this many days:"] = "Expirar automaticamente publicações após tantos dias:"; +$a->strings["If empty, posts will not expire. Expired posts will be deleted"] = "Se deixado em branco, as publicações não irão expirar. Publicações expiradas serão excluídas."; +$a->strings["Advanced expiration settings"] = "Configurações avançadas de expiração"; +$a->strings["Advanced Expiration"] = "Expiração avançada"; +$a->strings["Expire posts:"] = "Expirar publicações:"; +$a->strings["Expire personal notes:"] = "Expirar notas pessoais:"; +$a->strings["Expire starred posts:"] = "Expirar publicações destacadas:"; +$a->strings["Expire photos:"] = "Expirar fotos:"; +$a->strings["Only expire posts by others:"] = "Expirar somente as publicações de outras pessoas:"; +$a->strings["Account Settings"] = "Configurações da conta"; +$a->strings["Password Settings"] = "Configurações da senha"; +$a->strings["Leave password fields blank unless changing"] = "Deixe os campos de senha em branco, a não ser que você queira alterá-la"; +$a->strings["Current Password:"] = "Senha Atual:"; +$a->strings["Your current password to confirm the changes"] = "Sua senha atual para confirmar as mudanças"; +$a->strings["Password:"] = "Senha:"; +$a->strings["Basic Settings"] = "Configurações básicas"; +$a->strings["Email Address:"] = "Endereço de e-mail:"; +$a->strings["Your Timezone:"] = "Seu fuso horário:"; +$a->strings["Your Language:"] = "Seu idioma:"; +$a->strings["Set the language we use to show you friendica interface and to send you emails"] = ""; +$a->strings["Default Post Location:"] = "Localização padrão de suas publicações:"; +$a->strings["Use Browser Location:"] = "Usar localizador do navegador:"; +$a->strings["Security and Privacy Settings"] = "Configurações de segurança e privacidade"; +$a->strings["Maximum Friend Requests/Day:"] = "Número máximo de requisições de amizade por dia:"; +$a->strings["(to prevent spam abuse)"] = "(para prevenir abuso de spammers)"; +$a->strings["Default Post Permissions"] = "Permissões padrão de publicação"; +$a->strings["(click to open/close)"] = "(clique para abrir/fechar)"; +$a->strings["Show to Groups"] = "Mostre para Grupos"; +$a->strings["Show to Contacts"] = "Mostre para Contatos"; +$a->strings["Default Private Post"] = "Publicação Privada Padrão"; +$a->strings["Default Public Post"] = "Publicação Pública Padrão"; +$a->strings["Default Permissions for New Posts"] = "Permissões Padrão para Publicações Novas"; +$a->strings["Maximum private messages per day from unknown people:"] = "Número máximo de mensagens privadas de pessoas desconhecidas, por dia:"; +$a->strings["Notification Settings"] = "Configurações de notificação"; +$a->strings["By default post a status message when:"] = "Por padrão, publicar uma mensagem de status quando:"; +$a->strings["accepting a friend request"] = "aceitar uma requisição de amizade"; +$a->strings["joining a forum/community"] = "associar-se a um fórum/comunidade"; +$a->strings["making an interesting profile change"] = "fazer uma modificação interessante em seu perfil"; +$a->strings["Send a notification email when:"] = "Enviar um e-mail de notificação sempre que:"; +$a->strings["You receive an introduction"] = "Você recebeu uma apresentação"; +$a->strings["Your introductions are confirmed"] = "Suas apresentações forem confirmadas"; +$a->strings["Someone writes on your profile wall"] = "Alguém escrever no mural do seu perfil"; +$a->strings["Someone writes a followup comment"] = "Alguém comentar a sua mensagem"; +$a->strings["You receive a private message"] = "Você recebeu uma mensagem privada"; +$a->strings["You receive a friend suggestion"] = "Você recebe uma suggestão de amigo"; +$a->strings["You are tagged in a post"] = "Você foi etiquetado em uma publicação"; +$a->strings["You are poked/prodded/etc. in a post"] = "Você está cutucado/incitado/etc. em uma publicação"; +$a->strings["Activate desktop notifications"] = ""; +$a->strings["Show desktop popup on new notifications"] = ""; +$a->strings["Text-only notification emails"] = "Emails de notificação apenas de texto"; +$a->strings["Send text only notification emails, without the html part"] = "Enviar e-mails de notificação apenas de texto, sem a parte html"; +$a->strings["Advanced Account/Page Type Settings"] = "Conta avançada/Configurações do tipo de página"; +$a->strings["Change the behaviour of this account for special situations"] = "Modificar o comportamento desta conta em situações especiais"; +$a->strings["Relocate"] = "Relocação"; +$a->strings["If you have moved this profile from another server, and some of your contacts don't receive your updates, try pushing this button."] = "Se você moveu esse perfil de outro servidor e algum dos seus contatos não recebe atualizações, pressione esse botão."; +$a->strings["Resend relocate message to contacts"] = "Reenviar mensagem de relocação para os contatos"; +$a->strings["Do you really want to delete this video?"] = ""; +$a->strings["Delete Video"] = ""; +$a->strings["No videos selected"] = "Nenhum vídeo selecionado"; +$a->strings["Access to this item is restricted."] = "O acesso a este item é restrito."; +$a->strings["View Album"] = "Ver álbum"; +$a->strings["Recent Videos"] = "Vídeos Recentes"; +$a->strings["Upload New Videos"] = "Envie Novos Vídeos"; +$a->strings["Friendica Communications Server - Setup"] = "Servidor de Comunicações Friendica - Configuração"; +$a->strings["Could not connect to database."] = "Não foi possível conectar ao banco de dados."; +$a->strings["Could not create table."] = "Não foi possível criar tabela."; +$a->strings["Your Friendica site database has been installed."] = "O banco de dados do seu site Friendica foi instalado."; +$a->strings["You may need to import the file \"database.sql\" manually using phpmyadmin or mysql."] = "Você provavelmente precisará importar o arquivo \"database.sql\" manualmente, usando o phpmyadmin ou o mysql."; +$a->strings["Please see the file \"INSTALL.txt\"."] = "Por favor, dê uma olhada no arquivo \"INSTALL.TXT\"."; +$a->strings["Database already in use."] = ""; +$a->strings["System check"] = "Checagem do sistema"; +$a->strings["Check again"] = "Checar novamente"; +$a->strings["Database connection"] = "Conexão de banco de dados"; +$a->strings["In order to install Friendica we need to know how to connect to your database."] = "À fim de instalar o Friendica, você precisa saber como se conectar ao seu banco de dados."; +$a->strings["Please contact your hosting provider or site administrator if you have questions about these settings."] = "Por favor, entre em contato com a sua hospedagem ou com o administrador do site caso você tenha alguma dúvida em relação a essas configurações."; +$a->strings["The database you specify below should already exist. If it does not, please create it before continuing."] = "O banco de dados que você especificou abaixo já deve existir. Caso contrário, por favor crie-o antes de continuar."; +$a->strings["Database Server Name"] = "Nome do servidor de banco de dados"; +$a->strings["Database Login Name"] = "Nome do usuário do banco de dados"; +$a->strings["Database Login Password"] = "Senha do usuário do banco de dados"; +$a->strings["Database Name"] = "Nome do banco de dados"; +$a->strings["Site administrator email address"] = "Endereço de email do administrador do site"; +$a->strings["Your account email address must match this in order to use the web admin panel."] = "O endereço de email da sua conta deve ser igual a este para que você possa utilizar o painel de administração web."; +$a->strings["Please select a default timezone for your website"] = "Por favor, selecione o fuso horário padrão para o seu site"; +$a->strings["Site settings"] = "Configurações do site"; +$a->strings["System Language:"] = ""; +$a->strings["Set the default language for your Friendica installation interface and to send emails."] = ""; +$a->strings["Could not find a command line version of PHP in the web server PATH."] = "Não foi possível encontrar uma versão de linha de comando do PHP nos caminhos do seu servidor web."; +$a->strings["If you don't have a command line version of PHP installed on server, you will not be able to run background polling via cron. See 'Setup the poller'"] = ""; +$a->strings["PHP executable path"] = "Caminho para o executável do PhP"; +$a->strings["Enter full path to php executable. You can leave this blank to continue the installation."] = "Digite o caminho completo do executável PHP. Você pode deixar isso em branco para continuar com a instalação."; +$a->strings["Command line PHP"] = "PHP em linha de comando"; +$a->strings["PHP executable is not the php cli binary (could be cgi-fgci version)"] = "O executável do PHP não é o binário do php cli (could be cgi-fcgi version)"; +$a->strings["Found PHP version: "] = "Encontrado PHP versão:"; +$a->strings["PHP cli binary"] = "Binário cli do PHP"; +$a->strings["The command line version of PHP on your system does not have \"register_argc_argv\" enabled."] = "\"register_argc_argv\" não está habilitado na versão de linha de comando do PHP no seu sistema."; +$a->strings["This is required for message delivery to work."] = "Isto é necessário para o funcionamento do envio de mensagens."; +$a->strings["PHP register_argc_argv"] = "PHP register_argc_argv"; +$a->strings["Error: the \"openssl_pkey_new\" function on this system is not able to generate encryption keys"] = "Erro: a função \"openssl_pkey_new\" no seu sistema não é capaz de gerar as chaves de criptografia"; +$a->strings["If running under Windows, please see \"http://www.php.net/manual/en/openssl.installation.php\"."] = "Se estiver usando o Windows, por favor dê uma olhada em \"http://www.php.net/manual/en/openssl.installation.php\"."; +$a->strings["Generate encryption keys"] = "Gerar chaves de encriptação"; +$a->strings["libCurl PHP module"] = "Módulo PHP libCurl"; +$a->strings["GD graphics PHP module"] = "Módulo PHP GD graphics"; +$a->strings["OpenSSL PHP module"] = "Módulo PHP OpenSSL"; +$a->strings["mysqli PHP module"] = "Módulo PHP mysqli"; +$a->strings["mb_string PHP module"] = "Módulo PHP mb_string "; +$a->strings["mcrypt PHP module"] = ""; +$a->strings["XML PHP module"] = ""; +$a->strings["iconv module"] = ""; +$a->strings["Apache mod_rewrite module"] = "Módulo mod_rewrite do Apache"; +$a->strings["Error: Apache webserver mod-rewrite module is required but not installed."] = "Erro: o módulo mod-rewrite do Apache é necessário, mas não está instalado."; +$a->strings["Error: libCURL PHP module required but not installed."] = "Erro: o módulo libCURL do PHP é necessário, mas não está instalado."; +$a->strings["Error: GD graphics PHP module with JPEG support required but not installed."] = "Erro: o módulo gráfico GD, com suporte a JPEG, do PHP é necessário, mas não está instalado."; +$a->strings["Error: openssl PHP module required but not installed."] = "Erro: o módulo openssl do PHP é necessário, mas não está instalado."; +$a->strings["Error: mysqli PHP module required but not installed."] = "Erro: o módulo mysqli do PHP é necessário, mas não está instalado."; +$a->strings["Error: mb_string PHP module required but not installed."] = "Erro: o módulo mb_string PHP é necessário, mas não está instalado."; +$a->strings["Error: mcrypt PHP module required but not installed."] = "Erro: o módulo mcrypt do PHP é necessário, mas não está instalado."; +$a->strings["Error: iconv PHP module required but not installed."] = ""; +$a->strings["If you are using php_cli, please make sure that mcrypt module is enabled in its config file"] = ""; +$a->strings["Function mcrypt_create_iv() is not defined. This is needed to enable RINO2 encryption layer."] = ""; +$a->strings["mcrypt_create_iv() function"] = ""; +$a->strings["Error, XML PHP module required but not installed."] = "Erro: o módulo XML do PHP é necessário, mas não está instalado."; +$a->strings["The web installer needs to be able to create a file called \".htconfig.php\" in the top folder of your web server and it is unable to do so."] = "O instalador web precisa criar um arquivo chamado \".htconfig.php\" na pasta raiz da instalação e não está conseguindo."; +$a->strings["This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can."] = "Geralmente isso está relacionado às definições de permissão, uma vez que o servidor web pode não estar conseguindo escrever os arquivos nesta pasta."; +$a->strings["At the end of this procedure, we will give you a text to save in a file named .htconfig.php in your Friendica top folder."] = "Ao final desse procedimento, será fornecido um texto que deverá ser salvo em um arquivo de nome. htconfig.php, na pasta raiz da instalação do seu Friendica."; +$a->strings["You can alternatively skip this procedure and perform a manual installation. Please see the file \"INSTALL.txt\" for instructions."] = "Você também pode pular esse procedimento e executar uma instalação manual. Por favor, dê uma olhada no arquivo \"INSTALL.TXT\" para instruções."; +$a->strings[".htconfig.php is writable"] = ".htconfig.php tem permissão de escrita"; +$a->strings["Friendica uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering."] = "Friendica usa o engine de template Smarty3 para renderizar suas web views. Smarty3 compila templates para PHP para acelerar a renderização."; +$a->strings["In order to store these compiled templates, the web server needs to have write access to the directory view/smarty3/ under the Friendica top level folder."] = "Para guardar os templates compilados, o servidor web necessita de permissão de escrita no diretório view/smarty3/ no diretório raíz do Friendica."; +$a->strings["Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder."] = "Favor se certificar que o usuário sob o qual o servidor web roda (ex: www-data) tenha permissão de escrita nesse diretório."; +$a->strings["Note: as a security measure, you should give the web server write access to view/smarty3/ only--not the template files (.tpl) that it contains."] = "Nota: como uma medida de segurança, você deve fornecer ao servidor web permissão de escrita em view/smarty3/ somente--não aos arquivos de template (.tpl) que ele contém."; +$a->strings["view/smarty3 is writable"] = "view/smarty3 tem escrita permitida"; +$a->strings["Url rewrite in .htaccess is not working. Check your server configuration."] = "A reescrita de URLs definida no .htaccess não está funcionando. Por favor, verifique as configurações do seu servidor."; +$a->strings["Url rewrite is working"] = "A reescrita de URLs está funcionando"; +$a->strings["ImageMagick PHP extension is installed"] = ""; +$a->strings["ImageMagick supports GIF"] = ""; +$a->strings["The database configuration file \".htconfig.php\" could not be written. Please use the enclosed text to create a configuration file in your web server root."] = "Não foi possível gravar o arquivo de configuração \".htconfig.php\". Por favor, use o texto incluso para criar um arquivo de configuração na raiz da instalação do Friendika em seu servidor web."; +$a->strings["

      What next

      "] = "

      A seguir

      "; +$a->strings["IMPORTANT: You will need to [manually] setup a scheduled task for the poller."] = "IMPORTANTE: Você deve configurar [manualmente] uma tarefa agendada para o captador."; +$a->strings["Invalid request identifier."] = "Identificador de solicitação inválido"; +$a->strings["Discard"] = "Descartar"; +$a->strings["Network Notifications"] = "Notificações de rede"; +$a->strings["Personal Notifications"] = "Notificações pessoais"; +$a->strings["Home Notifications"] = "Notificações pessoais"; +$a->strings["Show Ignored Requests"] = "Exibir solicitações ignoradas"; +$a->strings["Hide Ignored Requests"] = "Ocultar solicitações ignoradas"; +$a->strings["Notification type: "] = "Tipo de notificação:"; +$a->strings["suggested by %s"] = "sugerido por %s"; +$a->strings["Post a new friend activity"] = "Publicar a adição de amigo"; +$a->strings["if applicable"] = "se aplicável"; +$a->strings["Claims to be known to you: "] = "Alega ser conhecido por você: "; +$a->strings["yes"] = "sim"; +$a->strings["no"] = "não"; +$a->strings["Shall your connection be bidirectional or not? \"Friend\" implies that you allow to read and you subscribe to their posts. \"Fan/Admirer\" means that you allow to read but you do not want to read theirs. Approve as: "] = "Sua conexão deve ser bidirecional ou não? \"Amigo\" implica que você permite ler e se inscreve nos textos dele. \"Fan / admirador\" significa que você permite ler, mas você não quer ler os textos dele. Aprovar como:"; +$a->strings["Shall your connection be bidirectional or not? \"Friend\" implies that you allow to read and you subscribe to their posts. \"Sharer\" means that you allow to read but you do not want to read theirs. Approve as: "] = "Sua conexão deve ser bidirecional ou não? \"Amigo\" implica que você permite a leitura e assina o textos dele. \"Compartilhador\" significa que você permite a leitura mas você não quer ler os textos dele. Aprova como:"; +$a->strings["Friend"] = "Amigo"; +$a->strings["Sharer"] = "Compartilhador"; +$a->strings["Fan/Admirer"] = "Fã/Admirador"; +$a->strings["No introductions."] = "Sem apresentações."; +$a->strings["Show unread"] = ""; +$a->strings["Show all"] = ""; +$a->strings["No more %s notifications."] = ""; +$a->strings["Recent Photos"] = "Fotos recentes"; +$a->strings["Upload New Photos"] = "Enviar novas fotos"; +$a->strings["Contact information unavailable"] = "A informação de contato não está disponível"; +$a->strings["Album not found."] = "O álbum não foi encontrado."; +$a->strings["Delete Album"] = "Excluir o álbum"; +$a->strings["Do you really want to delete this photo album and all its photos?"] = "Você realmente deseja deletar esse álbum de fotos e todas as suas fotos?"; +$a->strings["Delete Photo"] = "Excluir a foto"; +$a->strings["Do you really want to delete this photo?"] = "Você realmente deseja deletar essa foto?"; +$a->strings["%1\$s was tagged in %2\$s by %3\$s"] = "%1\$s foi marcado em %2\$s por %3\$s"; +$a->strings["a photo"] = "uma foto"; +$a->strings["Image file is empty."] = "O arquivo de imagem está vazio."; +$a->strings["No photos selected"] = "Não foi selecionada nenhuma foto"; +$a->strings["You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage."] = "Você está usando %1$.2f Mbytes dos %2$.2f Mbytes liberados para armazenamento de fotos."; +$a->strings["Upload Photos"] = "Enviar fotos"; +$a->strings["New album name: "] = "Nome do novo álbum: "; +$a->strings["or existing album name: "] = "ou o nome de um álbum já existente: "; +$a->strings["Do not show a status post for this upload"] = "Não exiba uma publicação de status para este envio"; +$a->strings["Private Photo"] = "Foto Privada"; +$a->strings["Public Photo"] = "Foto Pública"; +$a->strings["Edit Album"] = "Editar o álbum"; +$a->strings["Show Newest First"] = "Exibir as mais recentes primeiro"; +$a->strings["Show Oldest First"] = "Exibir as mais antigas primeiro"; +$a->strings["View Photo"] = "Ver a foto"; +$a->strings["Permission denied. Access to this item may be restricted."] = "Permissão negada. O acesso a este item pode estar restrito."; +$a->strings["Photo not available"] = "A foto não está disponível"; +$a->strings["View photo"] = "Ver a imagem"; +$a->strings["Edit photo"] = "Editar a foto"; +$a->strings["Use as profile photo"] = "Usar como uma foto de perfil"; +$a->strings["View Full Size"] = "Ver no tamanho real"; +$a->strings["Tags: "] = "Etiquetas: "; +$a->strings["[Remove any tag]"] = "[Remover qualquer etiqueta]"; +$a->strings["New album name"] = "Novo nome para o álbum"; +$a->strings["Caption"] = "Legenda"; +$a->strings["Add a Tag"] = "Adicionar uma etiqueta"; +$a->strings["Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"] = "Por exemplo: @joao, @Joao_da_Silva, @joao@exemplo.com, #Minas_Gerais, #acampamento"; +$a->strings["Do not rotate"] = ""; +$a->strings["Rotate CW (right)"] = "Rotacionar para direita"; +$a->strings["Rotate CCW (left)"] = "Rotacionar para esquerda"; +$a->strings["Private photo"] = "Foto privada"; +$a->strings["Public photo"] = "Foto pública"; +$a->strings["Map"] = ""; +$a->strings["via"] = "via"; +$a->strings["Repeat the image"] = "Lado a lado"; +$a->strings["Will repeat your image to fill the background."] = "Repete a imagem para preencher o plano de fundo."; +$a->strings["Stretch"] = "Esticar"; +$a->strings["Will stretch to width/height of the image."] = "Estica até a largura/altura da imagem."; +$a->strings["Resize fill and-clip"] = "Preencher e cortar"; +$a->strings["Resize to fill and retain aspect ratio."] = "Redimensiona para preencher o plano de fundo, mantendo proporções."; +$a->strings["Resize best fit"] = "Ajustar"; +$a->strings["Resize to best fit and retain aspect ratio."] = "Redimensiona para ajustar ao plano de fundo, mantendo proporções."; +$a->strings["Default"] = "Padrão"; +$a->strings["Note: "] = "Observação:"; +$a->strings["Check image permissions if all users are allowed to visit the image"] = ""; +$a->strings["Select scheme"] = "Selecionar esquema de cores"; +$a->strings["Navigation bar background color"] = "Cor de fundo da barra de navegação"; +$a->strings["Navigation bar icon color "] = "Cor do ícone da barra de navegação"; +$a->strings["Link color"] = "Cor do link"; +$a->strings["Set the background color"] = "Escolher a cor de fundo"; +$a->strings["Content background transparency"] = "Transparência do fundo do conteúdo"; +$a->strings["Set the background image"] = "Escolher a imagem de fundo"; +$a->strings["Guest"] = "Convidado"; +$a->strings["Visitor"] = "Visitante"; +$a->strings["Set resize level for images in posts and comments (width and height)"] = "Configure o nível de redimensionamento para imagens em publicações e comentários (largura e altura)"; +$a->strings["Set font-size for posts and comments"] = "Escolha o tamanho da fonte para publicações e comentários"; +$a->strings["Set theme width"] = "Configure a largura do tema"; +$a->strings["Color scheme"] = "Esquema de cores"; +$a->strings["Alignment"] = "Alinhamento"; +$a->strings["Left"] = "Esquerda"; +$a->strings["Center"] = "Centro"; +$a->strings["Posts font size"] = "Tamanho da fonte para publicações"; +$a->strings["Textareas font size"] = "Tamanho da fonte para campos texto"; +$a->strings["Set line-height for posts and comments"] = "Escolha comprimento da linha para publicações e comentários"; +$a->strings["Set colour scheme"] = "Configure o esquema de cores"; +$a->strings["Community Profiles"] = "Profiles Comunitários"; +$a->strings["Last users"] = "Últimos usuários"; +$a->strings["Find Friends"] = "Encontrar amigos"; +$a->strings["Local Directory"] = "Diretório Local"; +$a->strings["Quick Start"] = ""; +$a->strings["Connect Services"] = "Conectar serviços"; +$a->strings["Comma separated list of helper forums"] = ""; +$a->strings["Set style"] = "escolha estilo"; +$a->strings["Community Pages"] = "Páginas da Comunidade"; +$a->strings["Help or @NewHere ?"] = "Ajuda ou @NewHere ?"; +$a->strings["Your contacts"] = "Seus contatos"; +$a->strings["Your personal photos"] = "Suas fotos pessoais"; +$a->strings["Last likes"] = "Últimas gostadas"; +$a->strings["Last photos"] = "Últimas fotos"; +$a->strings["Earth Layers"] = "Camadas da Terra"; +$a->strings["Set zoomfactor for Earth Layers"] = "Configure o zoom para Camadas da Terra"; +$a->strings["Set longitude (X) for Earth Layers"] = "Configure longitude (X) para Camadas da Terra"; +$a->strings["Set latitude (Y) for Earth Layers"] = "Configure latitude (Y) para Camadas da Terra"; +$a->strings["Show/hide boxes at right-hand column:"] = "Mostre/esconda caixas na coluna à direita:"; +$a->strings["Set resolution for middle column"] = "Escolha a resolução para a coluna do meio"; +$a->strings["Set color scheme"] = "Configure o esquema de cores"; +$a->strings["Set zoomfactor for Earth Layer"] = "Configure o zoom para Camadas da Terra"; +$a->strings["greenzero"] = "greenzero"; +$a->strings["purplezero"] = "purplezero"; +$a->strings["easterbunny"] = "easterbunny"; +$a->strings["darkzero"] = "darkzero"; +$a->strings["comix"] = "comix"; +$a->strings["slackr"] = "slackr"; +$a->strings["Variations"] = "Variações"; +$a->strings["toggle mobile"] = "habilita mobile"; +$a->strings["Delete this item?"] = "Excluir este item?"; +$a->strings["show fewer"] = "exibir menos"; +$a->strings["Update %s failed. See error logs."] = "Atualização %s falhou. Vide registro de erros (log)."; +$a->strings["Create a New Account"] = "Criar uma nova conta"; +$a->strings["Password: "] = "Senha: "; +$a->strings["Remember me"] = "Lembre-se de mim"; +$a->strings["Or login using OpenID: "] = "Ou login usando OpendID:"; +$a->strings["Forgot your password?"] = "Esqueceu a sua senha?"; +$a->strings["Website Terms of Service"] = "Termos de Serviço do Website"; +$a->strings["terms of service"] = "termos de serviço"; +$a->strings["Website Privacy Policy"] = "Política de Privacidade do Website"; +$a->strings["privacy policy"] = "política de privacidade"; diff --git a/view/ro/messages.po b/view/lang/ro/messages.po similarity index 100% rename from view/ro/messages.po rename to view/lang/ro/messages.po diff --git a/view/ro/strings.php b/view/lang/ro/strings.php similarity index 100% rename from view/ro/strings.php rename to view/lang/ro/strings.php diff --git a/view/ru/messages.po b/view/lang/ru/messages.po similarity index 100% rename from view/ru/messages.po rename to view/lang/ru/messages.po diff --git a/view/ru/strings.php b/view/lang/ru/strings.php similarity index 100% rename from view/ru/strings.php rename to view/lang/ru/strings.php diff --git a/view/sv/messages.po b/view/lang/sv/messages.po similarity index 100% rename from view/sv/messages.po rename to view/lang/sv/messages.po diff --git a/view/sv/strings.php b/view/lang/sv/strings.php similarity index 100% rename from view/sv/strings.php rename to view/lang/sv/strings.php diff --git a/view/zh-cn/messages.po b/view/lang/zh-cn/messages.po similarity index 100% rename from view/zh-cn/messages.po rename to view/lang/zh-cn/messages.po diff --git a/view/zh-cn/strings.php b/view/lang/zh-cn/strings.php similarity index 100% rename from view/zh-cn/strings.php rename to view/lang/zh-cn/strings.php diff --git a/view/default.php b/view/php/default.php similarity index 100% rename from view/default.php rename to view/php/default.php diff --git a/view/minimal.php b/view/php/minimal.php similarity index 100% rename from view/minimal.php rename to view/php/minimal.php diff --git a/view/theme/frio/php/modes/none.php b/view/php/none.php similarity index 100% rename from view/theme/frio/php/modes/none.php rename to view/php/none.php diff --git a/view/templates/admin_logs.tpl b/view/templates/admin_logs.tpl index e79c7d7af..b2e6357a9 100644 --- a/view/templates/admin_logs.tpl +++ b/view/templates/admin_logs.tpl @@ -14,6 +14,7 @@

      {{$phpheader}}

      +

      {{$phplogenabled}}

      {{$phphint}}

      {{$phplogcode}}
      diff --git a/view/templates/admin_site.tpl b/view/templates/admin_site.tpl index f22319b69..fc84f6860 100644 --- a/view/templates/admin_site.tpl +++ b/view/templates/admin_site.tpl @@ -120,8 +120,10 @@ {{include file="field_input.tpl" field=$proxy}} {{include file="field_input.tpl" field=$proxyuser}} {{include file="field_input.tpl" field=$timeout}} - {{include file="field_input.tpl" field=$delivery_interval}} - {{include file="field_input.tpl" field=$poll_interval}} + {{if NOT $worker.2}} + {{include file="field_input.tpl" field=$delivery_interval}} + {{include file="field_input.tpl" field=$poll_interval}} + {{/if}} {{include file="field_input.tpl" field=$maxloadavg}} {{include file="field_input.tpl" field=$maxloadavg_frontend}} {{include file="field_input.tpl" field=$optimize_max_tablesize}} @@ -158,6 +160,7 @@ {{include file="field_checkbox.tpl" field=$worker}} {{include file="field_input.tpl" field=$worker_queues}} {{include file="field_checkbox.tpl" field=$worker_dont_fork}} + {{include file="field_checkbox.tpl" field=$worker_fastlane}}
      diff --git a/view/templates/admin_summary.tpl b/view/templates/admin_summary.tpl index 70f95ca5e..08e84b008 100644 --- a/view/templates/admin_summary.tpl +++ b/view/templates/admin_summary.tpl @@ -4,7 +4,7 @@
      {{$queues.label}}
      -
      {{$queues.deliverq}} - {{$queues.queue}}{{if $queues.workerq}} - {{$queues.workerq}}{{/if}}
      +
      {{$queues.deliverq}} - {{$queues.queue}}{{if $workeractive}} - {{$queues.workerq}}{{/if}}
      {{$pending.0}}
      diff --git a/view/templates/api_config_xml.tpl b/view/templates/api_config_xml.tpl deleted file mode 100644 index 3673e2a10..000000000 --- a/view/templates/api_config_xml.tpl +++ /dev/null @@ -1,67 +0,0 @@ - - - - {{$config.site.name}} - {{$config.site.server}} - default - - {{$config.site.logo}} - - true - en - {{$config.site.email}} - - - UTC - {{$config.site.closed}} - - false - {{$config.site.private}} - {{$config.site.textlimit}} - {{$config.site.ssl}} - {{$config.site.sslserver}} - 30 - - - - cc - - http://creativecommons.org/licenses/by/3.0/ - Creative Commons Attribution 3.0 - http://i.creativecommons.org/l/by/3.0/80x15.png - - - - - - - - - - - - - - - - - false - 20 - 600 - - - - false - INVALID SERVER - 5222 - update - - - StatusNet - - - - false - 0 - - diff --git a/view/templates/api_friends_xml.tpl b/view/templates/api_friends_xml.tpl deleted file mode 100644 index 6520415a7..000000000 --- a/view/templates/api_friends_xml.tpl +++ /dev/null @@ -1,8 +0,0 @@ - - - - - {{foreach $users as $u}} - {{include file="api_user_xml.tpl" user=$u}} - {{/foreach}} - diff --git a/view/templates/api_photo_detail_xml.tpl b/view/templates/api_photo_detail_xml.tpl deleted file mode 100644 index 0b0602901..000000000 --- a/view/templates/api_photo_detail_xml.tpl +++ /dev/null @@ -1,21 +0,0 @@ - - - {{$photo.id}} - {{$photo.created}} - {{$photo.edited}} - {{$photo.title}} - {{$photo.desc}} - {{$photo.album}} - {{$photo.filename}} - {{$photo.type}} - {{$photo.height}} - {{$photo.width}} - {{$photo.datasize}} - 1 - {{foreach $photo.link as $scale => $url}} - - {{/foreach}} - {{if $photo.data}} - {{$photo.data}} - {{/if}} - diff --git a/view/templates/api_photos_list_xml.tpl b/view/templates/api_photos_list_xml.tpl deleted file mode 100644 index 1478e0205..000000000 --- a/view/templates/api_photos_list_xml.tpl +++ /dev/null @@ -1,5 +0,0 @@ - - -{{foreach $photos as $photo}} - {{$photo.thumb}} -{{/foreach}} diff --git a/view/templates/api_ratelimit_xml.tpl b/view/templates/api_ratelimit_xml.tpl deleted file mode 100644 index 5c3986bb9..000000000 --- a/view/templates/api_ratelimit_xml.tpl +++ /dev/null @@ -1,7 +0,0 @@ - - - {{$hash.remaining_hits}} - {{$hash.hourly_limit}} - {{$hash.reset_time}} - {{$hash.resettime_in_seconds}} - diff --git a/view/templates/api_status_xml.tpl b/view/templates/api_status_xml.tpl deleted file mode 100644 index c3b702baa..000000000 --- a/view/templates/api_status_xml.tpl +++ /dev/null @@ -1,47 +0,0 @@ - -{{if $status}} - {{$status.created_at}} - {{$status.id}} - {{$status.text}} - {{$status.source}} - {{$status.truncated}} - {{$status.in_reply_to_status_id}} - {{$status.in_reply_to_user_id}} - {{$status.favorited}} - {{$status.in_reply_to_screen_name}} - {{$status.geo}} - {{$status.coordinates}} - {{$status.place}} - {{$status.contributors}} - - {{$status.user.id}} - {{$status.user.name}} - {{$status.user.screen_name}} - {{$status.user.location}} - {{$status.user.description}} - {{$status.user.profile_image_url}} - {{$status.user.url}} - {{$status.user.protected}} - {{$status.user.followers}} - {{$status.user.profile_background_color}} - {{$status.user.profile_text_color}} - {{$status.user.profile_link_color}} - {{$status.user.profile_sidebar_fill_color}} - {{$status.user.profile_sidebar_border_color}} - {{$status.user.friends_count}} - {{$status.user.created_at}} - {{$status.user.favourites_count}} - {{$status.user.utc_offset}} - {{$status.user.time_zone}} - {{$status.user.profile_background_image_url}} - {{$status.user.profile_background_tile}} - {{$status.user.profile_use_background_image}} - - {{$status.user.geo_enabled}} - {{$status.user.verified}} - - {{$status.user.statuses_count}} - {{$status.user.lang}} - {{$status.user.contributors_enabled}} - -{{/if}} diff --git a/view/templates/api_test_xml.tpl b/view/templates/api_test_xml.tpl deleted file mode 100644 index ad648fc04..000000000 --- a/view/templates/api_test_xml.tpl +++ /dev/null @@ -1,2 +0,0 @@ - -{{$ok}} diff --git a/view/templates/api_timeline_atom.tpl b/view/templates/api_timeline_atom.tpl deleted file mode 100644 index d11b4a3ce..000000000 --- a/view/templates/api_timeline_atom.tpl +++ /dev/null @@ -1,91 +0,0 @@ - - - StatusNet - {{$rss.self}} - Friendica - Friendica API feed - {{$rss.logo}} - {{$rss.atom_updated}} - - - - - - http://activitystrea.ms/schema/1.0/person - {{$user.url}} - {{$user.name}} - - - - - - - {{$user.screen_name}} - {{$user.name}} - - homepage - {{$user.url}} - true - - - - - - - http://activitystrea.ms/schema/1.0/person - {{$user.contact_url}} - {{$user.name}} - - - - - - {{$user.screen_name}} - {{$user.name}} - - homepage - {{$user.url}} - true - - - - - - {{foreach $statuses as $status}} - - {{$status.objecttype}} - {{$status.message_id}} - {{$status.text}} - {{$status.statusnet_html}} - - {{$status.verb}} - {{$status.published}} - {{$status.updated}} - - - - - - - - http://activitystrea.ms/schema/1.0/person - {{$status.user.url}} - {{$status.user.name}} - - - - - {{$status.user.screen_name}} - {{$status.user.name}} - - - homepage - {{$status.user.url}} - true - - - - - - {{/foreach}} - diff --git a/view/templates/api_timeline_rss.tpl b/view/templates/api_timeline_rss.tpl deleted file mode 100644 index 7b08ecd4c..000000000 --- a/view/templates/api_timeline_rss.tpl +++ /dev/null @@ -1,27 +0,0 @@ - - - - Friendica - {{$rss.alternate}} - - Friendica timeline - {{$rss.language}} - 40 - - {{$user.link}} - {{$user.name}}'s items - {{$user.profile_image_url}} - - -{{foreach $statuses as $status}} - - {{$status.user.name}}: {{$status.text}} - {{$status.text}} - {{$status.created_at}} - {{$status.url}} - {{$status.url}} - {{$status.source}} - -{{/foreach}} - - diff --git a/view/templates/api_timeline_xml.tpl b/view/templates/api_timeline_xml.tpl deleted file mode 100644 index e22c1e2ee..000000000 --- a/view/templates/api_timeline_xml.tpl +++ /dev/null @@ -1,26 +0,0 @@ - - -{{foreach $statuses as $status}} - {{$status.text}} - {{$status.truncated}} - {{$status.created_at}} - {{$status.in_reply_to_status_id}} - {{$status.source}} - {{$status.id}} - {{$status.in_reply_to_user_id}} - {{$status.in_reply_to_screen_name}} - {{$status.geo}} - {{$status.favorited}} -{{include file="api_user_xml.tpl" user=$status.user}} {{$status.statusnet_html}} - {{$status.statusnet_conversation_id}} - {{$status.url}} - {{$status.coordinates}} - {{$status.place}} - {{$status.contributors}} - {{foreach $status.friendica_activities as $k=>$v}} - {{$v}} - {{/foreach}} - -{{/foreach}} diff --git a/view/templates/api_user_xml.tpl b/view/templates/api_user_xml.tpl deleted file mode 100644 index 7e0ec6ed6..000000000 --- a/view/templates/api_user_xml.tpl +++ /dev/null @@ -1,47 +0,0 @@ - - - {{$user.id}} - {{$user.name}} - {{$user.screen_name}} - {{$user.location}} - {{$user.description}} - {{$user.profile_image_url}} - {{$user.url}} - {{$user.protected}} - {{$user.followers_count}} - {{$user.friends_count}} - {{$user.created_at}} - {{$user.favourites_count}} - {{$user.utc_offset}} - {{$user.time_zone}} - {{$user.statuses_count}} - {{$user.following}} - {{$user.profile_background_color}} - {{$user.profile_text_color}} - {{$user.profile_link_color}} - {{$user.profile_sidebar_fill_color}} - {{$user.profile_sidebar_border_color}} - {{$user.profile_background_image_url}} - {{$user.profile_background_tile}} - {{$user.profile_use_background_image}} - {{$user.notifications}} - {{$user.geo_enabled}} - {{$user.verified}} - {{$user.lang}} - {{$user.contributors_enabled}} - {{if $user.status}} - {{$user.status.created_at}} - {{$user.status.id}} - {{$user.status.text}} - {{$user.status.source}} - {{$user.status.truncated}} - {{$user.status.in_reply_to_status_id}} - {{$user.status.in_reply_to_user_id}} - {{$user.status.favorited}} - {{$user.status.in_reply_to_screen_name}} - {{$user.status.geo}} - {{$user.status.coordinates}} - {{$user.status.place}} - {{$user.status.contributors}} - {{/if}} - diff --git a/view/templates/contact_drop_confirm.tpl b/view/templates/contact_drop_confirm.tpl index 9b9a35971..48b61832d 100644 --- a/view/templates/contact_drop_confirm.tpl +++ b/view/templates/contact_drop_confirm.tpl @@ -1,4 +1,4 @@ -

      {{"Drop contact"|t}}

      +

      {{$header}}

      {{include file="contact_template.tpl" no_contacts_checkbox=True}} diff --git a/view/templates/contact_edit.tpl b/view/templates/contact_edit.tpl index c5012822e..e7856128a 100644 --- a/view/templates/contact_edit.tpl +++ b/view/templates/contact_edit.tpl @@ -1,6 +1,4 @@ -{{if $header}}

      {{$header}}

      {{/if}} - @@ -56,6 +54,7 @@ {{* Some information about the contact from the profile *}}
      {{$profileurllabel}}
      {{$profileurl}}
      {{if $location}}
      {{$location_label}}
      {{$location}}
      {{/if}} + {{if $xmpp}}
      {{$xmpp_label}}
      {{$xmpp}}
      {{/if}} {{if $keywords}}
      {{$keywords_label}}
      {{$keywords}}
      {{/if}} {{if $about}}
      {{$about_label}}
      {{$about}}
      {{/if}}
      {{* End of contact-edit-links *}} diff --git a/view/templates/crepair.tpl b/view/templates/crepair.tpl index 1d2098331..ba04073b6 100644 --- a/view/templates/crepair.tpl +++ b/view/templates/crepair.tpl @@ -11,56 +11,38 @@
      - + -
      -{{if $update_profile}} - {{$udprofilenow}} -{{/if}} -
      +
      + {{if $update_profile}} + {{$udprofilenow}} + {{/if}} +
      - - -
      + {{include file="field_input.tpl" field=$name}} - - -
      + {{include file="field_input.tpl" field=$nick}} - - -
      + {{include file="field_input.tpl" field=$attag}} - - -
      + {{include file="field_input.tpl" field=$url}} - - -
      - - - -
      + {{include file="field_input.tpl" field=$request}} - - -
      + {{include file="field_input.tpl" field=$confirm}} - - -
      + {{include file="field_input.tpl" field=$notify}} - - -
      -{{if $allow_remote_self eq 1}} -

      {{$label_remote_self}}

      -{{include file="field_select.tpl" field=$remote_self}} -{{/if}} + {{include file="field_input.tpl" field=$poll}} - + {{include file="field_input.tpl" field=$photo}} + + + {{if $allow_remote_self eq 1}} +

      {{$label_remote_self}}

      + {{include file="field_select.tpl" field=$remote_self}} + {{/if}} + +
      - - diff --git a/view/templates/diaspora_vcard.tpl b/view/templates/diaspora_vcard.tpl index 45b9fa4ff..c71577aee 100644 --- a/view/templates/diaspora_vcard.tpl +++ b/view/templates/diaspora_vcard.tpl @@ -3,19 +3,19 @@
      Uid
      - {{$diaspora.guid}} + {{$diaspora.guid}}
      Nickname
      - {{$diaspora.nickname}} + {{$diaspora.nickname}}
      Full_name
      - {{$diaspora.fullname}} + {{$diaspora.fullname}}
      @@ -27,37 +27,37 @@
      First_name
      - {{$diaspora.firstname}} + {{$diaspora.firstname}}
      Family_name
      - {{$diaspora.lastname}} + {{$diaspora.lastname}}
      Url
      - {{$diaspora.podloc}}/ + {{$diaspora.podloc}}/
      Photo
      - +
      Photo_medium
      - +
      Photo_small
      - +
      diff --git a/view/templates/event_form.tpl b/view/templates/event_form.tpl index 1c065477b..de8de44e8 100644 --- a/view/templates/event_form.tpl +++ b/view/templates/event_form.tpl @@ -12,24 +12,15 @@ -
      {{$s_text}}
      {{$s_dsel}} -
      {{$f_text}}
      {{$f_dsel}} -
      +{{include file="field_checkbox.tpl" field=$nofinish}} -
      {{$n_text}}
      +{{include file="field_checkbox.tpl" field=$adjust}} -
      - -
      {{$a_text}}
      - -
      - -
      {{$t_text}}
      - +{{include file="field_input.tpl" field=$summary}}
      {{$d_text}}
      @@ -41,8 +32,9 @@
      -
      {{$sh_text}}
      -
      +{{if ! $eid}} +{{include file="field_checkbox.tpl" field=$share}} +{{/if}} {{$acl}} diff --git a/view/templates/event_head.tpl b/view/templates/event_head.tpl index de5ad6070..5461ea947 100644 --- a/view/templates/event_head.tpl +++ b/view/templates/event_head.tpl @@ -1,16 +1,17 @@ - + + + - {{if $editselect != 'none'}} diff --git a/view/templates/events_aside.tpl b/view/templates/events_aside.tpl new file mode 100644 index 000000000..e9b54771d --- /dev/null +++ b/view/templates/events_aside.tpl @@ -0,0 +1,9 @@ + + diff --git a/view/templates/events-js.tpl b/view/templates/events_js.tpl similarity index 100% rename from view/templates/events-js.tpl rename to view/templates/events_js.tpl diff --git a/view/templates/field_checkbox.tpl b/view/templates/field_checkbox.tpl index 06796376b..3d4a4284b 100644 --- a/view/templates/field_checkbox.tpl +++ b/view/templates/field_checkbox.tpl @@ -1,5 +1,6 @@ -
      - - - {{$field.3}} +
      + + + + {{$field.3}}
      diff --git a/view/templates/field_radio.tpl b/view/templates/field_radio.tpl index ef8ec4f9a..72228a1c2 100644 --- a/view/templates/field_radio.tpl +++ b/view/templates/field_radio.tpl @@ -1,5 +1,3 @@ - -
      diff --git a/view/templates/head.tpl b/view/templates/head.tpl index b4f82aca4..cd6bc52a0 100644 --- a/view/templates/head.tpl +++ b/view/templates/head.tpl @@ -7,6 +7,7 @@ + @@ -17,12 +18,15 @@ - - + + *}}
      @@ -16,9 +16,11 @@ onmouseover="if (typeof t{{$item.id}} != 'undefined') clearTimeout(t{{$item.id}}); openMenu('wall-item-photo-menu-button-{{$item.id}}')" onmouseout="t{{$item.id}}=setTimeout('closeMenu(\'wall-item-photo-menu-button-{{$item.id}}\'); closeMenu(\'wall-item-photo-menu-{{$item.id}}\');',200)">-->*}} {{**}} - - {{$item.name}} + + + {{$item.name}} + {{**}} {{$item.name}}{{if $item.owner_url}} {{$item.to}} {{$item.owner_name}} {{$item.vwall}}{{/if}}
      -
      {{$item.ago}}
      +
      {{**}}
      -
      {{$item.title}}
      +
      {{$item.title}}
      {{**}} -
      {{$item.body}} +
      {{$item.body}} {{**}} {{foreach $item.tags as $tag}} {{$tag}} {{/foreach}} {{**}} {{if $item.has_cats}} -
      {{$item.txt_cats}} {{foreach $item.categories as $cat}}{{$cat.name}} [{{$remove}}] {{if $cat.last}}{{else}}, {{/if}}{{/foreach}} +
      {{$item.txt_cats}} {{foreach $item.categories as $cat}}{{$cat.name}} [{{$remove}}] {{if $cat.last}}{{else}}, {{/if}}{{/foreach}}
      {{/if}} {{if $item.has_folders}} -
      {{$item.txt_folders}} {{foreach $item.folders as $cat}}{{$cat.name}} [{{$remove}}] {{if $cat.last}}{{else}}, {{/if}}{{/foreach}} +
      {{$item.txt_folders}} {{foreach $item.folders as $cat}}{{$cat.name}} [{{$remove}}] {{if $cat.last}}{{else}}, {{/if}}{{/foreach}}
      {{/if}}
      @@ -70,7 +72,7 @@
      {{/if}} {{if $item.plink}} - {{**}}{{**}} + {{**}}{{**}} {{/if}} {{if $item.edpost}} diff --git a/view/theme/diabook/templates/directory_item.tpl b/view/theme/diabook/templates/directory_item.tpl index 127b62072..fa2279ee1 100644 --- a/view/theme/diabook/templates/directory_item.tpl +++ b/view/theme/diabook/templates/directory_item.tpl @@ -28,7 +28,7 @@ {{/if}} - {{if $gender}}
      {{$gender}}
      {{$profile.gender}}
      {{/if}} + {{if $gender}}
      {{$gender}}
      {{$profile.gender}}
      {{/if}}
      {{if $marital}}
      {{$marital}}
      {{$profile.marital}}
      {{/if}} diff --git a/view/theme/diabook/templates/profile_vcard.tpl b/view/theme/diabook/templates/profile_vcard.tpl index 71e32d3e3..7628fb8d5 100644 --- a/view/theme/diabook/templates/profile_vcard.tpl +++ b/view/theme/diabook/templates/profile_vcard.tpl @@ -1,8 +1,8 @@ -
      +
      -
      {{$profile.name}}
      +
      {{$profile.name}}
      {{if $profile.edit}}
      {{$profile.edit.1}} @@ -23,31 +23,31 @@ -
      {{$profile.name}}
      +
      {{$profile.name}}
      {{if $pdesc}}
      {{$profile.pdesc}}
      {{/if}} {{if $location}}
      {{$location}}

      -
      - {{if $profile.address}}
      {{$profile.address}}
      {{/if}} +
      + {{if $profile.address}}
      {{$profile.address}}
      {{/if}} - {{$profile.locality}}{{if $profile.locality}}, {{/if}} - {{$profile.region}} - {{$profile.postal_code}} + {{$profile.locality}}{{if $profile.locality}}, {{/if}} + {{$profile.region}} + {{$profile.postal_code}} - {{if $profile.country_name}}{{$profile.country_name}}{{/if}} + {{if $profile.country_name}}{{$profile.country_name}}{{/if}}
      {{/if}} - {{if $gender}}
      {{$gender}}
      {{$profile.gender}}
      {{/if}} + {{if $gender}}
      {{$gender}}
      {{$profile.gender}}
      {{/if}} {{if $profile.pubkey}}{{/if}} {{if $marital}}
      {{$marital}}
      {{$profile.marital}}
      {{/if}} - {{if $homepage}}
      {{$homepage}}
      {{$profile.homepage}}
      {{/if}} + {{if $homepage}}
      {{$homepage}}
      {{$profile.homepage}}
      {{/if}} {{include file="diaspora_vcard.tpl"}} diff --git a/view/theme/diabook/templates/wall_thread.tpl b/view/theme/diabook/templates/wall_thread.tpl index 1d921935f..e7a3ccd18 100644 --- a/view/theme/diabook/templates/wall_thread.tpl +++ b/view/theme/diabook/templates/wall_thread.tpl @@ -5,7 +5,7 @@