Merge branch 'master' into dev/perf

Conflicts:
	plugins/kolab_tags/lib/kolab_tags_engine.php
This commit is contained in:
Aleksander Machniak 2018-12-19 09:52:50 +01:00
commit 73e9463595
1249 changed files with 50035 additions and 14127 deletions

3
.arcconfig Normal file
View file

@ -0,0 +1,3 @@
{
"phabricator.uri": "https://git.kolab.org"
}

View file

@ -1,8 +1,13 @@
[main] [main]
host = https://www.transifex.com host = https://www.transifex.com
lang_map = en: en_US, de: de_DE, da: da_DK, es: es_ES, fi: fi_FI, fr: fr_FR, ja: ja_JP, nl: nl_NL, cs: cs_CZ, vi: vi_VN, pl: pl_PL, th: th_TH, sv: sv_SE, he: he_IL, hr: hr_HR, sk: sk_SK, sl: sl_SI, uk: uk_UA lang_map = en: en_US, de: de_DE, da: da_DK, es: es_ES, fi: fi_FI, fr: fr_FR, ja: ja_JP, nl: nl_NL, cs: cs_CZ, vi: vi_VN, th: th_TH, sv: sv_SE, he: he_IL, hr: hr_HR, sk: sk_SK, sl: sl_SI, uk: uk_UA
type = PHP_ALT_ARRAY type = PHP_ALT_ARRAY
[kolab.kolab_2fa]
file_filter = plugins/kolab_2fa/localization/<lang>.inc
source_file = plugins/kolab_2fa/localization/en_US.inc
source_lang = en_US
[kolab.calendar] [kolab.calendar]
file_filter = plugins/calendar/localization/<lang>.inc file_filter = plugins/calendar/localization/<lang>.inc
source_file = plugins/calendar/localization/en_US.inc source_file = plugins/calendar/localization/en_US.inc
@ -71,6 +76,11 @@ file_filter = plugins/kolab_auth/localization/<lang>.inc
source_file = plugins/kolab_auth/localization/en_US.inc source_file = plugins/kolab_auth/localization/en_US.inc
source_lang = en_US source_lang = en_US
[kolab.kolab_chat]
file_filter = plugins/kolab_chat/localization/<lang>.inc
source_file = plugins/kolab_chat/localization/en_US.inc
source_lang = en_US
[kolab.kolab_delegation] [kolab.kolab_delegation]
file_filter = plugins/kolab_delegation/localization/<lang>.inc file_filter = plugins/kolab_delegation/localization/<lang>.inc
source_file = plugins/kolab_delegation/localization/en_US.inc source_file = plugins/kolab_delegation/localization/en_US.inc
@ -91,16 +101,16 @@ file_filter = plugins/kolab_notes/localization/<lang>.inc
source_file = plugins/kolab_notes/localization/en_US.inc source_file = plugins/kolab_notes/localization/en_US.inc
source_lang = en_US source_lang = en_US
[kolab.kolab_sso]
file_filter = plugins/kolab_sso/localization/<lang>.inc
source_file = plugins/kolab_sso/localization/en_US.inc
source_lang = en_US
[kolab.kolab_tags] [kolab.kolab_tags]
file_filter = plugins/kolab_tags/localization/<lang>.inc file_filter = plugins/kolab_tags/localization/<lang>.inc
source_file = plugins/kolab_tags/localization/en_US.inc source_file = plugins/kolab_tags/localization/en_US.inc
source_lang = en_US source_lang = en_US
[kolab.owncloud]
file_filter = plugins/owncloud/localization/<lang>.inc
source_file = plugins/owncloud/localization/en_US.inc
source_lang = en_US
[kolab.tasklist] [kolab.tasklist]
file_filter = plugins/tasklist/localization/<lang>.inc file_filter = plugins/tasklist/localization/<lang>.inc
source_file = plugins/tasklist/localization/en_US.inc source_file = plugins/tasklist/localization/en_US.inc

9
less-build.sh Executable file
View file

@ -0,0 +1,9 @@
#!/bin/sh
# First you have to link/copy /skins directory from Roundcube repo
# into ./skins here
# Note: You can remove -x option to generate non-minified file
# (remember to remove ".min" from the output file name)
lessc --relative-urls -x plugins/libkolab/skins/elastic/libkolab.less > plugins/libkolab/skins/elastic/libkolab.min.css

View file

@ -3,6 +3,3 @@
*.old *.old
*~ *~
config.inc.php config.inc.php
skins/*
!skins/default
!skins/larry

File diff suppressed because it is too large Load diff

View file

@ -33,53 +33,40 @@ function rcube_calendar(settings)
// extend base class // extend base class
rcube_libcalendaring.call(this, settings); rcube_libcalendaring.call(this, settings);
// member vars
this.ui_loaded = false;
this.selected_attachment = null;
// private vars
var me = this;
// create new event from current mail message // create new event from current mail message
this.create_from_mail = function(uid) this.create_from_mail = function(uid)
{ {
if (uid || (uid = rcmail.get_single_uid())) { if (!uid && !(uid = rcmail.get_single_uid())) {
// load calendar UI (scripts and edit dialog template)
if (!this.ui_loaded) {
$.when(
$.getScript(rcmail.assets_path('plugins/calendar/calendar_ui.js')),
$.getScript(rcmail.assets_path('plugins/calendar/lib/js/fullcalendar.js')),
$.get(rcmail.url('calendar/inlineui'), function(html) { $(document.body).append(html); }, 'html')
).then(function() {
// disable attendees feature (autocompletion and stuff is not initialized)
for (var c in rcmail.env.calendars)
rcmail.env.calendars[c].attendees = rcmail.env.calendars[c].resources = false;
me.ui_loaded = true;
me.ui = new rcube_calendar_ui(me.settings);
me.create_from_mail(uid); // start over
});
return; return;
} }
// get message contents for event dialog var url = {_mbox: rcmail.env.mailbox, _uid: uid, _framed: 1},
var lock = rcmail.set_busy(true, 'loading'); buttons = {},
rcmail.http_post('calendar/mailtoevent', { button_classes = ['mainaction save', 'cancel'],
'_mbox': rcmail.env.mailbox, title = rcmail.gettext('calendar.createfrommail'),
'_uid': uid dialog = $('<iframe>').attr({
}, lock); id: 'kolabcalendarinlinegui',
} name: 'kolabcalendardialog',
src: rcmail.url('calendar/dialog-ui', url)
});
// dialog buttons
buttons[rcmail.gettext('save')] = function() {
var frame = rcmail.get_frame_window('kolabcalendarinlinegui');
frame.rcmail.command('event-save');
}; };
// callback function triggered from server with contents for the new event buttons[rcmail.gettext('cancel')] = function() {
this.mail2event_dialog = function(event) dialog.dialog('destroy');
{ };
if (event.title) {
this.ui.add_event(event); // open jquery UI dialog
if (rcmail.message_list) window.kolab_event_dialog_element = dialog = rcmail.show_popup_dialog(dialog, title, buttons, {
rcmail.message_list.blur(); button_classes: button_classes,
} minWidth: 500,
width: 600,
height: 600
});
}; };
// handler for attachment-save-calendar commands // handler for attachment-save-calendar commands
@ -94,7 +81,7 @@ function rcube_calendar(settings)
// _calendar: $('#calendar-attachment-saveto').val(), // _calendar: $('#calendar-attachment-saveto').val(),
}, rcmail.set_busy(true, 'itip.savingdata')); }, rcmail.set_busy(true, 'itip.savingdata'));
} }
} };
} }
@ -107,12 +94,9 @@ window.rcmail && rcmail.addEventListener('init', function(evt) {
if (rcmail.env.task == 'mail') { if (rcmail.env.task == 'mail') {
rcmail.register_command('calendar-create-from-mail', function() { cal.create_from_mail(); }); rcmail.register_command('calendar-create-from-mail', function() { cal.create_from_mail(); });
rcmail.register_command('attachment-save-calendar', function() { cal.save_to_calendar(); }); rcmail.register_command('attachment-save-calendar', function() { cal.save_to_calendar(); });
rcmail.addEventListener('plugin.mail2event_dialog', function(p) { cal.mail2event_dialog(p); });
rcmail.addEventListener('plugin.unlock_saving', function(p) { cal.ui && cal.ui.unlock_saving(); });
if (rcmail.env.action != 'show') { if (rcmail.env.action != 'show') {
rcmail.env.message_commands.push('calendar-create-from-mail'); rcmail.env.message_commands.push('calendar-create-from-mail');
rcmail.add_element($('<a>'));
} }
else { else {
rcmail.enable_command('calendar-create-from-mail', true); rcmail.enable_command('calendar-create-from-mail', true);

File diff suppressed because it is too large Load diff

View file

@ -4,7 +4,7 @@
"description": "Calendar plugin", "description": "Calendar plugin",
"homepage": "https://git.kolab.org/diffusion/RPK/", "homepage": "https://git.kolab.org/diffusion/RPK/",
"license": "AGPLv3", "license": "AGPLv3",
"version": "3.2.8", "version": "3.4.1",
"authors": [ "authors": [
{ {
"name": "Thomas Bruederli", "name": "Thomas Bruederli",
@ -12,7 +12,7 @@
"role": "Lead" "role": "Lead"
}, },
{ {
"name": "Alensader Machniak", "name": "Aleksander Machniak",
"email": "machniak@kolabsys.com", "email": "machniak@kolabsys.com",
"role": "Developer" "role": "Developer"
} }
@ -26,6 +26,7 @@
"require": { "require": {
"php": ">=5.3.0", "php": ">=5.3.0",
"roundcube/plugin-installer": ">=0.1.3", "roundcube/plugin-installer": ">=0.1.3",
"kolab/libcalendaring": ">=3.2.8" "kolab/libcalendaring": ">=3.4.0",
"kolab/libkolab": ">=3.4.0"
} }
} }

View file

@ -82,6 +82,12 @@ $config['calendar_work_end'] = 18;
// show line at current time of the day // show line at current time of the day
$config['calendar_time_indicator'] = true; $config['calendar_time_indicator'] = true;
// Display week numbers:
// -1: don't display week numbers
// 0: in datepicker only (default)
// 1: in both datepicker and calendar
$config['calendar_show_weekno'] = 0;
// default alarm settings for new events. // default alarm settings for new events.
// this is only a preset when a new event dialog opens // this is only a preset when a new event dialog opens
// possible values are <empty>, DISPLAY, EMAIL // possible values are <empty>, DISPLAY, EMAIL
@ -138,8 +144,9 @@ $config['calendar_freebusy_trigger'] = false;
$config['calendar_include_freebusy_data'] = 1; $config['calendar_include_freebusy_data'] = 1;
// SMTP server host used to send (anonymous) itip messages. // SMTP server host used to send (anonymous) itip messages.
// Set to '' in order to use PHP's mail() function for email delivery.
// To override the SMTP port or connection method, provide a full URL like 'tls://somehost:587' // To override the SMTP port or connection method, provide a full URL like 'tls://somehost:587'
// This will add a link to invitation messages to allow users from outside
// to reply when their mail clients do not support iTip format.
$config['calendar_itip_smtp_server'] = null; $config['calendar_itip_smtp_server'] = null;
// SMTP username used to send (anonymous) itip messages // SMTP username used to send (anonymous) itip messages
@ -149,7 +156,7 @@ $config['calendar_itip_smtp_user'] = 'smtpauth';
$config['calendar_itip_smtp_pass'] = '123456'; $config['calendar_itip_smtp_pass'] = '123456';
// show virtual invitation calendars (Kolab driver only) // show virtual invitation calendars (Kolab driver only)
$config['kolab_invitation_calendars'] = true; $config['kolab_invitation_calendars'] = false;
// Base URL to build fully qualified URIs to access calendars via CALDAV // Base URL to build fully qualified URIs to access calendars via CALDAV
// The following replacement variables are supported: // The following replacement variables are supported:
@ -166,4 +173,9 @@ $config['kolab_invitation_calendars'] = true;
// LDAP directory configuration to find avilable resources for events // LDAP directory configuration to find avilable resources for events
// $config['calendar_resources_directory'] = array(/* ldap_public-like address book configuration */); // $config['calendar_resources_directory'] = array(/* ldap_public-like address book configuration */);
// Enables displaying of free-busy URL with token-based authentication
// Set it to the prefix URL, e.g. 'https://hostname/freebusy' or just '/freebusy'.
// See freebusy_session_auth in configuration of kolab_auth plugin.
$config['calendar_freebusy_session_auth_url'] = null;
?> ?>

View file

@ -101,6 +101,7 @@ abstract class calendar_driver
const FILTER_PERSONAL = 8; const FILTER_PERSONAL = 8;
const FILTER_PRIVATE = 16; const FILTER_PRIVATE = 16;
const FILTER_CONFIDENTIAL = 32; const FILTER_CONFIDENTIAL = 32;
const FILTER_SHARED = 64;
const BIRTHDAY_CALENDAR_ID = '__bdays__'; const BIRTHDAY_CALENDAR_ID = '__bdays__';
// features supported by backend // features supported by backend
@ -534,14 +535,15 @@ abstract class calendar_driver
* @param array $event Hash array with event properties: * @param array $event Hash array with event properties:
* id: Event identifier * id: Event identifier
* calendar: Calendar identifier * calendar: Calendar identifier
* @param mixed $rev Revisions: "from:to" * @param mixed $rev1 Old Revision
* @param mixed $rev2 New Revision
* *
* @return array List of property changes, each as a hash array: * @return array List of property changes, each as a hash array:
* property: Revision number * property: Revision number
* old: Old property value * old: Old property value
* new: Updated property value * new: Updated property value
*/ */
public function get_event_diff($event, $rev) public function get_event_diff($event, $rev1, $rev2)
{ {
return false; return false;
} }
@ -655,41 +657,29 @@ abstract class calendar_driver
// iterate over (cached) contacts // iterate over (cached) contacts
foreach (($cached ?: $abook->search('*', '', 2, true, true, array('birthday'))) as $contact) { foreach (($cached ?: $abook->search('*', '', 2, true, true, array('birthday'))) as $contact) {
if (is_array($contact) && !empty($contact['birthday'])) { $event = self::parse_contact($contact, $source);
try {
if (is_array($contact['birthday']))
$contact['birthday'] = reset($contact['birthday']);
$bday = $contact['birthday'] instanceof DateTime ? $contact['birthday'] : if (empty($event)) {
new DateTime($contact['birthday'], new DateTimezone('UTC'));
$birthyear = $bday->format('Y');
}
catch (Exception $e) {
rcube::raise_error(array(
'code' => 600, 'type' => 'php',
'file' => __FILE__, 'line' => __LINE__,
'message' => 'BIRTHDAY PARSE ERROR: ' . $e),
true, false);
continue; continue;
} }
$display_name = rcube_addressbook::compose_display_name($contact);
$event_title = $rcmail->gettext(array('name' => 'birthdayeventtitle', 'vars' => array('name' => $display_name)), 'calendar');
// add stripped record to cache // add stripped record to cache
if (empty($cached)) { if (empty($cached)) {
$cache_records[] = array( $cache_records[] = array(
'ID' => $contact['ID'], 'ID' => $contact['ID'],
'name' => $display_name, 'name' => $event['_displayname'],
'birthday' => $bday->format('Y-m-d'), 'birthday' => $event['start']->format('Y-m-d'),
); );
} }
// filter by search term (only name is involved here) // filter by search term (only name is involved here)
if (!empty($search) && strpos(mb_strtolower($event_title), $search) === false) { if (!empty($search) && strpos(mb_strtolower($event['title']), $search) === false) {
continue; continue;
} }
$bday = clone $event['start'];
$byear = $bday->format('Y');
// quick-and-dirty recurrence computation: just replace the year // quick-and-dirty recurrence computation: just replace the year
$bday->setDate($year, $bday->format('n'), $bday->format('j')); $bday->setDate($year, $bday->format('n'), $bday->format('j'));
$bday->setTime(12, 0, 0); $bday->setTime(12, 0, 0);
@ -703,22 +693,20 @@ abstract class calendar_driver
// birthday is within requested range // birthday is within requested range
if ($bday <= $end && $bday >= $start) { if ($bday <= $end && $bday >= $start) {
$age = $this_year - $birthyear; unset($event['_displayname']);
$event = array( $event['alarms'] = $alarms;
'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'),
// Add more contact information to description block?
'allday' => true,
'start' => $bday,
'alarms' => $alarms,
);
$event['end'] = clone $bday;
$event['end']->add(new DateInterval('PT1H'));
$events[] = $event; // if this is not the first occurence modify event details
// but not when this is "all birthdays feed" request
if ($year2 - $year < 10 && ($age = ($this_year - $byear))) {
$event['description'] = $rcmail->gettext(array('name' => 'birthdayage', 'vars' => array('age' => $age)), 'calendar');
$event['start'] = $bday;
$event['end'] = clone $bday;
unset($event['recurrence']);
} }
// add the main instance
$events[] = $event;
} }
} }
@ -742,50 +730,73 @@ abstract class calendar_driver
$rcmail = rcmail::get_instance(); $rcmail = rcmail::get_instance();
if ($source && $contact_id && ($abook = $rcmail->get_address_book($source))) { if ($source && $contact_id && ($abook = $rcmail->get_address_book($source))) {
$contact = $abook->get_record($contact_id, true); if ($contact = $abook->get_record($contact_id, true)) {
return self::parse_contact($contact, $source);
}
}
}
if (is_array($contact) && !empty($contact['birthday'])) { /**
try { * Parse contact and create an event for its birthday
if (is_array($contact['birthday'])) *
* @param array $contact Contact data
* @param string $source Addressbook source ID
*
* @return array Birthday event data
*/
public static function parse_contact($contact, $source)
{
if (!is_array($contact)) {
return;
}
if (is_array($contact['birthday'])) {
$contact['birthday'] = reset($contact['birthday']); $contact['birthday'] = reset($contact['birthday']);
}
$bday = $contact['birthday'] instanceof DateTime ? $contact['birthday'] : if (empty($contact['birthday'])) {
new DateTime($contact['birthday'], new DateTimezone('UTC')); return;
$birthyear = $bday->format('Y'); }
try {
$bday = $contact['birthday'];
if (!$bday instanceof DateTime) {
$bday = new DateTime($bday, new DateTimezone('UTC'));
}
$bday->_dateonly = true;
} }
catch (Exception $e) { catch (Exception $e) {
rcube::raise_error(array( rcube::raise_error(array(
'code' => 600, 'type' => 'php', 'code' => 600, 'type' => 'php',
'file' => __FILE__, 'line' => __LINE__, 'file' => __FILE__, 'line' => __LINE__,
'message' => 'BIRTHDAY PARSE ERROR: ' . $e), 'message' => 'BIRTHDAY PARSE ERROR: ' . $e->getMessage()),
true, false); true, false);
return;
return null;
} }
$rcmail = rcmail::get_instance();
$birthyear = $bday->format('Y');
$display_name = rcube_addressbook::compose_display_name($contact); $display_name = rcube_addressbook::compose_display_name($contact);
$event_title = $rcmail->gettext(array('name' => 'birthdayeventtitle', 'vars' => array('name' => $display_name)), 'calendar'); $label = array('name' => 'birthdayeventtitle', 'vars' => array('name' => $display_name));
$event_title = $rcmail->gettext($label, 'calendar');
$uid = rcube_ldap::dn_encode('bday:' . $source . ':' . $contact['ID'] . ':' . $birthyear);
$event = array( $event = array(
'id' => rcube_ldap::dn_encode('bday:' . $source . ':' . $contact['ID'] . ':' . $year), 'id' => $uid,
'uid' => rcube_ldap::dn_encode('bday:' . $source . ':' . $contact['ID'] . ':' . $birthyear), 'uid' => $uid,
'calendar' => self::BIRTHDAY_CALENDAR_ID, 'calendar' => self::BIRTHDAY_CALENDAR_ID,
'title' => $event_title, 'title' => $event_title,
'description' => '', 'description' => '',
'allday' => true, 'allday' => true,
'start' => $bday, 'start' => $bday,
'end' => clone $bday,
'recurrence' => array('FREQ' => 'YEARLY', 'INTERVAL' => 1), 'recurrence' => array('FREQ' => 'YEARLY', 'INTERVAL' => 1),
'free_busy' => 'free', 'free_busy' => 'free',
'_displayname' => $display_name,
); );
$event['end'] = clone $bday;
$event['end']->add(new DateInterval('PT1H'));
return $event; return $event;
} }
}
return null;
}
/** /**
* Store alarm dismissal for birtual birthay events * Store alarm dismissal for birtual birthay events

View file

@ -391,7 +391,7 @@ class database_driver extends calendar_driver
if ($event['id'] == $master['id']) { if ($event['id'] == $master['id']) {
$event += $old; $event += $old;
$event['recurrence_id'] = $master['id']; $event['recurrence_id'] = $master['id'];
$event['_instance'] = libcalendaring::recurrence_instance_identifier($old); $event['_instance'] = libcalendaring::recurrence_instance_identifier($old, $master['allday']);
$event['isexception'] = 1; $event['isexception'] = 1;
$event_id = $this->_insert_event($event); $event_id = $this->_insert_event($event);
return $event_id; return $event_id;

View file

@ -130,7 +130,7 @@ class kolab_calendar extends kolab_storage_folder_api
/** /**
* Return color to display this calendar * Return color to display this calendar
*/ */
public function get_color() public function get_color($default = null)
{ {
// color is defined in folder METADATA // color is defined in folder METADATA
if ($color = $this->storage->get_color()) { if ($color = $this->storage->get_color()) {
@ -143,7 +143,7 @@ class kolab_calendar extends kolab_storage_folder_api
if (!empty($prefs[$this->id]) && !empty($prefs[$this->id]['color'])) if (!empty($prefs[$this->id]) && !empty($prefs[$this->id]['color']))
return $prefs[$this->id]['color']; return $prefs[$this->id]['color'];
return 'cc0000'; return $default ?: 'cc0000';
} }
/** /**
@ -201,21 +201,25 @@ class kolab_calendar extends kolab_storage_folder_api
$instance_id = substr($id, strlen($master_id) + 1); $instance_id = substr($id, strlen($master_id) + 1);
if ($record = $this->storage->get_object($master_id)) { if ($record = $this->storage->get_object($master_id)) {
$master = $this->_to_driver_event($record, true); $master = $this->_to_driver_event($record);
$this->events[$master_id] = $master;
} }
if ($master) { if ($master) {
// check for match in top-level exceptions (aka loose single occurrences) // check for match in top-level exceptions (aka loose single occurrences)
if ($master['_formatobj'] && ($instance = $master['_formatobj']->get_instance($instance_id))) { if ($master['_formatobj'] && ($instance = $master['_formatobj']->get_instance($instance_id))) {
$this->events[$id] = $this->_to_driver_event($instance); $this->events[$id] = $this->_to_driver_event($instance, false, true, $master);
} }
// check for match on the first instance already // check for match on the first instance already
else if ($master['_instance'] && $master['_instance'] == $instance_id) { else if ($master['_instance'] && $master['_instance'] == $instance_id) {
$this->events[$id] = $master; $this->events[$id] = $master;
} }
else if (is_array($master['recurrence'])) { else if (is_array($master['recurrence'])) {
$this->get_recurring_events($record, $master['start'], null, $id); // For performance reasons we'll get only the specific instance
if (($date = substr($id, strlen($master_id) + 1, 8)) && strlen($date) == 8 && is_numeric($date)) {
$start_date = new DateTime($date . 'T000000', $master['start']->getTimezone());
}
$this->get_recurring_events($record, $start_date ?: $master['start'], null, $id, 1);
} }
} }
} }
@ -295,7 +299,9 @@ class kolab_calendar extends kolab_storage_folder_api
} }
// set partstat filter to skip pending and declined invitations // set partstat filter to skip pending and declined invitations
if (empty($filter_query) && $this->get_namespace() != 'other') { if (empty($filter_query) && $this->cal->rc->config->get('kolab_invitation_calendars')
&& $this->get_namespace() != 'other'
) {
$partstat_exclude = array('NEEDS-ACTION','DECLINED'); $partstat_exclude = array('NEEDS-ACTION','DECLINED');
} }
else { else {
@ -316,14 +322,16 @@ class kolab_calendar extends kolab_storage_folder_api
if ($event['start'] <= $end && $event['end'] >= $start) { if ($event['start'] <= $end && $event['end'] >= $start) {
unset($event['_attendees']); unset($event['_attendees']);
$add = true; $add = true;
// skip the first instance of a recurring event if listed in exdate // skip the first instance of a recurring event if listed in exdate
if ($virtual && !empty($event['recurrence']['EXDATE'])) { if ($virtual && !empty($event['recurrence']['EXDATE'])) {
$event_date = $event['start']->format('Ymd'); $event_date = $event['start']->format('Ymd');
$exdates = (array)$event['recurrence']['EXDATE']; $event_tz = $event['start']->getTimezone();
foreach ($exdates as $exdate) { foreach ((array) $event['recurrence']['EXDATE'] as $exdate) {
if ($exdate->format('Ymd') == $event_date) { $ex = clone $exdate;
$ex->setTimezone($event_tz);
if ($ex->format('Ymd') == $event_date) {
$add = false; $add = false;
break; break;
} }
@ -353,7 +361,7 @@ class kolab_calendar extends kolab_storage_folder_api
// add top-level exceptions (aka loose single occurrences) // add top-level exceptions (aka loose single occurrences)
else if (is_array($record['exceptions'])) { else if (is_array($record['exceptions'])) {
foreach ($record['exceptions'] as $ex) { foreach ($record['exceptions'] as $ex) {
$component = $this->_to_driver_event($ex, false, false); $component = $this->_to_driver_event($ex, false, false, $record);
if ($component['start'] <= $end && $component['end'] >= $start) { if ($component['start'] <= $end && $component['end'] >= $start) {
$events[] = $component; $events[] = $component;
} }
@ -593,32 +601,29 @@ class kolab_calendar extends kolab_storage_folder_api
/** /**
* Create instances of a recurring event * Create instances of a recurring event
* *
* @param array Hash array with event properties * @param array $event Hash array with event properties
* @param object DateTime Start date of the recurrence window * @param DateTime $start Start date of the recurrence window
* @param object DateTime End date of the recurrence window * @param DateTime $end End date of the recurrence window
* @param string ID of a specific recurring event instance * @param string $event_id ID of a specific recurring event instance
* @param int $limit Max. number of instances to return
*
* @return array List of recurring event instances * @return array List of recurring event instances
*/ */
public function get_recurring_events($event, $start, $end = null, $event_id = null) public function get_recurring_events($event, $start, $end = null, $event_id = null, $limit = null)
{ {
$object = $event['_formatobj']; $object = $event['_formatobj'];
if (!$object) { if (!$object) {
$rec = $this->storage->get_object($event['id']); $rec = $this->storage->get_object($event['id']);
$object = $rec['_formatobj']; $object = $rec['_formatobj'];
} }
if (!is_object($object)) if (!is_object($object))
return array(); return array();
// determine a reasonable end date if none given // determine a reasonable end date if none given
if (!$end) { if (!$end) {
switch ($event['recurrence']['FREQ']) {
case 'YEARLY': $intvl = 'P100Y'; break;
case 'MONTHLY': $intvl = 'P20Y'; break;
default: $intvl = 'P10Y'; break;
}
$end = clone $event['start']; $end = clone $event['start'];
$end->add(new DateInterval($intvl)); $end->add(new DateInterval('P100Y'));
} }
// copy the recurrence rule from the master event (to be used in the UI) // copy the recurrence rule from the master event (to be used in the UI)
@ -634,9 +639,9 @@ class kolab_calendar extends kolab_storage_folder_api
if (is_array($event['recurrence']['EXCEPTIONS'])) { if (is_array($event['recurrence']['EXCEPTIONS'])) {
foreach ($event['recurrence']['EXCEPTIONS'] as $exception) { foreach ($event['recurrence']['EXCEPTIONS'] as $exception) {
if (!$exception['_instance']) if (!$exception['_instance'])
$exception['_instance'] = libcalendaring::recurrence_instance_identifier($exception); $exception['_instance'] = libcalendaring::recurrence_instance_identifier($exception, $event['allday']);
$rec_event = $this->_to_driver_event($exception, false, false); $rec_event = $this->_to_driver_event($exception, false, false, $event);
$rec_event['id'] = $event['uid'] . '-' . $exception['_instance']; $rec_event['id'] = $event['uid'] . '-' . $exception['_instance'];
$rec_event['isexception'] = 1; $rec_event['isexception'] = 1;
@ -663,15 +668,22 @@ class kolab_calendar extends kolab_storage_folder_api
return array($this->events[$event_id]); return array($this->events[$event_id]);
} }
// Check first occurrence, it might have been moved
if ($first = $exdata[$event['start']->format('Ymd')]) {
// return it only if not already in the result, but in the requested period
if (!($event['start'] <= $end && $event['end'] >= $start)
&& ($first['start'] <= $end && $first['end'] >= $start)
) {
$events[] = $first;
}
}
if ($limit && count($events) >= $limit) {
return $events;
}
// use libkolab to compute recurring events // use libkolab to compute recurring events
if (class_exists('kolabcalendaring')) {
$recurrence = new kolab_date_recurrence($object); $recurrence = new kolab_date_recurrence($object);
}
else {
// fallback to local recurrence implementation
require_once($this->cal->home . '/lib/calendar_recurrence.php');
$recurrence = new calendar_recurrence($this->cal, $event);
}
$i = 0; $i = 0;
while ($next_event = $recurrence->next_instance()) { while ($next_event = $recurrence->next_instance()) {
@ -682,15 +694,27 @@ class kolab_calendar extends kolab_storage_folder_api
if ($futuredata[$datestr]) if ($futuredata[$datestr])
$overlay_data = $futuredata[$datestr]; $overlay_data = $futuredata[$datestr];
// add to output if in range
$rec_id = $event['uid'] . '-' . $instance_id; $rec_id = $event['uid'] . '-' . $instance_id;
if (($next_event['start'] <= $end && $next_event['end'] >= $start) || ($event_id && $rec_id == $event_id)) { $exception = $exdata[$datestr] ?: $overlay_data;
$rec_event = $this->_to_driver_event($next_event, false, false); $event_start = $next_event['start'];
$event_end = $next_event['end'];
// copy some event from exception to get proper start/end dates
if ($exception) {
$event_copy = $next_event;
kolab_driver::merge_exception_dates($event_copy, $exception);
$event_start = $event_copy['start'];
$event_end = $event_copy['end'];
}
// add to output if in range
if (($event_start <= $end && $event_end >= $start) || ($event_id && $rec_id == $event_id)) {
$rec_event = $this->_to_driver_event($next_event, false, false, $event);
$rec_event['_instance'] = $instance_id; $rec_event['_instance'] = $instance_id;
$rec_event['_count'] = $i + 1; $rec_event['_count'] = $i + 1;
if ($overlay_data || $exdata[$datestr]) // copy data from exception if ($exception) // copy data from exception
kolab_driver::merge_exception_data($rec_event, $exdata[$datestr] ?: $overlay_data); kolab_driver::merge_exception_data($rec_event, $exception);
$rec_event['id'] = $rec_id; $rec_event['id'] = $rec_id;
$rec_event['recurrence_id'] = $event['uid']; $rec_event['recurrence_id'] = $event['uid'];
@ -702,12 +726,16 @@ class kolab_calendar extends kolab_storage_folder_api
$this->events[$rec_id] = $rec_event; $this->events[$rec_id] = $rec_event;
break; break;
} }
if ($limit && count($events) >= $limit) {
return $events;
}
} }
else if ($next_event['start'] > $end) // stop loop if out of range else if ($next_event['start'] > $end) // stop loop if out of range
break; break;
// avoid endless recursion loops // avoid endless recursion loops
if (++$i > 1000) if (++$i > 100000)
break; break;
} }
@ -717,7 +745,7 @@ class kolab_calendar extends kolab_storage_folder_api
/** /**
* Convert from Kolab_Format to internal representation * Convert from Kolab_Format to internal representation
*/ */
private function _to_driver_event($record, $noinst = false, $links = true) private function _to_driver_event($record, $noinst = false, $links = true, $master_event = null)
{ {
$record['calendar'] = $this->id; $record['calendar'] = $this->id;
@ -725,13 +753,22 @@ class kolab_calendar extends kolab_storage_folder_api
$record['links'] = $this->get_links($record['uid']); $record['links'] = $this->get_links($record['uid']);
} }
if ($this->get_namespace() == 'other') { $ns = $this->get_namespace();
if ($ns == 'other') {
$record['className'] = 'fc-event-ns-other'; $record['className'] = 'fc-event-ns-other';
$record = kolab_driver::add_partstat_class($record, array('NEEDS-ACTION','DECLINED'), $this->get_owner()); }
if ($ns == 'other' || !$this->cal->rc->config->get('kolab_invitation_calendars')) {
$record = kolab_driver::add_partstat_class($record, array('NEEDS-ACTION', 'DECLINED'), $this->get_owner());
// Modify invitation status class name, when invitation calendars are disabled
// we'll use opacity only for declined/needs-action events
$record['className'] = str_replace('-invitation', '', $record['className']);
} }
// add instance identifier to first occurrence (master event) // add instance identifier to first occurrence (master event)
$recurrence_id_format = libcalendaring::recurrence_id_format($record); $recurrence_id_format = libcalendaring::recurrence_id_format($master_event ? $master_event : $record);
if (!$noinst && $record['recurrence'] && !$record['recurrence_id'] && !$record['_instance']) { if (!$noinst && $record['recurrence'] && !$record['recurrence_id'] && !$record['_instance']) {
$record['_instance'] = $record['start']->format($recurrence_id_format); $record['_instance'] = $record['start']->format($recurrence_id_format);
} }
@ -756,11 +793,25 @@ class kolab_calendar extends kolab_storage_folder_api
private function _from_driver_event($event, $old = array()) private function _from_driver_event($event, $old = array())
{ {
// set current user as ORGANIZER // set current user as ORGANIZER
$identity = $this->cal->rc->user->list_emails(true); if ($identity = $this->cal->rc->user->list_emails(true)) {
if (empty($event['attendees']) && $identity['email']) $event['attendees'] = (array) $event['attendees'];
$event['attendees'] = array(array('role' => 'ORGANIZER', 'name' => $identity['name'], 'email' => $identity['email'])); $found = false;
// there can be only resources on attendees list (T1484)
// let's check the existence of an organizer
foreach ($event['attendees'] as $attendee) {
if ($attendee['role'] == 'ORGANIZER') {
$found = true;
break;
}
}
if (!$found) {
$event['attendees'][] = array('role' => 'ORGANIZER', 'name' => $identity['name'], 'email' => $identity['email']);
}
$event['_owner'] = $identity['email']; $event['_owner'] = $identity['email'];
}
// remove EXDATE values if RDATE is given // remove EXDATE values if RDATE is given
if (!empty($event['recurrence']['RDATE'])) { if (!empty($event['recurrence']['RDATE'])) {
@ -785,7 +836,6 @@ class kolab_calendar extends kolab_storage_folder_api
}); });
} }
// remove some internal properties which should not be saved // remove some internal properties which should not be saved
unset($event['_savemode'], $event['_fromcalendar'], $event['_identity'], $event['_folder_id'], unset($event['_savemode'], $event['_fromcalendar'], $event['_identity'], $event['_folder_id'],
$event['recurrence_id'], $event['attachments'], $event['deleted_attachments'], $event['className']); $event['recurrence_id'], $event['attachments'], $event['deleted_attachments'], $event['className']);

View file

@ -221,7 +221,7 @@ class kolab_driver extends calendar_driver
} }
// list virtual calendars showing invitations // list virtual calendars showing invitations
if ($this->rc->config->get('kolab_invitation_calendars')) { if ($this->rc->config->get('kolab_invitation_calendars') && !($filter & self::FILTER_INSERTABLE)) {
foreach (array(self::INVITATIONS_CALENDAR_PENDING, self::INVITATIONS_CALENDAR_DECLINED) as $id) { foreach (array(self::INVITATIONS_CALENDAR_PENDING, self::INVITATIONS_CALENDAR_DECLINED) as $id) {
$cal = new kolab_invitation_calendar($id, $this->cal); $cal = new kolab_invitation_calendar($id, $this->cal);
$this->calendars[$cal->id] = $cal; $this->calendars[$cal->id] = $cal;
@ -256,7 +256,7 @@ class kolab_driver extends calendar_driver
} }
// append the virtual birthdays calendar // append the virtual birthdays calendar
if ($this->rc->config->get('calendar_contact_birthdays', false)) { if ($this->rc->config->get('calendar_contact_birthdays', false) && !($filter & self::FILTER_INSERTABLE)) {
$id = self::BIRTHDAY_CALENDAR_ID; $id = self::BIRTHDAY_CALENDAR_ID;
$prefs = $this->rc->config->get('kolab_calendars', array()); // read local prefs $prefs = $this->rc->config->get('kolab_calendars', array()); // read local prefs
if (!($filter & self::FILTER_ACTIVE) || $prefs[$id]['active']) { if (!($filter & self::FILTER_ACTIVE) || $prefs[$id]['active']) {
@ -296,16 +296,15 @@ class kolab_driver extends calendar_driver
'list' => $this->calendars, 'list' => $this->calendars,
'calendars' => $calendars, 'calendars' => $calendars,
'filter' => $filter, 'filter' => $filter,
'editable' => ($filter & self::FILTER_WRITEABLE),
'insert' => ($filter & self::FILTER_INSERTABLE),
'active' => ($filter & self::FILTER_ACTIVE),
'personal' => ($filter & self::FILTER_PERSONAL)
)); ));
if ($plugin['abort']) { if ($plugin['abort']) {
return $plugin['calendars']; return $plugin['calendars'];
} }
$personal = $filter & self::FILTER_PERSONAL;
$shared = $filter & self::FILTER_SHARED;
foreach ($this->calendars as $cal) { foreach ($this->calendars as $cal) {
if (!$cal->ready) { if (!$cal->ready) {
continue; continue;
@ -313,7 +312,7 @@ class kolab_driver extends calendar_driver
if (($filter & self::FILTER_WRITEABLE) && !$cal->editable) { if (($filter & self::FILTER_WRITEABLE) && !$cal->editable) {
continue; continue;
} }
if (($filter & self::FILTER_INSERTABLE) && !$cal->insert) { if (($filter & self::FILTER_INSERTABLE) && !$cal->editable) {
continue; continue;
} }
if (($filter & self::FILTER_ACTIVE) && !$cal->is_active()) { if (($filter & self::FILTER_ACTIVE) && !$cal->is_active()) {
@ -325,9 +324,13 @@ class kolab_driver extends calendar_driver
if (($filter & self::FILTER_CONFIDENTIAL) && $cal->subtype != 'confidential') { if (($filter & self::FILTER_CONFIDENTIAL) && $cal->subtype != 'confidential') {
continue; continue;
} }
if (($filter & self::FILTER_PERSONAL) && $cal->get_namespace() != 'personal') { if ($personal || $shared) {
$ns = $cal->get_namespace();
if (!(($personal && $ns == 'personal') || ($shared && $ns == 'shared'))) {
continue; continue;
} }
}
$calendars[$cal->id] = $cal; $calendars[$cal->id] = $cal;
} }
@ -816,7 +819,7 @@ class kolab_driver extends calendar_driver
// removing the first instance => just move to next occurence // removing the first instance => just move to next occurence
if ($master['recurrence'] && $event['_instance'] == libcalendaring::recurrence_instance_identifier($master)) { if ($master['recurrence'] && $event['_instance'] == libcalendaring::recurrence_instance_identifier($master)) {
$recurring = reset($storage->get_recurring_events($event, $event['start'], null, $event['id'].'-1')); $recurring = reset($storage->get_recurring_events($event, $event['start'], null, $event['id'] . '-1', 1));
// no future instances found: delete the master event (bug #1677) // no future instances found: delete the master event (bug #1677)
if (!$recurring['start']) { if (!$recurring['start']) {
@ -979,6 +982,15 @@ class kolab_driver extends calendar_driver
// force 'current' mode for single occurrences stored as exception // force 'current' mode for single occurrences stored as exception
else if (!$old['recurrence'] && !$old['recurrence_id'] && $old['isexception']) else if (!$old['recurrence'] && !$old['recurrence_id'] && $old['isexception'])
$savemode = 'current'; $savemode = 'current';
// Stick to the master timezone for all occurrences (Bifrost#T104637)
$master_tz = $master['start']->getTimezone();
$event_tz = $event['start']->getTimezone();
if ($master_tz->getName() != $event_tz->getName()) {
$event['start']->setTimezone($master_tz);
$event['end']->setTimezone($master_tz);
}
} }
// check if update affects scheduling and update attendee status accordingly // check if update affects scheduling and update attendee status accordingly
@ -1138,11 +1150,11 @@ class kolab_driver extends calendar_driver
// use start date from master but try to be smart on time or duration changes // use start date from master but try to be smart on time or duration changes
$old_start_date = $old['start']->format('Y-m-d'); $old_start_date = $old['start']->format('Y-m-d');
$old_start_time = $old['allday'] ? '' : $old['start']->format('H:i'); $old_start_time = $old['allday'] ? '' : $old['start']->format('H:i');
$old_duration = $old['end']->format('U') - $old['start']->format('U'); $old_duration = self::event_duration($old['start'], $old['end'], $old['allday']);
$new_start_date = $event['start']->format('Y-m-d'); $new_start_date = $event['start']->format('Y-m-d');
$new_start_time = $event['allday'] ? '' : $event['start']->format('H:i'); $new_start_time = $event['allday'] ? '' : $event['start']->format('H:i');
$new_duration = $event['end']->format('U') - $event['start']->format('U'); $new_duration = self::event_duration($event['start'], $event['end'], $event['allday']);
$diff = $old_start_date != $new_start_date || $old_start_time != $new_start_time || $old_duration != $new_duration; $diff = $old_start_date != $new_start_date || $old_start_time != $new_start_time || $old_duration != $new_duration;
$date_shift = $old['start']->diff($event['start']); $date_shift = $old['start']->diff($event['start']);
@ -1151,10 +1163,10 @@ class kolab_driver extends calendar_driver
if ($diff && ($old_start_date == $new_start_date || $old_duration == $new_duration)) { if ($diff && ($old_start_date == $new_start_date || $old_duration == $new_duration)) {
$event['start'] = $master['start']->add($date_shift); $event['start'] = $master['start']->add($date_shift);
$event['end'] = clone $event['start']; $event['end'] = clone $event['start'];
$event['end']->add(new DateInterval('PT'.$new_duration.'S')); $event['end']->add(new DateInterval($new_duration));
// remove fixed weekday, will be re-set to the new weekday in kolab_calendar::update_event() // remove fixed weekday, will be re-set to the new weekday in kolab_calendar::update_event()
if ($old_start_date != $new_start_date) { if ($old_start_date != $new_start_date && $event['recurrence']) {
if (strlen($event['recurrence']['BYDAY']) == 2) if (strlen($event['recurrence']['BYDAY']) == 2)
unset($event['recurrence']['BYDAY']); unset($event['recurrence']['BYDAY']);
if ($old['recurrence']['BYMONTH'] == $old['start']->format('n')) if ($old['recurrence']['BYMONTH'] == $old['start']->format('n'))
@ -1170,6 +1182,7 @@ class kolab_driver extends calendar_driver
// when saving an instance in 'all' mode, copy recurrence exceptions over // when saving an instance in 'all' mode, copy recurrence exceptions over
if ($old['recurrence_id']) { if ($old['recurrence_id']) {
$event['recurrence']['EXCEPTIONS'] = $master['recurrence']['EXCEPTIONS']; $event['recurrence']['EXCEPTIONS'] = $master['recurrence']['EXCEPTIONS'];
$event['recurrence']['EXDATE'] = $master['recurrence']['EXDATE'];
} }
else if ($master['_instance']) { else if ($master['_instance']) {
$event['_instance'] = $master['_instance']; $event['_instance'] = $master['_instance'];
@ -1226,6 +1239,19 @@ class kolab_driver extends calendar_driver
return $success; return $success;
} }
/**
* Calculate event duration, returns string in DateInterval format
*/
protected static function event_duration($start, $end, $allday = false)
{
if ($allday) {
$diff = $start->diff($end);
return 'P' . $diff->days . 'D';
}
return 'PT' . ($end->format('U') - $start->format('U')) . 'S';
}
/** /**
* Determine whether the current change affects scheduling and reset attendee status accordingly * Determine whether the current change affects scheduling and reset attendee status accordingly
*/ */
@ -1358,7 +1384,7 @@ class kolab_driver extends calendar_driver
} }
if (!$event['_instance'] && is_a($event['recurrence_date'], 'DateTime')) { if (!$event['_instance'] && is_a($event['recurrence_date'], 'DateTime')) {
$event['_instance'] = libcalendaring::recurrence_instance_identifier($event); $event['_instance'] = libcalendaring::recurrence_instance_identifier($event, $master['allday']);
} }
if (!is_array($master['exceptions']) && is_array($master['recurrence']['EXCEPTIONS'])) { if (!is_array($master['exceptions']) && is_array($master['recurrence']['EXCEPTIONS'])) {
@ -1390,7 +1416,6 @@ class kolab_driver extends calendar_driver
} }
} }
/** /**
* Merge certain properties from the overlay event to the base event object * Merge certain properties from the overlay event to the base event object
* *
@ -1405,13 +1430,35 @@ class kolab_driver extends calendar_driver
if (is_array($blacklist)) if (is_array($blacklist))
$forbidden = array_merge($forbidden, $blacklist); $forbidden = array_merge($forbidden, $blacklist);
foreach ($overlay as $prop => $value) {
if ($prop == 'start' || $prop == 'end') {
// handled by merge_exception_dates() below
}
else if ($prop == 'thisandfuture' && $overlay['_instance'] == $event['_instance']) {
$event[$prop] = $value;
}
else if ($prop[0] != '_' && !in_array($prop, $forbidden))
$event[$prop] = $value;
}
self::merge_exception_dates($event, $overlay);
}
/**
* Merge start/end date from the overlay event to the base event object
*
* @param array The event object to be altered
* @param array The overlay event object to be merged over $event
*/
public static function merge_exception_dates(&$event, $overlay)
{
// compute date offset from the exception // compute date offset from the exception
if ($overlay['start'] instanceof DateTime && $overlay['recurrence_date'] instanceof DateTime) { if ($overlay['start'] instanceof DateTime && $overlay['recurrence_date'] instanceof DateTime) {
$date_offset = $overlay['recurrence_date']->diff($overlay['start']); $date_offset = $overlay['recurrence_date']->diff($overlay['start']);
} }
foreach ($overlay as $prop => $value) { foreach (array('start', 'end') as $prop) {
if ($prop == 'start' || $prop == 'end') { $value = $overlay[$prop];
if (is_object($event[$prop]) && $event[$prop] instanceof DateTime) { if (is_object($event[$prop]) && $event[$prop] instanceof DateTime) {
// set date value if overlay is an exception of the current instance // set date value if overlay is an exception of the current instance
if (substr($overlay['_instance'], 0, 8) == substr($event['_instance'], 0, 8)) { if (substr($overlay['_instance'], 0, 8) == substr($event['_instance'], 0, 8)) {
@ -1425,12 +1472,6 @@ class kolab_driver extends calendar_driver
$event[$prop]->setTime($value->format('G'), intval($value->format('i')), intval($value->format('s'))); $event[$prop]->setTime($value->format('G'), intval($value->format('i')), intval($value->format('s')));
} }
} }
else if ($prop == 'thisandfuture' && $overlay['_instance'] == $event['_instance']) {
$event[$prop] = $value;
}
else if ($prop[0] != '_' && !in_array($prop, $forbidden))
$event[$prop] = $value;
}
} }
/** /**
@ -1652,15 +1693,14 @@ class kolab_driver extends calendar_driver
$event = $storage->get_event($event['id']); $event = $storage->get_event($event['id']);
} }
if ($event && !empty($event['_attachments'])) { if ($event) {
foreach ($event['_attachments'] as $att) { $attachments = isset($event['_attachments']) ? $event['_attachments'] : $event['attachments'];
foreach ((array) $attachments as $att) {
if ($att['id'] == $id) { if ($att['id'] == $id) {
return $att; return $att;
} }
} }
} }
return null;
} }
/** /**
@ -1753,15 +1793,15 @@ class kolab_driver extends calendar_driver
*/ */
private function get_recurrence_count($event, $dtstart) private function get_recurrence_count($event, $dtstart)
{ {
// load the given event data into a libkolabxml container
if (!$event['_formatobj']) {
$event_xml = new kolab_format_event();
$event_xml->set($event);
$event['_formatobj'] = $event_xml;
}
// use libkolab to compute recurring events // use libkolab to compute recurring events
if (class_exists('kolabcalendaring') && $event['_formatobj']) {
$recurrence = new kolab_date_recurrence($event['_formatobj']); $recurrence = new kolab_date_recurrence($event['_formatobj']);
}
else {
// fallback to local recurrence implementation
require_once($this->cal->home . '/lib/calendar_recurrence.php');
$recurrence = new calendar_recurrence($this->cal, $event);
}
$count = 0; $count = 0;
while (($next_event = $recurrence->next_instance()) && $next_event['start'] <= $dtstart && $count < 1000) { while (($next_event = $recurrence->next_instance()) && $next_event['start'] <= $dtstart && $count < 1000) {
@ -1972,46 +2012,7 @@ class kolab_driver extends calendar_driver
*/ */
public static function from_rcube_event($event, $old = array()) public static function from_rcube_event($event, $old = array())
{ {
// in kolab_storage attachments are indexed by content-id kolab_format::merge_attachments($event, $old);
if (is_array($event['attachments']) || !empty($event['deleted_attachments'])) {
$event['_attachments'] = array();
foreach ($event['attachments'] as $attachment) {
$key = null;
// Roundcube ID has nothing to do with the storage ID, remove it
if ($attachment['content'] || $attachment['path']) {
unset($attachment['id']);
}
else {
foreach ((array)$old['_attachments'] as $cid => $oldatt) {
if ($attachment['id'] == $oldatt['id'])
$key = $cid;
}
}
// flagged for deletion => set to false
if ($attachment['_deleted'] || in_array($attachment['id'], (array)$event['deleted_attachments'])) {
$event['_attachments'][$key] = false;
}
// replace existing entry
else if ($key) {
$event['_attachments'][$key] = $attachment;
}
// append as new attachment
else {
$event['_attachments'][] = $attachment;
}
}
$event['_attachments'] = array_merge((array)$old['_attachments'], $event['_attachments']);
// attachments flagged for deletion => set to false
foreach ($event['_attachments'] as $key => $attachment) {
if ($attachment['_deleted'] || in_array($attachment['id'], (array)$event['deleted_attachments'])) {
$event['_attachments'][$key] = false;
}
}
}
return $event; return $event;
} }
@ -2333,7 +2334,14 @@ class kolab_driver extends calendar_driver
if (in_array($calendar['id'], array(self::BIRTHDAY_CALENDAR_ID, self::INVITATIONS_CALENDAR_PENDING, self::INVITATIONS_CALENDAR_DECLINED))) { if (in_array($calendar['id'], array(self::BIRTHDAY_CALENDAR_ID, self::INVITATIONS_CALENDAR_PENDING, self::INVITATIONS_CALENDAR_DECLINED))) {
if ($calendar['id'] != self::BIRTHDAY_CALENDAR_ID) if ($calendar['id'] != self::BIRTHDAY_CALENDAR_ID)
unset($formfields['showalarms']); unset($formfields['showalarms']);
return parent::calendar_form($action, $calendar, $formfields);
// General tab
$form['props'] = array(
'name' => $this->rc->gettext('properties'),
'fields' => $formfields,
);
return kolab_utils::folder_form($form, '', 'calendar');
} }
$this->_read_calendars(); $this->_read_calendars();
@ -2367,6 +2375,7 @@ class kolab_driver extends calendar_driver
// General tab // General tab
$form['props'] = array( $form['props'] = array(
'name' => $this->rc->gettext('properties'), 'name' => $this->rc->gettext('properties'),
'fields' => array(),
); );
// Disable folder name input // Disable folder name input
@ -2377,12 +2386,7 @@ class kolab_driver extends calendar_driver
} }
// calendar name (default field) // calendar name (default field)
$form['props']['fieldsets']['location'] = array( $form['props']['fields']['location'] = $formfields['name'];
'name' => $this->rc->gettext('location'),
'content' => array(
'name' => $formfields['name']
),
);
if (!empty($options) && ($options['norename'] || $options['protected'])) { if (!empty($options) && ($options['norename'] || $options['protected'])) {
// prevent user from moving folder // prevent user from moving folder
@ -2390,7 +2394,7 @@ class kolab_driver extends calendar_driver
} }
else { else {
$select = kolab_storage::folder_selector('event', array('name' => 'parent', 'id' => 'calendar-parent'), $folder); $select = kolab_storage::folder_selector('event', array('name' => 'parent', 'id' => 'calendar-parent'), $folder);
$form['props']['fieldsets']['location']['content']['path'] = array( $form['props']['fields']['path'] = array(
'id' => 'calendar-parent', 'id' => 'calendar-parent',
'label' => $this->cal->gettext('parentcalendar'), 'label' => $this->cal->gettext('parentcalendar'),
'value' => $select->show(strlen($folder) ? $path_imap : ''), 'value' => $select->show(strlen($folder) ? $path_imap : ''),
@ -2398,138 +2402,10 @@ class kolab_driver extends calendar_driver
} }
// calendar color (default field) // calendar color (default field)
$form['props']['fieldsets']['settings'] = array( $form['props']['fields']['color'] = $formfields['color'];
'name' => $this->rc->gettext('settings'), $form['props']['fields']['alarms'] = $formfields['showalarms'];
'content' => array(
'color' => $formfields['color'],
'showalarms' => $formfields['showalarms'],
),
);
return kolab_utils::folder_form($form, $folder, 'calendar', $hidden_fields);
if ($action != 'form-new') {
$form['sharing'] = array(
'name' => rcube::Q($this->cal->gettext('tabsharing')),
'content' => html::tag('iframe', array(
'src' => $this->cal->rc->url(array('_action' => 'calendar-acl', 'id' => $calendar['id'], 'framed' => 1)),
'width' => '100%',
'height' => 350,
'border' => 0,
'style' => 'border:0'),
''),
);
}
$this->form_html = '';
if (is_array($hidden_fields)) {
foreach ($hidden_fields as $field) {
$hiddenfield = new html_hiddenfield($field);
$this->form_html .= $hiddenfield->show() . "\n";
}
}
// Create form output
foreach ($form as $tab) {
if (!empty($tab['fieldsets']) && is_array($tab['fieldsets'])) {
$content = '';
foreach ($tab['fieldsets'] as $fieldset) {
$subcontent = $this->get_form_part($fieldset);
if ($subcontent) {
$content .= html::tag('fieldset', null, html::tag('legend', null, rcube::Q($fieldset['name'])) . $subcontent) ."\n";
}
}
}
else {
$content = $this->get_form_part($tab);
}
if ($content) {
$this->form_html .= html::tag('fieldset', null, html::tag('legend', null, rcube::Q($tab['name'])) . $content) ."\n";
}
}
// Parse form template for skin-dependent stuff
$this->rc->output->add_handler('calendarform', array($this, 'calendar_form_html'));
return $this->rc->output->parse('calendar.kolabform', false, false);
}
/**
* Handler for template object
*/
public function calendar_form_html()
{
return $this->form_html;
}
/**
* Helper function used in calendar_form_content(). Creates a part of the form.
*/
private function get_form_part($form)
{
$content = '';
if (is_array($form['content']) && !empty($form['content'])) {
$table = new html_table(array('cols' => 2));
foreach ($form['content'] as $col => $colprop) {
$label = !empty($colprop['label']) ? $colprop['label'] : $this->cal->gettext($col);
$table->add('title', html::label($colprop['id'], rcube::Q($label)));
$table->add(null, $colprop['value']);
}
$content = $table->show();
}
else {
$content = $form['content'];
}
return $content;
}
/**
* Handler to render ACL form for a calendar folder
*/
public function calendar_acl()
{
$this->rc->output->add_handler('folderacl', array($this, 'calendar_acl_form'));
$this->rc->output->send('calendar.kolabacl');
}
/**
* Handler for ACL form template object
*/
public function calendar_acl_form()
{
$calid = rcube_utils::get_input_value('_id', rcube_utils::INPUT_GPC);
if ($calid && ($cal = $this->get_calendar($calid))) {
$folder = $cal->get_realname(); // UTF7
$color = $cal->get_color();
}
else {
$folder = '';
$color = '';
}
$storage = $this->rc->get_storage();
$delim = $storage->get_hierarchy_delimiter();
$form = array();
if (strlen($folder)) {
$path_imap = explode($delim, $folder);
array_pop($path_imap); // pop off name part
$path_imap = implode($path_imap, $delim);
$options = $storage->folder_info($folder);
// Allow plugins to modify the form content (e.g. with ACL form)
$plugin = $this->rc->plugins->exec_hook('calendar_form_kolab',
array('form' => $form, 'options' => $options, 'name' => $folder));
}
if (!$plugin['form']['sharing']['content'])
$plugin['form']['sharing']['content'] = html::div('hint', $this->cal->gettext('aclnorights'));
return $plugin['form']['sharing']['content'];
} }
/** /**

View file

@ -234,7 +234,7 @@ class kolab_invitation_calendar
$events = array(); $events = array();
foreach (kolab_storage::list_folders('', '*', 'event', null) as $foldername) { foreach (kolab_storage::list_folders('', '*', 'event', null) as $foldername) {
$cal = $this->_get_calendar($foldername); $cal = $this->_get_calendar($foldername);
if ($cal->get_namespace() == 'other') if (!$cal || $cal->get_namespace() == 'other')
continue; continue;
foreach ($cal->list_events($start, $end, $search, 1, $query, array(array($subquery, 'OR'))) as $event) { foreach ($cal->list_events($start, $end, $search, 1, $query, array(array($subquery, 'OR'))) as $event) {
@ -288,7 +288,7 @@ class kolab_invitation_calendar
$count = 0; $count = 0;
foreach (kolab_storage::list_folders('', '*', 'event', null) as $foldername) { foreach (kolab_storage::list_folders('', '*', 'event', null) as $foldername) {
$cal = $this->_get_calendar($foldername); $cal = $this->_get_calendar($foldername);
if ($cal->get_namespace() == 'other') if (!$cal || $cal->get_namespace() == 'other')
continue; continue;
$count += $cal->count_events($start, $end, $filter); $count += $cal->count_events($start, $end, $filter);

View file

@ -39,6 +39,7 @@ class kolab_user_calendar extends kolab_calendar
public function __construct($user_or_folder, $calendar) public function __construct($user_or_folder, $calendar)
{ {
$this->cal = $calendar; $this->cal = $calendar;
$this->imap = $calendar->rc->get_storage();
// full user record is provided // full user record is provided
if (is_array($user_or_folder)) { if (is_array($user_or_folder)) {
@ -84,9 +85,11 @@ class kolab_user_calendar extends kolab_calendar
/** /**
* Getter for the IMAP folder owner * Getter for the IMAP folder owner
* *
* @param bool Return a fully qualified owner name (unused)
*
* @return string Name of the folder owner * @return string Name of the folder owner
*/ */
public function get_owner() public function get_owner($fully_qualified = false)
{ {
return $this->userdata['mail']; return $this->userdata['mail'];
} }
@ -122,7 +125,7 @@ class kolab_user_calendar extends kolab_calendar
/** /**
* Return color to display this calendar * Return color to display this calendar
*/ */
public function get_color() public function get_color($default = null)
{ {
// calendar color is stored in local user prefs // calendar color is stored in local user prefs
$prefs = $this->cal->rc->config->get('kolab_calendars', array()); $prefs = $this->cal->rc->config->get('kolab_calendars', array());
@ -130,7 +133,7 @@ class kolab_user_calendar extends kolab_calendar
if (!empty($prefs[$this->id]) && !empty($prefs[$this->id]['color'])) if (!empty($prefs[$this->id]) && !empty($prefs[$this->id]['color']))
return $prefs[$this->id]['color']; return $prefs[$this->id]['color'];
return 'cc0000'; return $default ?: 'cc0000';
} }
/** /**
@ -195,9 +198,11 @@ class kolab_user_calendar extends kolab_calendar
* @param string Search query (optional) * @param string Search query (optional)
* @param boolean Include virtual events (optional) * @param boolean Include virtual events (optional)
* @param array Additional parameters to query storage * @param array Additional parameters to query storage
* @param array Additional query to filter events
*
* @return array A list of event records * @return array A list of event records
*/ */
public function list_events($start, $end, $search = null, $virtual = 1, $query = array()) public function list_events($start, $end, $search = null, $virtual = 1, $query = array(), $filter_query = null)
{ {
// convert to DateTime for comparisons // convert to DateTime for comparisons
try { try {
@ -223,12 +228,13 @@ class kolab_user_calendar extends kolab_calendar
} }
} }
// aggregate all calendar folders the user shares (but are not subscribed) // aggregate all calendar folders the user shares (but are not activated)
foreach (kolab_storage::list_user_folders($this->userdata, 'event', false) as $foldername) { foreach (kolab_storage::list_user_folders($this->userdata, 'event', 2) as $foldername) {
$cal = new kolab_calendar($foldername, $this->cal); $cal = new kolab_calendar($foldername, $this->cal);
foreach ($cal->list_events($start, $end, $search, 1) as $event) { foreach ($cal->list_events($start, $end, $search, 1) as $event) {
$this->events[$event['id']] = $event; $uid = $event['id'] ?: $event['uid'];
$this->timeindex[$this->time_key($event)] = $event['id']; $this->events[$uid] = $event;
$this->timeindex[$this->time_key($event)] = $uid;
} }
} }
@ -257,9 +263,10 @@ class kolab_user_calendar extends kolab_calendar
* *
* @param integer Date range start (unix timestamp) * @param integer Date range start (unix timestamp)
* @param integer Date range end (unix timestamp) * @param integer Date range end (unix timestamp)
* @param array Additional query to filter events
* @return integer Count * @return integer Count
*/ */
public function count_events($start, $end = null) public function count_events($start, $end = null, $filter_query = null)
{ {
// not implemented // not implemented
return 0; return 0;
@ -316,7 +323,7 @@ class kolab_user_calendar extends kolab_calendar
'X-OUT-OF-OFFICE' => $this->cal->gettext('availoutofoffice'), 'X-OUT-OF-OFFICE' => $this->cal->gettext('availoutofoffice'),
); );
// console('_fetch_freebusy', kolab_storage::get_freebusy_url($this->userdata['mail']), $fbdata); // rcube::console('_fetch_freebusy', kolab_storage::get_freebusy_url($this->userdata['mail']), $fbdata);
// parse free-busy information // parse free-busy information
$count = 0; $count = 0;
@ -332,7 +339,7 @@ class kolab_user_calendar extends kolab_calendar
foreach ($fb['periods'] as $tuple) { foreach ($fb['periods'] as $tuple) {
list($from, $to, $type) = $tuple; list($from, $to, $type) = $tuple;
$event = array( $event = array(
'id' => md5($this->id . $from->format('U') . '/' . $to->format('U')), 'uid' => md5($this->id . $from->format('U') . '/' . $to->format('U')),
'calendar' => $this->id, 'calendar' => $this->id,
'changed' => $fb['created'] ?: new DateTime(), 'changed' => $fb['created'] ?: new DateTime(),
'title' => $this->get_name() . ' ' . ($titlemap[$type] ?: $type), 'title' => $this->get_name() . ' ' . ($titlemap[$type] ?: $type),
@ -349,8 +356,8 @@ class kolab_user_calendar extends kolab_calendar
// avoid duplicate entries // avoid duplicate entries
$key = $this->time_key($event); $key = $this->time_key($event);
if (!$this->timeindex[$key]) { if (!$this->timeindex[$key]) {
$this->events[$event['id']] = $event; $this->events[$event['uid']] = $event;
$this->timeindex[$key] = $event['id']; $this->timeindex[$key] = $event['uid'];
$count++; $count++;
} }
} }
@ -365,7 +372,7 @@ class kolab_user_calendar extends kolab_calendar
*/ */
private function time_key($event) private function time_key($event)
{ {
return sprintf('%s/%s', $event['start']->format('U'), is_object($event['end']->format('U')) ?: '0'); return sprintf('%s/%s', $event['start']->format('U'), is_object($event['end']) ? $event['end']->format('U') : '0');
} }
/** /**
@ -412,15 +419,4 @@ class kolab_user_calendar extends kolab_calendar
{ {
return false; return false;
} }
/**
* Convert from Kolab_Format to internal representation
*/
private function _to_rcube_event($record)
{
$record['id'] = $record['uid'];
$record['calendar'] = $this->id;
return kolab_driver::to_rcube_event($record);
}
} }

View file

@ -0,0 +1 @@
../larry/calendar-print.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

View file

@ -14,5 +14,6 @@ The *Calendar* gives you access to your personal and shared calendar and schedul
manage manage
invitations invitations
importexport importexport
printing
sharing sharing

View file

@ -29,6 +29,8 @@ In case you accept, by either clicking *Accept* or *Maybe*, this will also copy
the event into your personal calendar. The selector right next to the buttons lets you the event into your personal calendar. The selector right next to the buttons lets you
choose the right one. choose the right one.
.. note:: It is sometimes useful (especially when declining or delegating an event) to respond without saving the event in your calendar. To do this use "--" entry in calendars selector.
The copy in your calendar now knows about the invitation and its original sender. If you now The copy in your calendar now knows about the invitation and its original sender. If you now
delete it from your calendar, you'll be asked whether this should send a declination delete it from your calendar, you'll be asked whether this should send a declination
message to the person who organizes the event. message to the person who organizes the event.
@ -52,4 +54,3 @@ your calendar will be updated with the RSVP status from the person who responded
When you now look at the event details in the calendar view, the status icons next When you now look at the event details in the calendar view, the status icons next
to each participant now displays the new status. to each participant now displays the new status.

View file

@ -50,7 +50,7 @@ Here's a description of all the possible values:
* ``Start``: Date and time when the event starts. * ``Start``: Date and time when the event starts.
* ``End``: Date and time when the event starts. * ``End``: Date and time when the event starts.
* ``all-day``: Check this if the event has no start/end time. * ``all-day``: Check this if the event has no start/end time.
* ``Reminder``: Will pop up with an notification at a the specified time before the event. * ``Reminder``: Will pop up with a notification at a the specified time before the event. It is possible to select 'Message' (default) or 'Sound'. When Sound is selected, a sound will be played at the selected time. This setting requires the host to be able to play sounds.
* ``Calendar``: The calendar the event is saved in. Change it to move an event from one calendar to another. * ``Calendar``: The calendar the event is saved in. Change it to move an event from one calendar to another.
* ``Category``: The type of event. Categories can also be used for :ref:`coloring <settings-calendar>`. * ``Category``: The type of event. Categories can also be used for :ref:`coloring <settings-calendar>`.
* ``Show me as``: The representation in your free/busy scheduling calendar visible to others. * ``Show me as``: The representation in your free/busy scheduling calendar visible to others.
@ -73,6 +73,13 @@ An important part of managing your schedule is to invite others to events and tr
In this part of the edit dialog you can manage the participants of an event. Read more about this In this part of the edit dialog you can manage the participants of an event. Read more about this
further down in the :ref:`calendar-event-participants` section. further down in the :ref:`calendar-event-participants` section.
**Resources**
As with participants, it is possible to manage the provided resources needed for the planned event. The tab is showing a list of the resources reserved for the current event.
* ``Book Resource``: If the name of the resource is known, it can be typed into the textfield, and will be booked when the Book Resource button is pushed.
* ``Find Resource``: If the name of the resource is not known, the Find Resource button is an option. It will open a new popup window showing a list of available resources, The FreeBusy information for these, and the Book Resource button.
**Attachments** **Attachments**
Sometimes a description text isn't enough to collect information for a specific event. Sometimes a description text isn't enough to collect information for a specific event.
@ -146,21 +153,19 @@ When creating a new event, switch to the *Participants* tab. You're already list
Invitations will be sent out when you click *Save* and the event is created. Invitations will be sent out when you click *Save* and the event is created.
.. only:: kolab .. index:: Availability
.. _calendar-availability-finder:
.. index:: Availability Find Availability
.. _calendar-availability-finder: ^^^^^^^^^^^^^^^^^
Find Availability Once all the participants are added to the list, you see the individual availability status for each one
^^^^^^^^^^^^^^^^^ of them, given that this information is available. In case not everybody is free, click the *Find availability...*
button to open the scheduling dialog. In that dialog, detailed availability information for all participants is
displayed. Use the *Previous/Next Slot* buttons to find the next time slot where all required participants are
available. Or drag the gray area representing the event duration with the mouse to manually select a free slot.
Once all the participants are added to the list, you see the individual availability status for each one Click *Select* to copy the rescheduled date/time back into the event form and to close this dialog.
of them, given that this information is available. In case not everybody is free, click the *Find availability...*
button to open the scheduling dialog. In that dialog, detailed availability information for all participants is
displayed. Use the *Previous/Next Slot* buttons to find the next time slot where all required participants are
available. Or drag the gray area representing the event duration with the mouse to manually select a free slot.
Click *Select* to copy the rescheduled date/time back into the event form and to close this dialog.
Receive Event Invitations Receive Event Invitations

View file

@ -92,11 +92,9 @@ Calendars List
Events can be organized in different calendars which are all displayed in the lower left list. Events can be organized in different calendars which are all displayed in the lower left list.
Use the checkboxes in that list to show or hide events from the specific calendars in the main view. Use the checkboxes in that list to show or hide events from the specific calendars in the main view.
.. only:: kolab Beside your personal calendars, the list also displays calendars shared by other users
or ones that are shared amongst your workgroup. Small icons in the list give a hint
Beside your personal calendars, the list also displays calendars shared by other users about the origin and some of them are possibly read-only which is denoted with a small lock icon.
or ones that are shared amongst your workgroup. Small icons in the list give a hint
about the origin and some of them are possibly read-only which is denoted with a small lock icon.
Colorized Events Colorized Events
@ -136,3 +134,10 @@ Remove entire Calendars
3. After a confirmation dialog, the selected calendar with all its events will be deleted. 3. After a confirmation dialog, the selected calendar with all its events will be deleted.
Caution: This action cannot be undone! Caution: This action cannot be undone!
Special Calendars
-----------------
A number of special calendars are prepared a default:
* ``Birthdays``: This calendar is listing birthdays of contacts as selected in the :ref:`settings-calendar`.
* ``Pending Invitations``: All pending invitations are listed in this calendar.
* ``Declined Invitations``: When invitations are declined, the events are listed in this calendar.

View file

@ -0,0 +1,24 @@
.. index:: Print
.. _calendar-print:
*************
Printing
*************
The calendar(s) currently shown in the main view can be printed to the default printer:
1. Select the desired calendar view.
2. Push the *Printer* icon in the toolbar.
3. A new print preview page will open.
4. Push the *Print* button in the top left corner of the print preview page.
.. figure:: _static/_skin/calendar-toolbar.png
:align: center
Calendar toolbar
.. figure:: _static/_skin/calendar-print.png
:scale: 75 %
:align: center
Print view page

View file

@ -24,9 +24,7 @@ Main Options
When opening the day or week view, the listing of events starts at this time. Of course all When opening the day or week view, the listing of events starts at this time. Of course all
hours of a day are visible by scrolling further up. hours of a day are visible by scrolling further up.
.. only:: kolab **Working hours**
**Working hours**
This time range will be used in the :ref:`availability finder <calendar-availability-finder>` This time range will be used in the :ref:`availability finder <calendar-availability-finder>`
when automatically selecting free slots for a meeting. when automatically selecting free slots for a meeting.

View file

@ -1,49 +1,46 @@
.. index:: Sharing
.. _calendar-sharing: .. _calendar-sharing:
.. only:: kolab Sharing Calendars
=================
.. index:: Sharing For collaboration, sharing calendars is an important feature. In the :ref:`overview <calendar-lists>`,
we have already learned how calendars others share with you appear in the calendars list. The following
Sharing Calendars now explains how to make personal calendars accessible to fellow users.
=================
For collaboration, sharing calendars is an important feature. In the :ref:`overview <calendar-lists>`,
we have already learned how calendars others share with you appear in the calendars list. The following
now explains how to make personal calendars accessible to fellow users.
Share a Calendar with others Share a Calendar with others
---------------------------- ----------------------------
Sharing is controlled through the :ref:`Calendar Settings Dialog <calendar-edit-properties>`. Sharing is controlled through the :ref:`Calendar Settings Dialog <calendar-edit-properties>`.
Double-click a calendar in the list on the left and then select the *Sharing* tab at the top of Double-click a calendar in the list on the left and then select the *Sharing* tab at the top of
the dialog box: the dialog box:
.. image:: _static/_skin/calendar-acl.png .. image:: _static/_skin/calendar-acl.png
The table displays who already has permission to see and modify the selected calendar. The table displays who already has permission to see and modify the selected calendar.
In order to share the calendar with a new user do In order to share the calendar with a new user do
1. Click the *Add entry* button (+) in the table footer 1. Click the *Add entry* button (+) in the table footer
2. Enter the username or choose one from the autocompletion menu that appears when you start typing. 2. Enter the username or choose one from the autocompletion menu that appears when you start typing.
Instead of a specific user, permissons can be granted for all users or guests. Instead of a specific user, permissons can be granted for all users or guests.
3. Select the access rights you want to grant for the user 3. Select the access rights you want to grant for the user
4. Click *Save* to add the permission 4. Click *Save* to add the permission
Double-click an entry to edit the permissions for a particular user or group. Double-click an entry to edit the permissions for a particular user or group.
For removing existing permissions, select the according entry in the list and then choose For removing existing permissions, select the according entry in the list and then choose
*Delete* from the menu behind the gear icon in the footer of the list. *Delete* from the menu behind the gear icon in the footer of the list.
Subscribe to Shared Calendars Subscribe to Shared Calendars
----------------------------- -----------------------------
Calendars shared by others are not showing up right away in the list within the calendar view. Calendars shared by others are not showing up right away in the list within the calendar view.
Switch to :ref:`Settings > Folders <settings-folders>` to see all resources you can access. Switch to :ref:`Settings > Folders <settings-folders>` to see all resources you can access.
There's a shortcut to this: click *Manage folders* in the options menu behind the gear icon There's a shortcut to this: click *Manage folders* in the options menu behind the gear icon
located the footer of the calendars list. located the footer of the calendars list.
In order to make a shared calendar appear in the calendars list, locate it in the folder manager In order to make a shared calendar appear in the calendars list, locate it in the folder manager
and check the *Subscribed* mark in the list. Only subscribed calendars are visible in the calendar view. and check the *Subscribed* mark in the list. Only subscribed calendars are visible in the calendar view.

View file

@ -0,0 +1,96 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014, roundcube.net
# This file is distributed under the same license as the Roundcube Webmail Help package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Kolab Documentation\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Arabic (http://www.transifex.com/kolab/kolab-documentation/language/ar/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ar\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
#: ../../en_US/_plugins/calendar/importexport.rst:9
msgid "Import/Export"
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:11
msgid ""
"Event data is usually exchanged using the standard |iCal|_ format which is "
"supported for import and export."
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:16
msgid "Importing Events"
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:18
msgid "This is how to add events from an |iCal|_ (.ics) file:"
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:20
msgid "Click the *Import* toolbar button in the calendar view."
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:21
msgid "Then select the file to import from your computer's hard drive."
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:22
msgid "Select the calendar to import the events to."
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:23
msgid "Select the threshold for old events to be imported."
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:24
msgid "Click *Import* and wait for the upload to finish."
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:26
msgid ""
"The calendar view will be refreshed to display the newly imported events. "
"Verify that the according calendar is active if you don't see them."
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:34
msgid "Exporting Events"
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:36
msgid ""
"Events from your calendars can be exported and downloaded in the |iCal|_ "
"format."
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:38
msgid "Click the *Export* toolbar button in the calendar view."
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:39
msgid "Select the calendar where events should be exported from."
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:40
msgid ""
"With the *Events from* selector you choose the time constraints for "
"exporting."
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:41
msgid "Click the *Export* button to start the export."
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:42
msgid ""
"Choose where to save the exported .ics file if prompted, otherwise check the"
" \"Downloads\" folder on your computer."
msgstr ""

View file

@ -0,0 +1,28 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014, roundcube.net
# This file is distributed under the same license as the Roundcube Webmail Help package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Kolab Documentation\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Arabic (http://www.transifex.com/kolab/kolab-documentation/language/ar/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ar\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
#: ../../en_US/_plugins/calendar/index.rst:9
msgid "Calendar"
msgstr ""
#: ../../en_US/_plugins/calendar/index.rst:11
msgid ""
"The *Calendar* gives you access to your personal and shared calendar and "
"scheduling functions."
msgstr ""

View file

@ -0,0 +1,103 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014, roundcube.net
# This file is distributed under the same license as the Roundcube Webmail Help package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Kolab Documentation\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Arabic (http://www.transifex.com/kolab/kolab-documentation/language/ar/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ar\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
#: ../../en_US/_plugins/calendar/invitations.rst:8
msgid "Handle Event Invitations"
msgstr ""
#: ../../en_US/_plugins/calendar/invitations.rst:10
msgid ""
"In chapter :ref:`calendar-event-participants` we have learned how to invite "
"other people to an event. This will send out invitation emails to all the "
"participants with the event data attached. That allows one to directly "
"accept or decline an event invitation."
msgstr ""
#: ../../en_US/_plugins/calendar/invitations.rst:17
msgid "Receive Event Invitations"
msgstr ""
#: ../../en_US/_plugins/calendar/invitations.rst:19
msgid ""
"When the webmail system opens an invitation email with event data attached, "
"it'll display a yellow box in the preview pane or the email view:"
msgstr ""
#: ../../en_US/_plugins/calendar/invitations.rst:25
msgid "Accept/Decline Invitations"
msgstr ""
#: ../../en_US/_plugins/calendar/invitations.rst:27
msgid ""
"Right in the box shown above, you can accept or decline the invitation by "
"clicking the according button. This will send an automated response to the "
"event organizer informing her about your decision and letting her update "
"your participant status in her calendar."
msgstr ""
#: ../../en_US/_plugins/calendar/invitations.rst:31
msgid ""
"In case you accept, by either clicking *Accept* or *Maybe*, this will also "
"copy the event into your personal calendar. The selector right next to the "
"buttons lets you choose the right one."
msgstr ""
#: ../../en_US/_plugins/calendar/invitations.rst:35
msgid ""
"The copy in your calendar now knows about the invitation and its original "
"sender. If you now delete it from your calendar, you'll be asked whether "
"this should send a declination message to the person who organizes the "
"event."
msgstr ""
#: ../../en_US/_plugins/calendar/invitations.rst:39
msgid ""
"After acceping or declining, the email message containing the invitation can"
" be deleted."
msgstr ""
#: ../../en_US/_plugins/calendar/invitations.rst:43
msgid "Process Invitation Replies"
msgstr ""
#: ../../en_US/_plugins/calendar/invitations.rst:45
msgid ""
"As an organizer who has invited others to an event, you'll receive responses"
" to the automatically sent invitations when the attendees either accept or "
"decline them."
msgstr ""
#: ../../en_US/_plugins/calendar/invitations.rst:48
msgid ""
"Such messages are also identified by the webmail system and again a yellow "
"box appears in the message view:"
msgstr ""
#: ../../en_US/_plugins/calendar/invitations.rst:53
msgid ""
"By clicking the *Update the participant's status* button, the original event"
" in your calendar will be updated with the RSVP status from the person who "
"responded here."
msgstr ""
#: ../../en_US/_plugins/calendar/invitations.rst:56
msgid ""
"When you now look at the event details in the calendar view, the status "
"icons next to each participant now displays the new status."
msgstr ""

View file

@ -0,0 +1,342 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014, roundcube.net
# This file is distributed under the same license as the Roundcube Webmail Help package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Kolab Documentation\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Arabic (http://www.transifex.com/kolab/kolab-documentation/language/ar/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ar\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
#: ../../en_US/_plugins/calendar/manage.rst:7
msgid "Manage Your Schedule"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:9
msgid ""
"All functions to maintain your events are accessible from the main calendar "
"view."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:13
msgid "Add Events to a Calendar"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:18
msgid "**Via toolbar**"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:16
msgid ""
"Click the *New event* button in the toolbar to get an empty dialog where you"
" enter the :ref:`event properties <calendar-edit-event>` such as summary, "
"date/time, reminders, etc. Click *Save* to finally add it to the selected "
"calendar."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:27
msgid "**At a specific date/time**"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:21
msgid ""
"Navigate the calendar view to the date you want to add an event for. Then "
"mark the range of time (or dates in month view) with the mouse by pressing "
"the button at the time the event should start and releasing it again at time"
" it finishes. This will open the :ref:`event dialog <calendar-edit-event>` "
"with the selected date/time range already filled in."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:26
msgid ""
"In order to create new all-day events, double-click the desired day in the "
"calendar view."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:33
msgid "Edit and Reschedule Events"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:36
msgid "The Event Dialog"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:38
msgid ""
"When clicking an event in the calendar view, a dialog showing its details is"
" displayed. Clicking the *Edit* button in that dialog opens the form to edit"
" all properties of the selected event."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:41
msgid ""
"The edit form is divided into different section which can be switched using "
"the tabs on top of the dialog:"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:44
msgid "**Summary**"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:46
msgid ""
"This general section has text fields and selectors for various properties of"
" an event. Here's a description of all the possible values:"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:49
msgid ""
"``Summary``: The title of the event. This is what you will see in the "
"calendar view."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:50
msgid "``Location``: Where the event will be taking place."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:51
msgid "``Description``: Any text that describes the event."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:52
msgid "``URL``: A link to more information about this event."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:53
msgid "``Start``: Date and time when the event starts."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:54
msgid "``End``: Date and time when the event starts."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:55
msgid "``all-day``: Check this if the event has no start/end time."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:56
msgid ""
"``Reminder``: Will pop up with an notification at a the specified time "
"before the event."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:57
msgid ""
"``Calendar``: The calendar the event is saved in. Change it to move an event"
" from one calendar to another."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:58
msgid ""
"``Category``: The type of event. Categories can also be used for "
":ref:`coloring <settings-calendar>`."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:59
msgid ""
"``Show me as``: The representation in your free/busy scheduling calendar "
"visible to others."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:60
msgid "``Priority``: The priority value of the event."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:61
msgid ""
"``Privacy``: Flag an event as \"private\" or \"confidential\" when sharing "
"your calendar with others."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:63
msgid "**Recurrence**"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:65
msgid ""
"For periodically recurring event series, this tabs has the settings how an "
"event is repeated over time."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:68
msgid "``Repeat``: Start with selecting a repetition interval (e.g. monthly)"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:69
msgid ""
"``Every``: How often the frequency will be relevant. For example, for an "
"event that takes place every other week choose Weekly and then 2. If you "
"choose a frequency of weekly or monthly you can select which days of the "
"week or month the event will occur."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:71
msgid ""
"``Until``: Determines the duration of the repetition. The recurrence can "
"either run forever, for a number it times or until a specific date."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:73
msgid "**Participants**"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:75
msgid ""
"An important part of managing your schedule is to invite others to events "
"and track their RSVP. In this part of the edit dialog you can manage the "
"participants of an event. Read more about this further down in the :ref"
":`calendar-event-participants` section."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:79
msgid "**Attachments**"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:81
msgid ""
"Sometimes a description text isn't enough to collect information for a "
"specific event. Switch to this tab to attach files to the current event or "
"to remove them again. Adding files works pretty much the same as "
":ref:`attaching them to email messages <mail-compose-attachments>`: first "
"select a file from your local disk and click *Upload* in order to attach it."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:86
msgid ""
"Don't forget to finally save the changes by clicking *Save* in the event "
"edit dialog. Even switching back and forth the tabs will not yet save the "
"data."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:93
msgid "Moving and Resizing with the Mouse"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:99
msgid ""
"If an existing event shall be rescheduled to another time or date, you'll "
"find it handy to do that directly in the calendar view without opening the "
"edit form. Simply grab the event block with the mouse and move it to the new"
" date or time. Release the mouse button to complete."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:103
msgid ""
"In *Month* and *Day* view, the event blocks have a small handle at the "
"bottom. Drag this with the mouse in order to resize the event meaning to "
"adjust its duration."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:111
msgid "Get Notifications"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:117
msgid ""
"While logged in to the webmail, event reminders will be displayed with pop-"
"up boxes at the specified time before the event starts. You can specify if "
"you want to see alarms for every calendar individually. Enable or disable "
"reminders in :ref:`Calendar Settings <calendar-edit-properties>` from the "
":ref:`calendar-lists`."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:122
msgid "Dismiss or Snooze Reminders"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:124
msgid ""
"When a reminder box pops up, you can either dismiss the notification for all"
" events or each one individually. When dismissed, no further reminders will "
"be displayed. Choose a time from the *Snooze* menu to get another reminder "
"after the selected time."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:133
msgid "Inviting Other People"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:135
msgid ""
"If you need to set up a meeting, and keep track of who's attending and who "
"is not, the calendar can do this as well as you to automatically send "
"invitations and read their responses."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:138
msgid ""
"When creating a new event, switch to the *Participants* tab. You're already "
"listed as the organizer of the event."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:142
msgid ""
"Enter the name or email address of the person to invite. Contacts from the "
"address book are suggested as you type. In order to send invitations, make "
"sure the entered contact has an email address. Type it in the form ``Person "
"Name <email@address.com>``."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:145
msgid "Click *Add participant* to add the person to the list."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:146
msgid "Select a *Role* (e.g. required or optional) for this person."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:147
msgid "Repeat 1-3 for further participants."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:148
msgid ""
"Check the *Send invitations* box if the application should send out "
"invitation emails."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:150
msgid ""
"Invitations will be sent out when you click *Save* and the event is created."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:158
msgid "Find Availability"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:160
msgid ""
"Once all the participants are added to the list, you see the individual "
"availability status for each one of them, given that this information is "
"available. In case not everybody is free, click the *Find availability...* "
"button to open the scheduling dialog. In that dialog, detailed availability "
"information for all participants is displayed. Use the *Previous/Next Slot* "
"buttons to find the next time slot where all required participants are "
"available. Or drag the gray area representing the event duration with the "
"mouse to manually select a free slot."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:166
msgid ""
"Click *Select* to copy the rescheduled date/time back into the event form "
"and to close this dialog."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:170
msgid "Receive Event Invitations"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:172
msgid ""
"How to process incoming event invitations is described in chapter :ref"
":`calendar-invitations`."
msgstr ""

View file

@ -0,0 +1,266 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014, roundcube.net
# This file is distributed under the same license as the Roundcube Webmail Help package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Kolab Documentation\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Arabic (http://www.transifex.com/kolab/kolab-documentation/language/ar/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ar\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
#: ../../en_US/_plugins/calendar/overview.rst:6
msgid "Overview"
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:8
msgid ""
"The screen of the calendar module presents the following parts: the "
":ref:`Calendar View <calendar-view>` itself, a small :ref:`Calendar Widget "
"<calendar-minicalendar>` the :ref:`calendar-lists` as well as the usual "
"toolbar and search box."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:17
msgid "Calendar View"
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:19
msgid ""
"The central part of the screen displays the schedule with events from the "
"active calendars matching the current date range. The active date range is "
"displayed above the calendar in the toolbar area and can be moved forward or"
" backward in time using the arrow buttons right next to the title."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:27
msgid "Change Views"
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:29
msgid ""
"You can view your calendar events in Day, Week, Month or Agenda view. Toggle"
" the view mode using the toolbar buttons above the calendar view."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:34
msgid "**Day**"
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:33
msgid ""
"All events of a single day appear at the time the begin and spawn a box "
"until their end time. The time scale is displayed in the left side of the "
"view. All-day events appear at the top."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:37
msgid "**Week**"
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:37
msgid ""
"Similar to the day view but lists all days of the week horizontally. All-day"
" events again appear at the top."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:42
msgid "**Month**"
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:40
msgid ""
"Shows all events of the selected month at a time. Each event only appears as"
" a single line and if there are more events in a day than can be listed, a "
"number at the bottom of the day field indicates that. Click that link to "
"open a zoomed view of that single day."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:47
msgid "**Agenda**"
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:45
msgid ""
"The agenda view shows a list of events for the selected range in a "
"chronological order and divided by headers denoting either days, weeks or "
"months. Both the number of the days considered for the listing as well as "
"the mode how to divide list can be adjusted with the controls at the bottom "
"of the agenda view."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:51
msgid ""
"For all the views, the small calendar on the left highlights the currently "
"listed days."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:54
msgid "Go to a specific Date"
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:56
msgid ""
"Use the mini calendar widget on the left to jump to a specific date. Simply "
"click a date and the date range of the current view moves to include the "
"selected day. The left/right arrows in the mini calendar's header quickly "
"cycle through the months. Use the drop-down menus hidden under the month and"
" year display in the widget header to directly jump to another month or "
"year."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:60
msgid ""
"A shortcut to switch the calendar view back to today or the current week "
"provides the *Today* button located in the toolbar."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:64
msgid "Show Event Details"
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:66
msgid ""
"Click an event box in the calendar view to open a dialog displaying all "
"details of the event."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:70
msgid "Searching Events"
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:72
msgid ""
"The search box above the calendar view lets you quickly get a list of events"
" matching the entered keyword in either the title, location, description or "
"attendees. Enter the search term into the box and press <Enter> on your "
"keyboard to start the search. The calendar view will switch to *Agenda* mode"
" in order to display a list of matches. Of course you can switch the view "
"again to display the search results differently."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:77
msgid ""
"Events are searched within a certain date reange only which is displayed "
"above the calendar view. Use the mini calendar widget or the arrow toolbar "
"buttons and the range selector below the agenda view to adjust the time "
"frame to search in."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:81
msgid ""
"For searching as well as for normal views, only events from active calendars"
" are displayed. Use the checkboxes in the :ref:`calendar-lists` to add or "
"hide events from different calendars."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:84
msgid ""
"Reset the search by clicking the *Reset search* icon on the right border of "
"the search box. This will also switch the calendar view to whatever mode you"
" had before the search."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:93
msgid "Calendars List"
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:95
msgid ""
"Events can be organized in different calendars which are all displayed in "
"the lower left list. Use the checkboxes in that list to show or hide events "
"from the specific calendars in the main view."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:100
msgid ""
"Beside your personal calendars, the list also displays calendars shared by "
"other users or ones that are shared amongst your workgroup. Small icons in "
"the list give a hint about the origin and some of them are possibly read-"
"only which is denoted with a small lock icon."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:106
msgid "Colorized Events"
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:108
msgid ""
"In order to better distinguish the events from various calendars in the "
"calendar view, calendars have a color assigned which is used to colorize the"
" events on the screen. Check the :ref:`settings-calendar` for more advanced "
"options how to colorize events in the calendar view."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:112
msgid ""
"You can create any number of calendars to store all your events and name "
"them individually."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:116
msgid "Create a New Calendar"
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:118
msgid "Click the + icon in the calendars list footer."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:119
msgid "In the dialog, give the new calendar a unique name and assign a color."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:120
msgid "Click *Save* to create it."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:122
msgid "The calendar view will reload and list the new calendar on the left."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:127
msgid "Edit Calendar Names and Settings"
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:129
#: ../../en_US/_plugins/calendar/overview.rst:137
msgid "Select the calendar to edit by clicking it in the list."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:130
msgid ""
"Click the gear icon in the calendars list footer and select *Edit* from the "
"options menu."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:131
msgid "Adjust name, color or reminders settings in the edit dialog."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:132
msgid "Click *Save* to finally update the calendar."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:135
msgid "Remove entire Calendars"
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:138
msgid ""
"Click the gear icon in the calendars list footer and select *Remove* from "
"the options menu."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:139
msgid ""
"After a confirmation dialog, the selected calendar with all its events will "
"be deleted. Caution: This action cannot be undone!"
msgstr ""

View file

@ -0,0 +1,178 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014, roundcube.net
# This file is distributed under the same license as the Roundcube Webmail Help package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Kolab Documentation\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:34+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Arabic (http://www.transifex.com/kolab/kolab-documentation/language/ar/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ar\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
#: ../../en_US/_plugins/calendar/settings.rst:8
msgid "Calendar Preferences"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:10
msgid ""
"The settings for the calendar module are listed in *Settings > Preferences* "
"and are grouped by the following sections:"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:14
msgid "Main Options"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:17
msgid "**Default view**"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:17
msgid ""
"Lets you select the :ref:`calendar-view` which is visible by default when "
"opening the calendar."
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:21
msgid "**Time slots per hour**"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:20
msgid ""
"How one hour in day and week view is divided vertically. If for example set "
"to 2, you will see events displayed in 30 minute blocks."
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:24
msgid "**First weekday**"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:24
msgid "Which weekday to begin the week view with."
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:28
msgid "**First hour to show**"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:27
msgid ""
"When opening the day or week view, the listing of events starts at this "
"time. Of course all hours of a day are visible by scrolling further up."
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:33
msgid "**Working hours**"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:33
msgid ""
"This time range will be used in the :ref:`availability finder <calendar-"
"availability-finder>` when automatically selecting free slots for a meeting."
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:40
msgid "**Event coloring**"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:37
msgid ""
"The coloring of the title of an event block (\"outline\") as well as the "
"background color of the box (\"content\") in day and week views is "
"influenced by the color of the calendar an event belongs to and/or the color"
" of the category it is assigned to. This setting lets you control which "
"source for coloring to use or if you even want a combined coloring that "
"reflects both, the assignment of calendars and categories."
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:43
msgid "**Default reminder setting**"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:43
msgid ""
"When creating new events, they'll have this type of reminder set by default."
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:46
msgid "**Default reminder time**"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:46
msgid "When enabling reminders in a new event, use this preset as default."
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:51
msgid "**Create new events in**"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:49
msgid ""
"This is the default selection for saving new events. Used in both the "
"calendar view and when accepting event invitations."
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:54
msgid "Categories"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:56
msgid ""
"This block allows the management of categories used in your calendar and "
"assign colors to them. Use the color picker to change the color by clicking "
"on the square color box in the categories list."
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:59
msgid ""
"To add a new category, enter its unique name into the text box below the "
"listing and then click the *Add category** button to add it. Note that you "
"still need to click the *Save* button at the bottom of the preferences panel"
" in order to finally register the new categories."
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:65
msgid "Birthdays Calendar"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:67
msgid ""
"The calendar view and also display birthdays from contacts saved in your "
"address book. This block controls how this is done."
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:71
msgid "**Display birthdays calendar**"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:71
msgid "Enable the birthdays calendar feature with this checkbox."
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:74
msgid "**From these address books**"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:74
msgid ""
"Choose from which address books you'd like to see birthdays in your "
"calendar."
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:80
msgid "**Show reminders**"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:77
msgid ""
"This option controls whether and when to display reminder notifications for "
"upcoming birthdays."
msgstr ""

View file

@ -0,0 +1,99 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014, roundcube.net
# This file is distributed under the same license as the Roundcube Webmail Help package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Kolab Documentation\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:34+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Arabic (http://www.transifex.com/kolab/kolab-documentation/language/ar/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ar\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
#: ../../en_US/_plugins/calendar/sharing.rst:11
msgid "Sharing Calendars"
msgstr ""
#: ../../en_US/_plugins/calendar/sharing.rst:13
msgid ""
"For collaboration, sharing calendars is an important feature. In the "
":ref:`overview <calendar-lists>`, we have already learned how calendars "
"others share with you appear in the calendars list. The following now "
"explains how to make personal calendars accessible to fellow users."
msgstr ""
#: ../../en_US/_plugins/calendar/sharing.rst:19
msgid "Share a Calendar with others"
msgstr ""
#: ../../en_US/_plugins/calendar/sharing.rst:21
msgid ""
"Sharing is controlled through the :ref:`Calendar Settings Dialog <calendar-"
"edit-properties>`. Double-click a calendar in the list on the left and then "
"select the *Sharing* tab at the top of the dialog box:"
msgstr ""
#: ../../en_US/_plugins/calendar/sharing.rst:27
msgid ""
"The table displays who already has permission to see and modify the selected"
" calendar. In order to share the calendar with a new user do"
msgstr ""
#: ../../en_US/_plugins/calendar/sharing.rst:30
msgid "Click the *Add entry* button (+) in the table footer"
msgstr ""
#: ../../en_US/_plugins/calendar/sharing.rst:31
msgid ""
"Enter the username or choose one from the autocompletion menu that appears "
"when you start typing. Instead of a specific user, permissons can be granted"
" for all users or guests."
msgstr ""
#: ../../en_US/_plugins/calendar/sharing.rst:33
msgid "Select the access rights you want to grant for the user"
msgstr ""
#: ../../en_US/_plugins/calendar/sharing.rst:34
msgid "Click *Save* to add the permission"
msgstr ""
#: ../../en_US/_plugins/calendar/sharing.rst:36
msgid ""
"Double-click an entry to edit the permissions for a particular user or "
"group."
msgstr ""
#: ../../en_US/_plugins/calendar/sharing.rst:38
msgid ""
"For removing existing permissions, select the according entry in the list "
"and then choose *Delete* from the menu behind the gear icon in the footer of"
" the list."
msgstr ""
#: ../../en_US/_plugins/calendar/sharing.rst:43
msgid "Subscribe to Shared Calendars"
msgstr ""
#: ../../en_US/_plugins/calendar/sharing.rst:45
msgid ""
"Calendars shared by others are not showing up right away in the list within "
"the calendar view. Switch to :ref:`Settings > Folders <settings-folders>` to"
" see all resources you can access. There's a shortcut to this: click *Manage"
" folders* in the options menu behind the gear icon located the footer of the"
" calendars list."
msgstr ""
#: ../../en_US/_plugins/calendar/sharing.rst:50
msgid ""
"In order to make a shared calendar appear in the calendars list, locate it "
"in the folder manager and check the *Subscribed* mark in the list. Only "
"subscribed calendars are visible in the calendar view."
msgstr ""

View file

@ -10,7 +10,7 @@ msgstr ""
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:33+0000\n" "PO-Revision-Date: 2014-11-27 23:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/projects/p/kolab-documentation/language/bg_BG/)\n" "Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/kolab/kolab-documentation/language/bg_BG/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View file

@ -10,7 +10,7 @@ msgstr ""
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:33+0000\n" "PO-Revision-Date: 2014-11-27 23:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/projects/p/kolab-documentation/language/bg_BG/)\n" "Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/kolab/kolab-documentation/language/bg_BG/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View file

@ -10,7 +10,7 @@ msgstr ""
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:33+0000\n" "PO-Revision-Date: 2014-11-27 23:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/projects/p/kolab-documentation/language/bg_BG/)\n" "Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/kolab/kolab-documentation/language/bg_BG/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View file

@ -10,7 +10,7 @@ msgstr ""
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:33+0000\n" "PO-Revision-Date: 2014-11-27 23:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/projects/p/kolab-documentation/language/bg_BG/)\n" "Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/kolab/kolab-documentation/language/bg_BG/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View file

@ -10,7 +10,7 @@ msgstr ""
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:33+0000\n" "PO-Revision-Date: 2014-11-27 23:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/projects/p/kolab-documentation/language/bg_BG/)\n" "Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/kolab/kolab-documentation/language/bg_BG/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View file

@ -10,7 +10,7 @@ msgstr ""
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:34+0000\n" "PO-Revision-Date: 2014-11-27 23:34+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/projects/p/kolab-documentation/language/bg_BG/)\n" "Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/kolab/kolab-documentation/language/bg_BG/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View file

@ -10,7 +10,7 @@ msgstr ""
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:34+0000\n" "PO-Revision-Date: 2014-11-27 23:34+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/projects/p/kolab-documentation/language/bg_BG/)\n" "Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/kolab/kolab-documentation/language/bg_BG/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View file

@ -10,7 +10,7 @@ msgstr ""
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:33+0000\n" "PO-Revision-Date: 2014-11-27 23:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Catalan (Spain) (http://www.transifex.com/projects/p/kolab-documentation/language/ca_ES/)\n" "Language-Team: Catalan (Spain) (http://www.transifex.com/kolab/kolab-documentation/language/ca_ES/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View file

@ -10,7 +10,7 @@ msgstr ""
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:33+0000\n" "PO-Revision-Date: 2014-11-27 23:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Catalan (Spain) (http://www.transifex.com/projects/p/kolab-documentation/language/ca_ES/)\n" "Language-Team: Catalan (Spain) (http://www.transifex.com/kolab/kolab-documentation/language/ca_ES/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View file

@ -10,7 +10,7 @@ msgstr ""
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:33+0000\n" "PO-Revision-Date: 2014-11-27 23:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Catalan (Spain) (http://www.transifex.com/projects/p/kolab-documentation/language/ca_ES/)\n" "Language-Team: Catalan (Spain) (http://www.transifex.com/kolab/kolab-documentation/language/ca_ES/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View file

@ -10,7 +10,7 @@ msgstr ""
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:33+0000\n" "PO-Revision-Date: 2014-11-27 23:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Catalan (Spain) (http://www.transifex.com/projects/p/kolab-documentation/language/ca_ES/)\n" "Language-Team: Catalan (Spain) (http://www.transifex.com/kolab/kolab-documentation/language/ca_ES/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View file

@ -10,7 +10,7 @@ msgstr ""
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:33+0000\n" "PO-Revision-Date: 2014-11-27 23:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Catalan (Spain) (http://www.transifex.com/projects/p/kolab-documentation/language/ca_ES/)\n" "Language-Team: Catalan (Spain) (http://www.transifex.com/kolab/kolab-documentation/language/ca_ES/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View file

@ -10,7 +10,7 @@ msgstr ""
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:34+0000\n" "PO-Revision-Date: 2014-11-27 23:34+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Catalan (Spain) (http://www.transifex.com/projects/p/kolab-documentation/language/ca_ES/)\n" "Language-Team: Catalan (Spain) (http://www.transifex.com/kolab/kolab-documentation/language/ca_ES/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View file

@ -10,7 +10,7 @@ msgstr ""
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:34+0000\n" "PO-Revision-Date: 2014-11-27 23:34+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Catalan (Spain) (http://www.transifex.com/projects/p/kolab-documentation/language/ca_ES/)\n" "Language-Team: Catalan (Spain) (http://www.transifex.com/kolab/kolab-documentation/language/ca_ES/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View file

@ -10,12 +10,12 @@ msgstr ""
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:33+0000\n" "PO-Revision-Date: 2014-11-27 23:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Czech (http://www.transifex.com/projects/p/kolab-documentation/language/cs/)\n" "Language-Team: Czech (http://www.transifex.com/kolab/kolab-documentation/language/cs/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: cs\n" "Language: cs\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
#: ../../en_US/_plugins/calendar/importexport.rst:9 #: ../../en_US/_plugins/calendar/importexport.rst:9
msgid "Import/Export" msgid "Import/Export"

View file

@ -10,12 +10,12 @@ msgstr ""
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:33+0000\n" "PO-Revision-Date: 2014-11-27 23:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Czech (http://www.transifex.com/projects/p/kolab-documentation/language/cs/)\n" "Language-Team: Czech (http://www.transifex.com/kolab/kolab-documentation/language/cs/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: cs\n" "Language: cs\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
#: ../../en_US/_plugins/calendar/index.rst:9 #: ../../en_US/_plugins/calendar/index.rst:9
msgid "Calendar" msgid "Calendar"

View file

@ -10,12 +10,12 @@ msgstr ""
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:33+0000\n" "PO-Revision-Date: 2014-11-27 23:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Czech (http://www.transifex.com/projects/p/kolab-documentation/language/cs/)\n" "Language-Team: Czech (http://www.transifex.com/kolab/kolab-documentation/language/cs/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: cs\n" "Language: cs\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
#: ../../en_US/_plugins/calendar/invitations.rst:8 #: ../../en_US/_plugins/calendar/invitations.rst:8
msgid "Handle Event Invitations" msgid "Handle Event Invitations"

View file

@ -10,12 +10,12 @@ msgstr ""
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:33+0000\n" "PO-Revision-Date: 2014-11-27 23:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Czech (http://www.transifex.com/projects/p/kolab-documentation/language/cs/)\n" "Language-Team: Czech (http://www.transifex.com/kolab/kolab-documentation/language/cs/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: cs\n" "Language: cs\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
#: ../../en_US/_plugins/calendar/manage.rst:7 #: ../../en_US/_plugins/calendar/manage.rst:7
msgid "Manage Your Schedule" msgid "Manage Your Schedule"

View file

@ -10,12 +10,12 @@ msgstr ""
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:33+0000\n" "PO-Revision-Date: 2014-11-27 23:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Czech (http://www.transifex.com/projects/p/kolab-documentation/language/cs/)\n" "Language-Team: Czech (http://www.transifex.com/kolab/kolab-documentation/language/cs/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: cs\n" "Language: cs\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
#: ../../en_US/_plugins/calendar/overview.rst:6 #: ../../en_US/_plugins/calendar/overview.rst:6
msgid "Overview" msgid "Overview"

View file

@ -10,12 +10,12 @@ msgstr ""
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:34+0000\n" "PO-Revision-Date: 2014-11-27 23:34+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Czech (http://www.transifex.com/projects/p/kolab-documentation/language/cs/)\n" "Language-Team: Czech (http://www.transifex.com/kolab/kolab-documentation/language/cs/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: cs\n" "Language: cs\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
#: ../../en_US/_plugins/calendar/settings.rst:8 #: ../../en_US/_plugins/calendar/settings.rst:8
msgid "Calendar Preferences" msgid "Calendar Preferences"

View file

@ -10,12 +10,12 @@ msgstr ""
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:34+0000\n" "PO-Revision-Date: 2014-11-27 23:34+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Czech (http://www.transifex.com/projects/p/kolab-documentation/language/cs/)\n" "Language-Team: Czech (http://www.transifex.com/kolab/kolab-documentation/language/cs/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: cs\n" "Language: cs\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
#: ../../en_US/_plugins/calendar/sharing.rst:11 #: ../../en_US/_plugins/calendar/sharing.rst:11
msgid "Sharing Calendars" msgid "Sharing Calendars"

View file

@ -10,7 +10,7 @@ msgstr ""
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:33+0000\n" "PO-Revision-Date: 2014-11-27 23:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Danish (http://www.transifex.com/projects/p/kolab-documentation/language/da/)\n" "Language-Team: Danish (http://www.transifex.com/kolab/kolab-documentation/language/da/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View file

@ -10,7 +10,7 @@ msgstr ""
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:33+0000\n" "PO-Revision-Date: 2014-11-27 23:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Danish (http://www.transifex.com/projects/p/kolab-documentation/language/da/)\n" "Language-Team: Danish (http://www.transifex.com/kolab/kolab-documentation/language/da/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View file

@ -10,7 +10,7 @@ msgstr ""
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:33+0000\n" "PO-Revision-Date: 2014-11-27 23:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Danish (http://www.transifex.com/projects/p/kolab-documentation/language/da/)\n" "Language-Team: Danish (http://www.transifex.com/kolab/kolab-documentation/language/da/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View file

@ -10,7 +10,7 @@ msgstr ""
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:33+0000\n" "PO-Revision-Date: 2014-11-27 23:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Danish (http://www.transifex.com/projects/p/kolab-documentation/language/da/)\n" "Language-Team: Danish (http://www.transifex.com/kolab/kolab-documentation/language/da/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View file

@ -10,7 +10,7 @@ msgstr ""
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:33+0000\n" "PO-Revision-Date: 2014-11-27 23:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Danish (http://www.transifex.com/projects/p/kolab-documentation/language/da/)\n" "Language-Team: Danish (http://www.transifex.com/kolab/kolab-documentation/language/da/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View file

@ -10,7 +10,7 @@ msgstr ""
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:34+0000\n" "PO-Revision-Date: 2014-11-27 23:34+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Danish (http://www.transifex.com/projects/p/kolab-documentation/language/da/)\n" "Language-Team: Danish (http://www.transifex.com/kolab/kolab-documentation/language/da/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View file

@ -10,7 +10,7 @@ msgstr ""
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:34+0000\n" "PO-Revision-Date: 2014-11-27 23:34+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Danish (http://www.transifex.com/projects/p/kolab-documentation/language/da/)\n" "Language-Team: Danish (http://www.transifex.com/kolab/kolab-documentation/language/da/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View file

@ -10,7 +10,7 @@ msgstr ""
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:33+0000\n" "PO-Revision-Date: 2014-11-27 23:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: German (Switzerland) (http://www.transifex.com/projects/p/kolab-documentation/language/de_CH/)\n" "Language-Team: German (Switzerland) (http://www.transifex.com/kolab/kolab-documentation/language/de_CH/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View file

@ -10,7 +10,7 @@ msgstr ""
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:33+0000\n" "PO-Revision-Date: 2014-11-27 23:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: German (Switzerland) (http://www.transifex.com/projects/p/kolab-documentation/language/de_CH/)\n" "Language-Team: German (Switzerland) (http://www.transifex.com/kolab/kolab-documentation/language/de_CH/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View file

@ -10,7 +10,7 @@ msgstr ""
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:33+0000\n" "PO-Revision-Date: 2014-11-27 23:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: German (Switzerland) (http://www.transifex.com/projects/p/kolab-documentation/language/de_CH/)\n" "Language-Team: German (Switzerland) (http://www.transifex.com/kolab/kolab-documentation/language/de_CH/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View file

@ -10,7 +10,7 @@ msgstr ""
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:33+0000\n" "PO-Revision-Date: 2014-11-27 23:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: German (Switzerland) (http://www.transifex.com/projects/p/kolab-documentation/language/de_CH/)\n" "Language-Team: German (Switzerland) (http://www.transifex.com/kolab/kolab-documentation/language/de_CH/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View file

@ -10,7 +10,7 @@ msgstr ""
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:33+0000\n" "PO-Revision-Date: 2014-11-27 23:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: German (Switzerland) (http://www.transifex.com/projects/p/kolab-documentation/language/de_CH/)\n" "Language-Team: German (Switzerland) (http://www.transifex.com/kolab/kolab-documentation/language/de_CH/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View file

@ -10,7 +10,7 @@ msgstr ""
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:34+0000\n" "PO-Revision-Date: 2014-11-27 23:34+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: German (Switzerland) (http://www.transifex.com/projects/p/kolab-documentation/language/de_CH/)\n" "Language-Team: German (Switzerland) (http://www.transifex.com/kolab/kolab-documentation/language/de_CH/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View file

@ -10,7 +10,7 @@ msgstr ""
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:34+0000\n" "PO-Revision-Date: 2014-11-27 23:34+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: German (Switzerland) (http://www.transifex.com/projects/p/kolab-documentation/language/de_CH/)\n" "Language-Team: German (Switzerland) (http://www.transifex.com/kolab/kolab-documentation/language/de_CH/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View file

@ -4,14 +4,16 @@
# #
# Translators: # Translators:
# Ettore Atalan <atalanttore@googlemail.com>, 2014 # Ettore Atalan <atalanttore@googlemail.com>, 2014
# Gerd Seyfarth <mail@netsecond.net>, 2015
# Jeroen van Meeuwen <vanmeeuwen@kolabsys.com>, 2016
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Kolab Documentation\n" "Project-Id-Version: Kolab Documentation\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:47+0000\n" "PO-Revision-Date: 2017-09-23 20:32+0000\n"
"Last-Translator: Torsten Grote <grote@kolabsys.com>\n" "Last-Translator: Jeroen van Meeuwen <vanmeeuwen@kolabsys.com>\n"
"Language-Team: German (http://www.transifex.com/projects/p/kolab-documentation/language/de/)\n" "Language-Team: German (http://www.transifex.com/kolab/kolab-documentation/language/de/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
@ -20,7 +22,7 @@ msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:9 #: ../../en_US/_plugins/calendar/importexport.rst:9
msgid "Import/Export" msgid "Import/Export"
msgstr "Import/Export" msgstr "Importieren/Exportieren"
#: ../../en_US/_plugins/calendar/importexport.rst:11 #: ../../en_US/_plugins/calendar/importexport.rst:11
msgid "" msgid ""
@ -42,7 +44,7 @@ msgstr "Klicken Sie in der Kalenderansicht auf die Werkzeugleistenschaltfläche
#: ../../en_US/_plugins/calendar/importexport.rst:21 #: ../../en_US/_plugins/calendar/importexport.rst:21
msgid "Then select the file to import from your computer's hard drive." msgid "Then select the file to import from your computer's hard drive."
msgstr "" msgstr "Dann die Datei für den Import von Ihrer Festplatte wählen."
#: ../../en_US/_plugins/calendar/importexport.rst:22 #: ../../en_US/_plugins/calendar/importexport.rst:22
msgid "Select the calendar to import the events to." msgid "Select the calendar to import the events to."
@ -78,7 +80,7 @@ msgstr "Klicken Sie in der Kalenderansicht auf die Werkzeugleistenschaltfläche
#: ../../en_US/_plugins/calendar/importexport.rst:39 #: ../../en_US/_plugins/calendar/importexport.rst:39
msgid "Select the calendar where events should be exported from." msgid "Select the calendar where events should be exported from."
msgstr "" msgstr "Kalender wählen dessen Termine exportiert werden sollen."
#: ../../en_US/_plugins/calendar/importexport.rst:40 #: ../../en_US/_plugins/calendar/importexport.rst:40
msgid "" msgid ""

View file

@ -9,9 +9,9 @@ msgstr ""
"Project-Id-Version: Kolab Documentation\n" "Project-Id-Version: Kolab Documentation\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:47+0000\n" "PO-Revision-Date: 2017-09-23 20:32+0000\n"
"Last-Translator: Torsten Grote <grote@kolabsys.com>\n" "Last-Translator: Jeroen van Meeuwen <vanmeeuwen@kolabsys.com>\n"
"Language-Team: German (http://www.transifex.com/projects/p/kolab-documentation/language/de/)\n" "Language-Team: German (http://www.transifex.com/kolab/kolab-documentation/language/de/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View file

@ -9,9 +9,9 @@ msgstr ""
"Project-Id-Version: Kolab Documentation\n" "Project-Id-Version: Kolab Documentation\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-28 00:16+0000\n" "PO-Revision-Date: 2017-09-23 20:32+0000\n"
"Last-Translator: Torsten Grote <grote@kolabsys.com>\n" "Last-Translator: Jeroen van Meeuwen <vanmeeuwen@kolabsys.com>\n"
"Language-Team: German (http://www.transifex.com/projects/p/kolab-documentation/language/de/)\n" "Language-Team: German (http://www.transifex.com/kolab/kolab-documentation/language/de/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View file

@ -9,9 +9,9 @@ msgstr ""
"Project-Id-Version: Kolab Documentation\n" "Project-Id-Version: Kolab Documentation\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-28 00:17+0000\n" "PO-Revision-Date: 2017-09-23 20:32+0000\n"
"Last-Translator: Torsten Grote <grote@kolabsys.com>\n" "Last-Translator: Jeroen van Meeuwen <vanmeeuwen@kolabsys.com>\n"
"Language-Team: German (http://www.transifex.com/projects/p/kolab-documentation/language/de/)\n" "Language-Team: German (http://www.transifex.com/kolab/kolab-documentation/language/de/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View file

@ -9,9 +9,9 @@ msgstr ""
"Project-Id-Version: Kolab Documentation\n" "Project-Id-Version: Kolab Documentation\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-28 00:17+0000\n" "PO-Revision-Date: 2017-09-23 20:32+0000\n"
"Last-Translator: Torsten Grote <grote@kolabsys.com>\n" "Last-Translator: Jeroen van Meeuwen <vanmeeuwen@kolabsys.com>\n"
"Language-Team: German (http://www.transifex.com/projects/p/kolab-documentation/language/de/)\n" "Language-Team: German (http://www.transifex.com/kolab/kolab-documentation/language/de/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View file

@ -9,9 +9,9 @@ msgstr ""
"Project-Id-Version: Kolab Documentation\n" "Project-Id-Version: Kolab Documentation\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-28 00:17+0000\n" "PO-Revision-Date: 2017-09-23 20:32+0000\n"
"Last-Translator: Torsten Grote <grote@kolabsys.com>\n" "Last-Translator: Jeroen van Meeuwen <vanmeeuwen@kolabsys.com>\n"
"Language-Team: German (http://www.transifex.com/projects/p/kolab-documentation/language/de/)\n" "Language-Team: German (http://www.transifex.com/kolab/kolab-documentation/language/de/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View file

@ -4,14 +4,16 @@
# #
# Translators: # Translators:
# Ettore Atalan <atalanttore@googlemail.com>, 2014 # Ettore Atalan <atalanttore@googlemail.com>, 2014
# Mads <mads@batmads.com>, 2016
# Max Hellwig <max.hellwig@translating-energy.de>, 2016
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Kolab Documentation\n" "Project-Id-Version: Kolab Documentation\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-28 00:17+0000\n" "PO-Revision-Date: 2017-09-23 20:32+0000\n"
"Last-Translator: Torsten Grote <grote@kolabsys.com>\n" "Last-Translator: Max Hellwig <max.hellwig@translating-energy.de>\n"
"Language-Team: German (http://www.transifex.com/projects/p/kolab-documentation/language/de/)\n" "Language-Team: German (http://www.transifex.com/kolab/kolab-documentation/language/de/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
@ -20,7 +22,7 @@ msgstr ""
#: ../../en_US/_plugins/calendar/sharing.rst:11 #: ../../en_US/_plugins/calendar/sharing.rst:11
msgid "Sharing Calendars" msgid "Sharing Calendars"
msgstr "Geteilte Kalender" msgstr "Kalender teilen"
#: ../../en_US/_plugins/calendar/sharing.rst:13 #: ../../en_US/_plugins/calendar/sharing.rst:13
msgid "" msgid ""
@ -28,56 +30,56 @@ msgid ""
":ref:`overview <calendar-lists>`, we have already learned how calendars " ":ref:`overview <calendar-lists>`, we have already learned how calendars "
"others share with you appear in the calendars list. The following now " "others share with you appear in the calendars list. The following now "
"explains how to make personal calendars accessible to fellow users." "explains how to make personal calendars accessible to fellow users."
msgstr "" msgstr "Kalender zu teilen ist ein wichtiger Teil der Zusammenarbeit. In der :ref:`Übersicht <calendar-lists>` haben wir schon gelernt, wie Kalender, die von anderen mit Ihnen teilen, in der Kalenderliste aussehen. Im Folgenden wird jetzt erklärt wie man persönliche Kalender für andere Benutzer zugänglich macht."
#: ../../en_US/_plugins/calendar/sharing.rst:19 #: ../../en_US/_plugins/calendar/sharing.rst:19
msgid "Share a Calendar with others" msgid "Share a Calendar with others"
msgstr "Kalender mit Anderen teilen" msgstr "Einen Kalender mit Anderen teilen"
#: ../../en_US/_plugins/calendar/sharing.rst:21 #: ../../en_US/_plugins/calendar/sharing.rst:21
msgid "" msgid ""
"Sharing is controlled through the :ref:`Calendar Settings Dialog <calendar-" "Sharing is controlled through the :ref:`Calendar Settings Dialog <calendar-"
"edit-properties>`. Double-click a calendar in the list on the left and then " "edit-properties>`. Double-click a calendar in the list on the left and then "
"select the *Sharing* tab at the top of the dialog box:" "select the *Sharing* tab at the top of the dialog box:"
msgstr "" msgstr "Das Teilen wird über den :ref:`Kalendereinstellungen-Dialog <calendar-edit-properties>` gesteuert. Doppelklicken Sie einen Kalenders in der Liste links und wählen dann den *Teilen*-Reiter im oberen Teil des Dialogfensters aus:"
#: ../../en_US/_plugins/calendar/sharing.rst:27 #: ../../en_US/_plugins/calendar/sharing.rst:27
msgid "" msgid ""
"The table displays who already has permission to see and modify the selected" "The table displays who already has permission to see and modify the selected"
" calendar. In order to share the calendar with a new user do" " calendar. In order to share the calendar with a new user do"
msgstr "" msgstr "Die Tabelle zeigt an, wer schon Erlaubnis hat, den ausgewählten Kalender zu sehen und verändern. Um den Kalender mit einem neuen Benutzer zu teilen,"
#: ../../en_US/_plugins/calendar/sharing.rst:30 #: ../../en_US/_plugins/calendar/sharing.rst:30
msgid "Click the *Add entry* button (+) in the table footer" msgid "Click the *Add entry* button (+) in the table footer"
msgstr "Klicken Sie auf die Schaltfläche *Eintrag hinzufügen* (+) im Tabellenfuß" msgstr "klicken Sie auf die *Eintrag hinzufügen*-Schaltfläche (+) in der Fußzeile der Tabelle."
#: ../../en_US/_plugins/calendar/sharing.rst:31 #: ../../en_US/_plugins/calendar/sharing.rst:31
msgid "" msgid ""
"Enter the username or choose one from the autocompletion menu that appears " "Enter the username or choose one from the autocompletion menu that appears "
"when you start typing. Instead of a specific user, permissons can be granted" "when you start typing. Instead of a specific user, permissons can be granted"
" for all users or guests." " for all users or guests."
msgstr "" msgstr "Geben Sie den Benutzername ein oder wählen Sie einen aus dem Autovervollständigungs-Menü aus, das erscheint, wenn Sie zu tippen beginnen. Statt einem bestimmten Benutzer können Erlaubnisse auch allen Benutzern oder Gästen gewährt werden."
#: ../../en_US/_plugins/calendar/sharing.rst:33 #: ../../en_US/_plugins/calendar/sharing.rst:33
msgid "Select the access rights you want to grant for the user" msgid "Select the access rights you want to grant for the user"
msgstr "" msgstr "Wählen Sie die Zugangsberechtigungen, die Sie dem Benutzer gewähren wollen."
#: ../../en_US/_plugins/calendar/sharing.rst:34 #: ../../en_US/_plugins/calendar/sharing.rst:34
msgid "Click *Save* to add the permission" msgid "Click *Save* to add the permission"
msgstr "Klicken Sie auf *Speichern* zum Hinzufügen der Berechtigung." msgstr "Klicken Sie auf *Speichern*, um die Erlaubnis hinzuzufügen."
#: ../../en_US/_plugins/calendar/sharing.rst:36 #: ../../en_US/_plugins/calendar/sharing.rst:36
msgid "" msgid ""
"Double-click an entry to edit the permissions for a particular user or " "Double-click an entry to edit the permissions for a particular user or "
"group." "group."
msgstr "" msgstr "Doppelklicken Sie einen Eintrag, um Erlaubnisse für einen bestimmten Benutzer oder eine bestimmte Gruppe zu bearbeiten."
#: ../../en_US/_plugins/calendar/sharing.rst:38 #: ../../en_US/_plugins/calendar/sharing.rst:38
msgid "" msgid ""
"For removing existing permissions, select the according entry in the list " "For removing existing permissions, select the according entry in the list "
"and then choose *Delete* from the menu behind the gear icon in the footer of" "and then choose *Delete* from the menu behind the gear icon in the footer of"
" the list." " the list."
msgstr "" msgstr "Um bestehende Freigaben zu entfernen, wählen Sie den entsprechenden Eintrag in der Liste aus und wählen dann *Löschen* aus dem Menü hinter dem Zahnradicon in der Fußzeile der Liste aus."
#: ../../en_US/_plugins/calendar/sharing.rst:43 #: ../../en_US/_plugins/calendar/sharing.rst:43
msgid "Subscribe to Shared Calendars" msgid "Subscribe to Shared Calendars"
@ -90,11 +92,11 @@ msgid ""
" see all resources you can access. There's a shortcut to this: click *Manage" " see all resources you can access. There's a shortcut to this: click *Manage"
" folders* in the options menu behind the gear icon located the footer of the" " folders* in the options menu behind the gear icon located the footer of the"
" calendars list." " calendars list."
msgstr "" msgstr "Von anderen geteilte Kalender tauchen nicht sofort in der Liste innerhalb der Kalenderansicht auf. Wechseln Sie zu :ref:`Einstellungen > Ordner <settings-folders>`, um alle Hilfsmittel zu sehen, auf die Sie zugreifen können. Es gibt auch einen kürzeren Weg dorthin: Klicken Sie auf *Ordner verwalten* im Optionsmenü hinter dem Zahnradicon in der Fußzeile der Kalenderliste."
#: ../../en_US/_plugins/calendar/sharing.rst:50 #: ../../en_US/_plugins/calendar/sharing.rst:50
msgid "" msgid ""
"In order to make a shared calendar appear in the calendars list, locate it " "In order to make a shared calendar appear in the calendars list, locate it "
"in the folder manager and check the *Subscribed* mark in the list. Only " "in the folder manager and check the *Subscribed* mark in the list. Only "
"subscribed calendars are visible in the calendar view." "subscribed calendars are visible in the calendar view."
msgstr "" msgstr "Um einen geteilten Kalender in der Kalenderliste erscheinen zu lassen, suchen Sie ihn in der Ordnerverwaltung und versehen Sie das *Abonniert*-Kästchen in der Liste mit einem Häkchen. Nur abonnierte Kalender sind in der Kalenderansicht sichtbar."

View file

@ -0,0 +1,96 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014, roundcube.net
# This file is distributed under the same license as the Roundcube Webmail Help package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Kolab Documentation\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Greek (http://www.transifex.com/kolab/kolab-documentation/language/el/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: el\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../../en_US/_plugins/calendar/importexport.rst:9
msgid "Import/Export"
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:11
msgid ""
"Event data is usually exchanged using the standard |iCal|_ format which is "
"supported for import and export."
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:16
msgid "Importing Events"
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:18
msgid "This is how to add events from an |iCal|_ (.ics) file:"
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:20
msgid "Click the *Import* toolbar button in the calendar view."
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:21
msgid "Then select the file to import from your computer's hard drive."
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:22
msgid "Select the calendar to import the events to."
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:23
msgid "Select the threshold for old events to be imported."
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:24
msgid "Click *Import* and wait for the upload to finish."
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:26
msgid ""
"The calendar view will be refreshed to display the newly imported events. "
"Verify that the according calendar is active if you don't see them."
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:34
msgid "Exporting Events"
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:36
msgid ""
"Events from your calendars can be exported and downloaded in the |iCal|_ "
"format."
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:38
msgid "Click the *Export* toolbar button in the calendar view."
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:39
msgid "Select the calendar where events should be exported from."
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:40
msgid ""
"With the *Events from* selector you choose the time constraints for "
"exporting."
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:41
msgid "Click the *Export* button to start the export."
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:42
msgid ""
"Choose where to save the exported .ics file if prompted, otherwise check the"
" \"Downloads\" folder on your computer."
msgstr ""

View file

@ -0,0 +1,29 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014, roundcube.net
# This file is distributed under the same license as the Roundcube Webmail Help package.
#
# Translators:
# Efstathios Iosifidis <iefstathios@gmail.com>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Kolab Documentation\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2017-09-23 01:21+0000\n"
"Last-Translator: Efstathios Iosifidis <iefstathios@gmail.com>\n"
"Language-Team: Greek (http://www.transifex.com/kolab/kolab-documentation/language/el/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: el\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../../en_US/_plugins/calendar/index.rst:9
msgid "Calendar"
msgstr "Ημερολόγιο"
#: ../../en_US/_plugins/calendar/index.rst:11
msgid ""
"The *Calendar* gives you access to your personal and shared calendar and "
"scheduling functions."
msgstr ""

View file

@ -0,0 +1,103 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014, roundcube.net
# This file is distributed under the same license as the Roundcube Webmail Help package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Kolab Documentation\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Greek (http://www.transifex.com/kolab/kolab-documentation/language/el/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: el\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../../en_US/_plugins/calendar/invitations.rst:8
msgid "Handle Event Invitations"
msgstr ""
#: ../../en_US/_plugins/calendar/invitations.rst:10
msgid ""
"In chapter :ref:`calendar-event-participants` we have learned how to invite "
"other people to an event. This will send out invitation emails to all the "
"participants with the event data attached. That allows one to directly "
"accept or decline an event invitation."
msgstr ""
#: ../../en_US/_plugins/calendar/invitations.rst:17
msgid "Receive Event Invitations"
msgstr ""
#: ../../en_US/_plugins/calendar/invitations.rst:19
msgid ""
"When the webmail system opens an invitation email with event data attached, "
"it'll display a yellow box in the preview pane or the email view:"
msgstr ""
#: ../../en_US/_plugins/calendar/invitations.rst:25
msgid "Accept/Decline Invitations"
msgstr ""
#: ../../en_US/_plugins/calendar/invitations.rst:27
msgid ""
"Right in the box shown above, you can accept or decline the invitation by "
"clicking the according button. This will send an automated response to the "
"event organizer informing her about your decision and letting her update "
"your participant status in her calendar."
msgstr ""
#: ../../en_US/_plugins/calendar/invitations.rst:31
msgid ""
"In case you accept, by either clicking *Accept* or *Maybe*, this will also "
"copy the event into your personal calendar. The selector right next to the "
"buttons lets you choose the right one."
msgstr ""
#: ../../en_US/_plugins/calendar/invitations.rst:35
msgid ""
"The copy in your calendar now knows about the invitation and its original "
"sender. If you now delete it from your calendar, you'll be asked whether "
"this should send a declination message to the person who organizes the "
"event."
msgstr ""
#: ../../en_US/_plugins/calendar/invitations.rst:39
msgid ""
"After acceping or declining, the email message containing the invitation can"
" be deleted."
msgstr ""
#: ../../en_US/_plugins/calendar/invitations.rst:43
msgid "Process Invitation Replies"
msgstr ""
#: ../../en_US/_plugins/calendar/invitations.rst:45
msgid ""
"As an organizer who has invited others to an event, you'll receive responses"
" to the automatically sent invitations when the attendees either accept or "
"decline them."
msgstr ""
#: ../../en_US/_plugins/calendar/invitations.rst:48
msgid ""
"Such messages are also identified by the webmail system and again a yellow "
"box appears in the message view:"
msgstr ""
#: ../../en_US/_plugins/calendar/invitations.rst:53
msgid ""
"By clicking the *Update the participant's status* button, the original event"
" in your calendar will be updated with the RSVP status from the person who "
"responded here."
msgstr ""
#: ../../en_US/_plugins/calendar/invitations.rst:56
msgid ""
"When you now look at the event details in the calendar view, the status "
"icons next to each participant now displays the new status."
msgstr ""

View file

@ -0,0 +1,342 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014, roundcube.net
# This file is distributed under the same license as the Roundcube Webmail Help package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Kolab Documentation\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Greek (http://www.transifex.com/kolab/kolab-documentation/language/el/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: el\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../../en_US/_plugins/calendar/manage.rst:7
msgid "Manage Your Schedule"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:9
msgid ""
"All functions to maintain your events are accessible from the main calendar "
"view."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:13
msgid "Add Events to a Calendar"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:18
msgid "**Via toolbar**"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:16
msgid ""
"Click the *New event* button in the toolbar to get an empty dialog where you"
" enter the :ref:`event properties <calendar-edit-event>` such as summary, "
"date/time, reminders, etc. Click *Save* to finally add it to the selected "
"calendar."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:27
msgid "**At a specific date/time**"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:21
msgid ""
"Navigate the calendar view to the date you want to add an event for. Then "
"mark the range of time (or dates in month view) with the mouse by pressing "
"the button at the time the event should start and releasing it again at time"
" it finishes. This will open the :ref:`event dialog <calendar-edit-event>` "
"with the selected date/time range already filled in."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:26
msgid ""
"In order to create new all-day events, double-click the desired day in the "
"calendar view."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:33
msgid "Edit and Reschedule Events"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:36
msgid "The Event Dialog"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:38
msgid ""
"When clicking an event in the calendar view, a dialog showing its details is"
" displayed. Clicking the *Edit* button in that dialog opens the form to edit"
" all properties of the selected event."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:41
msgid ""
"The edit form is divided into different section which can be switched using "
"the tabs on top of the dialog:"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:44
msgid "**Summary**"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:46
msgid ""
"This general section has text fields and selectors for various properties of"
" an event. Here's a description of all the possible values:"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:49
msgid ""
"``Summary``: The title of the event. This is what you will see in the "
"calendar view."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:50
msgid "``Location``: Where the event will be taking place."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:51
msgid "``Description``: Any text that describes the event."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:52
msgid "``URL``: A link to more information about this event."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:53
msgid "``Start``: Date and time when the event starts."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:54
msgid "``End``: Date and time when the event starts."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:55
msgid "``all-day``: Check this if the event has no start/end time."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:56
msgid ""
"``Reminder``: Will pop up with an notification at a the specified time "
"before the event."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:57
msgid ""
"``Calendar``: The calendar the event is saved in. Change it to move an event"
" from one calendar to another."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:58
msgid ""
"``Category``: The type of event. Categories can also be used for "
":ref:`coloring <settings-calendar>`."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:59
msgid ""
"``Show me as``: The representation in your free/busy scheduling calendar "
"visible to others."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:60
msgid "``Priority``: The priority value of the event."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:61
msgid ""
"``Privacy``: Flag an event as \"private\" or \"confidential\" when sharing "
"your calendar with others."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:63
msgid "**Recurrence**"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:65
msgid ""
"For periodically recurring event series, this tabs has the settings how an "
"event is repeated over time."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:68
msgid "``Repeat``: Start with selecting a repetition interval (e.g. monthly)"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:69
msgid ""
"``Every``: How often the frequency will be relevant. For example, for an "
"event that takes place every other week choose Weekly and then 2. If you "
"choose a frequency of weekly or monthly you can select which days of the "
"week or month the event will occur."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:71
msgid ""
"``Until``: Determines the duration of the repetition. The recurrence can "
"either run forever, for a number it times or until a specific date."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:73
msgid "**Participants**"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:75
msgid ""
"An important part of managing your schedule is to invite others to events "
"and track their RSVP. In this part of the edit dialog you can manage the "
"participants of an event. Read more about this further down in the :ref"
":`calendar-event-participants` section."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:79
msgid "**Attachments**"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:81
msgid ""
"Sometimes a description text isn't enough to collect information for a "
"specific event. Switch to this tab to attach files to the current event or "
"to remove them again. Adding files works pretty much the same as "
":ref:`attaching them to email messages <mail-compose-attachments>`: first "
"select a file from your local disk and click *Upload* in order to attach it."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:86
msgid ""
"Don't forget to finally save the changes by clicking *Save* in the event "
"edit dialog. Even switching back and forth the tabs will not yet save the "
"data."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:93
msgid "Moving and Resizing with the Mouse"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:99
msgid ""
"If an existing event shall be rescheduled to another time or date, you'll "
"find it handy to do that directly in the calendar view without opening the "
"edit form. Simply grab the event block with the mouse and move it to the new"
" date or time. Release the mouse button to complete."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:103
msgid ""
"In *Month* and *Day* view, the event blocks have a small handle at the "
"bottom. Drag this with the mouse in order to resize the event meaning to "
"adjust its duration."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:111
msgid "Get Notifications"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:117
msgid ""
"While logged in to the webmail, event reminders will be displayed with pop-"
"up boxes at the specified time before the event starts. You can specify if "
"you want to see alarms for every calendar individually. Enable or disable "
"reminders in :ref:`Calendar Settings <calendar-edit-properties>` from the "
":ref:`calendar-lists`."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:122
msgid "Dismiss or Snooze Reminders"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:124
msgid ""
"When a reminder box pops up, you can either dismiss the notification for all"
" events or each one individually. When dismissed, no further reminders will "
"be displayed. Choose a time from the *Snooze* menu to get another reminder "
"after the selected time."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:133
msgid "Inviting Other People"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:135
msgid ""
"If you need to set up a meeting, and keep track of who's attending and who "
"is not, the calendar can do this as well as you to automatically send "
"invitations and read their responses."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:138
msgid ""
"When creating a new event, switch to the *Participants* tab. You're already "
"listed as the organizer of the event."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:142
msgid ""
"Enter the name or email address of the person to invite. Contacts from the "
"address book are suggested as you type. In order to send invitations, make "
"sure the entered contact has an email address. Type it in the form ``Person "
"Name <email@address.com>``."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:145
msgid "Click *Add participant* to add the person to the list."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:146
msgid "Select a *Role* (e.g. required or optional) for this person."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:147
msgid "Repeat 1-3 for further participants."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:148
msgid ""
"Check the *Send invitations* box if the application should send out "
"invitation emails."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:150
msgid ""
"Invitations will be sent out when you click *Save* and the event is created."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:158
msgid "Find Availability"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:160
msgid ""
"Once all the participants are added to the list, you see the individual "
"availability status for each one of them, given that this information is "
"available. In case not everybody is free, click the *Find availability...* "
"button to open the scheduling dialog. In that dialog, detailed availability "
"information for all participants is displayed. Use the *Previous/Next Slot* "
"buttons to find the next time slot where all required participants are "
"available. Or drag the gray area representing the event duration with the "
"mouse to manually select a free slot."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:166
msgid ""
"Click *Select* to copy the rescheduled date/time back into the event form "
"and to close this dialog."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:170
msgid "Receive Event Invitations"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:172
msgid ""
"How to process incoming event invitations is described in chapter :ref"
":`calendar-invitations`."
msgstr ""

View file

@ -0,0 +1,266 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014, roundcube.net
# This file is distributed under the same license as the Roundcube Webmail Help package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Kolab Documentation\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Greek (http://www.transifex.com/kolab/kolab-documentation/language/el/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: el\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../../en_US/_plugins/calendar/overview.rst:6
msgid "Overview"
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:8
msgid ""
"The screen of the calendar module presents the following parts: the "
":ref:`Calendar View <calendar-view>` itself, a small :ref:`Calendar Widget "
"<calendar-minicalendar>` the :ref:`calendar-lists` as well as the usual "
"toolbar and search box."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:17
msgid "Calendar View"
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:19
msgid ""
"The central part of the screen displays the schedule with events from the "
"active calendars matching the current date range. The active date range is "
"displayed above the calendar in the toolbar area and can be moved forward or"
" backward in time using the arrow buttons right next to the title."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:27
msgid "Change Views"
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:29
msgid ""
"You can view your calendar events in Day, Week, Month or Agenda view. Toggle"
" the view mode using the toolbar buttons above the calendar view."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:34
msgid "**Day**"
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:33
msgid ""
"All events of a single day appear at the time the begin and spawn a box "
"until their end time. The time scale is displayed in the left side of the "
"view. All-day events appear at the top."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:37
msgid "**Week**"
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:37
msgid ""
"Similar to the day view but lists all days of the week horizontally. All-day"
" events again appear at the top."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:42
msgid "**Month**"
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:40
msgid ""
"Shows all events of the selected month at a time. Each event only appears as"
" a single line and if there are more events in a day than can be listed, a "
"number at the bottom of the day field indicates that. Click that link to "
"open a zoomed view of that single day."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:47
msgid "**Agenda**"
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:45
msgid ""
"The agenda view shows a list of events for the selected range in a "
"chronological order and divided by headers denoting either days, weeks or "
"months. Both the number of the days considered for the listing as well as "
"the mode how to divide list can be adjusted with the controls at the bottom "
"of the agenda view."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:51
msgid ""
"For all the views, the small calendar on the left highlights the currently "
"listed days."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:54
msgid "Go to a specific Date"
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:56
msgid ""
"Use the mini calendar widget on the left to jump to a specific date. Simply "
"click a date and the date range of the current view moves to include the "
"selected day. The left/right arrows in the mini calendar's header quickly "
"cycle through the months. Use the drop-down menus hidden under the month and"
" year display in the widget header to directly jump to another month or "
"year."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:60
msgid ""
"A shortcut to switch the calendar view back to today or the current week "
"provides the *Today* button located in the toolbar."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:64
msgid "Show Event Details"
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:66
msgid ""
"Click an event box in the calendar view to open a dialog displaying all "
"details of the event."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:70
msgid "Searching Events"
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:72
msgid ""
"The search box above the calendar view lets you quickly get a list of events"
" matching the entered keyword in either the title, location, description or "
"attendees. Enter the search term into the box and press <Enter> on your "
"keyboard to start the search. The calendar view will switch to *Agenda* mode"
" in order to display a list of matches. Of course you can switch the view "
"again to display the search results differently."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:77
msgid ""
"Events are searched within a certain date reange only which is displayed "
"above the calendar view. Use the mini calendar widget or the arrow toolbar "
"buttons and the range selector below the agenda view to adjust the time "
"frame to search in."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:81
msgid ""
"For searching as well as for normal views, only events from active calendars"
" are displayed. Use the checkboxes in the :ref:`calendar-lists` to add or "
"hide events from different calendars."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:84
msgid ""
"Reset the search by clicking the *Reset search* icon on the right border of "
"the search box. This will also switch the calendar view to whatever mode you"
" had before the search."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:93
msgid "Calendars List"
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:95
msgid ""
"Events can be organized in different calendars which are all displayed in "
"the lower left list. Use the checkboxes in that list to show or hide events "
"from the specific calendars in the main view."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:100
msgid ""
"Beside your personal calendars, the list also displays calendars shared by "
"other users or ones that are shared amongst your workgroup. Small icons in "
"the list give a hint about the origin and some of them are possibly read-"
"only which is denoted with a small lock icon."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:106
msgid "Colorized Events"
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:108
msgid ""
"In order to better distinguish the events from various calendars in the "
"calendar view, calendars have a color assigned which is used to colorize the"
" events on the screen. Check the :ref:`settings-calendar` for more advanced "
"options how to colorize events in the calendar view."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:112
msgid ""
"You can create any number of calendars to store all your events and name "
"them individually."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:116
msgid "Create a New Calendar"
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:118
msgid "Click the + icon in the calendars list footer."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:119
msgid "In the dialog, give the new calendar a unique name and assign a color."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:120
msgid "Click *Save* to create it."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:122
msgid "The calendar view will reload and list the new calendar on the left."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:127
msgid "Edit Calendar Names and Settings"
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:129
#: ../../en_US/_plugins/calendar/overview.rst:137
msgid "Select the calendar to edit by clicking it in the list."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:130
msgid ""
"Click the gear icon in the calendars list footer and select *Edit* from the "
"options menu."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:131
msgid "Adjust name, color or reminders settings in the edit dialog."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:132
msgid "Click *Save* to finally update the calendar."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:135
msgid "Remove entire Calendars"
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:138
msgid ""
"Click the gear icon in the calendars list footer and select *Remove* from "
"the options menu."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:139
msgid ""
"After a confirmation dialog, the selected calendar with all its events will "
"be deleted. Caution: This action cannot be undone!"
msgstr ""

View file

@ -0,0 +1,178 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014, roundcube.net
# This file is distributed under the same license as the Roundcube Webmail Help package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Kolab Documentation\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:34+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Greek (http://www.transifex.com/kolab/kolab-documentation/language/el/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: el\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../../en_US/_plugins/calendar/settings.rst:8
msgid "Calendar Preferences"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:10
msgid ""
"The settings for the calendar module are listed in *Settings > Preferences* "
"and are grouped by the following sections:"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:14
msgid "Main Options"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:17
msgid "**Default view**"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:17
msgid ""
"Lets you select the :ref:`calendar-view` which is visible by default when "
"opening the calendar."
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:21
msgid "**Time slots per hour**"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:20
msgid ""
"How one hour in day and week view is divided vertically. If for example set "
"to 2, you will see events displayed in 30 minute blocks."
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:24
msgid "**First weekday**"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:24
msgid "Which weekday to begin the week view with."
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:28
msgid "**First hour to show**"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:27
msgid ""
"When opening the day or week view, the listing of events starts at this "
"time. Of course all hours of a day are visible by scrolling further up."
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:33
msgid "**Working hours**"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:33
msgid ""
"This time range will be used in the :ref:`availability finder <calendar-"
"availability-finder>` when automatically selecting free slots for a meeting."
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:40
msgid "**Event coloring**"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:37
msgid ""
"The coloring of the title of an event block (\"outline\") as well as the "
"background color of the box (\"content\") in day and week views is "
"influenced by the color of the calendar an event belongs to and/or the color"
" of the category it is assigned to. This setting lets you control which "
"source for coloring to use or if you even want a combined coloring that "
"reflects both, the assignment of calendars and categories."
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:43
msgid "**Default reminder setting**"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:43
msgid ""
"When creating new events, they'll have this type of reminder set by default."
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:46
msgid "**Default reminder time**"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:46
msgid "When enabling reminders in a new event, use this preset as default."
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:51
msgid "**Create new events in**"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:49
msgid ""
"This is the default selection for saving new events. Used in both the "
"calendar view and when accepting event invitations."
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:54
msgid "Categories"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:56
msgid ""
"This block allows the management of categories used in your calendar and "
"assign colors to them. Use the color picker to change the color by clicking "
"on the square color box in the categories list."
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:59
msgid ""
"To add a new category, enter its unique name into the text box below the "
"listing and then click the *Add category** button to add it. Note that you "
"still need to click the *Save* button at the bottom of the preferences panel"
" in order to finally register the new categories."
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:65
msgid "Birthdays Calendar"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:67
msgid ""
"The calendar view and also display birthdays from contacts saved in your "
"address book. This block controls how this is done."
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:71
msgid "**Display birthdays calendar**"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:71
msgid "Enable the birthdays calendar feature with this checkbox."
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:74
msgid "**From these address books**"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:74
msgid ""
"Choose from which address books you'd like to see birthdays in your "
"calendar."
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:80
msgid "**Show reminders**"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:77
msgid ""
"This option controls whether and when to display reminder notifications for "
"upcoming birthdays."
msgstr ""

View file

@ -0,0 +1,99 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014, roundcube.net
# This file is distributed under the same license as the Roundcube Webmail Help package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Kolab Documentation\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:34+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Greek (http://www.transifex.com/kolab/kolab-documentation/language/el/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: el\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../../en_US/_plugins/calendar/sharing.rst:11
msgid "Sharing Calendars"
msgstr ""
#: ../../en_US/_plugins/calendar/sharing.rst:13
msgid ""
"For collaboration, sharing calendars is an important feature. In the "
":ref:`overview <calendar-lists>`, we have already learned how calendars "
"others share with you appear in the calendars list. The following now "
"explains how to make personal calendars accessible to fellow users."
msgstr ""
#: ../../en_US/_plugins/calendar/sharing.rst:19
msgid "Share a Calendar with others"
msgstr ""
#: ../../en_US/_plugins/calendar/sharing.rst:21
msgid ""
"Sharing is controlled through the :ref:`Calendar Settings Dialog <calendar-"
"edit-properties>`. Double-click a calendar in the list on the left and then "
"select the *Sharing* tab at the top of the dialog box:"
msgstr ""
#: ../../en_US/_plugins/calendar/sharing.rst:27
msgid ""
"The table displays who already has permission to see and modify the selected"
" calendar. In order to share the calendar with a new user do"
msgstr ""
#: ../../en_US/_plugins/calendar/sharing.rst:30
msgid "Click the *Add entry* button (+) in the table footer"
msgstr ""
#: ../../en_US/_plugins/calendar/sharing.rst:31
msgid ""
"Enter the username or choose one from the autocompletion menu that appears "
"when you start typing. Instead of a specific user, permissons can be granted"
" for all users or guests."
msgstr ""
#: ../../en_US/_plugins/calendar/sharing.rst:33
msgid "Select the access rights you want to grant for the user"
msgstr ""
#: ../../en_US/_plugins/calendar/sharing.rst:34
msgid "Click *Save* to add the permission"
msgstr ""
#: ../../en_US/_plugins/calendar/sharing.rst:36
msgid ""
"Double-click an entry to edit the permissions for a particular user or "
"group."
msgstr ""
#: ../../en_US/_plugins/calendar/sharing.rst:38
msgid ""
"For removing existing permissions, select the according entry in the list "
"and then choose *Delete* from the menu behind the gear icon in the footer of"
" the list."
msgstr ""
#: ../../en_US/_plugins/calendar/sharing.rst:43
msgid "Subscribe to Shared Calendars"
msgstr ""
#: ../../en_US/_plugins/calendar/sharing.rst:45
msgid ""
"Calendars shared by others are not showing up right away in the list within "
"the calendar view. Switch to :ref:`Settings > Folders <settings-folders>` to"
" see all resources you can access. There's a shortcut to this: click *Manage"
" folders* in the options menu behind the gear icon located the footer of the"
" calendars list."
msgstr ""
#: ../../en_US/_plugins/calendar/sharing.rst:50
msgid ""
"In order to make a shared calendar appear in the calendars list, locate it "
"in the folder manager and check the *Subscribed* mark in the list. Only "
"subscribed calendars are visible in the calendar view."
msgstr ""

View file

@ -0,0 +1,96 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014, roundcube.net
# This file is distributed under the same license as the Roundcube Webmail Help package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Kolab Documentation\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: English (Romania) (http://www.transifex.com/kolab/kolab-documentation/language/en_RO/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: en_RO\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../../en_US/_plugins/calendar/importexport.rst:9
msgid "Import/Export"
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:11
msgid ""
"Event data is usually exchanged using the standard |iCal|_ format which is "
"supported for import and export."
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:16
msgid "Importing Events"
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:18
msgid "This is how to add events from an |iCal|_ (.ics) file:"
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:20
msgid "Click the *Import* toolbar button in the calendar view."
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:21
msgid "Then select the file to import from your computer's hard drive."
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:22
msgid "Select the calendar to import the events to."
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:23
msgid "Select the threshold for old events to be imported."
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:24
msgid "Click *Import* and wait for the upload to finish."
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:26
msgid ""
"The calendar view will be refreshed to display the newly imported events. "
"Verify that the according calendar is active if you don't see them."
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:34
msgid "Exporting Events"
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:36
msgid ""
"Events from your calendars can be exported and downloaded in the |iCal|_ "
"format."
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:38
msgid "Click the *Export* toolbar button in the calendar view."
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:39
msgid "Select the calendar where events should be exported from."
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:40
msgid ""
"With the *Events from* selector you choose the time constraints for "
"exporting."
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:41
msgid "Click the *Export* button to start the export."
msgstr ""
#: ../../en_US/_plugins/calendar/importexport.rst:42
msgid ""
"Choose where to save the exported .ics file if prompted, otherwise check the"
" \"Downloads\" folder on your computer."
msgstr ""

View file

@ -0,0 +1,28 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014, roundcube.net
# This file is distributed under the same license as the Roundcube Webmail Help package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Kolab Documentation\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: English (Romania) (http://www.transifex.com/kolab/kolab-documentation/language/en_RO/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: en_RO\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../../en_US/_plugins/calendar/index.rst:9
msgid "Calendar"
msgstr ""
#: ../../en_US/_plugins/calendar/index.rst:11
msgid ""
"The *Calendar* gives you access to your personal and shared calendar and "
"scheduling functions."
msgstr ""

View file

@ -0,0 +1,103 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014, roundcube.net
# This file is distributed under the same license as the Roundcube Webmail Help package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Kolab Documentation\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: English (Romania) (http://www.transifex.com/kolab/kolab-documentation/language/en_RO/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: en_RO\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../../en_US/_plugins/calendar/invitations.rst:8
msgid "Handle Event Invitations"
msgstr ""
#: ../../en_US/_plugins/calendar/invitations.rst:10
msgid ""
"In chapter :ref:`calendar-event-participants` we have learned how to invite "
"other people to an event. This will send out invitation emails to all the "
"participants with the event data attached. That allows one to directly "
"accept or decline an event invitation."
msgstr ""
#: ../../en_US/_plugins/calendar/invitations.rst:17
msgid "Receive Event Invitations"
msgstr ""
#: ../../en_US/_plugins/calendar/invitations.rst:19
msgid ""
"When the webmail system opens an invitation email with event data attached, "
"it'll display a yellow box in the preview pane or the email view:"
msgstr ""
#: ../../en_US/_plugins/calendar/invitations.rst:25
msgid "Accept/Decline Invitations"
msgstr ""
#: ../../en_US/_plugins/calendar/invitations.rst:27
msgid ""
"Right in the box shown above, you can accept or decline the invitation by "
"clicking the according button. This will send an automated response to the "
"event organizer informing her about your decision and letting her update "
"your participant status in her calendar."
msgstr ""
#: ../../en_US/_plugins/calendar/invitations.rst:31
msgid ""
"In case you accept, by either clicking *Accept* or *Maybe*, this will also "
"copy the event into your personal calendar. The selector right next to the "
"buttons lets you choose the right one."
msgstr ""
#: ../../en_US/_plugins/calendar/invitations.rst:35
msgid ""
"The copy in your calendar now knows about the invitation and its original "
"sender. If you now delete it from your calendar, you'll be asked whether "
"this should send a declination message to the person who organizes the "
"event."
msgstr ""
#: ../../en_US/_plugins/calendar/invitations.rst:39
msgid ""
"After acceping or declining, the email message containing the invitation can"
" be deleted."
msgstr ""
#: ../../en_US/_plugins/calendar/invitations.rst:43
msgid "Process Invitation Replies"
msgstr ""
#: ../../en_US/_plugins/calendar/invitations.rst:45
msgid ""
"As an organizer who has invited others to an event, you'll receive responses"
" to the automatically sent invitations when the attendees either accept or "
"decline them."
msgstr ""
#: ../../en_US/_plugins/calendar/invitations.rst:48
msgid ""
"Such messages are also identified by the webmail system and again a yellow "
"box appears in the message view:"
msgstr ""
#: ../../en_US/_plugins/calendar/invitations.rst:53
msgid ""
"By clicking the *Update the participant's status* button, the original event"
" in your calendar will be updated with the RSVP status from the person who "
"responded here."
msgstr ""
#: ../../en_US/_plugins/calendar/invitations.rst:56
msgid ""
"When you now look at the event details in the calendar view, the status "
"icons next to each participant now displays the new status."
msgstr ""

View file

@ -0,0 +1,342 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014, roundcube.net
# This file is distributed under the same license as the Roundcube Webmail Help package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Kolab Documentation\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: English (Romania) (http://www.transifex.com/kolab/kolab-documentation/language/en_RO/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: en_RO\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../../en_US/_plugins/calendar/manage.rst:7
msgid "Manage Your Schedule"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:9
msgid ""
"All functions to maintain your events are accessible from the main calendar "
"view."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:13
msgid "Add Events to a Calendar"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:18
msgid "**Via toolbar**"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:16
msgid ""
"Click the *New event* button in the toolbar to get an empty dialog where you"
" enter the :ref:`event properties <calendar-edit-event>` such as summary, "
"date/time, reminders, etc. Click *Save* to finally add it to the selected "
"calendar."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:27
msgid "**At a specific date/time**"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:21
msgid ""
"Navigate the calendar view to the date you want to add an event for. Then "
"mark the range of time (or dates in month view) with the mouse by pressing "
"the button at the time the event should start and releasing it again at time"
" it finishes. This will open the :ref:`event dialog <calendar-edit-event>` "
"with the selected date/time range already filled in."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:26
msgid ""
"In order to create new all-day events, double-click the desired day in the "
"calendar view."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:33
msgid "Edit and Reschedule Events"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:36
msgid "The Event Dialog"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:38
msgid ""
"When clicking an event in the calendar view, a dialog showing its details is"
" displayed. Clicking the *Edit* button in that dialog opens the form to edit"
" all properties of the selected event."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:41
msgid ""
"The edit form is divided into different section which can be switched using "
"the tabs on top of the dialog:"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:44
msgid "**Summary**"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:46
msgid ""
"This general section has text fields and selectors for various properties of"
" an event. Here's a description of all the possible values:"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:49
msgid ""
"``Summary``: The title of the event. This is what you will see in the "
"calendar view."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:50
msgid "``Location``: Where the event will be taking place."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:51
msgid "``Description``: Any text that describes the event."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:52
msgid "``URL``: A link to more information about this event."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:53
msgid "``Start``: Date and time when the event starts."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:54
msgid "``End``: Date and time when the event starts."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:55
msgid "``all-day``: Check this if the event has no start/end time."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:56
msgid ""
"``Reminder``: Will pop up with an notification at a the specified time "
"before the event."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:57
msgid ""
"``Calendar``: The calendar the event is saved in. Change it to move an event"
" from one calendar to another."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:58
msgid ""
"``Category``: The type of event. Categories can also be used for "
":ref:`coloring <settings-calendar>`."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:59
msgid ""
"``Show me as``: The representation in your free/busy scheduling calendar "
"visible to others."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:60
msgid "``Priority``: The priority value of the event."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:61
msgid ""
"``Privacy``: Flag an event as \"private\" or \"confidential\" when sharing "
"your calendar with others."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:63
msgid "**Recurrence**"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:65
msgid ""
"For periodically recurring event series, this tabs has the settings how an "
"event is repeated over time."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:68
msgid "``Repeat``: Start with selecting a repetition interval (e.g. monthly)"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:69
msgid ""
"``Every``: How often the frequency will be relevant. For example, for an "
"event that takes place every other week choose Weekly and then 2. If you "
"choose a frequency of weekly or monthly you can select which days of the "
"week or month the event will occur."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:71
msgid ""
"``Until``: Determines the duration of the repetition. The recurrence can "
"either run forever, for a number it times or until a specific date."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:73
msgid "**Participants**"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:75
msgid ""
"An important part of managing your schedule is to invite others to events "
"and track their RSVP. In this part of the edit dialog you can manage the "
"participants of an event. Read more about this further down in the :ref"
":`calendar-event-participants` section."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:79
msgid "**Attachments**"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:81
msgid ""
"Sometimes a description text isn't enough to collect information for a "
"specific event. Switch to this tab to attach files to the current event or "
"to remove them again. Adding files works pretty much the same as "
":ref:`attaching them to email messages <mail-compose-attachments>`: first "
"select a file from your local disk and click *Upload* in order to attach it."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:86
msgid ""
"Don't forget to finally save the changes by clicking *Save* in the event "
"edit dialog. Even switching back and forth the tabs will not yet save the "
"data."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:93
msgid "Moving and Resizing with the Mouse"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:99
msgid ""
"If an existing event shall be rescheduled to another time or date, you'll "
"find it handy to do that directly in the calendar view without opening the "
"edit form. Simply grab the event block with the mouse and move it to the new"
" date or time. Release the mouse button to complete."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:103
msgid ""
"In *Month* and *Day* view, the event blocks have a small handle at the "
"bottom. Drag this with the mouse in order to resize the event meaning to "
"adjust its duration."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:111
msgid "Get Notifications"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:117
msgid ""
"While logged in to the webmail, event reminders will be displayed with pop-"
"up boxes at the specified time before the event starts. You can specify if "
"you want to see alarms for every calendar individually. Enable or disable "
"reminders in :ref:`Calendar Settings <calendar-edit-properties>` from the "
":ref:`calendar-lists`."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:122
msgid "Dismiss or Snooze Reminders"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:124
msgid ""
"When a reminder box pops up, you can either dismiss the notification for all"
" events or each one individually. When dismissed, no further reminders will "
"be displayed. Choose a time from the *Snooze* menu to get another reminder "
"after the selected time."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:133
msgid "Inviting Other People"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:135
msgid ""
"If you need to set up a meeting, and keep track of who's attending and who "
"is not, the calendar can do this as well as you to automatically send "
"invitations and read their responses."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:138
msgid ""
"When creating a new event, switch to the *Participants* tab. You're already "
"listed as the organizer of the event."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:142
msgid ""
"Enter the name or email address of the person to invite. Contacts from the "
"address book are suggested as you type. In order to send invitations, make "
"sure the entered contact has an email address. Type it in the form ``Person "
"Name <email@address.com>``."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:145
msgid "Click *Add participant* to add the person to the list."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:146
msgid "Select a *Role* (e.g. required or optional) for this person."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:147
msgid "Repeat 1-3 for further participants."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:148
msgid ""
"Check the *Send invitations* box if the application should send out "
"invitation emails."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:150
msgid ""
"Invitations will be sent out when you click *Save* and the event is created."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:158
msgid "Find Availability"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:160
msgid ""
"Once all the participants are added to the list, you see the individual "
"availability status for each one of them, given that this information is "
"available. In case not everybody is free, click the *Find availability...* "
"button to open the scheduling dialog. In that dialog, detailed availability "
"information for all participants is displayed. Use the *Previous/Next Slot* "
"buttons to find the next time slot where all required participants are "
"available. Or drag the gray area representing the event duration with the "
"mouse to manually select a free slot."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:166
msgid ""
"Click *Select* to copy the rescheduled date/time back into the event form "
"and to close this dialog."
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:170
msgid "Receive Event Invitations"
msgstr ""
#: ../../en_US/_plugins/calendar/manage.rst:172
msgid ""
"How to process incoming event invitations is described in chapter :ref"
":`calendar-invitations`."
msgstr ""

View file

@ -0,0 +1,266 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014, roundcube.net
# This file is distributed under the same license as the Roundcube Webmail Help package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Kolab Documentation\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: English (Romania) (http://www.transifex.com/kolab/kolab-documentation/language/en_RO/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: en_RO\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../../en_US/_plugins/calendar/overview.rst:6
msgid "Overview"
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:8
msgid ""
"The screen of the calendar module presents the following parts: the "
":ref:`Calendar View <calendar-view>` itself, a small :ref:`Calendar Widget "
"<calendar-minicalendar>` the :ref:`calendar-lists` as well as the usual "
"toolbar and search box."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:17
msgid "Calendar View"
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:19
msgid ""
"The central part of the screen displays the schedule with events from the "
"active calendars matching the current date range. The active date range is "
"displayed above the calendar in the toolbar area and can be moved forward or"
" backward in time using the arrow buttons right next to the title."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:27
msgid "Change Views"
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:29
msgid ""
"You can view your calendar events in Day, Week, Month or Agenda view. Toggle"
" the view mode using the toolbar buttons above the calendar view."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:34
msgid "**Day**"
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:33
msgid ""
"All events of a single day appear at the time the begin and spawn a box "
"until their end time. The time scale is displayed in the left side of the "
"view. All-day events appear at the top."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:37
msgid "**Week**"
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:37
msgid ""
"Similar to the day view but lists all days of the week horizontally. All-day"
" events again appear at the top."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:42
msgid "**Month**"
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:40
msgid ""
"Shows all events of the selected month at a time. Each event only appears as"
" a single line and if there are more events in a day than can be listed, a "
"number at the bottom of the day field indicates that. Click that link to "
"open a zoomed view of that single day."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:47
msgid "**Agenda**"
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:45
msgid ""
"The agenda view shows a list of events for the selected range in a "
"chronological order and divided by headers denoting either days, weeks or "
"months. Both the number of the days considered for the listing as well as "
"the mode how to divide list can be adjusted with the controls at the bottom "
"of the agenda view."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:51
msgid ""
"For all the views, the small calendar on the left highlights the currently "
"listed days."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:54
msgid "Go to a specific Date"
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:56
msgid ""
"Use the mini calendar widget on the left to jump to a specific date. Simply "
"click a date and the date range of the current view moves to include the "
"selected day. The left/right arrows in the mini calendar's header quickly "
"cycle through the months. Use the drop-down menus hidden under the month and"
" year display in the widget header to directly jump to another month or "
"year."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:60
msgid ""
"A shortcut to switch the calendar view back to today or the current week "
"provides the *Today* button located in the toolbar."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:64
msgid "Show Event Details"
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:66
msgid ""
"Click an event box in the calendar view to open a dialog displaying all "
"details of the event."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:70
msgid "Searching Events"
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:72
msgid ""
"The search box above the calendar view lets you quickly get a list of events"
" matching the entered keyword in either the title, location, description or "
"attendees. Enter the search term into the box and press <Enter> on your "
"keyboard to start the search. The calendar view will switch to *Agenda* mode"
" in order to display a list of matches. Of course you can switch the view "
"again to display the search results differently."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:77
msgid ""
"Events are searched within a certain date reange only which is displayed "
"above the calendar view. Use the mini calendar widget or the arrow toolbar "
"buttons and the range selector below the agenda view to adjust the time "
"frame to search in."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:81
msgid ""
"For searching as well as for normal views, only events from active calendars"
" are displayed. Use the checkboxes in the :ref:`calendar-lists` to add or "
"hide events from different calendars."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:84
msgid ""
"Reset the search by clicking the *Reset search* icon on the right border of "
"the search box. This will also switch the calendar view to whatever mode you"
" had before the search."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:93
msgid "Calendars List"
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:95
msgid ""
"Events can be organized in different calendars which are all displayed in "
"the lower left list. Use the checkboxes in that list to show or hide events "
"from the specific calendars in the main view."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:100
msgid ""
"Beside your personal calendars, the list also displays calendars shared by "
"other users or ones that are shared amongst your workgroup. Small icons in "
"the list give a hint about the origin and some of them are possibly read-"
"only which is denoted with a small lock icon."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:106
msgid "Colorized Events"
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:108
msgid ""
"In order to better distinguish the events from various calendars in the "
"calendar view, calendars have a color assigned which is used to colorize the"
" events on the screen. Check the :ref:`settings-calendar` for more advanced "
"options how to colorize events in the calendar view."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:112
msgid ""
"You can create any number of calendars to store all your events and name "
"them individually."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:116
msgid "Create a New Calendar"
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:118
msgid "Click the + icon in the calendars list footer."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:119
msgid "In the dialog, give the new calendar a unique name and assign a color."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:120
msgid "Click *Save* to create it."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:122
msgid "The calendar view will reload and list the new calendar on the left."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:127
msgid "Edit Calendar Names and Settings"
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:129
#: ../../en_US/_plugins/calendar/overview.rst:137
msgid "Select the calendar to edit by clicking it in the list."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:130
msgid ""
"Click the gear icon in the calendars list footer and select *Edit* from the "
"options menu."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:131
msgid "Adjust name, color or reminders settings in the edit dialog."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:132
msgid "Click *Save* to finally update the calendar."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:135
msgid "Remove entire Calendars"
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:138
msgid ""
"Click the gear icon in the calendars list footer and select *Remove* from "
"the options menu."
msgstr ""
#: ../../en_US/_plugins/calendar/overview.rst:139
msgid ""
"After a confirmation dialog, the selected calendar with all its events will "
"be deleted. Caution: This action cannot be undone!"
msgstr ""

View file

@ -0,0 +1,178 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014, roundcube.net
# This file is distributed under the same license as the Roundcube Webmail Help package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Kolab Documentation\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:34+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: English (Romania) (http://www.transifex.com/kolab/kolab-documentation/language/en_RO/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: en_RO\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../../en_US/_plugins/calendar/settings.rst:8
msgid "Calendar Preferences"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:10
msgid ""
"The settings for the calendar module are listed in *Settings > Preferences* "
"and are grouped by the following sections:"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:14
msgid "Main Options"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:17
msgid "**Default view**"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:17
msgid ""
"Lets you select the :ref:`calendar-view` which is visible by default when "
"opening the calendar."
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:21
msgid "**Time slots per hour**"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:20
msgid ""
"How one hour in day and week view is divided vertically. If for example set "
"to 2, you will see events displayed in 30 minute blocks."
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:24
msgid "**First weekday**"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:24
msgid "Which weekday to begin the week view with."
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:28
msgid "**First hour to show**"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:27
msgid ""
"When opening the day or week view, the listing of events starts at this "
"time. Of course all hours of a day are visible by scrolling further up."
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:33
msgid "**Working hours**"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:33
msgid ""
"This time range will be used in the :ref:`availability finder <calendar-"
"availability-finder>` when automatically selecting free slots for a meeting."
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:40
msgid "**Event coloring**"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:37
msgid ""
"The coloring of the title of an event block (\"outline\") as well as the "
"background color of the box (\"content\") in day and week views is "
"influenced by the color of the calendar an event belongs to and/or the color"
" of the category it is assigned to. This setting lets you control which "
"source for coloring to use or if you even want a combined coloring that "
"reflects both, the assignment of calendars and categories."
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:43
msgid "**Default reminder setting**"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:43
msgid ""
"When creating new events, they'll have this type of reminder set by default."
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:46
msgid "**Default reminder time**"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:46
msgid "When enabling reminders in a new event, use this preset as default."
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:51
msgid "**Create new events in**"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:49
msgid ""
"This is the default selection for saving new events. Used in both the "
"calendar view and when accepting event invitations."
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:54
msgid "Categories"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:56
msgid ""
"This block allows the management of categories used in your calendar and "
"assign colors to them. Use the color picker to change the color by clicking "
"on the square color box in the categories list."
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:59
msgid ""
"To add a new category, enter its unique name into the text box below the "
"listing and then click the *Add category** button to add it. Note that you "
"still need to click the *Save* button at the bottom of the preferences panel"
" in order to finally register the new categories."
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:65
msgid "Birthdays Calendar"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:67
msgid ""
"The calendar view and also display birthdays from contacts saved in your "
"address book. This block controls how this is done."
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:71
msgid "**Display birthdays calendar**"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:71
msgid "Enable the birthdays calendar feature with this checkbox."
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:74
msgid "**From these address books**"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:74
msgid ""
"Choose from which address books you'd like to see birthdays in your "
"calendar."
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:80
msgid "**Show reminders**"
msgstr ""
#: ../../en_US/_plugins/calendar/settings.rst:77
msgid ""
"This option controls whether and when to display reminder notifications for "
"upcoming birthdays."
msgstr ""

View file

@ -0,0 +1,99 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014, roundcube.net
# This file is distributed under the same license as the Roundcube Webmail Help package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Kolab Documentation\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:34+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: English (Romania) (http://www.transifex.com/kolab/kolab-documentation/language/en_RO/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: en_RO\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../../en_US/_plugins/calendar/sharing.rst:11
msgid "Sharing Calendars"
msgstr ""
#: ../../en_US/_plugins/calendar/sharing.rst:13
msgid ""
"For collaboration, sharing calendars is an important feature. In the "
":ref:`overview <calendar-lists>`, we have already learned how calendars "
"others share with you appear in the calendars list. The following now "
"explains how to make personal calendars accessible to fellow users."
msgstr ""
#: ../../en_US/_plugins/calendar/sharing.rst:19
msgid "Share a Calendar with others"
msgstr ""
#: ../../en_US/_plugins/calendar/sharing.rst:21
msgid ""
"Sharing is controlled through the :ref:`Calendar Settings Dialog <calendar-"
"edit-properties>`. Double-click a calendar in the list on the left and then "
"select the *Sharing* tab at the top of the dialog box:"
msgstr ""
#: ../../en_US/_plugins/calendar/sharing.rst:27
msgid ""
"The table displays who already has permission to see and modify the selected"
" calendar. In order to share the calendar with a new user do"
msgstr ""
#: ../../en_US/_plugins/calendar/sharing.rst:30
msgid "Click the *Add entry* button (+) in the table footer"
msgstr ""
#: ../../en_US/_plugins/calendar/sharing.rst:31
msgid ""
"Enter the username or choose one from the autocompletion menu that appears "
"when you start typing. Instead of a specific user, permissons can be granted"
" for all users or guests."
msgstr ""
#: ../../en_US/_plugins/calendar/sharing.rst:33
msgid "Select the access rights you want to grant for the user"
msgstr ""
#: ../../en_US/_plugins/calendar/sharing.rst:34
msgid "Click *Save* to add the permission"
msgstr ""
#: ../../en_US/_plugins/calendar/sharing.rst:36
msgid ""
"Double-click an entry to edit the permissions for a particular user or "
"group."
msgstr ""
#: ../../en_US/_plugins/calendar/sharing.rst:38
msgid ""
"For removing existing permissions, select the according entry in the list "
"and then choose *Delete* from the menu behind the gear icon in the footer of"
" the list."
msgstr ""
#: ../../en_US/_plugins/calendar/sharing.rst:43
msgid "Subscribe to Shared Calendars"
msgstr ""
#: ../../en_US/_plugins/calendar/sharing.rst:45
msgid ""
"Calendars shared by others are not showing up right away in the list within "
"the calendar view. Switch to :ref:`Settings > Folders <settings-folders>` to"
" see all resources you can access. There's a shortcut to this: click *Manage"
" folders* in the options menu behind the gear icon located the footer of the"
" calendars list."
msgstr ""
#: ../../en_US/_plugins/calendar/sharing.rst:50
msgid ""
"In order to make a shared calendar appear in the calendars list, locate it "
"in the folder manager and check the *Subscribed* mark in the list. Only "
"subscribed calendars are visible in the calendar view."
msgstr ""

View file

@ -8,9 +8,9 @@ msgstr ""
"Project-Id-Version: Kolab Documentation\n" "Project-Id-Version: Kolab Documentation\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:33+0000\n" "PO-Revision-Date: 2017-09-21 17:03+0000\n"
"Last-Translator: Torsten Grote <grote@kolabsys.com>\n" "Last-Translator: Torsten Grote <grote@kolabsys.com>\n"
"Language-Team: English (http://www.transifex.com/projects/p/kolab-documentation/language/en/)\n" "Language-Team: English (http://www.transifex.com/kolab/kolab-documentation/language/en/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View file

@ -8,9 +8,9 @@ msgstr ""
"Project-Id-Version: Kolab Documentation\n" "Project-Id-Version: Kolab Documentation\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:33+0000\n" "PO-Revision-Date: 2017-09-21 17:03+0000\n"
"Last-Translator: Torsten Grote <grote@kolabsys.com>\n" "Last-Translator: Torsten Grote <grote@kolabsys.com>\n"
"Language-Team: English (http://www.transifex.com/projects/p/kolab-documentation/language/en/)\n" "Language-Team: English (http://www.transifex.com/kolab/kolab-documentation/language/en/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View file

@ -8,9 +8,9 @@ msgstr ""
"Project-Id-Version: Kolab Documentation\n" "Project-Id-Version: Kolab Documentation\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:33+0000\n" "PO-Revision-Date: 2017-09-21 17:03+0000\n"
"Last-Translator: Torsten Grote <grote@kolabsys.com>\n" "Last-Translator: Torsten Grote <grote@kolabsys.com>\n"
"Language-Team: English (http://www.transifex.com/projects/p/kolab-documentation/language/en/)\n" "Language-Team: English (http://www.transifex.com/kolab/kolab-documentation/language/en/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View file

@ -8,9 +8,9 @@ msgstr ""
"Project-Id-Version: Kolab Documentation\n" "Project-Id-Version: Kolab Documentation\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:33+0000\n" "PO-Revision-Date: 2017-09-21 17:03+0000\n"
"Last-Translator: Torsten Grote <grote@kolabsys.com>\n" "Last-Translator: Torsten Grote <grote@kolabsys.com>\n"
"Language-Team: English (http://www.transifex.com/projects/p/kolab-documentation/language/en/)\n" "Language-Team: English (http://www.transifex.com/kolab/kolab-documentation/language/en/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View file

@ -8,9 +8,9 @@ msgstr ""
"Project-Id-Version: Kolab Documentation\n" "Project-Id-Version: Kolab Documentation\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:34+0000\n" "PO-Revision-Date: 2017-09-21 17:03+0000\n"
"Last-Translator: Torsten Grote <grote@kolabsys.com>\n" "Last-Translator: Torsten Grote <grote@kolabsys.com>\n"
"Language-Team: English (http://www.transifex.com/projects/p/kolab-documentation/language/en/)\n" "Language-Team: English (http://www.transifex.com/kolab/kolab-documentation/language/en/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View file

@ -8,9 +8,9 @@ msgstr ""
"Project-Id-Version: Kolab Documentation\n" "Project-Id-Version: Kolab Documentation\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:34+0000\n" "PO-Revision-Date: 2017-09-21 17:03+0000\n"
"Last-Translator: Torsten Grote <grote@kolabsys.com>\n" "Last-Translator: Torsten Grote <grote@kolabsys.com>\n"
"Language-Team: English (http://www.transifex.com/projects/p/kolab-documentation/language/en/)\n" "Language-Team: English (http://www.transifex.com/kolab/kolab-documentation/language/en/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View file

@ -8,9 +8,9 @@ msgstr ""
"Project-Id-Version: Kolab Documentation\n" "Project-Id-Version: Kolab Documentation\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:34+0000\n" "PO-Revision-Date: 2017-09-21 17:03+0000\n"
"Last-Translator: Torsten Grote <grote@kolabsys.com>\n" "Last-Translator: Torsten Grote <grote@kolabsys.com>\n"
"Language-Team: English (http://www.transifex.com/projects/p/kolab-documentation/language/en/)\n" "Language-Team: English (http://www.transifex.com/kolab/kolab-documentation/language/en/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View file

@ -10,7 +10,7 @@ msgstr ""
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:33+0000\n" "PO-Revision-Date: 2014-11-27 23:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Spanish (Argentina) (http://www.transifex.com/projects/p/kolab-documentation/language/es_AR/)\n" "Language-Team: Spanish (Argentina) (http://www.transifex.com/kolab/kolab-documentation/language/es_AR/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View file

@ -3,14 +3,15 @@
# This file is distributed under the same license as the Roundcube Webmail Help package. # This file is distributed under the same license as the Roundcube Webmail Help package.
# #
# Translators: # Translators:
# alfvicente <alfvicente@yahoo.com.ar>, 2016
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Kolab Documentation\n" "Project-Id-Version: Kolab Documentation\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:33+0000\n" "PO-Revision-Date: 2017-09-21 17:03+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: alfvicente <alfvicente@yahoo.com.ar>\n"
"Language-Team: Spanish (Argentina) (http://www.transifex.com/projects/p/kolab-documentation/language/es_AR/)\n" "Language-Team: Spanish (Argentina) (http://www.transifex.com/kolab/kolab-documentation/language/es_AR/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
@ -19,7 +20,7 @@ msgstr ""
#: ../../en_US/_plugins/calendar/index.rst:9 #: ../../en_US/_plugins/calendar/index.rst:9
msgid "Calendar" msgid "Calendar"
msgstr "" msgstr "Calendario"
#: ../../en_US/_plugins/calendar/index.rst:11 #: ../../en_US/_plugins/calendar/index.rst:11
msgid "" msgid ""

View file

@ -10,7 +10,7 @@ msgstr ""
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:33+0000\n" "PO-Revision-Date: 2014-11-27 23:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Spanish (Argentina) (http://www.transifex.com/projects/p/kolab-documentation/language/es_AR/)\n" "Language-Team: Spanish (Argentina) (http://www.transifex.com/kolab/kolab-documentation/language/es_AR/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View file

@ -10,7 +10,7 @@ msgstr ""
"POT-Creation-Date: 2014-11-26 23:28+0100\n" "POT-Creation-Date: 2014-11-26 23:28+0100\n"
"PO-Revision-Date: 2014-11-27 23:33+0000\n" "PO-Revision-Date: 2014-11-27 23:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Spanish (Argentina) (http://www.transifex.com/projects/p/kolab-documentation/language/es_AR/)\n" "Language-Team: Spanish (Argentina) (http://www.transifex.com/kolab/kolab-documentation/language/es_AR/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

Some files were not shown because too many files have changed in this diff Show more