diff --git a/calendar/inc/class.bocal.inc.php b/calendar/inc/class.bocal.inc.php new file mode 100644 index 0000000000..27ace1094e --- /dev/null +++ b/calendar/inc/class.bocal.inc.php @@ -0,0 +1,1705 @@ + * +* -------------------------------------------- * +* This program is free software; you can redistribute it and/or modify it * +* under the terms of the GNU General Public License as published by the * +* Free Software Foundation; either version 2 of the License, or (at your * +* option) any later version. * +\**************************************************************************/ + +/* $Id$ */ + +require_once(EGW_INCLUDE_ROOT.'/calendar/inc/class.socal.inc.php'); + +if (!defined('ACL_TYPE_IDENTIFER')) // used to mark ACL-values for the debug_message methode +{ + define('ACL_TYPE_IDENTIFER','***ACL***'); +} + +define('HOUR_s',60*60); +define('DAY_s',24*HOUR_s); +define('WEEK_s',7*DAY_s); + +/** + * Class to access all calendar data + * + * For updating calendar data look at the bocalupdate class, which extends this class. + * + * The new UI, BO and SO classes have a strikt definition, in which time-zone they operate: + * UI only operates in user-time, so there have to be no conversation at all !!! + * BO's functions take and return user-time only (!), they convert internaly everything to servertime, because + * SO operates only in server-time + * + * As this BO class deals with dates/times of several types and timezone, each variable should have a postfix + * appended, telling with type it is: _s = seconds, _su = secs in user-time, _ss = secs in server-time, _h = hours + * + * All new BO code (should be true for eGW in general) NEVER use any $_REQUEST ($_POST or $_GET) vars itself. + * Nor does it store the state of any UI-elements (eg. cat-id selectbox). All this is the task of the UI class(es) !!! + * + * All permanent debug messages of the calendar-code should done via the debug-message method of this class !!! + * + * @package calendar + * @author Ralf Becker + * @copyright (c) 2004/5 by RalfBecker-At-outdoor-training.de + * @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License + */ + +class bocal +{ + /** + * @var int $debug name of method to debug or level of debug-messages: + * False=Off as higher as more messages you get ;-) + * 1 = function-calls incl. parameters to general functions like search, read, write, delete + * 2 = function-calls to exported helper-functions like check_perms + * 4 = function-calls to exported conversation-functions like date2ts, date2array, ... + * 5 = function-calls to private functions + */ + var $debug=false; + + /** + * @var int $tz_offset_s offset in secconds between user and server-time, + * it need to be add to a server-time to get the user-time or substracted from a user-time to get the server-time + */ + var $tz_offset_s; + + /** + * @var int $now_su timestamp of actual user-time + */ + var $now_su; + + /** + * @var array $cal_prefs calendar-specific prefs + */ + var $cal_prefs; + + /** + * @var array $common_prefs common preferences + */ + var $common_prefs; + + /** + * @var int $user nummerical id of the current user-id + */ + var $user=0; + + /** + * @var array $grants grants of the current user, array with user-id / ored-ACL-rights pairs + */ + var $grants=array(); + + /** + * @var array $verbose_status translated 1-char status values to a verbose name, run through lang() by the constructor + */ + var $verbose_status = array( + 'A' => 'Accepted', + 'R' => 'Rejected', + 'T' => 'Tentative', + 'U' => 'No Response', + 'G' => 'Group invitation', + ); + /** + * @var array recur_types translates MCAL recur-types to verbose labels + */ + var $recur_types = Array( + MCAL_RECUR_NONE => 'None', + MCAL_RECUR_DAILY => 'Daily', + MCAL_RECUR_WEEKLY => 'Weekly', + MCAL_RECUR_MONTHLY_WDAY => 'Monthly (by day)', + MCAL_RECUR_MONTHLY_MDAY => 'Monthly (by date)', + MCAL_RECUR_YEARLY => 'Yearly' + ); + /** + * @var array recur_days translates MCAL recur-days to verbose labels + */ + var $recur_days = array( + MCAL_M_MONDAY => 'Monday', + MCAL_M_TUESDAY => 'Tuesday', + MCAL_M_WEDNESDAY => 'Wednesday', + MCAL_M_THURSDAY => 'Thursday', + MCAL_M_FRIDAY => 'Friday', + MCAL_M_SATURDAY => 'Saturday', + MCAL_M_SUNDAY => 'Sunday', + ); + var $so,$datetime; + /** + * @var array $resources registered scheduling resources of the calendar (gets chached in the session for performance reasons) + */ + var $resources; + /** + * @internal + * @var array $cached_event here we do some caching to read single events only once + */ + var $cached_event = array(); + var $cached_event_date_format = false; + /** + * @var array $cached_holidays holidays plus birthdays (gets cached in the session for performance reasons) + */ + var $cached_holidays; + + /** + * Constructor + */ + function bocal() + { + if ($this->debug > 0) $this->debug_message('bocal::bocal() started',True,$param); + + foreach(array( + 'so' => 'calendar.socal', + 'datetime' => 'phpgwapi.datetime', + ) as $my => $app_class) + { + list(,$class) = explode('.',$app_class); + + if (!is_object($GLOBALS['egw']->$class)) + { + //echo "

calling CreateObject($app_class)

\n".str_repeat(' ',4096); + $GLOBALS['egw']->$class = CreateObject($app_class); + } + $this->$my = &$GLOBALS['egw']->$class; + } + $this->common_prefs =& $GLOBALS['egw_info']['user']['preferences']['common']; + $this->cal_prefs =& $GLOBALS['egw_info']['user']['preferences']['calendar']; + $this->check_set_default_prefs(); + + $this->tz_offset_s = $this->datetime->tz_offset; + + $this->now_su = time() + $this->tz_offset_s; + + $this->user = $GLOBALS['egw_info']['user']['account_id']; + + $this->grants = $GLOBALS['egw']->acl->get_grants('calendar'); + + foreach($this->verbose_status as $status => $text) + { + $this->verbose_status[$status] = lang($text); + } + if (!is_array($this->resources = $GLOBALS['egw']->session->appsession('resources','calendar'))) + { + $this->resources = array(); + foreach($GLOBALS['egw']->hooks->process('calendar_resources') as $app => $data) + { + if ($data && $data['type']) + { + $this->resources[$data['type']] = $data + array('app' => $app); + } + } + $GLOBALS['egw']->session->appsession('resources','calendar',$this->resources); + } + //echo "registered resources="; _debug_array($this->resources); + + $config =& CreateObject('phpgwapi.config','calendar'); + $this->config =& $config->read_repository(); + unset($config); + } + + /** + * Add group-members as participants with status 'G' + * + * @param array $event event-array + * @return int number of added participants + */ + function enum_groups(&$event) + { + $added = 0; + foreach($event['participants'] as $uid => $status) + { + if (is_numeric($uid) && $GLOBALS['egw']->accounts->get_type($uid) == 'g' && + ($members = $GLOBALS['egw']->accounts->member($uid))) + { + foreach($members as $member) + { + $member = $member['account_id']; + if (!isset($event['participants'][$member])) + { + $event['participants'][$member] = 'G'; + ++$added; + } + } + } + } + return $added; + } + + /** + * Searches / lists calendar entries, including repeating ones + * + * @param params array with the following keys + * start date startdate of the search/list, defaults to today + * end date enddate of the search/list, defaults to start + one day + * users mixed integer user-id or array of user-id's to use, defaults to the current user + * cat_id mixed category-id or array of cat-id's, defaults to all if unset, 0 or False + * Please note: only a single cat-id, will include all sub-cats (if the common-pref 'cats_no_subs' is False) + * filter string space delimited filter-names, atm. 'all' or 'private' + * query string pattern so search for, if unset or empty all matching entries are returned (no search) + * Please Note: a search never returns repeating events more then once AND does not honor start+end date !!! + * dayswise boolean on True it returns an array with YYYYMMDD strings as keys and an array with events + * (events spanning multiple days are returned each day again (!)) otherwise it returns one array with + * the events (default), not honored in a search ==> always returns an array of events ! + * date_format string date-formats: 'ts'=timestamp (default), 'array'=array, or string with format for date + * offset boolean/int false (default) to return all entries or integer offset to return only a limited result + * enum_recuring boolean if true or not set (default) or daywise is set, each recurence of a recuring events is returned, + * otherwise the original recuring event (with the first start- + enddate) is returned + * num_rows int number of entries to return, default or if 0, max_entries from the prefs + * order column-names plus optional DESC|ASC separted by comma + * show_rejected if set rejected invitation are shown only when true, otherwise it depends on the cal-pref or a running query + * ignore_acl if set and true no check_perms for a general EGW_ACL_READ grants is performed + * enum_groups boolean if set and true, group-members will be added as participants with status 'G' + * @return array of events or array with YYYYMMDD strings / array of events pairs (depending on $daywise param) + * or false if there are no read-grants from _any_ of the requested users + */ + function &search($params) + { + $params_in = $params; + + if (!isset($params['users']) || !$params['users']) + { + // for a search use all account you have read grants from + $params['users'] = $params['query'] ? array_keys($this->grants) : $this->user; + } + if (!is_array($params['users'])) + { + $params['users'] = array($params['users']); + } + // only query calendars of users, we have READ-grants from + $users = array(); + foreach($params['users'] as $user) + { + if ($params['ignore_acl'] || $this->check_perms(EGW_ACL_READ,0,$user)) + { + if (!in_array($user,$users)) // already added? + { + $users[] = $user; + } + } + elseif ($GLOBALS['egw']->accounts->get_type($user) != 'g') + { + continue; // for non-groups (eg. users), we stop here if we have no read-rights + } + // the further code is only for real users + if (!is_numeric($user)) continue; + + // for groups we have to include the members + if ($GLOBALS['egw']->accounts->get_type($user) == 'g') + { + $members = $GLOBALS['egw']->accounts->member($user); + if (is_array($members)) + { + foreach($members as $member) + { + // use only members which gave the user a read-grant + if (!in_array($member['account_id'],$users) && + ($params['ignore_acl'] || $this->check_perms(EGW_ACL_READ,0,$member['account_id']))) + { + $users[] = $member['account_id']; + } + } + } + } + else // for users we have to include all the memberships, to get the group-events + { + $memberships = $GLOBALS['egw']->accounts->membership($user); + if (is_array($memberships)) + { + foreach($memberships as $group) + { + if (!in_array($group['account_id'],$users)) + { + $users[] = $group['account_id']; + } + } + } + } + } + // if we have no grants from the given user(s), we directly return no events / an empty array, + // as calling the so-layer without users would give the events of all users (!) + if (!count($users)) + { + return false; + } + if (isset($params['start'])) $start = $this->date2ts($params['start']); + + if (isset($params['end'])) + { + $end = $this->date2ts($params['end']); + $this->check_move_horizont($end); + } + $daywise = !isset($params['daywise']) ? False : !!$params['daywise']; + $enum_recuring = $daywise || !isset($params['enum_recuring']) || !!$params['enum_recuring']; + $cat_id = isset($params['cat_id']) ? $params['cat_id'] : 0; + $filter = isset($params['filter']) ? $params['filter'] : 'all'; + $offset = isset($params['offset']) && $params['offset'] !== false ? (int) $params['offset'] : false; + $show_rejected = isset($params['show_rejected']) ? $params['show_rejected'] : $this->cal_prefs['show_rejected'] || $params['query']; + if ($this->debug && ($this->debug > 1 || $this->debug == 'search')) + { + $this->debug_message('bocal::search(%1) start=%2, end=%3, daywise=%4, cat_id=%5, filter=%6, query=%7, offset=%8, num_rows=%9, order=%10, show_rejected=%11)', + True,$params,$start,$end,$daywise,$cat_id,$filter,$params['query'],$offset,(int)$params['num_rows'],$params['order'],$show_rejected); + } + // date2ts(,true) converts to server time, db2data converts again to user-time + $events =& $this->so->search(isset($start) ? $this->date2ts($start,true) : null,isset($end) ? $this->date2ts($end,true) : null, + $users,$cat_id,$filter,$params['query'],$offset,(int)$params['num_rows'],$params['order'],$show_rejected); + $this->total = $this->so->total; + $this->db2data($events,isset($params['date_format']) ? $params['date_format'] : 'ts'); + + foreach($events as $id => $event) + { + if ($params['enum_groups'] && $this->enum_groups($event)) + { + $events[$id] = $event; + } + if (!$this->check_perms(EGW_ACL_READ,$event)) + { + $this->clear_private_infos($events[$id],$users); + } + } + + if ($daywise) + { + if ($this->debug && ($this->debug > 2 || $this->debug == 'search')) + { + $this->debug_message('socalendar::search daywise sorting from %1 to %2 of %3',False,$start,$end,$events); + } + // create empty entries for each day in the reported time + for($ts = $start; $ts <= $end; $ts += DAY_s) + { + $daysEvents[$this->date2string($ts)] = array(); + } + foreach($events as $k => $event) + { + $e_start = max($this->date2ts($event['start']),$start); + // $event['end']['raw']-1 to allow events to end on a full hour/day without the need to enter it as minute=59 + $e_end = min($this->date2ts($event['end'])-1,$end); + + // add event to each day in the reported time + for($ts = $e_start; $ts <= $e_end; $ts += DAY_s) + { + $daysEvents[$ymd = $this->date2string($ts)][] =& $events[$k]; + } + if ($ymd != ($last = $this->date2string($e_end))) + { + $daysEvents[$last][] =& $events[$k]; + } + } + $events =& $daysEvents; + if ($this->debug && ($this->debug > 2 || $this->debug == 'search')) + { + $this->debug_message('socalendar::search daywise events=%1',False,$events); + } + } + elseif(!$enum_recuring) + { + $recur_ids = array(); + foreach($events as $k => $event) + { + if ($event['recur_type'] != MCAL_RECUR_NONE) + { + if (!in_array($event['id'],$recur_ids)) + { + $recur_ids[] = $event['id']; + } + unset($events[$k]); + } + } + if (count($recur_ids)) + { + $events = array_merge($this->read($recur_ids,null,false,$params['date_format']),$events); + } + } + if ($this->debug && ($this->debug > 0 || $this->debug == 'search')) + { + $this->debug_message('bocal::search(%1)=%2',True,$params,$events); + } + return $events; + } + + /** + * Clears all non-private info from a privat event + * + * That function only returns the infos allowed to be viewed by people without EGW_ACL_PRIVATE grants + * + * @param array &$event + * @param array $allowed_participants ids of the allowed participants, eg. the ones the search is over or eg. the owner of the calendar + */ + function clear_private_infos(&$event,$allowed_participants = array()) + { + $event = array( + 'id' => $event['id'], + 'start' => $event['start'], + 'end' => $event['end'], + 'title' => lang('private'), + 'participants' => array_intersect_key($event['participants'],array_flip($allowed_participants)), + 'public'=> 0, + 'category' => $event['category'], // category is visible anyway, eg. by using planner by cat + 'non_blocking' => $event['non_blocking'], + ); + } + + /** + * check and evtl. move the horizont (maximum date for unlimited recuring events) to a new date + * + * @internal automaticaly called by search + * @param mixed $new_horizont time to set the horizont to (user-time) + */ + function check_move_horizont($new_horizont) + { + if ((int) $this->debug >= 2 || $this->debug == 'check_move_horizont') + { + $this->debug_message('bocal::check_move_horizont(%1) horizont=%2',true,$new_horizont,$this->config['horizont']); + } + $new_horizont = $this->date2ts($new_horizont,true); // now we are in server-time, where this function operates + + if ($new_horizont <= $this->config['horizont']) // no move necessary + { + if ($this->debug == 'check_move_horizont') $this->debug_message('bocal::check_move_horizont(%1) horizont=%2 is bigger ==> nothing to do',true,$new_horizont,$this->config['horizont']); + return; + } + if ($new_horizont < time()+31*DAY_s) + { + $new_horizont = time()+31*DAY_s; + } + $old_horizont = $this->config['horizont']; + $this->config['horizont'] = $new_horizont; + + // create further recurances for all recuring and not yet (at the old horizont) ended events + if (($recuring = $this->so->unfinished_recuring($old_horizont))) + { + foreach($this->read(array_keys($recuring)) as $cal_id => $event) + { + if ($this->debug == 'check_move_horizont') + { + $this->debug_message('bocal::check_move_horizont(%1): calling set_recurrences(%2,%3)',true,$new_horizont,$event,$old_horizont); + } + // insert everything behind max(cal_start), which can be less then $old_horizont because of bugs in the past + $this->set_recurrences($event,$recuring[$cal_id]+1+$this->tz_offset_s); // set_recurences operates in user-time! + } + } + // update the horizont + $config =& CreateObject('phpgwapi.config','calendar'); + $config->save_value('horizont',$this->config['horizont'],'calendar'); + + if ($this->debug == 'check_move_horizont') $this->debug_message('bocal::check_move_horizont(%1) new horizont=%2, exiting',true,$new_horizont,$this->config['horizont']); + } + + /** + * set all recurances for an event til the defined horizont $this->config['horizont'] + * + * @param array $event + * @param mixed $start=0 minimum start-time for new recurances or !$start = since the start of the event + */ + function set_recurrences($event,$start=0) + { + if ($this->debug && ((int) $this->debug >= 2 || $this->debug == 'set_recurrences' || $this->debug == 'check_move_horizont')) + { + $this->debug_message('bocal::set_recurrences(%1,%2)',true,$event,$start); + } + // check if the caller gave the participants and if not read them from the DB + if (!isset($event['participants'])) + { + list(,$event_read) = each($this->so->read($event['id'])); + $event['participants'] = $event_read['participants']; + } + if (!$start) $start = $event['start']; + + $events = array(); + $this->insert_all_repetitions($event,$start,$this->date2ts($this->config['horizont'],true),$events,null); + + foreach($events as $event) + { + $this->so->recurrence($event['id'],$this->date2ts($event['start'],true),$this->date2ts($event['end'],true),$event['participants']); + } + } + + /** + * convert data read from the db, eg. convert server to user-time + * + * @param array &$events array of event-arrays (reference) + * @param $date_format='ts' date-formats: 'ts'=timestamp, 'server'=timestamp in server-time, 'array'=array or string with date-format + */ + function db2data(&$events,$date_format='ts') + { + if (!is_array($events)) echo "

bocal::db2data(\$events,$date_format) \$events is no array
\n".function_backtrace()."

\n"; + foreach($events as $id => $event) + { + // we convert here from the server-time timestamps to user-time and (optional) to a different date-format! + foreach(array('start','end','modified','recur_enddate') as $ts) + { + if (empty($event[$ts])) continue; + + $events[$id][$ts] = $this->date2usertime($event[$ts],$date_format); + } + // same with the recur exceptions + if (isset($event['recur_exception']) && is_array($event['recur_exception'])) + { + foreach($event['recur_exception'] as $n => $date) + { + $events[$id]['recur_exception'][$n] = $this->date2usertime($date,$date_format); + } + } + // same with the alarms + if (isset($event['alarm']) && is_array($event['alarm'])) + { + foreach($event['alarm'] as $n => $alarm) + { + $events[$id]['alarm'][$n]['time'] = $this->date2usertime($alarm['time'],$date_format); + } + } + } + } + + /** + * convert a date from server to user-time + * + * @param int $date timestamp in server-time + * @param $date_format='ts' date-formats: 'ts'=timestamp, 'server'=timestamp in server-time, 'array'=array or string with date-format + */ + function date2usertime($ts,$date_format='ts') + { + if (empty($ts)) return $ts; + + switch ($date_format) + { + case 'ts': + return $ts + $this->tz_offset_s; + + case 'server': + return $ts; + + case 'array': + return $this->date2array((int) $ts,true); + + case 'string': + return $this->date2string($ts,true); + } + return $this->date2string($ts,true,$date_format); + } + + /** + * Reads a calendar-entry + * + * @param int/array/string $ids id or array of id's of the entries to read, or string with a single uid + * @param mixed $date=null date to specify a single event of a series + * @param boolean $ignore_acl should we ignore the acl, default False for a single id, true for multiple id's + * @param string $date_format='ts' date-formats: 'ts'=timestamp, 'server'=timestamp in servertime, 'array'=array, or string with date-format + * @return boolean/array event or array of id => event pairs, false if the acl-check went wrong, null if $ids not found + */ + function read($ids,$date=null,$ignore_acl=False,$date_format='ts') + { + if ($date) $date = $this->date2ts($date); + + if ($ignore_acl || is_array($ids) || ($return = $this->check_perms(EGW_ACL_READ,$ids,0,$date_format))) + { + if (is_array($ids) || !isset($this->cached_event['id']) || $this->cached_event['id'] != $ids || + $this->cached_event_date_format != $date_format || + !is_null($date) && $this->cached_event['start'] < $date && $this->cached_event['recur_type'] != MCAL_RECUR_NONE) + { + $events = $this->so->read($ids,$date ? $this->date2ts($date,true) : 0); + + if ($events) + { + $this->db2data($events,$date_format); + + if (is_array($ids)) + { + $return =& $events; + } + else + { + $this->cached_event = array_shift($events); + $this->cached_event_date_format = $date_format; + $return =& $this->cached_event; + } + } + } + else + { + $return =& $this->cached_event; + } + } + if ($this->debug && ($this->debug > 1 || $this->debug == 'read')) + { + $this->debug_message('bocal::read(%1,%2,%3,%4)=%5',True,$ids,$date,$ignore_acl,$date_format,$return); + } + return $return; + } + + /** + * Inserts all repetions of $event in the timespan between $start and $end into $events + * + * As events can have recur-exceptions, only those event-date not having one, should get inserted. + * The caller supplies an array with the already inserted exceptions. + * + * The new entries are just appended to $entries, so $events is no longer sorted by startdate !!! + * Unlike the old code the start- and end-date of the events should be adapted here !!! + * + * TODO: This code is mainly copied from bocalendar and need to be rewritten for the changed algorithm: + * We insert now all repetions of one event in one go. It should be possible to calculate the time-difference + * of the used recur-type and add all events in one simple for-loop. Daylightsaving changes need to be taken into Account. + * + * @param $event array repeating event whos repetions should be inserted + * @param $start mixed start-date + * @param $end mixed end-date + * @param $events array where the repetions get inserted + * @param $recur_exceptions array with date (in Ymd) as key (and True as values) + */ + function insert_all_repetitions($event,$start,$end,&$events,$recur_exceptions) + { + if ((int) $this->debug >= 3 || $this->debug == 'set_recurrences' || $this->debug == 'check_move_horizont' || $this->debug == 'insert_all_repitions') + { + $this->debug_message('bocal::insert_all_repitions(%1,%2,%3,&$event,%4)',true,$event,$start,$end,$recur_exceptions); + } + $start_in = $start; $end_in = $end; + + $start = $this->date2ts($start); + $end = $this->date2ts($end); + $event_start_ts = $this->date2ts($event['start']); + $event_end_ts = $this->date2ts($event['end']); + + if ($this->debug && ((int) $this->debug > 3 || $this->debug == 'insert_all_repetions' || $this->debug == 'check_move_horizont' || $this->debug == 'insert_all_repitions')) + { + $this->debug_message('bocal::insert_all_repetions(%1,start=%2,end=%3,,%4) starting...',True,$event,$start_in,$end_in,$recur_exceptions); + } + $id = $event['id']; + $event_start_arr = $this->date2array($event['start']); + // to be able to calculate the repetitions as difference to the start-date, + // both need to be calculated without daylight saving: mktime(,,,,,,0) + $event_start_daybegin_ts = adodb_mktime(0,0,0,$event_start_arr['month'],$event_start_arr['day'],$event_start_arr['year'],0); + + if($event['recur_enddate']) + { + $recur_end_ymd = $this->date2string($event['recur_enddate']); + } + else + { + $recur_end_ymd = $this->date2string(adodb_mktime(0,0,0,1,1,5+adodb_date('Y'))); // go max. 5 years from now + } + + // We only need to compute the intersection between our reported time-span and the live-time of the event + // To catch all multiday repeated events (eg. second days), we need to start the length of the even earlier + // then our original report-starttime + $event_length = $event_end_ts - $event_start_ts; + $start_ts = max($event_start_ts,$start-$event_length); + // we need to add 26*60*60-1 to the recur_enddate as its hour+minute are 0 + $end_ts = $event['recur_enddate'] ? min($this->date2ts($event['recur_enddate'])+DAY_s-1,$end) : $end; + + for($ts = $start_ts; $ts < $end_ts; $ts += DAY_s) + { + $search_date_ymd = (int)$this->date2string($ts); + + $have_exception = !is_null($recur_exceptions) && isset($recur_exceptions[$search_date_ymd]); + + if (!$have_exception) // no execption by an edited event => check the deleted ones + { + foreach((array)$event['recur_exception'] as $exception_ts) + { + $have_exception = $search_date_ymd == (int)$this->date2string($exception_ts); + } + } + if ($this->debug && ((int) $this->debug > 3 || $this->debug == 'insert_all_repetions' || $this->debug == 'check_move_horizont' || $this->debug == 'insert_all_repitions')) + { + $this->debug_message('bocal::insert_all_repetions(...,%1) checking recur_exceptions[%2] and event[recur_exceptions]=%3 ==> %4',False, + $recur_exceptions,$search_date_ymd,$event['recur_exception'],$have_exception); + } + if ($have_exception) + { + continue; // we already have an exception for that date + } + $search_date_year = adodb_date('Y',$ts); + $search_date_month = adodb_date('m',$ts); + $search_date_day = adodb_date('d',$ts); + $search_date_dow = adodb_date('w',$ts); + // to be able to calculate the repetitions as difference to the start-date, + // both need to be calculated without daylight saving: mktime(,,,,,,0) + $search_beg_day = adodb_mktime(0,0,0,$search_date_month,$search_date_day,$search_date_year,0); + + if ($search_date_ymd == $event_start_arr['full']) // first occurence + { + $this->add_adjusted_event($events,$event,$search_date_ymd); + continue; + } + $freq = $event['recur_interval']; + $type = $event['recur_type']; + switch($type) + { + case MCAL_RECUR_DAILY: + if($this->debug > 4) + { + echo ''."\n"; + } + if ($freq == 1 && $event['recur_enddate'] && $search_date_ymd <= $recur_end_ymd) + { + $this->add_adjusted_event($events,$event,$search_date_ymd); + } + elseif (floor(($search_beg_day - $event_start_daybegin_ts)/DAY_s) % $freq) + { + continue; + } + else + { + $this->add_adjusted_event($events,$event,$search_date_ymd); + } + break; + case MCAL_RECUR_WEEKLY: + if (floor(($search_beg_day - $event_start_daybegin_ts)/WEEK_s) % $freq) + { + continue; + } + $check = 0; + switch($search_date_dow) + { + case 0: + $check = MCAL_M_SUNDAY; + break; + case 1: + $check = MCAL_M_MONDAY; + break; + case 2: + $check = MCAL_M_TUESDAY; + break; + case 3: + $check = MCAL_M_WEDNESDAY; + break; + case 4: + $check = MCAL_M_THURSDAY; + break; + case 5: + $check = MCAL_M_FRIDAY; + break; + case 6: + $check = MCAL_M_SATURDAY; + break; + } + if ($event['recur_data'] & $check) + { + $this->add_adjusted_event($events,$event,$search_date_ymd); + } + break; + case MCAL_RECUR_MONTHLY_WDAY: + if ((($search_date_year - $event_start_arr['year']) * 12 + $search_date_month - $event_start_arr['month']) % $freq) + { + continue; + } + + if (($GLOBALS['egw']->datetime->day_of_week($event_start_arr['year'],$event_start_arr['month'],$event_start_arr['day']) == $GLOBALS['egw']->datetime->day_of_week($search_date_year,$search_date_month,$search_date_day)) && + (ceil($event_start_arr['day']/7) == ceil($search_date_day/7))) + { + $this->add_adjusted_event($events,$event,$search_date_ymd); + } + break; + case MCAL_RECUR_MONTHLY_MDAY: + if ((($search_date_year - $event_start_arr['year']) * 12 + $search_date_month - $event_start_arr['month']) % $freq) + { + continue; + } + if ($search_date_day == $event_start_arr['day']) + { + $this->add_adjusted_event($events,$event,$search_date_ymd); + } + break; + case MCAL_RECUR_YEARLY: + if (($search_date_year - $event_start_arr['year']) % $freq) + { + continue; + } + if (adodb_date('dm',$ts) == adodb_date('dm',$event_start_daybegin_ts)) + { + $this->add_adjusted_event($events,$event,$search_date_ymd); + } + break; + } // switch(recur-type) + } // for($date = ...) + if ($this->debug && ((int) $this->debug > 2 || $this->debug == 'insert_all_repetions' || $this->debug == 'check_move_horizont' || $this->debug == 'insert_all_repitions')) + { + $this->debug_message('bocal::insert_all_repetions(%1,start=%2,end=%3,events,exections=%4) events=%5',True,$event,$start_in,$end_in,$recur_exceptions,$events); + } + } + + /** + * Adds one repetion of $event for $date_ymd to the $events array, after adjusting its start- and end-time + * + * @param $events array in which the event gets inserted + * @param $event array event to insert, it has start- and end-date of the first recurrence, not of $date_ymd + * @param $date_ymd int/string of the date of the event + */ + function add_adjusted_event(&$events,$event,$date_ymd) + { + $event_in = $event; + // calculate the new start- and end-time + $length_s = $this->date2ts($event['end']) - $this->date2ts($event['start']); + $event_start_arr = $this->date2array($event['start']); + + $date_arr = $this->date2array((string) $date_ymd); + $date_arr['hour'] = $event_start_arr['hour']; + $date_arr['minute'] = $event_start_arr['minute']; + $date_arr['second'] = $event_start_arr['second']; + unset($date_arr['raw']); // else date2ts would use it + $event['start'] = $this->date2ts($date_arr); + $event['end'] = $event['start'] + $length_s; + + $events[] = $event; + + if ($this->debug && ($this->debug > 2 || $this->debug == 'add_adjust_event')) + { + $this->debug_message('bocal::add_adjust_event(,%1,%2) as %3',True,$event_in,$date_ymd,$event); + } + } + + /** + * Fetch information about a resource + * + * We do some caching here, as the resource itself might not do it. + * + * @param string $uid string with one-letter resource-type and numerical resource-id, eg. "r19" + * @return array/boolean array with keys res_id,cat_id,name,useable (name definied by max_quantity in $this->resources),rights,responsible or false if $uid is not found + */ + function resource_info($uid) + { + static $res_info_cache = array(); + + if (!isset($res_info_cache[$uid])) + { + list($res_info_cache[$uid]) = $this->resources[$uid{0}]['info'] ? ExecMethod($this->resources[$uid{0}]['info'],substr($uid,1)) : false; + } + if ($this->debug && ($this->debug > 2 || $this->debug == 'resource_info')) + { + $this->debug_message('bocal::resource_info(%1) = %2',True,$uid,$res_info_cache[$uid]); + } + return $res_info_cache[$uid]; + } + + /** + * Checks if the current user has the necessary ACL rights + * + * The check is performed on an event or generally on the cal of an other user + * + * Note: Participating in an event is considered as haveing read-access on that event, + * even if you have no general read-grant from that user. + * + * @param int $needed necessary ACL right: EGW_ACL_{READ|EDIT|DELETE} + * @param mixed $event event as array or the event-id or 0 for a general check + * @param int $other uid to check (if event==0) or 0 to check against $this->user + * @param string $date_format='ts' date-formats: 'ts'=timestamp, 'array'=array, 'string'=iso8601 string for xmlrpc + * @return boolean true permission granted, false for permission denied or null if event not found + */ + function check_perms($needed,$event=0,$other=0,$date_format='ts') + { + $event_in = $event; + if ($other && !is_numeric($other)) + { + $resource = $this->resource_info($other); + + return $needed & $resource['rights']; + } + if (is_int($event) && $event == 0) + { + $owner = $other ? $other : $this->user; + } + else + { + if (!is_array($event)) + { + $event = $this->read($event,null,True,$date_format); // = no ACL check !!! + } + if (!is_array($event)) + { + if ($this->xmlrpc) + { + $GLOBALS['server']->xmlrpc_error($GLOBALS['xmlrpcerr']['not_exist'],$GLOBALS['xmlrpcstr']['not_exist']); + } + return null; // event not found + } + $owner = $event['owner']; + $private = !$event['public']; + } + $user = $GLOBALS['egw_info']['user']['account_id']; + $grants = $this->grants[$owner]; + + if (is_array($event) && $needed == EGW_ACL_READ) + { + // Check if the $user is one of the participants or has a read-grant from one of them + // in that case he has an implicite READ grant for that event + // + foreach($event['participants'] as $uid => $accept) + { + if ($uid == $user) + { + // if we are a participant, we have an implicite READ and PRIVAT grant + $grants |= EGW_ACL_READ | EGW_ACL_PRIVATE; + break; + } + elseif ($this->grants[$uid] & EGW_ACL_READ) + { + // if we have a READ grant from a participant, we dont give an implicit privat grant too + $grants |= EGW_ACL_READ; + // we cant break here, as we might be a participant too, and would miss the privat grant + } + elseif (!is_numeric($uid)) + { + // if we have a resource as participant + $resource = $this->resource_info($uid); + $grants |= $resource['rights']; + } + } + } + + if ($GLOBALS['egw']->accounts->get_type($owner) == 'g' && $needed == EGW_ACL_ADD) + { + $access = False; // a group can't be the owner of an event + } + else + { + $access = $user == $owner || $grants & $needed && (!$private || $grants & EGW_ACL_PRIVATE); + } + if ($this->debug && ($this->debug > 2 || $this->debug == 'check_perms')) + { + $this->debug_message('bocal::check_perms(%1,%2,%3)=%4',True,ACL_TYPE_IDENTIFER.$needed,$event,$other,$access); + } + return $access; + } + + /** + * Converts several date-types to a timestamp and optionaly converts user- to server-time + * + * @param $date mixed date to convert, should be one of the following types + * string (!) in form YYYYMMDD or iso8601 YYYY-MM-DDThh:mm:ss or YYYYMMDDThhmmss + * int already a timestamp + * array with keys 'second', 'minute', 'hour', 'day' or 'mday' (depricated !), 'month' and 'year' + * @param $user2server_time boolean conversation between user- and server-time default False == Off + */ + function date2ts($date,$user2server=False) + { + $date_in = $date; + + + switch(gettype($date)) + { + case 'string': // YYYYMMDD or iso8601 YYYY-MM-DDThh:mm:ss string + if (is_numeric($date) && $date > 21000000) + { + $date = (int) $date; // this is already as timestamp + break; + } + // ToDo: evaluate evtl. added timezone + + // removing all non-nummerical chars, gives YYYYMMDDhhmmss, independent of the iso8601 format + $date = str_replace(array('-',':','T','Z',' '),'',$date); + $date = array( + 'year' => (int) substr($date,0,4), + 'month' => (int) substr($date,4,2), + 'day' => (int) substr($date,6,2), + 'hour' => (int) substr($date,8,2), + 'minute' => (int) substr($date,10,2), + 'second' => (int) substr($date,12,2), + ); + // fall-through + case 'array': // day, month and year keys + if (isset($date['raw']) && $date['raw']) // we already have a timestamp + { + $date = $date['raw']; + break; + } + if (!isset($date['year']) && isset($date['full'])) + { + $date['year'] = (int) substr($date['full'],0,4); + $date['month'] = (int) substr($date['full'],4,2); + $date['day'] = (int) substr($date['full'],6,2); + } + $date = adodb_mktime((int)$date['hour'],(int)$date['minute'],(int)$date['second'],(int)$date['month'], + (int) (isset($date['day']) ? $date['day'] : $date['mday']),(int)$date['year']); + break; + case 'integer': // already a timestamp + break; + default: // eg. boolean, means now in user-time (!) + $date = $this->now_su; + break; + } + if ($user2server) + { + $date -= $this->tz_offset_s; + } + if ($this->debug && ($this->debug > 3 || $this->debug == 'date2ts')) + { + $this->debug_message('bocal::date2ts(%1,user2server=%2)=%3)',False,$date_in,$user2server,$date); + } + return $date; + } + + /** + * Converts a date to an array and optionaly converts server- to user-time + * + * @param $date mixed date to convert + * @param $server2user_time boolean conversation between user- and server-time default False == Off + * @return array with keys 'second', 'minute', 'hour', 'day', 'month', 'year', 'raw' (timestamp) and 'full' (Ymd-string) + */ + function date2array($date,$server2user=False) + { + $date_called = $date; + + if (!is_array($date) || count($date) < 8 || $server2user) // do we need a conversation + { + if (!is_int($date)) + { + $date = $this->date2ts($date); + } + if ($server2user) + { + $date += $this->tz_offset_s; + } + $arr = array(); + foreach(array('second'=>'s','minute'=>'i','hour'=>'H','day'=>'d','month'=>'m','year'=>'Y','full'=>'Ymd') as $key => $frmt) + { + $arr[$key] = (int) adodb_date($frmt,$date); + } + $arr['raw'] = $date; + } + if ($this->debug && ($this->debug > 3 || $this->debug == 'date2array')) + { + $this->debug_message('bocal::date2array(%1,server2user=%2)=%3)',False,$date_called,$server2user,$arr); + } + return $arr; + } + + /** + * Converts a date as timestamp or array to a date-string and optionaly converts server- to user-time + * + * @param mixed $date integer timestamp or array with ('year','month',..,'second') to convert + * @param boolean $server2user_time conversation between user- and server-time default False == Off, not used if $format ends with \Z + * @param string $format='Ymd' format of the date to return, eg. 'Y-m-d\TH:i:sO' (2005-11-01T15:30:00+0100) + * @return string date formatted according to $format + */ + function date2string($date,$server2user=False,$format='Ymd') + { + $date_in = $date; + + if (!$format) $format = 'Ymd'; + + if (is_array($date) && isset($date['full']) && !$server2user && $format == 'Ymd') + { + $date = $date['full']; + } + else + { + $date = $this->date2ts($date,False); + + // if timezone is requested, we dont need to convert to user-time + if (($tz_used = substr($format,-1)) == 'O' || $tz_used == 'Z') $server2user = false; + + if ($server2user && substr($format,-1) ) + { + $date += $this->tz_offset_s; + } + if (substr($format,-2) == '\\Z') // GMT aka. Zulu time + { + $date = adodb_gmdate($format,$date); + } + else + { + $date = adodb_date($format,$date); + } + } + if ($this->debug && ($this->debug > 3 || $this->debug == 'date2string')) + { + $this->debug_message('bocal::date2string(%1,server2user=%2,format=%3)=%4)',False,$date_in,$server2user,$format,$date); + } + return $date; + } + + /** + * Formats a date given as timestamp or array + * + * @param mixed $date integer timestamp or array with ('year','month',..,'second') to convert + * @param string $format='' default common_prefs[dateformat], common_prefs[timeformat] + * @return string the formated date (incl. time) + */ + function format_date($date,$format='') + { + if (!$format) + { + $format = $this->common_prefs['dateformat'].', '.($this->common_prefs['timeformat'] != '12' ? 'H:i' : 'h:i a'); + } + return adodb_date($format,$this->date2ts($date,False)); + } + + /** + * Gives out a debug-message with certain parameters + * + * All permanent debug-messages in the calendar should be done by this function !!! + * (In future they may be logged or sent as xmlrpc-faults back.) + * + * Permanent debug-message need to make sure NOT to give secret information like passwords !!! + * + * This function do NOT honor the setting of the debug variable, you may use it like + * if ($this->debug > N) $this->debug_message('Error ;-)'); + * + * The parameters get formated depending on their type. ACL-values need a ACL_TYPE_IDENTIFER prefix. + * + * @param $msg string message with parameters/variables like lang(), eg. '%1' + * @param $backtrace include a function-backtrace, default True=On + * should only be set to False=Off, if your code ensures a call with backtrace=On was made before !!! + * @param $param mixed a variable number of parameters, to be inserted in $msg + * arrays get serialized with print_r() ! + */ + function debug_message($msg,$backtrace=True) + { + static $acl2string = array( + 0 => 'ACL-UNKNOWN', + EGW_ACL_READ => 'ACL_READ', + EGW_ACL_WRITE => 'ACL_WRITE', + EGW_ACL_ADD => 'ACL_ADD', + EGW_ACL_DELETE => 'ACL_DELETE', + EGW_ACL_PRIVATE => 'ACL_PRIVATE', + ); + for($i = 2; $i < func_num_args(); ++$i) + { + $param = func_get_arg($i); + + if (is_null($param)) + { + $param='NULL'; + } + else + { + switch(gettype($param)) + { + case 'string': + if (substr($param,0,strlen(ACL_TYPE_IDENTIFER))== ACL_TYPE_IDENTIFER) + { + $param = (int) substr($param,strlen(ACL_TYPE_IDENTIFER)); + $param = isset($acl2string[$param]) ? $acl2string[$param] : $acl2string[0]; + } + else + { + $param = "'$param'"; + } + break; + case 'array': + case 'object': + list(,$content) = @each($param); + $do_pre = is_array($param) ? count($param) > 6 || is_array($content)&&count($content) : True; + $param = ($do_pre ? '
' : '').print_r($param,True).($do_pre ? '
' : ''); + break; + case 'boolean': + $param = $param ? 'True' : 'False'; + break; + case 'integer': + if ($param >= mktime(0,0,0,1,1,2000)) $param = adodb_date('Y-m-d H:i:s',$param)." ($param)"; + break; + } + } + $msg = str_replace('%'.($i-1),$param,$msg); + } + echo '

'.$msg."
\n".($backtrace ? 'Backtrace: '.function_backtrace(1)."

\n" : '').str_repeat(' ',4096); + } + + /** + * Formats one or two dates (range) as long date (full monthname), optionaly with a time + * + * @param mixed $first first date + * @param mixed $last=0 last date if != 0 (default) + * @param boolean $display_time=false should a time be displayed too + * @param boolean $display_day=false should a day-name prefix the date, eg. monday June 20, 2006 + * @return string with formated date + */ + function long_date($first,$last=0,$display_time=false,$display_day=false) + { + $first = $this->date2array($first); + if ($last) + { + $last = $this->date2array($last); + } + $datefmt = $this->common_prefs['dateformat']; + $timefmt = $this->common_prefs['timeformat'] == 12 ? 'h:i a' : 'H:i'; + + $month_before_day = strtolower($datefmt[0]) == 'm' || + strtolower($datefmt[2]) == 'm' && $datefmt[4] == 'd'; + + if ($display_day) + { + $range = lang(adodb_date('l',$first['raw'])).($this->common_prefs['dateformat']{0} != 'd' ? ' ' : ', '); + } + for ($i = 0; $i < 5; $i += 2) + { + switch($datefmt[$i]) + { + case 'd': + $range .= $first['day'] . ($datefmt[1] == '.' ? '.' : ''); + if ($first['month'] != $last['month'] || $first['year'] != $last['year']) + { + if (!$month_before_day) + { + $range .= ' '.lang(strftime('%B',$first['raw'])); + } + if ($first['year'] != $last['year'] && $datefmt[0] != 'Y') + { + $range .= ($datefmt[0] != 'd' ? ', ' : ' ') . $first['year']; + } + if ($display_time) + { + $range .= ' '.adodb_date($timefmt,$first['raw']); + } + if (!$last) + { + return $range; + } + $range .= ' - '; + + if ($first['year'] != $last['year'] && $datefmt[0] == 'Y') + { + $range .= $last['year'] . ', '; + } + + if ($month_before_day) + { + $range .= lang(strftime('%B',$last['raw'])); + } + } + else + { + if ($display_time) + { + $range .= ' '.adodb_date($timefmt,$first['raw']); + } + $range .= ' - '; + } + $range .= ' ' . $last['day'] . ($datefmt[1] == '.' ? '.' : ''); + break; + case 'm': + case 'M': + $range .= ' '.lang(strftime('%B',$month_before_day ? $first['raw'] : $last['raw'])) . ' '; + break; + case 'Y': + if ($datefmt[0] != 'm') + { + $range .= ' ' . ($datefmt[0] == 'Y' ? $first['year'].($datefmt[2] == 'd' ? ', ' : ' ') : $last['year'].' '); + } + break; + } + } + if ($display_time && $last) + { + $range .= ' '.adodb_date($timefmt,$last['raw']); + } + if ($datefmt[4] == 'Y' && $datefmt[0] == 'm') + { + $range .= ', ' . $last['year']; + } + return $range; + } + + /** + * Displays a timespan, eg. $both ? "10:00 - 13:00: 3h" (10:00 am - 1 pm: 3h) : "10:00 3h" (10:00 am 3h) + * + * @param int $start_m start time in minutes since 0h + * @param int $end_m end time in minutes since 0h + * @param boolean $both=false display the end-time too, duration is always displayed + */ + function timespan($start_m,$end_m,$both=false) + { + $duration = $end_m - $start_m; + if ($end_m == 24*60-1) ++$duration; + $duration = floor($duration/60).lang('h').($duration%60 ? $duration%60 : ''); + + $timespan = $t = $GLOBALS['egw']->common->formattime(sprintf('%02d',$start_m/60),sprintf('%02d',$start_m%60)); + + if ($both) // end-time too + { + $timespan .= ' - '.$GLOBALS['egw']->common->formattime(sprintf('%02d',$end_m/60),sprintf('%02d',$end_m%60)); + // dont double am/pm if they are the same in both times + if ($this->common_prefs['timeformat'] == 12 && substr($timespan,-2) == substr($t,-2)) + { + $timespan = str_replace($t,substr($t,0,-3),$timespan); + } + $timespan .= ':'; + } + return $timespan . ' ' . $duration; + } + + /** + * Converts a participant into a (readable) user- or resource-name + * + * @param $id string/int id of user or resource + * @return string with name + */ + function participant_name($id,$use_type=false) + { + static $id2lid = array(); + + if ($use_type && $use_type != 'u') $id = $use_type.$id; + + if (!isset($id2lid[$id])) + { + if (!is_numeric($id)) + { + $res_info = $this->resource_info($id); + $id2lid[$id] = $res_info && isset($res_info['name']) ? $res_info['name'] : "resource($id)"; + } + else + { + $id2lid[$id] = $GLOBALS['egw']->common->grab_owner_name($id); + } + } + return $id2lid[$id]; + } + + /** + * Converts participants array of an event into array of (readable) participant-names with status + * + * @param array $event event-data + * @param boolean $long_status=false should the long/verbose status or only the one letter shortcut be used + * @param boolean $show_group_invitation=false show group-invitations (status == 'G') or not (default) + * @return array with id / names with status pairs + */ + function participants($event,$long_status=False,$show_group_invitation=false) + { + //_debug_array($event); + $names = array(); + foreach($event['participants'] as $id => $status) + { + if ($status == 'G' && !$show_group_invitation) continue; // dont show group-invitation + + $status = $this->verbose_status[$status]; + + if (!$long_status) + { + $status = $status[0]; + } + $names[$id] = $this->participant_name($id).' ('.$status.')'; + } + return $names; + } + + /** + * Converts category string of an event into array of (readable) category-names + * + * @param $category string cat-id (multiple id's commaseparated) + * @param $color int color of the category, if multiple cats, the color of the last one with color is returned + * @return array with id / names + */ + function categories($category,&$color) + { + static $id2cat = array(); + $cats = array(); + $color = 0; + if (!is_object($this->cats)) + { + $this->cats =& CreateObject('phpgwapi.categories','','calendar'); + } + foreach(explode(',',$category) as $cat_id) + { + if (!$cat_id) continue; + + if (!isset($id2cat[$cat_id])) + { + list($id2cat[$cat_id]) = $this->cats->return_single($cat_id); + $id2cat[$cat_id]['data'] = unserialize($id2cat[$cat_id]['data']); + } + $cat = $id2cat[$cat_id]; + + if ($cat['data']['color'] || preg_match('/(#[0-9A-Fa-f]{6})/',$cat['description'],$parts)) + { + $color = $cat['data']['color'] ? $cat['data']['color'] : $parts[1]; + } + $cats[$cat_id] = stripslashes($cat['name']); + } + return $cats; + } + + /* This is called only by list_cals(). It was moved here to remove fatal error in php5 beta4 */ + function _list_cals_add($id,&$users,&$groups) + { + $name = $GLOBALS['egw']->common->grab_owner_name($id); + if (($type = $GLOBALS['egw']->accounts->get_type($id)) == 'g') + { + $arr = &$groups; + } + else + { + $arr = &$users; + } + $arr[$name] = Array( + 'grantor' => $id, + 'value' => ($type == 'g' ? 'g_' : '') . $id, + 'name' => $name + ); + } + + /** + * generate list of user- / group-calendars for the selectbox in the header + * @return alphabeticaly sorted array with groups first and then users + */ + function list_cals() + { + $users = $groups = array(); + foreach($this->grants as $id => $rights) + { + $this->_list_cals_add($id,$users,$groups); + } + if ($memberships = $GLOBALS['egw']->accounts->membership($GLOBALS['egw_info']['user']['account_id'])) + { + foreach($memberships as $group_info) + { + $this->_list_cals_add($group_info['account_id'],$users,$groups); + + if ($account_perms = $GLOBALS['egw']->acl->get_ids_for_location($group_info['account_id'],EGW_ACL_READ,'calendar')) + { + foreach($account_perms as $id) + { + $this->_list_cals_add($id,$users,$groups); + } + } + } + } + uksort($users,'strnatcasecmp'); + uksort($groups,'strnatcasecmp'); + + return $users + $groups; // users first and then groups, both alphabeticaly + } + + /** + * Convert the recure-information of an event, into a human readable string + * + * @param array $event + * @return string + */ + function recure2string($event) + { + $str = ''; + // Repeated Events + if($event['recur_type'] != MCAL_RECUR_NONE) + { + $str = lang($this->recur_types[$event['recur_type']]); + + $str_extra = array(); + if ($event['recur_enddate']) + { + $str_extra[] = lang('ends').': '.lang($this->format_date($event['recur_enddate'],'l')).', '.$this->long_date($event['recur_enddate']).' '; + } + // only weekly uses the recur-data (days) !!! + if($event['recur_type'] == MCAL_RECUR_WEEKLY) + { + $repeat_days = array(); + foreach ($this->recur_days as $mcal_mask => $dayname) + { + if ($event['recur_data'] & $mcal_mask) + { + $repeat_days[] = lang($dayname); + } + } + if(count($repeat_days)) + { + $str_extra[] = lang('days repeated').': '.implode(', ',$repeat_days); + } + } + if($event['recur_interval']) + { + $str_extra[] = lang('Interval').': '.$event['recur_interval']; + } + + if(count($str_extra)) + { + $str .= ' ('.implode(', ',$str_extra).')'; + } + } + return $str; + } + + /** + * Read the holidays for a given $year + * + * The holidays get cached in the session (performance), so changes in holidays or birthdays do NOT affect a current session!!! + * + * @param integer $year=0 year, defaults to 0 = current year + * @return array indexed with Ymd of array of holidays. A holiday is an array with the following fields: + * index: numerical unique id + * locale: string, 2-char short for the nation + * name: string + * day: numerical day in month + * month: numerical month + * occurence: numerical year or 0 for every year + * dow: day of week, 0=sunday, .., 6= saturday + * observande_rule: boolean + */ + function read_holidays($year=0) + { + if (!$year) $year = (int) date('Y',$this->now_su); + + if (!$this->cached_holidays) // try reading the holidays from the session + { + $this->cached_holidays = $GLOBALS['egw']->session->appsession('holidays','calendar'); + } + if (!isset($this->cached_holidays[$year])) + { + if (!is_object($this->holidays)) + { + $this->holidays =& CreateObject('calendar.boholiday'); + } + $this->holidays->prepare_read_holidays($year); + $this->cached_holidays[$year] = $this->holidays->read_holiday(); + + // search for birthdays + $contacts =& CreateObject('phpgwapi.contacts'); + $bdays =& $contacts->read(0,0,array('id','n_family','n_given','n_prefix','n_middle','bday'),'',"bday=!'',n_family=!''",'ASC','bday'); + if ($bdays) + { + // sort by month and day only + usort($bdays,create_function('$a,$b','return (int) $a[\'bday\'] == (int) $b[\'bday\'] ? strcmp($a[\'bday\'],$b[\'bday\']) : (int) $a[\'bday\'] - (int) $b[\'bday\'];')); + foreach($bdays as $pers) + { + list($m,$d,$y) = explode('/',$pers['bday']); + if ($y > $year) continue; // not yet born + $this->cached_holidays[$year][sprintf('%04d%02d%02d',$year,$m,$d)][] = array( + 'day' => $d, + 'month' => $m, + 'occurence' => 0, + 'name' => lang('Birthday').' '.($pers['n_given'] ? $pers['n_given'] : $pers['n_prefix']).' '.$pers['n_middle'].' '. + $pers['n_family'].($y ? ' ('.$y.')' : ''), + 'birthyear' => $y, // this can be used to identify birthdays from holidays + ); + } + } + // store holidays and birthdays in the session + $this->cached_holidays = $GLOBALS['egw']->session->appsession('holidays','calendar',$this->cached_holidays); + } + if ((int) $this->debug >= 2 || $this->debug == 'read_holidays') + { + $this->debug_message('bocal::read_holidays(%1)=%2',true,$year,$this->cached_holidays[$year]); + } + return $this->cached_holidays[$year]; + } + + /** + * get title for an event identified by $event + * + * Is called as hook to participate in the linking + * + * @param int/array $entry int cal_id or array with event + * @param string/boolean string with title, null if not found or false if not read perms + */ + function link_title($event) + { + if (!is_array($event) && (int) $event > 0) + { + $event = $this->read($event); + } + if (!is_array($event)) + { + return $event; + } + return $this->format_date($event['start']) . ': ' . $event['title']; + } + + /** + * query calendar for events matching $pattern + * + * Is called as hook to participate in the linking + * + * @param string $pattern pattern to search + * @return array with pm_id - title pairs of the matching entries + */ + function link_query($pattern) + { + $result = array(); + foreach((array) $this->search(array('query' => $pattern)) as $event) + { + $result[$event['id']] = $this->link_title($event); + } + return $result; + } + + /** + * Hook called by link-class to include calendar in the appregistry of the linkage + * + * @param array/string $location location and other parameters (not used) + * @return array with method-names + */ + function search_link($location) + { + return array( + 'query' => 'calendar.bocal.link_query', + 'title' => 'calendar.bocal.link_title', + 'view' => array( + 'menuaction' => 'calendar.uiforms.view', + ), + 'view_id' => 'cal_id', + 'view_popup' => '750x400', + 'add' => array( + 'menuaction' => 'calendar.uiforms.edit', + ), + 'add_app' => 'link_app', + 'add_id' => 'link_id', + 'add_popup' => '750x400', + ); + } + + /** + * sets the default prefs, if they are not already set (on a per pref. basis) + * + * It sets a flag in the app-session-data to be called only once per session + */ + function check_set_default_prefs() + { + if ($this->cal_prefs['interval'] && ($set = $GLOBALS['egw']->session->appsession('default_prefs_set','calendar'))) + { + return; + } + $GLOBALS['egw']->session->appsession('default_prefs_set','calendar','set'); + + $default_prefs =& $GLOBALS['egw']->preferences->default['calendar']; + + $subject = lang('Calendar Event') . ' - $$action$$: $$startdate$$ $$title$$'."\n"; + $defaults = array( + 'defaultcalendar' => 'week', + 'mainscreen_showevents' => '0', + 'summary' => 'no', + 'receive_updates' => 'no', + 'update_format' => 'extended', + 'notifyAdded' => $subject . lang ('You have a meeting scheduled for %1','$$startdate$$'), + 'notifyCanceled' => $subject . lang ('Your meeting scheduled for %1 has been canceled','$$startdate$$'), + 'notifyModified' => $subject . lang ('Your meeting that had been scheduled for %1 has been rescheduled to %2','$$olddate$$','$$startdate$$'), + 'notifyDisinvited'=> $subject . lang ('You have been disinvited from the meeting at %1','$$startdate$$'), + 'notifyResponse' => $subject . lang ('On %1 %2 %3 your meeting request for %4','$$date$$','$$fullname$$','$$action$$','$$startdate$$'), + 'notifyAlarm' => lang('Alarm for %1 at %2 in %3','$$title$$','$$startdate$$','$$location$$')."\n".lang ('Here is your requested alarm.'), + 'show_rejected' => '0', + 'display_status' => '1', + 'weekdaystarts' => 'Monday', + 'workdaystarts' => '9', + 'workdayends' => '17', + 'interval' => '30', + 'defaultlength' => '60', + 'planner_start_with_group' => $GLOBALS['egw']->accounts->name2id('Default'), + 'defaultfilter' => 'all', + 'default_private' => '0', + ); + foreach($defaults as $var => $default) + { + if (!isset($default_prefs[$var]) || $default_prefs[$var] == '') + { + $GLOBALS['egw']->preferences->add('calendar',$var,$default,'default'); + $this->cal_prefs[$var] = $default; + $need_save = True; + } + } + if ($need_save) + { + $GLOBALS['egw']->preferences->save_repository(False,'default'); + } + } +} + +if (!function_exists('array_intersect_key')) // php5.1 function +{ + function array_intersect_key($array1,$array2) + { + $intersection = $keys = array(); + foreach(func_get_args() as $arr) + { + $keys[] = array_keys((array)$arr); + } + foreach(call_user_func_array('array_intersect',$keys) as $key) + { + $intersection[$key] = $array1[$key]; + } + return $intersection; + } +} diff --git a/calendar/inc/class.uical.inc.php b/calendar/inc/class.uical.inc.php index f10b1cfcb9..4b78df4de3 100644 --- a/calendar/inc/class.uical.inc.php +++ b/calendar/inc/class.uical.inc.php @@ -516,6 +516,11 @@ class uical 'value' => 'menuaction=calendar.uiviews.day', 'selected' => $this->view == 'day', ), + array( + 'text' => lang('four days view'), + 'value' => 'menuaction=calendar.uiviews.day4', + 'selected' => $this->view == 'day4', + ), array( 'text' => lang('weekview with weekend'), 'value' => 'menuaction=calendar.uiviews.week&days=7', @@ -582,7 +587,7 @@ class uical } $link_vars['menuaction'] = $this->view_menuaction; // stay in the planner } - elseif ($this->view == 'listview') + elseif ($this->view == 'listview' || $view == 'day' && $this->view == 'day4') { $link_vars['menuaction'] = $this->view_menuaction; // stay in the listview } diff --git a/calendar/inc/class.uiforms.inc.php b/calendar/inc/class.uiforms.inc.php new file mode 100644 index 0000000000..bc2e61b904 --- /dev/null +++ b/calendar/inc/class.uiforms.inc.php @@ -0,0 +1,1237 @@ + * +* -------------------------------------------- * +* This program is free software; you can redistribute it and/or modify it * +* under the terms of the GNU General Public License as published by the * +* Free Software Foundation; either version 2 of the License, or (at your * +* option) any later version. * +\**************************************************************************/ + +/* $Id$ */ + +include_once(EGW_INCLUDE_ROOT . '/calendar/inc/class.uical.inc.php'); + +/** + * calendar UserInterface forms: view and edit events, freetime search + * + * The new UI, BO and SO classes have a strikt definition, in which time-zone they operate: + * UI only operates in user-time, so there have to be no conversation at all !!! + * BO's functions take and return user-time only (!), they convert internaly everything to servertime, because + * SO operates only on server-time + * + * The state of the UI elements is managed in the uical class, which all UI classes extend. + * + * All permanent debug messages of the calendar-code should done via the debug-message method of the bocal class !!! + * + * @package calendar + * @author Ralf Becker + * @copyright (c) 2004/5 by RalfBecker-At-outdoor-training.de + * @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License + */ +class uiforms extends uical +{ + var $public_functions = array( + 'freetimesearch' => True, + 'edit' => true, + 'view' => true, + 'export' => true, + 'import' => true, + ); + + /** + * Standard durations used in edit and freetime search + * + * @var array + */ + var $durations = array(); + + /** + * Constructor + */ + function uiforms() + { + $this->uical(true); // call the parent's constructor + + $this->link =& $this->bo->link; + + for ($n=15; $n <= 8*60; $n+=($n < 60 ? 15 : ($n < 240 ? 30 : 60))) + { + $this->durations[$n*60] = sprintf('%d:%02d',$n/60,$n%60); + } + } + + /** + * View a calendar event + */ + function view() + { + return $this->edit(null,array('view' => true)); + } + + /** + * Create a default event (adding a new event) by evaluating certain _GET vars + * + * @return array event-array + */ + function &default_add_event() + { + $extra_participants = $_GET['participants'] ? explode(',',$_GET['participants']) : array(); + + if (isset($_GET['owner'])) + { + $owner = $_GET['owner']; + } + // dont set the planner start group as owner/participants if called from planner + elseif ($this->view != 'planner' || $this->owner != $this->cal_prefs['planner_start_with_group']) + { + $owner = $this->owner; + } + if (!$owner || !is_numeric($owner) || $GLOBALS['egw']->accounts->get_type($owner) != 'u' || + !$this->bo->check_perms(EGW_ACL_ADD,0,$owner)) + { + if ($owner) // make an owner who is no user or we have no add-rights a participant + { + $extra_participants += explode(',',$owner); + } + $owner = $this->user; + } + //echo "

this->owner=$this->owner, _GET[owner]=$_GET[owner], user=$this->user => owner=$owner, extra_participants=".implode(',',$extra_participants)."

\n"; + + // by default include the owner as participant (the user can remove him) + $extra_participants[] = $owner; + + $start = $this->bo->date2ts(array( + 'full' => isset($_GET['date']) && (int) $_GET['date'] ? (int) $_GET['date'] : $this->date, + 'hour' => (int) (isset($_GET['hour']) && (int) $_GET['hour'] ? $_GET['hour'] : $this->bo->cal_prefs['workdaystarts']), + 'minute' => (int) $_GET['minute'], + )); + //echo "

_GET[date]=$_GET[date], _GET[hour]=$_GET[hour], _GET[minute]=$_GET[minute], this->date=$this->date ==> start=$start=".date('Y-m-d H:i',$start)."

\n"; + + $participant_types['u'] = $participant_types = $participants = array(); + foreach($extra_participants as $uid) + { + if (isset($participants[$uid])) continue; // already included + + if (is_numeric($uid)) + { + $participants[$uid] = $participant_types['u'][$uid] = $uid == $this->user ? 'A' : 'U'; + } + elseif (is_array($this->bo->resources[$uid{0}])) + { + $res_data = $this->bo->resources[$uid{0}]; + list($id,$quantity) = explode(':',substr($uid,1)); + $participants[$uid] = $participant_types[$uid{0}][$id] = ($res_data['new_status'] ? ExecMethod($res_data['new_status'],$id) : 'U'). + ((int) $quantity > 1 ? (int)$quantity : ''); + // if new_status == 'x', resource is not bookable + if(strstr($participant_types[$uid{0}][$id],'x')) + { + unset($participant_types[$uid{0}][$id]); + unset($participants[$uid]); + } + } + } + return array( + 'participant_types' => $participant_types, + 'participants' => $participants, + 'owner' => $owner, + 'start' => $start, + 'end' => $start + (int) $this->bo->cal_prefs['defaultlength']*60, + 'priority' => 2, // normal + 'public'=> $this->cal_prefs['default_private'] ? 0 : 1, + 'alarm' => array(), + ); + } + + /** + * Process the edited event and evtl. call edit to redisplay it + * + * @param array $content posted eTemplate content + */ + function process_edit($content) + { + //echo "content submitted="; _debug_array($content); + list($button) = @each($content['button']); + unset($content['button']); + + $view = $content['view'] && $button != 'edit' && $button != 'exception'; + if ($view && $button == 'vcal') + { + $msg = $this->export($content['id'],true); + } + // delete a recur-exception + if ($content['recur_exception']['delete_exception']) + { + list($date) = each($content['recur_exception']['delete_exception']); + unset($content['recur_exception']['delete_exception']); + if (($key = array_search($date,$content['recur_exception'])) !== false) + { + unset($content['recur_exception'][$key]); + $content['recur_exception'] = array_values($content['recur_exception']); + } + } + // delete an alarm + if ($content['alarm']['delete_alarm']) + { + list($id) = each($content['alarm']['delete_alarm']); + //echo "delete alarm $id"; _debug_array($content['alarm']['delete_alarm']); + + if ($content['id']) + { + if ($this->bo->delete_alarm($id)) + { + $msg = lang('Alarm deleted'); + unset($content['alarm'][$id]); + } + else + { + $msg = lang('Permission denied'); + } + } + else + { + unset($content['alarm'][$id]); + } + } + if ($content['duration']) + { + $content['end'] = $content['start'] + $content['duration']; + } + $event = $content; + unset($event['new_alarm']); + unset($event['alarm']['delete_alarm']); + + if (in_array($button,array('ignore','freetime','reedit'))) // called from conflict display + { + // no conversation necessary, event is already in the right format + } + elseif (isset($content['participants']) && !(isset($content['view']) && $content['view'])) // convert content => event + { + //echo "participants="; _debug_array($content['participants']); + $event['participants'] = $event['participant_types'] = array(); + foreach($content['participants'] as $app => $participants) + { + if (!$participants) continue; + + $type = 'u'; + foreach($this->bo->resources as $t => $data) + { + if ($data['app'] == $app) + { + $type = $t; + break; + } + } + foreach(is_array($participants) ? $participants : explode(',',$participants) as $id) + { + if (is_array($id)) continue; // ignore the status + list($id,$quantity) = explode(':',$id); + $event['participants'][$type == 'u' ? (int) $id : $type.$id] = $event['participant_types'][$type][$id] = + // for existing participants use their old status (dont change it) + (isset($content['participant_types'][$type][$id]) ? $content['participant_types'][$type][$id]{0} : + // for new participants check if they have a 'new_status' resource-methode to determine the status + (isset($this->bo->resources[$type]['new_status']) ? ExecMethod($this->bo->resources[$type]['new_status'],$id) : + // if not use 'A'=accepted for the current user and 'U' otherwise + ($type == 'u' && $id == $this->bo->user ? 'A' : 'U'))).((int) $quantity > 1 ? (int)$quantity : ''); + // ToDo: move this logic into bocal + } + } + if ($content['whole_day']) + { + $event['start'] = $this->bo->date2array($event['start']); + $event['start']['hour'] = $event['start']['minute'] = 0; unset($event['start']['raw']); + $event['start'] = $this->bo->date2ts($event['start']); + $event['end'] = $this->bo->date2array($event['end']); + $event['end']['hour'] = 23; $event['end']['minute'] = $event['end']['second'] = 59; unset($event['end']['raw']); + $event['end'] = $this->bo->date2ts($event['end']); + } + // some checks for recurances, if you give a date, make it a weekly repeating event and visa versa + if ($event['recur_type'] == MCAL_RECUR_NONE && $event['recur_data']) $event['recur_type'] = MCAL_RECUR_WEEKLY; + if ($event['recur_type'] == MCAL_RECUR_WEEKLY && !$event['recur_data']) + { + $event['recur_data'] = 1 << (int)date('w',$event['start']); + } + } + else // status change view + { + foreach($event['participants'] as $name => $data) + { + if (!is_array($data)) continue; + + $type = 'u'; + foreach($this->bo->resources as $t => $d) + { + if ($d['app'] == $name) + { + $type = $t; + break; + } + } + // checking for status changes + foreach($data[$name.'_status'] as $uid => $status) + { + list($uid,$quantity) = explode(':',$uid); + //echo "checking $type: $uid $status against old ".$event['participant_types'][$type][$uid]."
\n"; + if ($event['participant_types'][$type][$uid]{0} != $status{0}) // status changed by user + { + if ($this->bo->set_status($event['id'],$type,$uid,$status,$event['recur_type'] != MCAL_RECUR_NONE ? $event['start'] : 0)) + { + $event['participants'][$type == 'u' ? (int) $uid : $type.$uid] = + $event['participant_types'][$type][$uid] = $status.$quantity; + // refreshing the calendar-view with the changed participant-status + $msg = lang('Status changed'); + if (!$preserv['no_popup']) + { + $js = 'opener.location.href=\''.addslashes($GLOBALS['egw']->link('/index.php',array( + 'menuaction' => $content['referer'], + 'msg' => $msg, + ))).'\';'; + } + } + } + } + unset($event['participants'][$name]); // unset the status-changes from the event + } + } + $preserv = array( + 'view' => $view, + 'edit_single' => $content['edit_single'], + 'referer' => $content['referer'], + 'no_popup' => $content['no_popup'], + ); + switch($button) + { + case 'exception': // create an exception in a recuring event + $preserv['edit_single'] = $content['start']; + $event['recur_type'] = MCAL_RECUR_NONE; + foreach(array('recur_enddate','recur_interval','recur_exception','recur_data') as $name) + { + unset($event[$name]); + } + break; + + case 'edit': + if ($content['recur_type'] != MCAL_RECUR_NONE) + { + // need to reload start and end of the serie + $event = $this->bo->read($event['id'],0); + } + break; + + case 'copy': // create new event with copied content, some content need to be unset to make a "new" event + unset($event['id']); + unset($event['uid']); + unset($event['alarm']); + unset($event['reference']); + unset($event['recur_exception']); + unset($event['edit_single']); // in case it has been set + unset($event['modified']); + unset($event['modifier']); + $event['owner'] = !(int)$this->owner || !$this->bo->check_perms(EGW_ACL_ADD,0,$this->owner) ? $this->user : $this->owner; + $preserv['view'] = $preserv['edit_single'] = false; + $msg = lang('Event copied - the copy can now be edited'); + $event['title'] = lang('Copy of:').' '.$event['title']; + break; + + case 'ignore': + $ignore_conflicts = true; + $button = $event['button_was']; // save or apply + unset($event['button_was']); + // fall through + case 'save': + case 'apply': + if ($event['id'] && !$this->bo->check_perms(EGW_ACL_EDIT,$event)) + { + $msg = lang('Permission denied'); + break; + } + if ($event['start'] > $event['end']) + { + $msg = lang('Error: Starttime has to be before the endtime !!!'); + $button = ''; + break; + } + if (!$event['participants']) + { + $msg = lang('Error: no participants selected !!!'); + $button = ''; + break; + } + if ($content['edit_single']) // we edited a single event from a series + { + $event['reference'] = $event['id']; + unset($event['id']); + unset($event['uid']); + $conflicts = $this->bo->update($event,$ignore_conflicts); + if (!is_array($conflicts) && $conflicts) + { + // now we need to add the original start as recur-execption to the series + $recur_event = $this->bo->read($event['reference']); + $recur_event['recur_exception'][] = $content['edit_single']; + unset($recur_event['start']); unset($recur_event['end']); // no update necessary + $this->bo->update($recur_event,true); // no conflict check here + unset($recur_event); + unset($event['edit_single']); // if we further edit it, it's just a single event + unset($preserv['edit_single']); + } + else // conflict or error, we need to reset everything to the state befor we tried to save it + { + $event['id'] = $event['reference']; + unset($event['reference']); + $event['uid'] = $content['uid']; + } + } + else // we edited a non-reccuring event or the whole series + { + $conflicts = $this->bo->update($event,$ignore_conflicts); + unset($event['ignore']); + } + if (is_array($conflicts)) + { + $event['button_was'] = $button; // remember for ignore + return $this->conflicts($event,$conflicts,$preserv); + } + elseif($conflicts) // true and non-array means Ok ;-) + { + $msg .= ($msg ? ', ' : '') . lang('Event saved'); + + // writing links for new entry, existing ones are handled by the widget itself + if (!$content['id'] && is_array($content['link_to']['to_id'])) + { + $this->link->link('calendar',$event['id'],$content['link_to']['to_id']); + } + $js = 'opener.location.href=\''.addslashes($GLOBALS['egw']->link('/index.php',array( + 'menuaction' => $content['referer'], + 'msg' => $msg, + ))).'\';'; + + if ($content['custom_mail']) + { + $js = $this->custom_mail($event,!$content['id'])."\n".$js; // first open the new window and then update the view + unset($event['custom_mail']); + } + } + else + { + $msg = lang('Error: saving the event !!!'); + } + break; + + case 'delete': + if ($this->bo->delete($event['id'],(int)$content['edit_single'])) + { + $msg = lang('Event deleted'); + $js = 'opener.location.href=\''.addslashes($GLOBALS['egw']->link('/index.php',array( + 'menuaction' => $content['referer'], + 'msg' => $msg, + ))).'\';'; + } + break; + + case 'freetime': + if (!is_object($GLOBALS['egw']->js)) + { + $GLOBALS['egw']->js =& CreateObject('phpgwapi.javascript'); + } + // the "click" has to be in onload, to make sure the button is already created + $GLOBALS['egw']->js->set_onload("document.getElementsByName('exec[freetime]')[0].click();"); + break; + + case 'add_alarm': + if ($this->bo->check_perms(EGW_ACL_EDIT,!$content['new_alarm']['owner'] ? $event : 0,$content['new_alarm']['owner'])) + { + $offset = DAY_s * $content['new_alarm']['days'] + HOUR_s * $content['new_alarm']['hours'] + 60 * $content['new_alarm']['mins']; + $alarm = array( + 'offset' => $offset, + 'time' => $content['start'] - $offset, + 'all' => !$content['new_alarm']['owner'], + 'owner' => $content['new_alarm']['owner'] ? $content['new_alarm']['owner'] : $this->user, + ); + if ($alarm['time'] < $this->bo->now_su) + { + $msg = lang("Can't add alarms in the past !!!"); + } + elseif ($event['id']) // save the alarm immediatly + { + if(($alarm_id = $this->bo->save_alarm($event['id'],$alarm))) + { + $alarm['id'] = $alarm_id; + $event['alarm'][$alarm_id] = $alarm; + + $msg = lang('Alarm added'); + } + else + { + $msg = lang('Error adding the alarm'); + } + } + else + { + for($alarm['id']=1; isset($event['alarm'][$alarm['id']]); $alarm['id']++); // get a temporary non-conflicting, numeric id + $event['alarm'][$alarm['id']] = $alarm; + } + } + else + { + $msg = lang('Permission denied'); + } + break; + } + if (in_array($button,array('cancel','save','delete','delete_series'))) + { + if ($content['no_popup']) + { + $GLOBALS['egw']->redirect_link('/index.php',array( + 'menuaction' => $content['referer'], + 'msg' => $msg, + )); + } + $js .= 'window.close();'; + echo "\n"; + $GLOBALS['egw']->common->egw_exit(); + } + return $this->edit($event,$preserv,$msg,$js,$event['id'] ? $event['id'] : $content['link_to']['to_id']); + } + + /** + * return javascript to open felamimail compose window with preset content to mail all participants + * + * @param array $event + * @param boolean $added + * @return string javascript window.open command + */ + function custom_mail($event,$added) + { + $to = array(); + foreach($event['participants'] as $uid => $status) + { + if (is_numeric($uid) && $uid != $this->user && $status != 'R' && $GLOBALS['egw']->accounts->get_type($uid) == 'u') + { + $GLOBALS['egw']->accounts->get_account_name($uid,$lid,$firstname,$lastname); + + $to[] = $firstname.' '.$lastname. + ' <'.$GLOBALS['egw']->accounts->id2name($uid,'account_email').'>'; + } + } + list($subject,$body) = $this->bo->get_update_message($event,$added ? MSG_ADDED : MSG_MODIFIED); // update-message is in TZ of the user + + $boical =& CreateObject('calendar.boical'); + $ics = $boical->exportVCal(array($event),'2.0','request'); + + $ics_file = tempnam($GLOBALS['egw_info']['server']['temp_dir'],'ics'); + if(($f = fopen($ics_file,'w'))) + { + fwrite($f,$ics); + fclose($f); + } + $vars = array( + 'menuaction' => 'felamimail.uicompose.compose', + 'preset[to]' => implode(', ',$to), + 'preset[subject]' => $subject, + 'preset[body]' => $body, + 'preset[name]' => 'event.ics', + 'preset[file]' => $ics_file, + 'preset[type]' => 'text/calendar; method=request', + 'preset[size]' => filesize($ics_file), + ); + return "window.open('".$GLOBALS['egw']->link('/index.php',$vars)."','_blank','width=700,height=700,scrollbars=yes,status=no');"; + } + + /** + * Edit a calendar event + * + * @param array $event=null Event to edit, if not $_GET['cal_id'] contains the event-id + * @param array $perserv=null following keys: + * view boolean view-mode, if no edit-access we automatic fallback to view-mode + * referer string menuaction of the referer + * no_popup boolean use a popup or not + * edit_single int timestamp of single event edited, unset/null otherwise + * @param string $msg='' msg to display + * @param string $js='window.focus();' javascript to include in the page + * @param mixed $link_to_id='' $content from or for the link-widget + */ + function edit($event=null,$preserv=null,$msg='',$js = 'window.focus();',$link_to_id='') + { + $etpl =& CreateObject('etemplate.etemplate','calendar.edit'); + + $sel_options = array( + 'recur_type' => &$this->bo->recur_types, + 'accounts_status' => $this->bo->verbose_status, + 'owner' => array(), + 'duration' => $this->durations, + ); + if (!is_array($event)) + { + $preserv = array( + 'no_popup' => isset($_GET['no_popup']), + 'referer' => preg_match('/menuaction=([^&]+)/',$_SERVER['HTTP_REFERER'],$matches) ? $matches[1] : $this->view_menuaction, + 'view' => $preserv['view'], + ); + $cal_id = (int) $_GET['cal_id']; + + if (!$cal_id || $cal_id && !($event = $this->bo->read($cal_id,$_GET['date'])) || !$this->bo->check_perms(EGW_ACL_READ,$event)) + { + if ($cal_id) + { + if (!$preserv['no_popup']) + { + $js = "alert('".lang('Permission denied')."'); window.close();"; + } + else + { + $GLOBALS['egw']->common->egw_header(); + parse_navbar(); + echo '

'.lang('Permission denied')."

\n"; + $GLOBALS['egw']->common->egw_exit(); + } + } + $event =& $this->default_add_event(); + } + // check if the event is the whole day + $start = $this->bo->date2array($event['start']); + $end = $this->bo->date2array($event['end']); + $event['whole_day'] = !$start['hour'] && !$start['minute'] && $end['hour'] == 23 && $end['minute'] == 59; + + $link_to_id = $event['id']; + if (!$add_link && !$event['id'] && isset($_GET['link_app']) && isset($_GET['link_id']) && + preg_match('/^[a-z_0-9-]+:[:a-z_0-9-]+$/i',$_GET['link_app'].':'.$_GET['link_id'])) // gard against XSS + { + $this->link->link('calendar',$link_to_id,$_GET['link_app'],$_GET['link_id']); + } + } + $view = $preserv['view'] = $preserv['view'] || $event['id'] && !$this->bo->check_perms(EGW_ACL_EDIT,$event); + //echo "view=$view, event="; _debug_array($event); + $content = array_merge($event,array( + 'link_to' => array( + 'to_id' => $link_to_id, + 'to_app' => 'calendar', + ), + 'edit_single' => $preserv['edit_single'], // need to be in content too, as it is used in the template + 'view' => $view, + )); + $content['participants'] = array(); + + $content['duration'] = $content['end'] - $content['start']; + if (isset($this->durations[$content['duration']])) $content['end'] = ''; + + foreach($event['participant_types'] as $type => $participants) + { + $name = 'accounts'; + if (isset($this->bo->resources[$type])) + { + $name = $this->bo->resources[$type]['app']; + } + foreach($participants as $id => $status) + { + $content['participants'][$name][] = $id . (substr($status,1) > 1 ? (':'.substr($status,1)) : ''); + } + + if ($view) + { + $stati =& $content['participants'][$name][$name.'_status']; + $stati = $participants; + // enumerate group-invitations, so people can accept/reject them + if ($name == 'accounts') + { + foreach($participants as $id => $status) + { + if ($GLOBALS['egw']->accounts->get_type($id) == 'g' && + ($members = $GLOBALS['egw']->accounts->member($id))) + { + $sel_options['accounts_status']['G'] = lang('Select one'); + foreach($members as $member) + { + if (!isset($stati[$member['account_id']]) && $this->bo->check_perms(EGW_ACL_EDIT,0,$member['account_id'])) + { + $stati[$member['account_id']] = 'G'; // status for invitation via membership in group + $content['participants'][$name][] = $member['account_id']; + } + } + } + } + } + foreach($stati as $id => $status) + { + $readonlys[$name.'_status['.$id.']'] = !$this->bo->check_perms(EGW_ACL_EDIT,0,($type != 'u' ? $type : '').$id); + } + } + } +// echo '$content[participants]'; _debug_array($content['participants']); +// echo '$content[participant_types]'; _debug_array($content['participant_types']); +// _debug_array($sel_options); + $preserv = array_merge($preserv,$view ? $event : $content); + + if ($event['alarm']) + { + // makes keys of the alarm-array starting with 1 + $content['alarm'] = array(false); + foreach(array_values($event['alarm']) as $id => $alarm) + { + if (!$alarm['all'] && !$this->bo->check_perms(EGW_ACL_READALARM,0,$alarm['owner'])) + { + continue; // no read rights to the calendar of the alarm-owner, dont show the alarm + } + $alarm['all'] = (int) $alarm['all']; + $days = (int) ($alarm['offset'] / DAY_s); + $hours = (int) (($alarm['offset'] % DAY_s) / HOUR_s); + $minutes = (int) (($alarm['offset'] % HOUR_s) / 60); + $label = array(); + if ($days) $label[] = $days.' '.lang('days'); + if ($hours) $label[] = $hours.' '.lang('hours'); + if ($minutes) $label[] = $minutes.' '.lang('Minutes'); + $alarm['offset'] = implode(', ',$label); + $content['alarm'][] = $alarm; + + $readonlys['delete_alarm['.$id.']'] = !$this->bo->check_perms(EGW_ACL_EDIT,$alarm['all'] ? $event : 0,$alarm['owner']); + } + } + else + { + $content['alarm'] = false; + } + $content['msg'] = $msg; + + if ($view) + { + foreach($event as $key => $val) + { + if ($key != 'alarm') $readonlys[$key] = true; + } + // we need to unset the tab itself, as this would make all content (incl. the change-status selects) readonly + unset($readonlys['general|description|participants|recurrence|custom|links|alarms']); + + $readonlys['button[save]'] = $readonlys['button[apply]'] = $readonlys['freetime'] = true; + $readonlys['link_to'] = $readonlys['customfields'] = true; + $readonlys['duration'] = true; + + if ($event['recur_type'] != MCAL_RECUR_NONE) + { + $etpl->set_cell_attribute('button[edit]','help','Edit this series of recuring events'); + $etpl->set_cell_attribute('button[delete]','help','Delete this series of recuring events'); + $onclick =& $etpl->get_cell_attribute('button[delete]','onclick'); + $onclick = str_replace('Delete this event','Delete this series of recuring events',$onclick); + } + } + else + { + if (!is_object($GLOBALS['egw']->js)) + { + $GLOBALS['egw']->js = CreateObject('phpgwapi.javascript'); + } + // We hide the enddate if one of our predefined durations fits + // the call to set_style_by_class has to be in onload, to make sure the function and the element is already created + $GLOBALS['egw']->js->set_onload("set_style_by_class('table','end_hide','visibility','".($content['duration'] && isset($sel_options['duration'][$content['duration']]) ? 'hidden' : 'visible')."');"); + + $readonlys['button[copy]'] = $readonlys['button[vcal]'] = true; + unset($preserv['participants']); // otherwise deleted participants are still reported + $readonlys['recur_exception'] = !count($content['recur_exception']); // otherwise we get a delete button + } + // disabling the custom fields tab, if there are none + $readonlys['general|description|participants|recurrence|custom|links|alarms'] = array( + 'custom' => !count($this->bo->config['customfields']) + ); + if ($view || !isset($GLOBALS['egw_info']['user']['apps']['felamimail'])) + { + $etpl->disable_cells('custom_mail'); + } + if (!($readonlys['button[exception]'] = $readonlys['button[edit]'] = !$view || !$this->bo->check_perms(EGW_ACL_EDIT,$event))) + { + $readonlys['button[exception]'] = $event['recur_type'] == MCAL_RECUR_NONE; + } + $readonlys['button[delete]'] = !$event['id'] || !$this->bo->check_perms(EGW_ACL_DELETE,$event); + + if ($event['id'] || $this->bo->check_perms(EGW_ACL_EDIT,$event)) // new event or edit rights to the event ==> allow to add alarm for all users + { + $sel_options['owner'][0] = lang('All participants'); + } + foreach((array) $event['participant_types']['u'] as $uid => $status) + { + if ($status != 'R' && $this->bo->check_perms(EGW_ACL_EDIT,0,$uid)) + { + $sel_options['owner'][$uid] = $this->bo->participant_name($uid); + } + } + $content['no_add_alarm'] = !count($sel_options['owner']); // no rights to set any alarm + if (!$event['id']) + { + $etpl->set_cell_attribute('button[new_alarm]','type','checkbox'); + } + foreach($this->bo->resources as $res_data) + { + $sel_options[$res_data['app'].'_status'] =& $this->bo->verbose_status; + } + if ($preserv['no_popup']) + { + $etpl->set_cell_attribute('button[cancel]','onclick',''); + } + //echo "content="; _debug_array($content); + //echo "preserv="; _debug_array($preserv); + //echo "readonlys="; _debug_array($readonlys); + //echo "sel_options="; _debug_array($sel_options); + $GLOBALS['egw_info']['flags']['app_header'] = lang('calendar') . ' - ' . ($event['id'] ? ($view ? lang('View') : + ($content['edit_single'] ? lang('Edit exception') : lang('Edit'))) : lang('Add')); + $GLOBALS['egw_info']['flags']['java_script'] .= "\n"; + $etpl->exec('calendar.uiforms.process_edit',$content,$sel_options,$readonlys,$preserv,$preserv['no_popup'] ? 0 : 2); + } + + /** + * displays a sheduling conflict + * + * @param array $event + * @param array $conflicts array with conflicting events, the events are not garantied to be readable by the user! + * @param array $preserv data to preserv + */ + function conflicts($event,$conflicts,$preserv) + { + $etpl =& CreateObject('etemplate.etemplate','calendar.conflicts'); + + foreach($conflicts as $k => $conflict) + { + $is_readable = $this->bo->check_perms(EGW_ACL_READ,$conflict); + + $conflicts[$k] += array( + 'icon_participants' => $is_readable ? (count($conflict['participants']) > 1 ? 'users' : 'single') : 'private', + 'tooltip_participants' => $is_readable ? implode(', ',$this->bo->participants($conflict)) : '', + 'time' => $this->bo->long_date($conflict['start'],$conflict['end'],true), + 'conflicting_participants' => implode(",\n",$this->bo->participants(array( + 'participants' => array_intersect_key($conflict['participants'],$event['participants']), + ),true,true)), // show group invitations too + 'icon_recur' => $conflict['recur_type'] != MCAL_RECUR_NONE ? 'recur' : '', + 'text_recur' => $conflict['recur_type'] != MCAL_RECUR_NONE ? lang('Recurring event') : ' ', + ); + } + $content = $event + array( + 'conflicts' => array_values($conflicts), // conflicts have id-start as key + ); + $GLOBALS['egw_info']['flags']['app_header'] = lang('calendar') . ' - ' . lang('Scheduling conflict'); + + $etpl->exec('calendar.uiforms.process_edit',$content,false,false,array_merge($event,$preserv),$preserv['no_popup'] ? 0 : 2); + } + + /** + * Freetime search + * + * As the function is called in a popup via javascript, parametes get initialy transfered via the url + * @param array $content=null array with parameters or false (default) to use the get-params + * @param string start[str] start-date + * @param string start[hour] start-hour + * @param string start[min] start-minutes + * @param string end[str] end-date + * @param string end[hour] end-hour + * @param string end[min] end-minutes + * @param string participants ':' delimited string of user-id's + */ + function freetimesearch($content = null) + { + $etpl =& CreateObject('etemplate.etemplate','calendar.freetimesearch'); + + $sel_options['search_window'] = array( + 7*DAY_s => lang('one week'), + 14*DAY_s => lang('two weeks'), + 31*DAY_s => lang('one month'), + 92*DAY_s => lang('three month'), + 365*DAY_s => lang('one year'), + ); + if (!is_array($content)) + { + $edit_content = $etpl->process_values2url(); + + if ($edit_content['duration']) + { + $edit_content['end'] = $edit_content['start'] + $edit_content['duration']; + } + if ($edit_content['whole_day']) + { + $arr = $this->bo->date2array($edit_content['start']); + $arr['hour'] = $arr['minute'] = $arr['second'] = 0; unset($arr['raw']); + $edit_content['start'] = $this->bo->date2ts($arr); + $arr = $this->bo->date2array($edit_content['end']); + $arr['hour'] = 23; $arr['minute'] = $arr['second'] = 59; unset($arr['raw']); + $edit_content['end'] = $this->bo->date2ts($arr); + } + $content = array( + 'start' => $edit_content['start'], + 'duration' => $edit_content['end'] - $edit_content['start'], + 'end' => $edit_content['end'], + 'cal_id' => $edit_content['id'], + 'recur_type' => $edit_content['recur_type'], + 'participants' => array(), + ); + foreach($edit_content['participants'] as $app => $ids) + { + if ($app == 'accounts') + { + $content['participants'] += $ids; + } + elseif ($ids) + { + foreach($this->bo->resources as $type => $data) + { + if ($data['app'] == $app) break; + } + foreach($ids as $id) + { + $content['participants'][] = $type . $id; + } + } + } + // default search parameters + $content['start_time'] = $edit_content['whole_day'] ? 0 : $this->cal_prefs['workdaystarts']; + $content['end_time'] = $this->cal_prefs['workdayends']; + if ($this->cal_prefs['workdayends']*HOUR_s < $this->cal_prefs['workdaystarts']*HOUR_s+$content['duration']) + { + $content['end_time'] = 0; // no end-time limit, as duration would never fit + } + $content['weekdays'] = MCAL_M_WEEKDAYS; + + $content['search_window'] = 7 * DAY_s; + // pick a searchwindow fitting the duration (search for a 10 day slot in a one week window never succeeds) + foreach($sel_options['search_window'] as $window => $label) + { + if ($window > $content['duration']) + { + $content['search_window'] = $window; + break; + } + } + } + else + { + if (!$content['duration']) $content['duration'] = $content['end'] - $content['start']; + + if (is_array($content['freetime']['select'])) + { + list($selected) = each($content['freetime']['select']); + //echo "$selected = ".date('D d.m.Y H:i',$content['freetime'][$selected]['start']); + $start = (int) $content['freetime'][$selected]['start']; + $end = $start + $content['duration']; + /** + * ToDo: make this an eTemplate function to transmit content back to the opener + */ + $fields_to_set = array( + 'exec[start][str]' => date($this->common_prefs['dateformat'],$start), + 'exec[start][i]' => (int) date('i',$start), + 'exec[end][str]' => date($this->common_prefs['dateformat'],$end), + 'exec[end][i]' => (int) date('i',$end), + 'exec[duration]' => $content['duration'], + ); + if ($this->common_prefs['timeformat'] == 12) + { + $fields_to_set += array( + 'exec[start][H]' => date('h',$start), + 'exec[start][a]' => date('a',$start), + 'exec[end][H]' => date('h',$end), + 'exec[end][a]' => date('a',$end), + ); + } + else + { + $fields_to_set += array( + 'exec[start][H]' => (int) date('H',$start), + 'exec[end][H]' => (int) date('H',$end), + ); + } + echo " + +\n"; + exit; + } + } + if ($content['recur_type']) + { + $content['msg'] .= lang('Only the initial date of that recuring event is checked!'); + } + $content['freetime'] = $this->freetime($content['participants'],$content['start'],$content['start']+$content['search_window'],$content['duration'],$content['cal_id']); + $content['freetime'] = $this->split_freetime_daywise($content['freetime'],$content['duration'],$content['weekdays'],$content['start_time'],$content['end_time'],$sel_options); + + //echo "
".print_r($content,true)."
\n"; + $GLOBALS['egw_info']['flags']['app_header'] = lang('calendar') . ' - ' . lang('freetime search'); + // let the window popup, if its already there + $GLOBALS['egw_info']['flags']['java_script'] .= "\n"; + + if (!is_object($GLOBALS['egw']->js)) + { + $GLOBALS['egw']->js = CreateObject('phpgwapi.javascript'); + } + $sel_options['duration'] = $this->durations; + if ($content['duration'] && isset($sel_options['duration'][$content['duration']])) $content['end'] = ''; + // We hide the enddate if one of our predefined durations fits + // the call to set_style_by_class has to be in onload, to make sure the function and the element is already created + $GLOBALS['egw']->js->set_onload("set_style_by_class('table','end_hide','visibility','".($content['duration'] && isset($sel_options['duration'][$content['duration']]) ? 'hidden' : 'visible')."');"); + + $etpl->exec('calendar.uiforms.freetimesearch',$content,$sel_options,'',array( + 'participants' => $content['participants'], + 'cal_id' => $content['cal_id'], + 'recur_type' => $content['recur_type'], + ),2); + } + + /** + * calculate the freetime of given $participants in a certain time-span + * + * @param array $participants user-id's + * @param int $start start-time timestamp in user-time + * @param int $end end-time timestamp in user-time + * @param int $duration min. duration in sec, default 1 + * @param int $cal_id own id for existing events, to exclude them from being busy-time, default 0 + * @return array of free time-slots: array with start and end values + */ + function freetime($participants,$start,$end,$duration=1,$cal_id=0) + { + if ($this->debug > 2) $this->bo->debug_message('uiforms::freetime(participants=%1, start=%2, end=%3, duration=%4, cal_id=%5)',true,$participants,$start,$end,$duration,$cal_id); + + $busy = $this->bo->search(array( + 'start' => $start, + 'end' => $end, + 'users' => $participants, + 'ignore_acl' => true, // otherwise we get only events readable by the user + )); + $busy[] = array( // add end-of-search-date as event, to cope with empty search and get freetime til that date + 'start' => $end, + 'end' => $end, + ); + $ft_start = $start; + $freetime = array(); + $n = 0; + foreach($busy as $event) + { + if ((int)$cal_id && $event['id'] == (int)$cal_id) continue; // ignore our own event + + if ($event['non_blocking']) continue; // ignore non_blocking events + + if ($this->debug) + { + echo "

ft_start=".date('D d.m.Y H:i',$ft_start)."
\n"; + echo "event[title]=$event[title]
\n"; + echo "event[start]=".date('D d.m.Y H:i',$event['start']['raw'])."
\n"; + echo "event[end]=".date('D d.m.Y H:i',$event['end']['raw'])."
\n"; + } + // $events ends before our actual position ==> ignore it + if ($event['end'] < $ft_start) + { + //echo "==> event ends before ft_start ==> continue
\n"; + continue; + } + // $events starts before our actual position ==> set start to it's end and go to next event + if ($event['start'] < $ft_start) + { + //echo "==> event starts before ft_start ==> set ft_start to it's end & continue
\n"; + $ft_start = $event['end']; + continue; + } + $ft_end = $event['start']; + + // only show slots equal or bigger to min_length + if ($ft_end - $ft_start >= $duration) + { + $freetime[++$n] = array( + 'start' => $ft_start, + 'end' => $ft_end, + ); + if ($this->debug > 1) echo "

freetime: ".date('D d.m.Y H:i',$ft_start)." - ".date('D d.m.Y H:i',$ft_end)."

\n"; + } + $ft_start = $event['end']; + } + if ($this->debug > 0) $this->bo->debug_message('uiforms::freetime(participants=%1, start=%2, end=%3, duration=%4, cal_id=%5) freetime=%6',true,$participants,$start,$end,$duration,$cal_id,$freetime); + + return $freetime; + } + + /** + * split the freetime in daywise slot, taking into account weekdays, start- and stop-times + * + * If the duration is bigger then the difference of start- and end_time, the end_time is ignored + * + * @param array $freetime free time-slots: array with start and end values + * @param int $duration min. duration in sec + * @param int $weekdays allowed weekdays, bitfield of MCAL_M_... + * @param int $start_time minimum start-hour 0-23 + * @param int $end_time maximum end-hour 0-23, or 0 for none + * @param array $sel_options on return options for start-time selectbox + * @return array of free time-slots: array with start and end values + */ + function split_freetime_daywise($freetime,$duration,$weekdays,$start_time,$end_time,&$sel_options) + { + if ($this->debug > 1) $this->bo->debug_message('uiforms::split_freetime_daywise(freetime=%1, duration=%2, start_time=%3, end_time=%4)',true,$freetime,$duration,$start_time,$end_time); + + $freetime_daywise = array(); + if (!is_array($sel_options)) $sel_options = array(); + $time_format = $this->common_prefs['timeformat'] == 12 ? 'h:i a' : 'H:i'; + + $start_time = (int) $start_time; // ignore leading zeros + $end_time = (int) $end_time; + + // ignore the end_time, if duration would never fit + if (($end_time - $start_time)*HOUR_s < $duration) + { + $end_time = 0; + if ($this->debug > 1) $this->bo->debug_message('uiforms::split_freetime_daywise(, duration=%2, start_time=%3,..) end_time set to 0, it never fits durationn otherwise',true,$duration,$start_time); + } + $n = 0; + foreach($freetime as $ft) + { + $daybegin = $this->bo->date2array($ft['start']); + $daybegin['hour'] = $daybegin['minute'] = $daybegin['second'] = 0; + unset($daybegin['raw']); + $daybegin = $this->bo->date2ts($daybegin); + + for($t = $daybegin; $t < $ft['end']; $t += DAY_s,$daybegin += DAY_s) + { + $dow = date('w',$daybegin+DAY_s/2); // 0=Sun, .., 6=Sat + $mcal_dow = pow(2,$dow); + if (!($weekdays & $mcal_dow)) + { + //echo "wrong day of week $dow
\n"; + continue; // wrong day of week + } + $start = $t < $ft['start'] ? $ft['start'] : $t; + + if ($start-$daybegin < $start_time*HOUR_s) // start earlier then start_time + { + $start = $daybegin + $start_time*HOUR_s; + } + // if end_time given use it, else the original slot's end + $end = $end_time ? $daybegin + $end_time*HOUR_s : $ft['end']; + if ($end > $ft['end']) $end = $ft['end']; + + // slot to small for duration + if ($end - $start < $duration) + { + //echo "slot to small for duration=$duration
\n"; + continue; + } + $freetime_daywise[++$n] = array( + 'start' => $start, + 'end' => $end, + ); + $times = array(); + for ($s = $start; $s+$duration <= $end && $s < $daybegin+DAY_s; $s += 60*$this->cal_prefs['interval']) + { + $e = $s + $duration; + $end_date = $e-$daybegin > DAY_s ? lang(date('l',$e)).' '.date($this->common_prefs['dateformat'],$e).' ' : ''; + $times[$s] = date($time_format,$s).' - '.$end_date.date($time_format,$e); + } + $sel_options[$n.'[start]'] = $times; + } + } + return $freetime_daywise; + } + + /** + * Export events as vCalendar version 2.0 files (iCal) + * + * @param int/array $content=0 numeric cal_id or submitted content from etempalte::exec + * @param boolean $return_error=false should an error-msg be returned or a regular page with it generated (default) + * @return string error-msg if $return_error + */ + function export($content=0,$return_error=false) + { + if (is_numeric($cal_id = $content ? $content : $_REQUEST['cal_id'])) + { + if (!($ical =& ExecMethod2('calendar.boical.exportVCal',$cal_id,'2.0'))) + { + $msg = lang('Permission denied'); + + if ($return_error) return $msg; + } + else + { + $GLOBALS['egw']->browser =& CreateObject('phpgwapi.browser'); + $GLOBALS['egw']->browser->content_header('event.ics','text/calendar',strlen($ical)); + echo $ical; + $GLOBALS['egw']->common->egw_exit(); + } + } + if (is_array($content)) + { + $events =& $this->bo->search(array( + 'start' => $content['start'], + 'end' => $content['end'], + 'enum_recuring' => false, + 'daywise' => false, + 'owner' => $this->owner, + 'date_format' => 'server', // timestamp in server time for boical class + )); + if (!$events) + { + $msg = lang('No events found'); + } + else + { + $ical =& ExecMethod2('calendar.boical.exportVCal',$events,'2.0'/*$content['version']*/); + $GLOBALS['egw']->browser =& CreateObject('phpgwapi.browser'); + $GLOBALS['egw']->browser->content_header($content['file'] ? $content['file'] : 'event.ics','text/calendar',strlen($ical)); + echo $ical; + $GLOBALS['egw']->common->egw_exit(); + } + } + if (!is_array($content)) + { + $view = $GLOBALS['egw']->session->appsession('view','calendar'); + + $content = array( + 'start' => $this->bo->date2ts($_REQUEST['start'] ? $_REQUEST['start'] : $this->date), + 'end' => $this->bo->date2ts($_REQUEST['end'] ? $_REQUEST['end'] : $this->date), + 'file' => 'event.ics', + 'version' => '2.0', + ); + } + $content['msg'] = $msg; + + $GLOBALS['egw_info']['flags']['app_header'] = lang('calendar') . ' - ' . lang('iCal Export'); + $etpl =& CreateObject('etemplate.etemplate','calendar.export'); + + $etpl->exec('calendar.uiforms.export',$content); + } + + /** + * Import events as vCalendar version 2.0 files (iCal) + * + * @param array $content=null submitted content from etempalte::exec + */ + function import($content=null) + { + if (is_array($content)) + { + if (is_array($content['ical_file']) && is_uploaded_file($content['ical_file']['tmp_name'])) + { + if (!ExecMethod('calendar.boical.importVCal',file_get_contents($content['ical_file']['tmp_name']))) + { + $msg = lang('Error: importing the iCal'); + } + else + { + $msg = lang('iCal successful imported'); + } + } + else + { + $msg = lang('You need to select an iCal file first'); + } + } + $content = array( + 'msg' => $msg, + ); + $GLOBALS['egw_info']['flags']['app_header'] = lang('calendar') . ' - ' . lang('iCal Import'); + $etpl =& CreateObject('etemplate.etemplate','calendar.import'); + + $etpl->exec('calendar.uiforms.import',$content); + } +} diff --git a/calendar/inc/class.uiviews.inc.php b/calendar/inc/class.uiviews.inc.php index 5e0aac3d6e..93da6d1d43 100644 --- a/calendar/inc/class.uiviews.inc.php +++ b/calendar/inc/class.uiviews.inc.php @@ -26,42 +26,70 @@ class uiviews extends uical { var $public_functions = array( 'day' => True, + 'day4' => True, 'week' => True, 'month' => True, 'planner' => True, ); + /** - * @var $debug mixed integer level or string function- or widget-name + * integer level or string function- or widget-name + * + * @var mixed $debug */ var $debug=false; /** - * @var minimum width for an event + * minimum width for an event + * + * @var int $eventCol_min_width */ var $eventCol_min_width = 80; /** - * @var int $extraRows extra rows above and below the workday + * extra rows above and below the workday + * + * @var int $extraRows */ var $extraRows = 1; var $timeRow_width = 40; /** - * @var int $rowsToDisplay how many rows per day get displayed, gets set be the timeGridWidget + * how many rows per day get displayed, gets set be the timeGridWidget + * + * @var int $rowsToDisplay */ var $rowsToDisplay; /** - * @var int $rowHeight height in percent of one row, gets set be the timeGridWidget + * height in percent of one row, gets set be the timeGridWidget + * + * @var int $rowHeight */ var $rowHeight; /** - * @var array $search_params standard params for calling bocal::search for all views, set by the constructor + * standard params for calling bocal::search for all views, set by the constructor + * + * @var array $search_params */ var $search_params; + /** + * should we use a time grid, can be set for week- and month-view to false by the cal_pref no_time_grid + * + * @var boolean $use_time_grid=true + */ + var $use_time_grid=true; + + /** + * Can we display the whole day in a timeGrid of the size of the workday and just scroll to workday start + * + * @var boolean $scroll_to_wdstart; + */ + var $scroll_to_wdstart=false; + /** * Constructor * @@ -74,6 +102,7 @@ class uiviews extends uical $GLOBALS['egw_info']['flags']['nonavbar'] = False; $app_header = array( 'day' => lang('Dayview'), + '4day' => lang('Four days view'), 'week' => lang('Weekview'), 'month' => lang('Monthview'), 'planner' => lang('Group planner'), @@ -231,6 +260,8 @@ class uiviews extends uical { if ($this->debug > 0) $this->bo->debug_message('uiviews::month(weeks=%1) date=%2',True,$weeks,$this->date); + $this->use_time_grid = $this->cal_prefs['use_time_grid'] == ''; // all views + if ($weeks) { $this->first = $this->datetime->get_weekday_start($this->year,$this->month,$this->day=1); @@ -266,7 +297,7 @@ class uiviews extends uical $title = lang('Wk').' '.adodb_date('W',$week_start); $title = $this->html->a_href($title,$week_view,'',' title="'.lang('Weekview').'"'); - $content .= $this->timeGridWidget($week,60,200,'',$title); + $content .= $this->timeGridWidget($week,60,200,'',$title,0,$week_start+WEEK_s >= $this->last); } if (!$home) { @@ -305,6 +336,17 @@ class uiviews extends uical unset($last['raw']); // otherwise date2ts does not calc raw new, but uses it $last = $this->bo->date2ts($last); } + + /** + * Four days view, everythings done by the week-view code ... + * + * @param boolean $home=false if true return content suitable for home-page + * @return string + */ + function day4($home=false) + { + return $this->week(4,$home); + } /** * Displays the weekview, with 5 or 7 days @@ -314,6 +356,9 @@ class uiviews extends uical */ function week($days=0,$home=false) { + $this->use_time_grid = $days != 4 && !in_array($this->cal_prefs['use_time_grid'],array('day','day4')) || + $days == 4 && $this->cal_prefs['use_time_grid'] != 'day'; + if (!$days) { $days = isset($_GET['days']) ? $_GET['days'] : $this->cal_prefs['days_in_weekview']; @@ -327,23 +372,31 @@ class uiviews extends uical } if ($this->debug > 0) $this->bo->debug_message('uiviews::week(days=%1) date=%2',True,$days,$this->date); - $wd_start = $this->first = $this->datetime->get_weekday_start($this->year,$this->month,$this->day); - if ($days == 5) // no weekend-days + if ($days == 4) // next 4 days view { - switch($this->cal_prefs['weekdaystarts']) + $wd_start = $this->first = $this->bo->date2ts($this->date); + $this->last = $this->first + $days * DAY_s - 1; + $GLOBALS['egw_info']['flags']['app_header'] .= ': '.lang('Four days view').' '.$this->bo->long_date($this->first,$this->last); + } + else + { + $wd_start = $this->first = $this->datetime->get_weekday_start($this->year,$this->month,$this->day); + if ($days == 5) // no weekend-days { - case 'Saturday': - $this->first += DAY_s; - // fall through - case 'Sunday': - $this->first += DAY_s; - break; + switch($this->cal_prefs['weekdaystarts']) + { + case 'Saturday': + $this->first += DAY_s; + // fall through + case 'Sunday': + $this->first += DAY_s; + break; + } } + $this->last = $this->first + $days * DAY_s - 1; + $GLOBALS['egw_info']['flags']['app_header'] .= ': '.lang('Week').' '.adodb_date('W',$this->first).': '.$this->bo->long_date($this->first,$this->last); } //echo "

weekdaystarts='".$this->cal_prefs['weekdaystarts']."', get_weekday_start($this->year,$this->month,$this->day)=".date('l Y-m-d',$wd_start).", first=".date('l Y-m-d',$this->first)."

\n"; - $this->last = $this->first + $days * DAY_s - 1; - - $GLOBALS['egw_info']['flags']['app_header'] .= ': '.lang('Week').' '.adodb_date('W',$this->first).': '.$this->bo->long_date($this->first,$this->last); $search_params = array( 'start' => $this->first, @@ -387,7 +440,9 @@ class uiviews extends uical if ($this->debug > 0) $this->bo->debug_message('uiviews::day() date=%1',True,$this->date); $this->last = $this->first = $this->bo->date2ts((string)$this->date); - $GLOBALS['egw_info']['flags']['app_header'] .= ': '.lang(adodb_date('l',$this->first)).', '.$this->bo->long_date($this->first); + $GLOBALS['egw_info']['flags']['app_header'] .= ': '.$this->bo->long_date($this->first,0,false,true); + + $this->use_time_grid = true; // day-view always uses a time-grid, independent what's set in the prefs! $this->search_params['end'] = $this->last = $this->first+DAY_s-1; @@ -398,8 +453,8 @@ class uiviews extends uical $users = $this->search_params['users']; if (!is_array($users)) $users = array($users); - // for more then 3 users, show all in one row - if (count($users) == 1 || count($users) > 3) + // for more then 5 users, show all in one row + if (count($users) == 1 || count($users) > 5) { $dayEvents =& $this->bo->search($this->search_params); $owner = 0; @@ -418,7 +473,8 @@ class uiviews extends uical $cols = array(); $cols[0] =& $this->timeGridWidget($dayEvents,$this->cal_prefs['interval'],450,'','',$owner); - if (($todos = $this->get_todos($todo_label)) !== false) + // only show todo's for a single user + if (count($users) == 1 && ($todos = $this->get_todos($todo_label)) !== false) { if ($GLOBALS['egw_info']['user']['apps']['infolog']) { @@ -534,6 +590,10 @@ class uiviews extends uical */ function time2pos($time) { + if ($this->scroll_to_wdstart) // we display the complete day - thought only workday is visible without scrolling + { + return $this->rowHeight * (1 + $this->extraRows + $time/$this->granularity_m); + } // time before workday => condensed in the first $this->extraRows rows if ($this->wd_start > 0 && $time < $this->wd_start) { @@ -587,17 +647,30 @@ class uiviews extends uical * @param string $indent='' string for correct indention * @param string $title='' title of the time-grid * @param int/array $owner=0 owner of the calendar (default 0 = $this->owner) or array with owner for each column + * @param boolean $last=true last timeGrid displayed, default true */ - function &timeGridWidget($daysEvents,$granularity_m=30,$height=400,$indent='',$title='',$owner=0) + function &timeGridWidget($daysEvents,$granularity_m=30,$height=400,$indent='',$title='',$owner=0,$last=true) { if ($this->debug > 1 || $this->debug==='timeGridWidget') $this->bo->debug_message('uiviews::timeGridWidget(events=%1,granularity_m=%2,height=%3,,title=%4)',True,$daysEvents,$granularity_m,$height,$title); + // determine if the browser supports scrollIntoView: IE4+, firefox1.0+ and safari2.0+ does + // then show all hours in a div of the size of the workday and scroll to the workday start + // still disabled, as things need to be re-aranged first, to that the column headers are not scrolled + $this->scroll_to_wdstart = false;/*$this->use_time_grid && ($this->html->user_agent == 'msie' || + $this->html->user_agent == 'mozilla' && $this->html->ua_version >= 5.0 || + $this->html->user_agent == 'safari' && $this->html->ua_version >= 2.0);*/ + + if ($this->scroll_to_wdstart) + { + $this->extraRows = 0; // no extra rows necessary + $overflow = 'overflow: scroll;'; + } $this->granularity_m = $granularity_m; $this->display_start = $this->wd_start - ($this->extraRows * $this->granularity_m); $this->display_end = $this->wd_end + ($this->extraRows * $this->granularity_m); - $wd_end = ($this->wd_end === 0 ? 1440 : $this->wd_end); - $totalDisplayMinutes = $wd_end - $this->wd_start; + if (!$this->wd_end) $this->wd_end = 1440; + $totalDisplayMinutes = $this->wd_end - $this->wd_start; $this->rowsToDisplay = ($totalDisplayMinutes/$granularity_m)+2+2*$this->extraRows; $this->rowHeight = round(100/$this->rowsToDisplay,1); @@ -606,30 +679,48 @@ class uiviews extends uical { $height = ($this->rowsToDisplay+1) * 12; } - $html = $indent.'
'."\n"; + $html = $indent.'
'."\n"; $html .= $indent."\t".'
'.$title."
\n"; - $off = false; // Off-row means a different bgcolor - $add_links = count($daysEvents) == 1; - - // the hour rows - for($i=1; $i < $this->rowsToDisplay; $i++) + if ($this->use_time_grid) { - $currentTime = $this->display_start + (($i-1) * $this->granularity_m); - if($this->wd_start <= $currentTime && $this->wd_end >= $currentTime) + $off = false; // Off-row means a different bgcolor + $add_links = count($daysEvents) == 1; + + // the hour rows + for($t = $this->scroll_to_wdstart ? 0 : $this->wd_start,$i = 1+$this->extraRows; + $t <= $this->wd_end || $this->scroll_to_wdstart && $t < 24*60; + $t += $this->granularity_m,++$i) { - $html .= $indent."\t".'
'."\n"; - $time = $GLOBALS['egw']->common->formattime(sprintf('%02d',$currentTime/60),sprintf('%02d',$currentTime%60)); - if ($add_links) $time = $this->add_link($time,$this->date,(int) ($currentTime/60),$currentTime%60); + // show time for full hours, allways for 45min interval and at least on every 3 row + $time = ''; + static $show = array( + 5 => array(0,15,30,45), + 10 => array(0,30), + 15 => array(0,30), + 45 => array(0,15,30,45), + ); + if (!isset($show[$this->granularity_m]) ? $t % 60 == 0 : in_array($t % 60,$show[$this->granularity_m])) + { + $time = $GLOBALS['egw']->common->formattime(sprintf('%02d',$t/60),sprintf('%02d',$t%60)); + } + if ($add_links) $time = $this->add_link($time,$this->date,(int) ($t/60),$t%60); $html .= $indent."\t\t".'
'.$time."
\n"; $html .= $indent."\t
\n"; // calTimeRow $off = !$off; } } - if (is_array($daysEvents) && count($daysEvents)) { $numberOfDays = count($daysEvents); @@ -637,12 +728,22 @@ class uiviews extends uical $dayCols_width = $width - $this->timeRow_width - 1; - // Lars Kneschke 2005-08-28 - // why do we use a div in a div which has the same height and width??? - // To make IE6 happy!!! Whithout the second div you can't use - // style="left: 50px; right: 0px;" - $html .= $indent."\t".'
'."\n"; + $html .= $indent."\t".'
'."\n"; + + if ($this->html->user_agent == 'msie') // necessary IE hack - stupid thing ... + { + // Lars Kneschke 2005-08-28 + // why do we use a div in a div which has the same height and width??? + // To make IE6 happy!!! Without the second div you can't use + // style="left: 50px; right: 0px;" + //$html .= '
'."\n"; + + // Ralf Becker 2006-06-19 + // Lars original typo "width=100%; height: 100%;" is important ;-) + // means you width: 100% does NOT work, you need no width! + $html .= '
'."\n"; + } $dayCol_width = $dayCols_width / count($daysEvents); $n = 0; foreach($daysEvents as $day => $events) @@ -659,10 +760,21 @@ class uiviews extends uical $dayColWidth,$indent."\t\t",$short_title,++$on_off & 1,$col_owner); ++$n; } - $html .= $indent."\t
\n"; // calDayCols + if ($this->html->user_agent == 'msie') $html .= "
\n"; + + $html .= $indent."\t
\n"; // calDayCols } $html .= $indent."
\n"; // calTimeGrid - + + if ($this->scroll_to_wdstart) + { + $html .= "\n"; + } return $html; } @@ -703,25 +815,16 @@ class uiviews extends uical $event['end_m'] = 24*60-1; $event['multiday'] = True; } - for($c = 0; $event['start_m'] < $col_ends[$c]; ++$c); - $eventCols[$c][] = $event; - $col_ends[$c] = $event['end_m']; - } - - if (count($eventCols)) - { - /* code to overlay the column, not used at the moment - $eventCol_dist = $eventCol_width = round($width / count($eventCols)); - $eventCol_min_width = 80; - if ($eventCol_width < $eventCol_min_width) + if ($this->use_time_grid) { - $eventCol_width = $eventCol_dist = $eventCol_min_width; - if (count($eventCols) > 1) - { - $eventCol_dist = round(($width - $eventCol_min_width) / (count($eventCols)-1)); - } - }*/ - $eventCol_dist = $eventCol_width = round(100 / count($eventCols)); + for($c = 0; $event['start_m'] < $col_ends[$c]; ++$c); + $col_ends[$c] = $event['end_m']; + } + else + { + $c = 0; // without grid we only use one column + } + $eventCols[$c][] = $event; } $html = $indent.'
bo->date2string($ts -= 12*HOUR_s); + $title = $this->html->a_href($this->html->image('phpgwapi','left',$this->bo->long_date($ts)),$day_view).'   '.$title; + $day_view['date'] = $this->bo->date2string($ts += 48*HOUR_s); + $title .= '   '.$this->html->a_href($this->html->image('phpgwapi','right',$this->bo->long_date($ts)),$day_view); + } $this->_day_class_holiday($day_ymd,$class,$holidays); // the weekday and date - $html .= $indent."\t".'
'. + $html .= $indent."\t".'
'. $title.(!$short_title && $holidays ? ': '.$holidays : '')."
\n"; - // adding divs to click on for each row / time-span - for($counter = 1; $counter < $this->rowsToDisplay; $counter++) + if ($this->use_time_grid) { - //print "$counter - ". $counter*$this->rowHeight ."
"; - $linkData = array( - 'menuaction' =>'calendar.uiforms.edit', - 'date' => $day_ymd, - 'hour' => floor(($this->wd_start + (($counter-$this->extraRows-1)*$this->granularity_m))/60), - 'minute' => floor(($this->wd_start + (($counter-$this->extraRows-1)*$this->granularity_m))%60), - ); - if ($owner) $linkData['owner'] = $owner; - - $html .= $indent."\t".'
'."\n"; + // adding divs to click on for each row / time-span + for($t = $this->scroll_to_wdstart ? 0 : $this->wd_start,$i = 1+$this->extraRows; + $t <= $this->wd_end || $this->scroll_to_wdstart && $t < 24*60; + $t += $this->granularity_m,++$i) + { + $linkData = array( + 'menuaction' =>'calendar.uiforms.edit', + 'date' => $day_ymd, + 'hour' => floor($t / 60), + 'minute' => floor($t % 60), + ); + if ($owner) $linkData['owner'] = $owner; + + $html .= $indent."\t".'
'."\n"; + } } // displaying all event columns of the day foreach($eventCols as $n => $eventCol) { - $html .= $this->eventColWidget($eventCol,$n*$eventCol_dist,$eventCol_width,$indent."\t"); + $html .= $this->eventColWidget($eventCol,!$n ? 0 : 60-10*(count($eventCols)-$n), + count($eventCols) == 1 ? 100 : (!$n ? 80 : 50),$indent."\t"); } $html .= $indent."
\n"; // calDayCol @@ -834,7 +951,8 @@ class uiviews extends uical { if ($this->debug > 1 || $this->debug==='eventColWidget') $this->bo->debug_message('uiviews::eventColWidget(%1,left=%2,width=%3,)',False,$events,$left,$width); - $html = $indent.'
'."\n"; + $html = $indent.'
'."\n"; foreach($events as $event) { $html .= $this->eventWidget($event,$width,$indent."\t"); @@ -877,11 +995,7 @@ class uiviews extends uical } else { - foreach(array($event['start_m'],$event['end_m']) as $minutes) - { - $timespan[] = $GLOBALS['egw']->common->formattime(sprintf('%02d',$minutes/60),sprintf('%02d',$minutes%60)); - } - $timespan = implode(' - ',$timespan); + $timespan = $this->bo->timespan($event['start_m'],$event['end_m']); } $is_private = !$this->bo->check_perms(EGW_ACL_READ,$event); @@ -897,7 +1011,7 @@ class uiviews extends uical $border=1; $headerbgcolor = $color ? $color : '#808080'; // the body-colors (gradient) are calculated from the headercolor, which depends on the cat of an event - $bodybgcolor1 = $this->brighter($headerbgcolor,170); + $bodybgcolor1 = $this->brighter($headerbgcolor,$headerbgcolor == '#808080' ? 100 : 170); $bodybgcolor2 = $this->brighter($headerbgcolor,220); // seperate each participant types @@ -917,19 +1031,25 @@ class uiviews extends uical { $participants .= $this->add_nonempty($participant,$part_group,True); } - + // as we only deal with percentual widht, we consider only the full dayview (1 colum) as NOT small + $small = $this->view != 'day' || $width < 50; + // $small = $width <= $small_trigger_width + + $small_height = $this->use_time_grid && ( $event['end_m']-$event['start_m'] < 2*$this->granularity_m || + $event['end_m'] <= $this->wd_start || $event['start_m'] >= $this->wd_end); + $tpl->set_var(array( // event-content, some of it displays only if it really has content or is needed - 'header_icons' => $width > $small_trigger_width ? implode("",$icons) : '', - 'body_icons' => $width > $small_trigger_width ? '' : implode("\n",$icons), - 'icons' => implode("\n",$icons), + 'header_icons' => $small ? '' : implode("",$icons), + 'body_icons' => $small ? implode("\n",$icons) : '', + 'icons' => implode('',$icons), 'timespan' => $timespan, - 'header' => !$is_private ? $this->html->htmlspecialchars($event['title']) : lang('private'), // $timespan, - 'title' => !$is_private ? $this->html->htmlspecialchars($event['title']) : lang('private'), + 'title' => ($title = !$is_private ? $this->html->htmlspecialchars($event['title']) : lang('private')), + 'header' => $small_height ? $title : $timespan, 'description' => !$is_private ? nl2br($this->html->htmlspecialchars($event['description'])) : '', 'location' => !$is_private ? $this->add_nonempty($event['location'],lang('Location')) : '', 'participants' => $participants, - 'times' => !$event['multiday'] ? $this->add_nonempty($timespan,lang('Time')) : + 'times' => !$event['multiday'] ? $this->add_nonempty($this->bo->timespan($event['start_m'],$event['end_m'],true),lang('Time')) : $this->add_nonempty($this->bo->format_date($event['start']),lang('Start')). $this->add_nonempty($this->bo->format_date($event['end']),lang('End')), 'multidaytimes' => !$event['multiday'] ? '' : @@ -947,12 +1067,13 @@ class uiviews extends uical 'border' => $border, 'bordercolor' => $headerbgcolor, 'headerbgcolor' => $headerbgcolor, - 'bodybackground' => 'url('.$GLOBALS['egw_info']['server']['webserver_url']. + 'bodybackground' => ($background = 'url('.$GLOBALS['egw_info']['server']['webserver_url']. '/calendar/inc/gradient.php?color1='.urlencode($bodybgcolor1).'&color2='.urlencode($bodybgcolor2). - '&width='.$width.') repeat-y '.$bodybgcolor2, - 'Small' => $width > $small_trigger_width ? '' : 'Small', // to use in css class-names - // otherwise a click in empty parts of the event, will "click through" and create a new event + '&width='.$width.') repeat-y '.$bodybgcolor2), + 'Small' => $small ? 'Small' : '', // to use in css class-names + 'indent' => $indent."\t", )); +/* not used at the moment foreach(array( 'upper_left'=>array('width'=>-$corner_radius,'height'=>$header_height,'border'=>0,'bgcolor'=>$headerbgcolor), 'upper_right'=>array('width'=>$corner_radius,'height'=>$header_height,'border'=>0,'bgcolor'=>$headerbgcolor), @@ -966,6 +1087,7 @@ class uiviews extends uical (isset($data['color']) ? '&color='.urlencode($data['color']) : ''). (isset($data['border']) ? '&border='.urlencode($data['border']) : '')); } +*/ $tooltip = $tpl->fp('tooltip','event_tooltip'); $tpl->set_var('tooltip',$this->html->tooltip($tooltip,False,array('BorderWidth'=>0,'Padding'=>0))); $html = $tpl->fp('out',$block); @@ -986,12 +1108,22 @@ class uiviews extends uical $ie_fix = ''; if ($this->html->user_agent == 'msie') // add a transparent image to make the event "opaque" to mouse events { - $ie_fix = $this->html->image('calendar','transparent.gif','', + $ie_fix = $indent."\t".$this->html->image('calendar','transparent.gif','', $this->html->tooltip($tooltip,False,array('BorderWidth'=>0,'Padding'=>0)). ' style="top:0px; left:0px; position:absolute; height:100%; width:100%; z-index:1"') . "\n"; } - return $indent.'
'."\n".$ie_fix.$html.$indent."
\n"; + if ($this->use_time_grid) + { + $style = 'top: '.$this->time2pos($event['start_m']).'%; height: '.$height.'%;'; + } + else + { + $style = 'position: relative; margin-top: 3px;'; + } + return $indent.'
html->tooltip($tooltip,False,array('BorderWidth'=>0,'Padding'=>0)). + '>'."\n".$ie_fix.$html.$indent."
\n"; } function add_nonempty($content,$label,$one_per_line=False) diff --git a/calendar/inc/hook_settings.inc.php b/calendar/inc/hook_settings.inc.php new file mode 100644 index 0000000000..50015b322d --- /dev/null +++ b/calendar/inc/hook_settings.inc.php @@ -0,0 +1,353 @@ + * + * http://www.radix.net/~cknudsen * + * Modified by Mark Peters * + * Modified by Ralf Becker * + * -------------------------------------------- * + * This program is free software; you can redistribute it and/or modify it * + * under the terms of the GNU General Public License as published by the * + * Free Software Foundation; either version 2 of the License, or (at your * + * option) any later version. * + \**************************************************************************/ + + /* $Id$ */ + + ExecMethod('calendar.bocal.check_set_default_prefs'); + + $default = array( + 'day' => lang('Dayview'), + 'day4' => lang('Four days view'), + 'week' => lang('Weekview'), + 'month' => lang('Monthview'), + 'planner_cat' => lang('Planner by category'), + 'planner_user' => lang('Planner by user'), + 'listview' => lang('Listview'), + ); + $grid_views = array( + '' => lang('all'), + 'day_week' => lang('Dayview').', '.lang('Four days view').' & '.lang('Weekview'), + 'day4' => lang('Dayview').' & '.lang('Four days view'), + 'day' => lang('Dayview'), + ); + /* Select list with number of day by week */ + $week_view = array( + '5' => lang('Weekview without weekend'), + '7' => lang('Weekview with weekend'), + ); + + $mainpage = array( + '1' => lang('Yes'), + '0' => lang('No'), + ); +/* + $summary = array( + 'no' => lang('Never'), + 'daily' => lang('Daily'), + 'weekly' => lang('Weekly') + ); + create_select_box('Receive summary of appointments','summary',$summary, + 'Do you want to receive a regulary summary of your appointsments via email?
The summary is sent to your standard email-address on the morning of that day or on Monday for weekly summarys.
It is only sent when you have any appointments on that day or week.'); +*/ + $updates = array( + 'no' => lang('Never'), + 'add_cancel' => lang('on invitation / cancelation only'), + 'time_change_4h' => lang('on time change of more than 4 hours too'), + 'time_change' => lang('on any time change too'), + 'modifications' => lang('on all modification, but responses'), + 'responses' => lang('on participant responses too') + ); + $update_formats = array( + 'none' => lang('None'), + 'extended' => lang('Extended'), + 'ical' => lang('iCal / rfc2445') + ); + $event_details = array( + 'to-fullname' => lang('Fullname of person to notify'), + 'to-firstname'=> lang('Firstname of person to notify'), + 'to-lastname' => lang('Lastname of person to notify'), + 'title' => lang('Title of the event'), + 'description' => lang('Description'), + 'startdate' => lang('Start Date/Time'), + 'enddate' => lang('End Date/Time'), + 'olddate' => lang('Old Startdate'), + 'category' => lang('Category'), + 'location' => lang('Location'), + 'priority' => lang('Priority'), + 'participants'=> lang('Participants'), + 'owner' => lang('Owner'), + 'repetition' => lang('Repetitiondetails (or empty)'), + 'action' => lang('Action that caused the notify: Added, Canceled, Accepted, Rejected, ...'), + 'link' => lang('Link to view the event'), + 'disinvited' => lang('Participants disinvited from an event'), + ); + $weekdaystarts = array( + 'Monday' => lang('Monday'), + 'Sunday' => lang('Sunday'), + 'Saturday' => lang('Saturday') + ); + + for ($i=0; $i < 24; ++$i) + { + $times[$i] = $GLOBALS['egw']->common->formattime($i,'00'); + } + + $intervals = array( + 5 => '5', + 10 => '10', + 15 => '15', + 20 => '20', + 30 => '30', + 45 => '45', + 60 => '60' + ); + $groups = $GLOBALS['egw']->accounts->membership($GLOBALS['egw_info']['user']['account_id']); + $options = array(-1 => lang('none')); + if (is_array($groups)) + { + foreach($groups as $group) + { + $options[$group['account_id']] = $GLOBALS['egw']->common->grab_owner_name($group['account_id']); + } + } + $defaultfilter = array( + 'all' => lang('all'), + 'private' => lang('private only'), +// 'public' => lang('global public only'), +// 'group' => lang('group public only'), +// 'private+public' => lang('private and global public'), +// 'private+group' => lang('private and group public'), +// 'public+group' => lang('global public and group public') + ); + $freebusy_url = $GLOBALS['egw_info']['server']['webserver_url'].'/calendar/freebusy.php?user='.$GLOBALS['egw_info']['user']['account_lid'].'&password='.$GLOBALS['egw_info']['user']['preferences']['calendar']['freebusy_pw']; + if ($freebusy_url[0] == '/') + { + $freebusy_url = ($_SERVER['HTTPS'] ? 'https://' : 'http://').$_SERVER['HTTP_HOST'].$freebusy_url; + } + $freebusy_help = lang('Should not loged in persons be able to see your freebusy information? You can set an extra password, different from your normal password, to protect this informations. The freebusy information is in iCal format and only include the times when you are busy. It does not include the event-name, description or locations. The URL to your freebusy information is %1.',''.$freebusy_url.''); + + $GLOBALS['settings'] = array( + 'defaultcalendar' => array( + 'type' => 'select', + 'label' => 'default calendar view', + 'name' => 'defaultcalendar', + 'values' => $default, + 'help' => 'Which of calendar view do you want to see, when you start calendar ?', + 'xmlrpc' => True, + 'admin' => False + ), + 'days_in_weekview' => array( + 'type' => 'select', + 'label' => 'default week view', + 'name' => 'days_in_weekview', + 'values' => $week_view, + 'help' => 'Do you want a weekview with or without weekend?', + 'xmlrpc' => True, + 'admin' => False + ), + 'mainscreen_showevents' => array( + 'type' => 'select', + 'label' => 'show default view on main screen', + 'name' => 'mainscreen_showevents', + 'values' => $mainpage, + 'help' => 'Displays your default calendar view on the startpage (page you get when you enter eGroupWare or click on the homepage icon)?', + 'xmlrpc' => True, + 'admin' => False + ), + 'show_rejected' => array( + 'type' => 'check', + 'label' => 'Show invitations you rejected', + 'name' => 'show_rejected', + 'help' => 'Should invitations you rejected still be shown in your calendar ?
You can only accept them later (eg. when your scheduling conflict is removed), if they are still shown in your calendar!' + ), + 'weekdaystarts' => array( + 'type' => 'select', + 'label' => 'weekday starts on', + 'name' => 'weekdaystarts', + 'values' => $weekdaystarts, + 'help' => 'This day is shown as first day in the week or month view.', + 'xmlrpc' => True, + 'admin' => False + ), + 'workdaystarts' => array( + 'type' => 'select', + 'label' => 'work day starts on', + 'name' => 'workdaystarts', + 'values' => $times, + 'help' => 'This defines the start of your dayview. Events before this time, are shown above the dayview.
This time is also used as a default starttime for new events.', + 'xmlrpc' => True, + 'admin' => False + ), + 'workdayends' => array( + 'type' => 'select', + 'label' => 'work day ends on', + 'name' => 'workdayends', + 'values' => $times, + 'help' => 'This defines the end of your dayview. Events after this time, are shown below the dayview.', + 'xmlrpc' => True, + 'admin' => False + ), + 'use_time_grid' => array( + 'type' => 'select', + 'label' => 'Views with fixed time intervals', + 'name' => 'use_time_grid', + 'values' => $grid_views, + 'help' => 'For which views should calendar show distinct lines with a fixed time interval.', + 'xmlrpc' => True, + 'admin' => False + ), + 'interval' => array( + 'type' => 'select', + 'label' => 'Length of the time interval', + 'name' => 'interval', + 'values' => $intervals, + 'help' => 'How many minutes should each interval last?', + 'xmlrpc' => True, + 'admin' => False + ), + 'defaultlength' => array( + 'type' => 'input', + 'label' => 'default appointment length (in minutes)', + 'name' => 'defaultlength', + 'help' => 'Default length of newly created events. The length is in minutes, eg. 60 for 1 hour.', + 'default' => '', + 'size' => 3, + 'xmlrpc' => True, + 'admin' => False + ), + 'planner_start_with_group' => array( + 'type' => 'select', + 'label' => 'Preselected group for entering the planner', + 'name' => 'planner_start_with_group', + 'values' => $options, + 'help' => 'This group that is preselected when you enter the planner. You can change it in the planner anytime you want.', + 'xmlrpc' => True, + 'admin' => False + ), + 'default_private' => array( + 'type' => 'check', + 'label' => 'Set new events to private', + 'name' => 'default_private', + 'help' => 'Should new events created as private by default ?', + 'xmlrpc' => True, + 'admin' => False + ), + 'receive_updates' => array( + 'type' => 'select', + 'label' => 'Receive email updates', + 'name' => 'receive_updates', + 'values' => $updates, + 'help' => "Do you want to be notified about new or changed appointments? You be notified about changes you make yourself.
You can limit the notifications to certain changes only. Each item includes all the notification listed above it. All modifications include changes of title, description, participants, but no participant responses. If the owner of an event requested any notifcations, he will always get the participant responses like acceptions and rejections too.", + 'xmlrpc' => True, + 'admin' => False + ), + 'update_format' => array( + 'type' => 'select', + 'label' => 'Format of event updates', + 'name' => 'update_format', + 'values' => $update_formats, + 'help' => 'Extended updates always include the complete event-details. iCal\'s can be imported by certain other calendar-applications.', + 'xmlrpc' => True, + 'admin' => False + ), + 'notifyAdded' => array( + 'type' => 'notify', + 'label' => 'Notification messages for added events ', + 'name' => 'notifyAdded', + 'rows' => 5, + 'cols' => 50, + 'help' => 'This message is sent to every participant of events you own, who has requested notifcations about new events.
You can use certain variables which get substituted with the data of the event. The first line is the subject of the email.', + 'default' => '', + 'values' => $event_details, + 'xmlrpc' => True, + 'admin' => False + ), + 'notifyCanceled' => array( + 'type' => 'notify', + 'label' => 'Notification messages for canceled events ', + 'name' => 'notifyCanceled', + 'rows' => 5, + 'cols' => 50, + 'help' => 'This message is sent for canceled or deleted events.', + 'default' => '', + 'values' => $event_details, + 'subst_help' => False, + 'xmlrpc' => True, + 'admin' => False + ), + 'notifyModified' => array( + 'type' => 'notify', + 'label' => 'Notification messages for modified events ', + 'name' => 'notifyModified', + 'rows' => 5, + 'cols' => 50, + 'help' => 'This message is sent for modified or moved events.', + 'default' => '', + 'values' => $event_details, + 'subst_help' => False, + 'xmlrpc' => True, + 'admin' => False + ), + 'notifyDisinvited' => array( + 'type' => 'notify', + 'label' => 'Notification messages for disinvited participants ', + 'name' => 'notifyDisinvited', + 'rows' => 5, + 'cols' => 50, + 'help' => 'This message is sent to disinvited participants.', + 'default' => '', + 'values' => $event_details, + 'subst_help' => False, + 'xmlrpc' => True, + 'admin' => False + ), + 'notifyResponse' => array( + 'type' => 'notify', + 'label' => 'Notification messages for your responses ', + 'name' => 'notifyResponse', + 'rows' => 5, + 'cols' => 50, + 'help' => 'This message is sent when you accept, tentative accept or reject an event.', + 'default' => '', + 'values' => $event_details, + 'subst_help' => False, + 'xmlrpc' => True, + 'admin' => False + ), + 'notifyAlarm' => array( + 'type' => 'notify', + 'label' => 'Notification messages for your alarms', + 'name' => 'notifyAlarm', + 'rows' => 5, + 'cols' => 50, + 'help' => 'This message is sent when you set an Alarm for a certain event. Include all information you might need.', + 'default' => '', + 'values' => $event_details, + 'subst_help' => False, + 'xmlrpc' => True, + 'admin' => False + ), +/* disabled free/busy stuff til it gets rewritten with new Horde iCal classes -- RalfBecker 2006/03/03 + 'freebusy' => array( + 'type' => 'check', + 'label' => 'Make freebusy information available to not loged in persons?', + 'name' => 'freebusy', + 'help' => $freebusy_help, + 'run_lang' => false, + 'default' => '', + 'subst_help' => False, + 'xmlrpc' => True, + 'admin' => False, + ), + 'freebusy_pw' => array( + 'type' => 'input', + 'label' => 'Password for not loged in users to your freebusy information?', + 'name' => 'freebusy_pw', + 'help' => 'If you dont set a password here, the information is available to everyone, who knows the URL!!!', + 'xmlrpc' => True, + 'admin' => False + ) +*/ + ); diff --git a/calendar/setup/etemplates.inc.php b/calendar/setup/etemplates.inc.php new file mode 100644 index 0000000000..85982d31d0 --- /dev/null +++ b/calendar/setup/etemplates.inc.php @@ -0,0 +1,73 @@ + 'calendar.conflicts','template' => '','lang' => '','group' => '0','version' => '1.0.1.001','data' => 'a:3:{i:0;a:3:{s:4:"type";s:5:"label";s:5:"label";s:20:" Scheduling conflict";s:4:"span";s:9:",size120b";}i:1;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:1:{s:2:"c1";s:4:",top";}i:1;a:4:{s:1:"A";a:4:{s:4:"type";s:5:"image";s:4:"name";s:34:"conflicts[$row][icon_participants]";s:5:"label";s:38:"@conflicts[$row][tooltip_participants]";s:7:"no_lang";s:1:"1";}s:1:"B";a:4:{s:4:"type";s:5:"image";s:4:"name";s:27:"conflicts[$row][icon_recur]";s:5:"label";s:28:"@conflicts[$row][text_recur]";s:7:"no_lang";s:1:"1";}s:1:"C";a:3:{s:4:"type";s:5:"label";s:4:"name";s:21:"conflicts[$row][time]";s:7:"no_lang";s:1:"1";}s:1:"D";a:5:{s:4:"type";s:4:"vbox";s:4:"size";s:6:"2,,0,0";i:1;a:4:{s:4:"type";s:5:"label";s:4:"name";s:22:"conflicts[$row][title]";s:7:"no_lang";s:1:"1";s:4:"size";s:1:"b";}i:2;a:3:{s:4:"type";s:5:"label";s:4:"name";s:41:"conflicts[$row][conflicting_participants]";s:7:"no_lang";s:1:"1";}s:4:"help";s:23:"conflict[$row][tooltip]";}}}s:4:"rows";i:1;s:4:"cols";i:4;}i:2;a:5:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"3";i:1;a:4:{s:4:"type";s:6:"button";s:5:"label";s:15:"Ignore conflict";s:4:"name";s:14:"button[ignore]";s:4:"help";s:37:"Saves the event ignoring the conflict";}i:2;a:4:{s:4:"type";s:6:"button";s:4:"name";s:14:"button[reedit]";s:5:"label";s:13:"Re-Edit event";s:4:"help";s:30:"Allows to edit the event again";}i:3;a:4:{s:4:"type";s:6:"button";s:5:"label";s:15:"Freetime search";s:4:"name";s:16:"button[freetime]";s:4:"help";s:88:"Find free timeslots where the selected participants are availible for the given timespan";}}}','size' => '','style' => '','modified' => '1119080124',); + +$templ_data[] = array('name' => 'calendar.edit','template' => '','lang' => '','group' => '0','version' => '1.0.1.001','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:6:{i:0;a:6:{s:2:"h1";s:6:",!@msg";s:2:"c2";s:2:"th";s:1:"A";s:3:"100";s:2:"c4";s:3:"row";s:2:"h4";s:8:",!@owner";s:1:"B";s:3:"300";}i:1;a:3:{s:1:"A";a:5:{s:4:"type";s:5:"label";s:4:"span";s:13:"all,redItalic";s:4:"name";s:3:"msg";s:7:"no_lang";s:1:"1";s:5:"align";s:6:"center";}s:1:"B";a:1:{s:4:"type";s:5:"label";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:2;a:3:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Title";}s:1:"B";a:5:{s:4:"type";s:4:"text";s:4:"size";s:6:"80,255";s:4:"name";s:5:"title";s:4:"span";s:3:"all";s:6:"needed";s:1:"1";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:3;a:3:{s:1:"A";a:5:{s:4:"type";s:3:"tab";s:4:"span";s:3:"all";s:5:"label";s:63:"General|Description|Participants|Recurrence|Custom|Links|Alarms";s:4:"name";s:63:"general|description|participants|recurrence|custom|links|alarms";s:4:"help";s:158:"Location, Start- and Endtimes, ...|Full description|Participants, Resources, ...|Repeating Event Information|Custom fields|Links, Attachments|Alarm management";}s:1:"B";a:1:{s:4:"type";s:5:"label";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:4;a:3:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Owner";}s:1:"B";a:3:{s:4:"type";s:14:"select-account";s:4:"name";s:5:"owner";s:8:"readonly";s:1:"1";}s:1:"C";a:5:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";s:5:"align";s:5:"right";i:1;a:5:{s:4:"type";s:9:"date-time";s:5:"label";s:7:"Updated";s:4:"name";s:8:"modified";s:8:"readonly";s:1:"1";s:7:"no_lang";s:1:"1";}i:2;a:4:{s:4:"type";s:14:"select-account";s:5:"label";s:2:"by";s:4:"name";s:8:"modifier";s:8:"readonly";s:1:"1";}}}i:5;a:3:{s:1:"A";a:10:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"7";s:4:"span";s:1:"2";i:1;a:4:{s:4:"type";s:6:"button";s:4:"name";s:19:"button[edit_series]";s:5:"label";s:11:"Edit series";s:4:"help";s:35:"Edit this series of recuring events";}i:2;a:4:{s:4:"type";s:6:"button";s:4:"name";s:12:"button[edit]";s:5:"label";s:4:"Edit";s:4:"help";s:15:"Edit this event";}i:3;a:4:{s:4:"type";s:6:"button";s:4:"name";s:12:"button[copy]";s:5:"label";s:4:"Copy";s:4:"help";s:15:"Copy this event";}i:4;a:4:{s:4:"type";s:6:"button";s:5:"label";s:4:"Save";s:4:"name";s:12:"button[save]";s:4:"help";s:22:"saves the changes made";}i:5;a:4:{s:4:"type";s:6:"button";s:4:"name";s:13:"button[apply]";s:5:"label";s:5:"Apply";s:4:"help";s:17:"apply the changes";}i:6;a:5:{s:4:"type";s:6:"button";s:4:"name";s:14:"button[cancel]";s:5:"label";s:6:"Cancel";s:7:"onclick";s:15:"window.close();";s:4:"help";s:16:"Close the window";}i:7;a:4:{s:4:"type";s:8:"checkbox";s:4:"name";s:11:"custom_mail";s:5:"label";s:21:"mail all participants";s:4:"help";s:59:"compose a mail to all participants after the event is saved";}}s:1:"B";a:1:{s:4:"type";s:5:"label";}s:1:"C";a:5:{s:4:"type";s:4:"hbox";s:5:"align";s:5:"right";s:4:"size";s:1:"2";i:1;a:5:{s:4:"type";s:6:"button";s:4:"name";s:21:"button[delete_series]";s:5:"label";s:13:"Delete series";s:4:"help";s:37:"Delete this series of recuring events";s:7:"onclick";s:56:"return confirm(\'Delete this series of recuring events\');";}i:2;a:5:{s:4:"type";s:6:"button";s:5:"label";s:6:"Delete";s:4:"name";s:14:"button[delete]";s:4:"help";s:17:"Delete this event";s:7:"onclick";s:36:"return confirm(\'Delete this event\');";}}}}s:4:"rows";i:5;s:4:"cols";i:3;s:4:"size";s:4:"100%";s:7:"options";a:1:{i:0;s:4:"100%";}}}','size' => '100%','style' => '','modified' => '1118477069',); + +$templ_data[] = array('name' => 'calendar.edit','template' => '','lang' => '','group' => '0','version' => '1.0.1.002','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:6:{i:0;a:7:{s:2:"h1";s:6:",!@msg";s:2:"c2";s:2:"th";s:1:"A";s:3:"100";s:2:"c4";s:3:"row";s:2:"h4";s:8:",!@owner";s:1:"B";s:3:"300";s:2:"h2";s:2:"28";}i:1;a:3:{s:1:"A";a:5:{s:4:"type";s:5:"label";s:4:"span";s:13:"all,redItalic";s:4:"name";s:3:"msg";s:7:"no_lang";s:1:"1";s:5:"align";s:6:"center";}s:1:"B";a:1:{s:4:"type";s:5:"label";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:2;a:3:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Title";}s:1:"B";a:5:{s:4:"type";s:4:"text";s:4:"size";s:6:"80,255";s:4:"name";s:5:"title";s:4:"span";s:3:"all";s:6:"needed";s:1:"1";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:3;a:3:{s:1:"A";a:5:{s:4:"type";s:3:"tab";s:4:"span";s:3:"all";s:5:"label";s:63:"General|Description|Participants|Recurrence|Custom|Links|Alarms";s:4:"name";s:63:"general|description|participants|recurrence|custom|links|alarms";s:4:"help";s:158:"Location, Start- and Endtimes, ...|Full description|Participants, Resources, ...|Repeating Event Information|Custom fields|Links, Attachments|Alarm management";}s:1:"B";a:1:{s:4:"type";s:5:"label";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:4;a:3:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Owner";}s:1:"B";a:3:{s:4:"type";s:14:"select-account";s:4:"name";s:5:"owner";s:8:"readonly";s:1:"1";}s:1:"C";a:5:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";s:5:"align";s:5:"right";i:1;a:5:{s:4:"type";s:9:"date-time";s:5:"label";s:7:"Updated";s:4:"name";s:8:"modified";s:8:"readonly";s:1:"1";s:7:"no_lang";s:1:"1";}i:2;a:4:{s:4:"type";s:14:"select-account";s:5:"label";s:2:"by";s:4:"name";s:8:"modifier";s:8:"readonly";s:1:"1";}}}i:5;a:3:{s:1:"A";a:11:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"8";s:4:"span";s:1:"2";i:1;a:4:{s:4:"type";s:6:"button";s:4:"name";s:19:"button[edit_series]";s:5:"label";s:11:"Edit series";s:4:"help";s:35:"Edit this series of recuring events";}i:2;a:4:{s:4:"type";s:6:"button";s:4:"name";s:12:"button[edit]";s:5:"label";s:4:"Edit";s:4:"help";s:15:"Edit this event";}i:3;a:4:{s:4:"type";s:6:"button";s:4:"name";s:12:"button[copy]";s:5:"label";s:4:"Copy";s:4:"help";s:15:"Copy this event";}i:4;a:4:{s:4:"type";s:6:"button";s:4:"name";s:12:"button[vcal]";s:5:"label";s:6:"Export";s:4:"help";s:27:"Download this event as iCal";}i:5;a:4:{s:4:"type";s:6:"button";s:5:"label";s:4:"Save";s:4:"name";s:12:"button[save]";s:4:"help";s:22:"saves the changes made";}i:6;a:4:{s:4:"type";s:6:"button";s:4:"name";s:13:"button[apply]";s:5:"label";s:5:"Apply";s:4:"help";s:17:"apply the changes";}i:7;a:5:{s:4:"type";s:6:"button";s:4:"name";s:14:"button[cancel]";s:5:"label";s:6:"Cancel";s:7:"onclick";s:15:"window.close();";s:4:"help";s:16:"Close the window";}i:8;a:4:{s:4:"type";s:8:"checkbox";s:4:"name";s:11:"custom_mail";s:5:"label";s:21:"mail all participants";s:4:"help";s:59:"compose a mail to all participants after the event is saved";}}s:1:"B";a:1:{s:4:"type";s:5:"label";}s:1:"C";a:5:{s:4:"type";s:4:"hbox";s:5:"align";s:5:"right";s:4:"size";s:1:"2";i:1;a:5:{s:4:"type";s:6:"button";s:4:"name";s:21:"button[delete_series]";s:5:"label";s:13:"Delete series";s:4:"help";s:37:"Delete this series of recuring events";s:7:"onclick";s:56:"return confirm(\'Delete this series of recuring events\');";}i:2;a:5:{s:4:"type";s:6:"button";s:5:"label";s:6:"Delete";s:4:"name";s:14:"button[delete]";s:4:"help";s:17:"Delete this event";s:7:"onclick";s:36:"return confirm(\'Delete this event\');";}}}}s:4:"rows";i:5;s:4:"cols";i:3;s:4:"size";s:4:"100%";s:7:"options";a:1:{i:0;s:4:"100%";}}}','size' => '100%','style' => '','modified' => '1118477069',); + +$templ_data[] = array('name' => 'calendar.edit','template' => '','lang' => '','group' => '0','version' => '1.0.1.003','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:6:{i:0;a:7:{s:2:"h1";s:6:",!@msg";s:2:"c2";s:2:"th";s:1:"A";s:3:"100";s:2:"c4";s:3:"row";s:2:"h4";s:8:",!@owner";s:1:"B";s:3:"300";s:2:"h2";s:2:"28";}i:1;a:3:{s:1:"A";a:5:{s:4:"type";s:5:"label";s:4:"span";s:13:"all,redItalic";s:4:"name";s:3:"msg";s:7:"no_lang";s:1:"1";s:5:"align";s:6:"center";}s:1:"B";a:1:{s:4:"type";s:5:"label";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:2;a:3:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Title";}s:1:"B";a:5:{s:4:"type";s:4:"text";s:4:"size";s:6:"80,255";s:4:"name";s:5:"title";s:4:"span";s:3:"all";s:6:"needed";s:1:"1";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:3;a:3:{s:1:"A";a:5:{s:4:"type";s:3:"tab";s:4:"span";s:3:"all";s:5:"label";s:63:"General|Description|Participants|Recurrence|Custom|Links|Alarms";s:4:"name";s:63:"general|description|participants|recurrence|custom|links|alarms";s:4:"help";s:158:"Location, Start- and Endtimes, ...|Full description|Participants, Resources, ...|Repeating Event Information|Custom fields|Links, Attachments|Alarm management";}s:1:"B";a:1:{s:4:"type";s:5:"label";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:4;a:3:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Owner";}s:1:"B";a:3:{s:4:"type";s:14:"select-account";s:4:"name";s:5:"owner";s:8:"readonly";s:1:"1";}s:1:"C";a:5:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";s:5:"align";s:5:"right";i:1;a:5:{s:4:"type";s:9:"date-time";s:5:"label";s:7:"Updated";s:4:"name";s:8:"modified";s:8:"readonly";s:1:"1";s:7:"no_lang";s:1:"1";}i:2;a:4:{s:4:"type";s:14:"select-account";s:5:"label";s:2:"by";s:4:"name";s:8:"modifier";s:8:"readonly";s:1:"1";}}}i:5;a:3:{s:1:"A";a:11:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"8";s:4:"span";s:1:"2";i:1;a:4:{s:4:"type";s:6:"button";s:4:"name";s:12:"button[edit]";s:5:"label";s:4:"Edit";s:4:"help";s:15:"Edit this event";}i:2;a:4:{s:4:"type";s:6:"button";s:4:"name";s:17:"button[exception]";s:5:"label";s:9:"Exception";s:4:"help";s:42:"Create an exception at this recuring event";}i:3;a:4:{s:4:"type";s:6:"button";s:4:"name";s:12:"button[copy]";s:5:"label";s:4:"Copy";s:4:"help";s:15:"Copy this event";}i:4;a:4:{s:4:"type";s:6:"button";s:4:"name";s:12:"button[vcal]";s:5:"label";s:6:"Export";s:4:"help";s:27:"Download this event as iCal";}i:5;a:4:{s:4:"type";s:6:"button";s:5:"label";s:4:"Save";s:4:"name";s:12:"button[save]";s:4:"help";s:22:"saves the changes made";}i:6;a:4:{s:4:"type";s:6:"button";s:4:"name";s:13:"button[apply]";s:5:"label";s:5:"Apply";s:4:"help";s:17:"apply the changes";}i:7;a:5:{s:4:"type";s:6:"button";s:4:"name";s:14:"button[cancel]";s:5:"label";s:6:"Cancel";s:7:"onclick";s:15:"window.close();";s:4:"help";s:16:"Close the window";}i:8;a:4:{s:4:"type";s:8:"checkbox";s:4:"name";s:11:"custom_mail";s:5:"label";s:21:"mail all participants";s:4:"help";s:59:"compose a mail to all participants after the event is saved";}}s:1:"B";a:1:{s:4:"type";s:5:"label";}s:1:"C";a:6:{s:4:"type";s:6:"button";s:5:"label";s:6:"Delete";s:4:"name";s:14:"button[delete]";s:4:"help";s:17:"Delete this event";s:7:"onclick";s:36:"return confirm(\'Delete this event\');";s:5:"align";s:5:"right";}}}s:4:"rows";i:5;s:4:"cols";i:3;s:4:"size";s:4:"100%";s:7:"options";a:1:{i:0;s:4:"100%";}}}','size' => '100%','style' => '','modified' => '1132776053',); + +$templ_data[] = array('name' => 'calendar.edit','template' => '','lang' => '','group' => '0','version' => '1.3.001','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:6:{i:0;a:7:{s:2:"h1";s:6:",!@msg";s:2:"c2";s:2:"th";s:1:"A";s:3:"100";s:2:"c4";s:3:"row";s:2:"h4";s:8:",!@owner";s:1:"B";s:3:"300";s:2:"h2";s:2:"28";}i:1;a:3:{s:1:"A";a:5:{s:4:"type";s:5:"label";s:4:"span";s:13:"all,redItalic";s:4:"name";s:3:"msg";s:7:"no_lang";s:1:"1";s:5:"align";s:6:"center";}s:1:"B";a:1:{s:4:"type";s:5:"label";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:2;a:3:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Title";}s:1:"B";a:5:{s:4:"type";s:4:"text";s:4:"size";s:6:"80,255";s:4:"name";s:5:"title";s:4:"span";s:3:"all";s:6:"needed";s:1:"1";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:3;a:3:{s:1:"A";a:5:{s:4:"type";s:3:"tab";s:4:"span";s:3:"all";s:5:"label";s:63:"General|Description|Participants|Recurrence|Custom|Links|Alarms";s:4:"name";s:63:"general|description|participants|recurrence|custom|links|alarms";s:4:"help";s:158:"Location, Start- and Endtimes, ...|Full description|Participants, Resources, ...|Repeating Event Information|Custom fields|Links, Attachments|Alarm management";}s:1:"B";a:1:{s:4:"type";s:5:"label";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:4;a:3:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Owner";}s:1:"B";a:3:{s:4:"type";s:14:"select-account";s:4:"name";s:5:"owner";s:8:"readonly";s:1:"1";}s:1:"C";a:5:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";s:5:"align";s:5:"right";i:1;a:5:{s:4:"type";s:9:"date-time";s:5:"label";s:7:"Updated";s:4:"name";s:8:"modified";s:8:"readonly";s:1:"1";s:7:"no_lang";s:1:"1";}i:2;a:4:{s:4:"type";s:14:"select-account";s:5:"label";s:2:"by";s:4:"name";s:8:"modifier";s:8:"readonly";s:1:"1";}}}i:5;a:3:{s:1:"A";a:11:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"8";s:4:"span";s:1:"2";i:1;a:4:{s:4:"type";s:6:"button";s:4:"name";s:12:"button[edit]";s:5:"label";s:4:"Edit";s:4:"help";s:15:"Edit this event";}i:2;a:4:{s:4:"type";s:6:"button";s:4:"name";s:17:"button[exception]";s:5:"label";s:9:"Exception";s:4:"help";s:42:"Create an exception at this recuring event";}i:3;a:4:{s:4:"type";s:6:"button";s:4:"name";s:12:"button[copy]";s:5:"label";s:4:"Copy";s:4:"help";s:15:"Copy this event";}i:4;a:4:{s:4:"type";s:6:"button";s:4:"name";s:12:"button[vcal]";s:5:"label";s:6:"Export";s:4:"help";s:27:"Download this event as iCal";}i:5;a:4:{s:4:"type";s:6:"button";s:5:"label";s:4:"Save";s:4:"name";s:12:"button[save]";s:4:"help";s:22:"saves the changes made";}i:6;a:4:{s:4:"type";s:6:"button";s:4:"name";s:13:"button[apply]";s:5:"label";s:5:"Apply";s:4:"help";s:17:"apply the changes";}i:7;a:5:{s:4:"type";s:6:"button";s:4:"name";s:14:"button[cancel]";s:5:"label";s:6:"Cancel";s:7:"onclick";s:15:"window.close();";s:4:"help";s:16:"Close the window";}i:8;a:4:{s:4:"type";s:8:"checkbox";s:4:"name";s:11:"custom_mail";s:5:"label";s:21:"mail all participants";s:4:"help";s:59:"compose a mail to all participants after the event is saved";}}s:1:"B";a:1:{s:4:"type";s:5:"label";}s:1:"C";a:6:{s:4:"type";s:6:"button";s:5:"label";s:6:"Delete";s:4:"name";s:14:"button[delete]";s:4:"help";s:17:"Delete this event";s:7:"onclick";s:36:"return confirm(\'Delete this event\');";s:5:"align";s:5:"right";}}}s:4:"rows";i:5;s:4:"cols";i:3;s:4:"size";s:4:"100%";s:7:"options";a:1:{i:0;s:4:"100%";}}}','size' => '100%','style' => '.end_hide { visibility: visible; white-space: nowrap; margin-left: 10px; }','modified' => '1149292820',); + +$templ_data[] = array('name' => 'calendar.edit.alarms','template' => '','lang' => '','group' => '0','version' => '1.0.1.001','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:5:{s:2:"c1";s:3:"row";s:1:"A";s:2:"95";s:2:"h1";s:16:"20,@no_add_alarm";s:2:"c2";s:4:",top";s:2:"h2";s:8:",!@alarm";}i:1;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:16:"before the event";}s:1:"B";a:10:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"8";i:1;a:3:{s:4:"type";s:13:"select-number";s:4:"size";s:4:",0,7";s:4:"name";s:15:"new_alarm[days]";}i:2;a:3:{s:4:"type";s:5:"label";s:4:"size";s:18:",,,new_alarm[days]";s:5:"label";s:4:"days";}i:3;a:3:{s:4:"type";s:13:"select-number";s:4:"name";s:16:"new_alarm[hours]";s:4:"size";s:5:",0,23";}i:4;a:3:{s:4:"type";s:5:"label";s:4:"size";s:19:",,,new_alarm[hours]";s:5:"label";s:5:"hours";}i:5;a:3:{s:4:"type";s:13:"select-number";s:4:"name";s:15:"new_alarm[mins]";s:4:"size";s:7:",0,55,5";}i:6;a:3:{s:4:"type";s:5:"label";s:4:"size";s:18:",,,new_alarm[mins]";s:5:"label";s:7:"Minutes";}i:7;a:5:{s:4:"type";s:6:"select";s:4:"name";s:16:"new_alarm[owner]";s:7:"no_lang";s:1:"1";s:5:"label";s:3:"for";s:4:"help";s:31:"Select who should get the alarm";}i:8;a:3:{s:4:"type";s:6:"button";s:4:"name";s:17:"button[add_alarm]";s:5:"label";s:9:"Add alarm";}}}i:2;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:6:"Alarms";}s:1:"B";a:6:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:2:{s:2:"c1";s:2:"th";s:2:"c2";s:3:"row";}i:1;a:5:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Time";}s:1:"B";a:2:{s:4:"type";s:5:"label";s:5:"label";s:16:"before the event";}s:1:"C";a:2:{s:4:"type";s:5:"label";s:5:"label";s:16:"All participants";}s:1:"D";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Owner";}s:1:"E";a:2:{s:4:"type";s:5:"label";s:5:"label";s:6:"Action";}}i:2;a:5:{s:1:"A";a:3:{s:4:"type";s:9:"date-time";s:4:"name";s:12:"${row}[time]";s:8:"readonly";s:1:"1";}s:1:"B";a:3:{s:4:"type";s:5:"label";s:4:"name";s:14:"${row}[offset]";s:7:"no_lang";s:1:"1";}s:1:"C";a:4:{s:4:"type";s:8:"checkbox";s:5:"align";s:6:"center";s:4:"name";s:11:"${row}[all]";s:8:"readonly";s:1:"1";}s:1:"D";a:3:{s:4:"type";s:14:"select-account";s:4:"name";s:13:"${row}[owner]";s:8:"readonly";s:1:"1";}s:1:"E";a:7:{s:4:"type";s:6:"button";s:4:"size";s:6:"delete";s:5:"label";s:6:"Delete";s:5:"align";s:6:"center";s:4:"name";s:27:"delete_alarm[$row_cont[id]]";s:4:"help";s:17:"Delete this alarm";s:7:"onclick";s:36:"return confirm(\'Delete this alarm\');";}}}s:4:"rows";i:2;s:4:"cols";i:5;s:4:"name";s:5:"alarm";s:7:"options";a:0:{}}}}s:4:"rows";i:2;s:4:"cols";i:2;s:4:"size";s:17:"100%,200,,,,,auto";s:7:"options";a:3:{i:0;s:4:"100%";i:1;s:3:"200";i:6;s:4:"auto";}}}','size' => '100%,200,,,,,auto','style' => '','modified' => '1118780740',); + +$templ_data[] = array('name' => 'calendar.edit.custom','template' => '','lang' => '','group' => '0','version' => '1.0.1.001','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:1:{s:2:"c1";s:4:",top";}i:1;a:1:{s:1:"A";a:2:{s:4:"type";s:12:"customfields";s:4:"name";s:12:"customfields";}}}s:4:"rows";i:1;s:4:"cols";i:1;s:4:"size";s:17:"100%,200,,,,,auto";s:7:"options";a:3:{i:0;s:4:"100%";i:1;s:3:"200";i:6;s:4:"auto";}}}','size' => '100%,200,,,,,auto','style' => '','modified' => '1118737582',); + +$templ_data[] = array('name' => 'calendar.edit.description','template' => '','lang' => '','group' => '0','version' => '1.0.1.001','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:2:{s:2:"c1";s:7:"row,top";s:1:"A";s:2:"95";}i:1;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:14:",,,description";s:5:"label";s:11:"Description";}s:1:"B";a:3:{s:4:"type";s:8:"textarea";s:4:"size";s:5:"12,70";s:4:"name";s:11:"description";}}}s:4:"rows";i:1;s:4:"cols";i:2;s:4:"size";s:8:"100%,200";s:7:"options";a:2:{i:0;s:4:"100%";i:1;s:3:"200";}}}','size' => '100%,200','style' => '','modified' => '1118480337',); + +$templ_data[] = array('name' => 'calendar.edit.general','template' => '','lang' => '','group' => '0','version' => '1.0.1.001','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:7:{i:0;a:9:{s:2:"c1";s:3:"row";s:1:"A";s:2:"95";s:2:"c3";s:3:"row";s:2:"c4";s:7:"row,top";s:2:"c6";s:3:"row";s:2:"c5";s:3:"row";s:2:"c2";s:3:"row";s:2:"h4";s:2:"60";s:1:"B";s:3:"35%";}i:1;a:3:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:8:",,,start";s:5:"label";s:5:"Start";}s:1:"B";a:3:{s:4:"type";s:9:"date-time";s:4:"name";s:5:"start";s:6:"needed";s:1:"1";}s:1:"C";a:5:{s:4:"type";s:8:"checkbox";s:4:"name";s:9:"whole_day";s:5:"label";s:9:"whole day";s:4:"help";s:31:"Event will occupy the whole day";s:4:"size";s:11:",, ,disable";}}i:2;a:3:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:6:",,,end";s:5:"label";s:3:"End";}s:1:"B";a:3:{s:4:"type";s:9:"date-time";s:4:"name";s:3:"end";s:6:"needed";s:1:"1";}s:1:"C";a:5:{s:4:"type";s:6:"button";s:5:"label";s:15:"Freetime search";s:4:"name";s:8:"freetime";s:4:"help";s:88:"Find free timeslots where the selected participants are availible for the given timespan";s:7:"onclick";s:239:"window.open(egw::link(\'/index.php\',\'menuaction=calendar.uiforms.freetimesearch\')+values2url(this.form,\'start,end,participants,recur_type,whole_day\'),\'ft_search\',\'dependent=yes,width=700,height=500,scrollbars=yes,status=yes\'); return false;";}}i:3;a:3:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:11:",,,location";s:5:"label";s:8:"Location";}s:1:"B";a:4:{s:4:"type";s:4:"text";s:4:"size";s:6:"80,255";s:4:"name";s:8:"location";s:4:"span";s:3:"all";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:4;a:3:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:11:",,,category";s:5:"label";s:8:"Category";}s:1:"B";a:4:{s:4:"type";s:10:"select-cat";s:4:"size";s:1:"3";s:4:"name";s:8:"category";s:4:"span";s:3:"all";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:5;a:3:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:11:",,,priority";s:5:"label";s:8:"Priority";}s:1:"B";a:5:{s:4:"type";s:4:"hbox";s:4:"size";s:6:"2,,0,0";i:1;a:2:{s:4:"type";s:15:"select-priority";s:4:"name";s:8:"priority";}i:2;a:5:{s:4:"type";s:8:"checkbox";s:5:"label";s:12:"non blocking";s:4:"help";s:56:"A non blocking event will not conflict with other events";s:4:"name";s:12:"non_blocking";s:4:"size";s:11:",, ,disable";}s:4:"span";s:3:"all";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:6;a:3:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:9:",,,public";s:5:"label";s:7:"Private";}s:1:"B";a:4:{s:4:"type";s:8:"checkbox";s:4:"size";s:3:"0,1";s:4:"name";s:6:"public";s:4:"span";s:3:"all";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}}s:4:"rows";i:6;s:4:"cols";i:3;s:4:"size";s:8:"100%,200";s:7:"options";a:2:{i:0;s:4:"100%";i:1;s:3:"200";}}}','size' => '100%,200','style' => '','modified' => '1118477982',); + +$templ_data[] = array('name' => 'calendar.edit.general','template' => '','lang' => '','group' => '0','version' => '1.3.001','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:7:{i:0;a:9:{s:2:"c1";s:3:"row";s:1:"A";s:2:"95";s:2:"c3";s:3:"row";s:2:"c4";s:7:"row,top";s:2:"c6";s:3:"row";s:2:"c5";s:3:"row";s:2:"c2";s:3:"row";s:2:"h4";s:2:"60";s:1:"B";s:3:"50%";}i:1;a:3:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:8:",,,start";s:5:"label";s:5:"Start";}s:1:"B";a:3:{s:4:"type";s:9:"date-time";s:4:"name";s:5:"start";s:6:"needed";s:1:"1";}s:1:"C";a:5:{s:4:"type";s:8:"checkbox";s:4:"name";s:9:"whole_day";s:5:"label";s:9:"whole day";s:4:"help";s:31:"Event will occupy the whole day";s:4:"size";s:11:",, ,disable";}}i:2;a:3:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:11:",,,duration";s:5:"label";s:8:"Duration";}s:1:"B";a:4:{s:4:"type";s:4:"hbox";s:4:"size";s:6:"2,,0,0";i:1;a:6:{s:4:"type";s:6:"select";s:4:"name";s:8:"duration";s:4:"size";s:12:"Use end date";s:7:"no_lang";s:1:"1";s:4:"help";s:23:"Duration of the meeting";s:8:"onchange";s:92:"set_style_by_class(\'table\',\'end_hide\',\'visibility\',this.value == \'\' ? \'visible\' : \'hidden\');";}i:2;a:3:{s:4:"type";s:9:"date-time";s:4:"name";s:3:"end";s:4:"span";s:9:",end_hide";}}s:1:"C";a:5:{s:4:"type";s:6:"button";s:5:"label";s:15:"Freetime search";s:4:"name";s:8:"freetime";s:4:"help";s:88:"Find free timeslots where the selected participants are availible for the given timespan";s:7:"onclick";s:248:"window.open(egw::link(\'/index.php\',\'menuaction=calendar.uiforms.freetimesearch\')+values2url(this.form,\'start,end,duration,participants,recur_type,whole_day\'),\'ft_search\',\'dependent=yes,width=700,height=500,scrollbars=yes,status=yes\'); return false;";}}i:3;a:3:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:11:",,,location";s:5:"label";s:8:"Location";}s:1:"B";a:4:{s:4:"type";s:4:"text";s:4:"size";s:6:"80,255";s:4:"name";s:8:"location";s:4:"span";s:3:"all";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:4;a:3:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:11:",,,category";s:5:"label";s:8:"Category";}s:1:"B";a:4:{s:4:"type";s:10:"select-cat";s:4:"size";s:1:"3";s:4:"name";s:8:"category";s:4:"span";s:3:"all";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:5;a:3:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:11:",,,priority";s:5:"label";s:8:"Priority";}s:1:"B";a:5:{s:4:"type";s:4:"hbox";s:4:"size";s:6:"2,,0,0";i:1;a:2:{s:4:"type";s:15:"select-priority";s:4:"name";s:8:"priority";}i:2;a:5:{s:4:"type";s:8:"checkbox";s:5:"label";s:12:"non blocking";s:4:"help";s:56:"A non blocking event will not conflict with other events";s:4:"name";s:12:"non_blocking";s:4:"size";s:11:",, ,disable";}s:4:"span";s:3:"all";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:6;a:3:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:9:",,,public";s:5:"label";s:7:"Private";}s:1:"B";a:4:{s:4:"type";s:8:"checkbox";s:4:"size";s:3:"0,1";s:4:"name";s:6:"public";s:4:"span";s:3:"all";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}}s:4:"rows";i:6;s:4:"cols";i:3;s:4:"size";s:8:"100%,200";s:7:"options";a:2:{i:0;s:4:"100%";i:1;s:3:"200";}}}','size' => '100%,200','style' => '','modified' => '1118477982',); + +$templ_data[] = array('name' => 'calendar.edit.links','template' => '','lang' => '','group' => '0','version' => '1.0.1.001','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:5:{i:0;a:7:{s:1:"A";s:2:"95";s:2:"h1";s:6:",@view";s:2:"h2";s:6:",@view";s:2:"c1";s:2:"th";s:2:"c2";s:3:"row";s:2:"c3";s:2:"th";s:2:"c4";s:11:"row_off,top";}i:1;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"span";s:3:"all";s:5:"label";s:16:"Create new links";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:2;a:2:{s:1:"A";a:3:{s:4:"type";s:7:"link-to";s:4:"span";s:3:"all";s:4:"name";s:7:"link_to";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:3;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"span";s:3:"all";s:5:"label";s:14:"Existing links";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:4;a:2:{s:1:"A";a:3:{s:4:"type";s:9:"link-list";s:4:"span";s:3:"all";s:4:"name";s:7:"link_to";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}}s:4:"rows";i:4;s:4:"cols";i:2;s:4:"size";s:17:"100%,200,,,,,auto";s:7:"options";a:3:{i:0;s:4:"100%";i:1;s:3:"200";i:6;s:4:"auto";}}}','size' => '100%,200,,,,,auto','style' => '','modified' => '1118758702',); + +$templ_data[] = array('name' => 'calendar.edit.participants','template' => '','lang' => '','group' => '0','version' => '1.0.1.001','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:2:{s:2:"c1";s:7:"row,top";s:1:"A";s:2:"95";}i:1;a:4:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:15:",,,participants";s:5:"label";s:12:"Participants";}s:1:"B";a:3:{s:4:"type";s:14:"select-account";s:4:"size";s:2:"14";s:4:"name";s:22:"participants[accounts]";}s:1:"C";a:3:{s:4:"type";s:5:"label";s:5:"label";s:9:"Resources";s:5:"align";s:5:"right";}s:1:"D";a:3:{s:4:"type";s:16:"resources_select";s:4:"size";s:2:"14";s:4:"name";s:23:"participants[resources]";}}}s:4:"rows";i:1;s:4:"cols";i:4;s:4:"size";s:16:"100%,200,,row_on";s:7:"options";a:3:{i:3;s:6:"row_on";i:0;s:4:"100%";i:1;s:3:"200";}}}','size' => '100%,200,,row_on','style' => '','modified' => '1118481127',); + +$templ_data[] = array('name' => 'calendar.edit.participants','template' => '','lang' => '','group' => '0','version' => '1.0.1.002','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:5:{s:2:"c1";s:7:"row,top";s:1:"A";s:2:"95";s:2:"h1";s:6:",@view";s:2:"h2";s:7:",!@view";s:2:"c2";s:4:",top";}i:1;a:4:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:15:",,,participants";s:5:"label";s:12:"Participants";}s:1:"B";a:3:{s:4:"type";s:14:"select-account";s:4:"size";s:2:"14";s:4:"name";s:22:"participants[accounts]";}s:1:"C";a:3:{s:4:"type";s:5:"label";s:5:"label";s:9:"Resources";s:5:"align";s:5:"right";}s:1:"D";a:3:{s:4:"type";s:16:"resources_select";s:4:"size";s:2:"14";s:4:"name";s:23:"participants[resources]";}}i:2;a:4:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:12:"Participants";}s:1:"B";a:6:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:0:{}i:1;a:2:{s:1:"A";a:3:{s:4:"type";s:14:"select-account";s:4:"name";s:6:"${row}";s:8:"readonly";s:1:"1";}s:1:"B";a:5:{s:4:"type";s:6:"select";s:4:"name";s:26:"accounts_status[$row_cont]";s:8:"onchange";s:1:"1";s:4:"help";s:30:"Accept or reject an invitation";s:7:"no_lang";s:1:"1";}}}s:4:"rows";i:1;s:4:"cols";i:2;s:4:"name";s:22:"participants[accounts]";s:7:"options";a:0:{}}s:1:"C";a:3:{s:4:"type";s:5:"label";s:5:"label";s:9:"Resources";s:5:"align";s:5:"right";}s:1:"D";a:6:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:1:{s:2:"h1";s:19:",!@resources_status";}i:1;a:2:{s:1:"A";a:4:{s:4:"type";s:16:"resources_select";s:4:"name";s:6:"${row}";s:8:"readonly";s:1:"1";s:7:"no_lang";s:1:"1";}s:1:"B";a:5:{s:4:"type";s:6:"select";s:4:"name";s:27:"resources_status[$row_cont]";s:8:"onchange";s:1:"1";s:4:"help";s:30:"Accept or reject an invitation";s:7:"no_lang";s:1:"1";}}}s:4:"rows";i:1;s:4:"cols";i:2;s:4:"name";s:23:"participants[resources]";s:7:"options";a:0:{}}}}s:4:"rows";i:2;s:4:"cols";i:4;s:4:"size";s:23:"100%,200,,row_on,,,auto";s:7:"options";a:4:{i:3;s:6:"row_on";i:0;s:4:"100%";i:1;s:3:"200";i:6;s:4:"auto";}}}','size' => '100%,200,,row_on,,,auto','style' => '','modified' => '1129665796',); + +$templ_data[] = array('name' => 'calendar.edit.participants','template' => '','lang' => '','group' => '0','version' => '1.0.1.003','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:5:{s:2:"c1";s:7:"row,top";s:1:"A";s:2:"95";s:2:"h1";s:6:",@view";s:2:"h2";s:7:",!@view";s:2:"c2";s:4:",top";}i:1;a:4:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:15:",,,participants";s:5:"label";s:12:"Participants";}s:1:"B";a:3:{s:4:"type";s:14:"select-account";s:4:"size";s:12:"14,calendar+";s:4:"name";s:22:"participants[accounts]";}s:1:"C";a:3:{s:4:"type";s:5:"label";s:5:"label";s:9:"Resources";s:5:"align";s:5:"right";}s:1:"D";a:3:{s:4:"type";s:16:"resources_select";s:4:"size";s:2:"14";s:4:"name";s:23:"participants[resources]";}}i:2;a:4:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:12:"Participants";}s:1:"B";a:6:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:0:{}i:1;a:2:{s:1:"A";a:3:{s:4:"type";s:14:"select-account";s:4:"name";s:6:"${row}";s:8:"readonly";s:1:"1";}s:1:"B";a:5:{s:4:"type";s:6:"select";s:4:"name";s:26:"accounts_status[$row_cont]";s:8:"onchange";s:1:"1";s:4:"help";s:30:"Accept or reject an invitation";s:7:"no_lang";s:1:"1";}}}s:4:"rows";i:1;s:4:"cols";i:2;s:4:"name";s:22:"participants[accounts]";s:7:"options";a:0:{}}s:1:"C";a:3:{s:4:"type";s:5:"label";s:5:"label";s:9:"Resources";s:5:"align";s:5:"right";}s:1:"D";a:6:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:1:{s:2:"h1";s:19:",!@resources_status";}i:1;a:2:{s:1:"A";a:4:{s:4:"type";s:16:"resources_select";s:4:"name";s:6:"${row}";s:8:"readonly";s:1:"1";s:7:"no_lang";s:1:"1";}s:1:"B";a:5:{s:4:"type";s:6:"select";s:4:"name";s:27:"resources_status[$row_cont]";s:8:"onchange";s:1:"1";s:4:"help";s:30:"Accept or reject an invitation";s:7:"no_lang";s:1:"1";}}}s:4:"rows";i:1;s:4:"cols";i:2;s:4:"name";s:23:"participants[resources]";s:7:"options";a:0:{}}}}s:4:"rows";i:2;s:4:"cols";i:4;s:4:"size";s:23:"100%,200,,row_on,,,auto";s:7:"options";a:4:{i:3;s:6:"row_on";i:0;s:4:"100%";i:1;s:3:"200";i:6;s:4:"auto";}}}','size' => '100%,200,,row_on,,,auto','style' => '','modified' => '1129665796',); + +$templ_data[] = array('name' => 'calendar.edit.recurrence','template' => '','lang' => '','group' => '0','version' => '','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:2:{s:2:"c1";s:3:"row";s:1:"A";s:2:"95";}i:1;a:1:{s:1:"A";a:1:{s:4:"type";s:5:"label";}}}s:4:"rows";i:1;s:4:"cols";i:1;s:4:"size";s:8:"100%,200";s:7:"options";a:2:{i:0;s:4:"100%";i:1;s:3:"200";}}}','size' => '100%,200','style' => '','modified' => '1118737412',); + +$templ_data[] = array('name' => 'calendar.edit.recurrence','template' => '','lang' => '','group' => '0','version' => '1.0.1.001','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:5:{i:0;a:6:{s:2:"c1";s:2:"th";s:1:"A";s:2:"95";s:2:"c2";s:3:"row";s:2:"c3";s:3:"row";s:2:"c4";s:3:"row";s:1:"D";s:3:"50%";}i:1;a:4:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"span";s:3:"all";s:5:"label";s:27:"Repeating Event Information";}s:1:"B";a:2:{s:4:"type";s:5:"label";s:5:"label";s:16:"be back soon ;-)";}s:1:"C";a:1:{s:4:"type";s:5:"label";}s:1:"D";a:1:{s:4:"type";s:5:"label";}}i:2;a:4:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:13:",,,recur_type";s:5:"label";s:11:"Repeat type";}s:1:"B";a:2:{s:4:"type";s:6:"select";s:4:"name";s:10:"recur_type";}s:1:"C";a:3:{s:4:"type";s:5:"label";s:4:"size";s:17:",,,recur_interval";s:5:"label";s:8:"Interval";}s:1:"D";a:4:{s:4:"type";s:13:"select-number";s:4:"name";s:14:"recur_interval";s:4:"help";s:53:"repeating interval, eg. 2 to repeat every second week";s:4:"size";s:9:"None,2,10";}}i:3;a:4:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:16:",,,recur_enddate";s:5:"label";s:8:"End date";}s:1:"B";a:3:{s:4:"type";s:4:"date";s:4:"name";s:13:"recur_enddate";s:4:"help";s:57:"repeat the event until which date (empty means unlimited)";}s:1:"C";a:1:{s:4:"type";s:5:"label";}s:1:"D";a:1:{s:4:"type";s:5:"label";}}i:4;a:4:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:13:",,,recur_data";s:5:"label";s:11:"Repeat days";}s:1:"B";a:4:{s:4:"type";s:10:"select-dow";s:4:"size";s:3:"5,1";s:4:"name";s:10:"recur_data";s:4:"help";s:44:"Days of the week for a weekly repeated event";}s:1:"C";a:1:{s:4:"type";s:5:"label";}s:1:"D";a:1:{s:4:"type";s:5:"label";}}}s:4:"rows";i:4;s:4:"cols";i:4;s:4:"size";s:8:"100%,200";s:7:"options";a:2:{i:0;s:4:"100%";i:1;s:3:"200";}}}','size' => '100%,200','style' => '','modified' => '1118737412',); + +$templ_data[] = array('name' => 'calendar.edit.recurrence','template' => '','lang' => '','group' => '0','version' => '1.0.1.002','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:5:{i:0;a:9:{s:2:"c1";s:2:"th";s:1:"A";s:2:"95";s:2:"c2";s:3:"row";s:2:"c3";s:3:"row";s:2:"c4";s:7:"row,top";s:1:"D";s:3:"50%";s:2:"h1";s:2:"12";s:2:"h2";s:2:"12";s:2:"h3";s:2:"12";}i:1;a:4:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"span";s:3:"all";s:5:"label";s:27:"Repeating Event Information";}s:1:"B";a:2:{s:4:"type";s:5:"label";s:5:"label";s:16:"be back soon ;-)";}s:1:"C";a:1:{s:4:"type";s:5:"label";}s:1:"D";a:1:{s:4:"type";s:5:"label";}}i:2;a:4:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:13:",,,recur_type";s:5:"label";s:11:"Repeat type";}s:1:"B";a:2:{s:4:"type";s:6:"select";s:4:"name";s:10:"recur_type";}s:1:"C";a:3:{s:4:"type";s:5:"label";s:4:"size";s:17:",,,recur_interval";s:5:"label";s:8:"Interval";}s:1:"D";a:4:{s:4:"type";s:13:"select-number";s:4:"name";s:14:"recur_interval";s:4:"help";s:53:"repeating interval, eg. 2 to repeat every second week";s:4:"size";s:9:"None,2,10";}}i:3;a:4:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:16:",,,recur_enddate";s:5:"label";s:8:"End date";}s:1:"B";a:4:{s:4:"type";s:4:"date";s:4:"name";s:13:"recur_enddate";s:4:"help";s:57:"repeat the event until which date (empty means unlimited)";s:4:"span";s:3:"all";}s:1:"C";a:1:{s:4:"type";s:5:"label";}s:1:"D";a:1:{s:4:"type";s:5:"label";}}i:4;a:4:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:13:",,,recur_data";s:5:"label";s:11:"Repeat days";}s:1:"B";a:4:{s:4:"type";s:10:"select-dow";s:4:"size";s:3:"6,1";s:4:"name";s:10:"recur_data";s:4:"help";s:44:"Days of the week for a weekly repeated event";}s:1:"C";a:2:{s:4:"type";s:5:"label";s:5:"label";s:10:"Exceptions";}s:1:"D";a:6:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:0:{}i:1;a:2:{s:1:"A";a:3:{s:4:"type";s:9:"date-time";s:4:"name";s:4:"$row";s:8:"readonly";s:1:"1";}s:1:"B";a:6:{s:4:"type";s:6:"button";s:5:"label";s:6:"Delete";s:4:"size";s:6:"delete";s:4:"name";s:27:"delete_exception[$row_cont]";s:4:"help";s:21:"Delete this exception";s:7:"onclick";s:40:"return confirm(\'Delete this exception\');";}}}s:4:"rows";i:1;s:4:"cols";i:2;s:4:"name";s:15:"recur_exception";s:7:"options";a:0:{}}}}s:4:"rows";i:4;s:4:"cols";i:4;s:4:"size";s:8:"100%,200";s:7:"options";a:2:{i:0;s:4:"100%";i:1;s:3:"200";}}}','size' => '100%,200','style' => '','modified' => '1118737412',); + +$templ_data[] = array('name' => 'calendar.export','template' => '','lang' => '','group' => '0','version' => '1.0.1.001','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:8:{i:0;a:1:{s:2:"h5";s:2:",1";}i:1;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:4:"span";s:3:"all";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:2;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:8:",,,start";s:5:"label";s:5:"Start";}s:1:"B";a:3:{s:4:"type";s:4:"date";s:4:"name";s:5:"start";s:4:"help";s:23:"Startdate of the export";}}i:3;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:6:",,,end";s:5:"label";s:3:"End";}s:1:"B";a:3:{s:4:"type";s:4:"date";s:4:"name";s:3:"end";s:4:"help";s:21:"Enddate of the export";}}i:4;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:7:",,,file";s:5:"label";s:8:"Filename";}s:1:"B";a:3:{s:4:"type";s:4:"text";s:4:"name";s:4:"file";s:4:"help";s:24:"Filename of the download";}}i:5;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:10:",,,version";s:5:"label";s:7:"Version";}s:1:"B";a:2:{s:4:"type";s:6:"select";s:4:"name";s:7:"version";}}i:6;a:2:{s:1:"A";a:1:{s:4:"type";s:5:"label";}s:1:"B";a:3:{s:4:"type";s:6:"button";s:5:"label";s:8:"Download";s:4:"name";s:8:"download";}}i:7;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:4:"span";s:3:"all";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}}s:4:"rows";i:7;s:4:"cols";i:2;s:5:"align";s:6:"center";s:7:"options";a:0:{}}}','size' => '','style' => '','modified' => '1130738737',); + +$templ_data[] = array('name' => 'calendar.freetimesearch','template' => '','lang' => '','group' => '0','version' => '1.0.1.001','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:7:{i:0;a:0:{}i:1;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"span";s:9:",size120b";s:5:"label";s:15:"Freetime Search";}s:1:"B";a:4:{s:4:"type";s:5:"label";s:4:"span";s:5:",ired";s:7:"no_lang";s:1:"1";s:4:"name";s:3:"msg";}}i:2;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:17:"Startdate / -time";}s:1:"B";a:3:{s:4:"type";s:9:"date-time";s:4:"name";s:5:"start";s:4:"help";s:33:"Startdate and -time of the search";}}i:3;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:8:"Duration";}s:1:"B";a:6:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"4";i:1;a:4:{s:4:"type";s:13:"select-number";s:4:"size";s:5:",0,12";s:4:"name";s:10:"duration_h";s:4:"help";s:23:"Duration of the meeting";}i:2;a:5:{s:4:"type";s:13:"select-number";s:4:"size";s:8:",0,59,05";s:5:"label";s:1:":";s:4:"name";s:12:"duration_min";s:4:"help";s:19:"Timeframe to search";}i:3;a:2:{s:4:"type";s:5:"label";s:5:"label";s:18:"or Enddate / -time";}i:4;a:3:{s:4:"type";s:9:"date-time";s:4:"name";s:3:"end";s:4:"help";s:57:"Enddate / -time of the meeting, eg. for more then one day";}}}i:4;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:9:"Timeframe";}s:1:"B";a:7:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"5";i:1;a:3:{s:4:"type";s:13:"date-houronly";s:4:"name";s:10:"start_time";s:4:"help";s:19:"Timeframe to search";}i:2;a:2:{s:4:"type";s:5:"label";s:5:"label";s:3:"til";}i:3;a:3:{s:4:"type";s:13:"date-houronly";s:4:"name";s:8:"end_time";s:4:"help";s:19:"Timeframe to search";}i:4;a:2:{s:4:"type";s:5:"label";s:5:"label";s:8:"Weekdays";}i:5;a:4:{s:4:"type";s:10:"select-dow";s:4:"size";s:1:"3";s:4:"name";s:8:"weekdays";s:4:"help";s:25:"Weekdays to use in search";}}}i:5;a:2:{s:1:"A";a:4:{s:4:"type";s:6:"button";s:5:"label";s:10:"New search";s:4:"name";s:6:"search";s:4:"help";s:36:"new search with the above parameters";}s:1:"B";a:4:{s:4:"type";s:6:"select";s:7:"no_lang";s:1:"1";s:4:"name";s:13:"search_window";s:4:"help";s:34:"how far to search (from startdate)";}}i:6;a:2:{s:1:"A";a:4:{s:4:"type";s:8:"template";s:4:"size";s:8:"freetime";s:4:"span";s:3:"all";s:4:"name";s:4:"rows";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}}s:4:"rows";i:6;s:4:"cols";i:2;}}','size' => '','style' => '.size120b { text-size: 120%; font-weight: bold; } +.ired { color: red; font-style: italic; }','modified' => '1097251203',); + +$templ_data[] = array('name' => 'calendar.freetimesearch','template' => '','lang' => '','group' => '0','version' => '1.0.1.002','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:7:{i:0;a:0:{}i:1;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"span";s:9:",size120b";s:5:"label";s:15:"Freetime Search";}s:1:"B";a:4:{s:4:"type";s:5:"label";s:4:"span";s:10:",redItalic";s:7:"no_lang";s:1:"1";s:4:"name";s:3:"msg";}}i:2;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:17:"Startdate / -time";}s:1:"B";a:3:{s:4:"type";s:9:"date-time";s:4:"name";s:5:"start";s:4:"help";s:33:"Startdate and -time of the search";}}i:3;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:8:"Duration";}s:1:"B";a:4:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";i:1;a:4:{s:4:"type";s:6:"select";s:7:"no_lang";s:1:"1";s:4:"name";s:8:"duration";s:4:"help";s:23:"Duration of the meeting";}i:2;a:4:{s:4:"type";s:9:"date-time";s:4:"name";s:3:"end";s:4:"help";s:57:"Enddate / -time of the meeting, eg. for more then one day";s:4:"span";s:9:",end_hide";}}}i:4;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:9:"Timeframe";}s:1:"B";a:7:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"5";i:1;a:3:{s:4:"type";s:13:"date-houronly";s:4:"name";s:10:"start_time";s:4:"help";s:19:"Timeframe to search";}i:2;a:2:{s:4:"type";s:5:"label";s:5:"label";s:3:"til";}i:3;a:3:{s:4:"type";s:13:"date-houronly";s:4:"name";s:8:"end_time";s:4:"help";s:19:"Timeframe to search";}i:4;a:2:{s:4:"type";s:5:"label";s:5:"label";s:8:"Weekdays";}i:5;a:4:{s:4:"type";s:10:"select-dow";s:4:"size";s:1:"3";s:4:"name";s:8:"weekdays";s:4:"help";s:25:"Weekdays to use in search";}}}i:5;a:2:{s:1:"A";a:4:{s:4:"type";s:6:"button";s:5:"label";s:10:"New search";s:4:"name";s:6:"search";s:4:"help";s:36:"new search with the above parameters";}s:1:"B";a:4:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";i:1;a:4:{s:4:"type";s:6:"select";s:7:"no_lang";s:1:"1";s:4:"name";s:13:"search_window";s:4:"help";s:34:"how far to search (from startdate)";}i:2;a:5:{s:4:"type";s:6:"button";s:4:"name";s:6:"cancel";s:5:"label";s:6:"Cancel";s:4:"help";s:16:"Close the window";s:7:"onclick";s:15:"window.close();";}}}i:6;a:2:{s:1:"A";a:4:{s:4:"type";s:8:"template";s:4:"size";s:8:"freetime";s:4:"span";s:3:"all";s:4:"name";s:4:"rows";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}}s:4:"rows";i:6;s:4:"cols";i:2;}}','size' => '','style' => '.size120b { text-size: 120%; font-weight: bold; } +.redItalic { color: red; font-style: italic; } +.end_hide { visibility: hidden; }','modified' => '1102850646',); + +$templ_data[] = array('name' => 'calendar.freetimesearch','template' => '','lang' => '','group' => '0','version' => '1.3.001','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:7:{i:0;a:0:{}i:1;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"span";s:9:",size120b";s:5:"label";s:15:"Freetime Search";}s:1:"B";a:4:{s:4:"type";s:5:"label";s:4:"span";s:10:",redItalic";s:7:"no_lang";s:1:"1";s:4:"name";s:3:"msg";}}i:2;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:17:"Startdate / -time";}s:1:"B";a:3:{s:4:"type";s:9:"date-time";s:4:"name";s:5:"start";s:4:"help";s:33:"Startdate and -time of the search";}}i:3;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:8:"Duration";}s:1:"B";a:4:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";i:1;a:6:{s:4:"type";s:6:"select";s:7:"no_lang";s:1:"1";s:4:"name";s:8:"duration";s:4:"help";s:23:"Duration of the meeting";s:8:"onchange";s:92:"set_style_by_class(\'table\',\'end_hide\',\'visibility\',this.value == \'\' ? \'visible\' : \'hidden\');";s:4:"size";s:12:"Use end date";}i:2;a:4:{s:4:"type";s:9:"date-time";s:4:"name";s:3:"end";s:4:"help";s:57:"Enddate / -time of the meeting, eg. for more then one day";s:4:"span";s:9:",end_hide";}}}i:4;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:9:"Timeframe";}s:1:"B";a:7:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"5";i:1;a:3:{s:4:"type";s:13:"date-houronly";s:4:"name";s:10:"start_time";s:4:"help";s:19:"Timeframe to search";}i:2;a:2:{s:4:"type";s:5:"label";s:5:"label";s:3:"til";}i:3;a:3:{s:4:"type";s:13:"date-houronly";s:4:"name";s:8:"end_time";s:4:"help";s:19:"Timeframe to search";}i:4;a:2:{s:4:"type";s:5:"label";s:5:"label";s:8:"Weekdays";}i:5;a:4:{s:4:"type";s:10:"select-dow";s:4:"size";s:1:"3";s:4:"name";s:8:"weekdays";s:4:"help";s:25:"Weekdays to use in search";}}}i:5;a:2:{s:1:"A";a:4:{s:4:"type";s:6:"button";s:5:"label";s:10:"New search";s:4:"name";s:6:"search";s:4:"help";s:36:"new search with the above parameters";}s:1:"B";a:4:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";i:1;a:4:{s:4:"type";s:6:"select";s:7:"no_lang";s:1:"1";s:4:"name";s:13:"search_window";s:4:"help";s:34:"how far to search (from startdate)";}i:2;a:5:{s:4:"type";s:6:"button";s:4:"name";s:6:"cancel";s:5:"label";s:6:"Cancel";s:4:"help";s:16:"Close the window";s:7:"onclick";s:15:"window.close();";}}}i:6;a:2:{s:1:"A";a:4:{s:4:"type";s:8:"template";s:4:"size";s:8:"freetime";s:4:"span";s:3:"all";s:4:"name";s:4:"rows";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}}s:4:"rows";i:6;s:4:"cols";i:2;}}','size' => '','style' => '.size120b { text-size: 120%; font-weight: bold; } +.redItalic { color: red; font-style: italic; } +.end_hide { visibility: hidden; }','modified' => '1149297367',); + +$templ_data[] = array('name' => 'calendar.freetimesearch.rows','template' => '','lang' => '','group' => '0','version' => '1.0.1.001','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:2:{s:2:"c1";s:2:"th";s:2:"c2";s:3:"row";}i:1;a:4:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Date";}s:1:"B";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Time";}s:1:"C";a:2:{s:4:"type";s:5:"label";s:5:"label";s:6:"Select";}s:1:"D";a:2:{s:4:"type";s:5:"label";s:5:"label";s:7:"Enddate";}}i:2;a:4:{s:1:"A";a:4:{s:4:"type";s:4:"date";s:4:"size";s:3:",16";s:4:"name";s:13:"${row}[start]";s:8:"readonly";s:1:"1";}s:1:"B";a:4:{s:4:"type";s:6:"select";s:7:"no_lang";s:1:"1";s:4:"name";s:13:"${row}[start]";s:4:"help";s:13:"select a time";}s:1:"C";a:4:{s:4:"type";s:6:"button";s:5:"label";s:6:"Select";s:4:"name";s:12:"select[$row]";s:4:"help";s:41:"use the selected time and close the popup";}s:1:"D";a:3:{s:4:"type";s:9:"date-time";s:4:"name";s:11:"${row}[end]";s:8:"readonly";s:1:"1";}}}s:4:"rows";i:2;s:4:"cols";i:4;}}','size' => '','style' => '','modified' => '1097183756',); + +$templ_data[] = array('name' => 'calendar.import','template' => '','lang' => '','group' => '0','version' => '1.0.1.001','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:5:{i:0;a:0:{}i:1;a:2:{s:1:"A";a:5:{s:4:"type";s:5:"label";s:4:"span";s:13:"all,redItalic";s:4:"name";s:3:"msg";s:7:"no_lang";s:1:"1";s:5:"align";s:6:"center";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:2;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:9:"iCal file";}s:1:"B";a:3:{s:4:"type";s:4:"file";s:4:"name";s:9:"ical_file";s:6:"needed";s:1:"1";}}i:3;a:2:{s:1:"A";a:1:{s:4:"type";s:5:"label";}s:1:"B";a:3:{s:4:"type";s:6:"button";s:5:"label";s:6:"Import";s:4:"name";s:6:"import";}}i:4;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:4:"span";s:3:"all";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}}s:4:"rows";i:4;s:4:"cols";i:2;s:5:"align";s:6:"center";s:7:"options";a:0:{}}}','size' => '','style' => '','modified' => '1131469789',); + +$templ_data[] = array('name' => 'calendar.list','template' => '','lang' => '','group' => '0','version' => '1.0.1.001','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:1:{s:2:"h1";s:6:",!@msg";}i:1;a:1:{s:1:"A";a:5:{s:4:"type";s:5:"label";s:4:"span";s:10:",redItalic";s:5:"align";s:6:"center";s:4:"name";s:3:"msg";s:7:"no_lang";s:1:"1";}}i:2;a:1:{s:1:"A";a:3:{s:4:"type";s:9:"nextmatch";s:4:"size";s:18:"calendar.list.rows";s:4:"name";s:2:"nm";}}}s:4:"rows";i:2;s:4:"cols";i:1;s:4:"size";s:4:"100%";s:7:"options";a:1:{i:0;s:4:"100%";}}}','size' => '100%','style' => '','modified' => '1128458939',); + +$templ_data[] = array('name' => 'calendar.list.rows','template' => '','lang' => '','group' => '0','version' => '1.0.1.001','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:3:{s:2:"c1";s:2:"th";s:2:"c2";s:7:"row,top";s:1:"C";s:3:"50%";}i:1;a:5:{s:1:"A";a:1:{s:4:"type";s:5:"label";}s:1:"B";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:1:"2";i:1;a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:5:"Start";s:4:"name";s:5:"start";}i:2;a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:4:"name";s:3:"end";s:5:"label";s:3:"End";}}s:1:"C";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:1:"2";i:1;a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:5:"Title";s:4:"name";s:5:"title";}i:2;a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:11:"Description";s:4:"name";s:3:"des";}}s:1:"D";a:3:{s:4:"type";s:23:"nextmatch-accountfilter";s:4:"size";s:12:"Participants";s:4:"name";s:11:"participant";}s:1:"E";a:2:{s:4:"type";s:5:"label";s:5:"label";s:7:"Actions";}}i:2;a:5:{s:1:"A";a:2:{s:4:"type";s:5:"image";s:4:"name";s:12:"${row}[icon]";}s:1:"B";a:5:{s:4:"type";s:4:"vbox";s:4:"size";s:1:"2";i:1;a:3:{s:4:"type";s:9:"date-time";s:4:"name";s:13:"${row}[start]";s:8:"readonly";s:1:"1";}i:2;a:3:{s:4:"type";s:9:"date-time";s:4:"name";s:11:"${row}[end]";s:8:"readonly";s:1:"1";}s:4:"name";s:5:"start";}s:1:"C";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:1:"2";i:1;a:5:{s:4:"type";s:5:"label";s:4:"name";s:13:"${row}[title]";s:8:"readonly";s:1:"1";s:7:"no_lang";s:1:"1";s:4:"size";s:1:"b";}i:2;a:3:{s:4:"type";s:5:"label";s:4:"name";s:19:"${row}[description]";s:7:"no_lang";s:1:"1";}}s:1:"D";a:4:{s:4:"type";s:5:"label";s:4:"name";s:13:"${row}[parts]";s:8:"readonly";s:1:"1";s:7:"no_lang";s:1:"1";}s:1:"E";a:5:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"3";i:1;a:6:{s:4:"type";s:6:"button";s:4:"size";s:4:"view";s:5:"label";s:4:"view";s:4:"name";s:19:"view[$row_cont[id]]";s:4:"help";s:15:"view this entry";s:7:"onclick";s:176:"window.open(egw::link(\'/index.php\',\'menuaction=calendar.uiforms.view&cal_id=$row_cont[id]\'),\'425\',\'dependent=yes,width=750,height=450,scrollbars=yes,status=yes\'); return false;";}i:2;a:6:{s:4:"type";s:6:"button";s:4:"size";s:4:"edit";s:5:"label";s:4:"Edit";s:4:"name";s:19:"edit[$row_cont[id]]";s:4:"help";s:15:"Edit this entry";s:7:"onclick";s:176:"window.open(egw::link(\'/index.php\',\'menuaction=calendar.uiforms.edit&cal_id=$row_cont[id]\'),\'425\',\'dependent=yes,width=750,height=450,scrollbars=yes,status=yes\'); return false;";}i:3;a:6:{s:4:"type";s:6:"button";s:4:"name";s:21:"delete[$row_cont[id]]";s:4:"size";s:6:"delete";s:5:"label";s:6:"Delete";s:4:"help";s:17:"Delete this entry";s:7:"onclick";s:36:"return confirm(\'Delete this entry\');";}}}}s:4:"rows";i:2;s:4:"cols";i:5;s:4:"size";s:4:"100%";s:7:"options";a:1:{i:0;s:4:"100%";}}}','size' => '100%','style' => '','modified' => '1128457387',); + +$templ_data[] = array('name' => 'calendar.list.rows','template' => '','lang' => '','group' => '0','version' => '1.0.1.002','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:4:{s:2:"c1";s:2:"th";s:2:"c2";s:7:"row,top";s:1:"B";s:3:"40%";s:1:"E";s:3:"10%";}i:1;a:5:{s:1:"A";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:1:"2";i:1;a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:5:"Start";s:4:"name";s:9:"cal_start";}i:2;a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:4:"name";s:7:"cal_end";s:5:"label";s:3:"End";}}s:1:"B";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:1:"2";i:1;a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:5:"Title";s:4:"name";s:9:"cal_title";}i:2;a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:11:"Description";s:4:"name";s:15:"cal_description";}}s:1:"C";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:1:"2";i:1;a:4:{s:4:"type";s:20:"nextmatch-sortheader";s:4:"name";s:9:"cal_owner";s:5:"label";s:5:"Owner";s:8:"readonly";s:1:"1";}i:2;a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:4:"name";s:12:"cal_location";s:5:"label";s:8:"Location";}}s:1:"D";a:3:{s:4:"size";s:16:"All participants";s:4:"name";s:11:"participant";s:4:"type";s:23:"nextmatch-accountfilter";}s:1:"E";a:2:{s:4:"type";s:5:"label";s:5:"label";s:7:"Actions";}}i:2;a:5:{s:1:"A";a:5:{s:4:"type";s:4:"vbox";s:4:"size";s:1:"2";i:1;a:3:{s:4:"type";s:9:"date-time";s:4:"name";s:13:"${row}[start]";s:8:"readonly";s:1:"1";}i:2;a:3:{s:4:"type";s:9:"date-time";s:4:"name";s:11:"${row}[end]";s:8:"readonly";s:1:"1";}s:4:"name";s:5:"start";}s:1:"B";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:1:"2";i:1;a:5:{s:4:"type";s:5:"label";s:4:"name";s:13:"${row}[title]";s:8:"readonly";s:1:"1";s:7:"no_lang";s:1:"1";s:4:"size";s:1:"b";}i:2;a:3:{s:4:"type";s:5:"label";s:4:"name";s:19:"${row}[description]";s:7:"no_lang";s:1:"1";}}s:1:"C";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:1:"2";i:1;a:3:{s:4:"type";s:14:"select-account";s:4:"name";s:13:"${row}[owner]";s:8:"readonly";s:1:"1";}i:2;a:3:{s:4:"type";s:5:"label";s:4:"name";s:16:"${row}[location]";s:7:"no_lang";s:1:"1";}}s:1:"D";a:4:{s:4:"type";s:5:"label";s:4:"name";s:13:"${row}[parts]";s:8:"readonly";s:1:"1";s:7:"no_lang";s:1:"1";}s:1:"E";a:5:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"3";i:1;a:6:{s:4:"type";s:6:"button";s:4:"size";s:4:"view";s:5:"label";s:4:"view";s:4:"name";s:19:"view[$row_cont[id]]";s:4:"help";s:15:"View this event";s:7:"onclick";s:176:"window.open(egw::link(\'/index.php\',\'menuaction=calendar.uiforms.view&cal_id=$row_cont[id]\'),\'425\',\'dependent=yes,width=750,height=450,scrollbars=yes,status=yes\'); return false;";}i:2;a:6:{s:4:"type";s:6:"button";s:4:"size";s:4:"edit";s:5:"label";s:4:"Edit";s:4:"name";s:19:"edit[$row_cont[id]]";s:4:"help";s:15:"Edit this event";s:7:"onclick";s:176:"window.open(egw::link(\'/index.php\',\'menuaction=calendar.uiforms.edit&cal_id=$row_cont[id]\'),\'425\',\'dependent=yes,width=750,height=450,scrollbars=yes,status=yes\'); return false;";}i:3;a:6:{s:4:"type";s:6:"button";s:4:"name";s:21:"delete[$row_cont[id]]";s:4:"size";s:6:"delete";s:5:"label";s:6:"Delete";s:4:"help";s:17:"Delete this event";s:7:"onclick";s:36:"return confirm(\'Delete this event\');";}}}}s:4:"rows";i:2;s:4:"cols";i:5;s:7:"options";a:0:{}s:4:"size";s:4:"100%";}}','size' => '100%','style' => '','modified' => '1128457387',); + +$templ_data[] = array('name' => 'calendar.list.rows','template' => '','lang' => '','group' => '0','version' => '1.0.1.003','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:4:{s:2:"c1";s:2:"th";s:2:"c2";s:7:"row,top";s:1:"B";s:3:"40%";s:1:"E";s:3:"10%";}i:1;a:5:{s:1:"A";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:1:"2";i:1;a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:5:"Start";s:4:"name";s:9:"cal_start";}i:2;a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:4:"name";s:7:"cal_end";s:5:"label";s:3:"End";}}s:1:"B";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:1:"2";i:1;a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:5:"Title";s:4:"name";s:9:"cal_title";}i:2;a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:11:"Description";s:4:"name";s:15:"cal_description";}}s:1:"C";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:1:"2";i:1;a:4:{s:4:"type";s:20:"nextmatch-sortheader";s:4:"name";s:9:"cal_owner";s:5:"label";s:5:"Owner";s:8:"readonly";s:1:"1";}i:2;a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:4:"name";s:12:"cal_location";s:5:"label";s:8:"Location";}}s:1:"D";a:3:{s:4:"size";s:16:"All participants";s:4:"name";s:11:"participant";s:4:"type";s:23:"nextmatch-accountfilter";}s:1:"E";a:3:{s:4:"type";s:5:"label";s:5:"label";s:7:"Actions";s:4:"span";s:8:",noPrint";}}i:2;a:5:{s:1:"A";a:5:{s:4:"type";s:4:"vbox";s:4:"size";s:1:"2";i:1;a:3:{s:4:"type";s:9:"date-time";s:4:"name";s:13:"${row}[start]";s:8:"readonly";s:1:"1";}i:2;a:3:{s:4:"type";s:9:"date-time";s:4:"name";s:11:"${row}[end]";s:8:"readonly";s:1:"1";}s:4:"name";s:5:"start";}s:1:"B";a:5:{s:4:"type";s:4:"vbox";s:4:"size";s:1:"3";i:1;a:5:{s:4:"type";s:5:"label";s:4:"name";s:13:"${row}[title]";s:8:"readonly";s:1:"1";s:7:"no_lang";s:1:"1";s:4:"size";s:1:"b";}i:2;a:3:{s:4:"type";s:5:"label";s:4:"name";s:19:"${row}[description]";s:7:"no_lang";s:1:"1";}i:3;a:3:{s:4:"type";s:5:"label";s:4:"name";s:14:"${row}[recure]";s:7:"no_lang";s:1:"1";}}s:1:"C";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:1:"2";i:1;a:3:{s:4:"type";s:14:"select-account";s:4:"name";s:13:"${row}[owner]";s:8:"readonly";s:1:"1";}i:2;a:3:{s:4:"type";s:5:"label";s:4:"name";s:16:"${row}[location]";s:7:"no_lang";s:1:"1";}}s:1:"D";a:4:{s:4:"type";s:5:"label";s:4:"name";s:13:"${row}[parts]";s:8:"readonly";s:1:"1";s:7:"no_lang";s:1:"1";}s:1:"E";a:6:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"3";i:1;a:6:{s:4:"type";s:6:"button";s:4:"size";s:4:"view";s:5:"label";s:4:"view";s:4:"name";s:19:"view[$row_cont[id]]";s:4:"help";s:15:"View this event";s:7:"onclick";s:197:"window.open(egw::link(\'/index.php\',\'menuaction=calendar.uiforms.view&cal_id=$row_cont[id]&date=$row_cont[date]\'),\'425\',\'dependent=yes,width=750,height=450,scrollbars=yes,status=yes\'); return false;";}i:2;a:6:{s:4:"type";s:6:"button";s:4:"size";s:4:"edit";s:5:"label";s:4:"Edit";s:4:"name";s:19:"edit[$row_cont[id]]";s:4:"help";s:15:"Edit this event";s:7:"onclick";s:197:"window.open(egw::link(\'/index.php\',\'menuaction=calendar.uiforms.edit&cal_id=$row_cont[id]&date=$row_cont[date]\'),\'425\',\'dependent=yes,width=750,height=450,scrollbars=yes,status=yes\'); return false;";}i:3;a:6:{s:4:"type";s:6:"button";s:4:"name";s:21:"delete[$row_cont[id]]";s:4:"size";s:6:"delete";s:5:"label";s:6:"Delete";s:4:"help";s:17:"Delete this event";s:7:"onclick";s:36:"return confirm(\'Delete this event\');";}s:4:"span";s:8:",noPrint";}}}s:4:"rows";i:2;s:4:"cols";i:5;s:7:"options";a:0:{}s:4:"size";s:4:"100%";}}','size' => '100%','style' => '','modified' => '1128457387',); + diff --git a/calendar/setup/phpgw_ca.lang b/calendar/setup/phpgw_ca.lang new file mode 100644 index 0000000000..1c0d43c109 --- /dev/null +++ b/calendar/setup/phpgw_ca.lang @@ -0,0 +1,377 @@ +%1 %2 in %3 calendar ca %1 %2 en %3 +%1 matches found calendar ca %1 resultats trobats +%1 records imported calendar ca %1 registres importats +%1 records read (not yet imported, you may go back and uncheck test import) calendar ca %1 registres llegits (encara sense importar, podeu tornar enrere i desmarcar Prova d'Importaci) +(for weekly) calendar ca (per setmanal) +(i/v)cal calendar ca (i/v)Cal +1 match found calendar ca 1 resultat trobat +please note: the calendar use the holidays of your country, which is set to %1. you can change it in your %2.
holidays are %3 automatic installed from %4. you can changed it in %5. calendar ca Atenci: El calendari utilitza els festius del teu pas, que s %1. Ho pots canviar al %2.
Els festius sn %3 automtic installat de %4. Ho pots canviar a %5. +a non blocking event will not conflict with other events calendar ca Una cita no blocant no entrar en conflicte amb altres cites +accept calendar ca Acceptar +accept or reject an invitation calendar ca Accepta o rebutja una invitaci +accepted calendar ca Acceptat +access denied to the calendar of %1 !!! calendar ca Accs denegat al calendari de %1 !!! +action that caused the notify: added, canceled, accepted, rejected, ... calendar ca Acci que caus la notificaci: Afegit, Cancellat, Acceptat, Rebutjat, ... +actions calendar ca Accions +add alarm calendar ca Afegir alarma +add contact calendar ca Afegir contacte +added calendar ca Afegit +address book calendar ca Llibreta d'adreces +after current date calendar ca Desprs de la data actual +alarm calendar ca Alarma +alarm added calendar ca Alarma activada +alarm deleted calendar ca Alarma esborrada +alarm for %1 at %2 in %3 calendar ca Alarma per %1 a les %2 en %3 +alarm management calendar ca Gesti d'alarmes +alarms calendar ca Alarmes +all categories calendar ca Totes les categories +all day calendar ca Tot el dia +all events calendar ca Totes les cites +all participants calendar ca Tots els participants +allows to edit the event again calendar ca Permet editar de nou la cita +apply the changes calendar ca Aplica els canvis +are you sure you want to delete this country ? calendar ca Esteu segur d'esborrar aquest pas? +are you sure you want to delete this holiday ? calendar ca Esteu segur d'esborrar aquesta festa? +are you sure\nyou want to\ndelete these alarms? calendar ca Esteu segur\nde voler\nesborrar aquestes alarmes? +are you sure\nyou want to\ndelete this entry ?\n\nthis will delete\nthis entry for all users. calendar ca Esteu segur\nde voler\nesborrar aquesta entrada?\n\nAix esborrar \naquesta entrada per a tots els usuaris. +are you sure\nyou want to\ndelete this single occurence ?\n\nthis will delete\nthis entry for all users. calendar ca Esteu segur\nde voler\nesborrar aquesta ocurrncia?\n\nAix esborrar\naquesta entrada per a tots els usuaris. +back half a month calendar ca enrera mig mes +back one month calendar ca enrera un mes +before current date calendar ca Abans de la data actual +before the event calendar ca abans de la cita +birthday calendar ca Data de Naixement +busy calendar ca ocupat +by calendar ca per +calendar - [iv]cal importer calendar ca Calendari - Importador [iv]Cal +calendar - add calendar ca Calendari - Afegir +calendar - edit calendar ca Calendari - Editar +calendar event calendar ca Cita de calendari +calendar holiday management admin ca Gesti de festius +calendar menu calendar ca Men del Calendari +calendar preferences calendar ca Preferncies - Calendari +calendar settings admin ca Calendari - Valors establerts +calendar-fieldname calendar ca Calendari - Nom de camp +can't add alarms in the past !!! calendar ca No se poden activar alarmes en el passat !!! +canceled calendar ca Cancellat +change status calendar ca Canviar estat +charset of file calendar ca Joc de carcters de l'arxiu +close the window calendar ca Tanca la finestra +compose a mail to all participants after the event is saved calendar ca Edita un correu a tots els participants desprs de guardar la cita +copy of: calendar ca Cpia de: +copy this event calendar ca Copia aquesta cita +countries calendar ca Pasos +country calendar ca Pas +create an exception at this recuring event calendar ca Crea una excepci en aquesta cita recurrent +create new links calendar ca Crea nous enllaos +csv calendar ca CSV +csv-fieldname calendar ca CSV- Nom de camp +csv-filename calendar ca CSV- Nom d'arxiu +custom fields common ca Camps personalitzats +custom fields and sorting calendar ca Camps personalitzats i classificaci +daily calendar ca Diari +daily matrix view calendar ca Vista matricial del dia +days calendar ca dies +days of the week for a weekly repeated event calendar ca Dies de la setmana per a una cita setmanal +days repeated calendar ca dies repetits +dayview calendar ca Vista diria +default appointment length (in minutes) calendar ca Duraci per defecte de les cites (en minuts) +default calendar filter calendar ca Filtre per defecte del calendari +default calendar view calendar ca Vista per defecte del calendari +default length of newly created events. the length is in minutes, eg. 60 for 1 hour. calendar ca Duraci per defecte de les noves cites creades. La duraci s en minuts, ex. 60 = 1 hora. +default week view calendar ca Vista setmanal per defecte +defines the size in minutes of the lines in the day view. calendar ca Defineix el tamany en minuts de les lnies de la vista de diari. +delete selected contacts calendar ca Esborrar contactes seleccionats +delete series calendar ca Esborrar sries +delete single calendar ca Esborrar individual +delete this alarm calendar ca Esborra aquesta alarma +delete this event calendar ca Esborra aquesta cita +delete this exception calendar ca Esborra aquesta excepci +delete this series of recuring events calendar ca Esborra aquesta srie de cites recurrents +disable calendar ca Desactivar +disinvited calendar ca Desinvitat +display status of events calendar ca Mostrar estat de les cites +displayed view calendar ca vista mostrada +displays your default calendar view on the startpage (page you get when you enter egroupware or click on the homepage icon)? calendar ca Mostra la vista predeterminada del calendari a la pgina d'inici d'eGroupWare +do you want a weekview with or without weekend? calendar ca Vols una vista setmanal amb o sense cap de setmana? +do you want to be notified about new or changed appointments? you be notified about changes you make yourself.
you can limit the notifications to certain changes only. each item includes all the notification listed above it. all modifications include changes of title, description, participants, but no participant responses. if the owner of an event requested any notifcations, he will always get the participant responses like acceptions and rejections too. calendar ca Voleu que us notifiquin les cites noves o modificades? Se us notificar dels vostres propis canvis.
Podeu limitar les notificacions a noms certs canvis. Cada element inclou tota la notificaci llistada anteriorment. Totes les modificacions inclouen canvis de ttol, participants, pero no les respostes dels participants. Si l'amo d'una cita deman qualsevol notificaci, sempre tindr les respostes del participant, com les acceptacions o rebuigs. +do you want to receive a regulary summary of your appointsments via email?
the summary is sent to your standard email-address on the morning of that day or on monday for weekly summarys.
it is only sent when you have any appointments on that day or week. calendar ca Voleu rebre regularment per correu un resum de les vostres cites?
El resum s'enviar al vostre correu electrnic habitual el mateix dia al mat o el dilluns per a resums setmanals.
Noms s'envia si hi ha cites en aquest dia o setmana. +do you wish to autoload calendar holidays files dynamically? admin ca Voleu carregar automticament al calendari els arxius de festes? +download calendar ca Descarregar +download this event as ical calendar ca Descarrega aquesta cita com a iCal +duration of the meeting calendar ca Durada de la trobada +edit exception calendar ca Edita excepci +edit series calendar ca Editar sries +edit single calendar ca Editar Individual +edit this event calendar ca Edita aquesta cita +edit this series of recuring events calendar ca Edita aquesta srie de cites recursives +email notification calendar ca Notificaci per correu +email notification for %1 calendar ca Notificaci per correu per a %1 +empty for all calendar ca buit per a tots +enable calendar ca Activar +end calendar ca Fi +end date/time calendar ca Data/Hora final +enddate calendar ca Data final +enddate / -time of the meeting, eg. for more then one day calendar ca Data/Hora final de la trobada, p.ex. si s llarga, aleshores un dia +enddate of the export calendar ca Data final de l'exportaci +ends calendar ca acaba +enter output filename: ( .vcs appended ) calendar ca Entreu el nom d'arxiu de sortida (s'afegeix .vcs) +error adding the alarm calendar ca Error activant l'alarma +error: importing the ical calendar ca Error important el iCal +error: no participants selected !!! calendar ca Error: no s'han seleccionat participants !!! +error: saving the event !!! calendar ca Error guardant la cita !!! +error: starttime has to be before the endtime !!! calendar ca Error: L'hora d'inici ha de ser anterior a l'hora final !!! +event copied - the copy can now be edited calendar ca Cita copiada - ara se pot editar la cpia +event deleted calendar ca Cita esborrada +event details follow calendar ca Segueixen els detalls de la cita +event saved calendar ca Cita guardada +event will occupy the whole day calendar ca La cita ser de tot el dia +exception calendar ca Excepci +exceptions calendar ca Excepcions +existing links calendar ca Enllaos existents +export calendar ca Exportar +extended calendar ca Ests +extended updates always include the complete event-details. ical's can be imported by certain other calendar-applications. calendar ca Les actualizacions esteses sempre inclouen tots els detalls de les cites. Els de tipus iCal poden importar-se mitjanant altres aplicacions de tipus calendari. +external participants calendar ca Participants externs +fieldseparator calendar ca Separador de camps +filename calendar ca nom del fitxer +filename of the download calendar ca Nom del fitxer descarregat +find free timeslots where the selected participants are availible for the given timespan calendar ca Cerca intrvals de temps lliure en qu els participants seleccionats estiguin disponibles per a la franja de temps donada +firstname of person to notify calendar ca Nom de pila de la persona a notificar +for calendar ca per +format of event updates calendar ca Format de les actualitzacions de cites +forward half a month calendar ca endavant mig mes +forward one month calendar ca endavant un mes +free/busy calendar ca Lliure/Ocupat +freebusy: unknow user '%1', wrong password or not availible to not loged in users !!! calendar ca lliure/ocupat: Usuari desconegut '%1', contrasenya incorrecta o no disponible als usuaris no registrats !!! +freetime search calendar ca Cerca d'hores lliures +fri calendar ca Dv +full description calendar ca Descripci completa +fullname of person to notify calendar ca Nom complet de la persona a la que notificar +general calendar ca General +generate printer-friendly version calendar ca Generar versi per a imprimir +global public and group public calendar ca Pblic Global i grup pblic +global public only calendar ca Noms Pblic global +go! calendar ca Endavant! +group planner calendar ca Planificaci de grup +group public only calendar ca Noms Grup pblic +groupmember(s) %1 not included, because you have no access. calendar ca Membre(s) del grup %1 no inclosos perqu no tens accs. +here is your requested alarm. calendar ca Aquesta s l'alarma demanada. +high priority calendar ca prioritat alta +holiday calendar ca Festiu +holiday management calendar ca Gesti de festius +holidays calendar ca Festius +hours calendar ca hores +how far to search (from startdate) calendar ca fins quan s'ha de cercar (a partir de la data d'inici) +ical calendar ca iCal +ical / rfc2445 calendar ca iCal / rfc2445 +ical export calendar ca Exportaci iCal +ical file calendar ca fitxer iCal +ical import calendar ca Importaci iCal +ical successful imported calendar ca iCal importat correctament +if checked holidays falling on a weekend, are taken on the monday after. calendar ca Si els festius marcats cauen en cap de setmana, passen al dilluns segent. +if you dont set a password here, the information is available to everyone, who knows the url!!! calendar ca Si no poses una contrasenya aqu, la informaci estar disponible per a qualsevol que conegui la URL!!! +ignore conflict calendar ca Ignorar conflicte +import calendar ca Importar +import csv-file calendar ca Importar arxiu CSV +interval calendar ca Intrval +intervals in day view calendar ca Intrvals a la vista de dia +invalid email-address "%1" for user %2 calendar ca Adrea de correu invlida "%1" de l'usuari %2 +invalid entry id. calendar ca Id d'entrada no vlid +last calendar ca darrer +lastname of person to notify calendar ca Cognom de la persona a la que notificar +length shown
(emtpy for full length) calendar ca Tamany mostrat
(buit per al tamany sencer) +length
(<= 255) calendar ca Tamany
(<=255) +link to view the event calendar ca Enlla per veure l'acci +links calendar ca Enllaos +links, attachments calendar ca Enllaos, Adjunts +listview calendar ca vista de llistat +load [iv]cal calendar ca Carregar [iv]Cal +location calendar ca Lloc +location to autoload from admin ca Lloc des d'on carregar automticament +location, start- and endtimes, ... calendar ca Lloc, hores d'inici i fi,... +mail all participants calendar ca correu de tots els participants +make freebusy information available to not loged in persons? calendar ca Fer que la informaci lliure/ocupat estigui disponible per a les persones no registrades? +matrixview calendar ca Vista matricial +minutes calendar ca minuts +modified calendar ca Modificat +modify list of external participants calendar ca Modificar llista de participants externs +mon calendar ca Dl +month calendar ca Mes +monthly calendar ca Mensual +monthly (by date) calendar ca Mensual (per data) +monthly (by day) calendar ca Mensual (per dia) +monthview calendar ca Vista mensual +new entry calendar ca Nova entrada +new name must not exist and not be empty!!! calendar ca El nou nom no pot existir ja i tampoc pot quedar en blanc !! +new search with the above parameters calendar ca nova cerca amb els parmetres de dalt +no events found calendar ca No s'han trobat cites +no filter calendar ca Sense filtre +no matches found calendar ca No s'han trobat resultats +no response calendar ca Sense resposta +non blocking calendar ca no blocant +not calendar ca no +notification messages for added events calendar ca Missatges de notificaci per a cites afegides +notification messages for canceled events calendar ca Missatges de notificaci per a cites cancellades +notification messages for disinvited participants calendar ca Missatges de notificaci per a participants desconvidats +notification messages for modified events calendar ca Missatges de notificaci per a cites modificades +notification messages for your alarms calendar ca Missatges de notificaci per les vostres alarmes +notification messages for your responses calendar ca Missatges de notificaci per les vostres respostes +number of months calendar ca Nombre de mesos +number of records to read (%1) calendar ca Nombre de registres a llegir (%1) +observance rule calendar ca Regla d'observaci +occurence calendar ca Repetici +old startdate calendar ca Data d'inici anterior +on %1 %2 %3 your meeting request for %4 calendar ca El %1 %2 %3 la vostra solicitut de reuni per %4 +on all modification, but responses calendar ca en todes les modificacions, excepte les respostes +on any time change too calendar ca tamb en qualsevol canvi d'hora +on invitation / cancelation only calendar ca noms en invitaci / cancellaci +on participant responses too calendar ca tamb en respostes dels participants +on time change of more than 4 hours too calendar ca tamb en un canvi d'hora superior a 4 hores +one month calendar ca un mes +one week calendar ca una setmana +one year calendar ca un any +only the initial date of that recuring event is checked! calendar ca Noms s'ha comprovat la data inicial d'aquesta cita recursiva! +open todo's: calendar ca Tasques pendents +order calendar ca Ordre +overlap holiday calendar ca encavalcar festiu +participant calendar ca Participant +participants calendar ca Participants +participants disinvited from an event calendar ca Participants desconvidats d'una cita +participants, resources, ... calendar ca Participants, recursos,... +participates calendar ca Participa +password for not loged in users to your freebusy information? calendar ca Demanar contrasenya als usuaris no registrats a la informaci lliure/ocupat? +people holiday calendar ca festa popular +permission denied calendar ca Perms denegat +planner calendar ca Planificador +planner by category calendar ca Planificador per categories +planner by user calendar ca Planificador per usuari +please enter a filename !!! calendar ca si us plau, intruduu un nom de fitxer !!! +please note: you can configure the field assignments after you uploaded the file. calendar ca Atenci: Pots configurar les assignacions dels camps DESPRS de carregar el fitxer. +preselected group for entering the planner calendar ca Grup preseleccionat per entrar al planificador +previous calendar ca Anterior +printer friendly calendar ca Versi per imprimir +private and global public calendar ca Privat i pblic global +private and group public calendar ca Privat i grup pblic +private only calendar ca Noms privat +re-edit event calendar ca Tornar a editar la cita +receive email updates calendar ca Rebre actualitzacions de correu +receive summary of appointments calendar ca Rebre resum de les cites +recurrence calendar ca Recurrncia +recurring event calendar ca cita recurrent +reinstate calendar ca Restablir +rejected calendar ca Rebutjat +repeat day calendar ca Repetir dia +repeat days calendar ca Repeteix dies +repeat end date calendar ca Repetir data final +repeat the event until which date (empty means unlimited) calendar ca repeteix la cita fins quina data (buida significa ilimitada) +repeat type calendar ca Repetir tipus +repeating event information calendar ca Informaci repetitiva de cites +repeating interval, eg. 2 to repeat every second week calendar ca intrval de repetici, p.ex. 2 per repetir cada segona setmana +repetition calendar ca Repetici +repetitiondetails (or empty) calendar ca Detalls de la repetici (o buit) +reset calendar ca Restablir +resources calendar ca Recursos +rule calendar ca Regla +sat calendar ca Ds +saves the changes made calendar ca guarda els canvis fets +saves the event ignoring the conflict calendar ca Guarda la cita ignorant el conflicte +scheduling conflict calendar ca Conflicte de calendari +search results calendar ca Resultats de la recerca +select a %1 calendar ca Selecciona un %1 +select a time calendar ca tria una hora +select resources calendar ca Selecciona recursos +select who should get the alarm calendar ca Selecciona qui hauria d'obtenir l'alarma +selected contacts (%1) calendar ca Contactes seleccionats (%1) +set a year only for one-time / non-regular holidays. calendar ca Establir l'any per als festius nics / no regulars. +set new events to private calendar ca Establir noves cites com a privades +should invitations you rejected still be shown in your calendar ?
you can only accept them later (eg. when your scheduling conflict is removed), if they are still shown in your calendar! calendar ca S'han de mostrar les invitacions que heu rebutjat al calendari?
Noms podeu acceptar-les desprs (per exemple, quan s'elimini el conflicte de planificaci), si encara es veuen al vostre calendari! +should new events created as private by default ? calendar ca Establir noves cites com a privades per defecte? +should not loged in persons be able to see your freebusy information? you can set an extra password, different from your normal password, to protect this informations. the freebusy information is in ical format and only include the times when you are busy. it does not include the event-name, description or locations. the url to your freebusy information is %1. calendar ca Les persones no registrades harien de poder veure la teva informaci lliure/ocupat? Pots establir una contrasenya extra, diferent de la teva contrasenya habitual, per a protegir aquesta informaci. La informaci lliure/ocupat est en format iCal i noms inclou els moments en que ests ocupat. No inclou el nom de la cita, descripci o localitzacions. La URL a la teva informaci lliure/ocupat s %1. +should the status of the event-participants (accept, reject, ...) be shown in brakets after each participants name ? calendar ca S'ha de mostrar l'estat de cada cita (acceptar, rebutjar, etc) entre claudtors[] darrere del nom de cada participant? +show default view on main screen calendar ca Mostrar la vista predeterminada a la pantalla principal +show invitations you rejected calendar ca Mostar invitacions que heu rebutjat +show list of upcoming events calendar ca Mostrar la llista de properes cites +show next seven days calendar ca Mostra els propers set dies +show only one day calendar ca Mostra noms un dia +show this month calendar ca mostra aquest mes +show this week calendar ca mostra aquesta setmana +single event calendar ca cita individual +site configuration calendar ca Configuraci del lloc +sorry, this event does not exist calendar ca Aquesta cita no existeix +sorry, this event does not have exceptions defined calendar ca Aquesta cita no t excepcions definides +sort by calendar ca Ordenar per +start calendar ca Inici +start date/time calendar ca Data/Hora d'inici +startdate / -time calendar ca Data/hora d'inici +startdate and -time of the search calendar ca Data i hora d'inici de la cerca +startdate of the export calendar ca Data inicial de l'exportaci +startrecord calendar ca Registre inicial +status changed calendar ca Estat canviat +submit to repository calendar ca Enviar al repositori +sun calendar ca Dg +tentative calendar ca Tentatiu +test import (show importable records only in browser) calendar ca Prova d'Importaci (mostrar registres importables noms al navegador) +text calendar ca Text +the user %1 is not participating in this event! calendar ca L'usuari %1 no participa en aquesta cita! +this day is shown as first day in the week or month view. calendar ca Aquest dia es mostrar como a primer dia a les vistes de setmana o de mes. +this defines the end of your dayview. events after this time, are shown below the dayview. calendar ca Aix defineix el final de la vista del dia. Les cites posteriors a aquesta hora es mostren sota la vista del dia. +this defines the start of your dayview. events before this time, are shown above the dayview.
this time is also used as a default starttime for new events. calendar ca Aix defineix l'inici de la vista del dia. Les cites anteriors a aquesta hora es mostren sobre la vista del dia.
Aquesta hora s'usa tamb com a hora predeterminada per a noves cites. +this group that is preselected when you enter the planner. you can change it in the planner anytime you want. calendar ca Aquest grup s el predeterminat en entrar al planificador. Podeu canviar-ho en el planificador quan volgueu. +this message is sent for canceled or deleted events. calendar ca Aquest missatge s'envia quan una cita s'esborra o es cancella. +this message is sent for modified or moved events. calendar ca Aquest missatge s'envia en modificar o moure cites. +this message is sent to disinvited participants. calendar ca Aquest missatge s enviat als participants desconvidats. +this message is sent to every participant of events you own, who has requested notifcations about new events.
you can use certain variables which get substituted with the data of the event. the first line is the subject of the email. calendar ca Aquest missatge s'envia a cada participant de les cites de les que sou el propietari, qui ha demanat notificacions sobre noves cites.
Podeu usar certes variables a les que substitueixen les dades de la cita. La primera lnia s l'assumpte del correu electrnic. +this message is sent when you accept, tentative accept or reject an event. calendar ca Aquest missatge s'envia quan accepteu, accepteu l'intent o rebutgeu una cita. +this message is sent when you set an alarm for a certain event. include all information you might need. calendar ca Aquest missatge s'envia quan establiu una alarma per una cita en concret. Incluiu tota la informaci necessria. +this month calendar ca Aquest mes +this week calendar ca Aquesta setmana +this year calendar ca Aquest any +three month calendar ca tres mesos +thu calendar ca Dj +til calendar ca fins +timeframe calendar ca Perode de temps +timeframe to search calendar ca Perode de temps a cercar +title of the event calendar ca Ttol de la cita +title-row calendar ca Fila del ttol +to many might exceed your execution-time-limit calendar ca Quan temps es pot excedir del lmit d'execuci +translation calendar ca Traducci +tue calendar ca Dt +two weeks calendar ca dues setmanes +updated calendar ca Actualitzat +use end date calendar ca Utilitzar data final +use the selected time and close the popup calendar ca utilitza el temps seleccionat i tanca la finestra emergent +view this entry calendar ca Veure aquesta entrada +view this event calendar ca Veure aquesta cita +wed calendar ca Dc +week calendar ca Setmana +weekday starts on calendar ca La setmana comena en +weekdays calendar ca Dies de la setmana +weekdays to use in search calendar ca Dies de la setmana a utilitzar en la cerca +weekly calendar ca Setmanal +weekview calendar ca Vista setmanal +weekview with weekend calendar ca Vista setmanal amb cap de setmana +weekview without weekend calendar ca vista setmanal sense incloure caps de setmana +which events do you want to see when you enter the calendar. calendar ca Quines cites voleu veure en entrar al calendari? +which of calendar view do you want to see, when you start calendar ? calendar ca Quina vista del calendari voleu veure quan entreu al calendari? +whole day calendar ca dia sencer +wk calendar ca Stm +work day ends on calendar ca La jornada laboral acaba a les +work day starts on calendar ca La jornada laboral comena a les +yearly calendar ca Anual +yearview calendar ca Vista anual +you can either set a year or a occurence, not both !!! calendar ca Podeu indicar un any o una repetici, per no ambds !!! +you can only set a year or a occurence !!! calendar ca Noms podeu indicar un any o una repetici !!! +you do not have permission to add alarms to this event !!! calendar ca No teniu perms per afegir alarmes a aquesta cita!!! +you do not have permission to delete this alarm !!! calendar ca No teniu perms per esborrar aquesta alarma! +you do not have permission to enable/disable this alarm !!! calendar ca No teniu perms per activar/desactivar aquesta alarma! +you do not have permission to read this record! calendar ca No teniu perms per llegir aquest registre! +you have a meeting scheduled for %1 calendar ca Teniu una reuni programada per %1 +you have been disinvited from the meeting at %1 calendar ca Has estat desconvidat de la trobada a %1 +you must select a [iv]cal. (*.[iv]cs) calendar ca Heu de triar un [iv]Cal. (*.[iv]cs) +you need to select an ical file first calendar ca Primer has de seleccionar un fitxer iCal +you need to set either a day or a occurence !!! calendar ca Heu d'establir un dia o una repetici !!! +your meeting scheduled for %1 has been canceled calendar ca S'ha cancellat la vostra reuni programada per %1 +your meeting that had been scheduled for %1 has been rescheduled to %2 calendar ca La vostra reuni programada per %1 ha estat reprogramada a %2 +your suggested time of %1 - %2 conflicts with the following existing calendar entries: calendar ca Les vostres hores proposades de %1 - %2 estan en conflicte amb les segents entrades del calendari: + +h calendar ca h diff --git a/calendar/setup/phpgw_de.lang b/calendar/setup/phpgw_de.lang new file mode 100644 index 0000000000..aaa8512e3f --- /dev/null +++ b/calendar/setup/phpgw_de.lang @@ -0,0 +1,312 @@ +%1 %2 in %3 calendar de %1 %2 im %3 +%1 records imported calendar de %1 Datenstze importiert +%1 records read (not yet imported, you may go back and uncheck test import) calendar de %1 Datenstze gelesen (noch nicht importiert, sie knnen zurck gehen und Test Import ausschalten) +please note: the calendar use the holidays of your country, which is set to %1. you can change it in your %2.
holidays are %3 automatic installed from %4. you can changed it in %5. calendar de Bitte beachten: Der Kalender verwendet die Feiertages Ihres Landes, welches auf %1 eingestellt ist. Das knnen Sie in Ihren %2 ndern.
Feiertage werden %3 automatisch von %4 installiert, was in %5 nderbar ist. +a non blocking event will not conflict with other events calendar de Ein nicht blockierender Termin ergibt keine Konflikt mit anderen Terminen +accept or reject an invitation calendar de Einladung zu- oder absagen +accepted calendar de Zugesagt +access denied to the calendar of %1 !!! calendar de Zugriff zum Kalender von %1 verweigert !!! +action that caused the notify: added, canceled, accepted, rejected, ... calendar de Aktion die die Benachrichtigung verursacht hat: Zugefgt, Storniert, Zugesagt, Abgesagt +actions calendar de Befehle +add alarm calendar de Alarm zufgen +added calendar de Neuer Termin +after current date calendar de Nach dem aktuellen Datum +alarm calendar de Alarm +alarm added calendar de Alarm zugefgt +alarm deleted calendar de Alarm gelscht +alarm for %1 at %2 in %3 calendar de Alarm fr %1 am %2 in %3 +alarm management calendar de Alarm Management +alarms calendar de Alarme +all categories calendar de Alle Kategorien +all day calendar de ganztgig +all events calendar de Alle Termine +all participants calendar de Alle Teilnehmer +allows to edit the event again calendar de Erlaubt den Termin erneut zu bearbeiten +apply the changes calendar de bernimmt die nderungen +are you sure you want to delete this country ? calendar de Sind Sie sicher, dass Sie dieses Land lschen wollen ? +are you sure you want to delete this holiday ? calendar de Sind Sie sicher, dass Sie diesen Feiertag lschen wollen ? +back half a month calendar de einen halben Monat zurck +back one month calendar de einen Monat zurck +before current date calendar de Vor dem aktuellen Datum +before the event calendar de vor dem Termin +birthday calendar de Geburtstag +busy calendar de belegt +by calendar de von +calendar event calendar de Kalender Aktualisierung +calendar holiday management admin de Feiertage verwalten +calendar menu calendar de Kalender Men +calendar preferences calendar de Kalender Einstellungen +calendar settings admin de Kalender Einstellungen +calendar-fieldname calendar de Kalender Feldname +can't add alarms in the past !!! calendar de Kann keine Alarme in der Vergangenheit setzen !!! +canceled calendar de Abgesagt +charset of file calendar de Zeichensatz der Datei +close the window calendar de Schliet das Fenster +compose a mail to all participants after the event is saved calendar de Schreibe eine Mail an alle Teilnehmer nachdem der Termin gespeichert wurde +copy of: calendar de Kopie von: +copy this event calendar de Kopiert diesen Termin +countries calendar de Lnder +country calendar de Land +create an exception at this recuring event calendar de Erzeugt eine Ausnahme an diesem wiederholenden Termin +create new links calendar de Neue Verknpfung erstellen +csv calendar de CSV +csv-fieldname calendar de CSV-Feldname +csv-filename calendar de CSV-Dateiname +custom fields common de Benutzerdefinierte Felder +daily calendar de Tglich +days calendar de Tage +days of the week for a weekly repeated event calendar de Wochentage fr wchentlich wiederholten Termin +days repeated calendar de wiederholte Tage +dayview calendar de Tagesansicht +default appointment length (in minutes) calendar de Standardlnge eines neuen Kalendareintrags (in Minuten) +default calendar filter calendar de Standard-Filter des Kalenders +default calendar view calendar de Standard-Ansicht des Kalenders +default length of newly created events. the length is in minutes, eg. 60 for 1 hour. calendar de Vorgabe fr die Lnge von neuen Kalendareintrgen. Die Lnge ist in Minuten, zb. 60 fr 1 Stunde. +default week view calendar de Vorgabe Wochenansicht +delete series calendar de Serie lschen +delete this alarm calendar de Diesen Alarm lschen +delete this event calendar de Diesen Termin lschen +delete this exception calendar de Diese Ausnahme lschen +delete this series of recuring events calendar de Diese Serie von wiederholenden Terminen lschen +disinvited calendar de Ausgeladen +display status of events calendar de Status von Terminen anzeigen +displayed view calendar de Ansicht +displays your default calendar view on the startpage (page you get when you enter egroupware or click on the homepage icon)? calendar de Zeigt Ihre Standard-Kalendar-Ansicht auf der Startseite angezeigt werden (die Seite die sich nach dem Login ffnet oder wenn Sie auf Home klicken)? +do you want a weekview with or without weekend? calendar de Wollen Sie eine Wochenansicht mit oder ohne Wochenende? +do you want to be notified about new or changed appointments? you be notified about changes you make yourself.
you can limit the notifications to certain changes only. each item includes all the notification listed above it. all modifications include changes of title, description, participants, but no participant responses. if the owner of an event requested any notifcations, he will always get the participant responses like acceptions and rejections too. calendar de Wollen Sie ber neue oder genderte Termine benachrichtigt werden? Sie werden nie ber eigene nderungen benachrichtig.
Sie knnen die Benachrichtigungen auf verschiedene nderungen begrenzen. Jede Zeile enthlt die Benachrichtigungen der darberliegenden. Alle nderungen umfasst den Title, die Beschreibung, Teilnehmer, aber keine Antworten der Teilnehmer. Wenn der Ersteller eines Event irgendeine Benachrichtigung will, erhlt er automatisch auch die Antworten der Teilnehmer, wie Zusagen und Absagen. +do you want to receive a regulary summary of your appointsments via email?
the summary is sent to your standard email-address on the morning of that day or on monday for weekly summarys.
it is only sent when you have any appointments on that day or week. calendar de Mchten Sie eine regelmige Zusammenfassung Ihrer Termine via E-Mail erhalten?
Die Zusammenfassung wird tglich (jeden Morgen), oder fr eine wchentliche Zusammenfassung Montags an Ihre standard E-Mail Adresse gesendet.
Die Benachrichtigung wird nur versendet wenn Sie am nchsten Tag oder in der nchsten Woche auch einen Termin haben. +do you wish to autoload calendar holidays files dynamically? admin de Sollen die Feiertage automatisch geladen werden? +download calendar de Herunterladen +download this event as ical calendar de Termin als iCal herunterladen +duration of the meeting calendar de Dauer des Termins +edit exception calendar de Ausname bearbeiten +edit series calendar de Serie bearbeiten +edit this event calendar de Diesen Termin bearbeiten +edit this series of recuring events calendar de Diese Serie von wiederholenden Terminen bearbeiten +empty for all calendar de leer fr alle +end calendar de Ende +end date/time calendar de Enddatum/-zeit +enddate calendar de Enddatum +enddate / -time of the meeting, eg. for more then one day calendar de Enddatum und -zeit des Termins, zB. fr mehr als einen Tag +enddate of the export calendar de Enddatum des Exports +ends calendar de endet +error adding the alarm calendar de Fehler beim Zufgen des Alarms +error: importing the ical calendar de Fehler: beim Importieren des iCal +error: no participants selected !!! calendar de Fehler: keine Teilnehmer ausgewhlt !!! +error: saving the event !!! calendar de Fehler: beim Speichern des Termins !!! +error: starttime has to be before the endtime !!! calendar de Fehler: Startzeit mu vor Endzeit liegen !!! +event copied - the copy can now be edited calendar de Termin kopiert - die Kopie kann jetzt bearbeitet werden +event deleted calendar de Termin gelscht +event details follow calendar de Details zum Termin folgen +event saved calendar de Termin gespeichert +event will occupy the whole day calendar de Termin nimmt den ganzen Tag ein +exception calendar de Ausnahme +exceptions calendar de Ausnahmen +existing links calendar de Bestehende Verknpfungen +export calendar de Exportieren +extended calendar de Erweitert +extended updates always include the complete event-details. ical's can be imported by certain other calendar-applications. calendar de Erweiterte Benachrichtigungen enthlten immer die kompletten Termindetails. iCal's knnen von vielen anderen Kalendarprogrammen importiert werden. +fieldseparator calendar de Feldtrenner +filename calendar de Dateiname +filename of the download calendar de Name der herunterzuladenden Datei +find free timeslots where the selected participants are availible for the given timespan calendar de Such freie Zeitslots an denen die ausgewhlten Teilnehmer fr die gegebene Zeitspanne verfgbar sind +firstname of person to notify calendar de Vorname der zu benachrichtigenden Person +for calendar de fr +for which views should calendar show distinct lines with a fixed time interval. calendar de Fr welche Ansichten soll der Kalender einzelne Zeilen mit festen Zeitintervallen anzeigen. +format of event updates calendar de Format der Benachrichtigungen +forward half a month calendar de einen halben Monat weiter +forward one month calendar de einen Monat weiter +four days view calendar de Vier-Tagesansicht +freebusy: unknow user '%1', wrong password or not availible to not loged in users !!! calendar de Belegtzeiten: Unbekannter Benutzername '%1', falsches Passwort oder nicht verfgbar fr nicht angemeldete Benutzer !!! +freetime search calendar de Terminsuche +fri calendar de Fr +full description calendar de vollstndige Beschreibung +fullname of person to notify calendar de Name der zu benachrichtigenden Person +general calendar de Allgemein +global public and group public calendar de Global ffentlich und Gruppen-ffentlich +global public only calendar de nur Global ffentlich +group invitation calendar de Gruppeneinladung +group planner calendar de Gruppenplaner +group public only calendar de Gruppen-ffentlich +groupmember(s) %1 not included, because you have no access. calendar de Gruppenmitglied(er) %1 nicht enthalten, da Sie keinen Zugriff haben. +h calendar de h +here is your requested alarm. calendar de Hier ist ihr bestellter Alarm. +high priority calendar de Hohe Prioritt +holiday calendar de Feiertag +holiday management calendar de Feiertagsverwaltung +holidays calendar de Feiertage +hours calendar de Stunden +how far to search (from startdate) calendar de wie weit suchen (vom Startdatum) +how many minutes should each interval last? calendar de Wie viele Minute soll jedes Interval dauern? +ical calendar de iCal +ical / rfc2445 calendar de iCal / RFC2445 +ical export calendar de iCal Export +ical file calendar de iCal Datei +ical import calendar de iCal Import +ical successful imported calendar de iCal erfolgreich importiert +if checked holidays falling on a weekend, are taken on the monday after. calendar de Wenn ausgewhlt werden Feiertage die auf ein Wochenende fallen, am drauffolgenden Montag nachgeholt. +if you dont set a password here, the information is available to everyone, who knows the url!!! calendar de Wenn Sie hier kein Passwort angeben, ist die Information fr jeden verfgbar, der die Adresse (URL) kennt!!! +ignore conflict calendar de Konflikt ignorieren +import calendar de Importieren +import csv-file common de CSV-Datei importieren +interval calendar de Intervall +invalid email-address "%1" for user %2 calendar de Ungltige Email-Adresse "%1" fr Benutzer %2 +last calendar de letzte +lastname of person to notify calendar de Nachname der zu benachrichtigenden Person +length of the time interval calendar de Lnge des Zeitintervals +link to view the event calendar de Verweis (Weblink) um den Termin anzuzeigen +links calendar de Verknpfungen +links, attachments calendar de Verknpfungen, Dateianhnge +listview calendar de Listenansicht +location calendar de Ort +location to autoload from admin de Von wo sollen sie geladen werden +location, start- and endtimes, ... calendar de Ort, Start- und Endzeiten +mail all participants calendar de Mail an alle Teilnehmer +make freebusy information available to not loged in persons? calendar de Die Belegtzeiten fr nicht angemeldete Personen verfgbar machen? +minutes calendar de Minuten +modified calendar de Gendert +mon calendar de Mo +monthly calendar de Monatlich +monthly (by date) calendar de Monatlich (nach Datum) +monthly (by day) calendar de Monatlich (nach Wochentag) +monthview calendar de Monatsansicht +new search with the above parameters calendar de neue Suche mit den obigen Parametern +no events found calendar de Keine Termine gefunden +no filter calendar de Kein Filter +no matches found calendar de Keine Treffer gefunden +no response calendar de Keine Antwort +non blocking calendar de nicht blockierend +notification messages for added events calendar de Benachrichtigungstext fr neue Termine +notification messages for canceled events calendar de Benachrichtigungstext fr stornierte Termine +notification messages for disinvited participants calendar de Benachrichtigung fr ausgeladene Teilnehmer +notification messages for modified events calendar de Benachrichtigungstext fr genderte Termine +notification messages for your alarms calendar de Benachrichtigungstext fr Ihre Alarme +notification messages for your responses calendar de Benachrichtigungstext fr Ihre Antworten +number of records to read (%1) calendar de Anzeil Datenstze zu lesen (%1) +observance rule calendar de Observance Rule +occurence calendar de Wiederholung +old startdate calendar de Altes Startdatum +on %1 %2 %3 your meeting request for %4 calendar de Am %1 hat %2 Ihre Einladung fr den %4 %3 +on all modification, but responses calendar de bei allen nderungen, auer Antworten +on any time change too calendar de auch jede zeitliche Vernderung +on invitation / cancelation only calendar de nur bei Einladungen/Absagen +on participant responses too calendar de auch bei Antworten der Teilnehmer +on time change of more than 4 hours too calendar de bei zeitlichen nderungen grer als 4 Stunden +one month calendar de ein Monat +one week calendar de eine Woche +one year calendar de ein Jahr +only the initial date of that recuring event is checked! calendar de Nur das Startdatum diese wiederholenden Termins wird geprft! +open todo's: calendar de unerledigte Aufgaben: +overlap holiday calendar de berlappender Feiertag +participants calendar de Teilnehmer +participants disinvited from an event calendar de Ausgeladene Teilnehmer eines Termins +participants, resources, ... calendar de Teilnehmer, Ressourcen +password for not loged in users to your freebusy information? calendar de Passwort fr Ihre Belegtzeiten fr nicht angemeldete Personen? +people holiday calendar de Feiertag +permission denied calendar de Zugriff verweigert +planner by category calendar de Planer nach Kategorien +planner by user calendar de Planer nach Benutzern +please note: you can configure the field assignments after you uploaded the file. calendar de Bitte beachten: Die Feldzuordnung kann NACH dem Hochladen der Datei konfiguriert werden. +preselected group for entering the planner calendar de vorausgewhlte Gruppe beim Planeraufruf +previous calendar de vorherig +private and global public calendar de Privat und Global ffentlich +private and group public calendar de Privat und Gruppen ffentlich +private only calendar de nur private +re-edit event calendar de Event erneut bearbeiten +receive email updates calendar de Empfange E-Mail updates +receive summary of appointments calendar de Zusammenfassung der Termine erhalten +recurrence calendar de Wiederholung +recurring event calendar de Wiederholender Termin +rejected calendar de Abgesagt +repeat days calendar de Wiederholungstage +repeat the event until which date (empty means unlimited) calendar de Bis zu welchen Datum soll der Termin wiederholt werden (leer bedeutet unbegrenzt) +repeat type calendar de Wiederholungstyp +repeating event information calendar de Informationen zu sich wiederholenden Ereignissen +repeating interval, eg. 2 to repeat every second week calendar de Wiederholungsintervall, zB. 2 fr jeder zweite Woche +repetition calendar de Wiederholung +repetitiondetails (or empty) calendar de Details der Wiederholung (oder leer) +reset calendar de Zurcksetzen +resources calendar de Ressourcen +rule calendar de Regel +sat calendar de Sa +saves the changes made calendar de Speichert die nderungen +saves the event ignoring the conflict calendar de Speichert den Konflikt ignorierend den Termin +scheduling conflict calendar de Terminberschneidung +select a %1 calendar de %1 auswhlen +select a time calendar de eine Zeit auswhlen +select resources calendar de Ressourcen auswhlen +select who should get the alarm calendar de Auswhlen wer den Alarm erhalten soll +set a year only for one-time / non-regular holidays. calendar de Nur fr einmalige/unregelmige Feiertage das Jahr angeben. +set new events to private calendar de Neue Termine als private Termine eintragen +should invitations you rejected still be shown in your calendar ?
you can only accept them later (eg. when your scheduling conflict is removed), if they are still shown in your calendar! calendar de Sollen Einladungen welche von Ihnen abgelehnt wurden in Ihrem Kalender angezeigt werden?
Sie knnen diese Einladungen dann spter akzeptieren (z. B. wenn Sie eine Terminkolission gelst haben), wenn Sie in Ihrem Kalender noch vorhanden sind! +should new events created as private by default ? calendar de Sollen neue Termine generell als Privat angelegt werden? +should not loged in persons be able to see your freebusy information? you can set an extra password, different from your normal password, to protect this informations. the freebusy information is in ical format and only include the times when you are busy. it does not include the event-name, description or locations. the url to your freebusy information is %1. calendar de Sollen nicht angemeldete Personen ihre Belegtzeiten einsehen knnen? Sie knnen ein Passwort setzen um diese Informationen zu schtzen. Das Passwort sollte sich von Ihrem normalen Passwort unterscheiden. Die Belegtzeiten sind im iCal Format und enthalten ausschlielich die Zeiten an denen sie nicht verfgbar sind. Sie enthalten NICHT den Namen, die Beschreibung oder den Ort des Termins. Die Adresse (URL) Ihrer Belegtzeiten ist %1. +should the status of the event-participants (accept, reject, ...) be shown in brakets after each participants name ? calendar de Soll der Status (Zugesagt,Abgesagt ...)der Termin- Teilnehmer in Klammern hinter jeden Teilnehmer angezeigt werden? +show default view on main screen calendar de Standardansicht auf der Startseite anzeigen +show invitations you rejected calendar de Zeige Einladungen welche abgelehnt wurden an +show list of upcoming events calendar de Zeige eine Liste der kommenden Termine +show this month calendar de Diesen Monat anzeigen +show this week calendar de Diese Woche anzeigen +single event calendar de Einzelner Termin +start calendar de Start +start date/time calendar de Startdatum/-zeit +startdate / -time calendar de Startdatum / -zeit +startdate and -time of the search calendar de Startdatum und -zeit der Suche +startdate of the export calendar de Startdatum des Exports +startrecord calendar de Startdatensatz +status changed calendar de Status gendert +submit to repository calendar de bertragen zu eGroupWare.org +sun calendar de So +tentative calendar de Vorlufige Zusage +test import (show importable records only in browser) calendar de Test Import (zeigt importierte Datenstze nur im Webbrowser an) +this day is shown as first day in the week or month view. calendar de Dieser Tag wird als erster in der Wochen- oder Monatsansicht angezeigt +this defines the end of your dayview. events after this time, are shown below the dayview. calendar de Diese Zeit definiert das Ende des Arbeitstags in der Tagesansicht. Alle spteren Eintrge werden darunter dargestellt. +this defines the start of your dayview. events before this time, are shown above the dayview.
this time is also used as a default starttime for new events. calendar de Diese Zeit definiert den Anfang des Arbeitstags in der Tagesansicht. Alle frheren Eintrge werden darber dargestellt. +this group that is preselected when you enter the planner. you can change it in the planner anytime you want. calendar de Diese Gruppe wird als vorauswahl ausgewhlt wenn Sie den Planer ffnen. Sie knnen die Gruppe jederzeit wechseln wenn Sie mchten. +this message is sent for canceled or deleted events. calendar de Diese Benachrichtigung wird fr stornierte oder gelschte Termine versandt. +this message is sent for modified or moved events. calendar de Diese Benachrichtigung wird fr genderte Termine versandt. +this message is sent to disinvited participants. calendar de Diese Nachricht wird ausgeladenen Teilnehmern geschickt. +this message is sent to every participant of events you own, who has requested notifcations about new events.
you can use certain variables which get substituted with the data of the event. the first line is the subject of the email. calendar de Diese Nachricht wird an alle Teilnehmer der Termine die Sie anlegen versandt, die Benachrichtigungen wnschen.
Sie knnen verschiedene Variablen verwenden, welche durch die Daten des Termins ersetzt werden. Die erste Zeite ist der Betreff der E-Mail. +this message is sent when you accept, tentative accept or reject an event. calendar de Diese Nachricht wird gesendet wenn Sie einen Termin zusagen, vorlufig zusagen oder absagen. +this message is sent when you set an alarm for a certain event. include all information you might need. calendar de Diese Meldung wird ihnen gesandt, wenn sie einen Alarm fr einen Termin setzen. Nehmen sie alle Information darin auf, die sie bentigen. +three month calendar de drei Monate +thu calendar de Do +til calendar de bis +timeframe calendar de Zeitrahmen +timeframe to search calendar de Zeitrahmen fr die Suche +title of the event calendar de Titel des Termin +to many might exceed your execution-time-limit calendar de zu viele knnen ihre Laufzeitbeschrnkung berschreiten +translation calendar de bersetzung +tue calendar de Di +two weeks calendar de zwei Wochen +updated calendar de Aktualisiert +use end date calendar de Enddatum benutzen +use the selected time and close the popup calendar de benutzt die ausgewhlte Zeit und schliet das Popup +view this event calendar de Diesen Termin anzeigen +views with fixed time intervals calendar de Ansichten mit festen Zeitintervallen +wed calendar de Mi +week calendar de Woche +weekday starts on calendar de Arbeitswoche beginnt am +weekdays calendar de Wochentage +weekdays to use in search calendar de Wochentage fr die Suche +weekly calendar de Wchentlich +weekview calendar de Wochenansicht +weekview with weekend calendar de Wochenansicht mit Wochenende +weekview without weekend calendar de Wochenansicht ohne Wochenende +which events do you want to see when you enter the calendar. calendar de Welche Termine mchten Sie angezeigt bekommen wenn Sie den Kalender ffnen? +which of calendar view do you want to see, when you start calendar ? calendar de Welche der mglichen Ansichten des Kalenders mchten Sie als Standard sehen wenn der Kalender geffnet wird? +whole day calendar de ganztgig +wk calendar de KW +work day ends on calendar de Arbeitstag endet um +work day starts on calendar de Arbeitstag beginnt um +yearly calendar de Jhrlich +yearview calendar de Jahresansicht +you can either set a year or a occurence, not both !!! calendar de Sie knnen nur entweder das Jahr oder die Wiederholung angeben, nicht beides! +you can only set a year or a occurence !!! calendar de Sie knnen nur ein Jahr oder eine Wiederholung angeben ! +you do not have permission to read this record! calendar de Sie haben keine Berechtigung diesen Eintrag zu lesen! +you have a meeting scheduled for %1 calendar de Sie haben einen Termin am %1. +you have been disinvited from the meeting at %1 calendar de Sie wurden vom Termin am %1 ausgeladen +you need to select an ical file first calendar de Sie mssen zuerst eine iCal Datei auswhlen +you need to set either a day or a occurence !!! calendar de Sie mssen entweder einen Tag oder eine Wiederholung angeben !!! +your meeting scheduled for %1 has been canceled calendar de Ihr Termin am %1 wurde abgesagt. +your meeting that had been scheduled for %1 has been rescheduled to %2 calendar de Ihr Termin am %1 wurde auf %2 verschoben. diff --git a/calendar/setup/phpgw_en.lang b/calendar/setup/phpgw_en.lang new file mode 100644 index 0000000000..ea700dc467 --- /dev/null +++ b/calendar/setup/phpgw_en.lang @@ -0,0 +1,312 @@ +%1 %2 in %3 calendar en %1 %2 in %3 +%1 records imported calendar en %1 records imported +%1 records read (not yet imported, you may go back and uncheck test import) calendar en %1 records read (not yet imported, you may go back and uncheck Test Import) +please note: the calendar use the holidays of your country, which is set to %1. you can change it in your %2.
holidays are %3 automatic installed from %4. you can changed it in %5. calendar en Please note: The calendar use the holidays of your country, which is set to %1. You can change it in your %2.
Holidays are %3 automatic installed from %4. You can changed it in %5. +a non blocking event will not conflict with other events calendar en A non blocking event will not conflict with other events +accept or reject an invitation calendar en Accept or reject an invitation +accepted calendar en Accepted +access denied to the calendar of %1 !!! calendar en Access denied to the calendar of %1 !!! +action that caused the notify: added, canceled, accepted, rejected, ... calendar en Action that caused the notify: Added, Canceled, Accepted, Rejected, ... +actions calendar en Actions +add alarm calendar en Add alarm +added calendar en Added +after current date calendar en After current date +alarm calendar en Alarm +alarm added calendar en Alarm added +alarm deleted calendar en Alarm deleted +alarm for %1 at %2 in %3 calendar en Alarm for %1 at %2 in %3 +alarm management calendar en Alarm management +alarms calendar en Alarms +all categories calendar en All categories +all day calendar en all day +all events calendar en All events +all participants calendar en All participants +allows to edit the event again calendar en Allows to edit the event again +apply the changes calendar en apply the changes +are you sure you want to delete this country ? calendar en Are you sure you want to delete this Country ? +are you sure you want to delete this holiday ? calendar en Are you sure you want to delete this holiday ? +back half a month calendar en back half a month +back one month calendar en back one month +before current date calendar en Before current date +before the event calendar en before the event +birthday calendar en Birthday +busy calendar en busy +by calendar en by +calendar event calendar en Calendar Event +calendar holiday management admin en Calendar Holiday Management +calendar menu calendar en Calendar Menu +calendar preferences calendar en Calendar preferences +calendar settings admin en Calendar settings +calendar-fieldname calendar en calendar-Fieldname +can't add alarms in the past !!! calendar en Can't add alarms in the past !!! +canceled calendar en Canceled +charset of file calendar en Charset of file +close the window calendar en Close the window +compose a mail to all participants after the event is saved calendar en compose a mail to all participants after the event is saved +copy of: calendar en Copy of: +copy this event calendar en Copy this event +countries calendar en Countries +country calendar en Country +create an exception at this recuring event calendar en Create an exception at this recuring event +create new links calendar en Create new links +csv calendar en CSV +csv-fieldname calendar en CSV-Fieldname +csv-filename calendar en CSV-Filename +custom fields common en Custom fields +daily calendar en Daily +days calendar en days +days of the week for a weekly repeated event calendar en Days of the week for a weekly repeated event +days repeated calendar en days repeated +dayview calendar en Dayview +default appointment length (in minutes) calendar en default appointment length (in minutes) +default calendar filter calendar en Default calendar filter +default calendar view calendar en default calendar view +default length of newly created events. the length is in minutes, eg. 60 for 1 hour. calendar en Default length of newly created events. The length is in minutes, eg. 60 for 1 hour. +default week view calendar en default week view +delete series calendar en Delete series +delete this alarm calendar en Delete this alarm +delete this event calendar en Delete this event +delete this exception calendar en Delete this exception +delete this series of recuring events calendar en Delete this series of recuring events +disinvited calendar en Disinvited +display status of events calendar en Display status of events +displayed view calendar en displayed view +displays your default calendar view on the startpage (page you get when you enter egroupware or click on the homepage icon)? calendar en Displays your default calendar view on the startpage (page you get when you enter eGroupWare or click on the homepage icon)? +do you want a weekview with or without weekend? calendar en Do you want a weekview with or without weekend? +do you want to be notified about new or changed appointments? you be notified about changes you make yourself.
you can limit the notifications to certain changes only. each item includes all the notification listed above it. all modifications include changes of title, description, participants, but no participant responses. if the owner of an event requested any notifcations, he will always get the participant responses like acceptions and rejections too. calendar en Do you want to be notified about new or changed appointments? You be notified about changes you make yourself.
You can limit the notifications to certain changes only. Each item includes all the notification listed above it. All modifications include changes of title, description, participants, but no participant responses. If the owner of an event requested any notifcations, he will always get the participant responses like acceptions and rejections too. +do you want to receive a regulary summary of your appointsments via email?
the summary is sent to your standard email-address on the morning of that day or on monday for weekly summarys.
it is only sent when you have any appointments on that day or week. calendar en Do you want to receive a regulary summary of your appointsments via email?
The summary is sent to your standard email-address on the morning of that day or on Monday for weekly summarys.
It is only sent when you have any appointments on that day or week. +do you wish to autoload calendar holidays files dynamically? admin en Do you wish to autoload calendar holidays files dynamically? +download calendar en Download +download this event as ical calendar en Download this event as iCal +duration of the meeting calendar en Duration of the meeting +edit exception calendar en Edit exception +edit series calendar en Edit series +edit this event calendar en Edit this event +edit this series of recuring events calendar en Edit this series of recuring events +empty for all calendar en empty for all +end calendar en End +end date/time calendar en End Date/Time +enddate calendar en Enddate +enddate / -time of the meeting, eg. for more then one day calendar en Enddate / -time of the meeting, eg. for more then one day +enddate of the export calendar en Enddate of the export +ends calendar en ends +error adding the alarm calendar en Error adding the alarm +error: importing the ical calendar en Error: importing the iCal +error: no participants selected !!! calendar en Error: no participants selected !!! +error: saving the event !!! calendar en Error: saving the event !!! +error: starttime has to be before the endtime !!! calendar en Error: Starttime has to be before the endtime !!! +event copied - the copy can now be edited calendar en Event copied - the copy can now be edited +event deleted calendar en Event deleted +event details follow calendar en Event Details follow +event saved calendar en Event saved +event will occupy the whole day calendar en Event will occupy the whole day +exception calendar en Exception +exceptions calendar en Exceptions +existing links calendar en Existing links +export calendar en Export +extended calendar en Extended +extended updates always include the complete event-details. ical's can be imported by certain other calendar-applications. calendar en Extended updates always include the complete event-details. iCal's can be imported by certain other calendar-applications. +fieldseparator calendar en Fieldseparator +filename calendar en Filename +filename of the download calendar en Filename of the download +find free timeslots where the selected participants are availible for the given timespan calendar en Find free timeslots where the selected participants are availible for the given timespan +firstname of person to notify calendar en Firstname of person to notify +for calendar en for +for which views should calendar show distinct lines with a fixed time interval. calendar en For which views should calendar show distinct lines with a fixed time interval. +format of event updates calendar en Format of event updates +forward half a month calendar en forward half a month +forward one month calendar en forward one month +four days view calendar en Four days view +freebusy: unknow user '%1', wrong password or not availible to not loged in users !!! calendar en freebusy: Unknow user '%1', wrong password or not availible to not loged in users !!! +freetime search calendar en Freetime Search +fri calendar en Fri +full description calendar en Full description +fullname of person to notify calendar en Fullname of person to notify +general calendar en General +global public and group public calendar en global public and group public +global public only calendar en global public only +group invitation calendar en Group invitation +group planner calendar en Group planner +group public only calendar en group public only +groupmember(s) %1 not included, because you have no access. calendar en Groupmember(s) %1 not included, because you have no access. +h calendar en h +here is your requested alarm. calendar en Here is your requested alarm. +high priority calendar en high priority +holiday calendar en Holiday +holiday management calendar en Holiday Management +holidays calendar en Holidays +hours calendar en hours +how far to search (from startdate) calendar en how far to search (from startdate) +how many minutes should each interval last? calendar en How many minutes should each interval last? +ical calendar en iCal +ical / rfc2445 calendar en iCal / rfc2445 +ical export calendar en iCal Export +ical file calendar en iCal file +ical import calendar en iCal Import +ical successful imported calendar en iCal successful imported +if checked holidays falling on a weekend, are taken on the monday after. calendar en If checked holidays falling on a weekend, are taken on the monday after. +if you dont set a password here, the information is available to everyone, who knows the url!!! calendar en If you dont set a password here, the information is available to everyone, who knows the URL!!! +ignore conflict calendar en Ignore conflict +import calendar en Import +import csv-file common en Import CSV-File +interval calendar en Interval +invalid email-address "%1" for user %2 calendar en Invalid email-address "%1" for user %2 +last calendar en Last +lastname of person to notify calendar en Lastname of person to notify +length of the time interval calendar en Length of the time interval +link to view the event calendar en Link to view the event +links calendar en Links +links, attachments calendar en Links, Attachments +listview calendar en Listview +location calendar en Location +location to autoload from admin en Location to autoload from +location, start- and endtimes, ... calendar en Location, Start- and Endtimes, ... +mail all participants calendar en mail all participants +make freebusy information available to not loged in persons? calendar en Make freebusy information available to not loged in persons? +minutes calendar en Minutes +modified calendar en Modified +mon calendar en Mon +monthly calendar en Monthly +monthly (by date) calendar en Monthly (by date) +monthly (by day) calendar en Monthly (by day) +monthview calendar en Monthview +new search with the above parameters calendar en new search with the above parameters +no events found calendar en No events found +no filter calendar en No filter +no matches found calendar en no matches found +no response calendar en No response +non blocking calendar en non blocking +notification messages for added events calendar en Notification messages for added events +notification messages for canceled events calendar en Notification messages for canceled events +notification messages for disinvited participants calendar en Notification messages for disinvited participants +notification messages for modified events calendar en Notification messages for modified events +notification messages for your alarms calendar en Notification messages for your alarms +notification messages for your responses calendar en Notification messages for your responses +number of records to read (%1) calendar en Number of records to read (%1) +observance rule calendar en Observance Rule +occurence calendar en Occurence +old startdate calendar en Old Startdate +on %1 %2 %3 your meeting request for %4 calendar en On %1 %2 %3 your meeting request for %4 +on all modification, but responses calendar en on all modification, but responses +on any time change too calendar en on any time change too +on invitation / cancelation only calendar en on invitation / cancelation only +on participant responses too calendar en on participant responses too +on time change of more than 4 hours too calendar en on time change of more than 4 hours too +one month calendar en one month +one week calendar en one week +one year calendar en one year +only the initial date of that recuring event is checked! calendar en Only the initial date of that recuring event is checked! +open todo's: calendar en open ToDo's: +overlap holiday calendar en overlap holiday +participants calendar en Participants +participants disinvited from an event calendar en Participants disinvited from an event +participants, resources, ... calendar en Participants, Resources, ... +password for not loged in users to your freebusy information? calendar en Password for not loged in users to your freebusy information? +people holiday calendar en people holiday +permission denied calendar en Permission denied +planner by category calendar en Planner by category +planner by user calendar en Planner by user +please note: you can configure the field assignments after you uploaded the file. calendar en Please note: You can configure the field assignments AFTER you uploaded the file. +preselected group for entering the planner calendar en Preselected group for entering the planner +previous calendar en previous +private and global public calendar en private and global public +private and group public calendar en private and group public +private only calendar en Private Only +re-edit event calendar en Re-Edit event +receive email updates calendar en Receive email updates +receive summary of appointments calendar en Receive summary of appointments +recurrence calendar en Recurrence +recurring event calendar en Recurring event +rejected calendar en Rejected +repeat days calendar en Repeat days +repeat the event until which date (empty means unlimited) calendar en repeat the event until which date (empty means unlimited) +repeat type calendar en Repeat type +repeating event information calendar en Repeating Event Information +repeating interval, eg. 2 to repeat every second week calendar en repeating interval, eg. 2 to repeat every second week +repetition calendar en Repetition +repetitiondetails (or empty) calendar en Repetitiondetails (or empty) +reset calendar en Reset +resources calendar en Resources +rule calendar en Rule +sat calendar en Sat +saves the changes made calendar en saves the changes made +saves the event ignoring the conflict calendar en Saves the event ignoring the conflict +scheduling conflict calendar en Scheduling conflict +select a %1 calendar en select a %1 +select a time calendar en select a time +select resources calendar en Select resources +select who should get the alarm calendar en Select who should get the alarm +set a year only for one-time / non-regular holidays. calendar en Set a Year only for one-time / non-regular holidays. +set new events to private calendar en Set new events to private +should invitations you rejected still be shown in your calendar ?
you can only accept them later (eg. when your scheduling conflict is removed), if they are still shown in your calendar! calendar en Should invitations you rejected still be shown in your calendar ?
You can only accept them later (eg. when your scheduling conflict is removed), if they are still shown in your calendar! +should new events created as private by default ? calendar en Should new events created as private by default ? +should not loged in persons be able to see your freebusy information? you can set an extra password, different from your normal password, to protect this informations. the freebusy information is in ical format and only include the times when you are busy. it does not include the event-name, description or locations. the url to your freebusy information is %1. calendar en Should not loged in persons be able to see your freebusy information? You can set an extra password, different from your normal password, to protect this informations. The freebusy information is in iCal format and only include the times when you are busy. It does not include the event-name, description or locations. The URL to your freebusy information is %1. +should the status of the event-participants (accept, reject, ...) be shown in brakets after each participants name ? calendar en Should the status of the event-participants (accept, reject, ...) be shown in brakets after each participants name ? +show default view on main screen calendar en show default view on main screen +show invitations you rejected calendar en Show invitations you rejected +show list of upcoming events calendar en show list of upcoming events +show this month calendar en show this month +show this week calendar en show this week +single event calendar en single event +start calendar en Start +start date/time calendar en Start Date/Time +startdate / -time calendar en Startdate / -time +startdate and -time of the search calendar en Startdate and -time of the search +startdate of the export calendar en Startdate of the export +startrecord calendar en Startrecord +status changed calendar en Status changed +submit to repository calendar en Submit to Repository +sun calendar en Sun +tentative calendar en Tentative +test import (show importable records only in browser) calendar en Test Import (show importable records only in browser) +this day is shown as first day in the week or month view. calendar en This day is shown as first day in the week or month view. +this defines the end of your dayview. events after this time, are shown below the dayview. calendar en This defines the end of your dayview. Events after this time, are shown below the dayview. +this defines the start of your dayview. events before this time, are shown above the dayview.
this time is also used as a default starttime for new events. calendar en This defines the start of your dayview. Events before this time, are shown above the dayview.
This time is also used as a default starttime for new events. +this group that is preselected when you enter the planner. you can change it in the planner anytime you want. calendar en This group that is preselected when you enter the planner. You can change it in the planner anytime you want. +this message is sent for canceled or deleted events. calendar en This message is sent for canceled or deleted events. +this message is sent for modified or moved events. calendar en This message is sent for modified or moved events. +this message is sent to disinvited participants. calendar en This message is sent to disinvited participants. +this message is sent to every participant of events you own, who has requested notifcations about new events.
you can use certain variables which get substituted with the data of the event. the first line is the subject of the email. calendar en This message is sent to every participant of events you own, who has requested notifcations about new events.
You can use certain variables which get substituted with the data of the event. The first line is the subject of the email. +this message is sent when you accept, tentative accept or reject an event. calendar en This message is sent when you accept, tentative accept or reject an event. +this message is sent when you set an alarm for a certain event. include all information you might need. calendar en This message is sent when you set an Alarm for a certain event. Include all information you might need. +three month calendar en three month +thu calendar en Thu +til calendar en til +timeframe calendar en Timeframe +timeframe to search calendar en Timeframe to search +title of the event calendar en Title of the event +to many might exceed your execution-time-limit calendar en to many might exceed your execution-time-limit +translation calendar en Translation +tue calendar en Tue +two weeks calendar en two weeks +updated calendar en Updated +use end date calendar en use end date +use the selected time and close the popup calendar en use the selected time and close the popup +view this event calendar en View this event +views with fixed time intervals calendar en Views with fixed time intervals +wed calendar en Wed +week calendar en Week +weekday starts on calendar en weekday starts on +weekdays calendar en Weekdays +weekdays to use in search calendar en Weekdays to use in search +weekly calendar en Weekly +weekview calendar en Weekview +weekview with weekend calendar en Weekview with weekend +weekview without weekend calendar en Weekview without weekend +which events do you want to see when you enter the calendar. calendar en Which events do you want to see when you enter the calendar. +which of calendar view do you want to see, when you start calendar ? calendar en Which of calendar view do you want to see, when you start calendar ? +whole day calendar en whole day +wk calendar en Wk +work day ends on calendar en work day ends on +work day starts on calendar en work day starts on +yearly calendar en Yearly +yearview calendar en yearview +you can either set a year or a occurence, not both !!! calendar en You can either set a Year or a Occurence, not both !!! +you can only set a year or a occurence !!! calendar en You can only set a year or a occurence !!! +you do not have permission to read this record! calendar en You do not have permission to read this record! +you have a meeting scheduled for %1 calendar en You have a meeting scheduled for %1 +you have been disinvited from the meeting at %1 calendar en You have been disinvited from the meeting at %1 +you need to select an ical file first calendar en You need to select an iCal file first +you need to set either a day or a occurence !!! calendar en You need to set either a day or a occurence !!! +your meeting scheduled for %1 has been canceled calendar en Your meeting scheduled for %1 has been canceled +your meeting that had been scheduled for %1 has been rescheduled to %2 calendar en Your meeting that had been scheduled for %1 has been rescheduled to %2 diff --git a/calendar/setup/phpgw_es-es.lang b/calendar/setup/phpgw_es-es.lang new file mode 100644 index 0000000000..51ce6a3288 --- /dev/null +++ b/calendar/setup/phpgw_es-es.lang @@ -0,0 +1,311 @@ +%1 %2 in %3 calendar es-es %1 %2 en %3 +%1 records imported calendar es-es %1 registros importados +%1 records read (not yet imported, you may go back and uncheck test import) calendar es-es %1 registros ledos (todava sin importar, puede volver atrs y desmarcar Probar Importar) +please note: the calendar use the holidays of your country, which is set to %1. you can change it in your %2.
holidays are %3 automatic installed from %4. you can changed it in %5. calendar es-es Por favor, tenga en cuenta lo siguiente: El calendario usa las fiestas de su pas, que es %1. Puede cambiarlo en su %2.
Las vacaciones %3 se instalan automticamente desde %4. Lo puede cambiar en %5. +a non blocking event will not conflict with other events calendar es-es Un evento que no bloquea no entrar en conflicto con otros eventos +accept or reject an invitation calendar es-es Aceptar o rechazar una invitacin +accepted calendar es-es Aceptado +access denied to the calendar of %1 !!! calendar es-es Acceso denegado al calendario de %1! +action that caused the notify: added, canceled, accepted, rejected, ... calendar es-es Accin que caus la notificacin: Aadido, Cancelado, Aceptado, Rechazado, ... +actions calendar es-es Acciones +add alarm calendar es-es Aadir alarma +added calendar es-es Aadido +after current date calendar es-es Despus de la fecha actual +alarm calendar es-es Alarma +alarm added calendar es-es Se ha aadido una alarma +alarm deleted calendar es-es Se ha borrado una alarma +alarm for %1 at %2 in %3 calendar es-es Alarma para %1 en %2 in %3 +alarm management calendar es-es Gestin de alarmas +alarms calendar es-es Alarmas +all categories calendar es-es Todas las categoras +all day calendar es-es Todo el da +all events calendar es-es Todos los eventos +all participants calendar es-es Todos los participantes +allows to edit the event again calendar es-es Permite volver a editar el evento +apply the changes calendar es-es Aplicar los cambios +are you sure you want to delete this country ? calendar es-es Seguro que quiere borrar este pas? +are you sure you want to delete this holiday ? calendar es-es Seguro que desea borrar esta fiesta? +back half a month calendar es-es medio mes hacia atrs +back one month calendar es-es un mes hacia atrs +before current date calendar es-es Antes de la fecha actual +before the event calendar es-es antes del evento +birthday calendar es-es Cumpleaos +busy calendar es-es ocupado +by calendar es-es por +calendar event calendar es-es Evento de calendario +calendar holiday management admin es-es Gestin de das festivos +calendar menu calendar es-es Men de calendario +calendar preferences calendar es-es Preferencias - Calendario +calendar settings admin es-es Preferencias de calendario +calendar-fieldname calendar es-es Calendario - Nombre de campo +can't add alarms in the past !!! calendar es-es No se pueden aadir alarmas en el pasado!! +canceled calendar es-es Cancelado +charset of file calendar es-es Juego de caracteres del fichero +close the window calendar es-es Cerrar la ventana +compose a mail to all participants after the event is saved calendar es-es redactar un correo para todos los participantes despus de guardar el evento +copy of: calendar es-es Copia de: +copy this event calendar es-es Copiar este evento +countries calendar es-es Paises +country calendar es-es Pas +create an exception at this recuring event calendar es-es Crear una excepcin en este evento recurrente +create new links calendar es-es Crear enlaces nuevos +csv calendar es-es CSV +csv-fieldname calendar es-es CSV - Nombre del campo +csv-filename calendar es-es CSV- Nombre del fichero +custom fields common es-es Campos personalizados +daily calendar es-es Diario +days calendar es-es das +days of the week for a weekly repeated event calendar es-es Das de la semana para un evento de repeticin semanal +days repeated calendar es-es das repetidos +dayview calendar es-es Vista diaria +default appointment length (in minutes) calendar es-es duracin por defecto de los eventos (en minutos) +default calendar filter calendar es-es Filtro por defecto del calendario +default calendar view calendar es-es Vista por defecto del calendario +default length of newly created events. the length is in minutes, eg. 60 for 1 hour. calendar es-es Longitud predeterminada de los eventos nuevos. La longitud es en minutos, ej. 60 = 1 hora. +default week view calendar es-es Vista semanal predeterminada +defines the size in minutes of the lines in the day view. calendar es-es Define el tamao en minutos de las lnes de la vista de diario. +delete series calendar es-es Borrar series +delete this alarm calendar es-es Borrar esta alarma +delete this event calendar es-es Borrar este evento +delete this exception calendar es-es Borrar esta excepcin +delete this series of recuring events calendar es-es Borrar esta serie de eventos recurrentes +disinvited calendar es-es Ya no est invitado +display status of events calendar es-es Mostrar estado de los eventos +displayed view calendar es-es vista mostrada +displays your default calendar view on the startpage (page you get when you enter egroupware or click on the homepage icon)? calendar es-es Mostrar la vista predeterminada en la pgina de inicio (la pgina que se ve al entrar en eGroupWare o pulsar en el icono de inicio)? +do you want a weekview with or without weekend? calendar es-es Desea una vista de la semana con o sin fin de semana? +do you want to be notified about new or changed appointments? you be notified about changes you make yourself.
you can limit the notifications to certain changes only. each item includes all the notification listed above it. all modifications include changes of title, description, participants, but no participant responses. if the owner of an event requested any notifcations, he will always get the participant responses like acceptions and rejections too. calendar es-es Desea que se le notifiquen citas nuevas o modificadas? Se le notificar de los cambios que haga usted mismo.
Puede limitar las notificaciones para slo ciertos cambios. Cada elemento incluye toda la notificacin listada encima. Todas las modificaciones incluyen cambios de ttulo, participantes, pero no las respuestas de los participantes. Si el dueo de un evento solicit alguna notificacin, siempre obtendr las respuestas de aceptacin o rechazo del participante. +do you want to receive a regulary summary of your appointsments via email?
the summary is sent to your standard email-address on the morning of that day or on monday for weekly summarys.
it is only sent when you have any appointments on that day or week. calendar es-es Desea recibir regularmente por correo un resumen de sus citas?
El resumen se le enviar a su correo electrnico habitual el mismo da por la maana o el lunes para resmenes semanales.
Slo se enva si hay citas en ese da o esa semana. +do you wish to autoload calendar holidays files dynamically? admin es-es Desea cargar automticamente en el calendario los ficheros de fiestas? +download calendar es-es Descargar +download this event as ical calendar es-es Descargar este evento como iCal +duration of the meeting calendar es-es Duracin de la reunin +edit exception calendar es-es Editar excepcin +edit series calendar es-es Editar series +edit this event calendar es-es Editar este evento +edit this series of recuring events calendar es-es Editar esta serie de eventos recurrentes +empty for all calendar es-es vaco para todos +end calendar es-es Fin +end date/time calendar es-es Fecha/Hora final +enddate calendar es-es Fecha final +enddate / -time of the meeting, eg. for more then one day calendar es-es Fecha final / -hora de la reunin, p. ej. para ms de un da +enddate of the export calendar es-es Fecha de fin de la exportacin +ends calendar es-es acaba +error adding the alarm calendar es-es Error al aadir la alarma +error: importing the ical calendar es-es Error al importar el fichero iCal +error: no participants selected !!! calendar es-es Error: No se seleccion ningn participante! +error: saving the event !!! calendar es-es Error al guardar el evento +error: starttime has to be before the endtime !!! calendar es-es Error :La hora de inicio tiene que ser anterior a la de final! +event copied - the copy can now be edited calendar es-es Evento copiado. Ahora se puede editar la copia +event deleted calendar es-es Evento borrado +event details follow calendar es-es A continuacin, los detalles del evento +event saved calendar es-es Evento guardado +event will occupy the whole day calendar es-es El evento ocupar todo el da +exception calendar es-es Excepcin +exceptions calendar es-es Excepciones +existing links calendar es-es Enlaces existentes +export calendar es-es Exportar +extended calendar es-es Extendido +extended updates always include the complete event-details. ical's can be imported by certain other calendar-applications. calendar es-es Las actualizaciones extendidas incluyen todos los detalles de los eventos. Los de tipo iCal pueden importarse mediante otras aplicaciones de tipo calendario. +fieldseparator calendar es-es Separador de campos +filename calendar es-es Nombre de fichero +filename of the download calendar es-es Nombre de fichero de la descarga +find free timeslots where the selected participants are availible for the given timespan calendar es-es Buscar mrgenes de tiempo libres donde los participantes seleccionados estn disponibles para las horas indicadas +firstname of person to notify calendar es-es Nombre de pila de la persona a notificar +for calendar es-es para +format of event updates calendar es-es Formato de las actualizaciones de eventos +forward half a month calendar es-es medio mes hacia adelante +forward one month calendar es-es un mes hacia adelante +freebusy: unknow user '%1', wrong password or not availible to not loged in users !!! calendar es-es libre-ocupado: Usuario desconocido "%1", contrasea incorrecta o no est disponible +freetime search calendar es-es Buscar en el tiempo libre +fri calendar es-es Vie +full description calendar es-es Descripcin completa +fullname of person to notify calendar es-es Nombre completo de la persona a la que notificar +general calendar es-es General +global public and group public calendar es-es Pblico Global y grupo pblico +global public only calendar es-es Pblico global slo +group invitation calendar es-es Invitacin de grupo +group planner calendar es-es Planificacin de grupo +group public only calendar es-es Grupo pblico solamente +groupmember(s) %1 not included, because you have no access. calendar es-es Los miembros del grupo %1 no estn incluidos, porque no tiene acceso. +here is your requested alarm. calendar es-es Aqu est la alama solicitada +high priority calendar es-es prioridad alta +holiday calendar es-es Festivo +holiday management calendar es-es Gestin de festivos +holidays calendar es-es Festivos +hours calendar es-es horas +how far to search (from startdate) calendar es-es cunto buscar (desde la fecha de inicio) +ical calendar es-es iCal +ical / rfc2445 calendar es-es iCal / rfc2445 +ical export calendar es-es Exportar iCal +ical file calendar es-es fichero iCal +ical import calendar es-es Importar iCal +ical successful imported calendar es-es El fichero iCal se import correctamente +if checked holidays falling on a weekend, are taken on the monday after. calendar es-es Si los festivos marcados caen en fin de semana, se toman el lunes siguiente. +if you dont set a password here, the information is available to everyone, who knows the url!!! calendar es-es Si no pone aqu una contrasea, la informacin est disponible para todos los que conozcan la URL! +ignore conflict calendar es-es Ignorar conflicto +import calendar es-es Importar +import csv-file common es-es Importar fichero CSV +interval calendar es-es Intervalo +intervals in day view calendar es-es Intervalos en la vista de da +invalid email-address "%1" for user %2 calendar es-es La direccin de correo "%1" no es vlida para el usuario %2 +last calendar es-es ltimo +lastname of person to notify calendar es-es Apellido de la persona a la que notificar +link to view the event calendar es-es Vnculo para ver el evento +links calendar es-es Enlaces +links, attachments calendar es-es Enlaces, adjuntos +listview calendar es-es Ver lista +location calendar es-es Lugar +location to autoload from admin es-es Lugar desde donde cargar automticamente +location, start- and endtimes, ... calendar es-es Ubicacin, hora de inicio y final... +mail all participants calendar es-es Enviar correo a todos los participantes +make freebusy information available to not loged in persons? calendar es-es Poner la informacin del tiempo disponible a las personas que no inicien sesin? +minutes calendar es-es minutos +modified calendar es-es Modificado +mon calendar es-es Lun +monthly calendar es-es Mensualmente +monthly (by date) calendar es-es Mensual (por fecha) +monthly (by day) calendar es-es Mensual (por da) +monthview calendar es-es Vista mensual +new search with the above parameters calendar es-es nueva bsqueda con los parmetros de arriba +no events found calendar es-es No se encontraron eventos +no filter calendar es-es Sin filtro +no matches found calendar es-es No se encontraron coincidencias +no response calendar es-es Sin respuesta +non blocking calendar es-es no bloquea +not calendar es-es no +notification messages for added events calendar es-es Mensajes de notificacin para eventos aadidos +notification messages for canceled events calendar es-es Mensajes de notificacin para eventos cancelados +notification messages for disinvited participants calendar es-es Mensajes de notificacin para participantes que dejan de ser invitados +notification messages for modified events calendar es-es Mensajes de notificacin para eventos modificados +notification messages for your alarms calendar es-es Mensajes de notificacin para sus alarmas +notification messages for your responses calendar es-es Mensajes de notificacin para sus respuestas +number of records to read (%1) calendar es-es Nmero de registros a leer (%1) +observance rule calendar es-es Regla de observacin +occurence calendar es-es Ocurrencia +old startdate calendar es-es Fecha de inicio antigua +on %1 %2 %3 your meeting request for %4 calendar es-es El %1 %2 %3 su solicitud de reunin para %4 +on all modification, but responses calendar es-es en todas las modificaciones, excepto las respuestas +on any time change too calendar es-es tambin en cualquier cambio de hora +on invitation / cancelation only calendar es-es slo en invitacin o cancelacin +on participant responses too calendar es-es tambin en las respuestas de los participantes +on time change of more than 4 hours too calendar es-es tambin en un cambio de hora superior a 4 horas +one month calendar es-es un mes +one week calendar es-es una semana +one year calendar es-es un ao +only the initial date of that recuring event is checked! calendar es-es Slo est marcada la fecha inicial del evento recurrente! +open todo's: calendar es-es Abrir tareas pendientes +overlap holiday calendar es-es solapar festivo +participants calendar es-es Participantes +participants disinvited from an event calendar es-es Participantes que dejan de ser invitados de un evento +participants, resources, ... calendar es-es Participantes, recursos +password for not loged in users to your freebusy information? calendar es-es Contrasea para los usuarios sin sesin para la informacin libre-ocupado? +people holiday calendar es-es festivo para la gente +permission denied calendar es-es Permiso denegado +planner by category calendar es-es Planificador por categoras +planner by user calendar es-es Planificador por usuario +please note: you can configure the field assignments after you uploaded the file. calendar es-es Por favor, tenga en cuenta: puede configurar el campo asignaciones DESPUES de subir el fichero. +preselected group for entering the planner calendar es-es Grupo preseleccionado para entrar en el planificador +previous calendar es-es anterior +private and global public calendar es-es Privado y pblico global +private and group public calendar es-es Privado y pblico global +private only calendar es-es Privado solamente +re-edit event calendar es-es Volver a editar evento +receive email updates calendar es-es Recibir actualizaciones de correo +receive summary of appointments calendar es-es Recibir resumen de las citas +recurrence calendar es-es Repeticiones +recurring event calendar es-es evento recurrente +rejected calendar es-es Rechazado +repeat days calendar es-es Das de repeticin +repeat the event until which date (empty means unlimited) calendar es-es repetir el evento hasta qu fecha (en blanco significa sin lmite) +repeat type calendar es-es Tipo repeticin +repeating event information calendar es-es Informacin repetitiva de eventos +repeating interval, eg. 2 to repeat every second week calendar es-es intervalo de repeticin, p. ej., 2 para repetir cada segunda semana +repetition calendar es-es Repeticin +repetitiondetails (or empty) calendar es-es Detalles de la repeticin (o vaco) +reset calendar es-es Restablecer +resources calendar es-es Recursos +rule calendar es-es Regla +sat calendar es-es Sb +saves the changes made calendar es-es guarda los cambios realizados +saves the event ignoring the conflict calendar es-es Guarda el evento ignorando el conflicto +scheduling conflict calendar es-es Conflicto de calendario +select a %1 calendar es-es Seleccionar un %1 +select a time calendar es-es seleccionar una hora +select resources calendar es-es Seleccionar recursos +select who should get the alarm calendar es-es Seleccionar quin debe obtener la alarma +set a year only for one-time / non-regular holidays. calendar es-es Establecer un ao para los festivos nicos y no regulares. +set new events to private calendar es-es Poner los eventos nuevos como privados +should invitations you rejected still be shown in your calendar ?
you can only accept them later (eg. when your scheduling conflict is removed), if they are still shown in your calendar! calendar es-es Mostrar las invitaciones rechazadas por usted en el calendario?
Puede aceptarlas despus (por ejemplo, cuando elimine el conflicto de calendario), si todava se ven en su calendario. +should new events created as private by default ? calendar es-es Crear nuevos eventos como privados? +should not loged in persons be able to see your freebusy information? you can set an extra password, different from your normal password, to protect this informations. the freebusy information is in ical format and only include the times when you are busy. it does not include the event-name, description or locations. the url to your freebusy information is %1. calendar es-es Deben ver las personas que no inicien sesin la informacin de ocupacin? Se puede poner una contrasea extra, distinta a la normal, para proteger esta informacin. La informacin de ocupacin est en formato iCal y slo incluye las horas en las que est ocupado. No incluye el nombre del evento, descripcin o sitios. La URL para su informacin de ocupacin es %1. +should the status of the event-participants (accept, reject, ...) be shown in brakets after each participants name ? calendar es-es Mostrar el estado de cada evento (aceptar, rechazar, etc) entre corchetes detrs del nombre de cada participante? +show default view on main screen calendar es-es Mostrar la vista predeterminada en la pantalla principal +show invitations you rejected calendar es-es Mostar invitaciones rechazadas por usted +show list of upcoming events calendar es-es Mostrar la lista de eventos prximos +show this month calendar es-es Mostrar este mes +show this week calendar es-es Mostrar esta semana +single event calendar es-es evento simple +site configuration calendar es-es configuracin del sitio +start calendar es-es Inicio +start date/time calendar es-es Fecha/Hora inicio +startdate / -time calendar es-es Fecha de incio / -hora +startdate and -time of the search calendar es-es Fecha de inicio y -hora de la bsqueda +startdate of the export calendar es-es Fecha de inicio de la exportacin +startrecord calendar es-es Registro inicial +status changed calendar es-es Estado modificado +submit to repository calendar es-es Enviar al repositorio +sun calendar es-es Dom +tentative calendar es-es Provisional +test import (show importable records only in browser) calendar es-es Probar Importar (mostrar solamente registros importables en el navegador) +this day is shown as first day in the week or month view. calendar es-es Este da se mostrar como el primer da en las vistas de semana o de mes. +this defines the end of your dayview. events after this time, are shown below the dayview. calendar es-es Esto define el final de la vista del da Los eventos posteriores a esta hora se muestran debajo de la vista del da. +this defines the start of your dayview. events before this time, are shown above the dayview.
this time is also used as a default starttime for new events. calendar es-es Esto define el inicio de la vista del da. Los eventos anteriores a esta hora se muestran encima de la vista del da.
Esta hora se usa tambin como hora predeterminada para nuevos eventos. +this group that is preselected when you enter the planner. you can change it in the planner anytime you want. calendar es-es Este grupo es el predeterminado al entrar en el planificador. Puede cambiarlo en el planificador cuando quiera. +this message is sent for canceled or deleted events. calendar es-es Este mensaje se enva cuando un evento se borra o se cancela. +this message is sent for modified or moved events. calendar es-es Este mensaje se enva al modificar o mover eventos. +this message is sent to disinvited participants. calendar es-es Este mensaje se enva a los participantes que dejan de estar invitados +this message is sent to every participant of events you own, who has requested notifcations about new events.
you can use certain variables which get substituted with the data of the event. the first line is the subject of the email. calendar es-es Este mensaje se enva a cada participante de los eventos de los que usted es el dueo, quien ha solicitado notificaciones sobre nuevos eventos.
Puede usar ciertas variables a las que sustituyen los datos del evento. La primera lnea es el asunto del correo electrnico. +this message is sent when you accept, tentative accept or reject an event. calendar es-es Este mensaje se enva cuando acepta, acepta temporalmente o rechaza un evento. +this message is sent when you set an alarm for a certain event. include all information you might need. calendar es-es Este mensaje se enva cuando pone una alarma para un evento concreto. Incluya toda la informacin necesaria. +three month calendar es-es tres meses +thu calendar es-es Jue +til calendar es-es hasta +timeframe calendar es-es Margen de tiempo +timeframe to search calendar es-es Margen de tiempo para buscar +title of the event calendar es-es Ttulo del evento +to many might exceed your execution-time-limit calendar es-es lmite de ejecucin +translation calendar es-es Traduccin +tue calendar es-es Mar +two weeks calendar es-es dos semanas +updated calendar es-es Actualizado +use end date calendar es-es Usar fecha final +use the selected time and close the popup calendar es-es usar la hora seleccionada y cerrar la ventana +view this event calendar es-es Ver este evento +wed calendar es-es Mi +week calendar es-es Semana +weekday starts on calendar es-es La semana empieza en +weekdays calendar es-es Das laborales +weekdays to use in search calendar es-es Das laborales a usar en la bsqueda +weekly calendar es-es Semanal +weekview calendar es-es Vista semanal +weekview with weekend calendar es-es vista semanal con fin de semana +weekview without weekend calendar es-es Vista semanal sin fin de semana +which events do you want to see when you enter the calendar. calendar es-es Qu eventos quiere ver al entrar al calendario? +which of calendar view do you want to see, when you start calendar ? calendar es-es Qu vista del calendario quiere ver cuando entra al calendario? +whole day calendar es-es todo el da +wk calendar es-es Semana +work day ends on calendar es-es Los das laborables acaban en +work day starts on calendar es-es Los das laborables empiezan en +yearly calendar es-es Anual +yearview calendar es-es Vista anual +you can either set a year or a occurence, not both !!! calendar es-es Puede poner un ao o una ocurrencia, pero no ambos. +you can only set a year or a occurence !!! calendar es-es Slo puede poner un ao o una ocurrencia +you do not have permission to read this record! calendar es-es No tiene permiso para leer este registro! +you have a meeting scheduled for %1 calendar es-es Ud. tiene una reunin programada para %1 +you have been disinvited from the meeting at %1 calendar es-es Ha dejado de estar invitado a la reunin de %1 +you need to select an ical file first calendar es-es Necesita seleccionar antes un fichero iCal +you need to set either a day or a occurence !!! calendar es-es Debe indicar un da o una ocurrencia +your meeting scheduled for %1 has been canceled calendar es-es Su reunin programada para %1 ha sido cancelada +your meeting that had been scheduled for %1 has been rescheduled to %2 calendar es-es Su reunin programada para %1 ha sido reprogramada para %2 +h calendar es-es h diff --git a/calendar/setup/phpgw_eu.lang b/calendar/setup/phpgw_eu.lang new file mode 100644 index 0000000000..832db3165a --- /dev/null +++ b/calendar/setup/phpgw_eu.lang @@ -0,0 +1,270 @@ +%1 %2 in %3 calendar eu %1 %2 %3an +%1 records imported calendar eu %1 errenkada inportatuta +%1 records read (not yet imported, you may go back and uncheck test import) calendar eu %1 errenkadak irakurriak (oraindik inportatu gabe ordea. Inportatu nahi izanez gero bueltatu atzera eta "inportazio testa" aukera kendu) +accept or reject an invitation calendar eu Gonbidapena onartu edo ezetsi +accepted calendar eu Onartuta +access denied to the calendar of %1 !!! calendar eu %1ti egutegira sarrera ukatu! +action that caused the notify: added, canceled, accepted, rejected, ... calendar eu Abisua eragin duen ekintza: gehitua, ezeztatuta, onartua, ukatua... +actions calendar eu Ekintzak +add alarm calendar eu Alarma gehitu +added calendar eu Gehitua +after current date calendar eu Momentuko data ondoren +alarm calendar eu Alarma +alarm added calendar eu Alarma gehitua +alarm deleted calendar eu Alarma ezabatua +alarm for %1 at %2 in %3 calendar eu Alarma %1 entzat %2 (lekua: %3) +alarm management calendar eu Alarmen kudeaketa +alarms calendar eu Alarmak +all categories calendar eu Kategoria guztiak +all day calendar eu Egun guztian +all events calendar eu Gertakari guztiak +all participants calendar eu Patehartzaile guztiak +allows to edit the event again calendar eu Gertakaria berriz ere aldatzen uzten du +apply the changes calendar eu aldaketak aplikatu +are you sure you want to delete this country ? calendar eu Ziur herrialde hau borratu nahi duzula? +are you sure you want to delete this holiday ? calendar eu Ziur jai hauek borratu nahi dituzula? +back half a month calendar eu hilabete erdia atzeratu +back one month calendar eu hilabete atzeratu +before current date calendar eu Momentuko data aurretik +before the event calendar eu gertakariaren aurretik +birthday calendar eu Urtebetetzeak +busy calendar eu lanpetua +calendar event calendar eu Egutegiko gertakaria +calendar holiday management admin eu Jai egunen kudeaketa +calendar menu calendar eu Egutegiko menua +calendar preferences calendar eu Egutegiko hobespenak +calendar settings admin eu Lehentasunak egutegian +calendar-fieldname calendar eu Egutegia-Eremuaren izena +can't add alarms in the past !!! calendar eu Alarmak ezin dira iraganean gehitu! +canceled calendar eu Ezeztatu +charset of file calendar eu Fitxategiko karaktere jokoa +close the window calendar eu Itxi leihoa +copy of: calendar eu Honen kopia: +copy this event calendar eu Gertakari hau kopiatu +countries calendar eu Herrialdeak +country calendar eu Herrialdea +create an exception at this recuring event calendar eu Salbuespen bat sortu gertakari honetan +create new links calendar eu Lortura berriak sortu +csv calendar eu CSV +csv-fieldname calendar eu CSV-Fitxategiaren izena +csv-filename calendar eu CSV-Fitxategiaren izena +custom fields common eu Eremu pertsonalizatua +daily calendar eu Egunerokoa +days calendar eu egunak +days repeated calendar eu errepikatutako egunak +dayview calendar eu Egunaren ikuspegia +default appointment length (in minutes) calendar eu bileren luzera lehenetsia (minututan) +default calendar filter calendar eu Egutegiko iragazki lehenetsia +default calendar view calendar eu Egutegia aurkezteko modu lehenetsia +default length of newly created events. the length is in minutes, eg. 60 for 1 hour. calendar eu Gertaera berri bat sortzean duen iraupen lehenetsia (minututan). +default week view calendar eu Asteko ikuspegia lehenetsita +defines the size in minutes of the lines in the day view. calendar eu Eguneko ikuspegian errenkadak izango duten luzera minututan. +delete series calendar eu Serieak ezabatu +delete this alarm calendar eu Alarma hau ezabatu +delete this event calendar eu Gertakari hau ezabatu +delete this exception calendar eu Salbuespen hau ezabatu +delete this series of recuring events calendar eu Gertakari serie hau ezabatu +disinvited calendar eu Ez zaude gonbidatuta +display status of events calendar eu Gertakarien egoera erakutsi +displayed view calendar eu Ikuspegia erakutsita +download calendar eu Deskargatu +download this event as ical calendar eu Gertakari hau deskargatu Cal moduan +duration of the meeting calendar eu Bileraren iraupena +edit exception calendar eu Salbuespena editatu +edit series calendar eu Serieak editatu +edit this event calendar eu Gertaera hau editatu +edit this series of recuring events calendar eu Gertakari serie hau editatu +empty for all calendar eu Hutsik guztientzako +end calendar eu Bukaera +end date/time calendar eu Bukaera data/ordua +enddate calendar eu Bukaera data +enddate of the export calendar eu Esportazioaren amaiera data +ends calendar eu Bukaera +error adding the alarm calendar eu Errorea alarma gehitzean +error: importing the ical calendar eu Errorea: Cal fitxategia inportatzerakoan +error: no participants selected !!! calendar eu Errorea: ez duzu partehartzailerik aukeratu +error: saving the event !!! calendar eu Errorea: gertakaria gordetzerakoan +error: starttime has to be before the endtime !!! calendar eu Errorea: hasiera ordua amaiera ordua baina lehenago izan behar da +event copied - the copy can now be edited calendar eu Gertakaria kopiatuta - orain kopia editatu daiteke +event deleted calendar eu Gertakaria ezabatuta +event details follow calendar eu Gertakariaren detaileak +event saved calendar eu Gertaera gordeta +event will occupy the whole day calendar eu Gertakariak egun osoa hartuko du +exception calendar eu Salbuespena +exceptions calendar eu Salbuespenak +existing links calendar eu Loturak existitzen dira +export calendar eu Esportatu +extended calendar eu Luzatua +fieldseparator calendar eu Eremu banatzailea +filename calendar eu Fitxategiaren izena +filename of the download calendar eu Deskargatu den fitxategiaren izena +firstname of person to notify calendar eu Abisua eman behar zaion pertsonaren izena +format of event updates calendar eu Gertakarien eguneratze formatua +forward half a month calendar eu hilabete erdia aurreratu +forward one month calendar eu hilabete bat aurreratu +freetime search calendar eu Denbora librean bilatu +fri calendar eu Ostirala +full description calendar eu Deskribapen osatua +fullname of person to notify calendar eu Abisua eman behar zaion pertsonaren izena +general calendar eu Orokorra +global public and group public calendar eu Publiko orokorra eta talde publikoa +global public only calendar eu Publiko orokorra soilik +group planner calendar eu Taldeko plangintza +group public only calendar eu Talde publikoa soilik +here is your requested alarm. calendar eu Hemen dago eskatutako alarma +high priority calendar eu Lehentasun handia +holiday calendar eu Jaieguna +holiday management calendar eu Jaiegunen kudeaketa +holidays calendar eu Jaiegunak +hours calendar eu orduak +how far to search (from startdate) calendar eu zenbait bilatu (hasiera datatik) +ical calendar eu Cal +ical / rfc2445 calendar eu Cal / rfc2445 +ical export calendar eu Cal esportatu +ical file calendar eu Cal fitxategia +ical import calendar eu Cal inportatu +ical successful imported calendar eu Cal fitxategia arazorik gabe inportatu da +ignore conflict calendar eu Gatazka alde batera utzi +import calendar eu Inportatu +import csv-file calendar eu Inportatu CSV fitxategia +interval calendar eu Tartea +intervals in day view calendar eu Egunaren ikuspegiko tarteak +invalid email-address "%1" for user %2 calendar eu %1 erabiltzailearen helbide elektronikoa ez da %2 erabiltzailearentzat baliogarria +last calendar eu azkena +lastname of person to notify calendar eu Abisua eman behar zaion pertsonaren abizena +link to view the event calendar eu Lotura gertakaria ikusteko +links calendar eu Loturak +links, attachments calendar eu Loturak, eranskinak +listview calendar eu Zerrenda ikusi +location calendar eu Lekua +location to autoload from admin eu Automatikoki kargatzeko lekua +location, start- and endtimes, ... calendar eu Lekua, hasiera eta amaiera ordua +mail all participants calendar eu Partehartzaile guztiei e-posta bat bidali +minutes calendar eu minutuak +modified calendar eu Aldatua +mon calendar eu Astelehena +monthly calendar eu Hilabetero +monthly (by date) calendar eu Hilerokoa (dataren arabera) +monthly (by day) calendar eu Hilerokoa (egunaren arabera) +monthview calendar eu Hilabeteko ikuspegia +new search with the above parameters calendar eu bilaketa berria goiko parametroak erabiliz +no events found calendar eu Ez da gertakaririk aurkitu +no filter calendar eu Iragazkirik gabe +no matches found calendar eu Ez dira baterakidetasunik aurkitu +no response calendar eu Ez du erantzuten +non blocking calendar eu ez du blokeatzen +notification messages for added events calendar eu Abisu mezuak gehitzen diren gertaeretan +notification messages for canceled events calendar eu Abisu mezuak ezeztatzen diren gertaeretan +notification messages for disinvited participants calendar eu Abisu mezuak partehartzaileak ez gonbidatzeko +notification messages for modified events calendar eu Abisu mezuak aldatzen diren gertaeretan +notification messages for your alarms calendar eu Abisu mezua alarmentzako +notification messages for your responses calendar eu Abisu mezua erantzunentzako +number of records to read (%1) calendar eu Irakurtzeko egiteko kopurua (%1) +observance rule calendar eu Behaketa erregela +occurence calendar eu Ateraldia +old startdate calendar eu Antzinako hasiera data +on %1 %2 %3 your meeting request for %4 calendar eu %1 %2 %3 bilaera eskaera %4entzako +on all modification, but responses calendar eu Aldaketa guztietan erantzunetan izan ezik +on any time change too calendar eu edozein ordu aldaketan baita ere +on invitation / cancelation only calendar eu gobidapen edo ezeztapenetan bakarrik +on participant responses too calendar eu partehartzaileen erantzunetan baita ere +on time change of more than 4 hours too calendar eu 4 orduko ordu aldaketa batean baita ere +one month calendar eu hilabete bat +one week calendar eu aste bat +one year calendar eu urte bat +only the initial date of that recuring event is checked! calendar eu Hasiera data bakarrik dago markatuta gertakarian! +open todo's: calendar eu ireki egitekoen zerrenda: +overlap holiday calendar eu jaiegunak gainjarri +participants calendar eu Partehartzaileak +participants disinvited from an event calendar eu Gertakari bateko gonbidapena kentzen zaien pratehartzaileak +participants, resources, ... calendar eu Partehartzaileak, baliabideak... +people holiday calendar eu jendearentzako jaieguna +permission denied calendar eu Baimena ukatua +planner by category calendar eu Kategorika planifikatu +planner by user calendar eu Erabiltzaileka planifikatu +preselected group for entering the planner calendar eu Aurre aukeratu taldea planifikatzailean sartzeko +previous calendar eu aurrekoa +private and global public calendar eu Pribatua eta publiko orokorra +private and group public calendar eu Pribatua eta talde publikoa +private only calendar eu Pribatua bakarrik +re-edit event calendar eu Gertaera berriro editatu +receive email updates calendar eu E-postaren gaurkotzeak jaso +receive summary of appointments calendar eu Ziten laburpenak jaso +recurrence calendar eu Errepikapenak +recurring event calendar eu errepikatzen den gertaera +rejected calendar eu Ukatu +repeat days calendar eu Errepikapen egunak +repeat type calendar eu Errepikapen mota +repeating event information calendar eu Gertakarietan errepikatzen den informazioa +repetition calendar eu Errepikapena +repetitiondetails (or empty) calendar eu Errepikapenaren detaileak (hutsik) +reset calendar eu Berrezarri +resources calendar eu Baliabideak +rule calendar eu Araua +sat calendar eu Larunbata +saves the changes made calendar eu gorde egindako aldaketak +saves the event ignoring the conflict calendar eu Gertakaria gorde gatazka alde batera utziz +scheduling conflict calendar eu Gatazka egutegian +select a %1 calendar eu %1 aukeratu +select a time calendar eu ordu bat aukeratu +select resources calendar eu Baliabideak aukeratu +select who should get the alarm calendar eu Aukeratu nork jaso behar duen alarma +set a year only for one-time / non-regular holidays. calendar eu Urtero errepikatzen ez diren oporretan ez ezarri urterik. +set new events to private calendar eu Gertakari berriak pribatu moduan jarri +should new events created as private by default ? calendar eu Pribatu moduan sortu gertakariak? +show default view on main screen calendar eu Ikuspegi lehenetsia erakutsi pantaila nagusian +show invitations you rejected calendar eu Zuk uko egindako gonbidapenak erakutsi +show list of upcoming events calendar eu Datozen gertakarien zerrenda erakutsi +show this month calendar eu Hilabete hau erakutsi +show this week calendar eu Aste hau erakutsi +single event calendar eu gertakari sinplea +start calendar eu Hasiera +start date/time calendar eu Hasiera data/ordua +startdate / -time calendar eu Hasiera data eta ordua +startdate and -time of the search calendar eu Hasiera data eta bilaketarako ordua +startdate of the export calendar eu Esportatzen hasteko data +startrecord calendar eu Hasierako egitekoa +status changed calendar eu Egoera aldatuta +submit to repository calendar eu Biltegira bidali +sun calendar eu Igandea +tentative calendar eu zalantzan +this message is sent for modified or moved events. calendar eu Mezu hau gertakaria aldatu edo mugitzerakoan bidaliko da. +this message is sent to disinvited participants. calendar eu Mezu hau gonpidatuak egoteari uzten dutenei bidaltzen zaie. +three month calendar eu hiru hilabete +thu calendar eu Osteguna +timeframe calendar eu Denbora marjina +timeframe to search calendar eu Bilaketarako denbora marjina +title of the event calendar eu Gertakariaren izenburua +to many might exceed your execution-time-limit calendar eu egiteko epe muga +translation calendar eu Itzulpena +tue calendar eu Asteartea +two weeks calendar eu bi aste +updated calendar eu Gaurkoatua +use end date calendar eu Amaiera data erabili +use the selected time and close the popup calendar eu aukeratutako ordua erabili ta leihoa itxi +view this event calendar eu Gertakari hau ikusi +wed calendar eu Asteazkena +week calendar eu Astea +weekday starts on calendar eu Astea hasten da +weekdays calendar eu Lan egunak +weekdays to use in search calendar eu Bilaketan erabili beharreko lan egunak +weekly calendar eu Astero +weekview calendar eu Astearen ikuspegia +weekview with weekend calendar eu Asteko ikuspegia asteburuarekin +weekview without weekend calendar eu Asteko ikuspegia astebukaerarik gabe +which events do you want to see when you enter the calendar. calendar eu Zein gertakari nahi dituzu ikusi egutegian sartzerakoan? +which of calendar view do you want to see, when you start calendar ? calendar eu Egutegiko zein ikuspegi nahi duzu ikusi egutegira sartzerakoan? +whole day calendar eu egun osoa +wk calendar eu Astea +work day ends on calendar eu Lan egunak bukatzen dira +work day starts on calendar eu Lan egunak hasten dira +yearly calendar eu Urtero +yearview calendar eu Urtearen ikuspegia +you do not have permission to read this record! calendar eu Ez daukazu baimenik erregistro hau irakurtzeko! +you have a meeting scheduled for %1 calendar eu Bilera bat daukazu %1 programatua +you have been disinvited from the meeting at %1 calendar eu %1en bilerara gobidatua egoteari utzi diozu +you need to select an ical file first calendar eu Lehenago Cal fitxategi bat aukeratu behar duzu +you need to set either a day or a occurence !!! calendar eu Egun bat edo ateraldi bat jarri behar duzu +your meeting scheduled for %1 has been canceled calendar eu %1 programatutako bilera ezeztatu egin da +your meeting that had been scheduled for %1 has been rescheduled to %2 calendar eu %1 programatutako bilera %2 programatu da +h calendar eu h diff --git a/calendar/setup/phpgw_hu.lang b/calendar/setup/phpgw_hu.lang new file mode 100644 index 0000000000..992b58bf0c --- /dev/null +++ b/calendar/setup/phpgw_hu.lang @@ -0,0 +1,236 @@ +%1 %2 in %3 calendar hu %1 %2 a %3-ban +%1 records imported calendar hu %1 bejegyzs importlva +%1 records read (not yet imported, you may go back and uncheck test import) calendar hu %1 bejegyzs beolvasva (importls nem trtnt, az elz lpsben a Test Import kikapcsolsa utn lesben trtnik a beolvass) +accept or reject an invitation calendar hu Elfogad vagy elutast egy meghvst +accepted calendar hu Elfogadva +action that caused the notify: added, canceled, accepted, rejected, ... calendar hu rtests a kvektezk miatt: Hozzadva, Mgsem, Elfogadva, Elutastva, ... +actions calendar hu Mveletek +add alarm calendar hu Riaszts hozzadsa +added calendar hu Hozzadva +after current date calendar hu Aktulis dtum utn +alarm calendar hu Riaszts +alarm added calendar hu Riaszts hozzadva +alarm deleted calendar hu Riaszts trlve +alarm for %1 at %2 in %3 calendar hu Riaszts %1-nek %2-nl %3-ban +alarm management calendar hu Riaszts kezels +alarms calendar hu Riasztsok +all categories calendar hu sszes kategria +all day calendar hu egsz nap +all events calendar hu sszes esemny +all participants calendar hu sszes rsztvev +allows to edit the event again calendar hu Esemny szerkesztsre megnyitsnak engedlyezse +apply the changes calendar hu Vltozsok elfogadsa +are you sure you want to delete this country ? calendar hu Biztosan trlni kvnja ezt az orszgot? +are you sure you want to delete this holiday ? calendar hu Biztosan trlni kvnja ezt a szabadsgot? +back half a month calendar hu fl hnapot vissza +back one month calendar hu egy hnapot vissza +before current date calendar hu aktulis dtum eltt +before the event calendar hu esemny eltt +birthday calendar hu Szletsnap +busy calendar hu elfoglalt +by calendar hu by +calendar event calendar hu Naptr Esemny +calendar holiday management admin hu Naptr Szabadsg Kezel +calendar preferences calendar hu Naptr tulajdonsgok +calendar settings admin hu Naptr Belltsok +calendar-fieldname calendar hu Naptr-Meznv +can't add alarms in the past !!! calendar hu A mltban riasztst nem lehet ltrehozni! +canceled calendar hu Trlve +charset of file calendar hu llomny karakterkszlete +close the window calendar hu Ablak bezrs +copy this event calendar hu Esemny msolsa +countries calendar hu Orszgok +country calendar hu Orszg +create an exception at this recuring event calendar hu Kivtel ltrehozsa ismtld esemny hez +create new links calendar hu j hivatkozsok ltrehozsa +csv calendar hu CSV +csv-fieldname calendar hu CSV-Meznv +csv-filename calendar hu CSV-Fjlnv +custom fields common hu Egyedi Mezk +daily calendar hu Naponta +days calendar hu napok +days repeated calendar hu napon ismtldik +dayview calendar hu Napi nzet +default appointment length (in minutes) calendar hu alaprtelmezett megbeszls hossz (percben) +default calendar filter calendar hu Alaprtelmezett naptr szr +default calendar view calendar hu Alaprtelmezett naptr nzet +default length of newly created events. the length is in minutes, eg. 60 for 1 hour. calendar hu Az jonnan ltrehozott esemnyek alaprtelmezett hossza. Ez percben van megadva, pl. 60 az egy rnak. +default week view calendar hu alaprtelmezett ht nzet +defines the size in minutes of the lines in the day view. calendar hu A sorok mrete percben a napi nzetben. +delete series calendar hu Sorozat trlse +delete this alarm calendar hu Riaszts trlse +delete this event calendar hu Esemny trlse +delete this exception calendar hu Kivtel trlse +delete this series of recuring events calendar hu Ismtld esemny sorozatnak trlse +disinvited calendar hu Nem meghvott +display status of events calendar hu Esemnyek sttusznak megjelentse +displays your default calendar view on the startpage (page you get when you enter egroupware or click on the homepage icon)? calendar hu Alaprtelmezett naptr nzet kijelzse a kezd lapon (a lap amit kapsz az eGroupWare belpsnl vagy a kezdlap ikonra kattintskor)? +do you want to be notified about new or changed appointments? you be notified about changes you make yourself.
you can limit the notifications to certain changes only. each item includes all the notification listed above it. all modifications include changes of title, description, participants, but no participant responses. if the owner of an event requested any notifcations, he will always get the participant responses like acceptions and rejections too. calendar hu Szeretnl kapni rtestst az j vagy megvltozott tallkozkrl? rtestve leszel arrl amit vltoztattl.
Klnbz vltozsoknl bellthatod az rtestseket. Az rtestsi listn minden szerepel. Minden mdosts tartalmazza a vltozs cmt, lerst, rsztvevket, de a rsztvevk vlaszait nem. Ha az esemny tulajdonosa kr valamilyen rtestst, mindg megkapja a rsztvev vlaszt hogy elfogadtk vagy elutastottk. +do you want to receive a regulary summary of your appointsments via email?
the summary is sent to your standard email-address on the morning of that day or on monday for weekly summarys.
it is only sent when you have any appointments on that day or week. calendar hu Akarsz kapni egyszer sszestst a Te tallkozidrl emailben?
Az sszest az email cmedre lesz kldve aznap reggel vagy htfn a heti sszests.
Csak akkor lesz elkldve amikor neked van tallkozd azon a napon vagy hten. +do you wish to autoload calendar holidays files dynamically? admin hu Akarod dinamikusan betlteni a naptr szabadsg llomnyait. +download calendar hu Letlt +duration of the meeting calendar hu Megbeszls hossza +edit exception calendar hu Kivtel szerkesztse +edit series calendar hu Sorozat szerkesztse +edit this event calendar hu Esemny szerkesztse +empty for all calendar hu minden rtse +end calendar hu Befejezs +end date/time calendar hu Befejezs dtuma/ideje +enddate calendar hu Befejezsi dtum +ends calendar hu vge +event details follow calendar hu Esemny jellemzinek kvetse +exceptions calendar hu Kivtelek +export calendar hu Export +extended calendar hu Kibvtett +extended updates always include the complete event-details. ical's can be imported by certain other calendar-applications. calendar hu Kibvtett frisstsek mindg tartalmazzk a komplett esemny-jellemzket. +fieldseparator calendar hu Mez elvlaszt +filename calendar hu llomny nv +firstname of person to notify calendar hu A szemly keresztneve az rtestshez +format of event updates calendar hu Esemny frissts formja +forward half a month calendar hu fl hnappal ksbb +forward one month calendar hu egy hnappal ksbb +freetime search calendar hu Szabadid keress +fri calendar hu P +full description calendar hu Teljes lers +fullname of person to notify calendar hu A szemly teljes neve az rtestshez +general calendar hu ltalnos +global public and group public calendar hu Globlis publiskus s csoport publikus +global public only calendar hu Csak globlis publikus +group planner calendar hu Csoport tervezet +group public only calendar hu Csak csoport publikus +here is your requested alarm. calendar hu Itt van a krt riasztsod. +high priority calendar hu magas priorits +holiday calendar hu Szabadsg +holiday management calendar hu Szabadsg Kezels +holidays calendar hu Szabadsgok +hours calendar hu rk +ical calendar hu iCal +ical / rfc2445 calendar hu iCal / rfc2445 +ical export calendar hu iCal export +ical file calendar hu iCal llomny +ical import calendar hu iCal import +ical successful imported calendar hu iCal sikeresen importlva +ignore conflict calendar hu tfeds figyelmen kivl hagysa +import calendar hu Import +import csv-file calendar hu CSV-llomny Import +interval calendar hu Idtartam +intervals in day view calendar hu Idtartamok a napi nzetben +last calendar hu utols +lastname of person to notify calendar hu A szemly vezetk neve +links calendar hu Hivatkozsok +links, attachments calendar hu Hivatkozsok, mellkletek +listview calendar hu listanzet +location calendar hu Helyszn +location to autoload from admin hu Automatikus betlts helye +minutes calendar hu perc +modified calendar hu Mdostott +mon calendar hu H +monthly calendar hu Havonta +monthly (by date) calendar hu Havonta (dtum szerint) +monthly (by day) calendar hu Havonta (naponta) +monthview calendar hu Havi Nzet +no events found calendar hu Esemny nem tallhat +no filter calendar hu Szr nlkl +no matches found calendar hu Egyezs nem tallhat +no response calendar hu Nincs vlasz +notification messages for added events calendar hu rtestsi zenet a hozzadott esemnyekhez +notification messages for canceled events calendar hu rtestsi zenet a megszaktott esemnyekhez +notification messages for modified events calendar hu rtestsi zenet a mdostott esemnyekhez +notification messages for your alarms calendar hu rtestsi zenet a Te riasztsaidhoz +notification messages for your responses calendar hu rtestsi zenet a Te vlaszaidhoz +number of records to read (%1) calendar hu Az olvasott bejegyzsek szma (%1) +observance rule calendar hu Elrs szablya +occurence calendar hu Esemny +old startdate calendar hu Rgi Kezdsi Dtum +on %1 %2 %3 your meeting request for %4 calendar hu %1 %2 %3-on a Te tallkoz krsed %4-el +on all modification, but responses calendar hu minden mdosts, de vlaszok +on any time change too calendar hu brmikor vltiz szintn +on invitation / cancelation only calendar hu meghvs / megszakts csupn +on participant responses too calendar hu rsztvev vlaszai szintn +on time change of more than 4 hours too calendar hu tbb mint 4 ra id vltozs szintn +one month calendar hu egy hnap +one week calendar hu egy ht +one year calendar hu egy v +open todo's: calendar hu Tennivalk Megnyitsa: +overlap holiday calendar hu szabadsg tfeds +participants calendar hu Rsztvevk +people holiday calendar hu emberek szabadsga +permission denied calendar hu Engedly tiltott +planner by category calendar hu Tervez kategria szerint +planner by user calendar hu Tervez felhasznl szerint +preselected group for entering the planner calendar hu Elre kivlasztott csoport a tervezbe lpshez +previous calendar hu elz +private and global public calendar hu Szemlyes s globlis publikus +private and group public calendar hu Szemlyes s csoport publikus +private only calendar hu Csak szemlyes +re-edit event calendar hu Esemny mdostsa +receive email updates calendar hu Email frisstsek fogadsa +receive summary of appointments calendar hu Tallkozk sszestjnek fogadsa +recurrence calendar hu Ismtlds +recurring event calendar hu ismtld esemny +rejected calendar hu Elutastott +repeat type calendar hu Ismtlds tpusa +repeating event information calendar hu Ismtld esemny informci +repetition calendar hu Ismtlds +repetitiondetails (or empty) calendar hu Ismtlds jellemzk (vagy res) +reset calendar hu Alaphelyzet +resources calendar hu Erforrsok +rule calendar hu Szably +sat calendar hu Sz +saves the changes made calendar hu Vltozsok elmentse +scheduling conflict calendar hu temezsi konfliktus +select resources calendar hu Erforrsok vlasztsa +set a year only for one-time / non-regular holidays. calendar hu llts be egy vet csupn / nem szablyos szabadsgok. +set new events to private calendar hu j magn esemnyek megadsa +should invitations you rejected still be shown in your calendar ?
you can only accept them later (eg. when your scheduling conflict is removed), if they are still shown in your calendar! calendar hu Lehet mutatni az elutastott meghvsokat a naptrban?
Akkor tudod ksbb ezeket elfogadni (pl. amikor megoldod az temezsi problmkat), ha ezek mutatva vannak a naptradban! +should new events created as private by default ? calendar hu Ltre lehet hozni az esemnyeket mint magn alaprtelmezsben? +should the status of the event-participants (accept, reject, ...) be shown in brakets after each participants name ? calendar hu Az esemny rsztvevk sttusza (elfogad, elutast, ...) megjelenthet minden rsztvev neve utn? +show default view on main screen calendar hu Alaprtelmezett nzet megjelentse a f kpernyn +show invitations you rejected calendar hu Mutassa az elutastott meghvsokat +show list of upcoming events calendar hu A bejv esemnyek listjnak mutatsa +show this month calendar hu hnap mutatsa +show this week calendar hu ht mutatsa +single event calendar hu Egyedi esemny +start calendar hu Kezds +start date/time calendar hu Kezdet dtuma/ideje +startrecord calendar hu Kezd bejegyzs +submit to repository calendar hu Bizalmashoz tovbts +sun calendar hu V +tentative calendar hu Prba +test import (show importable records only in browser) calendar hu Import tesztelse (csupn a nem beolvashat bejegyzsek mutatsa a bngszben) +this day is shown as first day in the week or month view. calendar hu Ez a nap lesz az els nap a heti vagy havi nzetben. +this defines the end of your dayview. events after this time, are shown below the dayview. calendar hu Ez belltja a napi nzet vgt. Az ez utni esemnyek lejjebb vannak mutatva a napi nzetben. +this defines the start of your dayview. events before this time, are shown above the dayview.
this time is also used as a default starttime for new events. calendar hu Ez belltja a napi nzet kezdett. Az ez eltti esemnyek feljebb vannak mutatva a napi nzetben. Ezt az idt hasznljuk szintn mint az alaprtelmezett kezsi idt az j esemnyekhez. +this group that is preselected when you enter the planner. you can change it in the planner anytime you want. calendar hu Ez a csoport ami ki van vlasztva amikor belpsz a tervezbe. A tervezben brmikor meg tudod vltoztatni. +this message is sent for canceled or deleted events. calendar hu Ez az zenet akkor lesz elkldve amikor megszattasz vagy trlsz egy esemnyt. +this message is sent for modified or moved events. calendar hu Ez az zenet akkor lesz elkldve amikor mdistasz vagy mozgatsz egy esemnyt. +this message is sent to every participant of events you own, who has requested notifcations about new events.
you can use certain variables which get substituted with the data of the event. the first line is the subject of the email. calendar hu Ez az zenet akkor lesz elkldve a Te esemnyed minden rsztvevnek, akiknek van krt rtests egy j esemnyrl. Klnbz vltozkat hasznlhasz amik helyettestve vannak az esemny adatval. Az els sor az email trgya. +this message is sent when you accept, tentative accept or reject an event. calendar hu Ez az zenet akkor lesz elkldve amikor elfogadsz, prbaknt elfogadsz, vagy elutastasz egy esemnyt. +this message is sent when you set an alarm for a certain event. include all information you might need. calendar hu Ez az zenet akkor lesz elkldve amikor belltasz egy riasztst egy bizonyos esemnyhez. +three month calendar hu hrom hnap +thu calendar hu Cs +title of the event calendar hu Esemny cme +to many might exceed your execution-time-limit calendar hu elrted a futtatsi-id-hatrt +translation calendar hu Fordts +tue calendar hu K +two weeks calendar hu kt ht +updated calendar hu Frisstve +use end date calendar hu Vgs? dtumot hasznlja +wed calendar hu Sz +week calendar hu Ht +weekday starts on calendar hu Htkznap kezdete +weekly calendar hu Hetente +weekview calendar hu Heti Nzet +which events do you want to see when you enter the calendar. calendar hu Amelyik esemnyeket ltni akarod amikor belpsz a naptrba. +which of calendar view do you want to see, when you start calendar ? calendar hu Melyik naptr nzetet akarod ltni amikor elindtod a naptrat? +whole day calendar hu egsz nap +wk calendar hu ht +work day ends on calendar hu Munkanapok vge +work day starts on calendar hu Munkanapok kezdete +yearly calendar hu vente +yearview calendar hu ves Nzet +you can either set a year or a occurence, not both !!! calendar hu Tudsz lltani egy vet vagy egy Esemnyt, de nem mindkettt!!! +you can only set a year or a occurence !!! calendar hu Tudsz lltani csupn egy vet vagy egy esemny!!! +you do not have permission to read this record! calendar hu Neked nincs jogosultsgod olvasni ezt a bejegyzst! +you have a meeting scheduled for %1 calendar hu Neked van egy temezett tallkozd %1-el! +h calendar hu ra diff --git a/calendar/setup/phpgw_it.lang b/calendar/setup/phpgw_it.lang new file mode 100644 index 0000000000..e2dc79a86e --- /dev/null +++ b/calendar/setup/phpgw_it.lang @@ -0,0 +1,304 @@ +%1 %2 in %3 calendar it %1 %2 in %3 +%1 records imported calendar it %1 record importato/i +%1 records read (not yet imported, you may go back and uncheck test import) calendar it %1 record letto/i (non ancora importato/i, torna indietro e deseleziona Test Import) +please note: the calendar use the holidays of your country, which is set to %1. you can change it in your %2.
holidays are %3 automatic installed from %4. you can changed it in %5. calendar it Attenzione: l'agenda usa le festivit della tua nazione, che impostata a %1. Puoi cambiarla in %2.
Le festivit sono %3 automaticamente installate da %4. Puoi cambiarle in %5. +a non blocking event will not conflict with other events calendar it Un evento non bloccante non sar in conflitto con altri eventi +accept or reject an invitation calendar it Accetta o o rifiuta un invito +accepted calendar it Accettato +action that caused the notify: added, canceled, accepted, rejected, ... calendar it Azione che ha causato la notifica: Aggiunto, Cancellato, Accettato, Rifiutato, ... +actions calendar it Azioni +add alarm calendar it Aggiungi Allarme +added calendar it Aggiunto +after current date calendar it Dopo la data attuale +alarm calendar it Sveglia +alarm added calendar it Sveglia aggiunta +alarm deleted calendar it Sveglia cancellata +alarm for %1 at %2 in %3 calendar it Allarme per %1 a %2 in %3 +alarm management calendar it Gestione Allarmi +alarms calendar it Allarmi +all categories calendar it Tutte le categorie +all day calendar it Tutto il giorno +all events calendar it Tutti gli eventi +all participants calendar it Tutti i partecipanti +allows to edit the event again calendar it Permette di modificare ancora l'evento +apply the changes calendar it apllica le modifiche +are you sure you want to delete this country ? calendar it Confermi la cancellazione di questa Nazione ? +are you sure you want to delete this holiday ? calendar it Sei sicuro di voler cancellare questa festivit ? +back half a month calendar it indietro met mese +back one month calendar it indietro un mese +before current date calendar it Prima della data attuale +before the event calendar it prima dell'evento +birthday calendar it Compleanno +busy calendar it occupato +by calendar it da +calendar event calendar it Evento in Agenda +calendar holiday management admin it Gestione Festivit Agenda +calendar preferences calendar it Preferenze Agenda +calendar settings admin it Impostazioni Agenda +calendar-fieldname calendar it Campi-Agenda +can't add alarms in the past !!! calendar it Non si pu aggiungere sveglie nel passato !!! +canceled calendar it Cancellato +charset of file calendar it Charset del file +close the window calendar it Chiudi la finestra +compose a mail to all participants after the event is saved calendar it componi una email per tutti i partecipanti dopo che l'evento stato salvato +copy of: calendar it Copia di: +copy this event calendar it Copia questo evento +countries calendar it Nazioni +country calendar it Nazione +create an exception at this recuring event calendar it Crea un'eccezione a questo evento ricorrente +create new links calendar it Crea nuovi collegamenti +csv calendar it CSV +csv-fieldname calendar it Campi-CSV +csv-filename calendar it Nomefile-CSV +custom fields common it Personalizza i Campi +daily calendar it Giornaliero +days calendar it giorni +days of the week for a weekly repeated event calendar it Giorni della settimana per un evento con ricorrenza settimanale +days repeated calendar it giorni ripetuti +dayview calendar it Vista Giornaliera +default appointment length (in minutes) calendar it lunghezza predefinita degli appuntamenti (in minuti) +default calendar filter calendar it Filtro agenda predefinito +default calendar view calendar it Vista agenda predefinita +default length of newly created events. the length is in minutes, eg. 60 for 1 hour. calendar it Lunghezza predefinita dei nuovi eventi. La lunghezza in minuti, es. 60 per 1 ora. +default week view calendar it Vista settimanale predefinita +defines the size in minutes of the lines in the day view. calendar it Definisci la lunghezza in minuti delle linee nella vista giornaliera. +delete series calendar it Cancella serie +delete this alarm calendar it Cancella questa sveglia +delete this event calendar it Cancella questo evento +delete this exception calendar it Cancella questa eccezione +delete this series of recuring events calendar it Cancella questa serie di eventi ricorrenti +disinvited calendar it Disinvitato +display status of events calendar it Visualizza lo stato per gli Eventi +displays your default calendar view on the startpage (page you get when you enter egroupware or click on the homepage icon)? calendar it Visualizzare la tua vista agenda predefinita sulla pagina iniziale (la pagina che appare quando entri in eGroupWare o clicchi sull'icona HOME) ? +do you want a weekview with or without weekend? calendar it Vuoi una vista settimanale con o senza weekend? +do you want to be notified about new or changed appointments? you be notified about changes you make yourself.
you can limit the notifications to certain changes only. each item includes all the notification listed above it. all modifications include changes of title, description, participants, but no participant responses. if the owner of an event requested any notifcations, he will always get the participant responses like acceptions and rejections too. calendar it Vuoi una notifica per i nuovi appuntamenti o per quelli cambiati? Sarai avvertito dei cambiamenti da te effettuati.
Puoi limitare la notifica su alcuni cambiamenti. TUTTE LE VOCI include tutte le notifiche elencate sopra di esso. TUTTE LE MODIFICHE include il cambiamento del titolo, della descrizione, dei partecipanti, ma non delle risposte dei partecipanti. Se il creatore dell'evento richiede ogni notifica, avr sempre le risposte dei partecipanti sia gli accetti che i rifiuti. +do you want to receive a regulary summary of your appointsments via email?
the summary is sent to your standard email-address on the morning of that day or on monday for weekly summarys.
it is only sent when you have any appointments on that day or week. calendar it Vuoi ricevere regolarmente il resoconto dei tuoi appuntamenti via e-mail?
Il resoconto sar mandato al tuo indirizzo e-mail standard ogni mattina o ogni Luned per il resoconto settimanale.
Sar mandato solo se avrai un appuntamento per quel giorno o per quella settimana. +do you wish to autoload calendar holidays files dynamically? admin it Vuoi caricare automaticamente nell'agenda i file con l'elenco delle festivit? +download calendar it Download +download this event as ical calendar it Scarica questo evento come iCal +duration of the meeting calendar it Durata della riunione +edit exception calendar it Modifica eccezione +edit series calendar it Modifica Serie +edit this event calendar it Modifica questo evento +edit this series of recuring events calendar it Modifica questa serie di eventi ricorrenti +empty for all calendar it vuoto per tutti +end calendar it Fine +end date/time calendar it Data/Ora finale +enddate calendar it Data-finale +enddate / -time of the meeting, eg. for more then one day calendar it Data/ora finale della riunione, es: per pi di un giorno +enddate of the export calendar it Data finale dell'esportazione +ends calendar it finisce +error adding the alarm calendar it Errore aggiungendo la sveglia +error: importing the ical calendar it Errore: importando iCal +error: no participants selected !!! calendar it Errore: nessun partecipante selezionato !!! +error: saving the event !!! calendar it Errore: durante il salvataggio dell'evento !!! +error: starttime has to be before the endtime !!! calendar it Errore: Inizio deve essere prima della Fine !!! +event copied - the copy can now be edited calendar it Evento copiato - la copia pu ora essere modificata +event deleted calendar it Evento cancellato +event details follow calendar it Dettagli dell'evento +event saved calendar it Evento salvato +event will occupy the whole day calendar it L'evento occuper l'intera giornata +exception calendar it Eccezione +exceptions calendar it Eccezioni +existing links calendar it Collegamenti esistenti +export calendar it Esporta +extended calendar it Esteso +extended updates always include the complete event-details. ical's can be imported by certain other calendar-applications. calendar it Gli update estesi contengono tutti i dettagli degli eventi. Gli iCal possono essere importanti da certe applicazioni. +fieldseparator calendar it Separatore +filename calendar it Nome file +filename of the download calendar it Nome file del download +find free timeslots where the selected participants are availible for the given timespan calendar it Trova spazi di tempo libero in cui tutti i partecipanti sono disponibili per il periodo stabilito +firstname of person to notify calendar it Nome della persona da avvisare +for calendar it per +format of event updates calendar it Formato degli aggiornamenti degli eventi +forward half a month calendar it avanti met mese +forward one month calendar it avanti un mese +freebusy: unknow user '%1', wrong password or not availible to not loged in users !!! calendar it libero/occupato: Utente '%1' sconosciuto, password errata o non disponibile agli utenti non loggati !!! +freetime search calendar it Ricerca Tempo libero +fri calendar it Ven +full description calendar it Descrizione completa +fullname of person to notify calendar it Nome completo della persona da avvisare +general calendar it Generale +global public and group public calendar it Pubblico Globale e Pubblico per il Gruppo +global public only calendar it Solo Pubblico Globale +group planner calendar it Pianificatore di Gruppo +group public only calendar it Solo Pubblico per il Gruppo +here is your requested alarm. calendar it la tua richiesta di allarme. +high priority calendar it priorit alta +holiday calendar it Festivit +holiday management calendar it Gestione Festivit +holidays calendar it Festivit +hours calendar it ore +how far to search (from startdate) calendar it quanto lontano cercare (dalla data iniziale) +ical calendar it iCal +ical / rfc2445 calendar it iCal / rfc2445 +ical export calendar it Esportazione iCal +ical file calendar it file iCal +ical import calendar it Importazione iCal +ical successful imported calendar it iCal importato con successo +if checked holidays falling on a weekend, are taken on the monday after. calendar it Se selezionato la festivit che ricorre nel weekend sar spostata al luned successivo. +if you dont set a password here, the information is available to everyone, who knows the url!!! calendar it Se non stabilisci una password qui, l'informazione sar disponibile a chiunque conosca l'URL!!! +ignore conflict calendar it Ignora Conflitto +import calendar it Importa +import csv-file calendar it Importa File-CSV +interval calendar it Intervallo +intervals in day view calendar it Intervallo nella Vista giornaliera +invalid email-address "%1" for user %2 calendar it Indirizzo email "%1" non valido per utente %2 +last calendar it ultimo +lastname of person to notify calendar it Cognome della persona da avvisare +link to view the event calendar it Link per visualizzare l'evento +links calendar it Collegamenti +links, attachments calendar it Collegamenti, Allegati +listview calendar it Vista elenco +location calendar it Localit +location to autoload from admin it Indirizzo da cui caricare automaticamente +location, start- and endtimes, ... calendar it Luogo, Inizio e Fine, ... +mail all participants calendar it Invia email a tutti i partecipanti +make freebusy information available to not loged in persons? calendar it Rendere disponibili le informazioni libero/occupato alle persone non loggate? +minutes calendar it minutes +modified calendar it Modificato +mon calendar it Lun +monthly calendar it Mensile +monthly (by date) calendar it Mensile (per data) +monthly (by day) calendar it Mensile (per giorno) +monthview calendar it Vista Mensile +new search with the above parameters calendar it nuova ricerca con i parametri indicati sopra +no events found calendar it Nessun evento trovato +no filter calendar it Nessun Filtro +no matches found calendar it Nessuna corrispondenza +no response calendar it Nessuna Risposta +non blocking calendar it non bloccante +notification messages for added events calendar it Messaggi di notifica per gli eventi aggiunti +notification messages for canceled events calendar it Messaggi di notifica per gli eventi cancellati +notification messages for disinvited participants calendar it Messaggi di notifica per i partecipanti disinvitati +notification messages for modified events calendar it Messaggi di notifica per gli eventi modificati +notification messages for your alarms calendar it Messaggi di notifica per i tuoi allarmi +notification messages for your responses calendar it Messaggi di notifica per le tue risposte +number of records to read (%1) calendar it Numero di record da leggere (%1) +observance rule calendar it Regola da osservare +occurence calendar it Occorrenze +old startdate calendar it Vecchia data di partenza +on %1 %2 %3 your meeting request for %4 calendar it Su %1 %2 %3 la tua richiesta di appuntamento per %4 +on all modification, but responses calendar it su tutte le modifiche, tranne le risposte +on any time change too calendar it anche ad ogni cambio ora +on invitation / cancelation only calendar it solo su invito / cancellazione +on participant responses too calendar it anche sulle risposte dei partecipanti +on time change of more than 4 hours too calendar it anche sul cambio ora maggiore di 4 ore +one month calendar it un mese +one week calendar it una settimana +one year calendar it un anno +only the initial date of that recuring event is checked! calendar it Solo la data iniziale di quel evento ricorrente selezionata! +open todo's: calendar it ToDo Aperti: +overlap holiday calendar it sovrapposizione di una festivit +participants calendar it Partecipanti +participants disinvited from an event calendar it Partecipanti disinvitati da un evento +participants, resources, ... calendar it Partecipanti, Risorse, ... +password for not loged in users to your freebusy information? calendar it Password per gli utenti non loggati sulle tue informazioni di disponibilit? +people holiday calendar it festivit personali +permission denied calendar it Permesso negato +planner by category calendar it Pianificatore per categorie +planner by user calendar it Pianificatore per utente +please note: you can configure the field assignments after you uploaded the file. calendar it Attenzione: Puoi configurare il campo assegnazioni DOPO che hai caricato il file. +preselected group for entering the planner calendar it Gruppo predefinito per aggiunte al pianificatore +previous calendar it precedente +private and global public calendar it Privato e Pubblico Globale +private and group public calendar it Private e Pubblico per il Gruppo +private only calendar it Solo privato +re-edit event calendar it Ri-modifica l'evento +receive email updates calendar it Ricevi aggiornamenti via e-mail +receive summary of appointments calendar it Ricevi il resoconto degli appuntamenti +recurrence calendar it Ricorrenza +recurring event calendar it evento ricorrente +rejected calendar it Rifiutato +repeat days calendar it Giorni di ripetizione +repeat the event until which date (empty means unlimited) calendar it ripeti l'evento fino a che data (vuoto significa illimitato) +repeat type calendar it Tipo di ripetizione +repeating event information calendar it Informazioni sugli eventi ricorrenti +repeating interval, eg. 2 to repeat every second week calendar it intervallo di ripetizione, es. 2 per ripetere ogni seconda settimana +repetition calendar it Ripetizione +repetitiondetails (or empty) calendar it Dettagli Ripetizione (o vuoto) +reset calendar it Reset +resources calendar it Risorse +rule calendar it Regola +sat calendar it Sab +saves the changes made calendar it salva le modifiche fatte +saves the event ignoring the conflict calendar it Salva l'evento ignorando il conflitto +scheduling conflict calendar it Conflitto di orario +select a %1 calendar it Seleziona %1 +select a time calendar it seleziona un'ora +select resources calendar it Seleziona risorse +select who should get the alarm calendar it Seleziona chi dovr avere la sveglia +set a year only for one-time / non-regular holidays. calendar it Imposta un Anno solo per festivit occasionali / non regolari. +set new events to private calendar it Imposta il nuovo evento come privato +should invitations you rejected still be shown in your calendar ?
you can only accept them later (eg. when your scheduling conflict is removed), if they are still shown in your calendar! calendar it Gli inviti non accettati compaiono nel tuo calendario?
Potrai accettarli pi tardi (es. quando l'appuntamento in conflitto sar rimosso), se li lascierai visibili nell'agenda! +should new events created as private by default ? calendar it I nuovi eventi sono creati come privati normalmente ? +should not loged in persons be able to see your freebusy information? you can set an extra password, different from your normal password, to protect this informations. the freebusy information is in ical format and only include the times when you are busy. it does not include the event-name, description or locations. the url to your freebusy information is %1. calendar it Le persone non loggate possono vedere le tue informazioni di disponibilit? Puoi impostare una password extra, diversa dalla tua normale password, per proteggere queste imformazioni. Le informazioni di disponibilit sono nel formato iCal e includono solo i tempi in cui sei occupato. Non includono i nomi degli eventi, descrizioni o luoghi. L'URL delle informazioni di disponibilit %1. +should the status of the event-participants (accept, reject, ...) be shown in brakets after each participants name ? calendar it Lo stato dei partecipanti agli eventi (accettato, rifiutato, ...) sar visualizzato tra parentesi dopo il nome? +show default view on main screen calendar it Mostra la vista prefedinita sulla maschera principale +show invitations you rejected calendar it Visualizza inviti rifiutati +show list of upcoming events calendar it Visualizza la lista degli eventi imminenti +show this month calendar it mostra questo mese +show this week calendar it mostra questa settimana +single event calendar it singolo evento +start calendar it Inizio +start date/time calendar it Data/Ora Inizio +startdate / -time calendar it Data/ora iniziale +startdate and -time of the search calendar it Data/ora iniziale della ricerca +startdate of the export calendar it Data iniziale dell'esportazione +startrecord calendar it Primo Record +status changed calendar it Stato modificato +submit to repository calendar it Invia all'archivio +sun calendar it Dom +tentative calendar it Tentativo +test import (show importable records only in browser) calendar it Test d'importazione (visualizza nel browser solo i record importabili) +this day is shown as first day in the week or month view. calendar it Questo giorno visualizzato come primo giorno nella vista settimanale o in quella mensile. +this defines the end of your dayview. events after this time, are shown below the dayview. calendar it Questo definisce la fine della tua vista giornaliera. Eventi dopo quest'ora sono mostrati dopo la vista giornaliera. +this defines the start of your dayview. events before this time, are shown above the dayview.
this time is also used as a default starttime for new events. calendar it Questo definisce l'inizio della tua vista giornaliera. Eventi prima di quest'ora sono visualizzati prima della vista giornaliera.
Quest'ora utilizzata anche come ora d'inizio dei nuovi eventi. +this group that is preselected when you enter the planner. you can change it in the planner anytime you want. calendar it Questo gruppo preselezionato quando entri nel pianificatore. Quando vorrai potrai cambiarlo nel pianificatore. +this message is sent for canceled or deleted events. calendar it Questo messaggio inviato per gli eventi annullati o cancellati. +this message is sent for modified or moved events. calendar it Questo messaggio inviato. per gli eventi modficiati o spostati. +this message is sent to disinvited participants. calendar it Questo messaggio viene inviato ai partecipanti disinvitati. +this message is sent to every participant of events you own, who has requested notifcations about new events.
you can use certain variables which get substituted with the data of the event. the first line is the subject of the email. calendar it Questo messaggio inviato ad ogni partecipante, che ha richiesto la notifica, all'evento da te creato.
Puoi usare certe variabili che sostituiranno dati dell'evento. La prima linea l'oggetto dell'e-mail. +this message is sent when you accept, tentative accept or reject an event. calendar it Questo messaggio inviato quando accetti, provi ad accettare, o rifiuti un evento. +this message is sent when you set an alarm for a certain event. include all information you might need. calendar it Questo messaggio inviato quando imposti un Allarme per certi eventi. Include tutte le informazioni di cui hai bisogno. +three month calendar it tre mesi +thu calendar it Gio +til calendar it fino +timeframe calendar it Spazio temporale +timeframe to search calendar it Spazio temporale da cercare +title of the event calendar it Titolo dell'evento +to many might exceed your execution-time-limit calendar it troppi potrebbero superare il limite del tempo di esecuzione +translation calendar it Traduzione +tue calendar it Mar +two weeks calendar it due settimane +updated calendar it Aggiornato +use end date calendar it Usa data di termine +use the selected time and close the popup calendar it utilizza l'ora selezionata e chiudi popup +view this event calendar it Visualizza questo evento +wed calendar it Mer +week calendar it Settimana +weekday starts on calendar it La settimana inizia di +weekdays calendar it Giorni settimanali +weekdays to use in search calendar it Giorni settimanali da usare per la ricerca +weekly calendar it Settimanale +weekview calendar it Vista Settimanale +weekview with weekend calendar it Vista settimanale con weekend +weekview without weekend calendar it Vista settimanale senza weekend +which events do you want to see when you enter the calendar. calendar it Quali eventi vuoi vedere quando entri nell'agenda. +which of calendar view do you want to see, when you start calendar ? calendar it Quale vista dell'agenda vuoi vedere quanto apri l'agenda? +whole day calendar it giornata intera +wk calendar it Sett +work day ends on calendar it La giornata lavorativa termina alle +work day starts on calendar it La giornata lavorativa inizia alle +yearly calendar it Annuale +yearview calendar it Vista Annuale +you can either set a year or a occurence, not both !!! calendar it Puoi impostare un Anno o un'Occorrenza, non entrambi !!! +you can only set a year or a occurence !!! calendar it E' possibile impostare solo un anno o una occorrenza!!! +you do not have permission to read this record! calendar it Non hai l'autorizzazione per leggere questo record +you have a meeting scheduled for %1 calendar it Hai un meeting fissato alle %1 +you have been disinvited from the meeting at %1 calendar it Il tuo invito al meeting delle %1 stato annullato +you need to select an ical file first calendar it Devi prima selezionare un file iCal +you need to set either a day or a occurence !!! calendar it Impostare un giorno o una ricorrenza !!! +your meeting scheduled for %1 has been canceled calendar it Il tuo meeting fissato per il %1 stato cancellato +your meeting that had been scheduled for %1 has been rescheduled to %2 calendar it Il tuo meeting fissato per il %1 stato spostato al %2 +h calendar it h diff --git a/calendar/setup/phpgw_lt.lang b/calendar/setup/phpgw_lt.lang new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/calendar/setup/phpgw_lt.lang @@ -0,0 +1 @@ + diff --git a/calendar/setup/phpgw_lv.lang b/calendar/setup/phpgw_lv.lang new file mode 100644 index 0000000000..c181bb9f57 --- /dev/null +++ b/calendar/setup/phpgw_lv.lang @@ -0,0 +1,288 @@ +%1 %2 in %3 calendar lv %1 %2 iekš %3 +%1 matches found calendar lv atrada %1 atbilstošu +%1 records imported calendar lv %1 ieraksti importēti +%1 records read (not yet imported, you may go back and uncheck test import) calendar lv %1 ieraksti nolasīti (vēl nav importēti, tu vari iet atpakaļ un noņemt Pārbaudīt importēšanu) +(for weekly) calendar lv (priekš iknedēļas) +1 match found calendar lv atrasts 1 atbilstošs +a calendar lv a +accept calendar lv Akceptēt +accepted calendar lv Akceptēts +action that caused the notify: added, canceled, accepted, rejected, ... calendar lv Darbība, kas izsauca paziņojumu: Pievienots, Atcelts, Akceptēts, Noraidīts +add a single entry by passing the fields. calendar lv Pievienot atsevišķu ierakstu apejot laukus +add alarm calendar lv PIevienot trauksmi +add contact calendar lv Vievienot kontaktu +add or update a single entry by passing the fields. calendar lv Pievienot vai atjaunināt atsevišķu ierakstu apejot laukus +added calendar lv PIevienots +address book calendar lv Adrešu grāmata +alarm calendar lv Trauksme +alarm for %1 at %2 in %3 calendar lv Trauksme %1pie%2 %3 +alarm management calendar lv Trauksmes vadība +alarm-management calendar lv Trauksmes-vadība +alarms calendar lv Trauksmes +all day calendar lv VIsu dienu +are you sure you want to delete this country ? calendar lv TIešām vēlies dzēst šo valsti? +are you sure you want to delete this holiday ? calendar lv Tiešām vēlies dzēst šo brīvdienu? +are you surenyou want tondelete these alarms? calendar lv Esi\neesi pārliecināts, ka vēlies\nevēlies dzēst šīs trauksmes? +are you surenyou want tondelete this entry ? calendar lv Esi\neesi pārliecināts, ka vēlies\nevēlies dzēst šo ierakstu? +before the event calendar lv pirms šī notikuma +brief description calendar lv Īss apraksts +business calendar lv Nodarbošanās +calendar common lv Kalendārs +calendar - add calendar lv Kalendārs- pievienot +calendar - edit calendar lv Kalendārs- rediģēt +calendar event calendar lv Kalendārs- notikums +calendar holiday management admin lv Kalendāra brīvdienu vadība +calendar preferences calendar lv Kalendāra izvēles +calendar settings admin lv Kalendāra uzstādījumi +calendar-fieldname calendar lv Kalendāra lauka nosaukums +canceled calendar lv Atcelts +change all events for $params['old_owner'] to $params['new_owner']. calendar lv Mainīt visus notikumus $params['vecais_īpašnieks'] uz $params['jaunais_īpašnieks'] +change status calendar lv Mainīt statusu +configuration calendar lv Konfigurācija +countries calendar lv Valstis +country calendar lv Valsts +created by calendar lv Izveidoja +csv-fieldname calendar lv CSV-lauka nosaukums +csv-filename calendar lv CSV- datnes nosaukums +custom fields calendar lv Klienta lauki +custom fields and sorting common lv Klienta lauki un kārtošana +daily calendar lv Ikdienas +daily matrix view calendar lv Ikdienas matricas skatījums +days calendar lv dienas +days repeated calendar lv atkārtotas dienas +dayview calendar lv Dienas skats +default calendar filter calendar lv Noklusētais kalendāra filtrs +default calendar view calendar lv Noklusētais kalendāra skats +defines the size in minutes of the lines in the day view. calendar lv Definē līniju izmēru minūtēs dienas skatā +delete a single entry by passing the id. calendar lv Izdzēst atsevišķu ierakstu apejot id +delete an entire users calendar. calendar lv Dzēst visu lietotāju kalendāru +delete selected contacts calendar lv Dzēst atzīmētos kontaktus +delete series calendar lv Dzēš sērijas +delete single calendar lv Dzēš atsevišķu ierakstu +deleted calendar lv Izdzēsts +description calendar lv Apraksts +disable calendar lv Deaktivizēt +disabled calendar lv deaktivizēts +display interval in day view calendar lv Parādīt intervālu dienas skatā +display mini calendars when printing calendar lv Parādīt mazo kalendāru, kad drukā +display status of events calendar lv Parādīt notikumu statusu +displays your default calendar view on the startpage (page you get when you enter egroupware or click on the homepage icon)? calendar lv Parāda noklusēto kalendāra skatu starta lapā(lapā, kas parādās, kad ieej eGroupWare vai noklikšķini uz mājaslapas ikonas) +do you wish to autoload calendar holidays files dynamically? admin lv Vai vēlies dinamisku kalendāra brīvdienu automātisku ielādi? +download calendar lv Lejupielādēt +duration calendar lv Izpildes laiks +edit series calendar lv Rediģēt sērijas +edit single calendar lv Rediģēt atsevišķu ierakstu +email notification calendar lv E-pasta paziņojums +email notification for %1 calendar lv E-pasts paziņōjums %1 +empty for all calendar lv iztukšot visiem +enable calendar lv Aktivizēt +enabled calendar lv aktivizēts +end date/time calendar lv Beigu datums/laiks +enddate calendar lv beigu datums +ends calendar lv beidzas +enter output filename: ( .vcs appended ) calendar lv Ievadi izvades datnes nosaukums: (.vcs pievienots) +exceptions calendar lv Izņēmumi +export calendar lv Eksportēt +export a list of entries in ical format. calendar lv Eksportēt ierakstu sarakstu iCal formātā +extended calendar lv Paplašinats +external participants calendar lv Arējie dalībnieki +failed sending message to '%1' #%2 subject='%3', sender='%4' !!! calendar lv Nevarēja nosūtīt vēstuli "%1"#%2 tēma="%3",sūtītājs="%4"!!! +fieldseparator calendar lv Lauka atdalītājs +firstname of person to notify calendar lv Personas vārds, kurai jāpaziņo +format of event updates calendar lv Formatēt notikumu atjauninājumus +fr calendar lv F +free/busy calendar lv Brīvs/aizņemts +freebusy: unknow user '%1', wrong password or not availible to not loged in users !!! calendar lv brīvsaizņemts: Nezināms lietotājs"%1", nepareiza parole vai nav pieejams nav ielogojies lietotājs!!! +frequency calendar lv Frekvence +fri calendar lv Piektdiena +full description calendar lv Pilns apraksts +fullname of person to notify calendar lv Pilns personas vārds, kurai jāpaziņo +generate printer-friendly version calendar lv Ģenerēt printerim-draudzīgu versiju +global categories calendar lv VIspārējas kategorijas +go! calendar lv Aiziet! +group planner calendar lv Grupu plānotājs +high priority calendar lv augsta prioritāte +holiday calendar lv Brīvdiena +holiday management calendar lv Brīvdienu vadība +holiday-management calendar lv Brīvdienu-vadība +holidays calendar lv Brīvdienas +hours calendar lv stundas +ical / rfc2445 calendar lv iCal / rfc2445 +if you dont set a password here, the information is availible to everyone, who knows the url!!! calendar lv Ja tu šeit neuzliksi paroli, informācija būs pieejama visiem, kuriem zināms URL!!! +ignore conflict calendar lv Ignorēt pretrunu +import calendar lv Importēt +import csv-file common lv Importēt CSV datni +interval calendar lv Intervāls +intervals in day view calendar lv Intervāls dienas skatījumā +intervals per day in planner view calendar lv Intervāli dienā plānotāja skatā +invalid entry id. calendar lv Nederīgs ieraksta ID +last calendar lv pēdējais +lastname of person to notify calendar lv Personas, kurai jāpaziņō, uzvārds +length shown
(emtpy for full length) calendar lv Garums parādīts
(atstāt tukšu pilnam garumam) +length
(<= 255) calendar lv Garums
(<=255) +link calendar lv Saite +link to view the event calendar lv Saistīt, lai parādītu notikumu +list all categories. calendar lv Uzskaitīt visas kategorijas +load [iv]cal calendar lv Ielādēt [iv]Cal +location calendar lv Novietojums +location to autoload from admin lv VIeta, no kuras automātiski ielādēt +matrixview calendar lv Matricas skats +minutes calendar lv minūtes +mo calendar lv M +modified calendar lv Pārveidots +modify list of external participants calendar lv Pārveidot ārējo dalībnieku sarakstu +mon calendar lv Pirmdiena +month calendar lv Mēnesis +monthly calendar lv Ikmēneša +monthly (by date) calendar lv Ikmēneša(pēc datumiem) +monthly (by day) calendar lv Ikmēneša (pēc dienas) +monthview calendar lv Mēneša skats +new entry calendar lv Jauns ieraksts +new name must not exist and not be empty!!! calendar lv Jauns nosaukums nedrīks jau eksistēt un nedrīkst būt tukšs!!! +no matches found calendar lv Nav atrasti atbilstoši ieraksti +no response calendar lv Neatbild +notification messages for added events calendar lv Paziņojuma vēstules par pievienotajiem notikumiem +notification messages for canceled events calendar lv Paziņojuma vēstules par atceltajiem notikumiem +notification messages for modified events calendar lv Paziņojuma vēstules par pārveidotajiem notikumiem +notification messages for your alarms calendar lv Paziņojuma vēstules par trauksmēm +notification messages for your responses calendar lv Paziņojuma vēstules par tavām atbildēm +number of intervals per day in planner view calendar lv Intervālu skaits dienā Plānotāja skatā +number of months calendar lv Mēnešu skaits +number of records to read (%1) calendar lv Lasāmo ierakstu skaits(%1) +observance rule calendar lv Ievērošanas kārtula +occurence calendar lv Notikums +old startdate calendar lv Vecais standarts +olddate calendar lv Vecais datums +on all changes calendar lv uz visām izmaiņām +on invitation / cancelation only calendar lv tikai uz uzaiciājumu/ atsaukšanu +on participant responses too calendar lv arī uz salībnieku atbildēm +on time change of more than 4 hours too calendar lv arī uz laiku vairāk par 4 stundām +open todo's: calendar lv Atvērt Jādara vienības +order calendar lv Kārtība +overlap holiday calendar lv brīvdiena pārklājas +participant calendar lv Dalībnieks +participants calendar lv Dalībnieki +participates calendar lv PIedalās +people holiday calendar lv cilvēku brīvdienas +permission denied calendar lv Atļauja liegta +planner calendar lv Plānotājs +planner by category calendar lv Plānptājs pēc kategorijas +planner by user calendar lv Plānotājs pēc lietotāja +please enter a filename !!! calendar lv lūdzu ievadi datnes nosaukumu!!! +preselected group for entering the planner calendar lv Iepriekšizvēlētā grupa iekļūsanai plānotājā +print calendars in black & white calendar lv Izdrukāt kelendārus melnbaltus +print the mini calendars calendar lv Izdrukāt mini kalendārus +printer friendly calendar lv Printerim draudzīgs +privat calendar lv Privāts +private and global public calendar lv Privāts un Vispārēji publisks +private and group public calendar lv Privāts un Grupu publisks +private only calendar lv Tikai privāts +re-edit event calendar lv pārrediģēt notikumu +read a list of entries. calendar lv Lasīt ierakstu sarakstu +read a single entry by passing the id and fieldlist. calendar lv Lasīt atsevišku ierakkstu apejot id un lauku sarakstu +read this list of methods. calendar lv Lasīt šo metožu sarakstu +receive email updates calendar lv Saņemt e-pasta atjauninājumus +receive extra information in event mails calendar lv Saņemt papildus informāciju par notikumu vēstulēm +receive summary of appointments calendar lv Saņemt kopsavilkumu par norunāto tikšanos +recurring event calendar lv nepārtraukts notikums +refresh calendar lv Atsvaidzināt +reinstate calendar lv Atjaunot +rejected calendar lv Noraidīts +repeat day calendar lv Atkārtot dienu +repeat end date calendar lv Atkārtot beigu dienu +repeat type calendar lv Atkārtot tipu +repeating event information calendar lv Atkārtojamā notikuma informācija +repetition calendar lv Atkārtojums +repetitiondetails (or empty) calendar lv Atkārtojuma rekvizīti +reset calendar lv Atiestate +rule calendar lv Kārtula +sa calendar lv Sa +sat calendar lv Sestdiena +scheduling conflict calendar lv Pretrunas plānošana +search results calendar lv Meklēšanas rezultāti +selected contacts (%1) calendar lv ATzīmētie kontakti (%1) +send updates via email common lv Sūtīt atjauninājumus pa e-pastu +send/receive updates via email calendar lv Sūtīt/saņemt atjauninājumus pa e-pastu +set a year only for one-time / non-regular holidays. calendar lv Uzstādi tikai gadu vienas reizes/neregulārām brīvdienām +should the printer friendly view be in black & white or in color (as in normal view)? calendar lv Vai printera skatījumam jābūt melnbaltam vai krāsainam (kā normāls skatījums)? +show day view on main screen calendar lv rādīt dienas skatu galvenajā logā +show default view on main screen calendar lv Rādīt noklusējuma skatu galvenajā logā +show high priority events on main screen calendar lv Rādīt augstas prioritātes notikumus galvenajā logā +show invitations you rejected calendar lv Rādīt uzaicinājumus, kurus noraidīji +show list of upcoming events calendar lv Rādīt gaidāmo notikumu sarakstu +single event calendar lv atsevišķs notikums +sorry, the owner has just deleted this event calendar lv Atvaino, īpašnieks ir izdzēsis šo notikumu +sorry, this event does not exist calendar lv Atvaino, šis notikums neeksistē +sorry, this event does not have exceptions defined calendar lv ATvaino, šim notikumam nav definēti izņēmumi +sort by calendar lv Kārtot pēc +specifies the the number of intervals shown in the planner view. calendar lv Norāda plānotāja skatā rādīto intervālu skaitu +start date/time calendar lv Sākums datums/laiks +start- and enddates calendar lv Sākuma un beigu datumi +startdate calendar lv Sākumdatums +startrecord calendar lv Sākumieraksts +submit to repository calendar lv Iesniegt repozitorijā +sun calendar lv Svētdiena +tentative calendar lv Iepriekšējs +test import (show importable records only in browser) calendar lv Pārbaudīt importēšanu (parādīt importējamus ierakstus tikai pārlūkprogrammā) +text calendar lv Teksts +th calendar lv T +the following conflicts with the suggested time:
    %1
calendar lv Sekojošas pretrunas ar piedāvato laiku:
    %1
+the user %1 is not participating in this event! calendar lv Lietotājs %1 nepiedalās šajā notikumā +there was an error trying to connect to your news server.
please contact your admin to check the news servername, username or password. calendar lv Kļūda pieslēdzoties tavam ziņu serverim.
Lūdzu sazinies ar savu administratoru, lai pārbaudītu ziņu servera nosaukumu, lietotājvārdu vai paroli. +this day is shown as first day in the week or month view. calendar lv Mēneša skatā šī diena ir parādīta kā pirmā nedēļas vai mēneša diena +this defines the end of your dayview. events after this time, are shown below the dayview. calendar lv Tas definē tavas dienas skata beigas. Notikumi pēc šī laika tiek parādīti zem dienas skata +this group that is preselected when you enter the planner. you can change it in the planner anytime you want. calendar lv Šī ir grupa, kas iepriekšizvēlēta, kad tu ieej plānotājā. Tu to vari mainīt plānotājā kad vien vēlies +this message is sent for canceled or deleted events. calendar lv Šī vēstule tika nosūtīta uz atceltajiem vai izdzēstiem notikumiem +this message is sent for modified or moved events. calendar lv Šī vēstule tika nosūtīta uz pārveidotajiem vai pārvietotajiem notikumiem +this month calendar lv Šis mēnesis +this week calendar lv Šī nedēļa +this year calendar lv Šis gads +thu calendar lv Ceturtdiena +title calendar lv VIrsraksts +title of the event calendar lv Notikuma virsraksts +title-row calendar lv Virsaksta rindiņa +to-firstname calendar lv Kam-Vārds +to-fullname calendar lv Kam- Pilnais vārds +to-lastname calendar lv Kam- Uzvārds +today calendar lv Šodien +translation calendar lv Tulkojums +tu calendar lv T +tue calendar lv Otrdiena +update a single entry by passing the fields. calendar lv Atjaunināt atsevišķu ierakstu apejot laukus +updated calendar lv Atjaunināts +use end date calendar lv LIetot beigu datumu +view this entry calendar lv Rādīt šo ierakstu +we calendar lv W +wed calendar lv Trešdiena +week calendar lv Nedēļa +weekday starts on calendar lv Nedēļas diena sākas +weekly calendar lv Iknedēļas +weekview calendar lv Nedēļas skats +when creating new events default set to private calendar lv Kad veido jaunus notikumus, noklusējumu uzstādīt kā privātu +which events do you want to see when you enter the calendar. calendar lv Kurus notikumus vēlies redzēt, kad ieej kalendārā? +which of calendar view do you want to see, when you start calendar ? calendar lv Kādu kalendāra skatu vēlies redžet, kad ieej kalendārā? +work day ends on calendar lv Darba diena beidzas +work day starts on calendar lv Darba diena sākas +workdayends calendar lv darbadienabeidzas +yearly calendar lv Ikgadējs +yearview calendar lv Gada skats +you can either set a year or a occurence, not both !!! calendar lv Tu vari uzstādīt vai nu gadu vai nu atgadījumu, ne abus!!! +you can only set a year or a occurence !!! calendar lv Tu vari uzstādīt gadu vai atgadījumu!!! +you do not have permission to add alarms to this event !!! calendar lv Tev nav atļaujas pievienot trauksmes šim notikumam!!! +you do not have permission to delete this alarm !!! calendar lv Tev nav tiesību dzēst šo trauksmi!!! +you do not have permission to enable/disable this alarm !!! calendar lv Tev nav tiesību aktivizēt/deaktivizēt šo trauksmi!!! +you do not have permission to read this record! calendar lv Tev nav tiesību lasīt šo ierakstu! +you have %1 high priority events on your calendar today. common lv Šodien kalendārā tev ir %1 augstas prioritātes notikumi +you have 1 high priority event on your calendar today. common lv Šodien kalendārā tev ir 1 augstas prioritātes notikums +you have a meeting scheduled for %1 calendar lv Tev ir ieplānota tikšanās %1 +you have not entered a title calendar lv Tu neesi ievadījis virsrakstu +you have not entered a valid date calendar lv Tu neesi ievadījis derīgu datumu +you have not entered a valid time of day calendar lv Tu neesi ievadījis derīgu dienas laiku +you have not entered participants calendar lv Tu neesi ievadījis dalībniekus +you must enter one or more search keywords calendar lv Tev jāievada viens vai vairāki meklēšanas atslēgvārdi +you must select a [iv]cal. (*.[iv]cs) calendar lv Tev jāatzīmē [iv]Cal. (*.[iv]cs) +you need to set either a day or a occurence !!! calendar lv Tev jāuzstāda diena vai atgadījums!!! +your meeting scheduled for %1 has been canceled calendar lv Tava ieplānotā tikšanās %1 ir atcelta +your meeting that had been scheduled for %1 has been rescheduled to %2 calendar lv Tava ieplānotā tikšanās %1 tika pārcelta uz %2 +your suggested time of %1 - %2 conflicts with the following existing calendar entries: calendar lv Tavs ieteiktais %1 - %2 laiks nonāķ pretrunā ar sekojošīem kalendāra ierakstiem: +h calendar lv h diff --git a/calendar/setup/phpgw_nl.lang b/calendar/setup/phpgw_nl.lang new file mode 100644 index 0000000000..bda69f7155 --- /dev/null +++ b/calendar/setup/phpgw_nl.lang @@ -0,0 +1,311 @@ +%1 %2 in %3 calendar nl %1 %2 in %3 +%1 records imported calendar nl %1 records gemporteerd +%1 records read (not yet imported, you may go back and uncheck test import) calendar nl %1 records gelezen (nog niet gemporteerd, u kunt teruggaan en Test Import uitzetten) +please note: the calendar use the holidays of your country, which is set to %1. you can change it in your %2.
holidays are %3 automatic installed from %4. you can changed it in %5. calendar nl Let op: de agenda gebruikt de vrije dagen van uw land dat staat ingesteld op %1. U kunt dit wijzigen in uw %2.
Vrije dagen worden %3 automatisch geinstalleerd vanaf %4. U kunt dit wijzigen in %5. +a non blocking event will not conflict with other events calendar nl Een niet-blokkerende gebeurtenis zal geen conflicten met andere gebeurtenissen geven +accept or reject an invitation calendar nl Accepteer of weiger een uitnodiging +accepted calendar nl Geaccepteerd +access denied to the calendar of %1 !!! calendar nl Toegang tot de agenda van %1 geweigerd !!! +action that caused the notify: added, canceled, accepted, rejected, ... calendar nl Reden van de notificatie: Toegevoegd, Geannuleerd, Geaccepteerd, Geweigerd, ... +actions calendar nl Acties +add alarm calendar nl Alarm toevoegen +added calendar nl Toegevoegd +after current date calendar nl Na de huidige datum +alarm calendar nl Herinnering +alarm added calendar nl Herinnering toegevoegd +alarm deleted calendar nl Herinnering verwijderd +alarm for %1 at %2 in %3 calendar nl Herinnering voor %1 op %2 in %3 +alarm management calendar nl Herinneringen beheer +alarms calendar nl Herinneringen +all categories calendar nl Alle categorien +all day calendar nl Hele dag +all events calendar nl Alle gebeurtenissen +all participants calendar nl Alle deelnemers +allows to edit the event again calendar nl Staat toe om de gebeurtenis opnieuw te wijzigen +apply the changes calendar nl wijzigingen doorvoeren +are you sure you want to delete this country ? calendar nl Weet u zeker dat u dit land wilt verwijderen? +are you sure you want to delete this holiday ? calendar nl Weet u zeker dat u deze feestdag wilt verwijderen? +back half a month calendar nl halve maand terug +back one month calendar nl n maand terug +before current date calendar nl Voor de huidige datum +before the event calendar nl voor de afspraak +birthday calendar nl Verjaardag +busy calendar nl bezet +by calendar nl door +calendar event calendar nl Agenda - Afspraak +calendar holiday management admin nl Agenda feestdagen beheer +calendar menu calendar nl Agenda menu +calendar preferences calendar nl Agenda voorkeuren +calendar settings admin nl Agenda instellingen +calendar-fieldname calendar nl Agenda - Veldnaam +can't add alarms in the past !!! calendar nl Herinneringen kunnen niet in het verleden aangemaakt worden !!! +canceled calendar nl Geannuleerd +charset of file calendar nl Karakterset van bestand +close the window calendar nl Venster sluiten +compose a mail to all participants after the event is saved calendar nl stel een email aan alle deelnemers op nadat de gebeurtenis is opgeslagen +copy of: calendar nl Kopie van: +copy this event calendar nl Kopieer deze gebeurtenis +countries calendar nl Landen +country calendar nl Land +create an exception at this recuring event calendar nl Maak een uitzondering op deze herhalende gebeurtenis +create new links calendar nl Nieuwe links aanmaken +csv calendar nl CSV +csv-fieldname calendar nl CSV-veldnaam +csv-filename calendar nl CSV-bestandsnaam +custom fields common nl Aangepaste velden +daily calendar nl Dagelijks +days calendar nl dagen +days of the week for a weekly repeated event calendar nl Dagen van de week voor een wekelijks herhalende gebeurtenis +days repeated calendar nl dagen herhaald +dayview calendar nl Dagweergave +default appointment length (in minutes) calendar nl standaard afspraakduur (in minuten) +default calendar filter calendar nl Standaard agendafilter +default calendar view calendar nl Standaard agendaoverzicht +default length of newly created events. the length is in minutes, eg. 60 for 1 hour. calendar nl Standaard lengte van nieuw aangemaakte afspraken. De lengte is in minuten, bijv. 60 voor 1 uur. +default week view calendar nl Standaard weekoverzicht +defines the size in minutes of the lines in the day view. calendar nl Standaard grootte in minutes van de regels in de dagelijkse weergave. +delete series calendar nl Series verwijderen +delete this alarm calendar nl Deze herinnering verwijderen +delete this event calendar nl Deze gebeurtenis verwijderen +delete this exception calendar nl Deze uitzondering verwijderen +delete this series of recuring events calendar nl Deze serie herhalende gebeurtenissen verwijderen +disinvited calendar nl Uitnodiging teruggetrokken +display status of events calendar nl Status van afspraken weergeven +displayed view calendar nl getoonde weergave +displays your default calendar view on the startpage (page you get when you enter egroupware or click on the homepage icon)? calendar nl Laat uw standaard agenda weergave zien op de beginpagina (De pagina waarmee eGroupWare geopend wordt of die u krijgt als u op klikt op 'start' +do you want a weekview with or without weekend? calendar nl Wil je weekoverzicht met of zonder weekend? +do you want to be notified about new or changed appointments? you be notified about changes you make yourself.
you can limit the notifications to certain changes only. each item includes all the notification listed above it. all modifications include changes of title, description, participants, but no participant responses. if the owner of an event requested any notifcations, he will always get the participant responses like acceptions and rejections too. calendar nl Wilt u worden geinformeerd over nieuwe of gewijzigde afspraken? U wordt genformeerd over wijzigingen die u zelf heeft gemaakt.
U kunt de de notificaties beperken to alleen bepaalde wijzigingen. Elk item bevat alle notificaties hierboven weergegeven. "Alle wijzigingen" bevat wijziging va titel, beschrijving, deelnemers, maar niet reacties van deelnemers. Als de eigenaar van een afspraak verzocht heeft om een van de notificaties, zal hij of zij altijd reacties krijgen van de deelnemers zoals acceptaties en afwijzigingen. +do you want to receive a regulary summary of your appointsments via email?
the summary is sent to your standard email-address on the morning of that day or on monday for weekly summarys.
it is only sent when you have any appointments on that day or week. calendar nl Wilt u per email een periodieke overzichten ontvangen van uw afspraken?
Het overzicht wordt verzonden naar uw standaard emailadres op de ochtend dat de afspraak plaatsvind en op maandag voor wekelijkse overzichten.
Er wordt alleen een overzicht verstuurd als er in die afspraken staan geregistreerd. +do you wish to autoload calendar holidays files dynamically? admin nl Wilt u de feestdagen automatisch downloaden +download calendar nl Downloaden +download this event as ical calendar nl Download deze gebeurtenis als iCal +duration of the meeting calendar nl Duur van de bijeenkomst +edit exception calendar nl Uitzondering bewerken +edit series calendar nl Alles bewerken +edit this event calendar nl Deze gebeurtenis bewerken +edit this series of recuring events calendar nl De hele reeks herhalende gebeurtenissen bewerken +empty for all calendar nl leeg voor alle +end calendar nl Eind +end date/time calendar nl Einddatum/-tijd +enddate calendar nl Einddatum +enddate / -time of the meeting, eg. for more then one day calendar nl Einddatum / -tijd van de bijeenkomst, bijvoorbeeld voor langer dan n dag +enddate of the export calendar nl Einddatum van de export +ends calendar nl eindigt +error adding the alarm calendar nl Fout bij instellen van de herinnering +error: importing the ical calendar nl Fout: importing van de iCal +error: no participants selected !!! calendar nl Fout: geen deelnemers geselecteerd !!! +error: saving the event !!! calendar nl Fout: opslaan van de gebeurtenis !!! +error: starttime has to be before the endtime !!! calendar nl Fout: Begintijd moet voor de eindtijd liggen !!! +event copied - the copy can now be edited calendar nl Gebeurtenis gekopieerd - de kopie kan nu bewerkt worden +event deleted calendar nl Gebeurtenis verwijderd +event details follow calendar nl Afspraak details volgen +event saved calendar nl Gebeurtenis opgeslagen +event will occupy the whole day calendar nl Gebeurtenis duurt de hele dag +exception calendar nl Uitzondering +exceptions calendar nl Uitzonderingen +existing links calendar nl Bestaande links +export calendar nl Exporteren +extended calendar nl Uitgebreid +extended updates always include the complete event-details. ical's can be imported by certain other calendar-applications. calendar nl Uitgebreide updates bevatten altijd de complete afspraakdetails. iCal's kunnen worden gemporteerd door aan aantal agendatoepassingen +fieldseparator calendar nl Veldscheidingssymbool +filename calendar nl Bestandsnaam +filename of the download calendar nl Bestandsnaam van de download +find free timeslots where the selected participants are availible for the given timespan calendar nl Zoek vrije tijdstippen waarop de geselecteerde deelnemers beschikbaar zijn binnen de opgegeven tijdsduur +firstname of person to notify calendar nl Voornaam van persoon om te op de hoogte te brengen +for calendar nl voor +format of event updates calendar nl Formaat van afspraakbewerkingen +forward half a month calendar nl halve maand verder +forward one month calendar nl n maand verder +freebusy: unknow user '%1', wrong password or not availible to not loged in users !!! calendar nl Vrij/Bezet: onbekende gebruiker '%1', verkeerd wachtwoord of niet beschikbaar voor niet-ingelogde gebruikers!!! +freetime search calendar nl Beschikbare tijd opzoeken +fri calendar nl Vri +full description calendar nl Volledige omschrijving +fullname of person to notify calendar nl Volledige naam van persoon om te op de hoogte te brengen +general calendar nl Algemeen +global public and group public calendar nl Globaal publiek en group publiek +global public only calendar nl Alleen globaal publiek +group invitation calendar nl Groepsuitnodiging +group planner calendar nl Groepsplanner +group public only calendar nl Alleen group publiek +groupmember(s) %1 not included, because you have no access. calendar nl Groepslid(-leden) %1 niet meegenomen omdat je geen toegang hebt. +h calendar nl h +here is your requested alarm. calendar nl Hier is uw verzochte alarm. +high priority calendar nl hoge prioriteit +holiday calendar nl Vakantie +holiday management calendar nl Feestdagenbeheer +holidays calendar nl Vakanties +hours calendar nl uren +how far to search (from startdate) calendar nl hoe ver vooruit zoeken (vanaf de begindatum) +ical calendar nl iCal +ical / rfc2445 calendar nl iCal / rfc2445 +ical export calendar nl iCal export +ical file calendar nl iCal bestand +ical import calendar nl iCal import +ical successful imported calendar nl iCal goed geimporteerd +if checked holidays falling on a weekend, are taken on the monday after. calendar nl wanneer deze optie is geactiveerd zullen feestdagen die vallen in het weekend, genomen worden op de maandag daarna. +if you dont set a password here, the information is available to everyone, who knows the url!!! calendar nl Indien u hier geen wachtwoord instelt, is de informatie beschikbaar voor iedereen die de URL kent!!! +ignore conflict calendar nl Conflict negeren +import calendar nl Importeren +import csv-file common nl CSV-bstand importeren +interval calendar nl Herhaling +intervals in day view calendar nl Intervallen in dagelijke weergave +invalid email-address "%1" for user %2 calendar nl Ongeldig emailadres "%1" voor gebruiker %2 +last calendar nl laatste +lastname of person to notify calendar nl Achternaam van persoon om te op de hoogte te brengen +link to view the event calendar nl Link om het evenement te bekijken +links calendar nl Links +links, attachments calendar nl Links, bijlagen +listview calendar nl Lijstweergave +location calendar nl Plaats +location to autoload from admin nl Plaats om van te laden +location, start- and endtimes, ... calendar nl Plaats, begin- en eindtijden +mail all participants calendar nl Stuur een email naar alle deelnemers +make freebusy information available to not loged in persons? calendar nl Maak vrij/bezet informatie beschikbaar voor nietingelogde personen? +minutes calendar nl minuten +modified calendar nl Gewijzigd +mon calendar nl Maa +monthly calendar nl Maandelijks +monthly (by date) calendar nl Maandelijks (op datum) +monthly (by day) calendar nl Maandelijks (op dag) +monthview calendar nl Maandweergave +new search with the above parameters calendar nl opnieuw zoeken met de bovenstaande instellingen +no events found calendar nl Geen gebeurtenissen gevonden +no filter calendar nl Geen filter +no matches found calendar nl Geen resultaten gevonden +no response calendar nl Geen Antwoord +non blocking calendar nl niet blokkerend +not calendar nl niet +notification messages for added events calendar nl Notificatieberichten voor toegevoegde afspraken +notification messages for canceled events calendar nl Notificatieberichten voor geannuleerde afspraken +notification messages for disinvited participants calendar nl Notificatieberichten voor deelnemers waarvan de uitnodiging is ingetrokken +notification messages for modified events calendar nl Notificatieberichten voor gewijzigde afspraken +notification messages for your alarms calendar nl Notificatieberichten voor uw alarms +notification messages for your responses calendar nl Notificatieberichten voor uw reacties +number of records to read (%1) calendar nl Aantal records om te lezen (%1) +observance rule calendar nl Regel in acht neming +occurence calendar nl Gebeurtenis +old startdate calendar nl Oude begindatum +on %1 %2 %3 your meeting request for %4 calendar nl Op %1 %2 %3 uw afspraak aanvraag voor %4 +on all modification, but responses calendar nl bij alle wijzigingen, behalve reacties +on any time change too calendar nl ook bij iedere wijziging van tijdstip +on invitation / cancelation only calendar nl alleen bij uitnodiging / annulering +on participant responses too calendar nl ook bij deelnemerreacties +on time change of more than 4 hours too calendar nl ook bij tijdswijziging van meer dan 4 uur +one month calendar nl n maand +one week calendar nl n week +one year calendar nl n jaar +only the initial date of that recuring event is checked! calendar nl Alleen de begindatum van die terugkerende gebeurtenis is gecontroleerd! +open todo's: calendar nl Openstaande taken: +overlap holiday calendar nl vakantie overlapt +participants calendar nl Deelnemers +participants disinvited from an event calendar nl Deelnemers waarvan de uitnodiging is ingetrokken +participants, resources, ... calendar nl Deelnemers, hulpmiddelen, ... +password for not loged in users to your freebusy information? calendar nl Wachtwoord voor niet-ingelogde gebruiker voor jouw vrij/bezet informatie? +people holiday calendar nl mensen vakantie +permission denied calendar nl Toegang geweigerd +planner by category calendar nl Planner per categorie +planner by user calendar nl Planner per gebruiker +please note: you can configure the field assignments after you uploaded the file. calendar nl Let op: U kunt het veld toewijzingen instellen NADAT u het bestand het geupload +preselected group for entering the planner calendar nl Voorgeselecteerde groep bij het openen van de planner +previous calendar nl vorige +private and global public calendar nl Priv en globaal publiek +private and group public calendar nl Priv en groep publiek +private only calendar nl Alleen priv +re-edit event calendar nl Afspraak opnieuw bewerken +receive email updates calendar nl Ontvang email updates +receive summary of appointments calendar nl Ontvang overzicht van afspraken +recurrence calendar nl Herhalingen +recurring event calendar nl terugkerende afspraak +rejected calendar nl Afgewezen +repeat days calendar nl Dagen herhalen +repeat the event until which date (empty means unlimited) calendar nl tot welke datum de gebeurtenis herhalen (leeg betekent onbeperkt) +repeat type calendar nl Herhalingstype +repeating event information calendar nl Afspraak herhalings informatie +repeating interval, eg. 2 to repeat every second week calendar nl herhalingsinterval, bijvoorbeeld 2 herhaalt iedere tweede week +repetition calendar nl Herhalingspatroon +repetitiondetails (or empty) calendar nl Details herhaling (of leeg laten) +reset calendar nl Herstel +resources calendar nl Hulpmiddelen +rule calendar nl Regel +sat calendar nl Zat +saves the changes made calendar nl bewaar de aangebrachte wijzigingen +saves the event ignoring the conflict calendar nl Bewaart de gebeurtenis en negeert het conflict +scheduling conflict calendar nl Afspraak conflict +select a %1 calendar nl Selecteer een %1 +select a time calendar nl selecteer een tijd +select resources calendar nl Selecteer hulpmiddelen +select who should get the alarm calendar nl Selecteer wie de herinnering moet ontvangen +set a year only for one-time / non-regular holidays. calendar nl Stel een een jaar in voor opzichstaande / niet reguliere feestdagen +set new events to private calendar nl Zet nieuwe afspraken op priv +should invitations you rejected still be shown in your calendar ?
you can only accept them later (eg. when your scheduling conflict is removed), if they are still shown in your calendar! calendar nl Moeten uitnodigingen die u heeft afgewezen nog steeds worden weergegeven in uw agenda?
U kunt ze alleen achteraf nog accepteren als ze in uw agenda worden weergegeven! (bijv. wanneer een planningsconflict is verwijderd) +should new events created as private by default ? calendar nl Moeten nieuwe afspraken standaard als priv worden aangemaakt? +should not loged in persons be able to see your freebusy information? you can set an extra password, different from your normal password, to protect this informations. the freebusy information is in ical format and only include the times when you are busy. it does not include the event-name, description or locations. the url to your freebusy information is %1. calendar nl Moeten niet-ingelogde personen jouw vrij/bezet informatie kunnen bekijken? Je kunt een extra wachtwoord instellen dat afwijkt van je normale wachtwoord, om deze informatie af te beveiligen. De vrij/bezet informatie is in iCal formaat en bevat uitsluitend de tijdstippen waarop je bezet bent. Het bevat niet de naam, omschrijving of locatie van de afspraak. De URL naar jouw vrij/bezet informatie is %1. +should the status of the event-participants (accept, reject, ...) be shown in brakets after each participants name ? calendar nl Moet de status van de afspraak-deelnemers (accepteren, afwijzen, ...) worden weergegeven tussen haakjes achter elke de namen van de deelnemers? +show default view on main screen calendar nl Geeft standaard overzicht weer op beginscherm +show invitations you rejected calendar nl Uitnodigingen weergeven die zijn afgewezen +show list of upcoming events calendar nl Lijst weergeven van toekomstige afspraken +show this month calendar nl toon deze maand +show this week calendar nl toon deze week +single event calendar nl enkele afspraak +site configuration calendar nl site configuratie +start calendar nl Begin +start date/time calendar nl Begindatum/ -tijd +startdate / -time calendar nl Begindatum / -tijd +startdate and -time of the search calendar nl Begindatum en -tijd van de zoekopdracht +startdate of the export calendar nl Begindatum van de export +startrecord calendar nl Startregel +status changed calendar nl Status gewijzigd +submit to repository calendar nl Naar repository inzenden +sun calendar nl Zon +tentative calendar nl op proef +test import (show importable records only in browser) calendar nl Test import (te impoteren records alleen in uw browser weergeven) +this day is shown as first day in the week or month view. calendar nl Deze dag wordt weergegeven als de eerste dag in de week- and maandweergave. +this defines the end of your dayview. events after this time, are shown below the dayview. calendar nl Dit definieert het einde van uw dagweergave. Afspraken die na deze tijd plaatsvinden worden onderaan de dagweergave weergegeven. +this defines the start of your dayview. events before this time, are shown above the dayview.
this time is also used as a default starttime for new events. calendar nl Dit definieert het begin van uw dagweergave. Afspraken die voor deze tijd plaatsvinden worden boven de dagweergave weergegeven.
Deze tijd wordt ook gebruikt als standaard begintijd voor nieuwe afspraken. +this group that is preselected when you enter the planner. you can change it in the planner anytime you want. calendar nl Deze groep is voorgeselecteerd wanneer u de planner opent. U kunt deze selectie in de planner eventueel wijzigen. +this message is sent for canceled or deleted events. calendar nl Deze notificatie wordt verstuurd voor geannuleerde en verwijderde afspraken. +this message is sent for modified or moved events. calendar nl Deze notificatie wordt verstuurd voor gewijzigde afspraken. +this message is sent to disinvited participants. calendar nl Deze notificatie wordt verstuurd aan deelnemers waarvan de uitnodiging is ingetrokken. +this message is sent to every participant of events you own, who has requested notifcations about new events.
you can use certain variables which get substituted with the data of the event. the first line is the subject of the email. calendar nl Deze notificatie wordt verstuurd naar elke deelnemer van uw afspraken die notificatie voor nieuwe afspraken heeft geactiveerd.
U kunt bepaalde plaatsvervangende woorden invullen die worden gebruikt met de gegevens van de afspraak. De eerste regel is het onderwerp van de email. +this message is sent when you accept, tentative accept or reject an event. calendar nl Deze notificatie wordt verstuurd wanneer u afspraken accepteert, op proef accepteert of afwijst. +this message is sent when you set an alarm for a certain event. include all information you might need. calendar nl Deze notificatie wordt verstuurd als u een alarm instelt voor een bepaalde afspraak. Geef aan welke informatie u mogelijker nodig heeft. +three month calendar nl drie maanden +thu calendar nl Don +til calendar nl tot +timeframe calendar nl Tijdskader +timeframe to search calendar nl Tijdskader om te zoeken +title of the event calendar nl Titel van afspraak +to many might exceed your execution-time-limit calendar nl Te veel kan mogelijk de uitvoertijd van dit programme overschrijden. +translation calendar nl Vertaling +tue calendar nl Din +two weeks calendar nl twee weken +updated calendar nl Bijgewerkt +use end date calendar nl Gebruik einddatum +use the selected time and close the popup calendar nl gebruik de geselecteerde tijd en sluit het popupvenster +view this event calendar nl Bekijk deze gebeurtenis +wed calendar nl Woe +week calendar nl Week +weekday starts on calendar nl De week begint op +weekdays calendar nl Weekdagen +weekdays to use in search calendar nl Weekdagen waarop gezocht moet worden +weekly calendar nl wekelijks +weekview calendar nl Weekweergave +weekview with weekend calendar nl weekweergave met weekend +weekview without weekend calendar nl weekweergave zonder weekend +which events do you want to see when you enter the calendar. calendar nl Welke afspraken wilt u zien wanneer u de agenda opent? +which of calendar view do you want to see, when you start calendar ? calendar nl Welke agendaweergave wilt u zien wanneer u de agenda opent? +whole day calendar nl hele dag +wk calendar nl Wk +work day ends on calendar nl Werkdag eindigt om +work day starts on calendar nl Werkdag begint om +yearly calendar nl Jaarlijks +yearview calendar nl Jaarweergave +you can either set a year or a occurence, not both !!! calendar nl U kunt of een Jaar of een Gebeurtenis in, niet beide !!! +you can only set a year or a occurence !!! calendar nl U kunt alleen een Jaar of een Gebeurtenis instellen !!! +you do not have permission to read this record! calendar nl U heeft geen toegang om dit record in te lezen +you have a meeting scheduled for %1 calendar nl U heeft een vergadering gepland voor %1 +you have been disinvited from the meeting at %1 calendar nl Uw uitnodiging voor de bijeenkomst op %1 is ingetrokken +you need to select an ical file first calendar nl U moet eerst een iCal selecteren +you need to set either a day or a occurence !!! calendar nl U moet of een Dag of een Gebeurtenis instellen !!! +your meeting scheduled for %1 has been canceled calendar nl U geplande vergadering voor %1 is geannuleerd. +your meeting that had been scheduled for %1 has been rescheduled to %2 calendar nl Uw vergadering die stond gepland voor %1 is opnieuw ingepland naar %2 diff --git a/calendar/setup/phpgw_no.lang b/calendar/setup/phpgw_no.lang new file mode 100644 index 0000000000..30ed93337d --- /dev/null +++ b/calendar/setup/phpgw_no.lang @@ -0,0 +1,309 @@ +%1 %2 in %3 calendar no %1 %2 i %3 +%1 records imported calendar no %1 oppfringer importert +%1 records read (not yet imported, you may go back and uncheck test import) calendar no %1 oppfringer lest (ikke importert enda, du kan g tilbake og hake av Test Import) +please note: the calendar use the holidays of your country, which is set to %1. you can change it in your %2.
holidays are %3 automatic installed from %4. you can changed it in %5. calendar no Vennligst bemerk: Kalenderen bruker helligdager for ditt land som er satt til %1. Du kan endre dette i ditt %2.Helligdager er %3 automatisk lagt til for %4. Du kan endre dette til %5. +a non blocking event will not conflict with other events calendar no En hendelse som ikke blokkerer vil ikke vre i konflikt med andre hendelser +accept or reject an invitation calendar no Aksepter eller avsl invitasjonen +accepted calendar no Godtatt +access denied to the calendar of %1 !!! calendar no Ikke tilgang til %1 kalender ! +action that caused the notify: added, canceled, accepted, rejected, ... calendar no Handling som utlste denne meldingen: Lagt til, Kansellert, Akseptert, Avsltt, ... +actions calendar no Aksjoner +add alarm calendar no Legg til alarm +added calendar no Lagt til +after current date calendar no Etter innevrende dato +alarm calendar no Alarm +alarm added calendar no Alarm lagt til +alarm deleted calendar no Alarm slettet +alarm for %1 at %2 in %3 calendar no Alarm for %1 ved %2 i %3 +alarm management calendar no Alarm Styring +alarms calendar no Alarmer +all categories calendar no Alle kategorier +all day calendar no Hele Dagen +all events calendar no Alle hendelser +all participants calendar no Alle deltagere +allows to edit the event again calendar no Tillate endring av alarmen +apply the changes calendar no Oppdater endringene +are you sure you want to delete this country ? calendar no Er du sikker p at du vil slette dette landet? +are you sure you want to delete this holiday ? calendar no Er du sikker p at du vil slette denne ferien? +back half a month calendar no Tilbake en halv mnd. +back one month calendar no Tilbake en mnd. +before current date calendar no For innevrende dato +before the event calendar no fr hendelsen +birthday calendar no Fdselsdag +busy calendar no Opptatt +by calendar no av +calendar event calendar no Kalender Hendelse +calendar holiday management admin no Kalender Feriestyring +calendar menu calendar no Kalendermeny +calendar preferences calendar no Kalender Preferanser +calendar settings admin no Kalender Innstillinger +calendar-fieldname calendar no Kalender-Feltnavn +can't add alarms in the past !!! calendar no Kan ikke legge til alarmer for passerte hendelser! +canceled calendar no Annullert +charset of file calendar no Karaktersett i fil +close the window calendar no Lukk vinduet +compose a mail to all participants after the event is saved calendar no Komponer en mail til alle deltagere etter at hendelsen er lagret +copy of: calendar no Kopi av: +copy this event calendar no Kopier denne hendelsen +countries calendar no Land +country calendar no Land +create an exception at this recuring event calendar no Opprett et unntak for denne repeterende hendelsen +create new links calendar no Opprett ny lenke +csv calendar no CSV +csv-fieldname calendar no CSV-Feltnavn +csv-filename calendar no CSV-Filnavn +custom fields common no Egendefinerte felt +daily calendar no Daglig +days calendar no dager +days of the week for a weekly repeated event calendar no Ukedag for ukentlig repeterende hendelser +days repeated calendar no dager gjentatt +dayview calendar no Dagvisning +default appointment length (in minutes) calendar no standard avtalelengde (i minutter) +default calendar filter calendar no Standard kalender filter +default calendar view calendar no Standard kalender visning +default length of newly created events. the length is in minutes, eg. 60 for 1 hour. calendar no Standard lengde for nyopprettede hendelse. Lengden er i minutter, f.eks 60 for 1 time. +default week view calendar no Standard ukevisning +defines the size in minutes of the lines in the day view. calendar no Definerer strrelsen p linjene i forhold til minutter i dagvisning. +delete series calendar no Slett en serie +delete this alarm calendar no Slett denne alarmen +delete this event calendar no Slett denne hendelsen +delete this exception calendar no Slett dette unntaket +delete this series of recuring events calendar no Slett serie med repeterende hendelser +disinvited calendar no Ikke lenger invitert +display status of events calendar no Vis Status av Hending +displayed view calendar no Gjeldende visning +displays your default calendar view on the startpage (page you get when you enter egroupware or click on the homepage icon)? calendar no Viser din standard kalender visning p startsiden (siden du fr nr du logger p eGroupWare eller klikker p hjemmeside-ikonet)? +do you want a weekview with or without weekend? calendar no nsker du ukevisning uten helg ? +do you want to be notified about new or changed appointments? you be notified about changes you make yourself.
you can limit the notifications to certain changes only. each item includes all the notification listed above it. all modifications include changes of title, description, participants, but no participant responses. if the owner of an event requested any notifcations, he will always get the participant responses like acceptions and rejections too. calendar no Vil du bli varslet om alle forandrede avtaler? Du blir varslet om alle endringer du selv utfrer.
Du kan begrense varslingen til bare gjelde spesifikke endringer. Hvert objekt inkluderer alle varslingene over det. Alle endringer inkluderer endringer av tittel, beskrivelse, men ikke deltakeres responser. Hvis eieren av en oppfring ber om varsling, vil han alltid f deltakeres responser som godkjenninger eller avslag ogs. +do you want to receive a regulary summary of your appointsments via email?
the summary is sent to your standard email-address on the morning of that day or on monday for weekly summarys.
it is only sent when you have any appointments on that day or week. calendar no nsker du motta regelmessige sammendrag av dine avtaler via e-post?
Oppsummeringen vil bli sendt til din standard e-post adresse p morgenen samme dag, eller p mandager for ukentlige sammendrag.
Den vil bare bli sendt nr du har en avtale den dagen eller uken. +do you wish to autoload calendar holidays files dynamically? admin no nsker du automatisk laste kalenderferiefiler? +download calendar no Last ned +download this event as ical calendar no Last ned denne hendelsen som iCal +duration of the meeting calendar no Varighet av mtet +edit exception calendar no Rediger unntak +edit series calendar no Redigere Serie +edit this event calendar no Endre hendelse +edit this series of recuring events calendar no Endre denne serien med repeterende hendelser +empty for all calendar no tm for alle +end calendar no Slutt +end date/time calendar no Slutt Dato/Tid +enddate calendar no Sluttdato +enddate / -time of the meeting, eg. for more then one day calendar no Sluttdato / - tid for mtet, dersom mere enn en dag. +enddate of the export calendar no Sluttdato for eksport +ends calendar no slutter +error adding the alarm calendar no Feil ved forsk p sette alarm +error: importing the ical calendar no Feil: Ved import av iCal +error: no participants selected !!! calendar no Feil: Ingen deltagere valgt! +error: saving the event !!! calendar no Feil ved forsk p lagring av hendelse! +error: starttime has to be before the endtime !!! calendar no Feil: Starttid m vre fr sluttid! +event copied - the copy can now be edited calendar no Hendelse kopiert - kopien kan n endres +event deleted calendar no Hendelse slettet +event details follow calendar no Hendelses Detaljer Flger +event saved calendar no Hendelse lagret +event will occupy the whole day calendar no Hendelse opptar hele dagen +exception calendar no Unntak +exceptions calendar no Unntak +existing links calendar no Eksisterende lenker +export calendar no Eksporter +extended calendar no Forlenget +extended updates always include the complete event-details. ical's can be imported by certain other calendar-applications. calendar no Forlengelses-endringer inkluderer alltid komplette hendelses-detaljer. iCal filer kan importeres i fler andre kalender programmer. +fieldseparator calendar no Feltseperator +filename calendar no Filnavn +filename of the download calendar no Filnavn for nedlastingen +find free timeslots where the selected participants are availible for the given timespan calendar no Finn frie tidssoner hvor de valgte deltagerne er tilgjengelig for angitt varighet. +firstname of person to notify calendar no Fornavn til person som skal varsles +for calendar no for +format of event updates calendar no Format p hendelsesoppdateringer +forward half a month calendar no Forover en halv mnd. +forward one month calendar no Forover en mnd. +freebusy: unknow user '%1', wrong password or not availible to not loged in users !!! calendar no Ledig/opptatt: Ukjent bruker '%1', feil passord eller ikke tilgjengelig nr du ikke er innlogget !!! +freetime search calendar no Sk etter fri tid +fri calendar no Fre +full description calendar no Full beskrivelse +fullname of person to notify calendar no Hele navnet til person som skal varsles +general calendar no Generell +global public and group public calendar no Global offentlig og gruppe offentlig +global public only calendar no Global offentlig Bare +group invitation calendar no Gruppeinvitasjon +group planner calendar no Gruppeplanlegger +group public only calendar no Bare offentlig gruppe +groupmember(s) %1 not included, because you have no access. calendar no Gruppemedlem(mer) %1 ikke inkludert fordi du ikke har ndvendig tillatelse +here is your requested alarm. calendar no Her er varslingen du ba om. +high priority calendar no hy prioritet +holiday calendar no Ferie +holiday management calendar no Feriestyring +holidays calendar no Ferier +hours calendar no timer +how far to search (from startdate) calendar no Hvor langt skal det skes (fra startdato) +ical calendar no iCal +ical / rfc2445 calendar no iCal / rfc2445 +ical export calendar no iCal eksport +ical file calendar no iCal fil +ical import calendar no iCal import +ical successful imported calendar no iCal ble importert +if checked holidays falling on a weekend, are taken on the monday after. calendar no Hvis merket ferie faller p en helg, blir den tatt mandagen etter. +if you dont set a password here, the information is available to everyone, who knows the url!!! calendar no Dersom du ikke setter et passord her vil informasjonen vre tilgjengelig for alle som kjenner nettadressen ! +ignore conflict calendar no Ignorer konflikt +import calendar no Importer +import csv-file calendar no Importer CSV-Fil +interval calendar no Intervall +intervals in day view calendar no Intervaller i dagvisning +invalid email-address "%1" for user %2 calendar no Feil e-mailadresse "%1" for bruker %2 +last calendar no siste +lastname of person to notify calendar no Etternavn til person som skal varsles +link to view the event calendar no Lenke til hendelse +links calendar no Lenker +links, attachments calendar no Lenker, tillegg +listview calendar no Listevisning +location calendar no Lokasjon +location to autoload from admin no Lokasjon automatisk laste fra +location, start- and endtimes, ... calendar no Lokasjon, start- og sluttid,... +mail all participants calendar no Send e-mail til deltagerne +make freebusy information available to not loged in persons? calendar no Skal informasjon om ledig/opptatt vre tilgjengelig for personer som ikke er plogget ? +minutes calendar no minutter +modified calendar no Endret +mon calendar no Man +monthly calendar no Mnedlig +monthly (by date) calendar no Mnedlig (etter dato) +monthly (by day) calendar no Mnedlig (etter dag) +monthview calendar no Mnedlig visning +new search with the above parameters calendar no Nytt sk med ovenstrende parametre +no events found calendar no Ingen hendelser funnet +no filter calendar no uten filter +no matches found calendar no Ingen treff funnet +no response calendar no Ingen Respons +non blocking calendar no Ikke blokkerende +notification messages for added events calendar no Varslingsmeldinger for tillagte hendelser +notification messages for canceled events calendar no Varslingsmeldinger for avbrutte hendelser +notification messages for disinvited participants calendar no Varslingsmeldinger for avmeldte deltagere +notification messages for modified events calendar no Varslingsmeldinger for endrede hendelser +notification messages for your alarms calendar no Varslingsmeldinger for dine alarmer +notification messages for your responses calendar no Varslingsmeldinger for dine responser +number of records to read (%1) calendar no Antall rekker som leses (%1) +observance rule calendar no Regel +occurence calendar no Hendelse +old startdate calendar no Gammel Startdato +on %1 %2 %3 your meeting request for %4 calendar no P %1 %2 %3 din mte foresprsel for %4 +on all modification, but responses calendar no p alle endringer, utenom responser +on any time change too calendar no p alle tidsendringer ogs +on invitation / cancelation only calendar no bare p invitasjon / kansellering +on participant responses too calendar no p deltakerers responser ogs +on time change of more than 4 hours too calendar no p tidsendringer p mer en 4 timer ogs +one month calendar no en mned +one week calendar no en uke +one year calendar no et r +only the initial date of that recuring event is checked! calendar no Bare startdato for den repeterende handlingen blir kontrollert ! +open todo's: calendar no pne gjreml liste: +overlap holiday calendar no overlapp ferie +participants calendar no Deltakere +participants disinvited from an event calendar no Deltagere avmeldt fra en hendelse +participants, resources, ... calendar no Deltagere, ressurser,.... +password for not loged in users to your freebusy information? calendar no Passord for ikke ploggede brukere til din freebusy informasjon? +people holiday calendar no personer ferie +permission denied calendar no Ingen tilgang +planner by category calendar no Planlegger for kategorier +planner by user calendar no Planlegger for bruker +please note: you can configure the field assignments after you uploaded the file. calendar no Vennligst noter: Du kan konfigurere felttillegene etter at du har lastet opp filen. +preselected group for entering the planner calendar no Forhndsvelg gruppe nr du starter planlegger +previous calendar no Foregende +private and global public calendar no Privat og Felles +private and group public calendar no Privat og Felles +private only calendar no Bare Privat +re-edit event calendar no Omgjre oppfring +receive email updates calendar no Motta e-post oppdateringer +receive summary of appointments calendar no Motta et sammendrag av avtaler +recurrence calendar no Repeterende +recurring event calendar no periodisk oppfring +rejected calendar no Avsltt +repeat days calendar no Repeterende dag +repeat the event until which date (empty means unlimited) calendar no Repeter hendelse til hvilken dato (tom setter ingen grense) +repeat type calendar no Gjenta type +repeating event information calendar no Gjenta oppfringsinformasjon +repeating interval, eg. 2 to repeat every second week calendar no Repeterende interval, feks. 2 for hver annen uke +repetition calendar no Gjentakelse +repetitiondetails (or empty) calendar no Repitasjonsdetaljer (eller tom) +reset calendar no Tilbakestill +resources calendar no Ressurser +rule calendar no Regel +sat calendar no Lr +saves the changes made calendar no Lagre endringene +saves the event ignoring the conflict calendar no Lagre hendelse uten hensyn til konflikt +scheduling conflict calendar no Planleggingskonflikt +select a %1 calendar no Velg en %1 +select a time calendar no velg en tid +select resources calendar no Velg ressurser +select who should get the alarm calendar no Velg hvem som skal motta alarmen +set a year only for one-time / non-regular holidays. calendar no Sett kun ett r for engangs / ikke faste ferier. +set new events to private calendar no Sett nye oppfringer som private +should invitations you rejected still be shown in your calendar ?
you can only accept them later (eg. when your scheduling conflict is removed), if they are still shown in your calendar! calendar no Skal invitasjoner som du avslo fortsatt vises i kalenderen din?
Du kan bare akseptere dem senere (f.eks. nr planleggingskonflikten din er fjernet), hvis den fortsatt viser i din kalender! +should new events created as private by default ? calendar no Skal nye oppfringer som blir laget, vre private som standard? +should not loged in persons be able to see your freebusy information? you can set an extra password, different from your normal password, to protect this informations. the freebusy information is in ical format and only include the times when you are busy. it does not include the event-name, description or locations. the url to your freebusy information is %1. calendar no Skal personer som ikke er ploggt ha muliget se din freebusy informasjon? Du kan sette et ekstra passord, forkjellig fra ditt normale passord, for beskytte denne informasjonen. Freebusy informasjonen er i iCal format og inkluderer bare tider du er opptatt. Den inkluderer ikke oppfringsnavn, beskrivelse eller lokasjon. Adressen til din freebusy informasjon er %1. +should the status of the event-participants (accept, reject, ...) be shown in brakets after each participants name ? calendar no Skal status p oppfrings-deltakere(godta, avsl,...) bli vist som bokser etter hver deltakers navn ? +show default view on main screen calendar no Vis standardvisning p hovedskjermen +show invitations you rejected calendar no Vis invitasjoner du avslo +show list of upcoming events calendar no Vis liste av kommende oppfringer +show this month calendar no vis denne mneden +show this week calendar no vis denne uken +single event calendar no enkel oppfring +start calendar no Start +start date/time calendar no Start Dato/Tid +startdate / -time calendar no Startdato /-tid +startdate and -time of the search calendar no Startdato og -tid i sket +startdate of the export calendar no Startdato for eksport +startrecord calendar no Startrekke +status changed calendar no Status endret +submit to repository calendar no Send til Arkiv +sun calendar no Sn +tentative calendar no Forelpig +test import (show importable records only in browser) calendar no Test import (vis importerte registreringer bare i nettleseren) +this day is shown as first day in the week or month view. calendar no Denne dagen blir vist som frste dag i uke- eller mneds-visning +this defines the end of your dayview. events after this time, are shown below the dayview. calendar no Dette definerer slutten p din dagvisning. Oppfringer etter denne tiden vil bli vist under dagvisningen. +this defines the start of your dayview. events before this time, are shown above the dayview.
this time is also used as a default starttime for new events. calendar no Dette definerer starten p din dagvisning. Oppfringer fr denne tiden vil bli vist over dagvisningen.
Denne tiden vil ogs bli brukt som standard start-tid for nye oppfringer. +this group that is preselected when you enter the planner. you can change it in the planner anytime you want. calendar no Denne gruppen er forhndsvalgt nr du starter planleggeren. Du kan endre den i planleggeren din nr du mtte nske. +this message is sent for canceled or deleted events. calendar no Denne meldingen blir sent for kansellerte eller slettede oppfringer. +this message is sent for modified or moved events. calendar no Denne meldingen er sendt for endrede eller flyttede oppfringer +this message is sent to disinvited participants. calendar no Denne meldingen er til avmeldte deltagere. +this message is sent to every participant of events you own, who has requested notifcations about new events.
you can use certain variables which get substituted with the data of the event. the first line is the subject of the email. calendar no Denne meldingen blir sendt til alle deltakere p denne oppfringen som du er eier av, som har bedt om en varsling om nye oppfringer.
Du kan bruke forskjellige alternativer som blir byttet med innholdet i denne oppfringen. Den frste linjen er overskriften av e-posten. +this message is sent when you accept, tentative accept or reject an event. calendar no Denne meldingen blir sendt nr du godtar, forsksvis godtar, eller avslr en oppfring. +this message is sent when you set an alarm for a certain event. include all information you might need. calendar no Denne meldingen blir sendt nr du har satt en Alarm for en spesiell oppfring. Inkluder all den informasjonen du trenger. +three month calendar no tre mneder +thu calendar no Tor +til calendar no til +timeframe calendar no Tidsrom +timeframe to search calendar no Tidrom for sk +title of the event calendar no Tittel p oppfringen +to many might exceed your execution-time-limit calendar no for mange vil muligens overskride din eksekverings-tidsgrense +translation calendar no Oversettelse +tue calendar no Tir +two weeks calendar no To uker +updated calendar no Oppdatert +use end date calendar no Bruk sluttdato +use the selected time and close the popup calendar no bruk valgt tid og lukk popup-vinduet +view this event calendar no Vis denne hendelsen +wed calendar no Ons +week calendar no Uke +weekday starts on calendar no Ukedag starer p +weekdays calendar no Ukedager +weekdays to use in search calendar no Ukedager som skal benyttes i sk +weekly calendar no Ukentlig +weekview calendar no Ukevisning +weekview with weekend calendar no Ukevisning inkl. helg +weekview without weekend calendar no Ukevisning eksl. helg +which events do you want to see when you enter the calendar. calendar no Hvilke oppfringer du nsker se nr du starter kalenderen. +which of calendar view do you want to see, when you start calendar ? calendar no Hvilke kalendervisning nsker du se nr du starter kalenderen? +whole day calendar no Hele dagen +wk calendar no Uke +work day ends on calendar no Arbeidsdagen ender p +work day starts on calendar no Arbeidsdagen starter p +yearly calendar no rlig +yearview calendar no rlig Visning +you can either set a year or a occurence, not both !!! calendar no Du kan enten sette ett r eller en hendelse, ikke begge!!! +you can only set a year or a occurence !!! calendar no Du kan bare sette ett r eller en hendelse !!! +you do not have permission to read this record! calendar no Du har ikke tilgang til lese denne oppfringen! +you have a meeting scheduled for %1 calendar no Du har ett mte planlagt for %1 +you have been disinvited from the meeting at %1 calendar no Du har blitt avmeldt fra mtet den %1 +you need to select an ical file first calendar no Du m velge en iCal-fil frst +you need to set either a day or a occurence !!! calendar no Du m enten sette en dag eller hendelse !!! +your meeting scheduled for %1 has been canceled calendar no Mtet ditt planlagt for %1 har blitt kansellert +your meeting that had been scheduled for %1 has been rescheduled to %2 calendar no Mtet ditt som var planlagt for %1 har blitt flyttet til %2 +h calendar no t diff --git a/calendar/setup/phpgw_pt-br.lang b/calendar/setup/phpgw_pt-br.lang new file mode 100644 index 0000000000..a6f6dd7656 --- /dev/null +++ b/calendar/setup/phpgw_pt-br.lang @@ -0,0 +1,312 @@ +%1 %2 in %3 calendar pt-br %1 %2 em %3 +%1 records imported calendar pt-br %1 registro(s) importado(s) +%1 records read (not yet imported, you may go back and uncheck test import) calendar pt-br %1 registro(s) lido(s) (no importado(s) ainda. Voc deve voltar e desmarcar "Testar Importao") +please note: the calendar use the holidays of your country, which is set to %1. you can change it in your %2.
holidays are %3 automatic installed from %4. you can changed it in %5. calendar pt-br Ateno: A Agenda de Eventos usa os feriados de seu pas, que est configurado como %1. Voc pode alter-lo em %2.
Feriados so %3 automaticamente instalados de %4. Voc pode alterar isso em %5. +a non blocking event will not conflict with other events calendar pt-br Um evento no bloqueador no ir conflitar com outros eventos +accept or reject an invitation calendar pt-br Aceitar ou rejeitar um convite +accepted calendar pt-br Aceito +access denied to the calendar of %1 !!! calendar pt-br Acesso negado agenda de %1 +action that caused the notify: added, canceled, accepted, rejected, ... calendar pt-br Ao que provocou a notificao: (Adicionada, Cancelada, Aceita, Rejeitada, ...) +actions calendar pt-br Aes +add alarm calendar pt-br Adicionar aviso +added calendar pt-br Adicionado +after current date calendar pt-br Aps data atual +alarm calendar pt-br Alarme +alarm added calendar pt-br Alarme adicionado +alarm deleted calendar pt-br Alarme removido +alarm for %1 at %2 in %3 calendar pt-br Alarme para %1 em %2 na %3 +alarm management calendar pt-br Gerenciador de alarmes +alarms calendar pt-br Alarmes +all categories calendar pt-br Todas as categorias +all day calendar pt-br Todo o dia +all events calendar pt-br Todos os eventos +all participants calendar pt-br Todos os participantes +allows to edit the event again calendar pt-br Permite editar o evento novamente +apply the changes calendar pt-br aplicar as alteraes +are you sure you want to delete this country ? calendar pt-br Voc tem certeza que deseja remover este pas? +are you sure you want to delete this holiday ? calendar pt-br Voc tem certeza que deseja remover este feriado ? +back half a month calendar pt-br voltar metade de um ms +back one month calendar pt-br voltar um ms +before current date calendar pt-br Antes da data atual +before the event calendar pt-br antes do evento +birthday calendar pt-br Aniversrio +busy calendar pt-br ocupado +by calendar pt-br por +calendar event calendar pt-br Evento da Agenda de Eventos +calendar holiday management admin pt-br Gerenciamento de feriados da Agenda de Eventos +calendar menu calendar pt-br Menu da Agenda de Eventos +calendar preferences calendar pt-br Preferncias da Agenda de Eventos +calendar settings admin pt-br Configuraes da Agenda de Eventos +calendar-fieldname calendar pt-br Agenda de Eventos-Nome do Campo +can't add alarms in the past !!! calendar pt-br No possvel incluir alarmes no passado !! +canceled calendar pt-br Cancelado +charset of file calendar pt-br Charset do arquivo +close the window calendar pt-br Fechar a janela +compose a mail to all participants after the event is saved calendar pt-br compor um e-mail para todos os participantes aps o evento ser salvo +copy of: calendar pt-br Copiar para: +copy this event calendar pt-br Copiar este evento +countries calendar pt-br Pases +country calendar pt-br Pas +create an exception at this recuring event calendar pt-br Criar uma exceo para este evento recorrente +create new links calendar pt-br Criar novos links +csv calendar pt-br CSV +csv-fieldname calendar pt-br CVS-Nome do Campo +csv-filename calendar pt-br CVS-Nome do arquivo +custom fields common pt-br Campos Personalizados +daily calendar pt-br Diria +days calendar pt-br dias +days of the week for a weekly repeated event calendar pt-br Dias da semana para um evento semanal recorrrente +days repeated calendar pt-br dias repetidos +dayview calendar pt-br Viso diria +default appointment length (in minutes) calendar pt-br durao padro do compromisso (em minutos) +default calendar filter calendar pt-br Filtro padro do calendrio +default calendar view calendar pt-br Visualizao padro do calendrio +default length of newly created events. the length is in minutes, eg. 60 for 1 hour. calendar pt-br Durao padro dos novos compromissos. A durao em minutos, ex. 60 para 1 hora +default week view calendar pt-br Visualizao semanal padro +delete series calendar pt-br Remover srie +delete this alarm calendar pt-br Remover este alarme +delete this event calendar pt-br Remover este evento +delete this exception calendar pt-br Remover esta exceo +delete this series of recuring events calendar pt-br Remover esta srie de eventos recorrentes +disinvited calendar pt-br Desconvidado +display status of events calendar pt-br Exibir status dos eventos +displayed view calendar pt-br Visualizao exibida +displays your default calendar view on the startpage (page you get when you enter egroupware or click on the homepage icon)? calendar pt-br Exibe sua Agenda de Eventos padro na sua pgina inicial. (ser exibida quando voc clicar sobre o cone Pgina Inicial) +do you want a weekview with or without weekend? calendar pt-br Voc quer uma visualizao semanal com ou sem finais de semana? +do you want to be notified about new or changed appointments? you be notified about changes you make yourself.
you can limit the notifications to certain changes only. each item includes all the notification listed above it. all modifications include changes of title, description, participants, but no participant responses. if the owner of an event requested any notifcations, he will always get the participant responses like acceptions and rejections too. calendar pt-br Deseja ser notificado sobre compromissos novos ou alterados? Voc ser notificado sobre as alteraes efetuadas por voc mesmo.
Voc pode limitar essas notificaes para apenas algumas alteraes. Cada item inclui as notificaes listadas sobre o mesmo. Todas as alteraes incluem mudana de ttulo, descrio, participantes (menos suas respostas). Se o dono de um evento requisitar qualquer notificao, sempre receber as respostas dos participantes como aceite ou cancelamentos. +do you want to receive a regulary summary of your appointsments via email?
the summary is sent to your standard email-address on the morning of that day or on monday for weekly summarys.
it is only sent when you have any appointments on that day or week. calendar pt-br Deseja receber regularmente um resumo de seus compromissos via correio eletrnico?
O sumrio ser enviado para seu endereo eletrnico padro na manh de cada dia ou na Segunda-feira para resumos semanais (somente se houverem eventos na semana).
+do you wish to autoload calendar holidays files dynamically? admin pt-br Deseja carregar automaticamente arquivos de feriados da Agenda de Eventos dinmicamente ? +download calendar pt-br Baixar +download this event as ical calendar pt-br Baixar este arquivo como iCal +duration of the meeting calendar pt-br Durao do evento +edit exception calendar pt-br Editar exceo +edit series calendar pt-br Editar sries +edit this event calendar pt-br Editar este evento +edit this series of recuring events calendar pt-br Editar esta srie de eventos recorrentes +empty for all calendar pt-br vazio para todos +end calendar pt-br Fim +end date/time calendar pt-br Data/Hora do trmino +enddate calendar pt-br Data Final +enddate / -time of the meeting, eg. for more then one day calendar pt-br Data Final / -tempo do evento, exemplo: para mais de um dia +enddate of the export calendar pt-br Data Final da exportao +ends calendar pt-br termina +error adding the alarm calendar pt-br Erro adicionando o alarme +error: importing the ical calendar pt-br Erro importanto o iCal +error: no participants selected !!! calendar pt-br Erro: nenhum participante selecionado !! +error: saving the event !!! calendar pt-br Erro salvando o evento +error: starttime has to be before the endtime !!! calendar pt-br Erro: horrio de incio deve ser anterior ao horrio de trmino +event copied - the copy can now be edited calendar pt-br Evento copiado - agora a cpia pode ser editada +event deleted calendar pt-br Evento removido +event details follow calendar pt-br Seguem detalhes do evento +event saved calendar pt-br Evento salvo +event will occupy the whole day calendar pt-br Evento ir ocupar todo o dia +exception calendar pt-br Exceo +exceptions calendar pt-br Excees +existing links calendar pt-br Links existentes +export calendar pt-br Exportar +extended calendar pt-br Extendido +extended updates always include the complete event-details. ical's can be imported by certain other calendar-applications. calendar pt-br Atualizaes extendidas sempre incluem os detalhes completos do evento. iCals podem ser importados por certos aplicativos de calendrios +fieldseparator calendar pt-br Separador de campos +filename calendar pt-br Nome do arquivo +filename of the download calendar pt-br Nome do arquivo do download +find free timeslots where the selected participants are availible for the given timespan calendar pt-br Encontrar horrio onde os participantes selecionados esto disponveis +firstname of person to notify calendar pt-br Primeiro nome da pessoa a ser notificada +for calendar pt-br para +for which views should calendar show distinct lines with a fixed time interval. calendar pt-br Para cada visualizao a Agenda dever exibir linhas distintas com intervalos de tempo fixos. +format of event updates calendar pt-br Formato de atualizo de eventos +forward half a month calendar pt-br avanar metade de um ms +forward one month calendar pt-br avanar um ms +four days view calendar pt-br Viso de 4 dias +freebusy: unknow user '%1', wrong password or not availible to not loged in users !!! calendar pt-br Disponibilidade: Usurio '%1' desconhecido, senha incorreta ou no disponvel para os usurios acessando o sistema. +freetime search calendar pt-br Procurar disponibilidade +fri calendar pt-br Sex +full description calendar pt-br Descrio Completa +fullname of person to notify calendar pt-br Nome completo da pessoa a ser notificada +general calendar pt-br Geral +global public and group public calendar pt-br Pblico global e Grupo pblico +global public only calendar pt-br Pblico global somente +group invitation calendar pt-br Convite de grupo +group planner calendar pt-br Planejamento do Grupo +group public only calendar pt-br Grupo pblico somente +groupmember(s) %1 not included, because you have no access. calendar pt-br Membro(s) %1 no includo(s), pois voc no tem acesso. +h calendar pt-br h +here is your requested alarm. calendar pt-br Aqui est o alarme solicitado +high priority calendar pt-br Alta prioridade +holiday calendar pt-br Feriado +holiday management calendar pt-br Gerenciamento de Feriados +holidays calendar pt-br Feriados +hours calendar pt-br horas +how far to search (from startdate) calendar pt-br at onde procurar (da data de incio) +how many minutes should each interval last? calendar pt-br Quantos minutos cada intervalo dever durar ? +ical calendar pt-br iCal +ical / rfc2445 calendar pt-br iCal / rfc2445 +ical export calendar pt-br exportao iCal +ical file calendar pt-br arquivo iCal +ical import calendar pt-br importao iCal +ical successful imported calendar pt-br iCal importado com sucesso +if checked holidays falling on a weekend, are taken on the monday after. calendar pt-br Se os feriados coincidirem com o fim de semana, sero transferidos para a prxima segunda-feira. +if you dont set a password here, the information is available to everyone, who knows the url!!! calendar pt-br Se voc no configurar uma senha aqui a informao ficar disponvel para qualquer um que souber a URL! +ignore conflict calendar pt-br Ignorar conflito +import calendar pt-br Importar +import csv-file common pt-br Importar arquivo-CSV +interval calendar pt-br Intervalo +invalid email-address "%1" for user %2 calendar pt-br E-mail %1 invlido para o usurio %2 +last calendar pt-br ltimo +lastname of person to notify calendar pt-br Sobrenome da pessoa a ser notificada +length of the time interval calendar pt-br Durao do tempo de intervalo +link to view the event calendar pt-br Link para visualizar o evento +links calendar pt-br Links +links, attachments calendar pt-br Links, Anexos +listview calendar pt-br Viso em lista +location calendar pt-br Localizao +location to autoload from admin pt-br Local de onde carregar automaticamente +location, start- and endtimes, ... calendar pt-br Local, Horrios de incio e trmino, ... +mail all participants calendar pt-br Enviar e-mail para todos os participantes +make freebusy information available to not loged in persons? calendar pt-br Mostrar informao de disponibilidade para pessoas no logadas? +minutes calendar pt-br minutos +modified calendar pt-br Modificado +mon calendar pt-br Seg +monthly calendar pt-br Mensalmente +monthly (by date) calendar pt-br mensalmente (por data) +monthly (by day) calendar pt-br mensalmente (por dia) +monthview calendar pt-br Viso mensal +new search with the above parameters calendar pt-br nova pesquisa com os parmetros acima +no events found calendar pt-br Nenhum evento encontrado +no filter calendar pt-br Sem filtro +no matches found calendar pt-br Nenhum registro encontrado +no response calendar pt-br Sem resposta +non blocking calendar pt-br Posse compartilhada +notification messages for added events calendar pt-br Mensagem para notificao de eventos adicionados +notification messages for canceled events calendar pt-br Mensagem para notificao de eventos cancelados +notification messages for disinvited participants calendar pt-br Mensagem para notificao de participantes desconvidados +notification messages for modified events calendar pt-br Mensagem para notificao de eventos modificados +notification messages for your alarms calendar pt-br Mensagem para notificao de seus alarmes +notification messages for your responses calendar pt-br Mensagem para notificao de suas respostas +number of records to read (%1) calendar pt-br Nmero de registros a serem lidos (%1) +observance rule calendar pt-br Regra de observncia +occurence calendar pt-br Ocorrncia +old startdate calendar pt-br Data de Incio anterior +on %1 %2 %3 your meeting request for %4 calendar pt-br Em %1%2%3 sua requisio de compromisso para %4 +on all modification, but responses calendar pt-br em todas as modificaes, menos respostas +on any time change too calendar pt-br em qualquer alterao de horrio tambm +on invitation / cancelation only calendar pt-br ao convidar / recusar somente +on participant responses too calendar pt-br em respostas dos participantes tambm +on time change of more than 4 hours too calendar pt-br em mudanas superiores a 4 horas tambm +one month calendar pt-br um ms +one week calendar pt-br uma semana +one year calendar pt-br um ano +only the initial date of that recuring event is checked! calendar pt-br Somente a data inicial do evento recorrente foi informada! +open todo's: calendar pt-br Abrir tarefas +overlap holiday calendar pt-br sobrepor feriado +participants calendar pt-br Participantes +participants disinvited from an event calendar pt-br Participantes desconvidados de um evento +participants, resources, ... calendar pt-br Participantes, Recursos, ... +password for not loged in users to your freebusy information? calendar pt-br Senha para usurios no logados acessarem informaes sobre disponibilidade? +people holiday calendar pt-br feriado pessoal +permission denied calendar pt-br Permisso negada +planner by category calendar pt-br Organizar por categoria +planner by user calendar pt-br Organizar por usurio +please note: you can configure the field assignments after you uploaded the file. calendar pt-br Ateno: Voc pode configurar o campo de designao APS o carregamento do arquivo. +preselected group for entering the planner calendar pt-br Grupo pr-selecionado para entrada no organizador +previous calendar pt-br anterior +private and global public calendar pt-br Particular e pblico globalmente +private and group public calendar pt-br Particular e pblico ao grupo +private only calendar pt-br Particular somente +re-edit event calendar pt-br Reeditar evento +receive email updates calendar pt-br Receber atualizaes via correio eletrnico +receive summary of appointments calendar pt-br Receber sumrio dos compromissos +recurrence calendar pt-br Repetio +recurring event calendar pt-br Evento recorrente +rejected calendar pt-br Rejeitado +repeat days calendar pt-br Dias para repetio +repeat the event until which date (empty means unlimited) calendar pt-br repetir o evento at qual data (vazio para sempre) +repeat type calendar pt-br Tipo de repetio +repeating event information calendar pt-br Repetindo informao do evento +repeating interval, eg. 2 to repeat every second week calendar pt-br intervalo de repetio (2 para repetir a cada duas semanas) +repetition calendar pt-br Repetio +repetitiondetails (or empty) calendar pt-br detalhes da repetio (ou vazio) +reset calendar pt-br Limpar +resources calendar pt-br Recursos +rule calendar pt-br Regra +sat calendar pt-br Sb +saves the changes made calendar pt-br salvar as alteraes feitas +saves the event ignoring the conflict calendar pt-br Salvar o evento ignorando o conflito +scheduling conflict calendar pt-br Conflito de agendamento +select a %1 calendar pt-br selecionar um %1 +select a time calendar pt-br selecionar um horrio +select resources calendar pt-br Selecionar recursos +select who should get the alarm calendar pt-br Selecionar quem dever receber o alarme +set a year only for one-time / non-regular holidays. calendar pt-br Informar ano apenas para feriado flutuante/ocorrncia nica +set new events to private calendar pt-br Colocar novos itens como particular +should invitations you rejected still be shown in your calendar ?
you can only accept them later (eg. when your scheduling conflict is removed), if they are still shown in your calendar! calendar pt-br Os convites recusados devem permanecer no seu calendrio ?
Voc poder aceit-los depois (ex. quando desfizer conflitos de horrios), caso eles ainda estejam em sua Agenda de Eventos. +should new events created as private by default ? calendar pt-br Novos eventos criados devem ser colocados como privados por padro? +should not loged in persons be able to see your freebusy information? you can set an extra password, different from your normal password, to protect this informations. the freebusy information is in ical format and only include the times when you are busy. it does not include the event-name, description or locations. the url to your freebusy information is %1. calendar pt-br Usurios no logados podem ver sua informao de disponibilidade? Voc pode especificar uma senha extra, diferente da senha normal, para proteger esta informao. A disponibilidade est em formato iCal e somente inclue os horrios em que voc est ocupado(a). No so includos o ttulo, descrio ou local do evento. A URL para sua disponibilidade %1. +should the status of the event-participants (accept, reject, ...) be shown in brakets after each participants name ? calendar pt-br O status de cada participante (aceito, rejeitado, ...) deve ser mostrado entre parenteses logo aps o nome do mesmo? +show default view on main screen calendar pt-br Exibir visualizao padro na tela principal +show invitations you rejected calendar pt-br Exibir convites que voc cancelou +show list of upcoming events calendar pt-br Exibir a lista de eventos futuros +show this month calendar pt-br Exibir este ms +show this week calendar pt-br Exibir esta semana +single event calendar pt-br Evento nico +start calendar pt-br Incio +start date/time calendar pt-br Incio Data/Hora +startdate / -time calendar pt-br Data Inicial / Horrio +startdate and -time of the search calendar pt-br Incio e horrio para pesquisar +startdate of the export calendar pt-br Data Inicial da exportao +startrecord calendar pt-br Registro inicial +status changed calendar pt-br Status alterado +submit to repository calendar pt-br Enviar para o repositrio +sun calendar pt-br Dom +tentative calendar pt-br Tentativa +test import (show importable records only in browser) calendar pt-br Testar Importao (mostar somente registros que podem ser importados no navegador) +this day is shown as first day in the week or month view. calendar pt-br Esse dia ser mostrado como primeiro dia da semana na viso semanal e mensal +this defines the end of your dayview. events after this time, are shown below the dayview. calendar pt-br Isso define o ltimo horrio da viso diria. Eventos alm desse horrio so mostrados abaixo do dia. +this defines the start of your dayview. events before this time, are shown above the dayview.
this time is also used as a default starttime for new events. calendar pt-br Isso define o primeiro horrio da viso diria. Eventos antes desse horrio so mostrados acima do dia.
Esse horrio tambm ser o horrio inicial para novos eventos. +this group that is preselected when you enter the planner. you can change it in the planner anytime you want. calendar pt-br Esse grupo pr-selecionado ao entrar no organizador. Voc poder modific-lo a qualquer tempo. +this message is sent for canceled or deleted events. calendar pt-br Essa mensagem enviada para enventos cancelados ou apagados. +this message is sent for modified or moved events. calendar pt-br Esta mensagem enviada para eventos modificados ou transferidos. +this message is sent to disinvited participants. calendar pt-br Esta mensagem enviada para participantes desconvidados +this message is sent to every participant of events you own, who has requested notifcations about new events.
you can use certain variables which get substituted with the data of the event. the first line is the subject of the email. calendar pt-br Essa mensagem enviada para cada participante dos eventos que voc criou, que pediram informaes sobre novos eventos.
Voc pode usar certas variveis que subtituiro dados nos seus eventos. A primeira linha o assunto do email. +this message is sent when you accept, tentative accept or reject an event. calendar pt-br Essa mensagem enviada quando voc aceita, aceita com possibilidade de mudana ou rejeita um evento. +this message is sent when you set an alarm for a certain event. include all information you might need. calendar pt-br Essa mensagem enviada quando voc configura um alarme para certo evento. Inclua toda a informao necessria. +three month calendar pt-br trs meses +thu calendar pt-br Qui +til calendar pt-br at +timeframe calendar pt-br Perodo +timeframe to search calendar pt-br Perodo a pesquisar +title of the event calendar pt-br Ttulo do evento +to many might exceed your execution-time-limit calendar pt-br muitos podem exceder seu tempo limite de execuo +translation calendar pt-br Traduo +tue calendar pt-br Ter +two weeks calendar pt-br duas semanas +updated calendar pt-br Atualizado +use end date calendar pt-br Usar data de trmino +use the selected time and close the popup calendar pt-br Usar o horrio selecionado e fechar a janela +view this event calendar pt-br Exibir este evento +views with fixed time intervals calendar pt-br Exibir com tempo de intervalo fixo +wed calendar pt-br Qua +week calendar pt-br Semana +weekday starts on calendar pt-br A semana comea em +weekdays calendar pt-br Dias da semana +weekdays to use in search calendar pt-br Dias da semana para usar na pesquisa +weekly calendar pt-br Semanal +weekview calendar pt-br Viso Semanal +weekview with weekend calendar pt-br Viso semanal com finais de semana +weekview without weekend calendar pt-br Viso semanal sem finais de semana +which events do you want to see when you enter the calendar. calendar pt-br Quais os eventos que voc deseja exibir ao iniciar o Calendrio? +which of calendar view do you want to see, when you start calendar ? calendar pt-br Qual a viso do Calendrio voc deseja exibir ao iniciar o calendrio? +whole day calendar pt-br Dia inteiro +wk calendar pt-br Semana +work day ends on calendar pt-br Dia de trabalho termina s +work day starts on calendar pt-br Dia de trabalho comea s +yearly calendar pt-br Anualmente +yearview calendar pt-br Viso Anual +you can either set a year or a occurence, not both !!! calendar pt-br Voc pode especificar uma ocorrncia nica no ano ou recorrente, no ambos !!! +you can only set a year or a occurence !!! calendar pt-br Voc pode selecionar ocorrncia nica ou recorrente !!! +you do not have permission to read this record! calendar pt-br Voc no possui permisso para ler esse registro! +you have a meeting scheduled for %1 calendar pt-br Voc possui um compromisso agendado para %1 +you have been disinvited from the meeting at %1 calendar pt-br Voc foi desconvidado do evento em %1 +you need to select an ical file first calendar pt-br Voc precisa selecionar um arquivo iCal primeiro +you need to set either a day or a occurence !!! calendar pt-br Voc deve determinar um dia ou recorrncia!!! +your meeting scheduled for %1 has been canceled calendar pt-br Seu compromisso agendado para %1 foi cancelado +your meeting that had been scheduled for %1 has been rescheduled to %2 calendar pt-br Seu compromisso agendado para %1 foi remarcado para %2 diff --git a/calendar/setup/phpgw_sk.lang b/calendar/setup/phpgw_sk.lang new file mode 100644 index 0000000000..0d46872304 --- /dev/null +++ b/calendar/setup/phpgw_sk.lang @@ -0,0 +1,312 @@ +%1 %2 in %3 calendar sk %1 %2 v %3 +%1 records imported calendar sk Naimportovanch %1 zznamov +%1 records read (not yet imported, you may go back and uncheck test import) calendar sk natalo sa %1 zznamov (zatia neboli naimportovan, vrate sa a ODznate Test importu) +please note: the calendar use the holidays of your country, which is set to %1. you can change it in your %2.
holidays are %3 automatic installed from %4. you can changed it in %5. calendar sk Upozornenie:Kalendr pouva sviatky prslun k Vaej krajine, ktor je nastaven na %1. Mete ju zmeni vo vaom %2.
Sviatky sa %3 automaticky intaluj z %4. Mete to zmeni v %5. +a non blocking event will not conflict with other events calendar sk neblokujca udalos nebude v konflikte s ostatnmi udalosami +accept or reject an invitation calendar sk Prija alebo odmietnu pozvanie +accepted calendar sk Prijat +access denied to the calendar of %1 !!! calendar sk Prstup odopret ku kalendru patriacemu %1 !!! +action that caused the notify: added, canceled, accepted, rejected, ... calendar sk Zmena, ktor vyvolala upozornenie: Nov, Zruen, Prijat, Odmietnut, ... +actions calendar sk Akcie +add alarm calendar sk Pridaj pripomienku +added calendar sk Pridan +after current date calendar sk Po sasnom dtume +alarm calendar sk Pripomienka +alarm added calendar sk Pripomienka pridan +alarm deleted calendar sk Pripomienka zmazan +alarm for %1 at %2 in %3 calendar sk Pripomienka %1 %2 v %2 +alarm management calendar sk Pripomienkova +alarms calendar sk Pripomienky +all categories calendar sk Vetky kategrie +all day calendar sk Cel de +all events calendar sk Vetky udalosti +all participants calendar sk Vetci astnci +allows to edit the event again calendar sk Povol znovu upravi udalos +apply the changes calendar sk vykona zmeny +are you sure you want to delete this country ? calendar sk Naozaj zmaza tto krajinu ? +are you sure you want to delete this holiday ? calendar sk Naozaj zmaza tento sviatok ? +back half a month calendar sk nasp o pol mesiaca +back one month calendar sk nasp o mesiac +before current date calendar sk Pred sasnm dtumom +before the event calendar sk pred udalosou +birthday calendar sk Narodeniny +busy calendar sk zaneprzdnen +by calendar sk (km) +calendar event calendar sk Udalos v kalendri +calendar holiday management admin sk Sprva sviatkov v kalendri +calendar menu calendar sk Menu Kalendra +calendar preferences calendar sk Predvoby Kalendra +calendar settings admin sk Nastavenia Kalendra +calendar-fieldname calendar sk Kalendr - nzov poloky +can't add alarms in the past !!! calendar sk Pripomienky sa nedaj zadva do minulosti!!! +canceled calendar sk Zruen +charset of file calendar sk Znakov sada sboru +close the window calendar sk Zavrie okno +compose a mail to all participants after the event is saved calendar sk napsa email vetkm astnkom po uloen udalosti +copy of: calendar sk Kpia (oho): +copy this event calendar sk Koprova udalos +countries calendar sk Krajiny +country calendar sk Krajina +create an exception at this recuring event calendar sk Vytvori vnimku pre tto pravideln udalos +create new links calendar sk Vytvori nov odkazy +csv calendar sk CSV +csv-fieldname calendar sk Pole v CVS +csv-filename calendar sk CVS sbor +custom fields common sk Pouvatesk poloky +daily calendar sk Denne +days calendar sk dni +days of the week for a weekly repeated event calendar sk Dni v tdni pre tdenne sa opakujce udalosti +days repeated calendar sk dn sa opakuje +dayview calendar sk Denn pohad +default appointment length (in minutes) calendar sk Predvolen dka udalost (v mintach) +default calendar filter calendar sk Predvolen filter kalendra +default calendar view calendar sk Predvolen pohad na kalendr +default length of newly created events. the length is in minutes, eg. 60 for 1 hour. calendar sk Predvolen dka novovytvorench udalost, v mintach. +default week view calendar sk Predvolen tdenn pohad +delete series calendar sk Zmaza sriu +delete this alarm calendar sk Zmaza tto pripomienku +delete this event calendar sk Zmaza tto udalos +delete this exception calendar sk Zmaza tto vnimku +delete this series of recuring events calendar sk Zmaza tto sriu pravidelnch udalost +disinvited calendar sk Zruen pozvnka +display status of events calendar sk Zobrazi stav udalost +displayed view calendar sk zobrazen pohad +displays your default calendar view on the startpage (page you get when you enter egroupware or click on the homepage icon)? calendar sk Zobrazi predvolen kalendr na vodnej strnke (tej, ktor sa zobrazuje hne po prihlsen do eGroupWare)? +do you want a weekview with or without weekend? calendar sk elte si tdenn pohad s alebo bez vkendu? +do you want to be notified about new or changed appointments? you be notified about changes you make yourself.
you can limit the notifications to certain changes only. each item includes all the notification listed above it. all modifications include changes of title, description, participants, but no participant responses. if the owner of an event requested any notifcations, he will always get the participant responses like acceptions and rejections too. calendar sk Chcete dostva sprvy upovedomujce o novch i zmenench udalostiach? Budete informovan aj o zmench ktor sami urobte.
Upovedomenia mete obmedzi aj na urit typy zmien. Kad prvok obsahuje zrove vetky predol upovedomenia. Vetky zmeny zahaj zmeny titulku, opisu, astnkov, ale nie odpovede astnkov. Ak vlastnk udalosti iada akkovek sprvy o zmench, dostane vdy aj odozvy astnkov, naprklad prijatia a odmietnutia. +do you want to receive a regulary summary of your appointsments via email?
the summary is sent to your standard email-address on the morning of that day or on monday for weekly summarys.
it is only sent when you have any appointments on that day or week. calendar sk Chcete dostva emailom pravideln shrn vaich schdzok?
Shrn sa bude posiela na vau ben adresu kad rno, prpadne v pondelok pre tdenn shrn.
Posiela sa len vtedy, ak nejak schdzky na dan de alebo tde plnovan. +do you wish to autoload calendar holidays files dynamically? admin sk Mm automaticky nahrva sbory sviatkov? +download calendar sk Stiahnu +download this event as ical calendar sk Stiahnu tto udalos ako iCal +duration of the meeting calendar sk Dka trvania stretnutia +edit exception calendar sk Upravi vnimku +edit series calendar sk Upravi sriu +edit this event calendar sk Upravi tto udalos +edit this series of recuring events calendar sk Upravi tto sriu pravidelnch udalost +empty for all calendar sk przdne znamen vetko +end calendar sk Koniec +end date/time calendar sk Koncov dtum a as +enddate calendar sk Koncov dtum +enddate / -time of the meeting, eg. for more then one day calendar sk Koncov dtum / -as stretnutia, napr. ke je viacdov +enddate of the export calendar sk Koncov dtum exportu +ends calendar sk kon +error adding the alarm calendar sk Chyba pri pridvan pripomienky +error: importing the ical calendar sk Chyba: import iCal-u +error: no participants selected !!! calendar sk Chyba: Neboli vybran astnci!!! +error: saving the event !!! calendar sk Chyba: ukladanie udalosti!!! +error: starttime has to be before the endtime !!! calendar sk Chyba: as zaiatku by mal by PRED asom konca!!! +event copied - the copy can now be edited calendar sk Udalos skoprovan - kpia sa u d upravova +event deleted calendar sk Udalos zmazan +event details follow calendar sk Podrobnosti o udalosti: +event saved calendar sk Udalos uloen +event will occupy the whole day calendar sk Udalos zaberie cel de +exception calendar sk Vnimka +exceptions calendar sk Vnimky +existing links calendar sk Existujce odkazy +export calendar sk Export +extended calendar sk Rozren +extended updates always include the complete event-details. ical's can be imported by certain other calendar-applications. calendar sk Rozren formt vdy obsahuje vetky podrobnosti o udalosti. Formt iCal sa d importova do niektorch alch kalendnych aplikci. +fieldseparator calendar sk Oddelova poloiek +filename calendar sk Nzov sboru +filename of the download calendar sk Nzov sboru na stiahnutie +find free timeslots where the selected participants are availible for the given timespan calendar sk Njs von asov seky, kde s vetci uveden astnci von +firstname of person to notify calendar sk Krstn meno upozorovanej osoby +for calendar sk pre +for which views should calendar show distinct lines with a fixed time interval. calendar sk Pre ktor pohady m kalendr zobrazova rozliovacie iary v pevnch asovch intervaloch. +format of event updates calendar sk Formt sprvy o zmench +forward half a month calendar sk dopredu o polovicu mesiaca +forward one month calendar sk dopredu o mesiac +four days view calendar sk tvordenn pohad +freebusy: unknow user '%1', wrong password or not availible to not loged in users !!! calendar sk Informcie o zaneprzdnen nie s povolen neprihlsenm pouvateom: povate '%1' je neznm alebo zadal chybn heslo !!! +freetime search calendar sk Vyhadanie vonho asu +fri calendar sk Pi +full description calendar sk Opis +fullname of person to notify calendar sk Cel meno upozorovanej osoby +general calendar sk Hlavn +global public and group public calendar sk Verejn - globlne i pre skupinu +global public only calendar sk Iba globlne verejn +group invitation calendar sk Pozvanie skupiny +group planner calendar sk Skupinov plnova +group public only calendar sk Prstupn iba pre skupinu +groupmember(s) %1 not included, because you have no access. calendar sk lenovia skupiny %1 neboli zahrnut, pretoe nemte prstup. +h calendar sk h +here is your requested alarm. calendar sk Vami vyiadan pripomienka. +high priority calendar sk vysok priorita +holiday calendar sk Sviatky +holiday management calendar sk Sprva sviatkov +holidays calendar sk Sviatky +hours calendar sk hodn +how far to search (from startdate) calendar sk ako aleko hada (od dtumu zaiatku) +how many minutes should each interval last? calendar sk Koko mint m trva kad interval? +ical calendar sk iCal +ical / rfc2445 calendar sk iCal - rfc2445 +ical export calendar sk Export iCal +ical file calendar sk Sbor iCal +ical import calendar sk Import iCal +ical successful imported calendar sk iCal spene naimportovan +if checked holidays falling on a weekend, are taken on the monday after. calendar sk Ak zakrtnete toto pole a sviatok pripadne na vkend, automaticky se presunie na nasledujc pondelok. +if you dont set a password here, the information is available to everyone, who knows the url!!! calendar sk Ak tu nezadte heslo, informcia sa sprstupn kadmu kto pozn URL!!! +ignore conflict calendar sk Ignoruj konflikt +import calendar sk Import +import csv-file common sk Importova CSV sbor +interval calendar sk Interval +invalid email-address "%1" for user %2 calendar sk Chybn emailov adresa "%1" pre pouvatea %2 +last calendar sk Posledn +lastname of person to notify calendar sk Priezvisko upozorovanej osoby +length of the time interval calendar sk Dka asovho intervalu +link to view the event calendar sk Odkaz na zobrazenie udalosti +links calendar sk Odkazy +links, attachments calendar sk Odkazy, prlohy +listview calendar sk zobrazenie zoznamu +location calendar sk Umiestnenie +location to autoload from admin sk Umiestnenie zdroja pre automatick nahrvanie +location, start- and endtimes, ... calendar sk Umiestnenie, asy zaiatku a konca,... +mail all participants calendar sk obosla vetkch astnkov +make freebusy information available to not loged in persons? calendar sk Sprstupni informcie o zaneprzdnen vetkm, aj neprihlsenm osobm? +minutes calendar sk Mint +modified calendar sk Zmenen +mon calendar sk Po +monthly calendar sk Mesane +monthly (by date) calendar sk Mesane (poda dtumu) +monthly (by day) calendar sk Mesane (poda da) +monthview calendar sk Mesan pohad +new search with the above parameters calendar sk nov vyhadvanie s uvedenmi parametrami +no events found calendar sk iadne udalosti sa nenali +no filter calendar sk iadny Filter +no matches found calendar sk Nenali sa iadne zznamy +no response calendar sk iadna odozva +non blocking calendar sk neblokujce +notification messages for added events calendar sk Tvar sprvy pre nov udalosti +notification messages for canceled events calendar sk Tvar sprvy pri zruen udalosti +notification messages for disinvited participants calendar sk Tvar sprvy pre astnkov so zruenm pozvnky +notification messages for modified events calendar sk Tvar sprvy pri zmene udalosti +notification messages for your alarms calendar sk Tvar sprvy pripomienky udalosti +notification messages for your responses calendar sk Tvar sprvy pre Vae odpovede +number of records to read (%1) calendar sk Poet zznamov k nataniu (%1) +observance rule calendar sk Pravidlo zachovania +occurence calendar sk Vskyt +old startdate calendar sk Star poiaton dtum +on %1 %2 %3 your meeting request for %4 calendar sk %1 %2 %3 vaa poiadavka na stretnutie pre %4 +on all modification, but responses calendar sk pri vetkch zmench okrem odpoved +on any time change too calendar sk aj pri akejkovek zmene asu +on invitation / cancelation only calendar sk len pri pozvan/zruen +on participant responses too calendar sk aj pri odpovediach +on time change of more than 4 hours too calendar sk aj pri zmene asu o viac ne 4 hodiny +one month calendar sk jeden mesiac +one week calendar sk jeden tde +one year calendar sk jeden rok +only the initial date of that recuring event is checked! calendar sk Kontroluje sa iba vodn dtum tejto pravidelnej udalosti! +open todo's: calendar sk Otvori lohy: +overlap holiday calendar sk prekry sviatky +participants calendar sk astnci +participants disinvited from an event calendar sk Pre astnkov je pozvnka zruen +participants, resources, ... calendar sk astnci, Zdroje,... +password for not loged in users to your freebusy information? calendar sk Prstupov heslo k informcim o zaneprzdnen pre neprihlsen osoby +people holiday calendar sk osobn dovolenka +permission denied calendar sk Prstup odopret +planner by category calendar sk Plnova - poda kategrie +planner by user calendar sk Plnova - poda pouvatea +please note: you can configure the field assignments after you uploaded the file. calendar sk Upozornenie: a ke nahrte sbor, mete nastavi priradenia pol. +preselected group for entering the planner calendar sk Predvybran skupina pre vstup do plnovaa +previous calendar sk Predchdzajca +private and global public calendar sk Skromn i verejn prstupn +private and group public calendar sk Prstupn skromne i pre skupinu +private only calendar sk Iba skromne +re-edit event calendar sk Znovu uprav +receive email updates calendar sk Dostva informcie elektronickou potou? +receive summary of appointments calendar sk Dostva shrn udalost +recurrence calendar sk Pravideln opakovanie +recurring event calendar sk Opakujca se udalos +rejected calendar sk Odmietnut +repeat days calendar sk Opakovan dni +repeat the event until which date (empty means unlimited) calendar sk opakova udalos a dokedy (przdne znamen bez obmedzenia) +repeat type calendar sk Druh opakovania +repeating event information calendar sk Informcie o opakovan udalosti +repeating interval, eg. 2 to repeat every second week calendar sk Interval opakovania, napr. 2 pre opakovanie kad druh tde +repetition calendar sk Opakovanie +repetitiondetails (or empty) calendar sk Detaily o opakovan (alebo ni) +reset calendar sk Vynulova +resources calendar sk Zdroje +rule calendar sk Pravidlo +sat calendar sk So +saves the changes made calendar sk ulo vykonan zmeny +saves the event ignoring the conflict calendar sk Ulo udalos ignorujc konflikt +scheduling conflict calendar sk Konflikt plnovania +select a %1 calendar sk vybra %1 +select a time calendar sk vybra as +select resources calendar sk Vybra zdroje +select who should get the alarm calendar sk Vybra kto dostane pripomienku +set a year only for one-time / non-regular holidays. calendar sk Rok nastavte iba pre jednorzov a nepravideln udalosti. +set new events to private calendar sk Nastav nov udalosti ako skromn +should invitations you rejected still be shown in your calendar ?
you can only accept them later (eg. when your scheduling conflict is removed), if they are still shown in your calendar! calendar sk Maj se odmietnut pozvnky stle zobrazova v kalendri?
Mete ich prija neskr (naprklad ke sa vyriei konflikt plnovania), ale len ak s stle zobrazen vo vaom kalendri! +should new events created as private by default ? calendar sk Maj sa nov udalosti bene vytvra ako skromn? +should not loged in persons be able to see your freebusy information? you can set an extra password, different from your normal password, to protect this informations. the freebusy information is in ical format and only include the times when you are busy. it does not include the event-name, description or locations. the url to your freebusy information is %1. calendar sk Mu neprihlsen osoby vidie informcie o Vaam zaneprzdnen i vonom ase? Mete si nastavi aj dodaton heslo, odlin od Vaeho benho hesla, k ochrane tchto dajov. Tieto daje s vo formte iCal a obsahuj iba asy vaej zaneprzdnenosti, bez zbytonch podrobnost ako napr. nzvov udalost, opisov alebo miest. Odkaz na tieto informcie je %1. +should the status of the event-participants (accept, reject, ...) be shown in brakets after each participants name ? calendar sk M se za jmnem uivatele zobrazovat jeho vztah k udlosti (pijmul, odmtnul, ...)? +show default view on main screen calendar sk Zobraz predvolen pohad na hlavnej strnke +show invitations you rejected calendar sk Zobraz odmietnut pozvnky +show list of upcoming events calendar sk Zobraz zoznam nadchdzajcich udalost +show this month calendar sk uk tento mesiac +show this week calendar sk uk tento tde +single event calendar sk samostatn udalos +start calendar sk Zaiatok +start date/time calendar sk Dtum/as zaiatku +startdate / -time calendar sk Dtum/as zaiatku +startdate and -time of the search calendar sk Dtum/as zaiatku hadania +startdate of the export calendar sk Dtum/as zaiatku exportu +startrecord calendar sk Prv zznam +status changed calendar sk Stav sa zmenil +submit to repository calendar sk Uloi do databzy +sun calendar sk Ne +tentative calendar sk Predben +test import (show importable records only in browser) calendar sk Otestova import (importovan zznamy sa zobrazia len v prehliadai) +this day is shown as first day in the week or month view. calendar sk Tento de sa zobrazuje ako prv v tdennom i mesanom pohade. +this defines the end of your dayview. events after this time, are shown below the dayview. calendar sk Touto hodinou sa kon denn pohad. Udalosti po tejto hodine se zobrazia za dennm pohadem. +this defines the start of your dayview. events before this time, are shown above the dayview.
this time is also used as a default starttime for new events. calendar sk Touto hodinou sa zana denn pohad. Udalosti pred touto hodinou se zobrazia pred dennm pohadem.
Zrove sa tto hodina pouije ako vchodzia pre nov udalosti. +this group that is preselected when you enter the planner. you can change it in the planner anytime you want. calendar sk Tto skupina bude automaticky vybrat pri vstupe do plnovaa. V plnovai ju mete zmeni poda ubovle. +this message is sent for canceled or deleted events. calendar sk Tto sprva se posiela pri zruen i zmazan udalost. +this message is sent for modified or moved events. calendar sk Tto sprva sa posiela pri zmene i presune udalost. +this message is sent to disinvited participants. calendar sk Tto sprva sa posiela astnkom pri zruen pozvnky. +this message is sent to every participant of events you own, who has requested notifcations about new events.
you can use certain variables which get substituted with the data of the event. the first line is the subject of the email. calendar sk Tto sprva sa posiela vetkm astnkom Vaeho stretnutia, ktor poiadali o sprvy o novch udalostiach
Mete poui rzn premenn, ktor bud nahraden skutonmi dajmi o udalosti.
Prv riadok je predmet sprvy. +this message is sent when you accept, tentative accept or reject an event. calendar sk Tto sprva se posiela ke prijmete, predbene prijmete i odmietnete udalos (stretnutie). +this message is sent when you set an alarm for a certain event. include all information you might need. calendar sk Tto sprva se posiela ke je nastaven pripomienka nejakej udalosti. Uvete vetky daje ktor mete potrebova. +three month calendar sk tri mesiace +thu calendar sk t +til calendar sk do +timeframe calendar sk asov sek +timeframe to search calendar sk asov sek kde hada +title of the event calendar sk Nzov udalosti +to many might exceed your execution-time-limit calendar sk pivea me prekroi v limit asu spustenia +translation calendar sk Preklad +tue calendar sk Ut +two weeks calendar sk dva tdne +updated calendar sk Aktualizovan +use end date calendar sk poui koncov dtum +use the selected time and close the popup calendar sk Poui zvolen as a zavrie okno +view this event calendar sk Zobrazi tto udalos +views with fixed time intervals calendar sk Pohady s pevnmi intervalmi zobrazenia +wed calendar sk St +week calendar sk Tde +weekday starts on calendar sk Tde zana dom +weekdays calendar sk Dni v tdni +weekdays to use in search calendar sk Dni v tdni pouit pri hadan +weekly calendar sk Tdne +weekview calendar sk Tdenn pohad +weekview with weekend calendar sk Tdenn pohad s vkendom +weekview without weekend calendar sk Tdenn pohad bez vkendu +which events do you want to see when you enter the calendar. calendar sk Ak udalosti chcete vidie pri spusten kalendra? +which of calendar view do you want to see, when you start calendar ? calendar sk Ak pohad chcete vidie pri spusten kalendra? +whole day calendar sk cel de +wk calendar sk T +work day ends on calendar sk Pracovn de kon o +work day starts on calendar sk Pracovn de zana o +yearly calendar sk Rone +yearview calendar sk Ron pohad +you can either set a year or a occurence, not both !!! calendar sk Mete zada bu rok alebo vskyt, ale nie obidvoje !!! +you can only set a year or a occurence !!! calendar sk Mete zada bu rok alebo vskyt, ale nie obidvoje !!! +you do not have permission to read this record! calendar sk Nemte prvo ta tento zznam! +you have a meeting scheduled for %1 calendar sk Mte naplnovan stretnutie na %1 +you have been disinvited from the meeting at %1 calendar sk Vae pozvanie na stretnutie o %1 bolo zruen +you need to select an ical file first calendar sk Najprv treba vybra sbor iCal. +you need to set either a day or a occurence !!! calendar sk Muste nastavi bu de alebo vskyt !!! +your meeting scheduled for %1 has been canceled calendar sk Stretnutie plnovavan na %1 bolo zruen +your meeting that had been scheduled for %1 has been rescheduled to %2 calendar sk Stretnutie plnovan na %1 bolo preloen na %2 diff --git a/calendar/setup/phpgw_sl.lang b/calendar/setup/phpgw_sl.lang new file mode 100644 index 0000000000..ccf5367f42 --- /dev/null +++ b/calendar/setup/phpgw_sl.lang @@ -0,0 +1,311 @@ +%1 %2 in %3 calendar sl %1 %2 v %3 +%1 records imported calendar sl %1 zapisov uvoženih +%1 records read (not yet imported, you may go back and uncheck test import) calendar sl %1 zapisov prebranih (niso še uvoženi, lahko greste nazaj in pregledate test uvoza) +please note: the calendar use the holidays of your country, which is set to %1. you can change it in your %2.
holidays are %3 automatic installed from %4. you can changed it in %5. calendar sl Opomba: Koledar uporablja podatek o praznikih v vaši državi na podlagi področnih nastavitev, ki so nastavljene na %1. To lahko spremenite v %2.
Podatki o praznikih se %3 samodejno namestijo z %4. To lahko spremenite v %5. +a non blocking event will not conflict with other events calendar sl Ne-blokirajoči dogodek ne bo v sporu z drugimi dogodki +accept or reject an invitation calendar sl Sprejmite ali zavrnite povabilo +accepted calendar sl Sprejeto +access denied to the calendar of %1 !!! calendar sl Dostop do koledarja %1 je bil zavrnjen! +action that caused the notify: added, canceled, accepted, rejected, ... calendar sl Dejanje, ki je sprožilo obvestilo: Dodano, Prekinjeno, Sprejeto, Zavrnjeno,... +actions calendar sl Dejanja +add alarm calendar sl Dodaj opomnik +added calendar sl Dodano +after current date calendar sl Za trenutnim datumom +alarm calendar sl Opomnik +alarm added calendar sl Alarm dodan +alarm deleted calendar sl Alarm zbrisan +alarm for %1 at %2 in %3 calendar sl Opomnik za %1 ob %2 v %3 +alarm management calendar sl Upravljanje opomnikov +alarms calendar sl Opomniki +all categories calendar sl Vse kategorije +all day calendar sl Ves dan +all events calendar sl Vsi dogodki +all participants calendar sl Vsi udeleženci +allows to edit the event again calendar sl Dovoli ponovno urejanje dogodka +apply the changes calendar sl uveljavi spremembe +are you sure you want to delete this country ? calendar sl Ali ste prepričani, da želite izbrisati to državo? +are you sure you want to delete this holiday ? calendar sl Ali ste prepričani, da želite izbrisati ta praznik? +back half a month calendar sl nazaj pol meseca +back one month calendar sl nazaj en mesec +before current date calendar sl Pred trenutnim datumom +before the event calendar sl pred dogodkom +birthday calendar sl Rojstni dan +busy calendar sl zaposlen +by calendar sl od +calendar event calendar sl Koledarski dogodek +calendar holiday management admin sl Upravljanje praznikov na koledarju +calendar menu calendar sl Meni Koledar +calendar preferences calendar sl Nastavitve koledarja +calendar settings admin sl Lastnosti koledarja +calendar-fieldname calendar sl Koledar - ime polja +can't add alarms in the past !!! calendar sl Ne morem dodati alarma v preteklosti! +canceled calendar sl Razveljavljeno +charset of file calendar sl Kodna tabela datoteke +close the window calendar sl Zapri okno +compose a mail to all participants after the event is saved calendar sl Ko shranite dogodek, sestavite sporočilo vsem udeležencem. +copy of: calendar sl Kopija od: +copy this event calendar sl Kopiraj ta dogodek +countries calendar sl Države +country calendar sl Država +create an exception at this recuring event calendar sl Ustvari izjemo v tem ponavljajočem dogodku. +create new links calendar sl Ustvari nove povezave +csv calendar sl CSV +csv-fieldname calendar sl CSV-Ime polja +csv-filename calendar sl CSV-Ime datoteke +custom fields common sl Lastno polje +daily calendar sl Dnevno +days calendar sl dni +days of the week for a weekly repeated event calendar sl Dnevi tedna za tedensko ponovljiv dogodek. +days repeated calendar sl dni ponovljeno +dayview calendar sl Dnevni pogled +default appointment length (in minutes) calendar sl privzeta dolžina sestanka (v minutah) +default calendar filter calendar sl Privzeti koledarski filter +default calendar view calendar sl Privzeti pogled koledarja +default length of newly created events. the length is in minutes, eg. 60 for 1 hour. calendar sl Privzeta dolžina novih dogodkov. Dolžina se meri v minutah, npr. 60 minut za 1 uro. +default week view calendar sl Privzeti tedenski pogled +delete series calendar sl Izbriši serijo +delete this alarm calendar sl Zbriši ta alarm +delete this event calendar sl Zbriši ta dogodek +delete this exception calendar sl Zbriši to izjemo +delete this series of recuring events calendar sl Izbriši to serijo ponovljivih dogodkov. +disinvited calendar sl Preklicano povabilo +display status of events calendar sl Pokaži statuse dogodkov +displayed view calendar sl prikazan pogled +displays your default calendar view on the startpage (page you get when you enter egroupware or click on the homepage icon)? calendar sl Prikaži vaš privzeti koledar na začetni strani. +do you want a weekview with or without weekend? calendar sl Želite tedenski pogled z ali brez vikendov? +do you want to be notified about new or changed appointments? you be notified about changes you make yourself.
you can limit the notifications to certain changes only. each item includes all the notification listed above it. all modifications include changes of title, description, participants, but no participant responses. if the owner of an event requested any notifcations, he will always get the participant responses like acceptions and rejections too. calendar sl Ali želite biti obveščeni o novih ali spremenjenih sestankih? O spremembah, ki jih naredite, ne boste obveščeni.
Obvestila lahko omejite samo na določene spremembe. Vsak element vključuje vsa obvestila našteta nad njimi. Vse spremembe vključujejo spremembo naslova, opisa, udeležencev, ne pa tudi odgovorov udeležencev. Če avtor dogodka zahteva katerokoli obvestilo, bo vedno dobil pozivne in negativne odgovore udeležencev. +do you want to receive a regulary summary of your appointsments via email?
the summary is sent to your standard email-address on the morning of that day or on monday for weekly summarys.
it is only sent when you have any appointments on that day or week. calendar sl Ali želite prejemati povzetke sestankov po E-pošti?
Povzetki se pošiljajo na vaš običajni elektronski naslov vsako jutro tistega dne ali v ponedeljek v primeru tedenskih poročil.
Poslano je samo v primeru, če imate kake sestanke tisti dan oz. tisti teden. +do you wish to autoload calendar holidays files dynamically? admin sl Ali želite, da se dela prosti dnevi naložijo samodejno? +download calendar sl Prenos +download this event as ical calendar sl Prenesi ta dogodek v iCal +duration of the meeting calendar sl Trajanje sestanka +edit exception calendar sl Uredi izjemo +edit series calendar sl Uredi serije +edit this event calendar sl Uredi ta dogodek +edit this series of recuring events calendar sl Uredi to serijo ponovljivih dogodkov. +empty for all calendar sl izprazni za vse +end calendar sl Konec +end date/time calendar sl Končni datum/čas +enddate calendar sl Končni datum +enddate / -time of the meeting, eg. for more then one day calendar sl Končni datum / -čas sestanka, npr. za več kot en dan +enddate of the export calendar sl Končni datum izvoza +ends calendar sl konča +error adding the alarm calendar sl Napaka pri dodajanju alarma +error: importing the ical calendar sl Napaka: pri uvozu v iCal +error: no participants selected !!! calendar sl Napaka: noben udeleženec ni izbran! +error: saving the event !!! calendar sl Napaka: pri shranjevanju dogodka! +error: starttime has to be before the endtime !!! calendar sl Napaka: čas začetka mora biti pred časom konca! +event copied - the copy can now be edited calendar sl Dogodek je bil kopiran - lahko uredite kopijo +event deleted calendar sl Dogodek zbrisan +event details follow calendar sl Sledijo podrobnosti dogodka +event saved calendar sl Dogodek shranjen +event will occupy the whole day calendar sl Dogodek bo trajal cel dan +exception calendar sl Izjema +exceptions calendar sl Izjeme +existing links calendar sl Obstoječe povezave +export calendar sl Izvoz +extended calendar sl Razširjen +extended updates always include the complete event-details. ical's can be imported by certain other calendar-applications. calendar sl Razširjeni popravki vedno vključujejo popolne podrobnosti o dogodku. iCal-ovi dogodki se lahko uvozijo preko drugih aplikacij koledarja. +fieldseparator calendar sl Ločilo polj +filename calendar sl Ime datoteke +filename of the download calendar sl Ime datoteke za prenos +find free timeslots where the selected participants are availible for the given timespan calendar sl Najdi prost termin, kjer so vsi udeleženci prosti +firstname of person to notify calendar sl Ime osebe, ki jo obveščamo +for calendar sl za +for which views should calendar show distinct lines with a fixed time interval. calendar sl Za katere poglede naj Koledar prikaže različne vrstice s stalnim časovnim intervalom? +format of event updates calendar sl Format popravkov dogodka +forward half a month calendar sl naprej pol meseca +forward one month calendar sl naprej en mesec +freebusy: unknow user '%1', wrong password or not availible to not loged in users !!! calendar sl Prost/Zaseden: Neznani uporabnik '%1', napačno geslo ali pa ni na voljo neprijavljenim uporabnikom! +freetime search calendar sl Iskanje prostega termina +fri calendar sl Pet +full description calendar sl Polni opis +fullname of person to notify calendar sl Polno ime osebe, ki jo obveščamo +general calendar sl Splošno +global public and group public calendar sl Globalna in skupinska publika +global public only calendar sl Samo globalna publika +group invitation calendar sl Skupinsko povabilo +group planner calendar sl Skupinski planer +group public only calendar sl Samo skupinska publika +groupmember(s) %1 not included, because you have no access. calendar sl Člani grupe %1 niso bili vključeni, ker nimate pravice dostopa. +h calendar sl h +here is your requested alarm. calendar sl Tu je vaš zahtevani alarm +high priority calendar sl visoka prioriteta +holiday calendar sl Prazniki +holiday management calendar sl Urejanje praznikov +holidays calendar sl Prazniki +hours calendar sl ure +how far to search (from startdate) calendar sl kako daleč od začetnega datuma naj iščem +how many minutes should each interval last? calendar sl Koliko minut naj traja posamezen interval? +ical calendar sl iCal +ical / rfc2445 calendar sl iCal / rfc2445 +ical export calendar sl Izvozi iCal +ical file calendar sl Datoteka iCal +ical import calendar sl Uvozi iCal +ical successful imported calendar sl iCal je bil uspešno uvožen +if checked holidays falling on a weekend, are taken on the monday after. calendar sl Če označeno, potem se praznik s konca tedna prenese na ponedeljek. +if you dont set a password here, the information is available to everyone, who knows the url!!! calendar sl Če tukaj ne vnesete gesla, bo informacija na voljo vsem, ki poznajo URL!!! +ignore conflict calendar sl Prezri navzkrižje +import calendar sl Uvoz +import csv-file common sl Uvozi CSV datoteko +interval calendar sl Interval +invalid email-address "%1" for user %2 calendar sl Nepravilen elektronski naslov "%1" za uporabnika %2 +last calendar sl zadnji +lastname of person to notify calendar sl Priimek osebe, ki jo obveščamo +length of the time interval calendar sl Dolžina časovnega intervala +link to view the event calendar sl Povezava na ogled dogodka +links calendar sl Povezave +links, attachments calendar sl Povezave, priponke +listview calendar sl pogled seznama +location calendar sl Lokacija +location to autoload from admin sl Lokacija za samodejni prenos iz +location, start- and endtimes, ... calendar sl Lokacija, čas začetka in konca ... +mail all participants calendar sl obvesti vse sodelujoče +make freebusy information available to not loged in persons? calendar sl Določim informacijo prost/zaseden na voljo tudi za neprijavljene uporabnike? +minutes calendar sl minut +modified calendar sl Spremenjeno +mon calendar sl Pon +monthly calendar sl Mesečno +monthly (by date) calendar sl Mesečno (po datumu) +monthly (by day) calendar sl Mesečno (po dnevu) +monthview calendar sl Mesečni pogled +new search with the above parameters calendar sl novo iskanje z zgornjimi parametri +no events found calendar sl Noben dogodek ni bil najden +no filter calendar sl Brez filtra +no matches found calendar sl Ni zadetkov +no response calendar sl Ni odgovora +non blocking calendar sl ne-blokiran +notification messages for added events calendar sl Sporočilo ob dodanih dogodkih +notification messages for canceled events calendar sl Sporočilo ob preklicanih dogodkih +notification messages for disinvited participants calendar sl Sporočilo preklica povabila za udeležence +notification messages for modified events calendar sl Sporočilo ob spremenjenih dogodkih +notification messages for your alarms calendar sl Sporočilo ob vaših opomnikih +notification messages for your responses calendar sl Sporočilo ob vaših odgovorih +number of records to read (%1) calendar sl Število zapisov za branje (%1) +observance rule calendar sl Pravilo opazovanja +occurence calendar sl Dogodek +old startdate calendar sl Star datum začetka +on %1 %2 %3 your meeting request for %4 calendar sl %1 %2 %3 vaša zahteva za srečanje za %4 +on all modification, but responses calendar sl ob vseh spremembah, ampak ne odgovorih +on any time change too calendar sl tudi ob vsaki spremembi časa +on invitation / cancelation only calendar sl samo ob povabilu / preklicu +on participant responses too calendar sl ob odgovoru soudeležencev +on time change of more than 4 hours too calendar sl ob spremembi časa za več kot 4 ure +one month calendar sl en mesec +one week calendar sl en teden +one year calendar sl eno leto +only the initial date of that recuring event is checked! calendar sl Označen bo samo začetni datum ponovitve dogodka! +open todo's: calendar sl Odprti ToDo-ji: +overlap holiday calendar sl prekrivajoči se prazniki +participants calendar sl Udeleženci +participants disinvited from an event calendar sl Udeležencem je bilo preklicano povabilo +participants, resources, ... calendar sl Udeleženci, resursi ... +password for not loged in users to your freebusy information? calendar sl Geslo za vaše informacije Prost/Zaseden za uporabnike, ki niso prijavljeni? +people holiday calendar sl narodni prazniki +permission denied calendar sl Dostop zavrnjen +planner by category calendar sl Načrtovalec po kategoriji +planner by user calendar sl Načrtovalec po uporabniku +please note: you can configure the field assignments after you uploaded the file. calendar sl Opomba: dodelitev polj lahko nastavite šele, ko datoteke prenesete. +preselected group for entering the planner calendar sl Predoznačena skupina za vstop v načrtovalec +previous calendar sl prejšnji +private and global public calendar sl Zasebno in ostali +private and group public calendar sl Zasebno in skupina +private only calendar sl Samo zasebno +re-edit event calendar sl Ponovno uredi dogodek +receive email updates calendar sl Obveščanje o spremembah po E-pošti +receive summary of appointments calendar sl Sprejem povzetkov sestankov +recurrence calendar sl Ponavljanje +recurring event calendar sl Ponavljajoči dogodek +rejected calendar sl Zavrnjeno +repeat days calendar sl Ponavljajoči dnevi +repeat the event until which date (empty means unlimited) calendar sl do katerega datuma naj se dogodek ponavlja (prazno pomeni brez omejitve) +repeat type calendar sl Ponovi tip +repeating event information calendar sl Ponavljajoča informacija o dogodku +repeating interval, eg. 2 to repeat every second week calendar sl ponavljajoč interval, npr. 2 za ponavljanje vsaka dva tedna +repetition calendar sl Ponovitev +repetitiondetails (or empty) calendar sl Podrobnosti ponovitev (ali prazno) +reset calendar sl Ponastavi +resources calendar sl Sredstva +rule calendar sl Pravilo +sat calendar sl Sob +saves the changes made calendar sl shrani spremembe +saves the event ignoring the conflict calendar sl Shrani dogodek ne glede na spor +scheduling conflict calendar sl Navzkrižje v urniku +select a %1 calendar sl Izberite %1 +select a time calendar sl izberite čas +select resources calendar sl Izberite sredstva +select who should get the alarm calendar sl Izberite, kdo naj dodi sporočilo alarma +set a year only for one-time / non-regular holidays. calendar sl Nastavi leto samo za enkratne / neponavljajoče praznike. +set new events to private calendar sl Novi dogodki naj bodo označeni kot zasebni +should invitations you rejected still be shown in your calendar ?
you can only accept them later (eg. when your scheduling conflict is removed), if they are still shown in your calendar! calendar sl Ali naj bodo povabila, ki ste jih zavrnili, še vedno vidna v koledarju?
Kasneje jih lahko le potrdite (npr. ko so dogodki v navzkrižju odstranjeni), če so še vedno v koledarju. +should new events created as private by default ? calendar sl Ali naj bodo novi dogodki označeni kot zasebni? +should not loged in persons be able to see your freebusy information? you can set an extra password, different from your normal password, to protect this informations. the freebusy information is in ical format and only include the times when you are busy. it does not include the event-name, description or locations. the url to your freebusy information is %1. calendar sl Dovolite, da uporabnik, ki ni prijavljen vidi vašo Prost/Zasedeb informacijo? Za dostop do teh informacij lahko tudi določite geslo. Informacija Prost/Zaseden je v iCal obliki in vključuje samo termine, ko ste zasedeni, ne vključuje pa imena doggodkov, opisov in lokacij. URL za dostop do vaših Prost/Zaseden informacij je %1. +should the status of the event-participants (accept, reject, ...) be shown in brakets after each participants name ? calendar sl Ali naj bo status udeležencev dogodka (sprejet, zavrnjen,...) prikazan v oklepajih za imenom udeleženca? +show default view on main screen calendar sl Prikaži privzeti pogled na glavni strani +show invitations you rejected calendar sl Prikaži dobljena povabila +show list of upcoming events calendar sl Prikaži prihajajoče dogodke +show this month calendar sl prikaži ta mesec +show this week calendar sl prikaži ta teden +single event calendar sl posamezen dogodek +start calendar sl Začetek +start date/time calendar sl Začetni datum/čas +startdate / -time calendar sl Začetni datum /-čas +startdate and -time of the search calendar sl Začetni datum in -čas iskanja +startdate of the export calendar sl Začetni datum izvoza +startrecord calendar sl Začetni zapis +status changed calendar sl Status spremenjen +submit to repository calendar sl Pošlji v zbirko +sun calendar sl Ned +tentative calendar sl Preizkušen +test import (show importable records only in browser) calendar sl Test uvoza (pokaži uvozljive zapisesamo v brskalniku) +this day is shown as first day in the week or month view. calendar sl Ta dan je prikazan kot prvi dan v tednu ali v mesecu. +this defines the end of your dayview. events after this time, are shown below the dayview. calendar sl To definira konec dnevnega pogleda. Dogodki po tem času so prikazani pod dnevnim ogledom. +this defines the start of your dayview. events before this time, are shown above the dayview.
this time is also used as a default starttime for new events. calendar sl To definira začetek dnevnega pogleda. Dogodki pred tem so prikazani pred dnevnim pogledom.
Ta čas je tudi uporaben kot privzeti za nove dogodke. +this group that is preselected when you enter the planner. you can change it in the planner anytime you want. calendar sl Ta skupina je že označena, ko vstopite v načrtovalca. V načrtovalcu jo lahko spremenite kadarkoli želite. +this message is sent for canceled or deleted events. calendar sl Sporočilo je poslano ob preklicu ali brisanju dogodkov. +this message is sent for modified or moved events. calendar sl Sporočilo je poslano ob spremembi ali premiku dogodkov. +this message is sent to disinvited participants. calendar sl To sporočilo se pošlje udeležencem, ki se jim prekliče povabilo. +this message is sent to every participant of events you own, who has requested notifcations about new events.
you can use certain variables which get substituted with the data of the event. the first line is the subject of the email. calendar sl To sporočilo je poslano vsem udeležencem dogodka, ki sprejemajo obvestila o dogodkih.
V obvestilu lahko uporabite nekatere spremenljivke, ki se ob pošiljanju zamenjajo s podatki dogodka. Prva vrstica je naslov E-pošte. +this message is sent when you accept, tentative accept or reject an event. calendar sl To sporočilo se pošlje ko sprejmete ali zavrnete dogodek. +this message is sent when you set an alarm for a certain event. include all information you might need. calendar sl To sporočilo je poslano, ko nastavite opomnik za dogodek. Vključuje vse potrebne informacije. +three month calendar sl trije meseci +thu calendar sl Čet +til calendar sl do +timeframe calendar sl Časovni okvir +timeframe to search calendar sl Iskanje časovnega okvira +title of the event calendar sl Naslov dogodka +to many might exceed your execution-time-limit calendar sl preveč lahko preseže čas izvajanja programa +translation calendar sl Prevod +tue calendar sl Tor +two weeks calendar sl dva tedna +updated calendar sl Podosodobljeno +use end date calendar sl Uporabi končni datum +use the selected time and close the popup calendar sl uporabi izbrani čas in zapri pojavno okno +view this event calendar sl Poglej ta dogodek +views with fixed time intervals calendar sl Pogledi s stalnimi časovnimi intervali +wed calendar sl Sre +week calendar sl Teden +weekday starts on calendar sl Teden se začne z dnem +weekdays calendar sl Dnevi tedna +weekdays to use in search calendar sl Dnevi tedna, ki jih uporabim pri iskanju +weekly calendar sl Tedensko +weekview calendar sl Tedenski pogled +weekview with weekend calendar sl Tedenski pogled z vikendom +weekview without weekend calendar sl Tedenski pogled brez vikenda +which events do you want to see when you enter the calendar. calendar sl Katere dogodke želite videti, ko odprete koledar? +which of calendar view do you want to see, when you start calendar ? calendar sl Kateri pogled želite videti, ko odprete koledar? +whole day calendar sl Cel dan +wk calendar sl Ted +work day ends on calendar sl Delovnik se konča ob +work day starts on calendar sl Delovnik se začne ob +yearly calendar sl Letno +yearview calendar sl Letni pogled +you can either set a year or a occurence, not both !!! calendar sl Nastavite lahko ali leto ali pojavljanje, ne pa obojega! +you can only set a year or a occurence !!! calendar sl Nastavite lahko le leto ali pojavljanje! +you do not have permission to read this record! calendar sl Nimate dovoljenja brati tega zapisa! +you have a meeting scheduled for %1 calendar sl Imate napovedan sestanek ob %1 +you have been disinvited from the meeting at %1 calendar sl Za sestanek %1 ste dobili preklic povabila +you need to select an ical file first calendar sl Najprej morate izbrati datoteko iCal +you need to set either a day or a occurence !!! calendar sl Nastaviti morate dan ali pojavljanje! +your meeting scheduled for %1 has been canceled calendar sl Vaš sestanek %1 je odpovedan +your meeting that had been scheduled for %1 has been rescheduled to %2 calendar sl Sestanek za %1 je bil prestavljen na %2 diff --git a/calendar/setup/phpgw_zh-tw.lang b/calendar/setup/phpgw_zh-tw.lang new file mode 100644 index 0000000000..15ed42543a --- /dev/null +++ b/calendar/setup/phpgw_zh-tw.lang @@ -0,0 +1,311 @@ +%1 %2 in %3 calendar zh-tw 在%3的%1 %2 +%1 records imported calendar zh-tw %1 筆資料匯入 +%1 records read (not yet imported, you may go back and uncheck test import) calendar zh-tw 讀取了%1筆資料(還沒匯入,您必須回到上一頁並且取消圈選匯入測試) +please note: the calendar use the holidays of your country, which is set to %1. you can change it in your %2.
holidays are %3 automatic installed from %4. you can changed it in %5. calendar zh-tw 請注意: 行事曆使用了您的國家假日,目前設定為 %1 ;您可以將它修改為適合您的 %2 。
%3 假日資訊是自動從 %4 安裝的,可以在 %5 修改。 +a non blocking event will not conflict with other events calendar zh-tw 一個未鎖定事件將不會與其他事件產生衝突 +accept or reject an invitation calendar zh-tw 接受或拒絕邀約 +accepted calendar zh-tw 已接受 +access denied to the calendar of %1 !!! calendar zh-tw 您沒有權限存取 %1 的行事曆! +action that caused the notify: added, canceled, accepted, rejected, ... calendar zh-tw 需要提醒的操作:新增、取消、接受、拒絕、... +actions calendar zh-tw 動作 +add alarm calendar zh-tw 新增警示 +added calendar zh-tw 新增日期 +after current date calendar zh-tw 在今天以後 +alarm calendar zh-tw 警告 +alarm added calendar zh-tw 警告新增了 +alarm deleted calendar zh-tw 警告刪除了 +alarm for %1 at %2 in %3 calendar zh-tw 在%3的%1 中 %2警告 +alarm management calendar zh-tw 警示管理 +alarms calendar zh-tw 警告 +all categories calendar zh-tw 所有類別 +all day calendar zh-tw 所有日期 +all events calendar zh-tw 所有事件 +all participants calendar zh-tw 所有參與人 +allows to edit the event again calendar zh-tw 允許再一次編輯事件 +apply the changes calendar zh-tw 儲存異動 +are you sure you want to delete this country ? calendar zh-tw 您確定要移除這個國家嗎? +are you sure you want to delete this holiday ? calendar zh-tw 您確定要移除這個假日嗎? +back half a month calendar zh-tw 前半個月 +back one month calendar zh-tw 上個月 +before current date calendar zh-tw 在今天之前 +before the event calendar zh-tw 事件之前 +birthday calendar zh-tw 生日 +busy calendar zh-tw 忙碌 +by calendar zh-tw 於 +calendar event calendar zh-tw 日曆事件 +calendar holiday management admin zh-tw 行事曆假日管理 +calendar menu calendar zh-tw 行事曆選單 +calendar preferences calendar zh-tw 行事曆喜好設定 +calendar settings admin zh-tw 設定行事曆 +calendar-fieldname calendar zh-tw 行事曆欄位名稱 +can't add alarms in the past !!! calendar zh-tw 無法新增過去的警告! +canceled calendar zh-tw 取消 +charset of file calendar zh-tw 檔案字元編碼 +close the window calendar zh-tw 關閉視窗 +compose a mail to all participants after the event is saved calendar zh-tw 在這個事件儲存後發信通知所有的參與人 +copy of: calendar zh-tw 複製: +copy this event calendar zh-tw 複製這個事件 +countries calendar zh-tw 國家 +country calendar zh-tw 國家 +create an exception at this recuring event calendar zh-tw 在這個循環事件建立例外 +create new links calendar zh-tw 建立新連結 +csv calendar zh-tw CSV +csv-fieldname calendar zh-tw CSV-欄位名稱 +csv-filename calendar zh-tw CSV-檔案名稱 +custom fields common zh-tw 自訂欄位 +daily calendar zh-tw 每日 +days calendar zh-tw 日 +days of the week for a weekly repeated event calendar zh-tw 重複事件在每週的哪幾天 +days repeated calendar zh-tw 日重覆 +dayview calendar zh-tw 日行事曆 +default appointment length (in minutes) calendar zh-tw 預設會議時間長度(分鐘) +default calendar filter calendar zh-tw 預設行事曆過濾器 +default calendar view calendar zh-tw 預設行事曆檢視模式 +default length of newly created events. the length is in minutes, eg. 60 for 1 hour. calendar zh-tw 預設建立事件的長度(分鐘),預設為60=1小時。 +default week view calendar zh-tw 預設週曆模式 +defines the size in minutes of the lines in the day view. calendar zh-tw 定義行事曆瀏覽時每個時段的分鐘數 +delete series calendar zh-tw 刪除連鎖項目 +delete this alarm calendar zh-tw 刪除這個警告 +delete this event calendar zh-tw 刪除這個事件 +delete this exception calendar zh-tw 刪除這個例外 +delete this series of recuring events calendar zh-tw 刪除這個系列的循環事件 +disinvited calendar zh-tw 拒絕邀請 +display status of events calendar zh-tw 顯示事件的狀態 +displayed view calendar zh-tw 檢視方式 +displays your default calendar view on the startpage (page you get when you enter egroupware or click on the homepage icon)? calendar zh-tw 顯示您預設的行事曆瀏覽模式在啟始頁(您登入egroupWare第一個看到或是按下您的首頁按鈕的頁面) +do you want a weekview with or without weekend? calendar zh-tw 您是否希望週曆包含週末? +do you want to be notified about new or changed appointments? you be notified about changes you make yourself.
you can limit the notifications to certain changes only. each item includes all the notification listed above it. all modifications include changes of title, description, participants, but no participant responses. if the owner of an event requested any notifcations, he will always get the participant responses like acceptions and rejections too. calendar zh-tw 您希望系統在約會新增或是修改時主動提醒您嗎?您也會收到包括您自己更新的通知。
您可以限制系統只提醒確定的修改。每個項目包含它以上的清單。所有的修改包括標題、描述、參與者的改變,但是不包括參與者的回應。如果事件的擁有者要求任何提醒,他會收到參與者接受或是拒絕的回應。 +do you want to receive a regulary summary of your appointsments via email?
the summary is sent to your standard email-address on the morning of that day or on monday for weekly summarys.
it is only sent when you have any appointments on that day or week. calendar zh-tw 您希望定期透過電子郵件收到系統自動寄出的約會通知概要嗎?
這個概要會在每天早上寄出每日概要或是每個星期一寄出每週概要。
它只會在那一天或是那一週有約會時寄出。 +do you wish to autoload calendar holidays files dynamically? admin zh-tw 您希望動態新增行事曆的假日嗎? +download calendar zh-tw 下載 +download this event as ical calendar zh-tw 下載這個事件的 iCal 格式檔案 +duration of the meeting calendar zh-tw 會議期間 +edit exception calendar zh-tw 編輯例外 +edit series calendar zh-tw 編輯全系列約會 +edit this event calendar zh-tw 編輯這個事件 +edit this series of recuring events calendar zh-tw 編輯這個系列的循環事件 +empty for all calendar zh-tw 全部空白 +end calendar zh-tw 結束 +end date/time calendar zh-tw 結束日期時間 +enddate calendar zh-tw 結束日期 +enddate / -time of the meeting, eg. for more then one day calendar zh-tw 結束日期 / 會議的時間,例如超過一天的會議 +enddate of the export calendar zh-tw 匯出資料的結束日期 +ends calendar zh-tw 結束日期 +error adding the alarm calendar zh-tw 新增警告時發生錯誤 +error: importing the ical calendar zh-tw 錯誤: 匯入 iCal 資料時 +error: no participants selected !!! calendar zh-tw 錯誤:沒有選擇參與者! +error: saving the event !!! calendar zh-tw 錯誤: 儲存事件時! +error: starttime has to be before the endtime !!! calendar zh-tw 錯誤:開始時間必須在結束時間之前! +event copied - the copy can now be edited calendar zh-tw 複製事件完成,現在可以編輯複製後的事件 +event deleted calendar zh-tw 事件刪除了 +event details follow calendar zh-tw 事件細節 +event saved calendar zh-tw 事件儲存了 +event will occupy the whole day calendar zh-tw 這是全天事件 +exception calendar zh-tw 例外 +exceptions calendar zh-tw 例外 +existing links calendar zh-tw 已經存在的連結 +export calendar zh-tw 匯出 +extended calendar zh-tw 延伸的 +extended updates always include the complete event-details. ical's can be imported by certain other calendar-applications. calendar zh-tw 延伸的更新包含完整的事件細節,iCal格式可以被其他行事曆軟體讀取。 +fieldseparator calendar zh-tw 欄位分隔字元 +filename calendar zh-tw 檔案名稱 +filename of the download calendar zh-tw 要下載的檔案名稱 +find free timeslots where the selected participants are availible for the given timespan calendar zh-tw 在指定的期間找尋選擇的參與人都有空的時間區塊 +firstname of person to notify calendar zh-tw 需要通知的人名 +for calendar zh-tw 給 +format of event updates calendar zh-tw 事件更新的格式 +forward half a month calendar zh-tw 下半個月 +forward one month calendar zh-tw 下個月 +freebusy: unknow user '%1', wrong password or not availible to not loged in users !!! calendar zh-tw 狀態:不知名的使用者'%1',錯誤的密碼或是目前無法登入! +freetime search calendar zh-tw 時間空檔查詢 +fri calendar zh-tw 五 +full description calendar zh-tw 完整敘述 +fullname of person to notify calendar zh-tw 需要通知的全名 +general calendar zh-tw 一般 +global public and group public calendar zh-tw 全區公用及群組公用 +global public only calendar zh-tw 全區公用 +group invitation calendar zh-tw 邀請群組 +group planner calendar zh-tw 群組計畫 +group public only calendar zh-tw 群組公用 +groupmember(s) %1 not included, because you have no access. calendar zh-tw 無法加入群組成員 %1 ,因為您沒有權限。 +here is your requested alarm. calendar zh-tw 這是您要求的提醒。 +high priority calendar zh-tw 高優先權 +holiday calendar zh-tw 假日 +holiday management calendar zh-tw 假日管理 +holidays calendar zh-tw 假日 +hours calendar zh-tw 小時 +how far to search (from startdate) calendar zh-tw 搜尋的期間(從開始日期) +ical calendar zh-tw iCal +ical / rfc2445 calendar zh-tw iCal / rfc2445 +ical export calendar zh-tw iCal 匯出 +ical file calendar zh-tw iCal 檔案 +ical import calendar zh-tw iCal 匯入 +ical successful imported calendar zh-tw iCal 匯入成功 +if checked holidays falling on a weekend, are taken on the monday after. calendar zh-tw 如果選擇的假日剛好是週末,系統會自動移到星期一。 +if you dont set a password here, the information is available to everyone, who knows the url!!! calendar zh-tw 如果您在此並未設定密碼,知道網址的人就能夠讀取。 +ignore conflict calendar zh-tw 忽略重疊的約會 +import calendar zh-tw 匯入 +import csv-file common zh-tw 匯入CSV逗點分隔檔案 +interval calendar zh-tw 間隔 +intervals in day view calendar zh-tw 每日瀏覽的間隔 +invalid email-address "%1" for user %2 calendar zh-tw 錯誤的信箱 "%1" 於使用者 %2 +last calendar zh-tw 最後 +lastname of person to notify calendar zh-tw 要提醒的人名(姓) +link to view the event calendar zh-tw 事件連結 +links calendar zh-tw 連結 +links, attachments calendar zh-tw 連結、附加檔案 +listview calendar zh-tw 檢視清單 +location calendar zh-tw 約會位置 +location to autoload from admin zh-tw 自動讀取的位置 +location, start- and endtimes, ... calendar zh-tw 位置,開始與結束時間等 +mail all participants calendar zh-tw 發信給所有參與人 +make freebusy information available to not loged in persons? calendar zh-tw 將行程資訊開放給未登入的人? +minutes calendar zh-tw 分鐘 +modified calendar zh-tw 修改日期 +mon calendar zh-tw 一 +monthly calendar zh-tw 每月 +monthly (by date) calendar zh-tw 每月(以日期計) +monthly (by day) calendar zh-tw 每月(以天數計) +monthview calendar zh-tw 月行事曆 +new search with the above parameters calendar zh-tw 透過上面的參數從新搜尋 +no events found calendar zh-tw 沒有任何事件 +no filter calendar zh-tw 沒有規則 +no matches found calendar zh-tw 沒有找到符合的結果 +no response calendar zh-tw 沒有回應 +non blocking calendar zh-tw 未鎖定 +not calendar zh-tw 否 +notification messages for added events calendar zh-tw 新增事件提醒 +notification messages for canceled events calendar zh-tw 取消事件提醒 +notification messages for disinvited participants calendar zh-tw 拒絕參與事件提醒 +notification messages for modified events calendar zh-tw 修改事件提醒 +notification messages for your alarms calendar zh-tw 您的通知事件提醒 +notification messages for your responses calendar zh-tw 您的回覆事件提醒 +number of records to read (%1) calendar zh-tw 讀取的資料筆數(%1) +observance rule calendar zh-tw 遵循規則 +occurence calendar zh-tw 期間 +old startdate calendar zh-tw 舊的開始日期 +on %1 %2 %3 your meeting request for %4 calendar zh-tw 在 %1 %2 %3 有 %4 的約會 +on all modification, but responses calendar zh-tw 所有修改,除了回應 +on any time change too calendar zh-tw 任何時間改變 +on invitation / cancelation only calendar zh-tw 只有邀請與取消 +on participant responses too calendar zh-tw 參與者回應時 +on time change of more than 4 hours too calendar zh-tw 在改變超過四小時後 +one month calendar zh-tw 一個月 +one week calendar zh-tw 一星期 +one year calendar zh-tw 一年 +only the initial date of that recuring event is checked! calendar zh-tw 只有選循環事件的初始日期! +open todo's: calendar zh-tw 未完成的待辦事項 +overlap holiday calendar zh-tw 重疊的假日 +participants calendar zh-tw 與會者 +participants disinvited from an event calendar zh-tw 參與者拒絕參加一個事件 +participants, resources, ... calendar zh-tw 參與者、資源等 +password for not loged in users to your freebusy information? calendar zh-tw 讓未登入使用者檢視您有空或是忙碌的密碼? +people holiday calendar zh-tw 假日 +permission denied calendar zh-tw 拒絕存取 +planner by category calendar zh-tw 類別計畫者 +planner by user calendar zh-tw 使用者計畫者 +please note: you can configure the field assignments after you uploaded the file. calendar zh-tw 請注意:您在上傳檔案後可以設定欄位資訊。 +preselected group for entering the planner calendar zh-tw 進入計畫管理的預設群組 +previous calendar zh-tw 上一個 +private and global public calendar zh-tw 私人及全區公用 +private and group public calendar zh-tw 私人及群組公用 +private only calendar zh-tw 私人 +re-edit event calendar zh-tw 重新編輯約會 +receive email updates calendar zh-tw 接收更新郵件提醒 +receive summary of appointments calendar zh-tw 接收約會概要 +recurrence calendar zh-tw 重複 +recurring event calendar zh-tw 循環事件 +rejected calendar zh-tw 拒絕 +repeat days calendar zh-tw 重複天數 +repeat the event until which date (empty means unlimited) calendar zh-tw 重複事件的結束日期(空白表示無限) +repeat type calendar zh-tw 重覆類型 +repeating event information calendar zh-tw 約會重覆資訊 +repeating interval, eg. 2 to repeat every second week calendar zh-tw 重複間隔,例如 2 代表每兩週重複一次 +repetition calendar zh-tw 重覆約會 +repetitiondetails (or empty) calendar zh-tw 重複細節(或空白) +reset calendar zh-tw 重設 +resources calendar zh-tw 資源 +rule calendar zh-tw 規則 +sat calendar zh-tw 六 +saves the changes made calendar zh-tw 儲存異動 +saves the event ignoring the conflict calendar zh-tw 儲存事件並且忽略衝突 +scheduling conflict calendar zh-tw 約會重疊 +select a %1 calendar zh-tw 選了一個 %1 +select a time calendar zh-tw 選擇一個時間 +select resources calendar zh-tw 選擇資源 +select who should get the alarm calendar zh-tw 選擇誰應該被通知 +set a year only for one-time / non-regular holidays. calendar zh-tw 設定只有特定年會發生的假日 +set new events to private calendar zh-tw 設定新事件為私人的 +should invitations you rejected still be shown in your calendar ?
you can only accept them later (eg. when your scheduling conflict is removed), if they are still shown in your calendar! calendar zh-tw 您已經拒絕的邀請還要顯示在您的行事曆中嗎?
如果它仍然顯示在您的行事曆中,您可以在事後接受(例如原本有牴觸的行程已經取消)它。 +should new events created as private by default ? calendar zh-tw 預設新增的事件是私人的? +should not loged in persons be able to see your freebusy information? you can set an extra password, different from your normal password, to protect this informations. the freebusy information is in ical format and only include the times when you are busy. it does not include the event-name, description or locations. the url to your freebusy information is %1. calendar zh-tw 沒有登入的使用者能否知道您現在是有空或是忙碌?您可以設定額外的密碼(不是自己登入的密碼)來避免其他未經授權的人瀏覽。有空或是忙碌的資訊是 iCal 格式,而且只會讓瀏覽的人看到有無行程,他們無法進一步取得行程的詳細資料,像是事件名稱、描述或是地點等。連結到這個功能的網址是 %1 。 +should the status of the event-participants (accept, reject, ...) be shown in brakets after each participants name ? calendar zh-tw 在每個參與者名稱的後面需要顯示該參與者的狀態(接受、拒絕、...)嗎? +show default view on main screen calendar zh-tw 在主要畫面顯示預設瀏覽 +show invitations you rejected calendar zh-tw 顯示您已經拒絕的邀請 +show list of upcoming events calendar zh-tw 顯示即將到來的行程 +show this month calendar zh-tw 顯示這個月 +show this week calendar zh-tw 顯示這一週 +single event calendar zh-tw 單一事件 +site configuration calendar zh-tw 網站設定 +start calendar zh-tw 開始 +start date/time calendar zh-tw 開始日期/時間 +startdate / -time calendar zh-tw 開始日期 / 時間 +startdate and -time of the search calendar zh-tw 搜尋的開始日期 / 時間 +startdate of the export calendar zh-tw 匯出資料的開始日期 +startrecord calendar zh-tw 開始紀錄 +status changed calendar zh-tw 狀態異動了 +submit to repository calendar zh-tw 送出到儲藏庫中 +sun calendar zh-tw 日 +tentative calendar zh-tw 暫定 +test import (show importable records only in browser) calendar zh-tw 測試匯入(只有在瀏覽器中顯示可以匯入的紀錄) +this day is shown as first day in the week or month view. calendar zh-tw 這一天會在週或是月行事曆中第一個顯示 +this defines the end of your dayview. events after this time, are shown below the dayview. calendar zh-tw 這定義了每日行事曆的結束,在這個時間之後的事件會顯示在日行事曆下面。 +this defines the start of your dayview. events before this time, are shown above the dayview.
this time is also used as a default starttime for new events. calendar zh-tw 這定義了每日行事曆的開始,在這個時間之前的事件會顯示在日行事曆上面。
這個時間也會是新增事件的預設開始時間。 +this group that is preselected when you enter the planner. you can change it in the planner anytime you want. calendar zh-tw 這個群組是當您進入計畫管理時預設的群組,您可以在事後修改。 +this message is sent for canceled or deleted events. calendar zh-tw 這個訊息是因為事件的取消或刪除 +this message is sent for modified or moved events. calendar zh-tw 這個訊息是因為事件的修改或移動 +this message is sent to disinvited participants. calendar zh-tw 這個訊息會送給拒絕參與的人 +this message is sent to every participant of events you own, who has requested notifcations about new events.
you can use certain variables which get substituted with the data of the event. the first line is the subject of the email. calendar zh-tw 這個訊息會送給您所擁有的所有事件中有設定提醒功能的參與人。
您可以使用事件資料的替代值。第一行是郵件的標題。 +this message is sent when you accept, tentative accept or reject an event. calendar zh-tw 這個訊息會在您同意、暫時同意或是拒絕一個事件後寄出, +this message is sent when you set an alarm for a certain event. include all information you might need. calendar zh-tw 這個訊息會在您設定事件警示時寄出,包含一些您或需需要的訊息。 +three month calendar zh-tw 一季 +thu calendar zh-tw 四 +til calendar zh-tw 到 +timeframe calendar zh-tw 時段 +timeframe to search calendar zh-tw 搜尋的時段 +title of the event calendar zh-tw 事件標題 +to many might exceed your execution-time-limit calendar zh-tw 處理太多資料可能會超過系統允許的處理時間 +translation calendar zh-tw 翻譯 +tue calendar zh-tw 二 +two weeks calendar zh-tw 兩週 +updated calendar zh-tw 更新日期 +use end date calendar zh-tw 有結束日期 +use the selected time and close the popup calendar zh-tw 使用指定的時間並且關閉彈出視窗 +view this event calendar zh-tw 檢視這個事件 +wed calendar zh-tw 三 +week calendar zh-tw 星期 +weekday starts on calendar zh-tw 星期開始日 +weekdays calendar zh-tw 週日數 +weekdays to use in search calendar zh-tw 搜尋的週日數 +weekly calendar zh-tw 每週 +weekview calendar zh-tw 週行事曆 +weekview with weekend calendar zh-tw 週曆包含週末 +weekview without weekend calendar zh-tw 週曆不包含週末 +which events do you want to see when you enter the calendar. calendar zh-tw 當您進入行事曆時您希望看到什麼樣的行事曆。 +which of calendar view do you want to see, when you start calendar ? calendar zh-tw 當您開始了一個行事曆您希望看到哪個行事曆? +whole day calendar zh-tw 整天 +wk calendar zh-tw 週 +work day ends on calendar zh-tw 每日結束時間 +work day starts on calendar zh-tw 每日開始時間 +yearly calendar zh-tw 每年 +yearview calendar zh-tw 年行事曆 +you can either set a year or a occurence, not both !!! calendar zh-tw 您可以設定一個期間或是星期幾,不能兩者都選! +you can only set a year or a occurence !!! calendar zh-tw 您只可以設定一年或是一個事件! +you do not have permission to read this record! calendar zh-tw 您沒有讀取這個紀錄的權限! +you have a meeting scheduled for %1 calendar zh-tw 您跟%1有個行程 +you have been disinvited from the meeting at %1 calendar zh-tw 您已經取消了 %1 的會議 +you need to select an ical file first calendar zh-tw 您必須先選擇一個 iCal 檔案 +you need to set either a day or a occurence !!! calendar zh-tw 您必須設定一個日期或是一個期間! +your meeting scheduled for %1 has been canceled calendar zh-tw 您與%1的行程已經取消了 +your meeting that had been scheduled for %1 has been rescheduled to %2 calendar zh-tw 您與%1的行程已經重新安排到%2 +h calendar zh-tw 時 diff --git a/calendar/templates/default/app.css b/calendar/templates/default/app.css new file mode 100644 index 0000000000..a8ce2d54bb --- /dev/null +++ b/calendar/templates/default/app.css @@ -0,0 +1,436 @@ +/* $Id$ */ + +/****************************************************************** + * CSS settings for the day, week and month view (timeGridWidget) * + ******************************************************************/ + +/* +Names used in the "graphic" are the css classes from this file. +The function names in class uiviews have the leading cal removed and a trailing Widget added: +e.g. the div with class calTimeGrid is generated by the timeGridWidget method of uiviews. + ++++ calTimeGrid +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++ #### calDayCols[12h|NoGrip] ########################################################### ++ #... calDayCol ............................. ... calDayCol .......................... ++ #.+- calDayColHeader ---------------------+. .+- calDayColHeader ------------------+. ++ #.| |. .| |. ++ #.+---------------------------------------+. .+------------------------------------+. ++.calTimeRowTime.#.** calEventCol ***** ** calEventCol *****. .** calEventCol ***********************. ++. .#.* * * *. .* *. ++. .#.* * * *. .* *. ++................#.*+- calEvent -----+* * *. .* *. ++.calTimeRowTime.#.*| |* * *. .*+- calEvent[Private] --------------+*. ++. .#.*| |* *+- calEvent -----+*. .*| |*. ++. .#.*+----------------+* *| |*. .*| |*. ++................#.* * *| |*. .*| |*. ++.calTimeRowTime.#.* * *+----------------+*. .*| |*. ++. .#.* * * *. .*+----------------------------------+*. + +*/ + +.redItalic { color: red; font-style: italic; } +.size120b { font-size: 120%; font-weight: bold; } + +/* marks a day in the colum-header as today + */ +.calToday{ + background: #ffffcc; +} +/* marks a day in the colum-header as holiday + */ +.calHoliday{ + background: #dac0c0; +} +/* marks a day in the column-header additionaly as birthday of some contact, + * it should work together with the backgrounds of calToday, calHoliday, th, row_on and row_off + */ +.calBirthday,.calBirthday a{ + color: black; + font-weight: bold; + font-style: italic; +} + +/* timeGridWidget, contains timeRow's and dayCol's + */ +.calTimeGrid{ + position: relative; + top: 0px; + left: 0px; + border:1px solid silver; + width: 100%; +/* set via inline style on runtime: + * height: + */ +} + +/* single row in the time-line, always used in conjunction with row_{on|off}, you dont need to set a bgcolor, but you can + */ +.calTimeRow,.calTimeRowOff{ + position: absolute; + width: 100%; +/* set via inline style on runtime: + * height: + * top: + */ +} +.calTimeRow{ +/* background-color: silver; */ +} + +/* time in a timeRow + */ +.calTimeRowTime{ + padding-left: 5px; + height: 100%; + line-height: 14px; + font-size:8pt; + text-align: left; +} + +/* contains (multiple) dayCol's + */ +.calDayCols,.calDayCols12h,.calDayColsNoGrid{ + position: absolute; + top: 0px; +/* bottom: 0px; does NOT work in IE, IE needs height: 100%! */ + height: 100%; + left: 45px; + right: 0px; +} +/* 12h timeformat with am/pm + */ +.calDayCols12h{ + left: 65px; +} +/* no time grid --> no time column + */ +.calDayColsNoTime{ + left: 0px; +} + +/* contains (multiple) eventCol's + */ +.calDayCol{ + position: absolute; + top: 0px; + height: 100%; +/* set via inline style on runtime: + * left: + * width: + */ + border-left: 1px solid silver; +} + +/* header for the dayCol + */ +.calDayColHeader,.calGridHeader{ + position: absolute; + top: 0px; + left: 0px; + width: 100%; + right: 0px; /* does not work in IE, but looks better in other browsers then width:100% */ + text-align: center; + font-size: 100%; + white-space: nowrap; + border-bottom: 1px solid silver; + border-right: 1px solid silver; + height: 16px; + line-height: 16px; +} +.calDayColHeader img { + vertical-align: middle; +} + +.calViewUserNameBox { + position: absolute; + top: -1px; + width: 95%; + text-align: left; + font-size: 120%; + white-space: nowrap; + border: 1px solid gray; + height: 17px; + left: -1px; + padding-top: 0px; + padding-left: 10px; + background: #dac0c0; +} +.calViewUserName { + font-weight: normal; +} +.calViewUserName:first-letter { + text-transform:uppercase; +} +.calViewUserNameFirst { +} +.calViewUserNameFirst:after { + content: ", "; +} + +/* header of the time-grid, eg. for the weeks in the month-view (leftmost of the day-col-headers) + */ +.calGridHeader{ + text-align: left; + padding-left: 3px; +} + +/* contains (multiple) events's + */ +.calEventCol{ + position: absolute; + top: 0px; +/* bottom: 0px; does NOT work in IE, IE needs height: 100%! */ + height: 100%; +/* set via inline style on runtime: + * left: + * width: + */ +} + +/* contains one event: header-row & -body + */ +.calEvent,.calEventPrivate{ + position: absolute; + left: 0px; + right: 0px; + overflow: hidden; + z-index: 20; + border-width: 1px; + border-style: solid; + border-radius: 6px; + -moz-border-radius: 6px; +/* set via inline style on runtime: + * top: depending on startime + * height: depending on length + * border-color: depending on category + * background: depending on category (shade) + */ +} +.calEvent:hover{ + cursor: pointer; + cursor: hand; +} + +.calEventTooltip{ + border-width: 1px; + border-style: solid; + border-radius: 6px; + -moz-border-radius: 6px; +} + +.calAddEvent{ + position: absolute; + width: 100%; + z-index: 10; +} + +.calAddEvent:hover{ + background-color: #D2D7FF; + cursor: pointer; + cursor: hand; +} + +/* header-row of the event + */ +.calEventHeader,.calEventHeaderSmall{ + position: relative; /* as the calEventIcons use postion: absolute! */ + font-weight: bold; + font-size: 9pt; + color: white; + text-align: left; + left: 0px; + right: 0px; + padding-left: 2px; +/* set via inline style on runtime + * background-color: depending on category + */ +} +.calEventHeaderSmall{ + font-size: 8pt; + line-height: 10pt; +} + +.calEventIcons{ + position: absolute; + right: 0px; + top: 0px; +} +.calEventHeaderSmall .calEventIcons img{ + height: 13px; +} + +/* body of the event + */ +.calEventBody,.calEventBodySmall{ + padding: 0px 3px 0px; + left: 2px; + right: 2px; + height: 99%; +} + +.calEventBodySmall{ + font-size: 95%; +} + +.calEventLabel{ + font-weight: bold; + font-size: 90%; +} + +.calEventTitle{ + font-weight: bold; + font-size: 110%; +} + +/* table of the dayView containing 2 cols: 1) day-view, 2) todos +*/ +.calDayView{ + width: 100%; +} +/* calDayTods is the day-view's todo column, containing the calDayTodoHeader and the calDayTodoTable + */ +.calDayTodos .calDayTodosHeader { + margin: 0px; + padding: 2px; + font-weight: bold; +} +.calDayTodos .calDayTodosTable { + overflow: auto; + max-height: 400px; +} +.calDayTodos { + width: 250px; + margin-left: 10px; + border: 1px solid silver; +} +.calDayTodosHeader { + text-align: center; +} + +/****************************************************** + * CSS settings for the planner views (plannerWidget) * + ******************************************************/ + +/* plannerWidget represents the whole planner, consiting of the plannerHeader and multiple plannerRowWidgets + */ +.plannerWidget { + position: relative; + top: 0px; + left: 0px; + width: 99.5%; + border: 1px solid gray; + padding-right: 3px; +} + +/* plannerHeader contains a plannerHeaderTitle and multiple plannerHeaderRows + */ +.plannerHeader { + position: relative; + top: 0px; + left: 0px; + width: 100%; +} + +/* plannerRowWidget contains a plannerRowHeader and multiple eventRowWidgets in an eventRows + */ +.plannerRowWidget { + position: relative; + top: 0px; + left: 0px; + width: 100%; +} + +/* plannerScale represents a scale-row of the plannerHeader, containing multiple planner{Day|Week|Month}Scales + */ +.plannerScale,.plannerScaleDay{ + position: relative; + top: 0px; + left: 0%; + width: 100%; + height: 20px; + line-height: 20px; +} +.plannerScaleDay { + height: 28px; + line-height: 14px; +} +.plannerDayScale,.plannerMonthScale,.plannerWeekScale,.plannerHourScale { + position: absolute; + top: 0px; + /* left+width: is set by the code on runtime */ + text-align: center; + height: 100%; + border: 1px solid white; +/* set via inline style on runtime: + * left: + * width: + */ +} +.plannerHourScale { + font-size: 90%; +} +.plannerDayScale { + font-size: 90%; +} +.plannerWeekScale { + line-height: 20px; +} +.plannerMonthScale { + font-weight: bold; +} +.plannerDayScale img,.plannerWeekScale img,.plannerMonthScale img { + vertical-align: middle; +} + +/* plannerRowHeader contains the user or category name of the plannerRowWidget + */ +.plannerRowHeader, .plannerHeaderTitle { + position: absolute; + top: 0px; + left: 0%; + width: 15%; /* need to be identical for plannerRowHeader and plannerHeaderTitle and match left of eventRows/plannerHeaderRows */ + height: 100%; + line-height: 20px; + border: 1px solid white; +} + +/* eventRows contain multiple eventRowWidgets + */ +.eventRows, .plannerHeaderRows { + position: relative; + top: 0px; + left: 15%; /* need to be identical for eventRows and plannerHeaderRows and match width of plannerRowHeader/plannerHeaderTitle */ + width: 85%; +} + +/* eventRowWidget contains non-overlapping events + */ +.eventRowWidget { + position: relative; + top: 0px; + left: 0px; + width: 100%; + height: 20px; + border: 1px solid white; +} + +.plannerEvent,.plannerEventPrivate{ + position: absolute; + top: 0px; + height: 100%; + overflow: hidden; + z-index: 20; + border: 1px solid black; +/* set via inline style on runtime: + * left: depending on startime + * width: depending on length + * background-color: depending on category + */ +} +.plannerEvent img,.plannerEventPrivate img { + padding-top: 2px; +} +.plannerEvent:hover{ + cursor: pointer; + cursor: hand; +} diff --git a/calendar/templates/default/edit.xet b/calendar/templates/default/edit.xet new file mode 100644 index 0000000000..850f20b317 --- /dev/null +++ b/calendar/templates/default/edit.xet @@ -0,0 +1,328 @@ + + + + + + + + + + +