Synchronized with git master from git.kolab.org (v3.2.9)

This commit is contained in:
Thomas Bruederli 2015-10-19 23:33:47 +02:00
parent 125420074d
commit 9e1fcdd148
36 changed files with 527 additions and 785 deletions

4
README
View file

@ -46,7 +46,7 @@ driver.
1. Get the source from git
$ cd /tmp
$ git clone git://git.kolab.org/git/roundcubemail-plugins-kolab
$ git clone https://git.kolab.org/diffusion/RPK/roundcubemail-plugins-kolab.git
$ cd /<path-to-roundcube>/plugins
$ cp -r /tmp/roundcubemail-plugins-kolab/plugins/calendar .
$ cp -r /tmp/roundcubemail-plugins-kolab/plugins/libcalendaring .
@ -75,4 +75,4 @@ Add 'calendar' to the list of active plugins:
[1] http://git.kolab.org/roundcubemail-plugins-kolab/
[1] https://git.kolab.org/diffusion/RPK/

View file

@ -260,23 +260,21 @@ class calendar extends rcube_plugin
/**
* Get properties of the calendar this user has specified as default
*/
public function get_default_calendar($writeable = false, $confidential = false)
public function get_default_calendar($sensitivity = null)
{
$default_id = $this->rc->config->get('calendar_default_calendar');
$calendars = $this->driver->list_calendars(calendar_driver::FILTER_PERSONAL);
$calendars = $this->driver->list_calendars(calendar_driver::FILTER_PERSONAL | calendar_driver::FILTER_WRITEABLE);
$calendar = $calendars[$default_id] ?: null;
if (!$calendar || $confidential || ($writeable && !$calendar['editable'])) {
if (!$calendar || $sensitivity) {
foreach ($calendars as $cal) {
if ($confidential && $cal['subtype'] == 'confidential') {
if ($sensitivity && $cal['subtype'] == $sensitivity) {
$calendar = $cal;
break;
}
if ($cal['default']) {
if ($cal['default'] && $cal['editable']) {
$calendar = $cal;
if (!$confidential)
break;
}
if (!$writeable || $cal['editable']) {
if ($cal['editable']) {
$first = $cal;
}
}
@ -1057,25 +1055,25 @@ class calendar extends rcube_plugin
$data = $this->driver->get_event_changelog($event);
if (is_array($data) && !empty($data)) {
$lib = $this->lib;
array_walk($data, function(&$change) use ($lib) {
$dtformat = $this->rc->config->get('date_format') . ' ' . $this->rc->config->get('time_format');
array_walk($data, function(&$change) use ($lib, $dtformat) {
if ($change['date']) {
$dt = $lib->adjust_timezone($change['date']);
if ($dt instanceof DateTime)
$change['date'] = $dt->format('c');
$change['date'] = $this->rc->format_date($dt, $dtformat, false);
}
});
$this->rc->output->command('plugin.render_event_changelog', $data);
}
else {
$this->rc->output->command('plugin.render_event_changelog', false);
$this->rc->output->command('display_message', $this->gettext('eventchangelognotavailable'), 'error');
}
$got_msg = true;
$reload = false;
break;
case "diff":
$data = $this->driver->get_event_diff($event, $event['rev']);
$data = $this->driver->get_event_diff($event, $event['rev1'], $event['rev2']);
if (is_array($data)) {
// convert some properties, similar to self::_client_event()
$lib = $this->lib;
@ -1114,7 +1112,7 @@ class calendar extends rcube_plugin
$this->rc->output->command('plugin.event_show_diff', $data);
}
else {
$this->rc->output->command('display_message', $this->gettext('eventdiffnotavailable'), 'error');
$this->rc->output->command('display_message', $this->gettext('objectdiffnotavailable'), 'error');
}
$got_msg = true;
$reload = false;
@ -1125,7 +1123,7 @@ class calendar extends rcube_plugin
$this->rc->output->command('plugin.event_show_revision', $this->_client_event($event));
}
else {
$this->rc->output->command('display_message', $this->gettext('eventnotfound'), 'error');
$this->rc->output->command('display_message', $this->gettext('objectnotfound'), 'error');
}
$got_msg = true;
$reload = false;
@ -1133,13 +1131,16 @@ class calendar extends rcube_plugin
case "restore":
if ($success = $this->driver->restore_event_revision($event, $event['rev'])) {
$_event = $this->driver->get_event($event);
$reload = $_event['recurrence'] ? 2 : 1;
$this->rc->output->command('display_message', $this->gettext(array('name' => 'objectrestoresuccess', 'vars' => array('rev' => $event['rev']))), 'confirmation');
$this->rc->output->command('plugin.close_history_dialog');
}
else {
$this->rc->output->command('display_message', 'Not implemented yet', 'error');
$got_msg = true;
$this->rc->output->command('display_message', $this->gettext('objectrestoreerror'), 'error');
$reload = 0;
}
$reload = false;
$got_msg = true;
break;
}
@ -1177,7 +1178,7 @@ class calendar extends rcube_plugin
$master = $this->driver->get_event(array('id' => $old['recurrence_id'], 'calendar' => $old['calendar']), 0, true);
unset($master['_instance'], $master['recurrence_date']);
$sent = $this->notify_attendees($master, null, $action, $event['_comment']);
$sent = $this->notify_attendees($master, null, $action, $event['_comment'], false);
if ($sent < 0)
$this->rc->output->show_message('calendar.errornotifying', 'error');
@ -1772,6 +1773,12 @@ class calendar extends rcube_plugin
array_unshift($event['attendees'], $organizer);
}
// Convert HTML description into plain text
if ($this->is_html($event)) {
$h2t = new rcube_html2text($event['description'], false, true, 0);
$event['description'] = trim($h2t->get_text());
}
// mapping url => vurl because of the fullcalendar client script
$event['vurl'] = $event['url'];
unset($event['url']);
@ -1880,8 +1887,9 @@ class calendar extends rcube_plugin
$event_id = rcube_utils::get_input_value('_event', rcube_utils::INPUT_GPC);
$calendar = rcube_utils::get_input_value('_cal', rcube_utils::INPUT_GPC);
$id = rcube_utils::get_input_value('_id', rcube_utils::INPUT_GPC);
$rev = rcube_utils::get_input_value('_rev', rcube_utils::INPUT_GPC);
$event = array('id' => $event_id, 'calendar' => $calendar);
$event = array('id' => $event_id, 'calendar' => $calendar, 'rev' => $rev);
$attachment = $this->driver->get_attachment($id, $event);
// show part page
@ -1902,6 +1910,14 @@ class calendar extends rcube_plugin
exit;
}
/**
* Determine whether the given event description is HTML formatted
*/
private function is_html($event)
{
// check for opening and closing <html> or <body> tags
return (preg_match('/<(html|body)(\s+[a-z]|>)/', $event['description'], $m) && strpos($event['description'], '</'.$m[1].'>') > 0);
}
/**
* Prepares new/edited event properties before save
@ -2003,13 +2019,16 @@ class calendar extends rcube_plugin
/**
* Send out an invitation/notification to all event attendees
*/
private function notify_attendees($event, $old, $action = 'edit', $comment = null)
private function notify_attendees($event, $old, $action = 'edit', $comment = null, $rsvp = null)
{
if ($action == 'remove' || ($event['status'] == 'CANCELLED' && $old['status'] != $event['status'])) {
$event['cancelled'] = true;
$is_cancelled = true;
}
if ($rsvp === null)
$rsvp = !$old || $event['sequence'] > $old['sequence'];
$itip = $this->load_itip();
$emails = $this->get_user_emails();
$itip_notify = (int)$this->rc->config->get('calendar_itip_send_option', $this->defaults['calendar_itip_send_option']);
@ -2022,7 +2041,7 @@ class calendar extends rcube_plugin
// compose multipart message using PEAR:Mail_Mime
$method = $action == 'remove' ? 'CANCEL' : 'REQUEST';
$message = $itip->compose_itip_message($event, $method, !$old || $event['sequence'] > $old['sequence']);
$message = $itip->compose_itip_message($event, $method, $rsvp);
// list existing attendees from $old event
$old_attendees = array();
@ -2469,7 +2488,7 @@ class calendar extends rcube_plugin
}
if ($calendar_select) {
$default_calendar = $this->get_default_calendar(true, $data['sensitivity'] == 'confidential');
$default_calendar = $this->get_default_calendar($data['sensitivity']);
$response['select'] = html::span('folder-select', $this->gettext('saveincalendar') . '&nbsp;' .
$calendar_select->show($default_calendar['id']));
}
@ -2583,7 +2602,7 @@ class calendar extends rcube_plugin
$invitation = $itip->get_invitation($token);
// save the event to his/her default calendar if not yet present
if (!$this->driver->get_event($this->event) && ($calendar = $this->get_default_calendar(true, $invitation['event']['sensitivity'] == 'confidential'))) {
if (!$this->driver->get_event($this->event) && ($calendar = $this->get_default_calendar($invitation['event']['sensitivity']))) {
$invitation['event']['calendar'] = $calendar['id'];
if ($this->driver->new_event($invitation['event']))
$this->rc->output->command('display_message', $this->gettext(array('name' => 'importedsuccessfully', 'vars' => array('calendar' => $calendar['name']))), 'confirmation');
@ -2794,7 +2813,7 @@ class calendar extends rcube_plugin
// select default calendar except user explicitly selected 'none'
if (!$calendar && !$dontsave)
$calendar = $this->get_default_calendar(true, $event['sensitivity'] == 'confidential');
$calendar = $this->get_default_calendar($event['sensitivity']);
$metadata = array(
'uid' => $event['uid'],
@ -3106,7 +3125,7 @@ class calendar extends rcube_plugin
foreach ($events as $event) {
// save to calendar
$calendar = $calendars[$cal_id] ?: $this->get_default_calendar(true, $event['sensitivity'] == 'confidential');
$calendar = $calendars[$cal_id] ?: $this->get_default_calendar($event['sensitivity']);
if ($calendar && $calendar['editable'] && $event['_type'] == 'event') {
$event['calendar'] = $calendar['id'];

View file

@ -1018,148 +1018,50 @@ function rcube_calendar_ui(settings)
// show event changelog in a dialog
var event_history_dialog = function(event)
{
if (!event.id)
if (!event.id || !window.libkolab_audittrail)
return false
// render dialog
$dialog = $('#eventhistory');
var $dialog = libkolab_audittrail.object_history_dialog({
module: 'calendar',
container: '#eventhistory',
title: rcmail.gettext('objectchangelog','calendar') + ' - ' + event.title + ', ' + me.event_date_text(event),
// close show dialog first
if ($dialog.is(':ui-dialog'))
$dialog.dialog('close');
var buttons = {};
buttons[rcmail.gettext('close', 'calendar')] = function() {
$dialog.dialog('close');
};
// hide and reset changelog table
$('#event-changelog-table').children('tbody')
.html('<tr><td colspan="6"><span class="loading">'+ rcmail.gettext('loading') +'</span></td></tr>');
// open jquery UI dialog
$dialog.dialog({
modal: false,
resizable: true,
closeOnEscape: true,
title: rcmail.gettext('eventchangelog','calendar') + ' - ' + event.title + ', ' + me.event_date_text(event),
open: function() {
$dialog.attr('aria-hidden', 'false');
setTimeout(function(){
$dialog.parent().find('.ui-button:not(.ui-dialog-titlebar-close)').first().focus();
}, 5);
// callback function for list actions
listfunc: function(action, rev) {
me.loading_lock = rcmail.set_busy(true, 'loading', me.loading_lock);
rcmail.http_post('event', { action:action, e:{ id:event.id, calendar:event.calendar, rev: rev } }, me.loading_lock);
},
close: function() {
$dialog.dialog('destroy').attr('aria-hidden', 'true').hide();
},
buttons: buttons,
minWidth: 450,
width: 650,
height: 350,
minHeight: 200,
})
.data('event', event)
.show().children('.compare-button').hide();
// set dialog size according to content
// me.dialog_resize($dialog.get(0), $dialog.height(), 650);
// callback function for comparing two object revisions
comparefunc: function(rev1, rev2) {
me.loading_lock = rcmail.set_busy(true, 'loading', me.loading_lock);
rcmail.http_post('event', { action:'diff', e:{ id:event.id, calendar:event.calendar, rev1: rev1, rev2: rev2 } }, me.loading_lock);
}
});
$dialog.data('event', event);
// fetch changelog data
me.loading_lock = rcmail.set_busy(true, 'loading', me.loading_lock);
rcmail.http_post('event', { action:'changelog', e:{ id:event.id, calendar:event.calendar } }, me.loading_lock);
// initialize event handlers for history dialog UI elements
if (!$dialog.data('initialized')) {
// compare button
$dialog.find('.compare-button input').click(function(e) {
var rev1 = $('#event-changelog-table input.diff-rev1:checked').val(),
rev2 = $('#event-changelog-table input.diff-rev2:checked').val(),
event = $('#eventhistory').data('event');
if (rev1 && rev2 && rev1 != rev2) {
// swap revisions if the user got it wrong
if (rev1 > rev2) {
var tmp = rev2;
rev2 = rev1;
rev1 = tmp;
}
me.loading_lock = rcmail.set_busy(true, 'loading', me.loading_lock);
rcmail.http_post('event', { action:'diff', e:{ id:event.id, calendar:event.calendar, rev: rev1+':'+rev2 } }, me.loading_lock);
}
else {
alert('Invalid selection!')
}
});
// delegate handlers for list actions
$('#event-changelog-table tbody').on('click', 'td.actions a', function(e) {
var link = $(this),
action = link.hasClass('restore') ? 'restore' : 'show',
event = $('#eventhistory').data('event'),
rev = link.attr('data-rev');
// ignore clicks on first row (current revision)
if (link.closest('tr').hasClass('first')) {
return false;
}
// let the user confirm the restore action
if (action == 'restore' && !confirm(rcmail.gettext('eventrestoreconfirm','calendar').replace('$rev', rev))) {
return false;
}
me.loading_lock = rcmail.set_busy(true, 'loading', me.loading_lock);
rcmail.http_post('event', { action:action, e:{ id:event.id, calendar:event.calendar, rev: rev } }, me.loading_lock);
return false;
});
$dialog.data('initialized', true);
}
};
// callback from server with changelog data
var render_event_changelog = function(data)
{
var $dialog = $('#eventhistory');
var $dialog = $('#eventhistory'),
event = $dialog.data('event');
if (data === false || !data.length) {
$dialog.dialog('close');
return
if (data === false || !data.length || !event) {
// display 'unavailable' message
$('<div class="notfound-message event-dialog-message warning">' + rcmail.gettext('objectchangelognotavailable','calendar') + '</div>')
.insertBefore($dialog.find('.changelog-table').hide());
return;
}
var i, change, accessible, op_append, first = data.length -1, last = 0,
op_labels = { APPEND: 'actionappend', MOVE: 'actionmove', DELETE: 'actiondelete' },
actions = '<a href="#show" class="iconbutton preview" title="'+ rcmail.gettext('showrevision','calendar') +'" data-rev="{rev}" /> ' +
'<a href="#restore" class="iconbutton restore" title="'+ rcmail.gettext('restore','calendar') + '" data-rev="{rev}" />',
tbody = $('#event-changelog-table tbody').html('');
for (i=first; i >= 0; i--) {
change = data[i];
accessible = change.date && change.user;
if (change.op == 'MOVE' && change.folder) {
op_append = ' ⇢ ' + change.folder;
}
else {
op_append = '';
}
$('<tr class="' + (i == first ? 'first' : (i == last ? 'last' : '')) + (accessible ? '' : 'undisclosed') + '">')
.append('<td class="diff">' + (accessible && change.op != 'DELETE' ?
'<input type="radio" name="rev1" class="diff-rev1" value="' + change.rev + '" title="" '+ (i == last ? 'checked="checked"' : '') +' /> '+
'<input type="radio" name="rev2" class="diff-rev2" value="' + change.rev + '" title="" '+ (i == first ? 'checked="checked"' : '') +' /></td>'
: ''))
.append('<td class="revision">' + Q(change.rev) + '</td>')
.append('<td class="date">' + Q(change.date ? format_datetime(parseISO8601(change.date)) : '') + '</td>')
.append('<td class="user">' + Q(change.user || 'undisclosed') + '</td>')
.append('<td class="operation" title="' + op_append + '">' + Q(rcmail.gettext(op_labels[change.op] || '', 'calendar') + (op_append ? ' ...' : '')) + '</td>')
.append('<td class="actions">' + (accessible && change.op != 'DELETE' ? actions.replace(/\{rev\}/g, change.rev) : '') + '</td>')
.appendTo(tbody);
}
if (first > 0)
$('#eventhistory .compare-button').fadeIn(200);
data.module = 'calendar';
libkolab_audittrail.render_changelog(data, event, me.calendars[event.calendar]);
// set dialog size according to content
me.dialog_resize($dialog.get(0), $dialog.height(), 600);
@ -1276,7 +1178,7 @@ function rcube_calendar_ui(settings)
modal: false,
resizable: true,
closeOnEscape: true,
title: rcmail.gettext('eventdiff','calendar').replace('$rev', data.rev) + ' - ' + event.title,
title: rcmail.gettext('objectdiff','calendar').replace('$rev1', data.rev1).replace('$rev2', data.rev2) + ' - ' + event.title,
open: function() {
$dialog.attr('aria-hidden', 'false');
setTimeout(function(){
@ -1295,11 +1197,22 @@ function rcube_calendar_ui(settings)
me.dialog_resize($dialog.get(0), $dialog.height(), 400);
};
// close the event history dialog
var close_history_dialog = function()
{
$('#eventhistory, #eventdiff').each(function(i, elem) {
var $dialog = $(elem);
if ($dialog.is(':ui-dialog'))
$dialog.dialog('close');
});
}
// exports
this.event_show_diff = event_show_diff;
this.event_show_dialog = event_show_dialog;
this.event_history_dialog = event_history_dialog;
this.render_event_changelog = render_event_changelog;
this.close_history_dialog = close_history_dialog;
// open a dialog to display detailed free-busy information and to find free slots
var event_freebusy_dialog = function()
@ -4333,6 +4246,7 @@ window.rcmail && rcmail.addEventListener('init', function(evt) {
rcmail.addEventListener('plugin.resource_owner', function(p){ cal.resource_owner_load(p); });
rcmail.addEventListener('plugin.render_event_changelog', function(data){ cal.render_event_changelog(data); });
rcmail.addEventListener('plugin.event_show_diff', function(data){ cal.event_show_diff(data); });
rcmail.addEventListener('plugin.close_history_dialog', function(data){ cal.close_history_dialog(); });
rcmail.addEventListener('plugin.event_show_revision', function(data){ cal.event_show_dialog(data, null, true); });
rcmail.addEventListener('plugin.itip_message_processed', function(data){ cal.itip_message_processed(data); });
rcmail.addEventListener('requestrefresh', function(q){ return cal.before_refresh(q); });

View file

@ -2,7 +2,7 @@
"name": "kolab/calendar",
"type": "roundcube-plugin",
"description": "Calendar plugin",
"homepage": "http://git.kolab.org/roundcubemail-plugins-kolab/",
"homepage": "https://git.kolab.org/diffusion/RPK/",
"keywords": ["apps","calendar","ical","itip"],
"license": "AGPLv3",
"authors": [
@ -20,13 +20,13 @@
"repositories": [
{
"type": "composer",
"url": "http://plugins.roundcube.net"
"url": "https://plugins.roundcube.net"
}
],
"require": {
"php": ">=5.3.0",
"roundcube/plugin-installer": ">=0.1.3",
"kolab/libcalendaring": ">=3.2.0"
"kolab/libcalendaring": ">=3.2.9"
},
"extra": {
"roundcube": {

View file

@ -693,18 +693,19 @@ abstract class calendar_driver
// quick-and-dirty recurrence computation: just replace the year
$bday->setDate($year, $bday->format('n'), $bday->format('j'));
$bday->setTime(12, 0, 0);
$this_year = $year;
// date range reaches over multiple years: use end year if not in range
if (($bday > $end || $bday < $start) && $year2 != $year) {
$bday->setDate($year2, $bday->format('n'), $bday->format('j'));
$year = $year2;
$this_year = $year2;
}
// birthday is within requested range
if ($bday <= $end && $bday >= $start) {
$age = $year - $birthyear;
$age = $this_year - $birthyear;
$event = array(
'id' => rcube_ldap::dn_encode('bday:' . $source . ':' . $contact['ID'] . ':' . $year),
'id' => rcube_ldap::dn_encode('bday:' . $source . ':' . $contact['ID'] . ':' . $this_year),
'calendar' => self::BIRTHDAY_CALENDAR_ID,
'title' => $event_title,
'description' => $rcmail->gettext(array('name' => 'birthdayage', 'vars' => array('age' => $age)), 'calendar'),

View file

@ -1450,7 +1450,7 @@ class database_driver extends calendar_driver
}
// decode the old serialization format
else {
foreach (explode("\n", $event['attendees']) as $line) {
foreach (explode("\n", $s_attendees) as $line) {
$att = array();
foreach (rcube_utils::explode_quoted_string(';', $line) as $prop) {
list($key, $value) = explode("=", $prop);

View file

@ -251,14 +251,16 @@ class kolab_calendar extends kolab_storage_folder_api
public function list_events($start, $end, $search = null, $virtual = 1, $query = array(), $filter_query = null)
{
// convert to DateTime for comparisons
// #5190: make the range a little bit wider
// to workaround possible timezone differences
try {
$start = new DateTime('@'.$start);
$start = new DateTime('@' . ($start - 12 * 3600));
}
catch (Exception $e) {
$start = new DateTime('@0');
}
try {
$end = new DateTime('@'.$end);
$end = new DateTime('@' . ($end + 12 * 3600));
}
catch (Exception $e) {
$end = new DateTime('today +10 years');

View file

@ -71,8 +71,7 @@ class kolab_driver extends calendar_driver
}
// get configuration for the Bonnie API
if ($bonnie_config = $this->cal->rc->config->get('kolab_bonnie_api', false))
$this->bonnie_api = new kolab_bonnie_api($bonnie_config);
$this->bonnie_api = libkolab::get_bonnie_api();
// calendar uses fully encoded identifiers
kolab_storage::$encode_ids = true;
@ -294,10 +293,10 @@ class kolab_driver extends calendar_driver
'list' => $this->calendars,
'calendars' => $calendars,
'filter' => $filter,
'editable' => ($filter & self::FILTER_WRITEABLE),
'editable' => ($filter & self::FILTER_WRITEABLE),
'insert' => ($filter & self::FILTER_INSERTABLE),
'active' => ($filter & self::FILTER_ACTIVE),
'personal' => ($filter & self::FILTER_PERSONAL),
'personal' => ($filter & self::FILTER_PERSONAL)
));
if ($plugin['abort']) {
@ -317,6 +316,12 @@ class kolab_driver extends calendar_driver
if (($filter & self::FILTER_ACTIVE) && !$cal->is_active()) {
continue;
}
if (($filter & self::FILTER_PRIVATE) && $cal->subtype != 'private') {
continue;
}
if (($filter & self::FILTER_CONFIDENTIAL) && $cal->subtype != 'confidential') {
continue;
}
if (($filter & self::FILTER_PERSONAL) && $cal->get_namespace() != 'personal') {
continue;
}
@ -1620,7 +1625,13 @@ class kolab_driver extends calendar_driver
if (!($storage = $this->get_calendar($event['calendar'])))
return false;
$event = $storage->get_event($event['id']);
// get old revision of event
if ($event['rev']) {
$event = $this->get_event_revison($event, $event['rev'], true);
}
else {
$event = $storage->get_event($event['id']);
}
if ($event && !empty($event['_attachments'])) {
foreach ($event['_attachments'] as $att) {
@ -1642,6 +1653,29 @@ class kolab_driver extends calendar_driver
if (!($cal = $this->get_calendar($event['calendar'])))
return false;
// get old revision of event
if ($event['rev']) {
if (empty($this->bonnie_api)) {
return false;
}
$cid = substr($id, 4);
// call Bonnie API and get the raw mime message
list($uid, $mailbox, $msguid) = $this->_resolve_event_identity($event);
if ($msg_raw = $this->bonnie_api->rawdata('event', $uid, $event['rev'], $mailbox, $msguid)) {
// parse the message and find the part with the matching content-id
$message = rcube_mime::parse_message($msg_raw);
foreach ((array)$message->parts as $part) {
if ($part->headers['content-id'] && trim($part->headers['content-id'], '<>') == $cid) {
return $part->body;
}
}
}
return false;
}
return $cal->get_attachment_body($id, $event);
}
@ -2002,9 +2036,9 @@ class kolab_driver extends calendar_driver
return false;
}
list($uid, $mailbox) = $this->_resolve_event_identity($event);
list($uid, $mailbox, $msguid) = $this->_resolve_event_identity($event);
$result = $this->bonnie_api->changelog('event', $uid, $mailbox);
$result = $this->bonnie_api->changelog('event', $uid, $mailbox, $msguid);
if (is_array($result) && $result['uid'] == $uid) {
return $result['changes'];
}
@ -2016,23 +2050,28 @@ class kolab_driver extends calendar_driver
* Get a list of property changes beteen two revisions of an event
*
* @param array $event Hash array with event properties
* @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
* @see calendar_driver::get_event_diff()
*/
public function get_event_diff($event, $rev)
public function get_event_diff($event, $rev1, $rev2)
{
if (empty($this->bonnie_api)) {
return false;
}
list($uid, $mailbox) = $this->_resolve_event_identity($event);
list($uid, $mailbox, $msguid) = $this->_resolve_event_identity($event);
// get diff for the requested recurrence instance
$instance_id = $event['id'] != $uid ? substr($event['id'], strlen($uid) + 1) : null;
// call Bonnie API
$result = $this->bonnie_api->diff('event', $uid, $rev, $mailbox);
$result = $this->bonnie_api->diff('event', $uid, $rev1, $rev2, $mailbox, $msguid, $instance_id);
if (is_array($result) && $result['uid'] == $uid) {
$result['rev'] = $rev;
$result['rev1'] = $rev1;
$result['rev2'] = $rev2;
$keymap = array(
'dtstart' => 'start',
@ -2138,51 +2177,126 @@ class kolab_driver extends calendar_driver
* @return array Event object as hash array
* @see calendar_driver::get_event_revison()
*/
public function get_event_revison($event, $rev)
public function get_event_revison($event, $rev, $internal = false)
{
if (empty($this->bonnie_api)) {
return false;
}
$eventid = $event['id'];
$calid = $event['calendar'];
list($uid, $mailbox) = $this->_resolve_event_identity($event);
list($uid, $mailbox, $msguid) = $this->_resolve_event_identity($event);
// call Bonnie API
$result = $this->bonnie_api->get('event', $uid, $rev, $mailbox);
$result = $this->bonnie_api->get('event', $uid, $rev, $mailbox, $msguid);
if (is_array($result) && $result['uid'] == $uid && !empty($result['xml'])) {
$format = kolab_format::factory('event');
$format->load($result['xml']);
$event = $format->to_array();
$format->get_attachments($event, true);
// get the right instance from a recurring event
if ($eventid != $event['uid']) {
$instance_id = substr($eventid, strlen($event['uid']) + 1);
// check for recurrence exception first
if ($instance = $format->get_instance($instance_id)) {
$event = $instance;
}
else {
// not a exception, compute recurrence...
$event['_formatobj'] = $format;
$recurrence_date = rcube_utils::anytodatetime($instance_id, $event['start']->getTimezone());
foreach ($this->get_recurring_events($event, $event['start'], $recurrence_date) as $instance) {
if ($instance['id'] == $eventid) {
$event = $instance;
break;
}
}
}
}
if ($format->is_valid()) {
$event['calendar'] = $calid;
$event['rev'] = $result['rev'];
return self::to_rcube_event($event);
return $internal ? $event : self::to_rcube_event($event);
}
}
return false;
}
/**
* Command the backend to restore a certain revision of an event.
* This shall replace the current event with an older version.
*
* @param mixed UID string or hash array with event properties:
* id: Event identifier
* calendar: Calendar identifier
* @param mixed $rev Revision number
*
* @return boolean True on success, False on failure
*/
public function restore_event_revision($event, $rev)
{
if (empty($this->bonnie_api)) {
return false;
}
list($uid, $mailbox, $msguid) = $this->_resolve_event_identity($event);
$calendar = $this->get_calendar($event['calendar']);
$success = false;
if ($calendar && $calendar->storage && $calendar->editable) {
if ($raw_msg = $this->bonnie_api->rawdata('event', $uid, $rev, $mailbox)) {
$imap = $this->rc->get_storage();
// insert $raw_msg as new message
if ($imap->save_message($calendar->storage->name, $raw_msg, null, false)) {
$success = true;
// delete old revision from imap and cache
$imap->delete_message($msguid, $calendar->storage->name);
$calendar->storage->cache->set($msguid, false);
}
}
}
return $success;
}
/**
* Helper method to resolved the given event identifier into uid and folder
*
* @return array (uid,folder) tuple
* @return array (uid,folder,msguid) tuple
*/
private function _resolve_event_identity($event)
{
$mailbox = null;
$mailbox = $msguid = null;
if (is_array($event)) {
$uid = $event['id'] ?: $event['uid'];
$uid = $event['uid'] ?: $event['id'];
if (($cal = $this->get_calendar($event['calendar'])) && !($cal instanceof kolab_invitation_calendar)) {
$mailbox = $cal->get_mailbox_id();
// get event object from storage in order to get the real object uid an msguid
if ($ev = $cal->get_event($event['id'])) {
$msguid = $ev['_msguid'];
$uid = $ev['uid'];
}
}
}
else {
$uid = $event;
// get event object from storage in order to get the real object uid an msguid
if ($ev = $this->get_event($event)) {
$mailbox = $ev['_mailbox'];
$msguid = $ev['_msguid'];
$uid = $ev['uid'];
}
}
return array($uid, $mailbox);
return array($uid, $mailbox, $msguid);
}
/**

View file

@ -197,7 +197,7 @@ class kolab_invitation_calendar
{
// find the actual folder this event resides in
if (!empty($event['_folder_id'])) {
$cal = $this->cal->get_calendar($event['_folder_id']);
$cal = $this->cal->driver->get_calendar($event['_folder_id']);
}
else {
$cal = null;

View file

@ -96,7 +96,7 @@ class calendar_ui
$this->cal->register_handler('plugin.angenda_options', array($this, 'angenda_options'));
$this->cal->register_handler('plugin.events_import_form', array($this, 'events_import_form'));
$this->cal->register_handler('plugin.events_export_form', array($this, 'events_export_form'));
$this->cal->register_handler('plugin.event_changelog_table', array($this, 'event_changelog_table'));
$this->cal->register_handler('plugin.object_changelog_table', array('libkolab', 'object_changelog_table'));
$this->cal->register_handler('plugin.searchform', array($this->rc->output, 'search_form')); // use generic method from rcube_template
}
@ -121,6 +121,7 @@ class calendar_ui
// include kolab folderlist widget if available
if (in_array('libkolab', $this->cal->api->loaded_plugins())) {
$this->cal->api->include_script('libkolab/js/folderlist.js');
$this->cal->api->include_script('libkolab/js/audittrail.js');
}
jqueryui::miniColors();
@ -853,22 +854,6 @@ class calendar_ui
return $table->show($attrib);
}
/**
* Table oultine for event changelog display
*/
function event_changelog_table($attrib = array())
{
$table = new html_table(array('cols' => 5, 'border' => 0, 'cellspacing' => 0));
$table->add_header('diff', '');
$table->add_header('revision', $this->cal->gettext('revision'));
$table->add_header('date', $this->cal->gettext('date'));
$table->add_header('user', $this->cal->gettext('user'));
$table->add_header('operation', $this->cal->gettext('operation'));
$table->add_header('actions', '&nbsp;');
return $table->show($attrib);
}
/**
*
*/

View file

@ -8,7 +8,6 @@
*/
$labels['default_view'] = 'Изглед по подразбиране';
$labels['time_format'] = 'Формат на часовете';
$labels['timeslots'] = 'Time slots per hour';
$labels['first_day'] = 'Първи ден от седмицата';
$labels['first_hour'] = 'Първи час при показване';
$labels['workinghours'] = 'Работни часове';
@ -37,7 +36,6 @@ $labels['new_event'] = 'Добавяне на събитие';
$labels['edit_event'] = 'Промяна на събитие';
$labels['edit'] = 'Промяна';
$labels['save'] = 'Запис';
$labels['removelist'] = 'Remove from list';
$labels['cancel'] = 'Отказ';
$labels['select'] = 'Избиране';
$labels['print'] = 'Печат';
@ -48,15 +46,10 @@ $labels['all-day'] = 'цял ден';
$labels['export'] = 'Извличане';
$labels['exporttitle'] = 'Извличане към iCalendar';
$labels['exportrange'] = 'Събития от';
$labels['exportattachments'] = 'With attachments';
$labels['customdate'] = 'Custom date';
$labels['location'] = 'Местоположение';
$labels['url'] = 'URL';
$labels['date'] = 'Дата';
$labels['start'] = 'Начало';
$labels['starttime'] = 'Start time';
$labels['end'] = 'Край';
$labels['repeat'] = 'Repeat';
$labels['selectdate'] = 'Избор на дата';
$labels['freebusy'] = 'Показване като';
$labels['free'] = 'Свободно';
@ -64,26 +57,19 @@ $labels['busy'] = 'Заето';
$labels['outofoffice'] = 'Извън офиса';
$labels['tentative'] = 'Предварително';
$labels['status'] = 'Статус';
$labels['status-cancelled'] = 'Cancelled';
$labels['priority'] = 'Приоритет';
$labels['sensitivity'] = 'Частност';
$labels['public'] = 'публично';
$labels['private'] = 'частно';
$labels['confidential'] = 'конфиденциално';
$labels['links'] = 'Reference';
$labels['alarms'] = 'Напомняне';
$labels['comment'] = 'Comment';
$labels['created'] = 'Created';
$labels['changed'] = 'Last Modified';
$labels['unknown'] = 'Неизвестно';
$labels['generated'] = 'генерирано в';
$labels['removelink'] = 'Remove email reference';
$labels['printdescriptions'] = 'Печат на описанията';
$labels['parentcalendar'] = 'Внасяне вътре';
$labels['searchearlierdates'] = '« Търсене за по- стари събития';
$labels['searchlaterdates'] = 'Търсене за по- нови събития »';
$labels['andnmore'] = '$nr повече...';
$labels['togglerole'] = 'Click to toggle role';
$labels['createfrommail'] = 'Запазване като събитие';
$labels['importevents'] = 'Внасяне на събития';
$labels['importrange'] = 'Събития от';
@ -91,9 +77,6 @@ $labels['onemonthback'] = '1 месец назад';
$labels['nmonthsback'] = '$nr месеца назад';
$labels['showurl'] = 'Показване на URL на календара';
$labels['showurldescription'] = 'Използвайте следния адрес, за да достъпвате (само за четене) вашия календар от други приложения. Можете да копирате и поставяте това във всеки календарен софтуер, поддържащ форматът iCal';
$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['searchterms'] = 'Search terms';
$labels['calendarsubscribe'] = 'List permanently';
$labels['listrange'] = 'Оразмеряване към екран:';
$labels['listsections'] = 'Разделяне на:';
$labels['smartsections'] = 'Интелигентни секции';
@ -107,100 +90,33 @@ $labels['nextmonth'] = 'Следващия месец';
$labels['weekofyear'] = 'Седмица';
$labels['pastevents'] = 'Минали';
$labels['futureevents'] = 'Бъдещи';
$labels['showalarms'] = 'Show reminders';
$labels['defaultalarmtype'] = 'Настройка за напомняне по подразбиране';
$labels['defaultalarmoffset'] = 'Време за напомняне по подразбиране';
$labels['attendee'] = 'Участник';
$labels['role'] = 'Роля';
$labels['availability'] = 'Avail.';
$labels['confirmstate'] = 'Статус';
$labels['addattendee'] = 'Добавяне на участник';
$labels['roleorganizer'] = 'Организатор';
$labels['rolerequired'] = 'Задължителен';
$labels['roleoptional'] = 'По избор';
$labels['rolechair'] = 'Chair';
$labels['rolenonparticipant'] = 'Absent';
$labels['cutypeindividual'] = 'Individual';
$labels['cutypegroup'] = 'Group';
$labels['cutyperesource'] = 'Resource';
$labels['cutyperoom'] = 'Room';
$labels['availfree'] = 'Свободно';
$labels['availbusy'] = 'Заето';
$labels['availunknown'] = 'Неизвестно';
$labels['availtentative'] = 'Предварително';
$labels['availoutofoffice'] = 'Извън офиса';
$labels['delegatedto'] = 'Delegated to: ';
$labels['delegatedfrom'] = 'Delegated from: ';
$labels['scheduletime'] = 'Find availability';
$labels['sendinvitations'] = 'Изпращане на покани';
$labels['sendnotifications'] = 'Известяване на участниците относно промените';
$labels['sendcancellation'] = 'Известяване на участниците относно отмяна на събития';
$labels['onlyworkinghours'] = 'Find availability within my working hours';
$labels['reqallattendees'] = 'Required/all participants';
$labels['prevslot'] = 'Previous Slot';
$labels['nextslot'] = 'Next 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 canceled';
$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.";
$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['itipdeclineevent'] = 'Искате ли да отхвърлите поканата за това събитие?';
$labels['declinedeleteconfirm'] = 'Do you also want to delete this declined event from your calendar?';
$labels['itipcomment'] = 'Invitation/notification comment';
$labels['notanattendee'] = 'You\'re not listed as an attendee of this event';
$labels['eventcancelled'] = 'The event has been cancelled';
$labels['saveincalendar'] = 'запазване в';
$labels['resource'] = 'Resource';
$labels['resourcedetails'] = 'Details';
$labels['tabsummary'] = 'Заглавие';
$labels['tabrecurrence'] = 'Recurrence';
$labels['tabattendees'] = 'Участници';
$labels['tabattachments'] = 'Прикрепени файлове';
$labels['tabsharing'] = 'Споделяне';
$labels['deleteobjectconfirm'] = 'Наистина ли искате да премахнете това събитие?';
$labels['deleteventconfirm'] = 'Наистина ли искате да премахнете това събитие?';
$labels['deletecalendarconfirm'] = 'Наистина ли искате да премахнете този календар с всичките му събития?';
$labels['deletecalendarconfirmrecursive'] = 'Do you really want to delete this calendar with all its events and sub-calendars?';
$labels['savingdata'] = 'Запазване на данни...';
$labels['errorsaving'] = 'Неуспешно записването на промените.';
$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['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['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['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['currentevent'] = 'Current';
$labels['futurevents'] = 'Бъдещи';
$labels['allevents'] = 'All';
$labels['saveasnew'] = 'Save as new';
$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';
?>

View file

@ -239,21 +239,11 @@ $labels['displaybirthdayscalendar'] = 'Mostra el calendari d\'aniversaris';
$labels['birthdayscalendarsources'] = 'D\'aquestes llibretes d\'adreces';
$labels['birthdayeventtitle'] = 'Aniversari de $name';
$labels['birthdayage'] = 'Edat $age';
$labels['eventchangelog'] = 'Canvia historial';
$labels['eventdiff'] = 'Canvis de revisions $rev';
$labels['revision'] = 'Revisió';
$labels['user'] = 'Usuari';
$labels['operation'] = 'Acció';
$labels['actionappend'] = 'Desat';
$labels['actionmove'] = 'Mogut';
$labels['actiondelete'] = 'Suprimit';
$labels['compare'] = 'Compara';
$labels['showrevision'] = 'Mostra aquesta versió';
$labels['restore'] = 'Restaura aquesta versió';
$labels['eventnotfound'] = 'No s\'han pogut carregar les dades d\'aquest esdeveniment';
$labels['eventchangelognotavailable'] = 'No està disponible canviar l\'historial d\'aquest esdeveniment';
$labels['eventdiffnotavailable'] = 'No és possible comparar les revisions seleccionades';
$labels['eventrestoreconfirm'] = 'Esteu segurs de voler restaurar la revisió $rev d\'aquest esdeveniment? Això substituirà l\'actual esdeveniment per una versió antiga.';
$labels['objectchangelog'] = 'Canvia historial';
$labels['objectnotfound'] = 'No s\'han pogut carregar les dades d\'aquest esdeveniment';
$labels['objectchangelognotavailable'] = 'No està disponible canviar l\'historial d\'aquest esdeveniment';
$labels['objectdiffnotavailable'] = 'No és possible comparar les revisions seleccionades';
$labels['revisionrestoreconfirm'] = 'Esteu segurs de voler restaurar la revisió $rev d\'aquest esdeveniment? Això substituirà l\'actual esdeveniment per una versió antiga.';
$labels['arialabelminical'] = 'Selecció de la data del calendari';
$labels['arialabelcalendarview'] = 'Vista del calendari';
$labels['arialabelsearchform'] = 'Formulari per cercar esdeveniments';

View file

@ -246,21 +246,11 @@ $labels['displaybirthdayscalendar'] = 'Zobrazit kalendář narozenin';
$labels['birthdayscalendarsources'] = 'Z těchto adresářů';
$labels['birthdayeventtitle'] = 'Narozeniny $name';
$labels['birthdayage'] = 'Věk $age';
$labels['eventchangelog'] = 'Historie změn';
$labels['eventdiff'] = 'Změny od verze $rev';
$labels['revision'] = 'Verze';
$labels['user'] = 'Uživatel';
$labels['operation'] = 'Činnost';
$labels['actionappend'] = 'Uloženo';
$labels['actionmove'] = 'Přesunuto';
$labels['actiondelete'] = 'Smazáno';
$labels['compare'] = 'Porovnat';
$labels['showrevision'] = 'Ukázat tuto verzi';
$labels['restore'] = 'Obnovit tuto verzi';
$labels['eventnotfound'] = 'Nepodařilo se nahrát data události';
$labels['eventchangelognotavailable'] = 'Historie změn není pro tuto událost dostupná';
$labels['eventdiffnotavailable'] = 'Pro vybrané verze není žádné srovnání možné';
$labels['eventrestoreconfirm'] = 'Opravdu chcete obnovit změnu $rev této události? Tímto dojde k nahrazení nynější události starou verzí.';
$labels['objectchangelog'] = 'Historie změn';
$labels['objectnotfound'] = 'Nepodařilo se nahrát data události';
$labels['objectchangelognotavailable'] = 'Historie změn není pro tuto událost dostupná';
$labels['objectdiffnotavailable'] = 'Pro vybrané verze není žádné srovnání možné';
$labels['revisionrestoreconfirm'] = 'Opravdu chcete obnovit změnu $rev této události? Tímto dojde k nahrazení nynější události starou verzí.';
$labels['arialabelminical'] = 'Výběr data v kalendáři';
$labels['arialabelcalendarview'] = 'Pohled na kalendář';
$labels['arialabelsearchform'] = 'Hledání události';

View file

@ -8,6 +8,7 @@
*/
$labels['default_view'] = 'Standardvisning';
$labels['time_format'] = 'Tidsformat';
$labels['timeslots'] = 'Tidsblokke per time';
$labels['first_day'] = 'Første ugedag';
$labels['first_hour'] = 'Første time som vises';
$labels['workinghours'] = 'Arbejdstider';
@ -19,6 +20,13 @@ $labels['coloringmode0'] = 'Ifølge kalender';
$labels['coloringmode1'] = 'Ifølge kategori';
$labels['coloringmode2'] = 'Kalender til oversigt, kategori til indhold';
$labels['coloringmode3'] = 'Kategori til oversigt, kalender til indhold';
$labels['afternothing'] = 'Undlad at gøre noget';
$labels['aftertrash'] = 'Flyt til papirkurv';
$labels['afterdelete'] = 'Slet beskeden';
$labels['afterflagdeleted'] = 'Markér som slettet';
$labels['aftermoveto'] = 'Flyt til ...';
$labels['itipoptions'] = 'Begivenhedsinvitationer';
$labels['afteraction'] = 'Efter en invitation eller opdateringsbesked er behandlet';
$labels['calendar'] = 'Kalender';
$labels['calendars'] = 'Kalendere';
$labels['category'] = 'Kategori';
@ -55,6 +63,7 @@ $labels['date'] = 'Dato';
$labels['start'] = 'Start';
$labels['starttime'] = 'Start time';
$labels['end'] = 'Slut';
$labels['endtime'] = 'Sluttidspunkt';
$labels['repeat'] = 'Gentag';
$labels['selectdate'] = 'Vælg dato';
$labels['freebusy'] = 'Vis mig som';
@ -62,6 +71,7 @@ $labels['free'] = 'Ledig';
$labels['busy'] = 'Optaget';
$labels['outofoffice'] = 'Ikke på kontoret';
$labels['tentative'] = 'Forsøgsvis';
$labels['mystatus'] = 'Min status';
$labels['status'] = 'Status';
$labels['status-confirmed'] = 'Bekræftet';
$labels['status-cancelled'] = 'Annulleret';
@ -78,6 +88,7 @@ $labels['changed'] = 'Last Modified';
$labels['unknown'] = 'Ukendt';
$labels['eventoptions'] = 'Tilvalg';
$labels['generated'] = 'oprettet per';
$labels['eventhistory'] = 'Historik';
$labels['removelink'] = 'Remove email reference';
$labels['printdescriptions'] = 'Udskriv beskrivelser';
$labels['parentcalendar'] = 'Indsæt indeni';
@ -93,8 +104,17 @@ $labels['nmonthsback'] = '$nr måneder tilbage';
$labels['showurl'] = 'Vis kalenderens URL';
$labels['showurldescription'] = 'Brug følgende adresse for at tilgå din kalender (skrivebeskyttet) fra andre programmer. Du kan kopiere og indsætet denne i ethvert kalenderprogram, der understøtter iCal-formatet.';
$labels['caldavurldescription'] = 'Kopiér denne adresse til en <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a>-klientprogram (eks. Evolution eller Mozilla Thunderbird) for at synkronisere denne kalender komplet med din computer eller mobilenhed.';
$labels['findcalendars'] = 'Find kalendere ...';
$labels['searchterms'] = 'Search terms';
$labels['calsearchresults'] = 'Tilgængelige kalendere';
$labels['calendarsubscribe'] = 'List permanently';
$labels['nocalendarsfound'] = 'Der blev ikke fundet nogen kalender';
$labels['nrcalendarsfound'] = '$nr kalendere blev fundet';
$labels['quickview'] = 'Vis kun denne kalender';
$labels['invitationspending'] = 'Afventende invitationer';
$labels['invitationsdeclined'] = 'Afviste invitationer';
$labels['changepartstat'] = 'Skift deltagerstatus';
$labels['rsvpcomment'] = 'Invitationstekst';
$labels['listrange'] = 'Interval som skal vises:';
$labels['listsections'] = 'Del op i:';
$labels['smartsections'] = 'Smarte sektioner';
@ -103,6 +123,7 @@ $labels['today'] = 'I dag';
$labels['tomorrow'] = 'I morgen';
$labels['thisweek'] = 'Denne uge';
$labels['nextweek'] = 'Næste uge';
$labels['prevweek'] = 'Forrige uge';
$labels['thismonth'] = 'Denne måned';
$labels['nextmonth'] = 'Næste måned';
$labels['weekofyear'] = 'Uge';
@ -120,6 +141,7 @@ $labels['roleorganizer'] = 'Organisator';
$labels['rolerequired'] = 'Påkrævet';
$labels['roleoptional'] = 'Valgfri';
$labels['rolechair'] = 'Formand';
$labels['rolenonparticipant'] = 'Fraværende';
$labels['cutypeindividual'] = 'Individuel';
$labels['cutypegroup'] = 'Gruppe';
$labels['cutyperesource'] = 'Ressource';
@ -139,6 +161,7 @@ $labels['onlyworkinghours'] = 'Find ledigt tidspunkt inden for mine arbejdstider
$labels['reqallattendees'] = 'Påkrævet/alle deltagere';
$labels['prevslot'] = 'Forrige blok';
$labels['nextslot'] = 'Næste blok';
$labels['suggestedslot'] = 'Foreslået blok';
$labels['noslotfound'] = 'Kunne ikke finde en ledig tidsblok';
$labels['invitationsubject'] = 'Du er blevet inviteret til "$title"';
$labels['invitationmailbody'] = "*\$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.";
@ -148,17 +171,32 @@ $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 aflyst';
$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.";
$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';
$labels['updatemycopy'] = 'Opdatér i min kalender';
$labels['savetocalendar'] = 'Gem til kalender';
$labels['openpreview'] = 'Tjek kalender';
$labels['noearlierevents'] = 'Ingen tidligere begivenheder';
$labels['nolaterevents'] = 'Ingen senere begivenheder';
$labels['resource'] = 'Ressource';
$labels['addresource'] = 'Booking af ressource';
$labels['findresources'] = 'Find ressourcer';
$labels['resourcedetails'] = 'Detaljer';
$labels['resourceavailability'] = 'Tilgængelighed';
$labels['resourceowner'] = 'Ejer';
$labels['resourceadded'] = 'Ressourcen til føjet til din begivenhed';
$labels['tabsummary'] = 'Resumé';
$labels['tabrecurrence'] = 'Gentagelse';
$labels['tabattendees'] = 'Deltagere';
@ -179,9 +217,11 @@ $labels['successremoval'] = 'Sletning af arrangementet blev gennemført.';
$labels['successrestore'] = 'Gendannelse af arrangementet blev gennemført.';
$labels['errornotifying'] = 'Kunne ikke sende notifikation til arrangementets deltagere';
$labels['errorimportingevent'] = 'Kunne ikke importere arrangementet';
$labels['importwarningexists'] = 'En kopi af denne begivenhed findes allerede i din kalender.';
$labels['newerversionexists'] = 'Der findes allerede en nyere version af arrangementet! Afbrød.';
$labels['nowritecalendarfound'] = 'Ingen funden kalender til lagring af arrangementet';
$labels['importedsuccessfully'] = 'Arrangementet blev tilføjet til \'$calendar\'';
$labels['updatedsuccessfully'] = 'Opdatering af begivenheden blev gennemført i "$calendar"';
$labels['attendeupdateesuccess'] = 'Opdatering af deltagernes status blev gennemført';
$labels['itipsendsuccess'] = 'Invitation blev sendt til deltagerne.';
$labels['itipresponseerror'] = 'Kunne ikke sende svar til denne arrangementsinvitation';
@ -193,12 +233,36 @@ $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?';
$labels['removerecurringeventwarning'] = 'Dette er en tilbagevendende begivenhed. Ønsker du kun at fjerne den aktuelle begivenhed, denne og alle fremtidige forekomster for denne begivenhed?';
$labels['removerecurringallonly'] = 'Dette er en tilbagevendende begivenhed. Som deltager kan du slette kun slette hele begivenheden med alle dens forekomster.';
$labels['currentevent'] = 'Nuværende';
$labels['futurevents'] = 'Fremtid';
$labels['allevents'] = 'Alle';
$labels['saveasnew'] = 'Gem som ny';
$labels['user'] = 'Bruger';
$labels['actiondelete'] = 'Slettet';
$labels['compare'] = 'Sammenlign';
$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';
$labels['objectchangelog'] = 'Ændringshistorik';
$labels['objectdiff'] = 'Ændringer fra $rev1 til $rev2';
$labels['objectnotfound'] = 'Kunne ikke indlæse begivenhedsdata';
$labels['objectchangelognotavailable'] = 'Ændringshistorikken er ikke tilgængelig for denne begivenhed';
$labels['objectdiffnotavailable'] = 'Det er ikke muligt at sammenligne de valgte revisioner';
$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';
$labels['arialabelminical'] = 'Valg af kalenderdato';
$labels['arialabelcalendarview'] = 'Kalendervisning';
$labels['arialabelsearchform'] = 'Søgeformular for begivenheder';
$labels['arialabelquicksearchbox'] = 'Søgeinput for begivenhed';
$labels['arialabelcalsearchform'] = 'Søgeformular for kalendere';
$labels['calendaractions'] = 'Kalenderhandlinger';
$labels['arialabeleventattendees'] = 'Deltagerliste for begivenhed';
$labels['arialabeleventresources'] = 'Ressourceliste for begivenhed';
$labels['arialabelresourcesearchform'] = 'Søgeformular for ressourcer';
$labels['arialabelresourceselection'] = 'Tilgængelige ressourcer';
?>

View file

@ -6,20 +6,27 @@
*
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
*/
$labels['default_view'] = 'Ansicht';
$labels['default_view'] = 'Standardansicht';
$labels['time_format'] = 'Zeitformatierung';
$labels['timeslots'] = 'Time slots per hour';
$labels['timeslots'] = 'Abschnitte pro Stunde';
$labels['first_day'] = 'Erster Wochentag';
$labels['first_hour'] = 'Erste angezeigte Stunde';
$labels['workinghours'] = 'Arbeitszeiten';
$labels['add_category'] = 'Katgorie hinzufügen';
$labels['remove_category'] = 'Katgorie entfernen';
$labels['add_category'] = 'Kategorie hinzufügen';
$labels['remove_category'] = 'Kategorie entfernen';
$labels['defaultcalendar'] = 'Neue Termine erstellen in';
$labels['eventcoloring'] = 'Färbung der Termine';
$labels['coloringmode0'] = 'Farbe des Kalenders';
$labels['coloringmode1'] = 'Farbe der Kategorie';
$labels['coloringmode2'] = 'Kalenderfarbe aussen, Kategoriefarbe innen';
$labels['coloringmode3'] = 'Kategoriefarbe aussen, Kalenderfarbe innen';
$labels['afternothing'] = 'nichts unternehmen';
$labels['aftertrash'] = 'In den Papierkorb verschieben';
$labels['afterdelete'] = 'Nachricht löschen';
$labels['afterflagdeleted'] = 'Als gelöscht markieren';
$labels['aftermoveto'] = 'Verschiebe nach...';
$labels['itipoptions'] = 'Termineinladungen';
$labels['afteraction'] = 'Nachdem eine Einladungs- oder Update-Nachricht verarbetet wurde';
$labels['calendar'] = 'Kalender';
$labels['calendars'] = 'Kalender';
$labels['category'] = 'Kategorie';
@ -37,7 +44,7 @@ $labels['new_event'] = 'Neuer Termin';
$labels['edit_event'] = 'Termin bearbeiten';
$labels['edit'] = 'Bearbeiten';
$labels['save'] = 'Speichern';
$labels['removelist'] = 'Remove from list';
$labels['removelist'] = 'Aus der Liste entfernen';
$labels['cancel'] = 'Abbrechen';
$labels['select'] = 'Auswählen';
$labels['print'] = 'Drucken';
@ -48,13 +55,15 @@ $labels['all-day'] = 'ganztägig';
$labels['export'] = 'Exportieren';
$labels['exporttitle'] = 'Kalender als iCalendar exportieren';
$labels['exportrange'] = 'Termine ab';
$labels['exportattachments'] = 'With attachments';
$labels['customdate'] = 'Custom date';
$labels['exportattachments'] = 'Mit Anhängen';
$labels['customdate'] = 'Spezifisches Datum';
$labels['location'] = 'Ort';
$labels['url'] = 'URL';
$labels['date'] = 'Datum';
$labels['start'] = 'Beginn';
$labels['starttime'] = 'Startzeit';
$labels['end'] = 'Ende';
$labels['endtime'] = 'Endzeit';
$labels['repeat'] = 'Wiederholung';
$labels['selectdate'] = 'Datum auswählen';
$labels['freebusy'] = 'Zeige mich als';
@ -62,6 +71,7 @@ $labels['free'] = 'Frei';
$labels['busy'] = 'Gebucht';
$labels['outofoffice'] = 'Abwesend';
$labels['tentative'] = 'Mit Vorbehalt';
$labels['mystatus'] = 'Mein Status';
$labels['status'] = 'Status';
$labels['status-confirmed'] = 'Bestätigt';
$labels['status-cancelled'] = 'Gekündigt';
@ -70,10 +80,16 @@ $labels['sensitivity'] = 'Sichtbarkeit';
$labels['public'] = 'öffentlich';
$labels['private'] = 'privat';
$labels['confidential'] = 'vertraulich';
$labels['links'] = 'Referenz';
$labels['alarms'] = 'Erinnerung';
$labels['comment'] = 'Kommentar';
$labels['created'] = 'Erstellt';
$labels['changed'] = 'Geändert';
$labels['unknown'] = 'Unbekannt';
$labels['eventoptions'] = 'Optionen';
$labels['generated'] = 'erstellt am';
$labels['eventhistory'] = 'Verlauf';
$labels['removelink'] = 'E-Mail-Referenz entfernen';
$labels['printdescriptions'] = 'Beschrieb drucken';
$labels['parentcalendar'] = 'Erstellen in';
$labels['searchearlierdates'] = '« Frühere Termine suchen';
@ -87,9 +103,18 @@ $labels['onemonthback'] = '1 Monat zurück';
$labels['nmonthsback'] = '$nr Monate zurück';
$labels['showurl'] = 'URL anzeigen';
$labels['showurldescription'] = 'Über die folgende Adresse können Sie mit einem beliebigen Kalenderprogramm Ihren Kalender abrufen (nur lesend), sofern dieses das iCal-Format unterstützt.';
$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['searchterms'] = 'Search terms';
$labels['calendarsubscribe'] = 'List permanently';
$labels['caldavurldescription'] = 'Diese Adresse in einen <a href="http://de.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a>-Klienten (z.B. Evolution oder Mozilla Thunderbird) kopieren, um den Kalender mit Ihrem Computer oder einem mobilen Gerät zu synchronisieren.';
$labels['findcalendars'] = 'Kalender finden...';
$labels['searchterms'] = 'Suchbegriffe';
$labels['calsearchresults'] = 'Verfügbare Kalender';
$labels['calendarsubscribe'] = 'Permanent anzeigen';
$labels['nocalendarsfound'] = 'Keine Kalender gefunden';
$labels['nrcalendarsfound'] = '$nr Kalender gefunden';
$labels['quickview'] = 'Nur diesen Kalender anzeigen';
$labels['invitationspending'] = 'Pendente Einladungen';
$labels['invitationsdeclined'] = 'Abgelehnte Einladungen';
$labels['changepartstat'] = 'Teilnehmerstatus ändern';
$labels['rsvpcomment'] = 'Einladungstext';
$labels['listrange'] = 'Angezeigter Bereich:';
$labels['listsections'] = 'Unterteilung:';
$labels['smartsections'] = 'Intelligent';
@ -98,12 +123,13 @@ $labels['today'] = 'Heute';
$labels['tomorrow'] = 'Morgen';
$labels['thisweek'] = 'Diese Woche';
$labels['nextweek'] = 'Nächste Woche';
$labels['prevweek'] = 'Vorige Woche';
$labels['thismonth'] = 'Diesen Monat';
$labels['nextmonth'] = 'Nächsten Monat';
$labels['weekofyear'] = 'KW';
$labels['pastevents'] = 'Vergangene';
$labels['futureevents'] = 'Zukünftige';
$labels['showalarms'] = 'Show reminders';
$labels['showalarms'] = 'Erinnerungen anzeigen';
$labels['defaultalarmtype'] = 'Standard-Erinnerungseinstellung';
$labels['defaultalarmoffset'] = 'Standard-Erinnerungszeit';
$labels['attendee'] = 'Teilnehmer';
@ -114,17 +140,19 @@ $labels['addattendee'] = 'Hinzufügen';
$labels['roleorganizer'] = 'Organisator';
$labels['rolerequired'] = 'Erforderlich';
$labels['roleoptional'] = 'Optional';
$labels['rolechair'] = 'Chair';
$labels['rolenonparticipant'] = 'Absent';
$labels['cutypeindividual'] = 'Individual';
$labels['cutypegroup'] = 'Group';
$labels['rolechair'] = 'Vorsitz';
$labels['rolenonparticipant'] = 'Abwesend';
$labels['cutypeindividual'] = 'Person';
$labels['cutypegroup'] = 'Gruppe';
$labels['cutyperesource'] = 'Ressource';
$labels['cutyperoom'] = 'Room';
$labels['cutyperoom'] = 'Raum';
$labels['availfree'] = 'Frei';
$labels['availbusy'] = 'Gebucht';
$labels['availunknown'] = 'Unbekannt';
$labels['availtentative'] = 'Mit Vorbehalt';
$labels['availoutofoffice'] = 'Abwesend';
$labels['delegatedto'] = 'Delegiert an:';
$labels['delegatedfrom'] = 'Delegiert von:';
$labels['scheduletime'] = 'Verfügbarkeit anzeigen';
$labels['sendinvitations'] = 'Einladungen versenden';
$labels['sendnotifications'] = 'Teilnehmer über die Änderungen informieren';
@ -133,6 +161,7 @@ $labels['onlyworkinghours'] = 'Verfügbarkeit innerhalb meiner Arbeitszeiten suc
$labels['reqallattendees'] = 'Erforderliche/alle Teilnehmer';
$labels['prevslot'] = 'Vorheriger Vorschlag';
$labels['nextslot'] = 'Nächster Vorschlag';
$labels['suggestedslot'] = 'Empfohlener Terminplatz';
$labels['noslotfound'] = 'Es konnten keine freien Zeiten gefunden werden';
$labels['invitationsubject'] = 'Sie wurden zu "$title" eingeladen';
$labels['invitationmailbody'] = "*\$title*\n\nWann: \$date\n\nTeilnehmer: \$attendees\n\nIm Anhang finden Sie eine iCalendar-Datei mit allen Details des Termins. Diese können Sie in Ihre Kalenderanwendung importieren.";
@ -142,25 +171,42 @@ $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.";
$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\nam: \$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\nWhen: \$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';
$labels['eventcancelled'] = 'Der Termin wurde vom Organisator abgesagt';
$labels['saveincalendar'] = 'speichern in';
$labels['updatemycopy'] = 'In meinem Kalender aktualisieren';
$labels['savetocalendar'] = 'In Kalender übernehmen';
$labels['openpreview'] = 'Kalender überprüfen';
$labels['noearlierevents'] = 'Keine früheren Ereignisse';
$labels['nolaterevents'] = 'Keine späteren Ereignisse';
$labels['resource'] = 'Ressource';
$labels['addresource'] = 'Ressource buchen';
$labels['findresources'] = 'Ressourcen finden';
$labels['resourcedetails'] = 'Details';
$labels['resourceavailability'] = 'Verfügbarkeit';
$labels['resourceowner'] = 'Eigentümer';
$labels['resourceadded'] = 'Diese Ressource wurde Ihrem Termin hinzugefügt';
$labels['tabsummary'] = 'Übersicht';
$labels['tabrecurrence'] = 'Wiederholung';
$labels['tabattendees'] = 'Teilnehmer';
$labels['tabresources'] = 'Ressourcen';
$labels['tabattachments'] = 'Anhänge';
$labels['tabsharing'] = 'Freigabe';
$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?';
$labels['deletecalendarconfirmrecursive'] = 'Do you really want to delete this calendar with all its events and sub-calendars?';
$labels['deletecalendarconfirmrecursive'] = 'Möchten Sie diesen Kalender mit allen Terminen und Unterkalendern wirklich löschen?';
$labels['savingdata'] = 'Speichere Daten...';
$labels['errorsaving'] = 'Fehler beim Speichern.';
$labels['operationfailed'] = 'Die Aktion ist fehlgeschlagen.';
@ -171,21 +217,26 @@ $labels['successremoval'] = 'Der Termin wurde erfolgreich gelöscht.';
$labels['successrestore'] = 'Der Termin wurde erfolgreich wieder hergestellt.';
$labels['errornotifying'] = 'Benachrichtigung an die Teilnehmer konnten nicht gesendet werden';
$labels['errorimportingevent'] = 'Fehler beim Importieren';
$labels['importwarningexists'] = 'Eine Kopie dieses Termins existiert bereits in Ihrem Kalender.';
$labels['newerversionexists'] = 'Eine neuere Version dieses Termins exisitert bereits! Import abgebrochen.';
$labels['nowritecalendarfound'] = 'Kein Kalender zum Speichern gefunden';
$labels['importedsuccessfully'] = 'Der Termin wurde erfolgreich in \'$calendar\' gespeichert';
$labels['updatedsuccessfully'] = 'Der Termin wurde erfolgreich in \'$calendar\' geändert';
$labels['attendeupdateesuccess'] = 'Teilnehmerstatus erfolgreich aktualisiert';
$labels['itipsendsuccess'] = 'Einladung an Teilnehmer versendet.';
$labels['itipresponseerror'] = 'Die Antwort auf diese Einladung konnte nicht versendet werden';
$labels['itipinvalidrequest'] = 'Diese Einladung ist nicht mehr gültig';
$labels['sentresponseto'] = 'Antwort auf diese Einladung erfolgreich an $mailto gesendet';
$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['localchangeswarning'] = 'Die auszuführenden Änderungen werden sich nur auf den persönlichen Kalender auswirken und nicht an den Organisator des Termins weitergeleitet.';
$labels['importsuccess'] = 'Es wurden $nr Termine erfolgreich importiert';
$labels['importnone'] = 'Keine Termine zum Importieren gefunden';
$labels['importerror'] = 'Fehler beim Importieren';
$labels['aclnorights'] = 'Sie haben keine Administrator-Rechte für diesen Kalender.';
$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?';
$labels['removerecurringeventwarning'] = 'Dies ist ein wiederkehrender Termin. Möchten Sie nur den aktuellen, diesen und alle zukünftige Vorkommen oder die gesamte Terminreihe löschen?';
$labels['removerecurringallonly'] = 'Dieses ist ein wiederkehrender Termin. Als ein Teilnehmer können Sie nur die gesamte Terminreihe inklusive aller Wiederholungen löschen.';
$labels['currentevent'] = 'Aktuellen';
$labels['futurevents'] = 'Zukünftige';
$labels['allevents'] = 'Alle';
@ -196,5 +247,22 @@ $labels['displaybirthdayscalendar'] = 'Geburtstags-Kalender anzeigen';
$labels['birthdayscalendarsources'] = 'Für diese Adressbücher';
$labels['birthdayeventtitle'] = '$names Geburtstag';
$labels['birthdayage'] = 'Alter $age';
$labels['actiondelete'] = 'Gelöscht';
$labels['objectchangelog'] = 'Änderungsverlauf';
$labels['objectdiff'] = 'Änderungen aus $rev1 nach $rev2';
$labels['objectnotfound'] = 'Termindaten konnten nicht geladen werden';
$labels['objectchangelognotavailable'] = 'Änderungsverlauf für diesen Termin ist nicht verfügbar';
$labels['objectdiffnotavailable'] = 'Vergleich für die gewählten Versionen nicht möglich';
$labels['revisionrestoreconfirm'] = 'Wollen Sie wirklich die Version $rev dieses Termins wiederherstellen? Diese Aktion wird die aktuelle Kopie mit der älteren Version überschreiben.';
$labels['objectrestoresuccess'] = 'Version $rev erfolgreich wiederhergestellt';
$labels['objectrestoreerror'] = 'Fehler beim Wiederherstellen der alten Version';
$labels['arialabelminical'] = 'Kalender Datumswahl';
$labels['arialabelcalendarview'] = 'Kalender Ansicht';
$labels['arialabelsearchform'] = 'Suchformular für Termine';
$labels['arialabelquicksearchbox'] = 'Sucheingabe für Termine';
$labels['arialabelcalsearchform'] = 'Suchformular für Kalender';
$labels['calendaractions'] = 'Kalenderaktionen';
$labels['arialabeleventattendees'] = 'Teilehmerliste';
$labels['arialabeleventresources'] = 'Liste der Terminressourcen';
$labels['arialabelresourcesearchform'] = 'Suchformular für Ressourcen';
$labels['arialabelresourceselection'] = 'Verfügbare Ressourcen';
?>

View file

@ -8,7 +8,6 @@
*/
$labels['default_view'] = 'Standardansicht';
$labels['time_format'] = 'Zeitformatierung';
$labels['timeslots'] = 'Time slots per hour';
$labels['first_day'] = 'Erster Wochentag';
$labels['first_hour'] = 'Erste angezeigte Stunde';
$labels['workinghours'] = 'Arbeitszeiten';
@ -129,7 +128,7 @@ $labels['nextmonth'] = 'Nächsten Monat';
$labels['weekofyear'] = 'Woche';
$labels['pastevents'] = 'Vergangene';
$labels['futureevents'] = 'Zukünftige';
$labels['showalarms'] = 'Show reminders';
$labels['showalarms'] = 'Erinnerungen anzeigen';
$labels['defaultalarmtype'] = 'Standard-Erinnerungseinstellung';
$labels['defaultalarmoffset'] = 'Standard-Erinnerungszeit';
$labels['attendee'] = 'Teilnehmer';
@ -141,7 +140,7 @@ $labels['roleorganizer'] = 'Organisator';
$labels['rolerequired'] = 'Erforderlich';
$labels['roleoptional'] = 'Optional';
$labels['rolechair'] = 'Vorsitz';
$labels['rolenonparticipant'] = 'Absent';
$labels['rolenonparticipant'] = 'Abwesend';
$labels['cutypeindividual'] = 'Person';
$labels['cutypegroup'] = 'Gruppe';
$labels['cutyperesource'] = 'Ressource';
@ -171,11 +170,11 @@ $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.";
$labels['itipobjectnotfound'] = 'Der Termin auf den sich diese Nachricht bezieht, wurde in Deinem Kalnder nicht gefunden.';
$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 Deine Teilnahme bei der folgenden Veranstaltung zurückgewiesen:\n\n*\$title*\n\nam: \$date";
$labels['itipmailbodycancel'] = "\$sender hat Ihre Teilnahme bei der folgenden Veranstaltung zurückgewiesen:\n\n*\$title*\n\nam: \$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\nWhen: \$date";
$labels['itipdeclineevent'] = 'Möchten Sie die Einladung zu diesem Termin ablehnen?';
@ -185,7 +184,7 @@ $labels['itipcommenttitle'] = 'Dieser Kommentar wird an die Einladungs-/Benachri
$labels['notanattendee'] = 'Sie sind nicht in der Liste der Teilnehmer aufgeführt';
$labels['eventcancelled'] = 'Der Termin wurde vom Organisator abgesagt';
$labels['saveincalendar'] = 'speichern in';
$labels['updatemycopy'] = 'In meinen Kalender updaten';
$labels['updatemycopy'] = 'In meinem Kalender aktualisieren';
$labels['savetocalendar'] = 'In Kalender übernehmen';
$labels['openpreview'] = 'Kalender überprüfen';
$labels['noearlierevents'] = 'Keine früheren Ereignisse';
@ -196,7 +195,7 @@ $labels['findresources'] = 'Ressourcen finden';
$labels['resourcedetails'] = 'Details';
$labels['resourceavailability'] = 'Verfügbarkeit';
$labels['resourceowner'] = 'Eigentümer';
$labels['resourceadded'] = 'Diese Ressource wurde Deinem Ereignis hinzugefügt';
$labels['resourceadded'] = 'Diese Ressource wurde Ihrem Termin hinzugefügt';
$labels['tabsummary'] = 'Übersicht';
$labels['tabrecurrence'] = 'Wiederholung';
$labels['tabattendees'] = 'Teilnehmer';
@ -217,7 +216,7 @@ $labels['successremoval'] = 'Der Termin wurde erfolgreich gelöscht.';
$labels['successrestore'] = 'Der Termin wurde erfolgreich wieder hergestellt.';
$labels['errornotifying'] = 'Benachrichtigung an die Teilnehmer konnten nicht gesendet werden';
$labels['errorimportingevent'] = 'Fehler beim Importieren';
$labels['importwarningexists'] = 'Eine Kopie dieses Termins exisitert bereits in Deinem Kalender.';
$labels['importwarningexists'] = 'Eine Kopie dieses Termins existiert bereits in Ihrem Kalender.';
$labels['newerversionexists'] = 'Eine neuere Version dieses Termins exisitert bereits! Import abgebrochen.';
$labels['nowritecalendarfound'] = 'Kein Kalender zum Speichern gefunden';
$labels['importedsuccessfully'] = 'Der Termin wurde erfolgreich in \'$calendar\' gespeichert';
@ -233,7 +232,7 @@ $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'] = 'Ereignis löschen';
$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?';
$labels['removerecurringeventwarning'] = 'Dies ist ein wiederkehrender Termin. Wollen Sie nur diesen Termin bearbeiten oder alle zukünftigen Vorkommen? Alternativ können auch alle Vorkommen bearbeitet werden.';
$labels['removerecurringallonly'] = 'Dieses ist ein wiederkehrender Termin. Als ein Teilnehmer können Sie nur den gesamten Termin inklusive aller Wiederholungen löschen.';
@ -247,21 +246,14 @@ $labels['displaybirthdayscalendar'] = 'Geburtstags-Kalender anzeigen';
$labels['birthdayscalendarsources'] = 'Für diese Adressbücher';
$labels['birthdayeventtitle'] = '$names Geburtstag';
$labels['birthdayage'] = 'Alter $age';
$labels['eventchangelog'] = 'Änderungshistorie';
$labels['eventdiff'] = 'Änderungen aus den Versionen $rev';
$labels['revision'] = 'Version';
$labels['user'] = 'Benutzer';
$labels['operation'] = 'Aktion';
$labels['actionappend'] = 'Gespeichert';
$labels['actionmove'] = 'Verschoben';
$labels['actiondelete'] = 'Gelöscht';
$labels['compare'] = 'Vergleichen';
$labels['showrevision'] = 'Diese Version anzeigen';
$labels['restore'] = 'Diese Version wiederherstellen';
$labels['eventnotfound'] = 'Termindaten sind leider nicht vergübar';
$labels['eventchangelognotavailable'] = 'Änderungshistorie ist nicht verfügbar für diesen Termin';
$labels['eventdiffnotavailable'] = 'Vergleich für die gewählten Versionen nicht möglich';
$labels['eventrestoreconfirm'] = 'Wollen Sie wirklich die Version $rev dieses Termins wiederherstellen? Diese Aktion wird die aktuelle Kopie mit der älteren Version ersetzen.';
$labels['objectchangelog'] = 'Änderungshistorie';
$labels['objectdiff'] = 'Änderungen aus $rev1 nach $rev2';
$labels['objectnotfound'] = 'Termindaten sind leider nicht vergübar';
$labels['objectchangelognotavailable'] = 'Änderungshistorie ist nicht verfügbar für diesen Termin';
$labels['objectdiffnotavailable'] = 'Vergleich für die gewählten Versionen nicht möglich';
$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';
$labels['arialabelminical'] = 'Kalender Datumswahl';
$labels['arialabelcalendarview'] = 'Kalender Ansicht';
$labels['arialabelsearchform'] = 'Suchformular für Termine';

View file

@ -276,21 +276,14 @@ $labels['birthdayeventtitle'] = '$name\'s Birthday';
$labels['birthdayage'] = 'Age $age';
// history dialog
$labels['eventchangelog'] = 'Change History';
$labels['eventdiff'] = 'Changes from revisions $rev';
$labels['revision'] = 'Revision';
$labels['user'] = 'User';
$labels['operation'] = 'Action';
$labels['actionappend'] = 'Saved';
$labels['actionmove'] = 'Moved';
$labels['actiondelete'] = 'Deleted';
$labels['compare'] = 'Compare';
$labels['showrevision'] = 'Show this version';
$labels['restore'] = 'Restore this version';
$labels['eventnotfound'] = 'Failed to load event data';
$labels['eventchangelognotavailable'] = 'Change history is not available for this event';
$labels['eventdiffnotavailable'] = 'No comparison possible for the selected revisions';
$labels['eventrestoreconfirm'] = 'Do you really want to restore revision $rev of this event? This will replace the current event with the old version.';
$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

View file

@ -242,21 +242,11 @@ $labels['displaybirthdayscalendar'] = 'Mostrar calendario de cumpleaños';
$labels['birthdayscalendarsources'] = 'De estas libretas de direcciones';
$labels['birthdayeventtitle'] = 'Cumpleaños de $name';
$labels['birthdayage'] = 'Edad $age';
$labels['eventchangelog'] = 'Cambiar Historial';
$labels['eventdiff'] = 'Cambios de revisiones $rev';
$labels['revision'] = 'Revisión';
$labels['user'] = 'Usuario';
$labels['operation'] = 'Acción';
$labels['actionappend'] = 'Guardado';
$labels['actionmove'] = 'Movido';
$labels['actiondelete'] = 'Eliminado';
$labels['compare'] = 'Comparar';
$labels['showrevision'] = 'Mostrar esta versión';
$labels['restore'] = 'Recuperar esta versión';
$labels['eventnotfound'] = 'Fallo al cargar datos del evento';
$labels['eventchangelognotavailable'] = 'Cambiar historial no esta disponible para este evento';
$labels['eventdiffnotavailable'] = 'No es posible comparar las revisiones seleccionadas';
$labels['eventrestoreconfirm'] = 'Confirme que quiere recuperar la revisión $rev de este evento. Esta acción reemplazará el evento actual con la versión anterior.';
$labels['objectchangelog'] = 'Cambiar Historial';
$labels['objectnotfound'] = 'Fallo al cargar datos del evento';
$labels['objectchangelognotavailable'] = 'Cambiar historial no esta disponible para este evento';
$labels['objectdiffnotavailable'] = 'No es posible comparar las revisiones seleccionadas';
$labels['revisionrestoreconfirm'] = 'Confirme que quiere recuperar la revisión $rev de este evento. Esta acción reemplazará el evento actual con la versión anterior.';
$labels['arialabelminical'] = 'Selección de fecha del calendario';
$labels['arialabelcalendarview'] = 'Vista del calendario';
$labels['arialabelsearchform'] = 'Formulario de búsqueda de evento';

View file

@ -6,205 +6,19 @@
*
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
*/
$labels['default_view'] = 'Default view';
$labels['time_format'] = 'Time format';
$labels['timeslots'] = 'Time slots per hour';
$labels['first_day'] = 'First weekday';
$labels['first_hour'] = 'First hour to show';
$labels['workinghours'] = 'Working hours';
$labels['add_category'] = 'Add category';
$labels['remove_category'] = 'Remove category';
$labels['defaultcalendar'] = 'Create new events in';
$labels['eventcoloring'] = 'Event coloring';
$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['calendar'] = 'Calendar';
$labels['calendars'] = 'Calendarios';
$labels['category'] = 'Category';
$labels['categories'] = 'Categories';
$labels['createcalendar'] = 'Create new calendar';
$labels['editcalendar'] = 'Edit calendar properties';
$labels['name'] = 'Nombre';
$labels['color'] = 'Color';
$labels['day'] = 'Day';
$labels['week'] = 'Week';
$labels['month'] = 'Month';
$labels['agenda'] = 'Agenda';
$labels['new'] = 'New';
$labels['new_event'] = 'New event';
$labels['edit_event'] = 'Edit event';
$labels['edit'] = 'Editar';
$labels['save'] = 'Guardar';
$labels['removelist'] = 'Remove from list';
$labels['cancel'] = 'Cancelar';
$labels['select'] = 'Select';
$labels['print'] = 'Print';
$labels['printtitle'] = 'Print calendars';
$labels['title'] = 'Summary';
$labels['description'] = 'Descripción';
$labels['all-day'] = 'all-day';
$labels['export'] = 'Export';
$labels['exporttitle'] = 'Export to iCalendar';
$labels['exportrange'] = 'Events from';
$labels['exportattachments'] = 'With attachments';
$labels['customdate'] = 'Custom date';
$labels['location'] = 'Location';
$labels['url'] = 'URL';
$labels['date'] = 'Date';
$labels['start'] = 'Start';
$labels['starttime'] = 'Start time';
$labels['end'] = 'End';
$labels['repeat'] = 'Repeat';
$labels['selectdate'] = 'Choose date';
$labels['freebusy'] = 'Show me as';
$labels['free'] = 'Free';
$labels['busy'] = 'Busy';
$labels['outofoffice'] = 'Out of Office';
$labels['tentative'] = 'Tentative';
$labels['status'] = 'Status';
$labels['status-cancelled'] = 'Cancelled';
$labels['priority'] = 'Priority';
$labels['sensitivity'] = 'Privacy';
$labels['public'] = 'public';
$labels['private'] = 'private';
$labels['confidential'] = 'confidential';
$labels['links'] = 'Reference';
$labels['alarms'] = 'Reminder';
$labels['comment'] = 'Comentario';
$labels['created'] = 'Created';
$labels['changed'] = 'Last Modified';
$labels['unknown'] = 'Unknown';
$labels['eventoptions'] = 'Opciones';
$labels['generated'] = 'generated at';
$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'] = 'Events from';
$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['searchterms'] = 'Search terms';
$labels['calendarsubscribe'] = 'List permanently';
$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['thismonth'] = 'This month';
$labels['nextmonth'] = 'Next month';
$labels['weekofyear'] = 'Week';
$labels['pastevents'] = 'Past';
$labels['futureevents'] = 'Future';
$labels['showalarms'] = 'Show reminders';
$labels['defaultalarmtype'] = 'Default reminder setting';
$labels['defaultalarmoffset'] = 'Default reminder time';
$labels['attendee'] = 'Participant';
$labels['role'] = 'Rol';
$labels['availability'] = 'Avail.';
$labels['confirmstate'] = 'Status';
$labels['addattendee'] = 'Add participant';
$labels['roleorganizer'] = 'Organizer';
$labels['rolerequired'] = 'Requerido';
$labels['roleoptional'] = 'Opcional';
$labels['rolechair'] = 'Chair';
$labels['rolenonparticipant'] = 'Absent';
$labels['cutypeindividual'] = 'Individual';
$labels['cutypegroup'] = 'Grupo';
$labels['cutyperesource'] = 'Recurso';
$labels['cutyperoom'] = 'Room';
$labels['availfree'] = 'Free';
$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';
$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['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 canceled';
$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.";
$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['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['notanattendee'] = 'You\'re not listed as an attendee of this event';
$labels['eventcancelled'] = 'The event has been cancelled';
$labels['saveincalendar'] = 'save in';
$labels['resource'] = 'Recurso';
$labels['resourcedetails'] = 'Detalles';
$labels['tabsummary'] = 'Summary';
$labels['tabrecurrence'] = 'Recurrence';
$labels['tabattendees'] = 'Participants';
$labels['tabresources'] = 'Recursos';
$labels['tabattachments'] = 'Attachments';
$labels['tabsharing'] = 'Sharing';
$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'] = 'Guardando datos...';
$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['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['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['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['currentevent'] = 'Current';
$labels['futurevents'] = 'Future';
$labels['allevents'] = 'All';
$labels['saveasnew'] = 'Save as new';
$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';
$labels['user'] = 'Usuario';
$labels['operation'] = 'Acción';
?>

View file

@ -89,6 +89,7 @@ $labels['generated'] = 'generoitu';
$labels['eventhistory'] = 'Historia';
$labels['removelink'] = 'Poista sähköpostiviittaus';
$labels['printdescriptions'] = 'Tulosta kuvaukset';
$labels['parentcalendar'] = 'Aseta sisään';
$labels['searchearlierdates'] = '« Etsi aiempia tapahtumia';
$labels['searchlaterdates'] = 'Etsi myöhempiä tapahtumia »';
$labels['andnmore'] = '$nr lisää...';
@ -181,6 +182,7 @@ $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';
$labels['updatemycopy'] = 'Päivitä kalenterini';
$labels['savetocalendar'] = 'Tallenna kalenteriin';
$labels['openpreview'] = 'Tarkista kalenteri';
@ -243,21 +245,14 @@ $labels['displaybirthdayscalendar'] = 'Näytä syntymäpäivät kalenterissa';
$labels['birthdayscalendarsources'] = 'Näistä osoitekirjoista';
$labels['birthdayeventtitle'] = 'Syntymäpäivä: $name';
$labels['birthdayage'] = 'Ikä $age';
$labels['eventchangelog'] = 'Muuta historiaa';
$labels['eventdiff'] = 'Muutokset versiosta $rev';
$labels['revision'] = 'Versio';
$labels['user'] = 'Käyttäjä';
$labels['operation'] = 'Toiminto';
$labels['actionappend'] = 'Tallennettu';
$labels['actionmove'] = 'Siirretty';
$labels['actiondelete'] = 'Poistettu';
$labels['compare'] = 'Vertaa';
$labels['showrevision'] = 'Näytä tämä versio';
$labels['restore'] = 'Palauta tämä versio';
$labels['eventnotfound'] = 'Tapahtumadatan lataus epäonnistui';
$labels['eventchangelognotavailable'] = 'Tapahtuman muutoshistoria ei ole saatavilla';
$labels['eventdiffnotavailable'] = 'Vertailu ei ole saatavilla valittujen versioiden välillä';
$labels['eventrestoreconfirm'] = 'Haluatko varmasti palauttaa tämän tapahtuman version $rev? Nykyinen tapahtuma korvataan vanhalla versiolla.';
$labels['objectchangelog'] = 'Muutoshistoria';
$labels['objectdiff'] = 'Muutokset versiosta $rev1 versioon $rev2';
$labels['objectnotfound'] = 'Tapahtuman tietojen lataaminen epäonnistui';
$labels['objectchangelognotavailable'] = 'Tapahtuman muutoshistoria ei ole saatavilla';
$labels['objectdiffnotavailable'] = 'Valituille versioille ei ole mahdollista tehdä vertailua';
$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';
$labels['arialabelminical'] = 'Kalenterin ajankohdan valinta';
$labels['arialabelcalendarview'] = 'Kalenterinäkymä';
$labels['arialabelsearchform'] = 'Tapahtumahaun lomake';

View file

@ -244,21 +244,11 @@ $labels['displaybirthdayscalendar'] = 'Afficher le calendrier des anniversaires'
$labels['birthdayscalendarsources'] = 'Depuis ces carnets d\'adresses';
$labels['birthdayeventtitle'] = 'Anniversaire de $name';
$labels['birthdayage'] = 'Age $age';
$labels['eventchangelog'] = 'Historique des modifications';
$labels['eventdiff'] = 'Modifications pour le version $rev';
$labels['revision'] = 'Version';
$labels['user'] = 'Utilisateur';
$labels['operation'] = 'Action';
$labels['actionappend'] = 'Sauvegardé';
$labels['actionmove'] = 'Déplacé';
$labels['actiondelete'] = 'Supprimé';
$labels['compare'] = 'Comparer';
$labels['showrevision'] = 'Afficher cette version';
$labels['restore'] = 'Restaurer cette version';
$labels['eventnotfound'] = 'Impossible de charger les données de lévènement';
$labels['eventchangelognotavailable'] = 'Il n\'y a pas d\'historique des modifications pour cet évènement';
$labels['eventdiffnotavailable'] = 'La comparaison des versions sélectionnées est impossible';
$labels['eventrestoreconfirm'] = 'Voulez-vous vraiment restaurer le version $rev de cet évènement ? Cette action va remplacer l\'évènement courent par l\'ancienne version.';
$labels['objectchangelog'] = 'Historique des modifications';
$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 courent par l\'ancienne version.';
$labels['arialabelminical'] = 'Sélection de la date du calendrier';
$labels['arialabelcalendarview'] = 'Vue du calendrier';
$labels['arialabelsearchform'] = 'Recherche d\'évènements depuis';

View file

@ -213,5 +213,4 @@ $labels['displaybirthdayscalendar'] = 'Születésnapok megjelenítése';
$labels['birthdayscalendarsources'] = 'Alábbi címjegyzékekből:';
$labels['birthdayeventtitle'] = '$name születésnapja';
$labels['birthdayage'] = '$age éves';
$labels['actiondelete'] = 'Deleted';
?>

View file

@ -246,21 +246,11 @@ $labels['displaybirthdayscalendar'] = 'Mostra il calendario compleanni';
$labels['birthdayscalendarsources'] = 'Da queste rubriche';
$labels['birthdayeventtitle'] = 'Compleanno di $name';
$labels['birthdayage'] = 'Età: $age anni';
$labels['eventchangelog'] = 'Storico modifiche';
$labels['eventdiff'] = 'Cambiamenti dalle revisioni $rev';
$labels['revision'] = 'Revisione';
$labels['user'] = 'Utente';
$labels['operation'] = 'Azione';
$labels['actionappend'] = 'Salvato';
$labels['actionmove'] = 'Spostato';
$labels['actiondelete'] = 'Cancellato';
$labels['compare'] = 'Confronta';
$labels['showrevision'] = 'Mostra questa versione';
$labels['restore'] = 'Rirpistina questa versione';
$labels['eventnotfound'] = 'Caricamento dati dell\'evento fallito';
$labels['eventchangelognotavailable'] = 'Lo storico modifiche non è disponibile per questo evento';
$labels['eventdiffnotavailable'] = 'Nessun confronto possibile tra le revisioni selezionate';
$labels['eventrestoreconfirm'] = 'Vuoi veramente ripristinare la revisione $rev di questo evento? L\'evento corrente verrà sostituito dalla vecchia versione.';
$labels['objectchangelog'] = 'Storico modifiche';
$labels['objectnotfound'] = 'Caricamento dati dell\'evento fallito';
$labels['objectchangelognotavailable'] = 'Lo storico modifiche non è disponibile per questo evento';
$labels['objectdiffnotavailable'] = 'Nessun confronto possibile tra le revisioni selezionate';
$labels['revisionrestoreconfirm'] = 'Vuoi veramente ripristinare la revisione $rev di questo evento? L\'evento corrente verrà sostituito dalla vecchia versione.';
$labels['arialabelminical'] = 'Selezione della data del calendario';
$labels['arialabelcalendarview'] = 'Vista calendario';
$labels['arialabelsearchform'] = 'Modulo ricerca evento';

View file

@ -8,7 +8,6 @@
*/
$labels['default_view'] = 'デフォルトビュー';
$labels['time_format'] = '時刻表示形式';
$labels['timeslots'] = 'Time slots per hour';
$labels['first_day'] = '最初の平日';
$labels['first_hour'] = '最初の時間を表示';
$labels['workinghours'] = '労働時間';
@ -37,7 +36,7 @@ $labels['new_event'] = '新規イベント';
$labels['edit_event'] = 'イベント編集';
$labels['edit'] = '編集';
$labels['save'] = '保存';
$labels['removelist'] = 'Remove from list';
$labels['removelist'] = 'リストから削除';
$labels['cancel'] = 'キャンセル';
$labels['select'] = '選択';
$labels['print'] = '印刷';
@ -48,13 +47,11 @@ $labels['all-day'] = '全日';
$labels['export'] = 'エクスポート';
$labels['exporttitle'] = 'iカレンダーへエクスポート';
$labels['exportrange'] = 'イベント元';
$labels['exportattachments'] = 'With attachments';
$labels['customdate'] = 'Custom date';
$labels['location'] = '場所';
$labels['url'] = 'URL';
$labels['date'] = '期日';
$labels['start'] = '開始';
$labels['starttime'] = 'Start time';
$labels['starttime'] = '開始時間';
$labels['end'] = '終了';
$labels['repeat'] = '繰返し';
$labels['selectdate'] = '日付選択';
@ -64,21 +61,21 @@ $labels['busy'] = 'ビジー';
$labels['outofoffice'] = '外出';
$labels['tentative'] = '仮';
$labels['status'] = '状態';
$labels['status-cancelled'] = 'Cancelled';
$labels['status-cancelled'] = 'キャンセル済';
$labels['priority'] = '優先度';
$labels['sensitivity'] = 'プライバシー';
$labels['public'] = 'パブリック';
$labels['private'] = 'プライベート';
$labels['confidential'] = '親展';
$labels['links'] = 'Reference';
$labels['links'] = '参照';
$labels['alarms'] = '通知';
$labels['comment'] = 'Comment';
$labels['created'] = 'Created';
$labels['changed'] = 'Last Modified';
$labels['created'] = '作成済';
$labels['changed'] = '最終変更';
$labels['unknown'] = '不明';
$labels['eventoptions'] = 'オプション';
$labels['generated'] = '生成';
$labels['removelink'] = 'Remove email reference';
$labels['eventhistory'] = '履歴';
$labels['removelink'] = 'Eメール引用文の削除';
$labels['printdescriptions'] = '説明印刷';
$labels['parentcalendar'] = '内に挿入';
$labels['searchearlierdates'] = '<< 以前のイベントを検索';
@ -92,9 +89,8 @@ $labels['onemonthback'] = '1 ヶ月戻る';
$labels['nmonthsback'] = '$nr ヶ月戻る';
$labels['showurl'] = 'カレンダーURL表示';
$labels['showurldescription'] = '以下のアドレスを使用して他のアプリケーションからカレンダーにアクセス(読込のみ)できます。iCal形式をサポートしたカレンダーソフトウェアへコピーアンドペーストができます。';
$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['searchterms'] = 'Search terms';
$labels['calendarsubscribe'] = 'List permanently';
$labels['searchterms'] = '用語検索';
$labels['calendarsubscribe'] = '持続的なもののリスト';
$labels['listrange'] = '表示範囲:';
$labels['listsections'] = '分割:';
$labels['smartsections'] = 'スマートセクション';
@ -108,7 +104,7 @@ $labels['nextmonth'] = '来月';
$labels['weekofyear'] = '週';
$labels['pastevents'] = '以前';
$labels['futureevents'] = '以降';
$labels['showalarms'] = 'Show reminders';
$labels['showalarms'] = 'リマインド表示';
$labels['defaultalarmtype'] = 'デフォルト通知設定';
$labels['defaultalarmoffset'] = 'デフォルト通知時間';
$labels['attendee'] = '参加者';
@ -119,19 +115,14 @@ $labels['addattendee'] = '参加者追加';
$labels['roleorganizer'] = '編成者';
$labels['rolerequired'] = '要件';
$labels['roleoptional'] = 'オプション';
$labels['rolechair'] = 'Chair';
$labels['rolenonparticipant'] = 'Absent';
$labels['cutypeindividual'] = 'Individual';
$labels['rolechair'] = '議長';
$labels['cutypegroup'] = 'グループ';
$labels['cutyperesource'] = 'リソース';
$labels['cutyperoom'] = 'Room';
$labels['availfree'] = '空';
$labels['availbusy'] = 'ビジー';
$labels['availunknown'] = '不明';
$labels['availtentative'] = '仮';
$labels['availoutofoffice'] = '外出';
$labels['delegatedto'] = 'Delegated to: ';
$labels['delegatedfrom'] = 'Delegated from: ';
$labels['scheduletime'] = '利用可検索';
$labels['sendinvitations'] = '招待を送る';
$labels['sendnotifications'] = '変更を参加者へ通知する';
@ -153,8 +144,6 @@ $labels['itipmailbodyaccepted'] = "\$sender は以下のイベントへの招待
$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['itipdeclineevent'] = 'このイベントへの招待を辞退しますか?';
$labels['declinedeleteconfirm'] = 'Do you also want to delete this declined event from your calendar?';
$labels['itipcomment'] = 'Invitation/notification comment';
$labels['notanattendee'] = 'このイベントの出席者として一覧にありません';
$labels['eventcancelled'] = 'このイベントはキャンセルされました';
$labels['saveincalendar'] = '保存';
@ -169,7 +158,6 @@ $labels['tabsharing'] = '共有';
$labels['deleteobjectconfirm'] = '本当にこのイベントを削除しますか?';
$labels['deleteventconfirm'] = '本当にこのイベントを削除しますか?';
$labels['deletecalendarconfirm'] = '本当にこのカレンダーを全イベントとともに削除しますか?';
$labels['deletecalendarconfirmrecursive'] = 'Do you really want to delete this calendar with all its events and sub-calendars?';
$labels['savingdata'] = 'データを保存中…';
$labels['errorsaving'] = '変更が保存できませんでした。';
$labels['operationfailed'] = '要求された操作ができませんでした。';
@ -188,7 +176,6 @@ $labels['itipsendsuccess'] = '出席者へ招待を送信しました。';
$labels['itipresponseerror'] = 'この招待の返信できませんでした';
$labels['itipinvalidrequest'] = 'この招待は間もなく無効になります';
$labels['sentresponseto'] = '$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'] = '$nr イベントをインポートしました';
$labels['importnone'] = 'インポートされたイベントはありません';
$labels['importerror'] = 'インポート中にエラーが発生しました。';
@ -199,11 +186,9 @@ $labels['currentevent'] = '現在';
$labels['futurevents'] = '今後';
$labels['allevents'] = '全て';
$labels['saveasnew'] = '新規保存';
$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';
$labels['user'] = 'ユーザ';
$labels['objectchangelog'] = '変更履歴';
$labels['objectdiff'] = '$rev1 から $rev2 への変更';
$labels['objectdiffnotavailable'] = '選択されたリビジョンでは比較できません';
$labels['objectrestoresuccess'] = 'リビジョン $rev は復旧されました';
$labels['objectrestoreerror'] = '古いバージョンの復旧に失敗しました';
?>

View file

@ -20,6 +20,10 @@ $labels['coloringmode0'] = 'Volgens kalender';
$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['category'] = 'Categorie';
@ -37,7 +41,6 @@ $labels['new_event'] = 'Nieuwe afspraak';
$labels['edit_event'] = 'Wijzig afspraak';
$labels['edit'] = 'Wijzig';
$labels['save'] = 'Bewaar';
$labels['removelist'] = 'Remove from list';
$labels['cancel'] = 'Terug';
$labels['select'] = 'Selecteer';
$labels['print'] = 'Afdrukken';
@ -56,6 +59,7 @@ $labels['date'] = 'Datum';
$labels['start'] = 'Begin';
$labels['starttime'] = 'Start time';
$labels['end'] = 'Eind';
$labels['endtime'] = 'Eindtijd';
$labels['repeat'] = 'Herhaal';
$labels['selectdate'] = 'Kies datum';
$labels['freebusy'] = 'Toon mij als';
@ -71,15 +75,12 @@ $labels['sensitivity'] = 'Zichtbaarheid';
$labels['public'] = 'publiek';
$labels['private'] = 'prive';
$labels['confidential'] = 'vertrouwelijk';
$labels['links'] = 'Reference';
$labels['alarms'] = 'Herinnering';
$labels['comment'] = 'Opmerking';
$labels['created'] = 'Created';
$labels['changed'] = 'Last Modified';
$labels['unknown'] = 'Onbekend';
$labels['eventoptions'] = 'Opties';
$labels['generated'] = 'gegenereerd op';
$labels['removelink'] = 'Remove email reference';
$labels['eventhistory'] = 'Geschiedenis';
$labels['printdescriptions'] = 'Print beschrijvingen';
$labels['parentcalendar'] = 'Voeg toe in';
$labels['searchearlierdates'] = '« Zoek voor eerdere afspraken';
@ -98,6 +99,7 @@ $labels['findcalendars'] = 'Vind agenda\'s...';
$labels['searchterms'] = 'Search terms';
$labels['calsearchresults'] = 'Beschikbare agenda\'s';
$labels['calendarsubscribe'] = 'Permanent weergeven';
$labels['invitationsdeclined'] = 'Afgewezen uitnodigingen';
$labels['listrange'] = 'Bereik om te tonen:';
$labels['listsections'] = 'Verdeel in:';
$labels['smartsections'] = 'Slimme secties';
@ -219,6 +221,4 @@ $labels['displaybirthdayscalendar'] = 'Toon verjaardagskalender';
$labels['birthdayscalendarsources'] = 'Uit deze adresboeken';
$labels['birthdayeventtitle'] = 'verjaardag van $name';
$labels['birthdayage'] = 'Leeftijd $age';
$labels['user'] = 'Gebruiker';
$labels['compare'] = 'Vergelijken';
?>

View file

@ -8,7 +8,7 @@
*/
$labels['default_view'] = 'Domyślny widok';
$labels['time_format'] = 'Format czasu';
$labels['timeslots'] = 'Time slots per hour';
$labels['timeslots'] = 'Przedziały czasowe w ciągu godziny';
$labels['first_day'] = 'Pierwszy dzień tygodnia';
$labels['first_hour'] = 'Pierwsza godzina';
$labels['workinghours'] = 'Godziny robocze';
@ -89,7 +89,7 @@ $labels['unknown'] = 'Nieznany';
$labels['eventoptions'] = 'Opcje';
$labels['generated'] = 'wygenerowano';
$labels['eventhistory'] = 'Historia';
$labels['removelink'] = 'Remove email reference';
$labels['removelink'] = 'Usuń odnośnik e-mail';
$labels['printdescriptions'] = 'Drukuj opisy';
$labels['parentcalendar'] = 'Wstaw wewnątrz';
$labels['searchearlierdates'] = '« Szukaj wcześniejszych zdarzeń';
@ -245,21 +245,11 @@ $labels['displaybirthdayscalendar'] = 'Wyświetl kalendarz urodzin';
$labels['birthdayscalendarsources'] = 'Z tych książek adresowych';
$labels['birthdayeventtitle'] = 'Urodziny $name\'s';
$labels['birthdayage'] = 'Wiek $age';
$labels['eventchangelog'] = 'Historia zmian';
$labels['eventdiff'] = 'Zmiany od wersji $rev';
$labels['revision'] = 'Wersja';
$labels['user'] = 'Użytkownik';
$labels['operation'] = 'Akcja';
$labels['actionappend'] = 'Zapisane';
$labels['actionmove'] = 'Przeniesione';
$labels['actiondelete'] = 'Usunięte';
$labels['compare'] = 'Porównaj';
$labels['showrevision'] = 'Pokaż tą wersję';
$labels['restore'] = 'Przywróć tą wersję';
$labels['eventnotfound'] = 'Nie udało się wczytać zdarzenia';
$labels['eventchangelognotavailable'] = 'Historia zmian jest niedostępna dla tego zdarzenia';
$labels['eventdiffnotavailable'] = 'Nie można porównać wybranych wersji';
$labels['eventrestoreconfirm'] = 'Czy na pewno chcesz przywrócić wersję $rev tego zdarzenia? Bierzące zdarzenie zostanie zastąpione starszą wersją.';
$labels['objectchangelog'] = 'Historia zmian';
$labels['objectnotfound'] = 'Nie udało się wczytać zdarzenia';
$labels['objectchangelognotavailable'] = 'Historia zmian jest niedostępna dla tego zdarzenia';
$labels['objectdiffnotavailable'] = 'Nie można porównać wybranych wersji';
$labels['revisionrestoreconfirm'] = 'Czy na pewno chcesz przywrócić wersję $rev tego zdarzenia? Bierzące zdarzenie zostanie zastąpione starszą wersją.';
$labels['arialabelminical'] = 'Wybór daty kalendarza';
$labels['arialabelcalendarview'] = 'Podgląd kalendarza';
$labels['arialabelsearchform'] = 'Formularz wyszukiwania zdarzeń';

View file

@ -37,7 +37,6 @@ $labels['new_event'] = 'Novo evento';
$labels['edit_event'] = 'Editar evento';
$labels['edit'] = 'Editar';
$labels['save'] = 'Gravar';
$labels['removelist'] = 'Remove from list';
$labels['cancel'] = 'Cancelar';
$labels['select'] = 'Selecionar';
$labels['print'] = 'Imprimir';
@ -54,7 +53,6 @@ $labels['location'] = 'Local';
$labels['url'] = 'URL';
$labels['date'] = 'Data';
$labels['start'] = 'Início';
$labels['starttime'] = 'Start time';
$labels['end'] = 'Término';
$labels['repeat'] = 'Repetir';
$labels['selectdate'] = 'Escolha a data';
@ -75,11 +73,9 @@ $labels['links'] = 'Reference';
$labels['alarms'] = 'Lembrete';
$labels['comment'] = 'Comentário';
$labels['created'] = 'Created';
$labels['changed'] = 'Last Modified';
$labels['unknown'] = 'Desconhecido';
$labels['eventoptions'] = 'Opções';
$labels['generated'] = 'gerado em';
$labels['removelink'] = 'Remove email reference';
$labels['printdescriptions'] = 'Descrições de impressão';
$labels['parentcalendar'] = 'Inserir dentro';
$labels['searchearlierdates'] = '« Procurar por eventos anteriores';
@ -111,7 +107,6 @@ $labels['nextmonth'] = 'Próximo mês';
$labels['weekofyear'] = 'Semana';
$labels['pastevents'] = 'Passado';
$labels['futureevents'] = 'Futuro';
$labels['showalarms'] = 'Show reminders';
$labels['defaultalarmtype'] = 'Configuração de lembrete padrão';
$labels['defaultalarmoffset'] = 'Horário padrão de lembrete';
$labels['attendee'] = 'Participante';
@ -122,12 +117,8 @@ $labels['addattendee'] = 'Adicionar participante';
$labels['roleorganizer'] = 'Organizador';
$labels['rolerequired'] = 'Obrigatório';
$labels['roleoptional'] = 'Opcional';
$labels['rolechair'] = 'Chair';
$labels['rolenonparticipant'] = 'Absent';
$labels['cutypeindividual'] = 'Individual';
$labels['cutypegroup'] = 'Grupo';
$labels['cutyperesource'] = 'Recurso';
$labels['cutyperoom'] = 'Room';
$labels['availfree'] = 'Disponível';
$labels['availbusy'] = 'Ocupado';
$labels['availunknown'] = 'Desconhecido';
@ -219,6 +210,4 @@ $labels['displaybirthdayscalendar'] = 'Display birthdays calendar';
$labels['birthdayscalendarsources'] = 'From these address books';
$labels['birthdayeventtitle'] = '$name\'s Birthday';
$labels['birthdayage'] = 'Age $age';
$labels['user'] = 'Usuário';
$labels['actiondelete'] = 'Deletado';
?>

View file

@ -247,8 +247,7 @@ $labels['displaybirthdayscalendar'] = 'Mostrar calendário de aniversários';
$labels['birthdayscalendarsources'] = 'From these address books';
$labels['birthdayeventtitle'] = 'Aniversário de $name';
$labels['birthdayage'] = 'Idade $age';
$labels['eventchangelog'] = 'Alterar histórico';
$labels['eventdiff'] = 'Changes from revisions $rev';
$labels['objectchangelog'] = 'Alterar histórico';
$labels['revision'] = 'Revisão';
$labels['user'] = 'Utilizador';
$labels['operation'] = 'Ação';
@ -258,10 +257,10 @@ $labels['actiondelete'] = 'Eliminado';
$labels['compare'] = 'Comparar';
$labels['showrevision'] = 'Mostrar esta versão';
$labels['restore'] = 'Restaurar esta versão';
$labels['eventnotfound'] = 'Falha ao ler os dados do evento';
$labels['eventchangelognotavailable'] = 'Não é possível alterar o histórico deste evento';
$labels['eventdiffnotavailable'] = 'Não é possível comparar as revisões selecionadas';
$labels['eventrestoreconfirm'] = 'Confirma o restauro da revisão $rev deste evento? Os dados atuais serão substituídos pelos da versão anterior.';
$labels['objectnotfound'] = 'Falha ao ler os dados do evento';
$labels['objectchangelognotavailable'] = 'Não é possível alterar o histórico deste evento';
$labels['objectdiffnotavailable'] = 'Não é possível comparar as revisões selecionadas';
$labels['revisionrestoreconfirm'] = 'Confirma o restauro da revisão $rev deste evento? Os dados atuais serão substituídos pelos da versão anterior.';
$labels['arialabelminical'] = 'Seleção da data do calendário';
$labels['arialabelcalendarview'] = 'Vista do calendário';
$labels['arialabelsearchform'] = 'Quadro de pesquisa de eventos';

View file

@ -247,21 +247,14 @@ $labels['displaybirthdayscalendar'] = 'Показывать календарь
$labels['birthdayscalendarsources'] = 'Из этих адресных книг';
$labels['birthdayeventtitle'] = 'День рождения $name';
$labels['birthdayage'] = 'Возраст $age';
$labels['eventchangelog'] = 'История изменений';
$labels['eventdiff'] = 'Изменения с ревизии $rev';
$labels['revision'] = 'Ревизия';
$labels['user'] = 'Пользователь';
$labels['operation'] = 'Действие';
$labels['actionappend'] = 'Сохранено';
$labels['actionmove'] = 'Перемещено';
$labels['actiondelete'] = 'Удалено';
$labels['compare'] = 'Сравнить';
$labels['showrevision'] = 'Показать эту версию';
$labels['restore'] = 'Восстановить эту версию';
$labels['eventnotfound'] = 'Не удалось загрузить информацию о мероприятиях';
$labels['eventchangelognotavailable'] = 'История изменений для этого события недоступна';
$labels['eventdiffnotavailable'] = 'Невозможно провести сравнение выбранных ревизий ';
$labels['eventrestoreconfirm'] = 'Вы уверенны, что хотите восстановить это событие из ревизии $rev? Оно заменит текущее событие старой версией. ';
$labels['objectchangelog'] = 'История изменений';
$labels['objectdiff'] = 'Изменения с $rev1 до $rev2';
$labels['objectnotfound'] = 'Не удалось загрузить информацию о мероприятиях';
$labels['objectchangelognotavailable'] = 'История изменений для этого события недоступна';
$labels['objectdiffnotavailable'] = 'Невозможно провести сравнение выбранных ревизий ';
$labels['revisionrestoreconfirm'] = 'Вы уверенны, что хотите восстановить это событие из ревизии $rev? Оно заменит текущее событие старой версией. ';
$labels['objectrestoresuccess'] = 'Ревизия $rev успешно восстановлена';
$labels['objectrestoreerror'] = 'Не удалось восстановить старую ревизию';
$labels['arialabelminical'] = 'Выбор даты';
$labels['arialabelcalendarview'] = 'Вид календаря';
$labels['arialabelsearchform'] = 'Форма поиска событий';

View file

@ -246,21 +246,11 @@ $labels['displaybirthdayscalendar'] = 'Prikaži koledar rojstnih dnevov';
$labels['birthdayscalendarsources'] = 'Iz teh imenikov';
$labels['birthdayeventtitle'] = 'Rojstni dan osebe $name';
$labels['birthdayage'] = 'Starost $age';
$labels['eventchangelog'] = 'Spremeni Zgodovino';
$labels['eventdiff'] = 'Spremembe iz verzij $rev';
$labels['revision'] = 'Verzija';
$labels['user'] = 'Uporabnik';
$labels['operation'] = 'Dejanje';
$labels['actionappend'] = 'Shranjeno';
$labels['actionmove'] = 'Premaknjeno';
$labels['actiondelete'] = 'Izbrisano';
$labels['compare'] = 'Primerjaj';
$labels['showrevision'] = 'Prikaži to verzijo';
$labels['restore'] = 'Obnovi to verzijo';
$labels['eventnotfound'] = 'Napaka pri nalaganju podatkov o dogodku';
$labels['eventchangelognotavailable'] = 'Sprememba zgodovine za ta dogodek ni na voljo';
$labels['eventdiffnotavailable'] = 'Primerjava za izbrane verzije ni na voljo';
$labels['eventrestoreconfirm'] = 'Ali želite obnoviti verzijo $rev tega dogodka? To bo nadomestilo trenutni dogodek s starejšo verzijo.';
$labels['objectchangelog'] = 'Spremeni Zgodovino';
$labels['objectnotfound'] = 'Napaka pri nalaganju podatkov o dogodku';
$labels['objectchangelognotavailable'] = 'Sprememba zgodovine za ta dogodek ni na voljo';
$labels['objectdiffnotavailable'] = 'Primerjava za izbrane verzije ni na voljo';
$labels['revisionrestoreconfirm'] = 'Ali želite obnoviti verzijo $rev tega dogodka? To bo nadomestilo trenutni dogodek s starejšo verzijo.';
$labels['arialabelminical'] = 'Izbira datuma v koledarju';
$labels['arialabelcalendarview'] = 'Prikaz koledarja';
$labels['arialabelsearchform'] = 'Obrazec za iskanje dogodkov';

View file

@ -246,21 +246,11 @@ $labels['displaybirthdayscalendar'] = 'Visa födelsedagskalender';
$labels['birthdayscalendarsources'] = 'Från dessa adressböcker';
$labels['birthdayeventtitle'] = '$name\s födelsedag';
$labels['birthdayage'] = '$age år';
$labels['eventchangelog'] = 'Ändringshistorik';
$labels['eventdiff'] = 'Ändringar från revisioner $rev';
$labels['revision'] = 'Revision';
$labels['user'] = 'Användare';
$labels['operation'] = 'Åtgärd';
$labels['actionappend'] = 'Sparad';
$labels['actionmove'] = 'Flyttad';
$labels['actiondelete'] = 'Borttagen';
$labels['compare'] = 'Jämför';
$labels['showrevision'] = 'Visa denna version';
$labels['restore'] = 'Återställ denna verson';
$labels['eventnotfound'] = 'Det gick inte att läsa in data för händelsen';
$labels['eventchangelognotavailable'] = 'Ändringshistorik är inte tillgänglig för denna händelse';
$labels['eventdiffnotavailable'] = 'Ingen jämförelse möjlig för valda revisioner';
$labels['eventrestoreconfirm'] = 'Vill du verkligen återställa revision $rev för denna händelse? Det kommer att ersätta den aktuella händelsen med den gamla versionen.';
$labels['objectchangelog'] = 'Ändringshistorik';
$labels['objectnotfound'] = 'Det gick inte att läsa in data för händelsen';
$labels['objectchangelognotavailable'] = 'Ändringshistorik är inte tillgänglig för denna händelse';
$labels['objectdiffnotavailable'] = 'Ingen jämförelse möjlig för valda revisioner';
$labels['revisionrestoreconfirm'] = 'Vill du verkligen återställa revision $rev för denna händelse? Det kommer att ersätta den aktuella händelsen med den gamla versionen.';
$labels['arialabelminical'] = 'Kalender datumurval';
$labels['arialabelcalendarview'] = 'Kalender vy';
$labels['arialabelsearchform'] = 'Händelse sökformulär';

View file

@ -233,21 +233,11 @@ $labels['displaybirthdayscalendar'] = 'แสดงปฎิทินวัน
$labels['birthdayscalendarsources'] = 'จากสมุดที่อยู่เหล่านี้';
$labels['birthdayeventtitle'] = 'วันเกิดของ $name';
$labels['birthdayage'] = 'อายุ $age ปี';
$labels['eventchangelog'] = 'ประวัติการปรับเปลี่ยน';
$labels['eventdiff'] = 'สิ่งที่เปลี่ยนจาก รุ่นการปรับปรุง $rev';
$labels['revision'] = 'รุ่นการปรับปรุง';
$labels['user'] = 'ผู้ใช้';
$labels['operation'] = 'การกระทำ';
$labels['actionappend'] = 'บันทึกเรียบร้อย';
$labels['actionmove'] = 'ย้ายเรียบร้อย';
$labels['actiondelete'] = 'ลบเรียบร้อย';
$labels['compare'] = 'เปรียบเทียบ';
$labels['showrevision'] = 'แสดงรุ่นการปรับปรุงนี้';
$labels['restore'] = 'ย้อนกลับไปยังรุ่นการปรับปรุงนี้';
$labels['eventnotfound'] = 'การโหลดข้อมูลของเหตุการณ์ล้มเหลว';
$labels['eventchangelognotavailable'] = 'ไม่มีประวัติการปรับเปลี่ยนสำหรับเหตุการณ์นี้';
$labels['eventdiffnotavailable'] = 'ไม่สามารถเปรียบเทียบรุ่นการปรับปรุงที่เลือกได้';
$labels['eventrestoreconfirm'] = 'คุณต้องการกู้คืนรุ่นการปรับปรุง $rev ของเหตุการณ์นี้หรือ นี่จะเป็นการเขียนทับข้อมูลปัจจุบันด้วยข้อมูลที่เก่ากว่า';
$labels['objectchangelog'] = 'ประวัติการปรับเปลี่ยน';
$labels['objectnotfound'] = 'การโหลดข้อมูลของเหตุการณ์ล้มเหลว';
$labels['objectchangelognotavailable'] = 'ไม่มีประวัติการปรับเปลี่ยนสำหรับเหตุการณ์นี้';
$labels['objectdiffnotavailable'] = 'ไม่สามารถเปรียบเทียบรุ่นการปรับปรุงที่เลือกได้';
$labels['revisionrestoreconfirm'] = 'คุณต้องการกู้คืนรุ่นการปรับปรุง $rev ของเหตุการณ์นี้หรือ นี่จะเป็นการเขียนทับข้อมูลปัจจุบันด้วยข้อมูลที่เก่ากว่า';
$labels['arialabelcalendarview'] = 'มุมมองปฎิทิน';
$labels['arialabelquicksearchbox'] = 'ป้อนข้อมูลเพื่อค้นหาเหตุการณ์';
$labels['arialabelcalsearchform'] = 'ฟอร์มค้นหาปฎิทิน';

View file

@ -205,17 +205,7 @@ $labels['displaybirthdayscalendar'] = 'Показувати календар Д
$labels['birthdayscalendarsources'] = 'З даних адресних книг';
$labels['birthdayeventtitle'] = 'День Народження $name';
$labels['birthdayage'] = 'Вік $age';
$labels['eventchangelog'] = 'Історія змін';
$labels['eventdiff'] = 'Зміни з ревізії $rev';
$labels['revision'] = 'Ревізія';
$labels['user'] = 'Користувач';
$labels['operation'] = 'Дія';
$labels['actionappend'] = 'Збережено';
$labels['actionmove'] = 'Переміщено';
$labels['actiondelete'] = 'Вилучено';
$labels['compare'] = 'Порівняти';
$labels['showrevision'] = 'Показати дану весію';
$labels['restore'] = 'Відновити дану версію';
$labels['objectchangelog'] = 'Історія змін';
$labels['arialabelminical'] = 'Вибір дати';
$labels['arialabelcalendarview'] = 'Вигляд календаря';
$labels['arialabelsearchform'] = 'Форма пошуку подій';

View file

@ -837,72 +837,72 @@ a.miniColors-trigger {
text-decoration: none;
}
#eventhistory .loading {
.changelog-table .loading {
color: #666;
margin: 1em 0;
padding: 1px 0 2px 24px;
background: url(images/loading_blue.gif) top left no-repeat;
}
#eventhistory .compare-button {
.changelog-dialog .compare-button {
margin: 4px 0;
}
#event-changelog-table tbody td {
.changelog-table tbody td {
padding: 4px 7px;
vertical-align: middle;
}
#event-changelog-table tbody tr:last-child td {
.changelog-table tbody tr:last-child td {
border-bottom: 0;
}
#event-changelog-table tbody tr.undisclosed td.date,
#event-changelog-table tbody tr.undisclosed td.user {
.changelog-table tbody tr.undisclosed td.date,
.changelog-table tbody tr.undisclosed td.user {
font-style: italic;
}
#event-changelog-table .diff {
.changelog-table .diff {
width: 4em;
padding: 2px;
}
#event-changelog-table .revision {
width: 7em;
.changelog-table .revision {
width: 6em;
}
#event-changelog-table .date {
.changelog-table .date {
width: 11em;
}
#event-changelog-table .user {
.changelog-table .user {
width: auto;
}
#event-changelog-table .operation {
.changelog-table .operation {
width: 15%;
}
#event-changelog-table .actions {
.changelog-table .actions {
width: 50px;
text-align: right;
padding: 4px;
}
#event-changelog-table td a.iconbutton.restore,
#event-changelog-table td a.iconbutton.preview {
.changelog-table td a.iconbutton.restore,
.changelog-table td a.iconbutton.preview {
width: 16px;
margin-right: 2px;
background-image: url(images/calendars.png);
background-position: -1px -147px;
}
#event-changelog-table td a.iconbutton.restore {
.changelog-table td a.iconbutton.restore {
background-image: url(images/calendars.png);
background-position: -1px -167px;
}
#event-changelog-table tr.first td a.iconbutton {
.changelog-table tr.first td a.iconbutton {
opacity: 0.3;
cursor: default;
}

View file

@ -335,8 +335,8 @@
</div>
<div id="eventhistory" class="uidialog" aria-hidden="true">
<roundcube:object name="plugin.event_changelog_table" id="event-changelog-table" class="records-table" />
<div class="compare-button"><input type="button" class="button" value="↳ <roundcube:label name='calendar.compare' />" /></div>
<roundcube:object name="plugin.object_changelog_table" id="event-changelog-table" class="records-table changelog-table" />
<div class="compare-button"><input type="button" class="button" value="↳ <roundcube:label name='libkolab.compare' />" /></div>
</div>
<div id="calendarform" class="uidialog" aria-hidden="true">