Synchronized with upstream from git.kolab.org (3.3.3)

This commit is contained in:
Thomas Bruederli 2017-09-01 12:00:02 +02:00
parent 71db023cf1
commit 143128a1a4
30 changed files with 688 additions and 902 deletions

View file

@ -319,7 +319,6 @@ class calendar extends rcube_plugin
$this->rc->output->set_env('timezone', $this->timezone->getName());
$this->rc->output->set_env('calendar_driver', $this->rc->config->get('calendar_driver'), false);
$this->rc->output->set_env('calendar_resources', (bool)$this->rc->config->get('calendar_resources_driver'));
$this->rc->output->set_env('mscolors', jqueryui::get_color_values());
$this->rc->output->set_env('identities-selector', $this->ui->identity_select(array('id' => 'edit-identities-list', 'aria-label' => $this->gettext('roleorganizer'))));
$view = rcube_utils::get_input_value('view', rcube_utils::INPUT_GPC);
@ -477,40 +476,42 @@ class calendar extends rcube_plugin
// loading driver is expensive, don't do it if not needed
$this->load_driver();
if (!isset($no_override['calendar_default_alarm_type'])) {
if (!isset($no_override['calendar_default_alarm_type']) || !isset($no_override['calendar_default_alarm_offset'])) {
if (!$p['current']) {
$p['blocks']['view']['content'] = true;
return $p;
}
$field_id = 'rcmfd_alarm';
$select_type = new html_select(array('name' => '_alarm_type', 'id' => $field_id));
$select_type->add($this->gettext('none'), '');
foreach ($this->driver->alarm_types as $type)
$select_type->add($this->rc->gettext(strtolower("alarm{$type}option"), 'libcalendaring'), $type);
$alarm_type = $alarm_offset = '';
if (!isset($no_override['calendar_default_alarm_type'])) {
$field_id = 'rcmfd_alarm';
$select_type = new html_select(array('name' => '_alarm_type', 'id' => $field_id));
$select_type->add($this->gettext('none'), '');
foreach ($this->driver->alarm_types as $type) {
$select_type->add($this->rc->gettext(strtolower("alarm{$type}option"), 'libcalendaring'), $type);
}
$alarm_type = $select_type->show($this->rc->config->get('calendar_default_alarm_type', ''));
}
if (!isset($no_override['calendar_default_alarm_offset'])) {
$field_id = 'rcmfd_alarm';
$input_value = new html_inputfield(array('name' => '_alarm_value', 'id' => $field_id . 'value', 'size' => 3));
$select_offset = new html_select(array('name' => '_alarm_offset', 'id' => $field_id . 'offset'));
foreach (array('-M','-H','-D','+M','+H','+D') as $trigger) {
$select_offset->add($this->rc->gettext('trigger' . $trigger, 'libcalendaring'), $trigger);
}
$preset = libcalendaring::parse_alarm_value($this->rc->config->get('calendar_default_alarm_offset', '-15M'));
$alarm_offset = $input_value->show($preset[0]) . ' ' . $select_offset->show($preset[1]);
}
$p['blocks']['view']['options']['alarmtype'] = array(
'title' => html::label($field_id, rcube::Q($this->gettext('defaultalarmtype'))),
'content' => $select_type->show($this->rc->config->get('calendar_default_alarm_type', '')),
);
}
if (!isset($no_override['calendar_default_alarm_offset'])) {
if (!$p['current']) {
$p['blocks']['view']['content'] = true;
return $p;
}
$field_id = 'rcmfd_alarm';
$input_value = new html_inputfield(array('name' => '_alarm_value', 'id' => $field_id . 'value', 'size' => 3));
$select_offset = new html_select(array('name' => '_alarm_offset', 'id' => $field_id . 'offset'));
foreach (array('-M','-H','-D','+M','+H','+D') as $trigger)
$select_offset->add($this->rc->gettext('trigger' . $trigger, 'libcalendaring'), $trigger);
$preset = libcalendaring::parse_alarm_value($this->rc->config->get('calendar_default_alarm_offset', '-15M'));
$p['blocks']['view']['options']['alarmoffset'] = array(
'title' => html::label($field_id . 'value', rcube::Q($this->gettext('defaultalarmoffset'))),
'content' => $input_value->show($preset[0]) . ' ' . $select_offset->show($preset[1]),
'content' => $alarm_type . ' ' . $alarm_offset,
);
}
@ -1465,7 +1466,7 @@ class calendar extends rcube_plugin
{
// Upload progress update
if (!empty($_GET['_progress'])) {
rcube_upload_progress();
$this->rc->upload_progress();
}
@set_time_limit(0);
@ -1531,11 +1532,11 @@ class calendar extends rcube_plugin
}
else {
if ($err == UPLOAD_ERR_INI_SIZE || $err == UPLOAD_ERR_FORM_SIZE) {
$msg = $this->gettext(array('name' => 'filesizeerror', 'vars' => array(
'size' => show_bytes(parse_bytes(ini_get('upload_max_filesize'))))));
$msg = $this->rc->gettext(array('name' => 'filesizeerror', 'vars' => array(
'size' => $this->rc->show_bytes(parse_bytes(ini_get('upload_max_filesize'))))));
}
else {
$msg = $this->gettext('fileuploaderror');
$msg = $this->rc->gettext('fileuploaderror');
}
$this->rc->output->command('plugin.import_error', array('message' => $msg));
@ -1778,11 +1779,11 @@ class calendar extends rcube_plugin
// convert link URIs references into structs
if (array_key_exists('links', $event)) {
foreach ((array)$event['links'] as $i => $link) {
if (strpos($link, 'imap://') === 0 && ($msgref = $this->driver->get_message_reference($link))) {
$event['links'][$i] = $msgref;
foreach ((array) $event['links'] as $i => $link) {
if (strpos($link, 'imap://') === 0 && ($msgref = $this->driver->get_message_reference($link))) {
$event['links'][$i] = $msgref;
}
}
}
}
// check for organizer in attendees list
@ -2202,7 +2203,7 @@ class calendar extends rcube_plugin
}
// let this information be cached for 5min
send_future_expire_header(300);
$this->rc->output->future_expire_header(300);
echo $status;
exit;
@ -2289,7 +2290,7 @@ class calendar extends rcube_plugin
$dte->setTimezone($this->timezone);
// let this information be cached for 5min
send_future_expire_header(300);
$this->rc->output->future_expire_header(300);
echo rcube_output::json_serialize(array(
'email' => $email,
@ -3381,7 +3382,12 @@ class calendar extends rcube_plugin
$tmp_path = tempnam($this->rc->config->get('temp_dir'), 'rcmAttmntCal');
file_put_contents($tmp_path, $this->get_ical()->export(array($event), '', false, array($this->driver, 'get_attachment_body')));
$args['attachments'][] = array('path' => $tmp_path, 'name' => $filename . '.ics', 'mimetype' => 'text/calendar');
$args['attachments'][] = array(
'path' => $tmp_path,
'name' => $filename . '.ics',
'mimetype' => 'text/calendar',
'size' => filesize($tmp_path),
);
$args['param']['subject'] = $event['title'];
}
}

View file

@ -34,7 +34,6 @@ function rcube_calendar(settings)
rcube_libcalendaring.call(this, settings);
// member vars
this.ui;
this.ui_loaded = false;
this.selected_attachment = null;
@ -50,29 +49,29 @@ function rcube_calendar(settings)
$.when(
$.getScript(rcmail.assets_path('plugins/calendar/calendar_ui.js')),
$.getScript(rcmail.assets_path('plugins/calendar/lib/js/fullcalendar.js')),
$.get(rcmail.url('calendar/inlineui'), function(html){ $(document.body).append(html); }, 'html')
$.get(rcmail.url('calendar/inlineui'), function(html) { $(document.body).append(html); }, 'html')
).then(function() {
// disable attendees feature (autocompletion and stuff is not initialized)
for (var c in rcmail.env.calendars)
rcmail.env.calendars[c].attendees = rcmail.env.calendars[c].resources = false;
me.ui_loaded = true;
me.ui = new rcube_calendar_ui(me.settings);
me.create_from_mail(uid); // start over
});
return;
}
else {
// get message contents for event dialog
var lock = rcmail.set_busy(true, 'loading');
rcmail.http_post('calendar/mailtoevent', {
'_mbox': rcmail.env.mailbox,
'_uid': uid
}, lock);
}
// get message contents for event dialog
var lock = rcmail.set_busy(true, 'loading');
rcmail.http_post('calendar/mailtoevent', {
'_mbox': rcmail.env.mailbox,
'_uid': uid
}, lock);
}
};
// callback function triggered from server with contents for the new event
this.mail2event_dialog = function(event)
{
@ -91,7 +90,7 @@ function rcube_calendar(settings)
rcmail.http_post('calendar/mailimportattach', {
_uid: rcmail.env.uid,
_mbox: rcmail.env.mailbox,
_part: this.selected_attachment,
_part: this.selected_attachment
// _calendar: $('#calendar-attachment-saveto').val(),
}, rcmail.set_busy(true, 'itip.savingdata'));
}
@ -106,11 +105,11 @@ window.rcmail && rcmail.addEventListener('init', function(evt) {
// register create-from-mail command to message_commands array
if (rcmail.env.task == 'mail') {
rcmail.register_command('calendar-create-from-mail', function() { cal.create_from_mail() });
rcmail.register_command('attachment-save-calendar', function() { cal.save_to_calendar() });
rcmail.addEventListener('plugin.mail2event_dialog', function(p){ cal.mail2event_dialog(p) });
rcmail.addEventListener('plugin.unlock_saving', function(p){ cal.ui && cal.ui.unlock_saving(); });
rcmail.register_command('calendar-create-from-mail', function() { cal.create_from_mail(); });
rcmail.register_command('attachment-save-calendar', function() { cal.save_to_calendar(); });
rcmail.addEventListener('plugin.mail2event_dialog', function(p) { cal.mail2event_dialog(p); });
rcmail.addEventListener('plugin.unlock_saving', function(p) { cal.ui && cal.ui.unlock_saving(); });
if (rcmail.env.action != 'show') {
rcmail.env.message_commands.push('calendar-create-from-mail');
rcmail.add_element($('<a>'));
@ -130,8 +129,8 @@ window.rcmail && rcmail.addEventListener('init', function(evt) {
}
rcmail.register_command('plugin.calendar', function() { rcmail.switch_task('calendar'); }, true);
rcmail.addEventListener('plugin.ping_url', function(p){
rcmail.addEventListener('plugin.ping_url', function(p) {
var action = p.action;
p.action = p.event = null;
new Image().src = rcmail.url(action, p);

View file

@ -38,7 +38,7 @@ function rcube_calendar_ui(settings)
this.selected_event = null;
this.selected_calendar = null;
this.search_request = null;
this.saving_lock;
this.saving_lock = null;
this.calendars = {};
this.quickview_sources = [];
@ -47,8 +47,6 @@ function rcube_calendar_ui(settings)
var DAY_MS = 86400000;
var HOUR_MS = 3600000;
var me = this;
var gmt_offset = (new Date().getTimezoneOffset() / -60) - (settings.timezone || 0) - (settings.dst || 0);
var client_timezone = new Date().getTimezoneOffset();
var day_clicked = day_clicked_ts = 0;
var ignore_click = false;
var event_defaults = { free_busy:'busy', alarms:'' };
@ -197,18 +195,18 @@ function rcube_calendar_ui(settings)
{
var result = [],
strlen = str.length,
q, p, i, char, last;
q, p, i, chr, last;
for (q = p = i = 0; i < strlen; i++) {
char = str.charAt(i);
if (char == '"' && last != '\\') {
chr = str.charAt(i);
if (chr == '"' && last != '\\') {
q = !q;
}
else if (!q && char == delimiter) {
else if (!q && chr == delimiter) {
result.push(str.substring(p, i));
p = i + 1;
}
last = char;
last = chr;
}
result.push(str.substr(p));
@ -413,7 +411,7 @@ function rcube_calendar_ui(settings)
$('#event-repeat').show().children('.event-text').html(Q(event.recurrence_text));
if (event.valarms && event.alarms_text)
$('#event-alarm').show().children('.event-text').html(Q(event.alarms_text));
$('#event-alarm').show().children('.event-text').html(Q(event.alarms_text).replace(',', ',<br>'));
if (calendar.name)
$('#event-calendar').show().children('.event-text').html(Q(calendar.name)).attr('class', 'event-text cal-'+calendar.id).css('color', calendar.textColor || calendar.color || '');
@ -488,9 +486,9 @@ function rcube_calendar_ui(settings)
line = rcube_libcalendaring.attendee_html(data);
if (morelink)
overflow += line;
overflow += ' ' + line;
else
html += line;
html += ' ' + line;
// stop listing attendees
if (j == 7 && event.attendees.length >= 7) {
@ -628,6 +626,8 @@ function rcube_calendar_ui(settings)
}
rcmail.enable_command('event-history', calendar.history)
rcmail.triggerEvent('calendar-event-dialog', {dialog: $dialog});
};
// event handler for clicks on an attendee link
@ -969,6 +969,8 @@ function rcube_calendar_ui(settings)
window.setTimeout(load_attendees_tab, exec_deferred);
if (calendar.attachments)
window.setTimeout(load_attachments_tab, exec_deferred);
rcmail.triggerEvent('calendar-event-dialog', {dialog: $dialog});
};
// show event changelog in a dialog
@ -3145,6 +3147,28 @@ function rcube_calendar_ui(settings)
}
};
// display the edit dialog, request 'new' action and pass the selected event
this.event_copy = function(event) {
if (event && event.id) {
var copy = $.extend(true, {}, event);
delete copy.id;
delete copy._id;
delete copy.created;
delete copy.changed;
delete copy.recurrence_id;
delete copy.attachments; // @TODO
$.each(copy.attendees, function (k, v) {
if (v.role != 'ORGANIZER') {
v.status = 'NEEDS-ACTION';
}
})
event_edit_dialog('new', copy);
}
};
// show URL of the given calendar in a dialog box
this.showurl = function(calendar)
{
@ -3906,23 +3930,31 @@ function rcube_calendar_ui(settings)
// init event dialog
$('#eventtabs').tabs({
activate: function(event, ui) {
if (ui.newPanel.selector == '#event-panel-attendees' || ui.newPanel.selector == '#event-panel-resources') {
var tab = ui.newPanel.selector == '#event-panel-resources' ? 'resource' : 'attendee';
// newPanel.selector for jQuery-UI 1.10, newPanel.attr('id') for jQuery-UI 1.12
var tab = String(ui.newPanel.selector || ui.newPanel.attr('id'))
.replace(/^#?event-panel-/, '').replace(/s$/, '');
var has_real_attendee = function(attendees) {
for (var i=0; i < (attendees ? attendees.length : 0); i++) {
if (attendees[i].cutype != 'RESOURCE')
return true;
}
};
if (tab == 'attendee' || tab == 'resource') {
if (!rcube_event.is_keyboard(event))
$('#edit-'+tab+'-name').select();
// update free-busy status if needed
if (freebusy_ui.needsupdate && me.selected_event)
update_freebusy_status(me.selected_event);
// add current user as organizer if non added yet
if (!event_attendees.length) {
if (tab == 'attendee' && !has_real_attendee(event_attendees)) {
add_attendee($.extend({ role:'ORGANIZER' }, settings.identity));
$('#edit-attendees-form .attendees-invitebox').show();
}
}
// reset autocompletion on tab change (#3389)
if (ui.oldPanel.selector == '#event-panel-attendees' || ui.oldPanel.selector == '#event-panel-resources') {
rcmail.ksearch_blur();
}
rcmail.ksearch_blur();
}
});
$('#edit-enddate').datepicker(datepicker_settings);
@ -4132,6 +4164,7 @@ window.rcmail && rcmail.addEventListener('init', function(evt) {
rcmail.register_command('calendar-showurl', function(){ cal.showurl(cal.calendars[cal.selected_calendar]); }, false);
rcmail.register_command('event-download', function(){ cal.event_download(cal.selected_event); }, true);
rcmail.register_command('event-sendbymail', function(p, obj, e){ cal.event_sendbymail(cal.selected_event, e); }, true);
rcmail.register_command('event-copy', function(){ cal.event_copy(cal.selected_event); }, true);
rcmail.register_command('event-history', function(p, obj, e){ cal.event_history_dialog(cal.selected_event); }, false);
// search and export events

View file

@ -26,12 +26,11 @@
"require": {
"php": ">=5.3.0",
"roundcube/plugin-installer": ">=0.1.3",
"kolab/libcalendaring": ">=3.2.16"
"kolab/libcalendaring": ">=3.3.3"
},
"extra": {
"roundcube": {
"min-version": "1.1.0",
"max-version": "1.2.99",
"min-version": "1.3.0",
"sql-dir": "drivers/database/SQL"
}
}

View file

@ -149,7 +149,7 @@ $config['calendar_itip_smtp_user'] = 'smtpauth';
$config['calendar_itip_smtp_pass'] = '123456';
// show virtual invitation calendars (Kolab driver only)
$config['kolab_invitation_calendars'] = true;
$config['kolab_invitation_calendars'] = false;
// Base URL to build fully qualified URIs to access calendars via CALDAV
// The following replacement variables are supported:

View file

@ -532,17 +532,18 @@ abstract class calendar_driver
/**
* Get a list of property changes beteen two revisions of an event
*
* @param array $event Hash array with event properties:
* @param array $event Hash array with event properties:
* id: Event identifier
* calendar: Calendar identifier
* @param mixed $rev Revisions: "from:to"
* @param mixed $rev1 Old Revision
* @param mixed $rev2 New Revision
*
* @return array List of property changes, each as a hash array:
* property: Revision number
* old: Old property value
* new: Updated property value
*/
public function get_event_diff($event, $rev)
public function get_event_diff($event, $rev1, $rev2)
{
return false;
}

View file

@ -130,7 +130,7 @@ class kolab_calendar extends kolab_storage_folder_api
/**
* Return color to display this calendar
*/
public function get_color()
public function get_color($default = null)
{
// color is defined in folder METADATA
if ($color = $this->storage->get_color()) {
@ -143,7 +143,7 @@ class kolab_calendar extends kolab_storage_folder_api
if (!empty($prefs[$this->id]) && !empty($prefs[$this->id]['color']))
return $prefs[$this->id]['color'];
return 'cc0000';
return $default ?: 'cc0000';
}
/**
@ -188,16 +188,19 @@ class kolab_calendar extends kolab_storage_folder_api
*/
public function get_event($id)
{
// directly access storage object
if (!$this->events[$id] && ($record = $this->storage->get_object($id)))
$this->events[$id] = $this->_to_driver_event($record, true);
// remove our occurrence identifier if it's there
$master_id = preg_replace('/-\d{8}(T\d{6})?$/', '', $id);
// event not found, maybe a recurring instance is requested
if (!$this->events[$id]) {
$master_id = preg_replace('/-\d+(T\d{6})?$/', '', $id);
// directly access storage object
if (!$this->events[$id] && $master_id == $id && ($record = $this->storage->get_object($id))) {
$this->events[$id] = $this->_to_driver_event($record, true);
}
// maybe a recurring instance is requested
if (!$this->events[$id] && $master_id != $id) {
$instance_id = substr($id, strlen($master_id) + 1);
if ($master_id != $id && ($record = $this->storage->get_object($master_id))) {
if ($record = $this->storage->get_object($master_id)) {
$master = $this->_to_driver_event($record);
}
@ -302,13 +305,13 @@ class kolab_calendar extends kolab_storage_folder_api
$events = array();
foreach ($this->storage->select($query) as $record) {
$event = $this->_to_driver_event($record, !$virtual);
$event = $this->_to_driver_event($record, !$virtual, false);
// remember seen categories
if ($event['categories']) {
$cat = is_array($event['categories']) ? $event['categories'][0] : $event['categories'];
$this->categories[$cat]++;
}
}
// list events in requested time window
if ($event['start'] <= $end && $event['end'] >= $start) {
@ -385,6 +388,10 @@ class kolab_calendar extends kolab_storage_folder_api
return true;
});
// Apply event-to-mail relations
$config = kolab_storage_config::get_instance();
$config->apply_links($events);
// avoid session race conditions that will loose temporary subscriptions
$this->cal->rc->session->nowrite = true;
@ -455,8 +462,8 @@ class kolab_calendar extends kolab_storage_folder_api
//generate new event from RC input
$object = $this->_from_driver_event($event);
$saved = $this->storage->save($object, 'event');
$saved = $this->storage->save($object, 'event');
if (!$saved) {
rcube::raise_error(array(
'code' => 600, 'type' => 'php',
@ -467,11 +474,13 @@ class kolab_calendar extends kolab_storage_folder_api
}
else {
// save links in configuration.relation object
$this->save_links($event['uid'], $links);
if ($this->save_links($event['uid'], $links)) {
$object['links'] = $links;
}
$this->events = array($event['uid'] => $this->_to_driver_event($object, true));
}
return $saved;
}
@ -494,7 +503,7 @@ class kolab_calendar extends kolab_storage_folder_api
unset($event['links']);
$object = $this->_from_driver_event($event, $old);
$saved = $this->storage->save($object, 'event', $old['uid']);
$saved = $this->storage->save($object, 'event', $old['uid']);
if (!$saved) {
rcube::raise_error(array(
@ -505,7 +514,9 @@ class kolab_calendar extends kolab_storage_folder_api
}
else {
// save links in configuration.relation object
$this->save_links($event['uid'], $links);
if ($this->save_links($event['uid'], $links)) {
$object['links'] = $links;
}
$updated = true;
$this->events = array($event['uid'] => $this->_to_driver_event($object, true));
@ -576,14 +587,8 @@ class kolab_calendar extends kolab_storage_folder_api
*/
protected function save_links($uid, $links)
{
// make sure we have a valid array
if (empty($links)) {
$links = array();
}
$storage = kolab_storage_config::get_instance();
$remove = array_diff($storage->get_object_links($uid), $links);
return $storage->save_object_links($uid, $links, $remove);
return $storage->save_object_links($uid, (array) $links);
}
/**

View file

@ -57,12 +57,11 @@ class kolab_driver extends calendar_driver
require_once(dirname(__FILE__) . '/kolab_invitation_calendar.php');
$this->cal = $cal;
$this->rc = $cal->rc;
$this->_read_calendars();
$this->rc = $cal->rc;
$this->cal->register_action('push-freebusy', array($this, 'push_freebusy'));
$this->cal->register_action('calendar-acl', array($this, 'calendar_acl'));
$this->freebusy_trigger = $this->rc->config->get('calendar_freebusy_trigger', false);
if (kolab_storage::$version == '2.0') {
@ -89,11 +88,11 @@ class kolab_driver extends calendar_driver
// get all folders that have "event" type, sorted by namespace/name
$folders = kolab_storage::sort_folders(kolab_storage::get_folders('event') + kolab_storage::get_user_folders('event', true));
$this->calendars = array();
$this->calendars = array();
foreach ($folders as $folder) {
if ($folder instanceof kolab_storage_folder_user) {
$calendar = new kolab_user_calendar($folder->name, $this->cal);
$calendar = new kolab_user_calendar($folder, $this->cal);
$calendar->subscriptions = count($folder->children) > 0;
}
else {
@ -120,10 +119,12 @@ class kolab_driver extends calendar_driver
*/
public function list_calendars($filter = 0, &$tree = null)
{
$this->_read_calendars();
// attempt to create a default calendar for this user
if (!$this->has_writeable) {
if ($this->create_calendar(array('name' => 'Calendar', 'color' => 'cc0000'))) {
unset($this->calendars);
unset($this->calendars);
$this->_read_calendars();
}
}
@ -162,8 +163,8 @@ class kolab_driver extends calendar_driver
// special handling for user or virtual folders
if ($cal instanceof kolab_storage_folder_user) {
$calendars[$cal->id] = array(
'id' => $cal->id,
'name' => kolab_storage::object_name($fullname),
'id' => $cal->id,
'name' => $fullname,
'listname' => $listname,
'editname' => $cal->get_foldername(),
'color' => $cal->get_color(),
@ -287,6 +288,8 @@ class kolab_driver extends calendar_driver
*/
protected function filter_calendars($filter)
{
$this->_read_calendars();
$calendars = array();
$plugin = $this->rc->plugins->exec_hook('calendar_list_filter', array(
@ -343,14 +346,19 @@ class kolab_driver extends calendar_driver
*/
public function get_calendar($id)
{
$this->_read_calendars();
// create calendar object if necesary
if (!$this->calendars[$id] && in_array($id, array(self::INVITATIONS_CALENDAR_PENDING, self::INVITATIONS_CALENDAR_DECLINED))) {
$this->calendars[$id] = new kolab_invitation_calendar($id, $this->cal);
}
else if (!$this->calendars[$id] && $id !== self::BIRTHDAY_CALENDAR_ID) {
$calendar = kolab_calendar::factory($id, $this->cal);
if ($calendar->ready)
$this->calendars[$calendar->id] = $calendar;
if (!$this->calendars[$id]) {
if (in_array($id, array(self::INVITATIONS_CALENDAR_PENDING, self::INVITATIONS_CALENDAR_DECLINED))) {
$this->calendars[$id] = new kolab_invitation_calendar($id, $this->cal);
}
else if ($id !== self::BIRTHDAY_CALENDAR_ID) {
$calendar = kolab_calendar::factory($id, $this->cal);
if ($calendar->ready) {
$this->calendars[$calendar->id] = $calendar;
}
}
}
return $this->calendars[$id];
@ -595,8 +603,12 @@ class kolab_driver extends calendar_driver
$event = self::from_rcube_event($event);
$cid = $event['calendar'] ? $event['calendar'] : reset(array_keys($this->calendars));
if ($storage = $this->get_calendar($cid)) {
if (!$event['calendar']) {
$this->_read_calendars();
$event['calendar'] = reset(array_keys($this->calendars));
}
if ($storage = $this->get_calendar($event['calendar'])) {
// if this is a recurrence instance, append as exception to an already existing object for this UID
if (!empty($event['recurrence_date']) && ($master = $storage->get_event($event['uid']))) {
self::add_exception($master, $event);
@ -888,7 +900,7 @@ class kolab_driver extends calendar_driver
break;
}
}
if ($success && $this->freebusy_trigger)
$this->rc->output->command('plugin.ping_url', array('action' => 'calendar/push-freebusy', 'source' => $storage->id));
@ -1015,7 +1027,7 @@ class kolab_driver extends calendar_driver
// copy attachment metadata to new event
$event = self::from_rcube_event($event, $master);
// remove recurrence exceptions on re-scheduling
if ($reschedule) {
unset($event['recurrence']['EXCEPTIONS'], $event['exceptions'], $master['recurrence']['EXDATE']);
@ -1468,8 +1480,10 @@ class kolab_driver extends calendar_driver
{
if ($calendars && is_string($calendars))
$calendars = explode(',', $calendars);
else if (!$calendars)
else if (!$calendars) {
$this->_read_calendars();
$calendars = array_keys($this->calendars);
}
$query = array();
if ($modifiedsince)
@ -1514,8 +1528,10 @@ class kolab_driver extends calendar_driver
if ($calendars && is_string($calendars))
$calendars = explode(',', $calendars);
else if (!$calendars)
else if (!$calendars) {
$this->_read_calendars();
$calendars = array_keys($this->calendars);
}
foreach ($calendars as $cid) {
if ($storage = $this->get_calendar($cid)) {
@ -1553,6 +1569,9 @@ class kolab_driver extends calendar_driver
$candidates = array();
$query = array(array('tags', '=', 'x-has-alarms'));
$this->_read_calendars();
foreach ($this->calendars as $cid => $calendar) {
// skip calendars with alarms disabled
if (!$calendar->alarms || ($calendars && !in_array($cid, $calendars)))
@ -2309,6 +2328,8 @@ class kolab_driver extends calendar_driver
return parent::calendar_form($action, $calendar, $formfields);
}
$this->_read_calendars();
if ($calendar['id'] && ($cal = $this->calendars[$calendar['id']])) {
$folder = $cal->get_realname(); // UTF7
$color = $cal->get_color();
@ -2442,7 +2463,7 @@ class kolab_driver extends calendar_driver
if (is_array($form['content']) && !empty($form['content'])) {
$table = new html_table(array('cols' => 2));
foreach ($form['content'] as $col => $colprop) {
$label = !empty($colprop['label']) ? $colprop['label'] : $this->rc->gettext($col);
$label = !empty($colprop['label']) ? $colprop['label'] : $this->cal->gettext($col);
$table->add('title', html::label($colprop['id'], rcube::Q($label)));
$table->add(null, $colprop['value']);

View file

@ -34,6 +34,7 @@ class kolab_invitation_calendar
public $categories = array();
public $name = 'Invitations';
/**
* Default constructor
*/
@ -62,7 +63,6 @@ class kolab_invitation_calendar
$this->alarms = $prefs[$this->id]['showalarms'];
}
/**
* Getter for a nice and human readable name for this calendar
*
@ -73,7 +73,6 @@ class kolab_invitation_calendar
return $this->name;
}
/**
* Getter for the IMAP folder owner
*
@ -84,7 +83,6 @@ class kolab_invitation_calendar
return $this->cal->rc->get_user_name();
}
/**
*
*/
@ -93,7 +91,6 @@ class kolab_invitation_calendar
return $this->get_name();
}
/**
* Getter for the name of the namespace to which the IMAP folder belongs
*
@ -104,7 +101,6 @@ class kolab_invitation_calendar
return 'x-special';
}
/**
* Getter for the top-end calendar folder name (not the entire path)
*
@ -171,7 +167,6 @@ class kolab_invitation_calendar
return $prop['id'];
}
/**
* Getter for a single event object
*/
@ -202,7 +197,7 @@ class kolab_invitation_calendar
else {
$cal = null;
foreach (kolab_storage::list_folders('', '*', 'event', null) as $foldername) {
$cal = new kolab_calendar($foldername, $this->cal);
$cal = $this->_get_calendar($foldername);
if ($cal->ready && $cal->storage && $cal->get_event($event['id'])) {
break;
}
@ -216,7 +211,6 @@ class kolab_invitation_calendar
return false;
}
/**
* @param integer Event's new start (unix timestamp)
* @param integer Event's new end (unix timestamp)
@ -239,7 +233,7 @@ class kolab_invitation_calendar
// aggregate events from all calendar folders
$events = array();
foreach (kolab_storage::list_folders('', '*', 'event', null) as $foldername) {
$cal = new kolab_calendar($foldername, $this->cal);
$cal = $this->_get_calendar($foldername);
if ($cal->get_namespace() == 'other')
continue;
@ -293,7 +287,7 @@ class kolab_invitation_calendar
// aggregate counts from all calendar folders
$count = 0;
foreach (kolab_storage::list_folders('', '*', 'event', null) as $foldername) {
$cal = new kolab_calendar($foldername, $this->cal);
$cal = $this->_get_calendar($foldername);
if ($cal->get_namespace() == 'other')
continue;
@ -303,6 +297,15 @@ class kolab_invitation_calendar
return $count;
}
/**
* Get calendar object instance (that maybe already initialized)
*/
private function _get_calendar($folder_name)
{
$id = kolab_storage::folder_id($folder_name, true);
return $this->cal->driver->get_calendar($id);
}
/**
* Helper method to modify some event properties
*/
@ -318,7 +321,6 @@ class kolab_invitation_calendar
return $event;
}
/**
* Create a new event record
*
@ -337,7 +339,6 @@ class kolab_invitation_calendar
* @see calendar_driver::new_event()
* @return boolean True on success, False on error
*/
public function update_event($event, $exception_id = null)
{
// forward call to the actual storage folder
@ -372,6 +373,4 @@ class kolab_invitation_calendar
{
return false;
}
}

View file

@ -5,7 +5,7 @@
*
* @author Thomas Bruederli <bruederli@kolabsys.com>
*
* Copyright (C) 2014-2015, Kolab Systems AG <contact@kolabsys.com>
* Copyright (C) 2014-2016, Kolab Systems AG <contact@kolabsys.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
@ -45,8 +45,12 @@ class kolab_user_calendar extends kolab_calendar
$this->userdata = $user_or_folder;
$this->storage = new kolab_storage_folder_user($this->userdata['kolabtargetfolder'], '', $this->userdata);
}
else if ($user_or_folder instanceof kolab_storage_folder_user) {
$this->storage = $user_or_folder;
$this->userdata = $this->storage->ldaprec;
}
else { // get user record from LDAP
$this->storage = new kolab_storage_folder_user($user_or_folder);
$this->storage = new kolab_storage_folder_user($user_or_folder);
$this->userdata = $this->storage->ldaprec;
}
@ -57,7 +61,7 @@ class kolab_user_calendar extends kolab_calendar
// ID is derrived from the user's kolabtargetfolder attribute
$this->id = kolab_storage::folder_id($this->userdata['kolabtargetfolder'], true);
$this->imap_folder = $this->userdata['kolabtargetfolder'];
$this->name = $this->storage->get_name();
$this->name = $this->storage->name;
$this->parent = ''; // user calendars are top level
// user-specific alarms settings win
@ -67,7 +71,6 @@ class kolab_user_calendar extends kolab_calendar
}
}
/**
* Getter for a nice and human readable name for this calendar
*
@ -78,18 +81,18 @@ class kolab_user_calendar extends kolab_calendar
return $this->userdata['displayname'] ?: ($this->userdata['name'] ?: $this->userdata['mail']);
}
/**
* Getter for the IMAP folder owner
*
* @param bool Return a fully qualified owner name (unused)
*
* @return string Name of the folder owner
*/
public function get_owner()
public function get_owner($fully_qualified = false)
{
return $this->userdata['mail'];
}
/**
*
*/
@ -98,7 +101,6 @@ class kolab_user_calendar extends kolab_calendar
return trim($this->userdata['displayname'] . '; ' . $this->userdata['mail'], '; ');
}
/**
* Getter for the name of the namespace to which the IMAP folder belongs
*
@ -109,7 +111,6 @@ class kolab_user_calendar extends kolab_calendar
return 'other user';
}
/**
* Getter for the top-end calendar folder name (not the entire path)
*
@ -123,7 +124,7 @@ class kolab_user_calendar extends kolab_calendar
/**
* Return color to display this calendar
*/
public function get_color()
public function get_color($default = null)
{
// calendar color is stored in local user prefs
$prefs = $this->cal->rc->config->get('kolab_calendars', array());
@ -131,7 +132,7 @@ class kolab_user_calendar extends kolab_calendar
if (!empty($prefs[$this->id]) && !empty($prefs[$this->id]['color']))
return $prefs[$this->id]['color'];
return 'cc0000';
return $default ?: 'cc0000';
}
/**
@ -164,7 +165,6 @@ class kolab_user_calendar extends kolab_calendar
return $prop['id'];
}
/**
* Getter for a single event object
*/
@ -197,9 +197,11 @@ class kolab_user_calendar extends kolab_calendar
* @param string Search query (optional)
* @param boolean Include virtual events (optional)
* @param array Additional parameters to query storage
* @param array Additional query to filter events
*
* @return array A list of event records
*/
public function list_events($start, $end, $search = null, $virtual = 1, $query = array())
public function list_events($start, $end, $search = null, $virtual = 1, $query = array(), $filter_query = null)
{
// convert to DateTime for comparisons
try {
@ -260,9 +262,10 @@ class kolab_user_calendar extends kolab_calendar
*
* @param integer Date range start (unix timestamp)
* @param integer Date range end (unix timestamp)
* @param array Additional query to filter events
* @return integer Count
*/
public function count_events($start, $end = null)
public function count_events($start, $end = null, $filter_query = null)
{
// not implemented
return 0;
@ -319,7 +322,7 @@ class kolab_user_calendar extends kolab_calendar
'X-OUT-OF-OFFICE' => $this->cal->gettext('availoutofoffice'),
);
// rcmail::console('_fetch_freebusy', kolab_storage::get_freebusy_url($this->userdata['mail']), $fbdata);
// rcube::console('_fetch_freebusy', kolab_storage::get_freebusy_url($this->userdata['mail']), $fbdata);
// parse free-busy information
$count = 0;
@ -371,7 +374,6 @@ class kolab_user_calendar extends kolab_calendar
return sprintf('%s/%s', $event['start']->format('U'), is_object($event['end']) ? $event['end']->format('U') : '0');
}
/**
* Create a new event record
*
@ -390,7 +392,6 @@ class kolab_user_calendar extends kolab_calendar
* @see calendar_driver::new_event()
* @return boolean True on success, False on error
*/
public function update_event($event, $exception_id = null)
{
return false;

View file

@ -47,11 +47,12 @@ class calendar_ui
// add taskbar button
$this->cal->add_button(array(
'command' => 'calendar',
'class' => 'button-calendar',
'classsel' => 'button-calendar button-selected',
'command' => 'calendar',
'class' => 'button-calendar',
'classsel' => 'button-calendar button-selected',
'innerclass' => 'button-inner',
'label' => 'calendar.calendar',
'label' => 'calendar.calendar',
'type' => 'link'
), 'taskbar');
// load basic client script
@ -177,7 +178,7 @@ class calendar_ui
{
$color = $prop['color'];
$class = 'cal-' . asciiwords($id, true);
$css .= "li .$class, #eventshow .$class { color: #$color }\n";
$css .= "li .$class, #eventshow .$class { color: #$color; }\n";
if ($mode != 1) {
if ($mode == 3) {
@ -189,7 +190,7 @@ class calendar_ui
$css .= ".fc-event-$class, ";
$css .= ".fc-event-$class .fc-event-inner {";
}
if (!$attrib['printmode'])
if (!$prop['printmode'])
$css .= " background-color: #$color;";
if ($mode % 2 == 0)
$css .= " border-color: #$color;";
@ -586,7 +587,7 @@ class calendar_ui
$checkbox = new html_checkbox(array('name' => 'attachments', 'id' => 'event-export-attachments', 'value' => 1));
$html .= html::div('form-section',
html::label('event-export-range', $this->cal->gettext('exportattachments')) .
html::label('event-export-attachments', $this->cal->gettext('exportattachments')) .
$checkbox->show(1)
);
@ -608,7 +609,7 @@ class calendar_ui
$attrib['id'] = 'rcmUploadForm';
// Get max filesize, enable upload progress bar
$max_filesize =$this->rc->upload_init();
$max_filesize = $this->rc->upload_init();
$button = new html_inputfield(array('type' => 'button'));
$input = new html_inputfield(array(
@ -617,7 +618,7 @@ class calendar_ui
return html::div($attrib,
html::div(null, $input->show()) .
html::div('formbuttons', $button->show($this->rc->gettext('upload'), array('class' => 'button mainaction',
html::div('buttons', $button->show($this->rc->gettext('upload'), array('class' => 'button mainaction',
'onclick' => rcmail_output::JS_OBJECT_NAME . ".upload_file(this.form)"))) .
html::div('hint', $this->rc->gettext(array('name' => 'maxuploadsize', 'vars' => array('size' => $max_filesize))))
);

View file

@ -1,5 +1,4 @@
<?php
/**
* Localizations for Kolab Calendar plugin
*
@ -7,10 +6,6 @@
*
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
*/
$labels = array();
// preferences
$labels['default_view'] = 'Standardvisning';
$labels['time_format'] = 'Tidsformat';
$labels['timeslots'] = 'Tidsblokke per time';
@ -32,8 +27,6 @@ $labels['afterflagdeleted'] = 'Markér som slettet';
$labels['aftermoveto'] = 'Flyt til ...';
$labels['itipoptions'] = 'Begivenhedsinvitationer';
$labels['afteraction'] = 'Efter en invitation eller opdateringsbesked er behandlet';
// calendar
$labels['calendar'] = 'Kalender';
$labels['calendars'] = 'Kalendere';
$labels['category'] = 'Kategori';
@ -122,8 +115,6 @@ $labels['invitationspending'] = 'Afventende invitationer';
$labels['invitationsdeclined'] = 'Afviste invitationer';
$labels['changepartstat'] = 'Skift deltagerstatus';
$labels['rsvpcomment'] = 'Invitationstekst';
// agenda view
$labels['listrange'] = 'Interval som skal vises:';
$labels['listsections'] = 'Del op i:';
$labels['smartsections'] = 'Smarte sektioner';
@ -138,13 +129,9 @@ $labels['nextmonth'] = 'Næste måned';
$labels['weekofyear'] = 'Uge';
$labels['pastevents'] = 'Tidligere';
$labels['futureevents'] = 'Fremtid';
// alarm/reminder settings
$labels['showalarms'] = 'Vis påmindelser';
$labels['defaultalarmtype'] = 'Standardindstilling for påmindelse';
$labels['defaultalarmoffset'] = 'Standardtidspunkt for påmindelse';
// attendees
$labels['attendee'] = 'Deltager';
$labels['role'] = 'Rolle';
$labels['availability'] = 'Tilg.';
@ -184,22 +171,17 @@ $labels['eventupdatesubjectempty'] = 'Et arrangement der vedrører dig er blevet
$labels['eventupdatemailbody'] = "*\$title*\n\nTidspunkt: \$date\n\nInviterede: \$attendees\n\nBemærk venligst vedhæftede iCalendar-fil med alle detaljer om arrangementet, som du kan importere til dit kalenderprogram.";
$labels['eventcancelsubject'] = '"$title" er blevet annulleret';
$labels['eventcancelmailbody'] = "*\$title*\n\nTidspunkt: \$date\n\nInviterede: \$attendees\n\nDette arrangement er blevet aflyst af \$organizer.\n\nBemærk venligst vedhæftede iCalendard-fil med de opdaterede detaljer om arrangementet.";
// invitation handling (overrides labels from libcalendaring)
$labels['itipobjectnotfound'] = 'Begivenheden som denne besked henviser til, blev ikke fundet i din kalender.';
$labels['itipmailbodyaccepted'] = "\$sender har accepteret invitationen til det følgende arrangement:\n\n*\$title*\n\nTidspunkt: \$date\n\nInviterede: \$attendees";
$labels['itipmailbodytentative'] = "\$sender har forsøgsvist accepteret invitationen til det følgende arrangement:\n\n*\$title*\n\nTidspunkt: \$date\n\nInviterede: \$attendees";
$labels['itipmailbodydeclined'] = "\$sender har afvist invitationen til det følgende arrangement:\n\n*\$title*\n\nTidspunkt: \$date\n\nInviterede: \$attendees";
$labels['itipmailbodycancel'] = "\$sender har afvist din deltagelse i følgende begivenhed:\n\n*\$title*\n\nTidspunkt: \$date";
$labels['itipmailbodydelegated'] = "\$sender har delegeret deltagelsen i følgende begivenhed:\n\n*\$title*\n\nTidspunkt: \$date";
$labels['itipmailbodydelegatedto'] = "\$sender har delegeret deltagelsen i følgende begivenhed til dig:\n\n*\$title*\n\nTidspunkt: \$date";
$labels['itipdeclineevent'] = 'Sikker på at du vil afvise dette arrangement?';
$labels['declinedeleteconfirm'] = 'Vil du også slette dette afviste arrangement fra din kalender?';
$labels['itipcomment'] = 'Invitation/notification comment';
$labels['itipcommenttitle'] = 'Denne kommentar vil blive føjet til den besked med invitation/notifikation, der sendes til deltagerne';
$labels['notanattendee'] = 'Du er ikke opført som deltager for dette arrangement';
$labels['eventcancelled'] = 'Arrangementet er blevet aflyst';
$labels['saveincalendar'] = 'gem i';
@ -208,8 +190,6 @@ $labels['savetocalendar'] = 'Gem til kalender';
$labels['openpreview'] = 'Tjek kalender';
$labels['noearlierevents'] = 'Ingen tidligere begivenheder';
$labels['nolaterevents'] = 'Ingen senere begivenheder';
// resources
$labels['resource'] = 'Ressource';
$labels['addresource'] = 'Booking af ressource';
$labels['findresources'] = 'Find ressourcer';
@ -217,16 +197,12 @@ $labels['resourcedetails'] = 'Detaljer';
$labels['resourceavailability'] = 'Tilgængelighed';
$labels['resourceowner'] = 'Ejer';
$labels['resourceadded'] = 'Ressourcen til føjet til din begivenhed';
// event dialog tabs
$labels['tabsummary'] = 'Resumé';
$labels['tabrecurrence'] = 'Gentagelse';
$labels['tabattendees'] = 'Deltagere';
$labels['tabresources'] = 'Ressourcer';
$labels['tabattachments'] = 'Vedhæftninger';
$labels['tabsharing'] = 'Deling';
// messages
$labels['deleteobjectconfirm'] = 'Sikker på at du vil slette dette arrangement?';
$labels['deleteventconfirm'] = 'Sikker på at du vil slette dette arrangement?';
$labels['deletecalendarconfirm'] = 'Sikker på at du vil slette denne kalender med alle dets arrangementer?';
@ -256,7 +232,6 @@ $labels['importsuccess'] = 'Gennemførte import af $nr arrangementer';
$labels['importnone'] = 'Fandt ingen arrangementer som kunne importeres';
$labels['importerror'] = 'Der opstod en fejl under import';
$labels['aclnorights'] = 'Du har ikke administratorrettigheder for denne kalender.';
$labels['changeeventconfirm'] = 'Tilpas arrangement';
$labels['removeeventconfirm'] = 'Slet begivenhed';
$labels['changerecurringeventwarning'] = 'Dette er et tilbagevendende arrangement. Ønsker du kun at redige det aktuelle arrangement, dette og alle fremtidige forekomster, alle forekomster eller gemme det som et nyt arrangement?';
@ -266,16 +241,12 @@ $labels['currentevent'] = 'Nuværende';
$labels['futurevents'] = 'Fremtid';
$labels['allevents'] = 'Alle';
$labels['saveasnew'] = 'Gem som ny';
// birthdays calendar
$labels['birthdays'] = 'Fødselsdage';
$labels['birthdayscalendar'] = 'Fødselsdagskalender';
$labels['displaybirthdayscalendar'] = 'Vis fødselsdagskalender';
$labels['birthdayscalendarsources'] = 'Fra disse adressebøger';
$labels['birthdayeventtitle'] = '$name har fødselsdag';
$labels['birthdayage'] = '$age år';
// history dialog
$labels['objectchangelog'] = 'Ændringshistorik';
$labels['objectdiff'] = 'Ændringer fra $rev1 til $rev2';
$labels['objectnotfound'] = 'Kunne ikke indlæse begivenhedsdata';
@ -284,9 +255,6 @@ $labels['objectdiffnotavailable'] = 'Det er ikke muligt at sammenligne de valgte
$labels['revisionrestoreconfirm'] = 'Sikker på at du vil genskabe revision $rev af denne begivenhed? Dette vil erstatte den nuværende begivenhed med den tidligere version.';
$labels['objectrestoresuccess'] = 'Revision $rev blev genskabt';
$labels['objectrestoreerror'] = 'Mislykkedes med at genskabe den gamle revision';
// (hidden) titles and labels for accessibility annotations
$labels['arialabelminical'] = 'Valg af kalenderdato';
$labels['arialabelcalendarview'] = 'Kalendervisning';
$labels['arialabelsearchform'] = 'Søgeformular for begivenheder';
@ -297,5 +265,4 @@ $labels['arialabeleventattendees'] = 'Deltagerliste for begivenhed';
$labels['arialabeleventresources'] = 'Ressourceliste for begivenhed';
$labels['arialabelresourcesearchform'] = 'Søgeformular for ressourcer';
$labels['arialabelresourceselection'] = 'Tilgængelige ressourcer';
?>

View file

@ -179,6 +179,7 @@ $labels['itipmailbodycancel'] = "\$sender hat ihre Teilnahme bei der folgenden V
$labels['itipmailbodydelegated'] = "\$sender hat die Teilnahme an folgendem Event delegiert:\n\n*\$title*\n\nWann: \$date";
$labels['itipmailbodydelegatedto'] = "\$sender hat die Teilnahme an folgendem Event an Sie delegiert:\n\n*\$title*\n\nWann: \$date";
$labels['itipdeclineevent'] = 'Möchten Sie die Einladung zu diesem Termin ablehnen?';
$labels['declinedeleteconfirm'] = 'Do you also want to delete this declined event from your calendar?';
$labels['itipcomment'] = 'Kommentar zur Einladungs/Benachrichtigung';
$labels['itipcommenttitle'] = 'Dieser Kommentar wird an die Einladungs/Benachrichtigung angehängt, die an die Teilnehmer verschickt wird';
$labels['notanattendee'] = 'Sie sind nicht in der Liste der Teilnehmer aufgeführt';

View file

@ -1,5 +1,4 @@
<?php
/**
* Localizations for Kolab Calendar plugin
*
@ -7,10 +6,6 @@
*
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
*/
$labels = array();
// preferences
$labels['default_view'] = 'Standardansicht';
$labels['time_format'] = 'Zeitformatierung';
$labels['timeslots'] = 'Zeitfenster pro Stunde';
@ -32,8 +27,6 @@ $labels['afterflagdeleted'] = 'Als gelöscht markieren';
$labels['aftermoveto'] = 'Verschiebe nach...';
$labels['itipoptions'] = 'Veranstaltungseinladungen';
$labels['afteraction'] = 'Nachdem eine Einladungs- oder Aktualisierungsnachricht verarbeitet wurde';
// calendar
$labels['calendar'] = 'Kalender';
$labels['calendars'] = 'Kalender';
$labels['category'] = 'Kategorie';
@ -122,8 +115,6 @@ $labels['invitationspending'] = 'Ausstehende Einladungen';
$labels['invitationsdeclined'] = 'Abgelehnte Einladungen';
$labels['changepartstat'] = 'Teilnehmerstatus ändern';
$labels['rsvpcomment'] = 'Einladungstext';
// agenda view
$labels['listrange'] = 'Angezeigter Bereich:';
$labels['listsections'] = 'Unterteilung:';
$labels['smartsections'] = 'Intelligent';
@ -138,13 +129,9 @@ $labels['nextmonth'] = 'Nächsten Monat';
$labels['weekofyear'] = 'Woche';
$labels['pastevents'] = 'Vergangene';
$labels['futureevents'] = 'Zukünftige';
// alarm/reminder settings
$labels['showalarms'] = 'Erinnerungen anzeigen';
$labels['defaultalarmtype'] = 'Standard-Erinnerungseinstellung';
$labels['defaultalarmoffset'] = 'Standard-Erinnerungszeit';
// attendees
$labels['attendee'] = 'Teilnehmer';
$labels['role'] = 'Rolle';
$labels['availability'] = 'Verfüg.';
@ -184,22 +171,17 @@ $labels['eventupdatesubjectempty'] = 'Termin wurde aktualisiert';
$labels['eventupdatemailbody'] = "*\$title*\n\nWann: \$date\n\nTeilnehmer: \$attendees\n\nIm Anhang finden Sie eine iCalendar-Datei mit den aktualisiereten Termindaten. Diese können Sie in Ihre Kalenderanwendung importieren.";
$labels['eventcancelsubject'] = '»$title« wurde abgesagt';
$labels['eventcancelmailbody'] = "*\$title*\n\nWann: \$date\n\nTeilnehmer: \$attendees\n\nDer Termin wurde von \$organizer abgesagt.\n\nIm Anhang finden Sie eine iCalendar-Datei mit den Termindaten.";
// invitation handling (overrides labels from libcalendaring)
$labels['itipobjectnotfound'] = 'Der Termin auf den sich diese Nachricht bezieht, wurde in Ihrem Kalender nicht gefunden.';
$labels['itipmailbodyaccepted'] = "\$sender hat die Einladung zum folgenden Termin angenommen:\n\n*\$title*\n\nWann: \$date\n\nTeilnehmer: \$attendees";
$labels['itipmailbodytentative'] = "\$sender hat die Einladung mit Vorbehalt zum folgenden Termin angenommen:\n\n*\$title*\n\nWann: \$date\n\nTeilnehmer: \$attendees";
$labels['itipmailbodydeclined'] = "\$sender hat die Einladung zum folgenden Termin abgelehnt:\n\n*\$title*\n\nWann: \$date\n\nTeilnehmer: \$attendees";
$labels['itipmailbodycancel'] = "\$sender hat Ihre Teilnahme bei der folgenden Veranstaltung zurückgewiesen:\n\n*\$title*\n\nWann: \$date";
$labels['itipmailbodydelegated'] = "\$sender hat die Teilnahme an folgendem Event delegiert:\n\n*\$title*\n\nWhen: \$date";
$labels['itipmailbodydelegatedto'] = "\$sender hat die Teilnahme an folgendem Event an Sie delegiert:\n\n*\$title*\n\nWann: \$date";
$labels['itipdeclineevent'] = 'Möchten Sie die Einladung zu diesem Termin ablehnen?';
$labels['declinedeleteconfirm'] = 'Soll der abgelehnte Termin zusätzlich aus dem Kalender gelöscht werden?';
$labels['itipcomment'] = 'Kommentar zur Einladungs-/Benachrichtigungsnachricht';
$labels['itipcommenttitle'] = 'Dieser Kommentar wird an die Einladungs-/Benachrichtigungsnachricht angehängt, die an die Teilnehmer verschickt wird';
$labels['notanattendee'] = 'Sie sind nicht in der Liste der Teilnehmer aufgeführt';
$labels['eventcancelled'] = 'Der Termin wurde vom Organisator abgesagt';
$labels['saveincalendar'] = 'speichern in';
@ -208,8 +190,6 @@ $labels['savetocalendar'] = 'In Kalender übernehmen';
$labels['openpreview'] = 'Kalender überprüfen';
$labels['noearlierevents'] = 'Keine früheren Ereignisse';
$labels['nolaterevents'] = 'Keine späteren Ereignisse';
// resources
$labels['resource'] = 'Ressource';
$labels['addresource'] = 'Ressource buchen';
$labels['findresources'] = 'Ressourcen finden';
@ -217,16 +197,12 @@ $labels['resourcedetails'] = 'Details';
$labels['resourceavailability'] = 'Verfügbarkeit';
$labels['resourceowner'] = 'Eigentümer';
$labels['resourceadded'] = 'Diese Ressource wurde Ihrem Termin hinzugefügt';
// event dialog tabs
$labels['tabsummary'] = 'Übersicht';
$labels['tabrecurrence'] = 'Wiederholung';
$labels['tabattendees'] = 'Teilnehmer';
$labels['tabresources'] = 'Ressourcen';
$labels['tabattachments'] = 'Anhänge';
$labels['tabsharing'] = 'Freigabe';
// messages
$labels['deleteobjectconfirm'] = 'Möchten Sie diesen Termin wirklich löschen?';
$labels['deleteventconfirm'] = 'Möchten Sie diesen Termin wirklich löschen?';
$labels['deletecalendarconfirm'] = 'Möchten Sie diesen Kalender mit allen Terminen wirklich löschen?';
@ -256,7 +232,6 @@ $labels['importsuccess'] = 'Es wurden $nr Termine erfolgreich importiert';
$labels['importnone'] = 'Keine Termine zum Importieren gefunden';
$labels['importerror'] = 'Fehler beim Importieren';
$labels['aclnorights'] = 'Der Zugriff auf diesen Kalender erfordert Administrator-Rechte.';
$labels['changeeventconfirm'] = 'Termin ändern';
$labels['removeeventconfirm'] = 'Termin löschen';
$labels['changerecurringeventwarning'] = 'Dies ist eine Terminreihe. Möchten Sie nur den aktuellen, diesen und alle zukünftigen oder alle Termine bearbeiten oder die Änderungen als neuen Termin speichern?';
@ -266,16 +241,12 @@ $labels['currentevent'] = 'Aktuellen';
$labels['futurevents'] = 'Zukünftige';
$labels['allevents'] = 'Alle';
$labels['saveasnew'] = 'Als neu speichern';
// birthdays calendar
$labels['birthdays'] = 'Geburtstage';
$labels['birthdayscalendar'] = 'Geburtstagskalender';
$labels['displaybirthdayscalendar'] = 'Geburtstagskalender anzeigen';
$labels['birthdayscalendarsources'] = 'Für diese Adressbücher';
$labels['birthdayeventtitle'] = '$names Geburtstag';
$labels['birthdayage'] = 'Alter $age';
// history dialog
$labels['objectchangelog'] = 'Änderungsverlauf';
$labels['objectdiff'] = 'Änderungen aus $rev1 nach $rev2';
$labels['objectnotfound'] = 'Termindaten sind leider nicht vergübar';
@ -284,9 +255,6 @@ $labels['objectdiffnotavailable'] = 'Vergleich für die gewählten Versionen nic
$labels['revisionrestoreconfirm'] = 'Wollen Sie wirklich die Version $rev dieses Termins wiederherstellen? Diese Aktion wird die aktuelle Kopie mit der älteren Version ersetzen.';
$labels['objectrestoresuccess'] = 'Revision $rev erfolgreich wiederhergestellt';
$labels['objectrestoreerror'] = 'Fehler beim Wiederherstellen der alten Revision';
// (hidden) titles and labels for accessibility annotations
$labels['arialabelminical'] = 'Kalender Datumswahl';
$labels['arialabelcalendarview'] = 'Kalender Ansicht';
$labels['arialabelsearchform'] = 'Suchformular für Termine';
@ -297,5 +265,4 @@ $labels['arialabeleventattendees'] = 'Teilehmerliste';
$labels['arialabeleventresources'] = 'Liste der Terminressourcen';
$labels['arialabelresourcesearchform'] = 'Suchformular für Ressourcen';
$labels['arialabelresourceselection'] = 'Verfügbare Ressourcen';
?>

View file

@ -165,6 +165,8 @@ $labels['availbusy'] = 'Busy';
$labels['availunknown'] = 'Unknown';
$labels['availtentative'] = 'Tentative';
$labels['availoutofoffice'] = 'Out of Office';
$labels['delegatedto'] = 'Delegated to: ';
$labels['delegatedfrom'] = 'Delegated from: ';
$labels['scheduletime'] = 'Find availability';
$labels['sendinvitations'] = 'Send invitations';
$labels['sendnotifications'] = 'Notify participants about modifications';

View file

@ -169,6 +169,7 @@ $labels['invitationattendlinks'] = "En caso de que su cliente de correo electró
$labels['eventupdatesubject'] = '"$title" Ha sido actualizado';
$labels['eventupdatesubjectempty'] = 'Un evento que le concierne ha sido actualizado';
$labels['eventupdatemailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nSe adjunta un archivo iCalendar con los detalles del evento actualizados que se puede importar a la aplicación de calendario.";
$labels['eventcancelsubject'] = 'Se ha cancelado "$título"';
$labels['eventcancelmailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nEl evento ha sido cancelado por\$organizer.\n\nSe adjunta un archivo iCalendar con los detalles del evento actualizados.";
$labels['itipobjectnotfound'] = 'El evento referido por este mensaje no se encontró en su calendario.';
$labels['itipmailbodyaccepted'] = "\$sender ha aceptado la invitación al evento siguiente:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
@ -183,21 +184,85 @@ $labels['itipcomment'] = 'Añadir comentarios a la Invitación/notificación';
$labels['itipcommenttitle'] = 'Este comentario se adjunta al mensaje de invitación/notificación enviada a los participantes';
$labels['notanattendee'] = 'Usted no está en la lista como un asistente de este evento';
$labels['eventcancelled'] = 'El evento ha sido cancelado';
$labels['saveincalendar'] = 'guardar en';
$labels['updatemycopy'] = 'actualizar en mi calendario';
$labels['savetocalendar'] = 'guardar en calendario';
$labels['openpreview'] = 'Revisar en calendario';
$labels['noearlierevents'] = 'No hay eventos anteriores';
$labels['nolaterevents'] = 'No hay eventos posteriores';
$labels['resource'] = 'Recurso';
$labels['addresource'] = 'Reservar recursos';
$labels['findresources'] = 'Encontrar recursos';
$labels['resourcedetails'] = 'Detalles';
$labels['resourceavailability'] = 'Disponibilidad';
$labels['resourceowner'] = 'Propietario';
$labels['resourceadded'] = 'Se ha añadido un recurso a su evento';
$labels['tabsummary'] = 'Sumario';
$labels['tabrecurrence'] = 'Recurrencia ';
$labels['tabattendees'] = 'Participantes';
$labels['tabresources'] = 'Recursos';
$labels['tabattachments'] = 'Adjuntos';
$labels['tabsharing'] = 'Compartir';
$labels['deleteobjectconfirm'] = '¿Esta seguro de eliminar este evento?';
$labels['deleteventconfirm'] = '¿Esta seguro de eliminar este evento?';
$labels['deletecalendarconfirm'] = '¿Esta seguro de eliminar este calendario con todos sus eventos?';
$labels['deletecalendarconfirmrecursive'] = '¿Esta seguro de eliminar este calendario con todos sus eventos y subcalendarios?';
$labels['savingdata'] = 'Guardando datos...';
$labels['errorsaving'] = 'Error al guardar cambios';
$labels['operationfailed'] = 'Error en la operación solicitada';
$labels['invalideventdates'] = 'Se han introducido fechas erróneas; por favor, revise su entrada';
$labels['invalidcalendarproperties'] = 'Propiedades de portátiles erróneas; establezca un nombre válido.';
$labels['searchnoresults'] = 'No se han encontrado eventos en los calendarios seleccionados.';
$labels['successremoval'] = 'El evento se ha eliminado correctamente.';
$labels['successrestore'] = 'El evento se ha restaurado correctamente.';
$labels['errornotifying'] = 'Error al enviar notificaciones a los participantes del evento';
$labels['errorimportingevent'] = 'Error al importar el evento';
$labels['importwarningexists'] = 'Ya existe una copia de este evento en su calendario.';
$labels['newerversionexists'] = 'Ya existe una versión más nueva de este evento. Abortado.';
$labels['nowritecalendarfound'] = 'No se ha encontrado ningún calendario para guardar el evento.';
$labels['importedsuccessfully'] = 'El evento se agregó correctamente a \'$calendar\'';
$labels['updatedsuccessfully'] = 'El evento se actualizó correctamente en \'$calendar\'';
$labels['attendeupdateesuccess'] = 'Se ha actualizado correctamente el estado del participante';
$labels['itipsendsuccess'] = 'Invitación enviada a los participantes.';
$labels['itipresponseerror'] = 'Error al enviar la respuesta a esta invitación de evento';
$labels['itipinvalidrequest'] = 'Esta invitación ya no es válida';
$labels['sentresponseto'] = 'Respuesta de invitación con éxito enviada a $mailto';
$labels['localchangeswarning'] = 'Está a punto de realizar cambios que sólo se reflejarán en su calendario y no se enviarán al organizador del evento.';
$labels['importsuccess'] = 'Se han importado $nr eventos correctamente';
$labels['importnone'] = 'No se han encontrado eventos para importar';
$labels['importerror'] = 'Se ha producido un error durante la importación';
$labels['aclnorights'] = 'No tiene derechos de administrador en este calendario.';
$labels['changeeventconfirm'] = 'Cambiar evento';
$labels['removeeventconfirm'] = 'Eliminar evento';
$labels['changerecurringeventwarning'] = 'Este es un evento recurrente. ¿Desea editar solo el evento actual, este y todos los futuros casos, todos los casos o guardarlo como un nuevo evento?';
$labels['removerecurringeventwarning'] = 'Este es un evento recurrente. ¿Desea eliminar solo el evento actual, este y todos los futuros casos o todos los casos de este evento?';
$labels['removerecurringallonly'] = 'Este es un evento recurrente. Como participante, sólo puede eliminar el evento al completo con todos los casos..';
$labels['currentevent'] = 'Actual';
$labels['futurevents'] = 'Futuro';
$labels['allevents'] = 'Todo';
$labels['saveasnew'] = 'Guardar como nuevo';
$labels['birthdays'] = 'Cumpleaños';
$labels['birthdayscalendar'] = 'Calendario de cumpleaños';
$labels['displaybirthdayscalendar'] = 'Mostrar calendarios de cumpleaños';
$labels['birthdayscalendarsources'] = 'Desde esta libreta de direcciones';
$labels['birthdayeventtitle'] = 'Cumpleaños de $nombre';
$labels['birthdayage'] = 'Edad $edad';
$labels['objectchangelog'] = 'Cambiar historial';
$labels['objectdiff'] = 'Cambiar de $rev1 a $rev2';
$labels['objectnotfound'] = 'Error al cargar los datos del evento';
$labels['objectchangelognotavailable'] = 'El historial de cambios no está disponible para este evento';
$labels['objectdiffnotavailable'] = 'No hay comparación posible que las revisiones seleccionadas';
$labels['revisionrestoreconfirm'] = '¿Realmente desea restaurar la revisión $rev de este evento? Esto reemplazará el evento actual con la antigua versión.';
$labels['objectrestoresuccess'] = 'Revisión $rev restaurado correctamente';
$labels['objectrestoreerror'] = 'No se pudo restaurar la revisión antigua';
$labels['objectrestoreerror'] = 'No se pudo restaurar la revisión anterior';
$labels['arialabelminical'] = 'Seleccionar una fecha en el calendario';
$labels['arialabelcalendarview'] = 'Vista del calendario';
$labels['arialabelsearchform'] = 'Formulario de búsqueda de eventos';
$labels['arialabelquicksearchbox'] = 'Entrada en búsqueda de eventos';
$labels['arialabelcalsearchform'] = 'Formulario de búsqueda de calendarios';
$labels['calendaractions'] = 'acciones del calendario';
$labels['arialabeleventattendees'] = 'Lista de participantes del evento';
$labels['arialabeleventresources'] = 'Lista de recursos del evento';
$labels['arialabelresourcesearchform'] = 'Formulario de búsqueda de recursos';
$labels['arialabelresourceselection'] = 'Recursos disponibles';
?>

View file

@ -1,5 +1,4 @@
<?php
/**
* Localizations for Kolab Calendar plugin
*
@ -7,10 +6,6 @@
*
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
*/
$labels = array();
// preferences
$labels['default_view'] = 'Oletusnäkymä';
$labels['time_format'] = 'Aikamuoto';
$labels['timeslots'] = 'Ajankohdat per tunti';
@ -23,8 +18,6 @@ $labels['defaultcalendar'] = 'Luo uudet tapahtumat kohteeseen';
$labels['eventcoloring'] = 'Tapahtuman väritys';
$labels['coloringmode0'] = 'Kalenterin mukaan';
$labels['coloringmode1'] = 'Luokan mukaan';
$labels['coloringmode2'] = 'Calendar for outline, category for content';
$labels['coloringmode3'] = 'Category for outline, calendar for content';
$labels['afternothing'] = 'Älä tee mitään';
$labels['aftertrash'] = 'Siirrä roskakoriin';
$labels['afterdelete'] = 'Poista viesti';
@ -32,8 +25,6 @@ $labels['afterflagdeleted'] = 'Merkitse poistettavaksi';
$labels['aftermoveto'] = 'Siirrä...';
$labels['itipoptions'] = 'Tapahtuman kutsut';
$labels['afteraction'] = 'Kun kutsu tai päivitysviesti on käsitelty';
// calendar
$labels['calendar'] = 'Kalenteri';
$labels['calendars'] = 'Kalenterit';
$labels['category'] = 'Luokka';
@ -122,8 +113,6 @@ $labels['invitationspending'] = 'Odottavat kutsut';
$labels['invitationsdeclined'] = 'Torjutut kutsut';
$labels['changepartstat'] = 'Muuta osallistujan tilaa';
$labels['rsvpcomment'] = 'Kutsuteksti';
// agenda view
$labels['listrange'] = 'Näytettävä aikaväli';
$labels['listsections'] = 'Jaa osiin:';
$labels['smartsections'] = 'Älykkäät osiot';
@ -138,13 +127,9 @@ $labels['nextmonth'] = 'Ensi kuussa';
$labels['weekofyear'] = 'Viikko';
$labels['pastevents'] = 'Menneet';
$labels['futureevents'] = 'Tulevat';
// alarm/reminder settings
$labels['showalarms'] = 'Näytä muistutukset';
$labels['defaultalarmtype'] = 'Muistutuksen oletusasetus';
$labels['defaultalarmoffset'] = 'Muistutuksen oletusaika';
// attendees
$labels['attendee'] = 'Osallistujat';
$labels['role'] = 'Rooli';
$labels['availability'] = 'Saatavilla';
@ -184,22 +169,17 @@ $labels['eventupdatesubjectempty'] = 'Sinua koskeva tapahtuma on päivitetty';
$labels['eventupdatemailbody'] = "*\$title*\n\nMilloin: \$date\n\nKutsutut: \$attendees\n\nOhessa iCalendar -tiedosto mistä löytyvät kaikki päivitetyn tapahtuman yksityistiedot. Voit tuoda tämän tiedoston kalenteriohjelmaasi.";
$labels['eventcancelsubject'] = '"$title" on peruttu';
$labels['eventcancelmailbody'] = "*\$title*\n\nMilloin: \$date\n\nKutsutut: \$attendees\n\nTämä tapahtuma on peruttu \$organizer toimesta.\n\nLöydät liitteenä iCalendar -tiedoston tapahtuman päivitetyin tiedoin.";
// invitation handling (overrides labels from libcalendaring)
$labels['itipobjectnotfound'] = 'Viestissä mainittua tapahtumaa ei löydy kalenteristasi.';
$labels['itipmailbodyaccepted'] = "\$sender on hyväksynyt kutsun seuraavaan tapahtumaan:\n\n*\$title*\n\nMilloin: \$date\n\nKutsutut: \$attendees";
$labels['itipmailbodytentative'] = "\$sender on alustavasti hyväksynyt kutsun seuraavaan tapahtumaan:\n\n*\$title*\n\nMilloin: \$date\n\nKutsutut: \$attendees";
$labels['itipmailbodydeclined'] = "\$sender on hylännyt kutsun seuraavaan tapahtumaan:\n\n*\$title*\n\nMilloin: \$date\n\nKutsutut: \$attendees";
$labels['itipmailbodycancel'] = "\$sender on hylännyt osallistumisesi tapahtumaan:\n\n*\$title*\n\nMilloin: \$date";
$labels['itipmailbodydelegated'] = "\$sender on delegoinut osallistumisensa seuraavaan tapahtumaan:\n\n*\$title*\n\nAjankohta: \$date";
$labels['itipmailbodydelegatedto'] = "\$sender on delegoinut osallistumisensa sinulle seuraavaan tapahtumaan:\n\n*\$title*\n\nAjankohta: \$date";
$labels['itipdeclineevent'] = 'Haluatko perua kutsun tähän tapahtumaan?';
$labels['declinedeleteconfirm'] = 'Haluatko poistaa tämän hylätyn tapahtuman kalenteristasi?';
$labels['itipcomment'] = 'Kutsun/herätteen kommentit';
$labels['itipcommenttitle'] = 'Tämä kommentti liitetään osallistujille lähetettävään kutsuun/heräteviestiin';
$labels['notanattendee'] = 'Sinua ei ole määritetty tapahtuman osanottajaksi';
$labels['eventcancelled'] = 'Tapahtuma on peruttu';
$labels['saveincalendar'] = 'tallennuskohde';
@ -208,8 +188,6 @@ $labels['savetocalendar'] = 'Tallenna kalenteriin';
$labels['openpreview'] = 'Tarkista kalenteri';
$labels['noearlierevents'] = 'Ei aiempia tapahtumia';
$labels['nolaterevents'] = 'Ei myöhempiä tapahtumia';
// resources
$labels['resource'] = 'Resurssi';
$labels['addresource'] = 'Varaa resurssi';
$labels['findresources'] = 'Etsi resursseja';
@ -217,16 +195,12 @@ $labels['resourcedetails'] = 'Tiedot';
$labels['resourceavailability'] = 'Saatavuus';
$labels['resourceowner'] = 'Omistaja';
$labels['resourceadded'] = 'Resurssi on liitetty tapahtumaasi';
// event dialog tabs
$labels['tabsummary'] = 'Yhteenveto';
$labels['tabrecurrence'] = 'Toistuminen';
$labels['tabattendees'] = 'Osallistujat';
$labels['tabresources'] = 'Resurssit';
$labels['tabattachments'] = 'Liitteet';
$labels['tabsharing'] = 'Jakaminen';
// messages
$labels['deleteobjectconfirm'] = 'Haluatko varmasti poistaa tämän tapahtuman?';
$labels['deleteventconfirm'] = 'Haluatko varmasti poistaa tämän tapahtuman?';
$labels['deletecalendarconfirm'] = 'Haluatko varmasti poistaa tämän kalenterin ja kaikki sen tapahtumat?';
@ -256,7 +230,6 @@ $labels['importsuccess'] = '$nr tapahtumaa tuotiin onnistuneesti';
$labels['importnone'] = 'Tuotavaksi tarkoitettuja tapahtumia ei löytynyt';
$labels['importerror'] = 'Tuotaessa tapahtui virhe';
$labels['aclnorights'] = 'Sinulla ei ole ylläpitäjän oikeuksia tähän kalenteriin.';
$labels['changeeventconfirm'] = 'Vaihda tapahtuma';
$labels['removeeventconfirm'] = 'Poista tapahtuma';
$labels['changerecurringeventwarning'] = 'Tämä on tuistuva tapahtuma. Haluatko muokata vain tätä ajankohtaa, tätä ja tulevia tapahtuman ajankohtia, kaikkia tapahtuman ajankohtia vai tallentaa kokonaan uutena tapahtumana? ';
@ -266,16 +239,12 @@ $labels['currentevent'] = 'Nykyinen';
$labels['futurevents'] = 'Tulevat';
$labels['allevents'] = 'Kaikki';
$labels['saveasnew'] = 'Tallenna uutena';
// birthdays calendar
$labels['birthdays'] = 'Syntymäpäivät';
$labels['birthdayscalendar'] = 'Syntymäpäivät kalenteri';
$labels['displaybirthdayscalendar'] = 'Näytä syntymäpäivät kalenterissa';
$labels['birthdayscalendarsources'] = 'Näistä osoitekirjoista';
$labels['birthdayeventtitle'] = 'Syntymäpäivä: $name';
$labels['birthdayage'] = 'Ikä $age';
// history dialog
$labels['objectchangelog'] = 'Muutoshistoria';
$labels['objectdiff'] = 'Muutokset versiosta $rev1 versioon $rev2';
$labels['objectnotfound'] = 'Tapahtuman tietojen lataaminen epäonnistui';
@ -284,9 +253,6 @@ $labels['objectdiffnotavailable'] = 'Valituille versioille ei ole mahdollista te
$labels['revisionrestoreconfirm'] = 'Haluatko varmasti palauttaa tämän tapahtuman version $rev? Nykyinen tapahtuma korvataan vanhalla versiolla.';
$labels['objectrestoresuccess'] = 'Versio $rev palautettu onnistuneesti';
$labels['objectrestoreerror'] = 'Vanhan version palauttaminen epäonnistui';
// (hidden) titles and labels for accessibility annotations
$labels['arialabelminical'] = 'Kalenterin ajankohdan valinta';
$labels['arialabelcalendarview'] = 'Kalenterinäkymä';
$labels['arialabelsearchform'] = 'Tapahtumahaun lomake';
@ -297,5 +263,4 @@ $labels['arialabeleventattendees'] = 'Tapahtuman osallistujalista';
$labels['arialabeleventresources'] = 'Tapahtuman resurssilista';
$labels['arialabelresourcesearchform'] = 'Resurssien hakulomake';
$labels['arialabelresourceselection'] = 'Saatavilla olevat resurssit';
?>

View file

@ -14,9 +14,9 @@ $labels['first_hour'] = 'Première heure à afficher';
$labels['workinghours'] = 'Heures de travail';
$labels['add_category'] = 'Ajouter une catégorie';
$labels['remove_category'] = 'Supprimer une catégorie';
$labels['defaultcalendar'] = 'Ajouter un nouvel évènement';
$labels['eventcoloring'] = 'Couleurs des évènements';
$labels['coloringmode0'] = 'Selon l\'agenda';
$labels['defaultcalendar'] = 'Ajouter un nouvel événement';
$labels['eventcoloring'] = 'Couleurs des événements';
$labels['coloringmode0'] = 'Selon le calendrier';
$labels['coloringmode1'] = 'Selon la catégorie';
$labels['coloringmode2'] = 'Calendrier en contour, catégorie en contenu';
$labels['coloringmode3'] = 'Catégorie en contour, calendrier en contenu';
@ -25,14 +25,14 @@ $labels['aftertrash'] = 'Déplacer dans la corbeille';
$labels['afterdelete'] = 'Supprimer ce message';
$labels['afterflagdeleted'] = 'Marquer comme supprimer';
$labels['aftermoveto'] = 'Déplacer vers...';
$labels['itipoptions'] = 'Invitations à l\'évenement';
$labels['itipoptions'] = 'Invitations à l\'événement';
$labels['afteraction'] = 'Après une invitation ou une modification, le message est traité';
$labels['calendar'] = 'Agenda';
$labels['calendars'] = 'Agendas';
$labels['calendar'] = 'Calendrier';
$labels['calendars'] = 'Calendriers';
$labels['category'] = 'Catégorie';
$labels['categories'] = 'Catégories';
$labels['createcalendar'] = 'Créer un nouvel agenda';
$labels['editcalendar'] = 'Modifier les propriétés de l\'agenda';
$labels['createcalendar'] = 'Créer un nouveau calendrier';
$labels['editcalendar'] = 'Modifier les propriétés du calendrier';
$labels['name'] = 'Nom';
$labels['color'] = 'Couleur';
$labels['day'] = 'Jour';
@ -40,41 +40,41 @@ $labels['week'] = 'Semaine';
$labels['month'] = 'Mois';
$labels['agenda'] = 'Ordre du jour';
$labels['new'] = 'Nouveau';
$labels['new_event'] = 'Nouvel évènement';
$labels['edit_event'] = 'Modifier l\'évènement';
$labels['new_event'] = 'Nouvel événement';
$labels['edit_event'] = 'Modifier l\'événement';
$labels['edit'] = 'Modifier';
$labels['save'] = 'Enregistrer';
$labels['removelist'] = 'supprimer de la liste';
$labels['removelist'] = 'Supprimer de la liste';
$labels['cancel'] = 'Annuler';
$labels['select'] = 'Sélectionner';
$labels['print'] = 'Imprimer';
$labels['printtitle'] = 'Imprimer les agendas';
$labels['printtitle'] = 'Imprimer les calendriers';
$labels['title'] = 'Résumé';
$labels['description'] = 'Description';
$labels['all-day'] = 'Toute la journée';
$labels['all-day'] = 'toute la journée';
$labels['export'] = 'Exporter';
$labels['exporttitle'] = 'Exporter vers iCalendar';
$labels['exportrange'] = 'Évènements depuis';
$labels['exportattachments'] = 'With attachments';
$labels['exportrange'] = 'Événements depuis';
$labels['exportattachments'] = 'Avec pièces jointes';
$labels['customdate'] = 'Date personnalisée';
$labels['location'] = 'Lieu';
$labels['url'] = 'URL';
$labels['date'] = 'Date';
$labels['start'] = 'Début';
$labels['starttime'] = 'Début';
$labels['starttime'] = 'Heure de début';
$labels['end'] = 'Fin';
$labels['endtime'] = 'Fin';
$labels['endtime'] = 'Heure de fin';
$labels['repeat'] = 'Répéter';
$labels['selectdate'] = 'Sélectionner une date';
$labels['freebusy'] = 'Montrez moi comme';
$labels['freebusy'] = 'Montrez-moi en tant que';
$labels['free'] = 'Libre';
$labels['busy'] = 'Occupé';
$labels['outofoffice'] = 'Absent';
$labels['tentative'] = 'Provisoire';
$labels['mystatus'] = 'Mon status';
$labels['mystatus'] = 'Mon statut';
$labels['status'] = 'Statut';
$labels['status-confirmed'] = 'Confirmé';
$labels['status-cancelled'] = 'Annulée';
$labels['status-cancelled'] = 'Annulé';
$labels['priority'] = 'Priorité';
$labels['sensitivity'] = 'Diffusion';
$labels['public'] = 'publique';
@ -83,7 +83,7 @@ $labels['confidential'] = 'Confidentiel';
$labels['links'] = 'Référence';
$labels['alarms'] = 'Rappel';
$labels['comment'] = 'Commentaire';
$labels['created'] = 'Créée';
$labels['created'] = 'Créé';
$labels['changed'] = 'Dernière modification';
$labels['unknown'] = 'Inconnu';
$labels['eventoptions'] = 'Options';
@ -92,39 +92,39 @@ $labels['eventhistory'] = 'Historique';
$labels['removelink'] = 'Enlever référence d\'e-mail';
$labels['printdescriptions'] = 'Imprimer les descriptions';
$labels['parentcalendar'] = 'Ajouter à l\'intérieur';
$labels['searchearlierdates'] = '« Chercher des évènements plus ancien';
$labels['searchlaterdates'] = 'Chercher des évènement plus récent »';
$labels['searchearlierdates'] = '« Chercher des événements plus anciens';
$labels['searchlaterdates'] = 'Chercher des événement plus récents »';
$labels['andnmore'] = '$nr de plus...';
$labels['togglerole'] = 'Cliquez pour changer de rôle';
$labels['createfrommail'] = 'Enregistrer comme un évènement';
$labels['importevents'] = 'Importer des évènements';
$labels['importrange'] = 'Évènements depuis';
$labels['onemonthback'] = '1 mois précédent';
$labels['createfrommail'] = 'Enregistrer comme un événement';
$labels['importevents'] = 'Importer des événements';
$labels['importrange'] = 'Événements depuis';
$labels['onemonthback'] = '1 mois auparavant';
$labels['nmonthsback'] = '$nr mois précédents';
$labels['showurl'] = 'Afficher l\'URL de l\'agenda';
$labels['showurldescription'] = 'Utilisez l\'adresse suivante pour accéder(lecture seule) à votre agenda depuis une autre application. Vous pouvez copier/coller celle-ci dans n\'importe quel agenda électronique gérant le format iCal.';
$labels['caldavurldescription'] = 'Copiez cette adresse vers une application client (comme Evolution ou Mozilla Thunderbird) compatible <a href="http://fr.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a> pour synchroniser ce calendrier avec votre ordinateur ou votre smartphone.';
$labels['showurl'] = 'Afficher l\'URL du calendrier';
$labels['showurldescription'] = 'Utilisez l\'adresse suivante pour accéder (lecture seule) à votre calendrier depuis d\'autres applications. Vous pouvez copier/coller celle-ci dans n\'importe quel calendrier électronique gérant le format iCal.';
$labels['caldavurldescription'] = 'Copiez cette adresse vers une application client (comme Evolution ou Mozilla Thunderbird) compatible <a href="http://fr.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a> pour synchroniser pleinement ce calendrier avec votre ordinateur ou votre smartphone.';
$labels['findcalendars'] = 'Recherche de calendriers...';
$labels['searchterms'] = 'Critères de recherche';
$labels['calsearchresults'] = 'Calendriers disponibles';
$labels['calendarsubscribe'] = 'Lister définitivement';
$labels['nocalendarsfound'] = 'Aucun calendriers trouvés';
$labels['nocalendarsfound'] = 'Aucun calendrier trouvé';
$labels['nrcalendarsfound'] = '$nr calendriers trouvés';
$labels['quickview'] = 'Voir uniquement ce calendrier';
$labels['invitationspending'] = 'Invitations en attente';
$labels['invitationsdeclined'] = 'Invitations refusées';
$labels['changepartstat'] = 'Changer le statut du participent';
$labels['changepartstat'] = 'Changer le statut du participant';
$labels['rsvpcomment'] = 'Texte d\'invitation';
$labels['listrange'] = 'Intervalle à afficher :';
$labels['listsections'] = 'Diviser en :';
$labels['smartsections'] = 'Section intelligente';
$labels['smartsections'] = 'Sections intelligentes';
$labels['until'] = 'jusqu\'à';
$labels['today'] = 'Aujourd\'hui';
$labels['tomorrow'] = 'Demain';
$labels['thisweek'] = 'Cette semaine';
$labels['nextweek'] = 'Semaine prochaine';
$labels['prevweek'] = 'Semaine précédente';
$labels['thismonth'] = 'Ce mois';
$labels['thismonth'] = 'Ce mois-ci';
$labels['nextmonth'] = 'Mois prochain';
$labels['weekofyear'] = 'Semaine';
$labels['pastevents'] = 'Passé';
@ -139,10 +139,10 @@ $labels['confirmstate'] = 'Statut';
$labels['addattendee'] = 'Ajouter participant';
$labels['roleorganizer'] = 'Organisateur';
$labels['rolerequired'] = 'Requis';
$labels['roleoptional'] = 'Optionel';
$labels['rolechair'] = 'Chair';
$labels['roleoptional'] = 'Optionnel';
$labels['rolechair'] = 'Présidence';
$labels['rolenonparticipant'] = 'Absent';
$labels['cutypeindividual'] = 'Individual';
$labels['cutypeindividual'] = 'Individuel';
$labels['cutypegroup'] = 'Groupe';
$labels['cutyperesource'] = 'Ressource';
$labels['cutyperoom'] = 'Salle';
@ -158,110 +158,111 @@ $labels['sendinvitations'] = 'Envoyer les invitations';
$labels['sendnotifications'] = 'Informer les participants des modifications';
$labels['sendcancellation'] = 'Informer les participants de l\'annulation';
$labels['onlyworkinghours'] = 'Trouver des disponibilités en fonction de mes heures de travail';
$labels['reqallattendees'] = 'Demandé/tous';
$labels['reqallattendees'] = 'Demandé/tous les participants';
$labels['prevslot'] = 'Créneau précédent';
$labels['nextslot'] = 'Créneau suivant';
$labels['suggestedslot'] = 'Emplacement suggéré';
$labels['noslotfound'] = 'Impossible de trouver un créneau disponible';
$labels['invitationsubject'] = 'Vous avez été invité à "$title"';
$labels['invitationmailbody'] = "*\$title*\n\nQuand: \$date\n\nParticipants: \$attendees\n\nVous trouverez ci-joint un fichier iCalendar avec tous les détails de l'évènement que vous pourrez importer dans votre agenda électronique.";
$labels['invitationattendlinks'] = "Dans le cas où votre application de messagerie ne gère pas les demandes \"iTip\". Vous pouvez utiliser ce lien pour accepter ou refuser l'invitation : \n\$url";
$labels['invitationmailbody'] = "*\$title*\n\nQuand: \$date\n\nParticipants: \$attendees\n\nVous trouverez ci-joint un fichier iCalendar avec tous les détails de l'événement que vous pourrez importer dans votre calendrier électronique.";
$labels['invitationattendlinks'] = "Dans le cas où votre application de messagerie ne gère pas les demandes \"iTip\", vous pouvez utiliser ce lien pour accepter ou refuser l'invitation : \n\$url";
$labels['eventupdatesubject'] = '"$title" a été modifié';
$labels['eventupdatesubjectempty'] = 'Un évènement vous concernant a été modifié';
$labels['eventupdatemailbody'] = "*\$title*\n\nQuand: \$date\n\nParticipants: \$attendees\n\nVous trouverez ci-joint un fichier iCalendar avec tous les modifications de l'évènement que vous pourrez importer dans votre agenda électronique.";
$labels['eventcancelmailbody'] = "*\$title*\n\nQuand: \$date\n\nParticipants: \$attendees\n\nL'évènement a été annulé par \$organizer.\n\nVous trouverez en pièce jointe un fichier iCalendar avec les modifications de l'évènement que vous pourrez importer dans votre agenda électronique.";
$labels['itipobjectnotfound'] = 'L\'évènement lié à ce message n\'a pas été trouvé dans votre calendrier.';
$labels['itipmailbodyaccepted'] = "\$sender a accepté l'invitation à l'évènement suivant :\n\n*\$title*\n\nQuand: \$date\n\nParticipants: \$attendees";
$labels['itipmailbodytentative'] = "\$sender a accepté provisoirement l'invitation à l'évènement suivant :\n\n*\$title*\n\nQuand: \$date\n\nParticipants: \$attendees";
$labels['itipmailbodydeclined'] = "\$sender a refusé l'invitation à l'évènement suivant :\n\n*\$title*\n\nQuand: \$date\n\nParticipants: \$attendees";
$labels['itipmailbodycancel'] = "\$sender a rejeté votre participation à lévènement suivant :\n\n*\$title*\n\nLe: \$date";
$labels['eventupdatesubjectempty'] = 'Un événement vous concernant a été modifié';
$labels['eventupdatemailbody'] = "*\$title*\n\nQuand: \$date\n\nParticipants: \$attendees\n\nVous trouverez ci-joint un fichier iCalendar avec toutes les modifications à l'événement que vous pourrez importer dans votre calendrier électronique.";
$labels['eventcancelsubject'] = '"$title" a été annulé';
$labels['eventcancelmailbody'] = "*\$title*\n\nQuand: \$date\n\nParticipants: \$attendees\n\nL'événement a été annulé par \$organizer.\n\nVous trouverez en pièce jointe un fichier iCalendar avec les modifications de l'événement que vous pourrez importer dans votre calendrier électronique.";
$labels['itipobjectnotfound'] = 'L\'événement lié à ce message n\'a pas été trouvé dans votre calendrier.';
$labels['itipmailbodyaccepted'] = "\$sender a accepté l'invitation à l'événement suivant :\n\n*\$title*\n\nQuand: \$date\n\nParticipants: \$attendees";
$labels['itipmailbodytentative'] = "\$sender a accepté provisoirement l'invitation à l'événement suivant :\n\n*\$title*\n\nQuand: \$date\n\nParticipants: \$attendees";
$labels['itipmailbodydeclined'] = "\$sender a refusé l'invitation à l'événement suivant :\n\n*\$title*\n\nQuand: \$date\n\nParticipants: \$attendees";
$labels['itipmailbodycancel'] = "\$sender a rejeté votre participation à lévénement suivant :\n\n*\$title*\n\nLe: \$date";
$labels['itipmailbodydelegated'] = "\$sender a délégué la participation à l'événement suivant : \n\n*\$title*\n\nQuand: \$date";
$labels['itipmailbodydelegatedto'] = "\$sender vous a délégué la participation à l'événement suivant : \n\n*\$title*\n\nQuand : \$date";
$labels['itipdeclineevent'] = 'Voulez-vous refuser l\'invitation à cet évènement?';
$labels['declinedeleteconfirm'] = 'Voulez-vous aussi supprimer cet évènement annulé, de votre calendrier ?';
$labels['itipdeclineevent'] = 'Voulez-vous refuser l\'invitation à cet événement?';
$labels['declinedeleteconfirm'] = 'Voulez-vous aussi supprimer cet événement annulé de votre calendrier ?';
$labels['itipcomment'] = 'Commentaire dinvitation ou de notification';
$labels['itipcommenttitle'] = 'Ce commentaire sera inséré dans le message d\'invitation ou de notification envoyé aux participants';
$labels['notanattendee'] = 'Vous n\'êtes pas dans la liste des participants à cet évènement';
$labels['eventcancelled'] = 'L\'évènement a été annulé';
$labels['saveincalendar'] = 'Enregistrer sous';
$labels['notanattendee'] = 'Vous n\'êtes pas dans la liste des participants à cet événement';
$labels['eventcancelled'] = 'L\'événement a été annulé';
$labels['saveincalendar'] = 'enregistrer sous';
$labels['updatemycopy'] = 'Mise à jour dans mon calendrier';
$labels['savetocalendar'] = 'Sauvegarde dans le calendrier';
$labels['openpreview'] = 'Test calendrier';
$labels['noearlierevents'] = 'Aucun évènements passé';
$labels['nolaterevents'] = 'Aucun évènement futur';
$labels['openpreview'] = 'Consulter le calendrier';
$labels['noearlierevents'] = 'Aucun événement passé';
$labels['nolaterevents'] = 'Aucun événement futur';
$labels['resource'] = 'Ressource';
$labels['addresource'] = 'Carnet de ressources';
$labels['findresources'] = 'Recherche des ressources';
$labels['resourcedetails'] = 'Détails';
$labels['resourceavailability'] = 'Disponibilité';
$labels['resourceowner'] = 'Propriétaire';
$labels['resourceadded'] = 'Cette ressource a été ajouté à l\'évènement';
$labels['resourceadded'] = 'Cette ressource a été ajoutée à l\'événement';
$labels['tabsummary'] = 'Résumé';
$labels['tabrecurrence'] = 'Récurrence';
$labels['tabattendees'] = 'Participants';
$labels['tabresources'] = 'Ressources';
$labels['tabattachments'] = 'Pièces jointes';
$labels['tabsharing'] = 'Partage';
$labels['deleteobjectconfirm'] = 'Voulez-vous vraiment supprimer cet évènement?';
$labels['deleteventconfirm'] = 'Voulez-vous vraiment supprimer cet évènement?';
$labels['deletecalendarconfirm'] = 'Voulez-vous vraiment supprimer cet agenda et tous ses évènements?';
$labels['deletecalendarconfirmrecursive'] = 'Voulez-vous vraiment supprimer ce calendrier avec tous ces évènements et ces sous calendriers ?';
$labels['deleteobjectconfirm'] = 'Voulez-vous vraiment supprimer cet événement?';
$labels['deleteventconfirm'] = 'Voulez-vous vraiment supprimer cet événement?';
$labels['deletecalendarconfirm'] = 'Voulez-vous vraiment supprimer ce calendrier et tous ses événements?';
$labels['deletecalendarconfirmrecursive'] = 'Voulez-vous vraiment supprimer ce calendrier avec tous ses événements et ses sous-calendriers ?';
$labels['savingdata'] = 'Enregistrer...';
$labels['errorsaving'] = 'Échec lors de l\'enregistrement des changements';
$labels['operationfailed'] = 'L\'opération demandée a échoué';
$labels['invalideventdates'] = 'Dates invalides! Veuillez vérifier votre saisie.';
$labels['invalidcalendarproperties'] = 'Propriétés d\'agenda invalides! Veuillez saisir un nom valide.';
$labels['searchnoresults'] = 'Pas d\'évènement trouvé dans les agendas sélectionnés.';
$labels['successremoval'] = 'L\'évènement a été supprimé.';
$labels['successrestore'] = 'L\'évènement a été restauré.';
$labels['errornotifying'] = 'Échec de l\'envoi de notification aux participants ';
$labels['errorimportingevent'] = 'Échec de l\'import de l\'évènement';
$labels['importwarningexists'] = 'Une copie de cet évènement existe déjà dans votre calendrier.';
$labels['newerversionexists'] = 'Une nouvelle version de cet évènement existe! Abandon.';
$labels['nowritecalendarfound'] = 'Pas d\'agenda trouvé pour enregistrer l\'évènement';
$labels['importedsuccessfully'] = 'L\'évènement a été ajouté à l\'agenda \'$calendar\'';
$labels['updatedsuccessfully'] = 'Cet évènement a été modifié avec succès dans \'$calendar\'';
$labels['invalideventdates'] = 'Dates invalides ! Veuillez vérifier votre saisie.';
$labels['invalidcalendarproperties'] = 'Propriétés du calendrier invalides ! Veuillez saisir un nom valide.';
$labels['searchnoresults'] = 'Pas d\'événement trouvé dans les calendriers sélectionnés.';
$labels['successremoval'] = 'L\'événement a été supprimé.';
$labels['successrestore'] = 'L\'événement a été restauré.';
$labels['errornotifying'] = 'Échec de l\'envoi de notifications aux participants ';
$labels['errorimportingevent'] = 'Échec de l\'import de l\'événement';
$labels['importwarningexists'] = 'Une copie de cet événement existe déjà dans votre calendrier.';
$labels['newerversionexists'] = 'Une nouvelle version de cet événement existe ! Abandon.';
$labels['nowritecalendarfound'] = 'Pas de calendrier trouvé pour enregistrer l\'événement';
$labels['importedsuccessfully'] = 'L\'événement a été ajouté à l\'agenda \'$calendar\'';
$labels['updatedsuccessfully'] = 'Cet événement a été modifié avec succès dans \'$calendar\'';
$labels['attendeupdateesuccess'] = 'Le statut des participants a été modifié';
$labels['itipsendsuccess'] = 'Invitation envoyé aux participants.';
$labels['itipresponseerror'] = 'Échec de l\'envoi d\'une réponse à cette invitation.';
$labels['itipinvalidrequest'] = 'C\'est invitation n\'est plus valide.';
$labels['sentresponseto'] = 'La réponse à l\'invitation a été envoyé à $mailto';
$labels['localchangeswarning'] = 'Vous êtes sur le point d\'effectuer des modifications qui seront effectifs sur votre calendrier mais qui ne seront pas envoyés à l\'organisateur de lévènement.';
$labels['importsuccess'] = '$nr évènements importés.';
$labels['importnone'] = 'Pas d\'évènements à importer';
$labels['importerror'] = 'Une erreur est arrivée lors de l\'import';
$labels['aclnorights'] = 'Vous n\'avez pas les droits d\'administration sur cet agenda.';
$labels['changeeventconfirm'] = 'Modifier l\'évènement';
$labels['removeeventconfirm'] = 'Supprimer l\'évènement';
$labels['changerecurringeventwarning'] = 'Ceci est un évènement récurant. Voulez vous éditer seulement cette occurrence, celle-ci et toutes les suivantes, toutes les occurrences ou l\'enregistrer comme un nouvel évènement? ';
$labels['removerecurringeventwarning'] = 'Ceci est un évènement récurent. Voulez-vous supprimer l\'évènement courant uniquement, lévènement courant et toutes les occurrences futures, ou toutes les occurrences ?';
$labels['removerecurringallonly'] = 'Ceci est un évènement récurent. En tant que participant vous pouvez seulement supprimer l\'évènement entier avec toutes les occurrences.';
$labels['itipsendsuccess'] = 'Invitation envoyée aux participants.';
$labels['itipresponseerror'] = 'Échec de l\'envoi d\'une réponse à cette invitation';
$labels['itipinvalidrequest'] = 'C\'est invitation n\'est plus valide';
$labels['sentresponseto'] = 'La réponse à l\'invitation a été envoyée à $mailto';
$labels['localchangeswarning'] = 'Vous êtes sur le point d\'effectuer des modifications qui seront effectives dans votre calendrier mais qui ne seront pas envoyées à l\'organisateur de lévénement.';
$labels['importsuccess'] = '$nr événements importés.';
$labels['importnone'] = 'Pas d\'événement à importer';
$labels['importerror'] = 'Une erreur s\'est produite lors de l\'importation';
$labels['aclnorights'] = 'Vous ne disposez pas des droits d\'administrateur sur ce calendrier.';
$labels['changeeventconfirm'] = 'Modifier l\'événement';
$labels['removeeventconfirm'] = 'Supprimer l\'événement';
$labels['changerecurringeventwarning'] = 'Ceci est un événement récurrent. Voulez-vous éditer seulement cette occurrence, celle-ci et toutes les suivantes, toutes les occurrences ou l\'enregistrer comme un nouvel événement ? ';
$labels['removerecurringeventwarning'] = 'Ceci est un événement récurrent. Voulez-vous supprimer l\'événement courant uniquement, lévénement courant et toutes les occurrences futures, ou toutes les occurrences ?';
$labels['removerecurringallonly'] = 'Ceci est un événement récurrent. En tant que participant, vous pouvez seulement supprimer l\'événement entier avec toutes les occurrences.';
$labels['currentevent'] = 'Cette occurrence';
$labels['futurevents'] = 'Cette occurrence et toutes les suivantes';
$labels['allevents'] = 'Toutes les occurrences';
$labels['saveasnew'] = 'Enregistrer comme un nouvel évènement';
$labels['saveasnew'] = 'Enregistrer comme un nouvel événement';
$labels['birthdays'] = 'Anniversaires';
$labels['birthdayscalendar'] = 'Calendrier des anniversaires';
$labels['displaybirthdayscalendar'] = 'Afficher le calendrier des anniversaires';
$labels['birthdayscalendarsources'] = 'Depuis ces carnets d\'adresses';
$labels['birthdayeventtitle'] = 'Anniversaire de $name';
$labels['birthdayage'] = 'Age $age';
$labels['birthdayage'] = 'Âge $age';
$labels['objectchangelog'] = 'Historique des modifications';
$labels['objectdiff'] = 'Modifications depuis $rev1 jusqu\'à $rev2';
$labels['objectnotfound'] = 'Impossible de charger les données de lévènement';
$labels['objectchangelognotavailable'] = 'Il n\'y a pas d\'historique des modifications pour cet évènement';
$labels['objectdiff'] = 'Modifications de $rev1 à $rev2';
$labels['objectnotfound'] = 'Impossible de charger les données de lévénement';
$labels['objectchangelognotavailable'] = 'Il n\'y a pas d\'historique des modifications pour cet événement';
$labels['objectdiffnotavailable'] = 'La comparaison des versions sélectionnées est impossible';
$labels['revisionrestoreconfirm'] = 'Voulez-vous vraiment restaurer le version $rev de cet évènement ? Cette action va remplacer l\'évènement courant par l\'ancienne version.';
$labels['revisionrestoreconfirm'] = 'Voulez-vous vraiment restaurer le version $rev de cet événement ? Cette action va remplacer l\'événement actuel par l\'ancienne version.';
$labels['objectrestoresuccess'] = 'La révision $rev a été restaurée avec succès';
$labels['objectrestoreerror'] = 'Échec lors de la restauration de la précédente révision';
$labels['arialabelminical'] = 'Sélection de la date du calendrier';
$labels['arialabelcalendarview'] = 'Vue du calendrier';
$labels['arialabelsearchform'] = 'Recherche d\'évènements depuis';
$labels['arialabelquicksearchbox'] = 'Saisie de le recherche d\'évènements';
$labels['arialabelsearchform'] = 'Recherche d\'événements depuis';
$labels['arialabelquicksearchbox'] = 'Saisie de le recherche d\'événements';
$labels['arialabelcalsearchform'] = 'Recherche de calendriers';
$labels['calendaractions'] = 'Actions calendrier';
$labels['arialabeleventattendees'] = 'Liste des participants à l\'évènement';
$labels['arialabeleventresources'] = 'Liste des ressources de l\'évènement';
$labels['arialabelresourcesearchform'] = 'Recherche des ressources';
$labels['arialabeleventattendees'] = 'Liste des participants à l\'événement';
$labels['arialabeleventresources'] = 'Liste des ressources de l\'événement';
$labels['arialabelresourcesearchform'] = 'Formulaire de recherche des ressources';
$labels['arialabelresourceselection'] = 'Ressources disponibles';
?>

View file

@ -6,30 +6,33 @@
*
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
*/
$labels['default_view'] = 'Standaard agenda';
$labels['time_format'] = 'Tijdsformaat';
$labels['timeslots'] = 'Tijdsdelen per uur';
$labels['default_view'] = 'Standaardweergave';
$labels['time_format'] = 'Tijdnotatie';
$labels['timeslots'] = 'Tijdvakken per uur';
$labels['first_day'] = 'Eerste weekdag';
$labels['first_hour'] = 'Eerste uur om weer te geven';
$labels['workinghours'] = 'Werkuren';
$labels['add_category'] = 'Categorie toevoegen';
$labels['remove_category'] = 'Categorie verwijderen';
$labels['defaultcalendar'] = 'Maak nieuwe afspraken in';
$labels['eventcoloring'] = 'Kleuren van afspraken';
$labels['coloringmode0'] = 'Volgens kalender';
$labels['defaultcalendar'] = 'Nieuwe activiteiten maken in';
$labels['eventcoloring'] = 'Kleuren voor activiteiten';
$labels['coloringmode0'] = 'Volgens agenda';
$labels['coloringmode1'] = 'Volgens categorie';
$labels['coloringmode2'] = 'Kalender voor omtrek, categorie voor inhoud';
$labels['coloringmode3'] = 'Categorie voor omtrek, kalender voor inhoud';
$labels['aftertrash'] = 'Verplaats naar prullenbak';
$labels['afterdelete'] = 'Verwijder bericht';
$labels['afterflagdeleted'] = 'Markeer als verwijderd';
$labels['aftermoveto'] = 'Verplaats naar...';
$labels['calendar'] = 'Kalender';
$labels['calendars'] = 'Kalenders';
$labels['coloringmode2'] = 'Agenda voor overzicht, categorie voor inhoud';
$labels['coloringmode3'] = 'Categorie voor overzicht, agenda voor inhoud';
$labels['afternothing'] = 'Niets doen';
$labels['aftertrash'] = 'Verplaatsen naar Prullenbak';
$labels['afterdelete'] = 'Bericht verwijderen';
$labels['afterflagdeleted'] = 'Markeren als verwijderd';
$labels['aftermoveto'] = 'Verplaatsen naar...';
$labels['itipoptions'] = 'Uitnodigingen voor activiteiten';
$labels['afteraction'] = 'Nadat een uitnodiging of updatebericht is verwerkt';
$labels['calendar'] = 'Agenda';
$labels['calendars'] = 'Agenda\'s';
$labels['category'] = 'Categorie';
$labels['categories'] = 'Categorieën';
$labels['createcalendar'] = 'Maak een nieuwe kalender';
$labels['editcalendar'] = 'Wijzig kalender eigenschappen';
$labels['createcalendar'] = 'Nieuwe agenda maken';
$labels['editcalendar'] = 'Agenda-eigenschappen bewerken';
$labels['name'] = 'Naam';
$labels['color'] = 'Kleur';
$labels['day'] = 'Dag';
@ -37,187 +40,229 @@ $labels['week'] = 'Week';
$labels['month'] = 'Maand';
$labels['agenda'] = 'Agenda';
$labels['new'] = 'Nieuw';
$labels['new_event'] = 'Nieuwe afspraak';
$labels['edit_event'] = 'Wijzig afspraak';
$labels['edit'] = 'Wijzig';
$labels['save'] = 'Bewaar';
$labels['cancel'] = 'Terug';
$labels['select'] = 'Selecteer';
$labels['new_event'] = 'Nieuwe activiteit';
$labels['edit_event'] = 'Activiteit bewerken';
$labels['edit'] = 'Bewerken';
$labels['save'] = 'Opslaan';
$labels['removelist'] = 'Verwijderen uit lijst';
$labels['cancel'] = 'Annuleren';
$labels['select'] = 'Selecteren';
$labels['print'] = 'Afdrukken';
$labels['printtitle'] = 'Kalenders afdrukken';
$labels['printtitle'] = 'Agenda\'s afdrukken';
$labels['title'] = 'Samenvatting';
$labels['description'] = 'Omschrijving';
$labels['description'] = 'Beschrijving';
$labels['all-day'] = 'hele dag';
$labels['export'] = 'Exporteer naar ICS';
$labels['exporttitle'] = 'Als iCalender exporteren';
$labels['exportrange'] = 'Afspraken uit';
$labels['exportattachments'] = 'Exporteer bijlages';
$labels['customdate'] = 'Aangepaste datumweergave';
$labels['export'] = 'Exporteren';
$labels['exporttitle'] = 'Exporteren naar iCalendar';
$labels['exportrange'] = 'Activiteiten uit';
$labels['exportattachments'] = 'Met bijlagen';
$labels['customdate'] = 'Aangepaste datum';
$labels['location'] = 'Locatie';
$labels['url'] = 'URL';
$labels['date'] = 'Datum';
$labels['start'] = 'Begin';
$labels['starttime'] = 'Start time';
$labels['end'] = 'Eind';
$labels['starttime'] = 'Begintijd';
$labels['end'] = 'Einde';
$labels['endtime'] = 'Eindtijd';
$labels['repeat'] = 'Herhaal';
$labels['selectdate'] = 'Kies datum';
$labels['repeat'] = 'Herhalen';
$labels['selectdate'] = 'Datum kiezen';
$labels['freebusy'] = 'Toon mij als';
$labels['free'] = 'Vrij';
$labels['free'] = 'Beschikbaar';
$labels['busy'] = 'Bezet';
$labels['outofoffice'] = 'Niet Aanwezig';
$labels['outofoffice'] = 'Niet aanwezig';
$labels['tentative'] = 'Misschien';
$labels['mystatus'] = 'Mijn status';
$labels['status'] = 'Status';
$labels['status-confirmed'] = 'Bevestigd';
$labels['status-cancelled'] = 'Afgelast';
$labels['status-cancelled'] = 'Geannuleerd';
$labels['priority'] = 'Prioriteit';
$labels['sensitivity'] = 'Zichtbaarheid';
$labels['public'] = 'publiek';
$labels['private'] = 'prive';
$labels['sensitivity'] = 'Privacy';
$labels['public'] = 'openbaar';
$labels['private'] = 'privé';
$labels['confidential'] = 'vertrouwelijk';
$labels['links'] = 'Referentie';
$labels['alarms'] = 'Herinnering';
$labels['comment'] = 'Opmerking';
$labels['created'] = 'Gemaakt op';
$labels['changed'] = 'Laatst gewijzigd op';
$labels['unknown'] = 'Onbekend';
$labels['eventoptions'] = 'Opties';
$labels['generated'] = 'gegenereerd op';
$labels['eventhistory'] = 'Geschiedenis';
$labels['printdescriptions'] = 'Print beschrijvingen';
$labels['parentcalendar'] = 'Voeg toe in';
$labels['searchearlierdates'] = '« Zoek voor eerdere afspraken';
$labels['searchlaterdates'] = 'Zoek voor latere afspraken »';
$labels['andnmore'] = '$nr meer...';
$labels['removelink'] = 'E-mailreferentie verwijderen';
$labels['printdescriptions'] = 'Beschrijvingen afdrukken';
$labels['parentcalendar'] = 'Invoegen in';
$labels['searchearlierdates'] = '« Zoek eerdere activiteiten';
$labels['searchlaterdates'] = 'Zoek latere activiteiten »';
$labels['andnmore'] = 'Nog $nr...';
$labels['togglerole'] = 'Klik om van rol te wisselen';
$labels['createfrommail'] = 'Bewaar als afspraak';
$labels['importevents'] = 'Afspraken importeren';
$labels['importrange'] = 'Afspraken vanaf';
$labels['onemonthback'] = '1 maand terug';
$labels['nmonthsback'] = '$nr maanden terug';
$labels['showurl'] = 'Toon kalender URL';
$labels['showurldescription'] = 'Gebruik het volgende adres om uw kalendar te gebruiken (alleen lezen) in andere programma\'s. U kunt dit knippen en plakken in elk kalender programma dat het iCal formaat ondersteunt.';
$labels['caldavurldescription'] = 'Kopieer dit adres in een <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a> programma (bijv. Evolution of Mozilla Thunderbird) om deze specifieke kalender volledig te synchronizeren met je computer of mobiel apparaat.';
$labels['findcalendars'] = 'Vind agenda\'s...';
$labels['searchterms'] = 'Search terms';
$labels['createfrommail'] = 'Opslaan als activiteit';
$labels['importevents'] = 'Activiteiten importeren';
$labels['importrange'] = 'Activiteiten van';
$labels['onemonthback'] = 'afgelopen maand';
$labels['nmonthsback'] = 'afgelopen $nr maanden';
$labels['showurl'] = 'URL van agenda tonen';
$labels['showurldescription'] = 'Gebruik het volgende adres om uw agenda in andere programma\'s te gebruiken (alleen-lezen). U kunt dit knippen en plakken in elk agendaprogramma dat de iCal-indeling ondersteunt.';
$labels['caldavurldescription'] = 'Kopieer dit adres naar een <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a>-client (bijv. Evolution of Mozilla Thunderbird) om deze specifieke agenda volledig te synchroniseren met uw computer of mobiele apparaat.';
$labels['findcalendars'] = 'Agenda\'s zoeken...';
$labels['searchterms'] = 'Zoektermen';
$labels['calsearchresults'] = 'Beschikbare agenda\'s';
$labels['calendarsubscribe'] = 'Permanent weergeven';
$labels['invitationsdeclined'] = 'Afgewezen uitnodigingen';
$labels['listrange'] = 'Bereik om te tonen:';
$labels['listsections'] = 'Verdeel in:';
$labels['calendarsubscribe'] = 'Definitief weergeven';
$labels['nocalendarsfound'] = 'Geen agenda\'s gevonden';
$labels['nrcalendarsfound'] = '$nr agenda\'s gevonden';
$labels['quickview'] = 'Alleen deze agenda bekijken';
$labels['invitationspending'] = 'Uitnodigingen in behandeling';
$labels['invitationsdeclined'] = 'Afgeslagen uitnodigingen';
$labels['changepartstat'] = 'Status van deelnemer wijzigen';
$labels['rsvpcomment'] = 'Tekst van uitnodiging';
$labels['listrange'] = 'Weer te geven bereik:';
$labels['listsections'] = 'Verdelen in:';
$labels['smartsections'] = 'Slimme secties';
$labels['until'] = 'tot';
$labels['today'] = 'Vandaag';
$labels['tomorrow'] = 'Morgen';
$labels['thisweek'] = 'Deze week';
$labels['nextweek'] = 'Volgende week';
$labels['prevweek'] = 'Vorige week';
$labels['thismonth'] = 'Deze maand';
$labels['nextmonth'] = 'Volgende maand';
$labels['weekofyear'] = 'Week';
$labels['pastevents'] = 'Verleden';
$labels['futureevents'] = 'Toekomst';
$labels['showalarms'] = 'Toon herinneringen';
$labels['defaultalarmtype'] = 'Instelling standaard herinnering';
$labels['defaultalarmoffset'] = 'Standaard herinneringstijd';
$labels['showalarms'] = 'Herinneringen tonen';
$labels['defaultalarmtype'] = 'Standaardinstelling herinnering';
$labels['defaultalarmoffset'] = 'Standaardtijd herinnering';
$labels['attendee'] = 'Deelnemer';
$labels['role'] = 'Rol';
$labels['availability'] = 'Beschikb.';
$labels['availability'] = 'Beschikbaar';
$labels['confirmstate'] = 'Status';
$labels['addattendee'] = 'Deelnemer toevoegen';
$labels['roleorganizer'] = 'Organisatie';
$labels['roleorganizer'] = 'Organisator';
$labels['rolerequired'] = 'Verplicht';
$labels['roleoptional'] = 'Optioneel';
$labels['rolechair'] = 'Voorzitter';
$labels['rolenonparticipant'] = 'Afwezig';
$labels['cutypeindividual'] = 'Individueel';
$labels['cutypeindividual'] = 'Persoon';
$labels['cutypegroup'] = 'Groep';
$labels['cutyperesource'] = 'Middel';
$labels['cutyperoom'] = 'Kamer';
$labels['availfree'] = 'Vrij';
$labels['cutyperesource'] = 'Resource';
$labels['cutyperoom'] = 'Ruimte';
$labels['availfree'] = 'Beschikbaar';
$labels['availbusy'] = 'Bezet';
$labels['availunknown'] = 'Onbekend';
$labels['availtentative'] = 'Misschien';
$labels['availoutofoffice'] = 'Niet Aanwezig';
$labels['delegatedto'] = 'Gedelegeerd aan';
$labels['delegatedfrom'] = 'Gedelegeerd door';
$labels['scheduletime'] = 'Vind beschikbaarheid';
$labels['sendinvitations'] = 'Verzend uitnodigingen';
$labels['sendnotifications'] = 'Verzend notificaties';
$labels['sendcancellation'] = 'Verzend annulering';
$labels['onlyworkinghours'] = 'Vind beschikbaarheid binnen mijn werkuren';
$labels['reqallattendees'] = 'Verplicht/alle deelnemers';
$labels['prevslot'] = 'vorig voorstel';
$labels['nextslot'] = 'volgend voorstel';
$labels['noslotfound'] = 'Geen voorstel gevonden';
$labels['availoutofoffice'] = 'Niet aanwezig';
$labels['delegatedto'] = 'Gedelegeerd aan:';
$labels['delegatedfrom'] = 'Gedelegeerd door:';
$labels['scheduletime'] = 'Beschikbaarheid zoeken';
$labels['sendinvitations'] = 'Uitnodigingen versturen';
$labels['sendnotifications'] = 'Wijzigingen melden aan deelnemers';
$labels['sendcancellation'] = 'Annulering van activiteiten melden aan deelnemers';
$labels['onlyworkinghours'] = 'Beschikbaarheid binnen mijn werkuren zoeken';
$labels['reqallattendees'] = 'Verplichte/alle deelnemers';
$labels['prevslot'] = 'Vorig tijdstip';
$labels['nextslot'] = 'Volgend tijdstip';
$labels['suggestedslot'] = 'Voorgesteld tijdstip';
$labels['noslotfound'] = 'Geen beschikbaar tijdstip gevonden';
$labels['invitationsubject'] = 'U bent uitgenodigd voor "$title"';
$labels['invitationmailbody'] = "*\$title*\n\nWanneer: \$date\n\nGenodigden: \$attendees\n\nBijgevoegd vindt u een iCalendar bestand met alle details omtrent de afspraak die u kunt importeren in uw kalender programma.";
$labels['invitationattendlinks'] = "In het geval dat uw email programma geen iTip verzoeken aankan, kunt u de volgende link gebruiken om deze uitnodiging te accepteren or af te wijzen :\n\$url";
$labels['eventupdatesubject'] = '"$title" is gewijzigd';
$labels['eventupdatesubjectempty'] = 'Een afspraak is gewijzigd';
$labels['eventupdatemailbody'] = "*\$title*\n\nWanneer: \$date\n\nGenodigden: \$attendees\n\nBijgevoegd vindt u een iCalendar bestand met de gewijzigde details omtrent de afspraak die u kunt importeren in uw kalender programma.";
$labels['eventcancelmailbody'] = "*\$title*\n\nWanneer: \$date\n\nGenodigden: \$attendees\n\nDeze afspraak is geannuleerd door \$organizer.\n\nBijgevoegd vindt u een iCalendar bestand met de gewijzigde details omtrent de afspraak";
$labels['itipobjectnotfound'] = 'De afspraak waaraan door dit bericht wordt gereferreerd is niet gevonden in uw kalender.';
$labels['itipmailbodyaccepted'] = "\$sender heeft de uitnodiging geaccepteerd voor de volgende afspraak:\n\n*\$title*\n\nWanneer: \$date\n\nGenodigden: \$attendees";
$labels['itipmailbodytentative'] = "\$sender heeft onder voorbehoud de uitnodiging geaccepteerd voor de volgende afspraak:\n\n*\$title*\n\nWanneer: \$date\n\nGenodigden: \$attendees";
$labels['itipmailbodydeclined'] = "\$sender heeft de uitnodiging afgewezen voor de volgende afspraak:\n\n*\$title*\n\nWanneer: \$date\n\nGenodigden: \$attendees";
$labels['itipmailbodycancel'] = "\$sender heeft je deelname afgewezen voor de volgende afspraak:\n\n*\$title*\n\nWanneer: \$date";
$labels['itipdeclineevent'] = 'Wil u de uitnodiging voor deze afspraak afwijzen?';
$labels['declinedeleteconfirm'] = 'Wilt u tevens deze afgewezen uitnodiging verwijderen uit je kalender?';
$labels['itipcomment'] = 'Invitation/notification comment';
$labels['notanattendee'] = 'U staat niet op de lijst van genodigden voor deze afspraak';
$labels['eventcancelled'] = 'Dit evenement is afgelast';
$labels['saveincalendar'] = 'bewaar in';
$labels['updatemycopy'] = 'Wijzig in mijn kalender';
$labels['savetocalendar'] = 'Opslaan in kalender';
$labels['resource'] = 'Hulpmiddel';
$labels['addresource'] = 'Voeg hulpmiddel toe';
$labels['findresources'] = 'Vind hulpmiddelen';
$labels['invitationmailbody'] = "*\$title*\n\nWanneer: \$date\n\nGenodigden: \$attendees\n\nAls bijlage vindt u een iCalendar-bestand met alle gegevens van de activiteit die u in uw agendaprogramma kunt importeren.";
$labels['invitationattendlinks'] = "In het geval dat uw e-mailprogramma geen iTip-verzoeken ondersteunt, kunt u de volgende koppeling gebruiken om deze uitnodiging te accepteren or af te slaan:\n\$url";
$labels['eventupdatesubject'] = '"$title" is bijgewerkt';
$labels['eventupdatesubjectempty'] = 'Een activiteit die u aangaat is bijgewerkt';
$labels['eventupdatemailbody'] = "*\$title*\n\nWanneer: \$date\n\nGenodigden: \$attendees\n\nAls bijlage vindt u een iCalendar-bestand met de bijgewerkte gegevens van de activiteit die u in uw agendaprogramma kunt importeren.";
$labels['eventcancelsubject'] = '"$title" is geannuleerd';
$labels['eventcancelmailbody'] = "*\$title*\n\nWanneer: \$date\n\nGenodigden: \$attendees\n\nDe activiteit is geannuleerd door \$organizer.\n\nAls bijlage vindt u een iCalendar-bestand met de bijgewerkte gegevens van de activiteit.";
$labels['itipobjectnotfound'] = 'De activiteit die in dit bericht wordt vermeld staat niet in uw agenda.';
$labels['itipmailbodyaccepted'] = "\$sender heeft de uitnodiging voor de volgende activiteit geaccepteerd:\n\n*\$title*\n\nWanneer: \$date\n\nGenodigden: \$attendees";
$labels['itipmailbodytentative'] = "\$sender heeft de uitnodiging voor de volgende activiteit onder voorbehoud geaccepteerd:\n\n*\$title*\n\nWanneer: \$date\n\nGenodigden: \$attendees";
$labels['itipmailbodydeclined'] = "\$sender heeft de uitnodiging voor de volgende activiteit afgeslagen:\n\n*\$title*\n\nWanneer: \$date\n\nGenodigden: \$attendees";
$labels['itipmailbodycancel'] = "\$sender heeft uw deelname aan de volgende activiteit afgewezen:\n\n*\$title*\n\nWanneer: \$date";
$labels['itipmailbodydelegated'] = "\$sender heeft de deelname aan de volgende activiteit gedelegeerd:\n\n*\$title*\n\nWanneer: \$date";
$labels['itipmailbodydelegatedto'] = "\$sender heeft de deelname aan de volgende activiteit gedelegeerd aan u:\n\n*\$title*\n\nWanneer: \$date";
$labels['itipdeclineevent'] = 'Wil u de uitnodiging voor deze activiteit afslaan?';
$labels['declinedeleteconfirm'] = 'Wilt u deze afgewezen activiteit ook verwijderen uit uw agenda?';
$labels['itipcomment'] = 'Opmerking bij uitnodiging/melding';
$labels['itipcommenttitle'] = 'Deze opmerking wordt toegevoegd aan de uitnodiging/melding die naar de deelnemers wordt verstuurd';
$labels['notanattendee'] = 'U staat niet op de lijst met deelnemers aan deze activiteit';
$labels['eventcancelled'] = 'De activiteit is geannuleerd';
$labels['saveincalendar'] = 'opslaan in';
$labels['updatemycopy'] = 'Bijwerken in mijn agenda';
$labels['savetocalendar'] = 'Opslaan in agenda';
$labels['openpreview'] = 'Agenda controleren';
$labels['noearlierevents'] = 'Geen eerdere activiteiten';
$labels['nolaterevents'] = 'Geen latere activiteiten';
$labels['resource'] = 'Resource';
$labels['addresource'] = 'Resource boeken';
$labels['findresources'] = 'Resources zoeken';
$labels['resourcedetails'] = 'Details';
$labels['resourceavailability'] = 'Beschikbaarheid';
$labels['resourceowner'] = 'Eigenaar';
$labels['resourceadded'] = 'Hulpmiddel is toegevoegd aan uw afspraak';
$labels['resourceadded'] = 'De resource is toegevoegd aan uw activiteit';
$labels['tabsummary'] = 'Samenvatting';
$labels['tabrecurrence'] = 'Herhaling';
$labels['tabattendees'] = 'Deelnemers';
$labels['tabresources'] = 'Middelen';
$labels['tabattachments'] = 'Toebehoren';
$labels['tabresources'] = 'Resources';
$labels['tabattachments'] = 'Bijlagen';
$labels['tabsharing'] = 'Delen';
$labels['deleteobjectconfirm'] = 'Weet je zeker dat je deze afspraak wilt verwijderen?';
$labels['deleteventconfirm'] = 'Weet u zeker dat u deze afspraak wilt verwijderen?';
$labels['deletecalendarconfirm'] = 'Weet u zeker dat u deze kalender samen met alle afspraken wilt verwijderen?';
$labels['deletecalendarconfirmrecursive'] = 'Weet u zeker dat je deze kalender samen met alle afspraken en er onder hangende kalenders wilt verwijderen?';
$labels['savingdata'] = 'Data wordt opgeslagen...';
$labels['errorsaving'] = 'Opslaan mislukt.';
$labels['operationfailed'] = 'De gevraagde opdracht is mislukt.';
$labels['invalideventdates'] = 'Ongeldige datums ingevoerd! Controleer aub uw invoer.';
$labels['invalidcalendarproperties'] = 'Ongeldige kalender eigenschappen! Gebruik aub een geldige naam.';
$labels['searchnoresults'] = 'Geen afspraken gevonden in de geselecteerde kalenders.';
$labels['successremoval'] = 'De afspraak is succesvol verwijdert.';
$labels['successrestore'] = 'De afspraak is succesvol herstelt';
$labels['errornotifying'] = 'Uitnodigingen versturen naar de genodigden van de afspraak is mislukt';
$labels['errorimportingevent'] = 'Afspraak importeren is mislukt';
$labels['importwarningexists'] = 'Een kopie van deze afspraak bevindt zich al in uw kalender.';
$labels['newerversionexists'] = 'Een nieuwere versie van deze afspraak bestaat! Bewerking afgebroken.';
$labels['nowritecalendarfound'] = 'Geen kalender gevonden om de afspraak in op te slaan';
$labels['importedsuccessfully'] = 'De afspraak is succesvol toegevoegd aan \'$calendar\'';
$labels['updatedsuccessfully'] = 'Het bijwerken van de gebeurtenis in \'$calendar\' is geslaagd';
$labels['attendeupdateesuccess'] = 'Status van genodigde succesvol gewijzigd';
$labels['itipsendsuccess'] = 'Uitnodiging verstuurd aan de genodigden.';
$labels['itipresponseerror'] = 'Antwoord op deze uitnodiging versturen is mislukt';
$labels['itipinvalidrequest'] = 'Deze uitnodiging is niet langer geldig';
$labels['sentresponseto'] = 'Antwoord op deze uitnodiging was succesvol verstuurd aan $mailto';
$labels['localchangeswarning'] = 'U bent bezig wijzigingen te maken die alleen zichtbaar zijn in u eigen kalender en die niet doorgestuurd zullen worden aan de organisator van de afspraak.';
$labels['importsuccess'] = 'Succesvol $nr afspraken geïmporteerd';
$labels['importnone'] = 'Geen afspraken gevonden om te importeren';
$labels['deleteobjectconfirm'] = 'Weet u zeker dat u deze activiteit wilt verwijderen?';
$labels['deleteventconfirm'] = 'Weet u zeker dat u deze activiteit wilt verwijderen?';
$labels['deletecalendarconfirm'] = 'Weet u zeker dat u deze agenda en alle activiteiten erin wilt verwijderen?';
$labels['deletecalendarconfirmrecursive'] = 'Weet u zeker dat u deze agenda en alle activiteiten erin alsook de subagenda\'s wilt verwijderen?';
$labels['savingdata'] = 'Gegevens opslaan...';
$labels['errorsaving'] = 'Opslaan van wijzigingen is mislukt.';
$labels['operationfailed'] = 'De gevraagde bewerking is mislukt.';
$labels['invalideventdates'] = 'Ongeldige datums ingevoerd! Controleer de invoer.';
$labels['invalidcalendarproperties'] = 'Ongeldige agenda-eigenschappen! Stel een geldige naam in.';
$labels['searchnoresults'] = 'Geen activiteiten gevonden in de geselecteerde agenda\'s.';
$labels['successremoval'] = 'De activiteit is met succes verwijderd.';
$labels['successrestore'] = 'De activiteit is met succes hersteld.';
$labels['errornotifying'] = 'Versturen van meldingen naar deelnemers van activiteit is mislukt';
$labels['errorimportingevent'] = 'Importeren van activiteit is mislukt';
$labels['importwarningexists'] = 'Een exemplaar van deze activiteit staat al in uw agenda.';
$labels['newerversionexists'] = 'Er bestaat al een nieuwere versie van deze activiteit! Bewerking afgebroken.';
$labels['nowritecalendarfound'] = 'Geen agenda gevonden om de activiteit op te slaan';
$labels['importedsuccessfully'] = 'De activiteit is met succes toegevoegd aan \'$calendar\'';
$labels['updatedsuccessfully'] = 'De activiteit is met succes bijgewerkt in \'$calendar\'';
$labels['attendeupdateesuccess'] = 'Status van deelnemer is met succes bijgewerkt';
$labels['itipsendsuccess'] = 'Uitnodiging is naar deelnemers verstuurd.';
$labels['itipresponseerror'] = 'Versturen van antwoord op uitnodiging voor activiteit is mislukt';
$labels['itipinvalidrequest'] = 'Deze uitnodiging is niet meer geldig';
$labels['sentresponseto'] = 'Antwoord op uitnodiging is met succes verstuurd naar $mailto';
$labels['localchangeswarning'] = 'U gaat wijzigingen maken die alleen zichtbaar zullen zijn in uw eigen agenda en die niet naar de organisator van de activiteit zullen worden verstuurd.';
$labels['importsuccess'] = '$nr activiteiten met succes geïmporteerd';
$labels['importnone'] = 'Geen activiteiten gevonden om te importeren';
$labels['importerror'] = 'Er is een fout tijdens het importeren opgetreden';
$labels['aclnorights'] = 'U heeft geen administratieve rechten op deze kalender.';
$labels['changeeventconfirm'] = 'Wijzig afspraak';
$labels['changerecurringeventwarning'] = 'Dit is een terugkerende afspraak. Wilt u alleen de huidige afspraak wijzigen, deze en alle toekomstige afspraken, alle afspraken of opslaan als een nieuwe afspraak?';
$labels['aclnorights'] = 'U hebt geen administratorrechten voor deze agenda.';
$labels['changeeventconfirm'] = 'Activiteit wijzigen';
$labels['removeeventconfirm'] = 'Activiteit verwijderen';
$labels['changerecurringeventwarning'] = 'Dit is een herhaalde activiteit. Wilt u alleen de huidige activiteit, deze en alle toekomstige herhalingen of alle herhalingen bewerken of wilt u deze opslaan als een nieuwe activiteit?';
$labels['removerecurringeventwarning'] = 'Dit is een herhaalde activiteit. Wilt u alleen de huidige activiteit, deze en alle toekomstige herhalingen of alle herhalingen van deze activiteit verwijderen?';
$labels['removerecurringallonly'] = 'Dit is een herhaalde activiteit. Als deelnemer kunt u alleen de volledige activiteit met alle herhalingen verwijderen.';
$labels['currentevent'] = 'Huidige';
$labels['futurevents'] = 'Toekomstige';
$labels['allevents'] = 'Alle';
$labels['saveasnew'] = 'Bewaar als nieuw';
$labels['saveasnew'] = 'Opslaan als nieuw';
$labels['birthdays'] = 'Verjaardagen';
$labels['birthdayscalendar'] = 'Verjaardagskalender';
$labels['displaybirthdayscalendar'] = 'Toon verjaardagskalender';
$labels['displaybirthdayscalendar'] = 'Verjaardagskalender weergeven';
$labels['birthdayscalendarsources'] = 'Uit deze adresboeken';
$labels['birthdayeventtitle'] = 'verjaardag van $name';
$labels['birthdayage'] = 'Leeftijd $age';
$labels['birthdayage'] = '$age jaar';
$labels['objectchangelog'] = 'Geschiedenis wijzigen';
$labels['objectdiff'] = 'Wijzigingen van $rev1 tot $rev2';
$labels['objectnotfound'] = 'Laden van activiteitsgegevens is mislukt';
$labels['objectchangelognotavailable'] = 'Voor deze activiteit kunt u de geschiedenis niet wijzigen';
$labels['objectdiffnotavailable'] = 'Geen vergelijking mogelijk voor de geselecteerde revisies';
$labels['revisionrestoreconfirm'] = 'Weet u zeker dat u revisie $rev van deze activiteit wilt herstellen? Met deze actie vervangt u de huidige activiteit door de oude versie.';
$labels['objectrestoresuccess'] = 'Revisie $rev met succes hersteld';
$labels['objectrestoreerror'] = 'Herstellen van oude revisie is mislukt';
$labels['arialabelminical'] = 'Datum in agenda selecteren';
$labels['arialabelcalendarview'] = 'Agendaweergave';
$labels['arialabelsearchform'] = 'Zoekformulier voor activiteiten';
$labels['arialabelquicksearchbox'] = 'Zoekopdracht voor activiteiten';
$labels['arialabelcalsearchform'] = 'Zoekformulier voor agenda\'s';
$labels['calendaractions'] = 'Acties voor agenda';
$labels['arialabeleventattendees'] = 'Lijst met deelnemers van activiteit';
$labels['arialabeleventresources'] = 'Lijst met resources voor activiteit';
$labels['arialabelresourcesearchform'] = 'Zoekformulier voor resources';
$labels['arialabelresourceselection'] = 'Beschikbare resources';
?>

View file

@ -37,6 +37,7 @@ $labels['new_event'] = 'Novo evento';
$labels['edit_event'] = 'Editar evento';
$labels['edit'] = 'Editar';
$labels['save'] = 'Gravar';
$labels['removelist'] = 'Remover da lista';
$labels['cancel'] = 'Cancelar';
$labels['select'] = 'Selecionar';
$labels['print'] = 'Imprimir';
@ -53,6 +54,7 @@ $labels['location'] = 'Local';
$labels['url'] = 'URL';
$labels['date'] = 'Data';
$labels['start'] = 'Início';
$labels['starttime'] = 'Hora de início';
$labels['end'] = 'Término';
$labels['repeat'] = 'Repetir';
$labels['selectdate'] = 'Escolha a data';
@ -73,9 +75,12 @@ $labels['links'] = 'Reference';
$labels['alarms'] = 'Lembrete';
$labels['comment'] = 'Comentário';
$labels['created'] = 'Created';
$labels['changed'] = 'Última modificação';
$labels['unknown'] = 'Desconhecido';
$labels['eventoptions'] = 'Opções';
$labels['generated'] = 'gerado em';
$labels['eventhistory'] = 'História';
$labels['removelink'] = 'Remover referência do email';
$labels['printdescriptions'] = 'Descrições de impressão';
$labels['parentcalendar'] = 'Inserir dentro';
$labels['searchearlierdates'] = '« Procurar por eventos anteriores';
@ -107,6 +112,7 @@ $labels['nextmonth'] = 'Próximo mês';
$labels['weekofyear'] = 'Semana';
$labels['pastevents'] = 'Passado';
$labels['futureevents'] = 'Futuro';
$labels['showalarms'] = 'Mostrar lembrentes';
$labels['defaultalarmtype'] = 'Configuração de lembrete padrão';
$labels['defaultalarmoffset'] = 'Horário padrão de lembrete';
$labels['attendee'] = 'Participante';
@ -117,6 +123,7 @@ $labels['addattendee'] = 'Adicionar participante';
$labels['roleorganizer'] = 'Organizador';
$labels['rolerequired'] = 'Obrigatório';
$labels['roleoptional'] = 'Opcional';
$labels['rolechair'] = 'Cadeira';
$labels['cutypegroup'] = 'Grupo';
$labels['cutyperesource'] = 'Recurso';
$labels['availfree'] = 'Disponível';
@ -209,4 +216,5 @@ $labels['displaybirthdayscalendar'] = 'Display birthdays calendar';
$labels['birthdayscalendarsources'] = 'From these address books';
$labels['birthdayeventtitle'] = '$name\'s Birthday';
$labels['birthdayage'] = 'Age $age';
$labels['objectchangelog'] = 'Mudar Histórico';
?>

View file

@ -1,5 +1,4 @@
<?php
/**
* Localizations for Kolab Calendar plugin
*
@ -7,10 +6,6 @@
*
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
*/
$labels = array();
// preferences
$labels['default_view'] = 'Вид по умолчанию';
$labels['time_format'] = 'Формат времени';
$labels['timeslots'] = 'Промежутков в час';
@ -32,8 +27,6 @@ $labels['afterflagdeleted'] = 'Пометить как удалённое';
$labels['aftermoveto'] = 'Переместить в...';
$labels['itipoptions'] = 'Приглашения на события';
$labels['afteraction'] = 'После того, как приглашение или сообщение о его изменении обработано';
// calendar
$labels['calendar'] = 'Календарь';
$labels['calendars'] = 'Календари';
$labels['category'] = 'Категория';
@ -122,8 +115,6 @@ $labels['invitationspending'] = 'Ожидающие приглашения';
$labels['invitationsdeclined'] = 'Отклонённые приглашения';
$labels['changepartstat'] = 'Изменить статус участника';
$labels['rsvpcomment'] = 'Текст приглашения';
// agenda view
$labels['listrange'] = 'Диапазон:';
$labels['listsections'] = 'Разделить на:';
$labels['smartsections'] = 'Умные секции';
@ -138,13 +129,9 @@ $labels['nextmonth'] = 'Следующий месяц';
$labels['weekofyear'] = 'Неделя';
$labels['pastevents'] = 'Прошедшее';
$labels['futureevents'] = 'Будущее';
// alarm/reminder settings
$labels['showalarms'] = 'Показывать напоминания';
$labels['defaultalarmtype'] = 'Настройки напоминания по умолчанию';
$labels['defaultalarmoffset'] = 'Время напоминания по умолчанию';
// attendees
$labels['attendee'] = 'Участник';
$labels['role'] = 'Роль';
$labels['availability'] = 'Доступность';
@ -184,22 +171,17 @@ $labels['eventupdatesubjectempty'] = 'Событие, которое касае
$labels['eventupdatemailbody'] = "*\$title*\n\nКогда: \$date\n\nПриглашенные: \$attendees\n\nВо вложении вы найдёте файл iCalendar со всеми изменениями в событии, который Вы можете импортировать в Вашу программу-ежедневник.";
$labels['eventcancelsubject'] = '"$title" было отменено';
$labels['eventcancelmailbody'] = "*\$title*\n\nКогда: \$date\n\nПриглашенные: \$attendees\n\nЭто событие отменено \$organizer.\n\nВо вложении вы найдёте файл iCalendar со всеми изменениями в событии.";
// invitation handling (overrides labels from libcalendaring)
$labels['itipobjectnotfound'] = 'Событие, упомянутое в этом сообщении, не найдено в вашем календаре.';
$labels['itipmailbodyaccepted'] = "\$sender принял(а) приглашение на следующее событие:\n\n*\$title*\n\nКогда: \$date\n\nПриглашенные: \$attendees";
$labels['itipmailbodytentative'] = "\$sender предварительно принял(а) приглашение на следующее событие:\n\n*\$title*\n\nКогда: \$date\n\nПриглашенные: \$attendees";
$labels['itipmailbodydeclined'] = "\$sender отклонил(а) приглашение на следующее событие:\n\n*\$title*\n\nКогда: \$date\n\nПриглашенные: \$attendees";
$labels['itipmailbodycancel'] = "\$sender отклонил ваше участие в событии:\n\n*\$title*\n\nДата: \$date";
$labels['itipmailbodydelegated'] = "\$sender перепоручил(а) учестие в событии:\n\n*\$title*\n\nДата: \$date";
$labels['itipmailbodydelegatedto'] = "\$sender перепоручил(а) Вам участие в событии:\n\n*\$title*\n\nДата: \$date";
$labels['itipdeclineevent'] = 'Вы хотите отклонить приглашение на это событие?';
$labels['declinedeleteconfirm'] = 'Хотите ли вы так же удалить это отклонённое событие из вашего календаря?';
$labels['itipcomment'] = 'Комментарий к приглашению/извещению';
$labels['itipcommenttitle'] = 'Этот комментарий будет прикреплён к приглашению/оповещению, отправленному участникам';
$labels['notanattendee'] = 'Вы не в списке участников этого события';
$labels['eventcancelled'] = 'Это событие отменено';
$labels['saveincalendar'] = 'сохранить в';
@ -208,8 +190,6 @@ $labels['savetocalendar'] = 'Сохранить в календарь';
$labels['openpreview'] = 'Проверить календарь';
$labels['noearlierevents'] = 'Нет предыдущих событий';
$labels['nolaterevents'] = 'Нет последующих событий';
// resources
$labels['resource'] = 'Ресурс';
$labels['addresource'] = 'Зарезервировать ресурс';
$labels['findresources'] = 'Найти ресурсы';
@ -217,16 +197,12 @@ $labels['resourcedetails'] = 'Подробнее';
$labels['resourceavailability'] = 'Доступность';
$labels['resourceowner'] = 'Владелец';
$labels['resourceadded'] = 'Ресурс добавлен в ваше событие';
// event dialog tabs
$labels['tabsummary'] = 'Сводка';
$labels['tabrecurrence'] = 'Повторение';
$labels['tabattendees'] = 'Участники';
$labels['tabresources'] = 'Ресурсы';
$labels['tabattachments'] = 'Вложения';
$labels['tabsharing'] = 'Совместное использование';
// messages
$labels['deleteobjectconfirm'] = 'Вы действительно хотите удалить это событие?';
$labels['deleteventconfirm'] = 'Вы действительно хотите удалить это событие?';
$labels['deletecalendarconfirm'] = 'Вы действительно хотите удалить этот календарь со всеми его событиями?';
@ -256,7 +232,6 @@ $labels['importsuccess'] = 'Успешно импортировано $nr соб
$labels['importnone'] = 'Не найдено событий для импорта';
$labels['importerror'] = 'Ошибка при импорте';
$labels['aclnorights'] = 'Вы не имеете прав администратора для этого календаря.';
$labels['changeeventconfirm'] = 'Изменить событие';
$labels['removeeventconfirm'] = 'Удалить событие';
$labels['changerecurringeventwarning'] = 'Это - повторяющееся событие. Хотели бы Вы редактировать только текущее событие, это и все будущие повторения, все события или сохранять его как новое событие?';
@ -266,16 +241,12 @@ $labels['currentevent'] = 'Текущее';
$labels['futurevents'] = 'Будущие';
$labels['allevents'] = 'Все';
$labels['saveasnew'] = 'Сохранить как новое';
// birthdays calendar
$labels['birthdays'] = 'Дни рождения';
$labels['birthdayscalendar'] = 'Календарь Дней Рождения';
$labels['displaybirthdayscalendar'] = 'Показывать календарь Дней Рождения';
$labels['birthdayscalendarsources'] = 'Из этих адресных книг';
$labels['birthdayeventtitle'] = 'День рождения $name';
$labels['birthdayage'] = 'Возраст $age';
// history dialog
$labels['objectchangelog'] = 'История изменений';
$labels['objectdiff'] = 'Изменения с $rev1 до $rev2';
$labels['objectnotfound'] = 'Не удалось загрузить информацию о мероприятиях';
@ -284,9 +255,6 @@ $labels['objectdiffnotavailable'] = 'Невозможно провести ср
$labels['revisionrestoreconfirm'] = 'Вы уверенны, что хотите восстановить это событие из ревизии $rev? Оно заменит текущее событие старой версией. ';
$labels['objectrestoresuccess'] = 'Ревизия $rev успешно восстановлена';
$labels['objectrestoreerror'] = 'Не удалось восстановить старую ревизию';
// (hidden) titles and labels for accessibility annotations
$labels['arialabelminical'] = 'Выбор даты';
$labels['arialabelcalendarview'] = 'Вид календаря';
$labels['arialabelsearchform'] = 'Форма поиска событий';
@ -297,5 +265,4 @@ $labels['arialabeleventattendees'] = 'Участники события';
$labels['arialabeleventresources'] = 'Ресурсы события';
$labels['arialabelresourcesearchform'] = 'Форма поиска ресурсов';
$labels['arialabelresourceselection'] = 'Доступные ресурсы';
?>

View file

@ -1,5 +1,4 @@
<?php
/**
* Localizations for Kolab Calendar plugin
*
@ -7,10 +6,6 @@
*
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
*/
$labels = array();
// preferences
$labels['default_view'] = 'Prednastavené zobrazenie';
$labels['time_format'] = 'Formát času';
$labels['timeslots'] = 'Časových úsekov za hodinu';
@ -21,19 +16,12 @@ $labels['add_category'] = 'Pridať kategóriu';
$labels['remove_category'] = 'Odstrániť kategóriu';
$labels['defaultcalendar'] = 'Vytvoriť novú udalosť v';
$labels['eventcoloring'] = 'Farba udalosti';
$labels['coloringmode0'] = 'According to calendar';
$labels['coloringmode1'] = 'According to category';
$labels['coloringmode2'] = 'Calendar for outline, category for content';
$labels['coloringmode3'] = 'Category for outline, calendar for content';
$labels['afternothing'] = 'Neurobiť nič';
$labels['aftertrash'] = 'Presunúť do koša';
$labels['afterdelete'] = 'Vymazať správu';
$labels['afterflagdeleted'] = 'Označiť ako vymazané';
$labels['aftermoveto'] = 'Presunúť do...';
$labels['itipoptions'] = 'Pozvánky na udalosť';
$labels['afteraction'] = 'After an invitation or update message is processed';
// calendar
$labels['calendar'] = 'Kalendár';
$labels['calendars'] = 'Kalendáre';
$labels['category'] = 'Kategória';
@ -83,219 +71,12 @@ $labels['status'] = 'Stav';
$labels['status-confirmed'] = 'Potvrdené';
$labels['status-cancelled'] = 'Zrušené';
$labels['priority'] = 'Priorita';
$labels['sensitivity'] = 'Privacy';
$labels['public'] = 'public';
$labels['private'] = 'private';
$labels['confidential'] = 'confidential';
$labels['links'] = 'Reference';
$labels['alarms'] = 'Reminder';
$labels['comment'] = 'Comment';
$labels['created'] = 'Created';
$labels['changed'] = 'Last Modified';
$labels['unknown'] = 'Unknown';
$labels['eventoptions'] = 'Options';
$labels['generated'] = 'generated at';
$labels['eventhistory'] = 'History';
$labels['removelink'] = 'Remove email reference';
$labels['printdescriptions'] = 'Print descriptions';
$labels['parentcalendar'] = 'Insert inside';
$labels['searchearlierdates'] = '« Search for earlier events';
$labels['searchlaterdates'] = 'Search for later events »';
$labels['andnmore'] = '$nr more...';
$labels['togglerole'] = 'Click to toggle role';
$labels['createfrommail'] = 'Save as event';
$labels['importevents'] = 'Import events';
$labels['importrange'] = 'Udalosti z';
$labels['onemonthback'] = '1 month back';
$labels['nmonthsback'] = '$nr months back';
$labels['showurl'] = 'Show calendar URL';
$labels['showurldescription'] = 'Use the following address to access (read only) your calendar from other applications. You can copy and paste this into any calendar software that supports the iCal format.';
$labels['caldavurldescription'] = 'Copy this address to a <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a> client application (e.g. Evolution or Mozilla Thunderbird) to fully synchronize this specific calendar with your computer or mobile device.';
$labels['findcalendars'] = 'Find calendars...';
$labels['searchterms'] = 'Search terms';
$labels['calsearchresults'] = 'Available Calendars';
$labels['calendarsubscribe'] = 'List permanently';
$labels['nocalendarsfound'] = 'No calendars found';
$labels['nrcalendarsfound'] = '$nr calendars found';
$labels['quickview'] = 'View only this calendar';
$labels['invitationspending'] = 'Pending invitations';
$labels['invitationsdeclined'] = 'Declined invitations';
$labels['changepartstat'] = 'Change participant status';
$labels['rsvpcomment'] = 'Invitation text';
// agenda view
$labels['listrange'] = 'Range to display:';
$labels['listsections'] = 'Divide into:';
$labels['smartsections'] = 'Smart sections';
$labels['until'] = 'until';
$labels['today'] = 'Today';
$labels['tomorrow'] = 'Tomorrow';
$labels['thisweek'] = 'This week';
$labels['nextweek'] = 'Next week';
$labels['prevweek'] = 'Previous week';
$labels['thismonth'] = 'This month';
$labels['nextmonth'] = 'Next month';
$labels['weekofyear'] = 'Týždeň';
$labels['pastevents'] = 'Past';
$labels['futureevents'] = 'Future';
// alarm/reminder settings
$labels['showalarms'] = 'Show reminders';
$labels['defaultalarmtype'] = 'Default reminder setting';
$labels['defaultalarmoffset'] = 'Default reminder time';
// attendees
$labels['attendee'] = 'Participant';
$labels['role'] = 'Role';
$labels['availability'] = 'Avail.';
$labels['confirmstate'] = 'Stav';
$labels['addattendee'] = 'Add participant';
$labels['roleorganizer'] = 'Organizer';
$labels['rolerequired'] = 'Required';
$labels['roleoptional'] = 'Optional';
$labels['rolechair'] = 'Chair';
$labels['rolenonparticipant'] = 'Absent';
$labels['cutypeindividual'] = 'Individual';
$labels['cutypegroup'] = 'Group';
$labels['cutyperesource'] = 'Resource';
$labels['cutyperoom'] = 'Room';
$labels['availfree'] = 'Voľný';
$labels['availbusy'] = 'Zaneprázdnený';
$labels['availunknown'] = 'Unknown';
$labels['availtentative'] = 'Nezáväzne';
$labels['availoutofoffice'] = 'Mimo kancelárie';
$labels['delegatedto'] = 'Delegated to: ';
$labels['delegatedfrom'] = 'Delegated from: ';
$labels['scheduletime'] = 'Find availability';
$labels['sendinvitations'] = 'Send invitations';
$labels['sendnotifications'] = 'Notify participants about modifications';
$labels['sendcancellation'] = 'Notify participants about event cancellation';
$labels['onlyworkinghours'] = 'Find availability within my working hours';
$labels['reqallattendees'] = 'Required/all participants';
$labels['prevslot'] = 'Previous Slot';
$labels['nextslot'] = 'Next Slot';
$labels['suggestedslot'] = 'Suggested Slot';
$labels['noslotfound'] = 'Unable to find a free time slot';
$labels['invitationsubject'] = 'You\'ve been invited to "$title"';
$labels['invitationmailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nPlease find attached an iCalendar file with all the event details which you can import to your calendar application.";
$labels['invitationattendlinks'] = "In case your email client doesn't support iTip requests you can use the following link to either accept or decline this invitation:\n\$url";
$labels['eventupdatesubject'] = '"$title" has been updated';
$labels['eventupdatesubjectempty'] = 'An event that concerns you has been updated';
$labels['eventupdatemailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nPlease find attached an iCalendar file with the updated event details which you can import to your calendar application.";
$labels['eventcancelsubject'] = '"$title" has been cancelled';
$labels['eventcancelmailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nThe event has been cancelled by \$organizer.\n\nPlease find attached an iCalendar file with the updated event details.";
// invitation handling (overrides labels from libcalendaring)
$labels['itipobjectnotfound'] = 'The event referred by this message was not found in your calendar.';
$labels['itipmailbodyaccepted'] = "\$sender has accepted the invitation to the following event:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
$labels['itipmailbodytentative'] = "\$sender has tentatively accepted the invitation to the following event:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
$labels['itipmailbodydeclined'] = "\$sender has declined the invitation to the following event:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
$labels['itipmailbodycancel'] = "\$sender has rejected your participation in the following event:\n\n*\$title*\n\nWhen: \$date";
$labels['itipmailbodydelegated'] = "\$sender has delegated the participation in the following event:\n\n*\$title*\n\nWhen: \$date";
$labels['itipmailbodydelegatedto'] = "\$sender has delegated the participation in the following event to you:\n\n*\$title*\n\nWhen: \$date";
$labels['itipdeclineevent'] = 'Do you want to decline your invitation to this event?';
$labels['declinedeleteconfirm'] = 'Do you also want to delete this declined event from your calendar?';
$labels['itipcomment'] = 'Invitation/notification comment';
$labels['itipcommenttitle'] = 'This comment will be attached to the invitation/notification message sent to participants';
$labels['notanattendee'] = 'You\'re not listed as an attendee of this event';
$labels['eventcancelled'] = 'The event has been cancelled';
$labels['saveincalendar'] = 'save in';
$labels['updatemycopy'] = 'Update in my calendar';
$labels['savetocalendar'] = 'Save to calendar';
$labels['openpreview'] = 'Check Calendar';
$labels['noearlierevents'] = 'No earlier events';
$labels['nolaterevents'] = 'No later events';
// resources
$labels['resource'] = 'Resource';
$labels['addresource'] = 'Book resource';
$labels['findresources'] = 'Find resources';
$labels['resourcedetails'] = 'Details';
$labels['resourceavailability'] = 'Availability';
$labels['resourceowner'] = 'Owner';
$labels['resourceadded'] = 'The resource was added to your event';
// event dialog tabs
$labels['tabsummary'] = 'Sumár';
$labels['tabrecurrence'] = 'Recurrence';
$labels['tabattendees'] = 'Participants';
$labels['tabresources'] = 'Resources';
$labels['tabattachments'] = 'Attachments';
$labels['tabsharing'] = 'Sharing';
// messages
$labels['deleteobjectconfirm'] = 'Do you really want to delete this event?';
$labels['deleteventconfirm'] = 'Do you really want to delete this event?';
$labels['deletecalendarconfirm'] = 'Do you really want to delete this calendar with all its events?';
$labels['deletecalendarconfirmrecursive'] = 'Do you really want to delete this calendar with all its events and sub-calendars?';
$labels['savingdata'] = 'Saving data...';
$labels['errorsaving'] = 'Failed to save changes.';
$labels['operationfailed'] = 'The requested operation failed.';
$labels['invalideventdates'] = 'Invalid dates entered! Please check your input.';
$labels['invalidcalendarproperties'] = 'Invalid calendar properties! Please set a valid name.';
$labels['searchnoresults'] = 'No events found in the selected calendars.';
$labels['successremoval'] = 'The event has been deleted successfully.';
$labels['successrestore'] = 'The event has been restored successfully.';
$labels['errornotifying'] = 'Failed to send notifications to event participants';
$labels['errorimportingevent'] = 'Failed to import the event';
$labels['importwarningexists'] = 'A copy of this event already exists in your calendar.';
$labels['newerversionexists'] = 'A newer version of this event already exists! Aborted.';
$labels['nowritecalendarfound'] = 'No calendar found to save the event';
$labels['importedsuccessfully'] = 'The event was successfully added to \'$calendar\'';
$labels['updatedsuccessfully'] = 'The event was successfully updated in \'$calendar\'';
$labels['attendeupdateesuccess'] = 'Successfully updated the participant\'s status';
$labels['itipsendsuccess'] = 'Invitation sent to participants.';
$labels['itipresponseerror'] = 'Failed to send the response to this event invitation';
$labels['itipinvalidrequest'] = 'This invitation is no longer valid';
$labels['sentresponseto'] = 'Successfully sent invitation response to $mailto';
$labels['localchangeswarning'] = 'You are about to make changes that will only be reflected on your calendar and not be sent to the organizer of the event.';
$labels['importsuccess'] = 'Successfully imported $nr events';
$labels['importnone'] = 'No events found to be imported';
$labels['importerror'] = 'An error occured while importing';
$labels['aclnorights'] = 'You do not have administrator rights on this calendar.';
$labels['changeeventconfirm'] = 'Change event';
$labels['removeeventconfirm'] = 'Delete event';
$labels['changerecurringeventwarning'] = 'This is a recurring event. Would you like to edit the current event only, this and all future occurences, all occurences or save it as a new event?';
$labels['removerecurringeventwarning'] = 'This is a recurring event. Would you like to delete the current event only, this and all future occurences or all occurences of this event?';
$labels['removerecurringallonly'] = 'This is a recurring event. As a participant, you can only delete the entire event with all occurences.';
$labels['currentevent'] = 'Current';
$labels['futurevents'] = 'Future';
$labels['allevents'] = 'All';
$labels['saveasnew'] = 'Save as new';
// birthdays calendar
$labels['birthdays'] = 'Birthdays';
$labels['birthdayscalendar'] = 'Birthdays Calendar';
$labels['displaybirthdayscalendar'] = 'Display birthdays calendar';
$labels['birthdayscalendarsources'] = 'From these address books';
$labels['birthdayeventtitle'] = '$name\'s Birthday';
$labels['birthdayage'] = 'Age $age';
// history dialog
$labels['objectchangelog'] = 'Change History';
$labels['objectdiff'] = 'Changes from $rev1 to $rev2';
$labels['objectnotfound'] = 'Failed to load event data';
$labels['objectchangelognotavailable'] = 'Change history is not available for this event';
$labels['objectdiffnotavailable'] = 'No comparison possible for the selected revisions';
$labels['revisionrestoreconfirm'] = 'Do you really want to restore revision $rev of this event? This will replace the current event with the old version.';
$labels['objectrestoresuccess'] = 'Revision $rev successfully restored';
$labels['objectrestoreerror'] = 'Failed to restore the old revision';
// (hidden) titles and labels for accessibility annotations
$labels['arialabelminical'] = 'Calendar date selection';
$labels['arialabelcalendarview'] = 'Calendar view';
$labels['arialabelsearchform'] = 'Event search form';
$labels['arialabelquicksearchbox'] = 'Event search input';
$labels['arialabelcalsearchform'] = 'Calendars search form';
$labels['calendaractions'] = 'Calendar actions';
$labels['arialabeleventattendees'] = 'Event participants list';
$labels['arialabeleventresources'] = 'Event resources list';
$labels['arialabelresourcesearchform'] = 'Resources search form';
$labels['arialabelresourceselection'] = 'Available resources';
?>

View file

@ -373,6 +373,7 @@ pre {
right: 4px;
}
#eventedit.uidialog,
.calendarmain div.uidialog {
display: none;
}

View file

@ -123,6 +123,7 @@
<ul>
<li><roundcube:button command="event-download" label="download" classAct="active" /></li>
<li><roundcube:button command="event-sendbymail" label="send" classAct="active" /></li>
<li><roundcube:button command="event-copy" label="copy" classAct="active" /></li>
</ul>
</div>

View file

@ -69,31 +69,18 @@ body.calendarmain #mainscreen {
#datepicker .ui-datepicker-activerange a {
color: #185d7a;
background: #d9f1fb;
background: -moz-linear-gradient(top, #d9f1fb 0%, #c5e3ee 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#d9f1fb), color-stop(100%,#c5e3ee));
background: -o-linear-gradient(top, #d9f1fb 0%, #c5e3ee 100%);
background: -ms-linear-gradient(top, #d9f1fb 0%, #c5e3ee 100%);
background: linear-gradient(top, #d9f1fb 0%, #c5e3ee 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#d9f1fb', endColorstr='#c5e3ee', GradientType=0);
}
#datepicker .ui-datepicker-days-cell-over a.ui-state-default {
color: #fff;
border-color: #2fa0c0;
background: rgba(73,180,210,0.6);
text-shadow: 0px 1px 1px #666;
filter: none;
}
#datepicker .ui-datepicker-activerange a.ui-state-active {
color: #fff;
background: #00acd4;
background: -moz-linear-gradient(top, #00acd4 0%, #008fc7 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#00acd4), color-stop(100%,#008fc7));
background: -o-linear-gradient(top, #00acd4 0%, #008fc7 100%);
background: -ms-linear-gradient(top, #00acd4 0%, #008fc7 100%);
background: linear-gradient(top, #00acd4 0%, #008fc7 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00acd4', endColorstr='#008fc7', GradientType=0);
}
#datepicker td.ui-datepicker-week-col {
@ -253,17 +240,14 @@ pre {
#calendars .treelist li span.handle {
display: inline-block;
position: absolute;
top: 8px;
top: 7px;
right: 6px;
padding: 0;
width: 10px;
height: 10px;
border-radius: 7px;
width: 11px;
height: 11px;
border-radius: 8px;
font-size: 0.8em;
border: 1px solid rgba(0, 0, 0, 0.5);
-webkit-box-shadow: inset 0px 0 1px 1px rgba(0, 0, 0, 0.3);
-moz-box-shadow: inset 0px 0 1px 1px rgba(0, 0, 0, 0.3);
box-shadow: inset 0px 0 1px 1px rgba(0, 0, 0, 0.3);
border: 1px solid rgba(0, 0, 0, 0.4);
}
#calendars .treelist div span.actions {
@ -281,15 +265,9 @@ pre {
#calendars .treelist div:hover span.actions {
top: 1px;
right: 21px;
border: 1px solid #c6c6c6;
border: 1px solid #ababab;
border-radius: 4px;
background: #f7f7f7;
background: -moz-linear-gradient(top, #f9f9f9 0%, #e6e6e6 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f9f9f9), color-stop(100%,#e6e6e6));
background: -o-linear-gradient(top, #f9f9f9 0%, #e6e6e6 100%);
background: -ms-linear-gradient(top, #f9f9f9 0%, #e6e6e6 100%);
background: linear-gradient(top, #f9f9f9 0%, #e6e6e6 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f9f9f9', endColorstr='#e6e6e6', GradientType=0);
background: #f1f1f1;
}
#calendars .treelist li a.subscribed {
@ -431,13 +409,6 @@ pre {
min-width: 1.3em;
padding: 2px 4px;
background: #005d76;
background: -moz-linear-gradient(top, #005d76 0%, #004558 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#005d76), color-stop(100%,#004558));
background: -o-linear-gradient(top, #005d76 0%, #004558 100%);
background: -ms-linear-gradient(top, #005d76 0%, #004558 100%);
background: linear-gradient(to bottom, #005d76 0%, #004558 100%);
-webkit-box-shadow: inset 0 1px 1px 0 #002635;
box-shadow: inset 0 1px 1px 0 #002635;
border-radius: 10px;
color: #fff;
text-align: center;
@ -454,7 +425,8 @@ pre {
#calendars .searchresults .boxtitle {
background: none;
padding: 2px 8px 2px 8px;
padding: 2px 8px;
border-radius: 0;
}
#calendars .searchresults .listing li {
@ -539,10 +511,15 @@ body.calendarmain #searchmenulink {
width: 15px;
}
#eventedit.uidialog,
.calendarmain div.uidialog {
display: none;
}
#calendarform {
overflow: visible;
}
#user {
position: absolute;
top: 10px;
@ -625,7 +602,6 @@ a.miniColors-trigger {
color: #333;
font-weight: bold;
padding: 4px 4px 3px 30px;
text-shadow: 0px 1px 1px #fff;
text-decoration: none;
white-space: nowrap;
line-height: 20px;
@ -641,7 +617,7 @@ a.miniColors-trigger {
border-top: 2px solid #fafafa;
}
#edit-attachments-form .formbuttons {
#edit-attachments-form .buttons {
margin: 0.5em 0;
}
@ -682,7 +658,7 @@ a.miniColors-trigger {
}
.event-attendees span.attendee {
padding-right: 18px;
padding: 1px 18px 1px 0;
margin-right: 0.5em;
background: url(images/attendee-status.png) right 0 no-repeat;
}
@ -733,11 +709,6 @@ a.miniColors-trigger {
font-size: 11px;
font-weight: bold;
background: #d6eaf3;
background: -moz-linear-gradient(left, #e3f2f6 0, #d6eaf3 14px, #d6eaf3 100%);
background: -webkit-gradient(linear, left top, right top, color-stop(0,#e3f2f6), color-stop(8%,#d6eaf3), color-stop(100%,#d6eaf3));
background: -o-linear-gradient(left, #e3f2f6 0, #d6eaf3 14px, #d6eaf3 100%);
background: -ms-linear-gradient(left, #e3f2f6 0, #d6eaf3 14px ,#d6eaf3 100%);
background: linear-gradient(left, #e3f2f6 0, #d6eaf3 14px, #d6eaf3 100%);
border: 0;
border-bottom: 1px solid #ccc;
height: 18px;
@ -825,6 +796,9 @@ a.miniColors-trigger {
.calendarmain .eventdialog div.event-line {
margin-top: 0.1em;
margin-bottom: 0.3em;
white-space: nowrap;
overflow-x: hidden;
text-overflow: ellipsis;
}
.calendarmain .eventdialog div.event-line a.iconbutton {
@ -836,6 +810,15 @@ a.miniColors-trigger {
margin-left: 2em;
}
#event-description .event-text,
#event-attendees .event-text {
padding-top: 0.4em;
}
.eventdialog .spacer {
font-size: 4px;
}
.eventdialog .event-text-old,
.eventdialog .event-text-new,
.eventdialog .event-text-diff {
@ -990,16 +973,6 @@ div.form-section,
padding-right: 0.5em;
}
.calendarmain .eventdialog #event-url .event-text {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
#event-links .attachmentslist {
display: inline-block;
}
#event-links label,
#edit-event-links label {
float: left;
@ -1138,7 +1111,7 @@ td.topalign {
#eventedit .edit-attendees-table th.invite,
#eventedit .edit-attendees-table td.invite {
width: 44px;
width: 50px;
padding: 2px;
}
@ -1238,6 +1211,7 @@ td.topalign {
height: 14px;
border-radius: 4px;
-moz-border-radius: 4px;
vertical-align: middle;
}
.availability img.availabilityicon.loading {
@ -1295,10 +1269,6 @@ td.topalign {
white-space: nowrap;
}
#edit-attendees-legend img.availabilityicon {
vertical-align: middle;
}
.edit-attendees-table tbody td.confirmstate {
overflow: hidden;
white-space: nowrap;
@ -1312,22 +1282,27 @@ td.topalign {
}
.edit-attendees-table td.confirmstate span.needs-action {
height: 14px;
}
.edit-attendees-table td.confirmstate span.accepted {
background-position: 5px -20px;
height: 14px;
}
.edit-attendees-table td.confirmstate span.declined {
background-position: 5px -40px;
height: 14px;
}
.edit-attendees-table td.confirmstate span.tentative {
background-position: 5px -60px;
height: 14px;
}
.edit-attendees-table td.confirmstate span.delegated {
background-position: 5px -180px;
height: 14px;
}
#attendees-freebusy-table {
@ -1564,12 +1539,7 @@ a.dropdown-link:after {
border-top-color: #ddd;
border-bottom-color: #bbb;
border-radius: 0 0 4px 4px;
background: #ebebeb;
background: -moz-linear-gradient(top, #ebebeb 0%, #c6c6c6 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ebebeb), color-stop(100%,#c6c6c6));
background: -o-linear-gradient(top, #ebebeb 0%, #c6c6c6 100%);
background: -ms-linear-gradient(top, #ebebeb 0%, #c6c6c6 100%);
background: linear-gradient(top, #ebebeb 0%, #c6c6c6 100%);
background: #eaeaea;
}
#agendaoptions label {
@ -1713,10 +1683,6 @@ a.dropdown-link:after {
overflow: hidden;
border: 0;
border-radius: 4px;
box-shadow: 0 0 2px #999;
-o-box-shadow: 0 0 2px #999;
-webkit-box-shadow: 0 0 2px #999;
-moz-box-shadow: 0 0 2px #999;
}
.calendarmain .fc-content {
@ -1748,39 +1714,23 @@ a.dropdown-link:after {
.calendarmain .fc-button.fc-state-default,
.calendarmain .fc-button.fc-state-hover {
background-color: #f5f5f5;
background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));
background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);
background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);
background-image: linear-gradient(to bottom, #ffffff, #e6e6e6);
background-position: 0 0;
}
.calendarmain #calendar .fc-button,
.calendarmain #calendar .fc-button.fc-state-default,
.calendarmain #calendar .fc-button.fc-state-hover {
margin: 0 0 0 0;
height: 20px;
line-height: 20px;
color: #505050;
text-shadow: 0px 1px 1px #fff;
border: 1px solid #e6e6e6;
background: #d8d8d8;
background: -moz-linear-gradient(top, #d8d8d8 0%, #bababa 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#d8d8d8), color-stop(100%,#bababa));
background: -o-linear-gradient(top, #d8d8d8 0%, #bababa 100%);
background: -ms-linear-gradient(top, #d8d8d8 0%, #bababa 100%);
background: linear-gradient(top, #d8d8d8 0%, #bababa 100%);
box-shadow: 0 1px 1px 0 #999;
-o-box-shadow: 0 1px 1px 0 #999;
-webkit-box-shadow: 0 1px 1px 0 #999;
-moz-box-shadow: 0 1px 1px 0 #999;
margin: -2px 0 0 0;
height: 24px;
line-height: 24px;
color: #333;
border: 1px solid #ababab;
background: #f1f1f1;
text-decoration: none;
text-shadow: none;
}
.calendarmain #calendar .fc-button.fc-state-disabled {
color: #999;
background: #d8d8d8;
color: #666;
}
.calendarmain .fc-button.fc-state-active,
@ -1788,12 +1738,8 @@ a.dropdown-link:after {
.calendarmain #calendar .fc-button.fc-state-active,
.calendarmain #calendar .fc-button.fc-state-down {
color: #333;
background: #bababa;
background: -moz-linear-gradient(top, #bababa 0%, #d8d8d8 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#bababa), color-stop(100%,#d8d8d8));
background: -o-linear-gradient(top, #bababa 0%, #d8d8d8 100%);
background: -ms-linear-gradient(top, #bababa 0%, #d8d8d8 100%);
background: linear-gradient(top, #bababa 0%, #d8d8d8 100%);
background: #f1f1f1;
box-shadow: none;
}
.calendarmain #calendar .fc-header .fc-button {
@ -2050,6 +1996,15 @@ div.fc-event-location {
background-color: rgba(233,198,14, 0.12);
}
.fc-widget-header,
.fc-widget-content {
border-color: #bbd3da !important;
}
.fc-widget-header .fc-agenda-divider-inner {
background: #cad2d9 !important;
}
.fc-widget-header {
background-color: #d6eaf3;
color: #004458;
@ -2094,15 +2049,15 @@ div.fc-event-location {
}
.calendarmain .fc-view-table tr.fc-event td {
border-color: #ddd;
padding: 4px 7px;
border-color: #bbd3da;
padding: 6px 8px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.calendarmain .fc-view-table tr.fc-event td.fc-event-handle {
padding: 5px 0 2px 7px;
padding: 6px 0 2px 7px;
width: 12px;
}
@ -2125,9 +2080,6 @@ div.fc-event-location {
font-size: 10px;
border-radius: 8px;
border: 1px solid rgba(0, 0, 0, 0.4);
-webkit-box-shadow: inset 0px 0 1px 1px rgba(0, 0, 0, 0.3);
-moz-box-shadow: inset 0px 0 1px 1px rgba(0, 0, 0, 0.3);
box-shadow: inset 0px 0 1px 1px rgba(0, 0, 0, 0.3);
}
.calendarmain .fc-view-table col.fc-event-location {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 337 B

After

Width:  |  Height:  |  Size: 204 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -35,7 +35,7 @@
<label for="calendarlistsearch" class="voice"><roundcube:label name="calendar.searchterms" /></label>
<input type="text" name="q" id="calendarlistsearch" placeholder="<roundcube:label name='calendar.findcalendars' />" />
<a class="iconbutton searchicon"></a>
<roundcube:button command="reset-listsearch" id="calendarlistsearch-reset" class="iconbutton reset" title="resetsearch" label="resetsearch" />
<roundcube:button type="link" command="reset-listsearch" id="calendarlistsearch-reset" class="iconbutton reset" title="resetsearch" label="resetsearch" />
</div>
</div>
<div class="scroller withfooter">
@ -52,7 +52,7 @@
<label for="quicksearchbox" class="voice"><roundcube:label name="calendar.arialabelquicksearchbox" /></label>
<roundcube:object name="plugin.searchform" id="quicksearchbox" />
<a id="searchmenulink" class="iconbutton searchoptions" tabindex="-1"> </a>
<roundcube:button command="reset-search" id="searchreset" class="iconbutton reset" title="resetsearch" label="resetsearch" />
<roundcube:button type="link" command="reset-search" id="searchreset" class="iconbutton reset" title="resetsearch" label="resetsearch" />
</div>
<h2 id="aria-label-calendarview" class="voice"><roundcube:label name="calendar.arialabelcalendarview" /></h2>
@ -68,14 +68,14 @@
<div id="calendaroptionsmenu" class="popupmenu" aria-hidden="true">
<h3 id="aria-label-calendaroptions" class="voice"><roundcube:label name="calendar.calendaractions" /></h3>
<ul id="calendaroptionsmenu-menu" class="toolbarmenu" role="menu" aria-labelledby="aria-label-calendaroptions">
<li role="menuitem"><roundcube:button command="calendar-edit" label="calendar.edit" classAct="active" /></li>
<li role="menuitem"><roundcube:button command="calendar-delete" label="delete" classAct="active" /></li>
<li role="menuitem"><roundcube:button type="link" command="calendar-edit" label="calendar.edit" classAct="active" /></li>
<li role="menuitem"><roundcube:button type="link" command="calendar-delete" label="delete" classAct="active" /></li>
<roundcube:if condition="env:calendar_driver == 'kolab'" />
<li role="menuitem"><roundcube:button command="calendar-remove" label="calendar.removelist" classAct="active" /></li>
<li role="menuitem"><roundcube:button type="link" command="calendar-remove" label="calendar.removelist" classAct="active" /></li>
<roundcube:endif />
<li role="menuitem"><roundcube:button command="calendar-showurl" label="calendar.showurl" classAct="active" /></li>
<li role="menuitem"><roundcube:button type="link" command="calendar-showurl" label="calendar.showurl" classAct="active" /></li>
<roundcube:if condition="env:calendar_driver == 'kolab'" />
<li role="menuitem"><roundcube:button command="folders" task="settings" type="link" label="managefolders" classAct="active" /></li>
<li role="menuitem"><roundcube:button type="link" command="folders" task="settings" label="managefolders" classAct="active" /></li>
<roundcube:endif />
</ul>
</div>
@ -86,25 +86,24 @@
<div class="event-section" id="event-location">Location</div>
<div class="event-section" id="event-date">From-To</div>
<div class="event-section" id="event-description">
<h5 class="label"><roundcube:label name="calendar.description" /></h5>
<div class="event-text"></div>
</div>
<div class="event-section" id="event-url">
<h5 class="label"><roundcube:label name="calendar.url" /></h5>
<div class="event-text"></div>
</div>
<div class="event-section" id="event-repeat">
<h5 class="label"><roundcube:label name="calendar.repeat" /></h5>
<div class="event-text"></div>
</div>
<div class="event-section" id="event-alarm">
<h5 class="label"><roundcube:label name="calendar.alarms" /></h5>
<div class="event-text"></div>
</div>
<div class="event-section event-attendees" id="event-attendees">
<h5 class="label"><roundcube:label name="calendar.tabattendees" /></h5>
<div class="event-text"></div>
</div>
<div class="spacer">&nbsp;</div>
<div class="event-line" id="event-url">
<label><roundcube:label name="calendar.url" /></label>
<span class="event-text"></span>
</div>
<div class="event-line" id="event-repeat">
<label><roundcube:label name="calendar.repeat" /></label>
<span class="event-text"></span>
</div>
<div class="event-line" id="event-alarm">
<label><roundcube:label name="calendar.alarms" /></label>
<span class="event-text"></span>
</div>
<div class="event-line" id="event-partstat">
<label><roundcube:label name="calendar.mystatus" /></label>
<span class="changersvp" role="button" tabindex="0" title="<roundcube:label name='calendar.changepartstat' />">
@ -132,19 +131,12 @@
<label><roundcube:label name="calendar.priority" /></label>
<span class="event-text"></span>
</div>
<!--
<div class="event-line" id="event-sensitivity">
<label><roundcube:label name="calendar.sensitivity" /></label>
<span class="event-text"></span>
</div>
<div class="event-section" id="event-links">
<label><roundcube:label name="calendar.links" /></label>
<span class="event-text"></span>
<br style="clear:left">
</div>
<div class="event-section" id="event-attachments">
<label><roundcube:label name="attachments" /></label>
<div class="event-text"></div>
</div>
-->
<div class="event-line" id="event-created-changed">
<label><roundcube:label name="calendar.created" /></label>
<span class="event-text event-created"></span>
@ -155,6 +147,13 @@
<label><roundcube:label name="calendar.rsvpcomment" /></label>
<span class="event-text"></span>
</div>
<div class="event-section" id="event-links">
<label><roundcube:label name="calendar.links" /></label>
<span class="event-text"></span>
</div>
<div class="event-section" id="event-attachments">
<div class="event-text"></div>
</div>
<roundcube:object name="plugin.event_rsvp_buttons" id="event-rsvp" class="event-dialog-message" style="display:none" />
</div>
@ -162,10 +161,11 @@
<div id="eventoptionsmenu" class="popupmenu" aria-hidden="true">
<h3 id="aria-label-eventoptions" class="voice"><roundcube:label name="calendar.eventoptions" /></h3>
<ul id="eventoptionsmenu-menu" class="toolbarmenu" role="menu" aria-labelledby="aria-label-eventoptions">
<li role="menuitem"><roundcube:button command="event-download" label="download" classAct="active" /></li>
<li role="menuitem"><roundcube:button command="event-sendbymail" label="send" classAct="active" /></li>
<li role="menuitem"><roundcube:button type="link" command="event-download" label="download" classAct="active" /></li>
<li role="menuitem"><roundcube:button type="link" command="event-sendbymail" label="send" classAct="active" /></li>
<li role="menuitem"><roundcube:button type="link" command="event-copy" label="copy" classAct="active" /></li>
<roundcube:if condition="env:calendar_driver == 'kolab' && config:kolab_bonnie_api" />
<li role="menuitem"><roundcube:button command="event-history" type="link" label="calendar.eventhistory" classAct="active" /></li>
<li role="menuitem"><roundcube:button type="link" command="event-history" label="calendar.eventhistory" classAct="active" /></li>
<roundcube:endif />
</ul>
</div>
@ -264,7 +264,7 @@
<label for="resourcesearchbox" class="voice"><roundcube:label name="calendar.searchterms" /></label>
<roundcube:object name="plugin.resources_searchform" id="resourcesearchbox" />
<a id="resourcesearchmenulink" class="iconbutton searchoptions"> </a>
<roundcube:button command="reset-resource-search" id="resourcesearchreset" class="iconbutton reset" title="resetsearch" label="resetsearch" />
<roundcube:button type="link" command="reset-resource-search" id="resourcesearchreset" class="iconbutton reset" title="resetsearch" label="resetsearch" />
</div>
</div>
<div class="scroller">
@ -369,8 +369,6 @@
var UI = new rcube_mail_ui();
$(document).ready(function(e){
UI.init();
new calendarview_splitter({ id:'calsidebarsplitter', p1:'#calendarsidebar', p2:'#calendar',
orientation:'v', relative:true, start:280, min:260, size:12, offset:0 });

View file

@ -117,10 +117,10 @@
<!-- attachments list (with upload form) -->
<div id="event-panel-attachments">
<div id="edit-attachments">
<roundcube:object name="plugin.attachments_list" id="attachment-list" class="attachmentslist" />
<roundcube:object name="plugin.attachments_list" id="attachmentlist" class="attachmentslist" />
</div>
<div id="edit-attachments-form" role="region" aria-labelledby="aria-label-attachmentuploadform">
<h3 id="aria-label-attachmentuploadform" class="voice"><roundcube:label name="arialabelattachmentuploadform" /></h2>
<h3 id="aria-label-attachmentuploadform" class="voice"><roundcube:label name="arialabelattachmentuploadform" /></h3>
<roundcube:object name="plugin.attachments_form" id="calendar-attachment-form" attachmentFieldSize="30" />
</div>
<roundcube:object name="plugin.filedroparea" id="event-panel-attachments" />