Synchronized with git master from git.kolab.org (v3.2.7)
54
README
|
@ -20,5 +20,59 @@ are used. They are packaged in a slightly modified version with this plugin.
|
|||
|
||||
IMPORTANT
|
||||
---------
|
||||
|
||||
The calendar module makes heavy use of PHP's DateTime as well as DateInterval
|
||||
classes. The latter one requires at least PHP 5.3.0 to run.
|
||||
|
||||
|
||||
REQUIREMENTS
|
||||
------------
|
||||
|
||||
Some functions are shared with other plugins and therefore being moved to
|
||||
library plugins. Thus in order to run the calendar plugin, you also need the
|
||||
following plugins installed:
|
||||
|
||||
* libcalendaring [1]
|
||||
* libkolab [1] (when using the 'kolab' driver)
|
||||
|
||||
|
||||
INSTALLATION
|
||||
------------
|
||||
|
||||
For a manual installation of the calendar plugin (and its dependencies),
|
||||
execute the following steps. This will set it up with the database backend
|
||||
driver.
|
||||
|
||||
1. Get the source from git
|
||||
|
||||
$ cd /tmp
|
||||
$ git clone git://git.kolab.org/git/roundcubemail-plugins-kolab
|
||||
$ cd /<path-to-roundcube>/plugins
|
||||
$ cp -r /tmp/roundcubemail-plugins-kolab/plugins/calendar .
|
||||
$ cp -r /tmp/roundcubemail-plugins-kolab/plugins/libcalendaring .
|
||||
|
||||
2. Create calendar plugin configuration
|
||||
|
||||
$ cd calendar/
|
||||
$ cp config.inc.php.dist config.inc.php
|
||||
$ edit config.inc.php
|
||||
|
||||
3. Initialize the calendar database tables
|
||||
|
||||
$ mysql roundcubemail < drivers/database/SQL/mysql.initial.sql
|
||||
|
||||
4. Enable the calendar plugin
|
||||
|
||||
$ cd ../../
|
||||
$ edit config/config.inc.php
|
||||
|
||||
Add 'calendar' to the list of active plugins:
|
||||
|
||||
$config['plugins'] = array(
|
||||
(...)
|
||||
'calendar',
|
||||
);
|
||||
|
||||
|
||||
|
||||
[1] http://git.kolab.org/roundcubemail-plugins-kolab/
|
||||
|
|
|
@ -8,10 +8,10 @@ updatedb.sh --package=calendar-<driver> --version=<version> \
|
|||
--dir=../plugins/calendar/drivers/<driver>/SQL
|
||||
|
||||
[*] Replace <driver> with "database" or "kolab" (without quotes)
|
||||
[*] Replace <version> with Roundcube version e.g. 0.7.3
|
||||
[*] Replace <version> with Roundcube version e.g. 0.9.0
|
||||
[*] Roundcube should be upgraded before plugin upgrades
|
||||
|
||||
Example:
|
||||
|
||||
updatedb.sh --package=calendar-kolab --version=0.8.0 \
|
||||
updatedb.sh --package=calendar-kolab --version=0.9.0 \
|
||||
--dir=../plugins/calendar/drivers/kolab/SQL
|
||||
|
|
2124
calendar.php
122
calendar_base.js
|
@ -1,12 +1,14 @@
|
|||
/**
|
||||
* Base Javascript class for the Calendar plugin
|
||||
*
|
||||
* @version @package_version@
|
||||
* @author Lazlo Westerhof <hello@lazlo.me>
|
||||
* @author Thomas Bruederli <bruederli@kolabsys.com>
|
||||
*
|
||||
* @licstart The following is the entire license notice for the
|
||||
* JavaScript code in this page.
|
||||
*
|
||||
* Copyright (C) 2010, Lazlo Westerhof <hello@lazlo.me>
|
||||
* Copyright (C) 2013, Kolab Systems AG <contact@kolabsys.com>
|
||||
* Copyright (C) 2013-2015, Kolab Systems AG <contact@kolabsys.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
|
@ -20,6 +22,9 @@
|
|||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* @licend The above is the entire license notice
|
||||
* for the JavaScript code in this page.
|
||||
*/
|
||||
|
||||
// Basic setup for Roundcube calendar client class
|
||||
|
@ -31,6 +36,7 @@ function rcube_calendar(settings)
|
|||
// member vars
|
||||
this.ui;
|
||||
this.ui_loaded = false;
|
||||
this.selected_attachment = null;
|
||||
|
||||
// private vars
|
||||
var me = this;
|
||||
|
@ -42,13 +48,13 @@ function rcube_calendar(settings)
|
|||
// load calendar UI (scripts and edit dialog template)
|
||||
if (!this.ui_loaded) {
|
||||
$.when(
|
||||
$.getScript('./plugins/calendar/calendar_ui.js'),
|
||||
$.getScript('./plugins/calendar/lib/js/fullcalendar.js'),
|
||||
$.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 = false;
|
||||
rcmail.env.calendars[c].attendees = rcmail.env.calendars[c].resources = false;
|
||||
|
||||
me.ui_loaded = true;
|
||||
me.ui = new rcube_calendar_ui(me.settings);
|
||||
|
@ -72,90 +78,36 @@ function rcube_calendar(settings)
|
|||
{
|
||||
if (event.title) {
|
||||
this.ui.add_event(event);
|
||||
rcmail.message_list.blur();
|
||||
if (rcmail.message_list)
|
||||
rcmail.message_list.blur();
|
||||
}
|
||||
};
|
||||
|
||||
// handler for attachment-save-calendar commands
|
||||
this.save_to_calendar = function(p)
|
||||
{
|
||||
// TODO: show dialog to select the calendar for importing
|
||||
if (this.selected_attachment && window.rcube_libcalendaring) {
|
||||
rcmail.http_post('calendar/mailimportattach', {
|
||||
_uid: rcmail.env.uid,
|
||||
_mbox: rcmail.env.mailbox,
|
||||
_part: this.selected_attachment,
|
||||
// _calendar: $('#calendar-attachment-saveto').val(),
|
||||
}, rcmail.set_busy(true, 'itip.savingdata'));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// static methods
|
||||
rcube_calendar.add_event_from_mail = function(mime_id, status)
|
||||
{
|
||||
// ask user to delete the declined event from the local calendar (#1670)
|
||||
var del = false;
|
||||
if (rcmail.env.rsvp_saved && status == 'declined') {
|
||||
del = confirm(rcmail.gettext('calendar.declinedeleteconfirm'));
|
||||
}
|
||||
|
||||
var lock = rcmail.set_busy(true, 'calendar.savingdata');
|
||||
rcmail.http_post('calendar/mailimportevent', {
|
||||
'_uid': rcmail.env.uid,
|
||||
'_mbox': rcmail.env.mailbox,
|
||||
'_part': mime_id,
|
||||
'_calendar': $('#calendar-saveto').val(),
|
||||
'_status': status,
|
||||
'_del': del?1:0
|
||||
}, lock);
|
||||
|
||||
return false;
|
||||
};
|
||||
|
||||
rcube_calendar.remove_event_from_mail = function(uid, title)
|
||||
{
|
||||
if (confirm(rcmail.gettext('calendar.deleteventconfirm'))) {
|
||||
var lock = rcmail.set_busy(true, 'calendar.savingdata');
|
||||
rcmail.http_post('calendar/event', {
|
||||
e:{ uid:uid },
|
||||
action: 'remove'
|
||||
}, lock);
|
||||
}
|
||||
};
|
||||
|
||||
rcube_calendar.fetch_event_rsvp_status = function(event)
|
||||
{
|
||||
/*
|
||||
var id = event.uid.replace(rcmail.identifier_expr, '');
|
||||
$('#import-'+id+', #rsvp-'+id+', div.rsvp-status').hide();
|
||||
$('#loading-'+id).show();
|
||||
*/
|
||||
rcmail.http_post('calendar/event', {
|
||||
e:event,
|
||||
action:'rsvp-status'
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
/* calendar plugin initialization (for non-calendar tasks) */
|
||||
window.rcmail && rcmail.addEventListener('init', function(evt) {
|
||||
if (rcmail.task != 'calendar') {
|
||||
var cal = new rcube_calendar($.extend(rcmail.env.calendar_settings, rcmail.env.libcal_settings));
|
||||
|
||||
rcmail.addEventListener('plugin.update_event_rsvp_status', function(p){
|
||||
rcmail.env.rsvp_saved = p.saved;
|
||||
|
||||
if (p.html) {
|
||||
// append/replace rsvp status display
|
||||
$('#loading-'+p.id).next('.rsvp-status').remove();
|
||||
$('#loading-'+p.id).hide().after(p.html);
|
||||
}
|
||||
else {
|
||||
$('#loading-'+p.id).hide();
|
||||
}
|
||||
|
||||
// enable/disable rsvp buttons
|
||||
$('.rsvp-buttons input.button').prop('disabled', false)
|
||||
.filter('.'+String(p.status).toLowerCase()).prop('disabled', p.latest);
|
||||
|
||||
// show rsvp/import buttons with or without calendar selector
|
||||
if (!p.select)
|
||||
$('#rsvp-'+p.id+' .calendar-select').remove();
|
||||
$('#'+p.action+'-'+p.id).show().append(p.select);
|
||||
});
|
||||
|
||||
rcmail.addEventListener('plugin.fetch_event_rsvp_status', rcube_calendar.fetch_event_rsvp_status);
|
||||
|
||||
// register create-from-mail command to message_commands array
|
||||
if (rcmail.env.task == 'mail') {
|
||||
rcmail.register_command('calendar-create-from-mail', function() { cal.create_from_mail() });
|
||||
rcmail.register_command('attachment-save-calendar', function() { cal.save_to_calendar() });
|
||||
rcmail.addEventListener('plugin.mail2event_dialog', function(p){ cal.mail2event_dialog(p) });
|
||||
rcmail.addEventListener('plugin.unlock_saving', function(p){ cal.ui && cal.ui.unlock_saving(); });
|
||||
|
||||
|
@ -163,17 +115,17 @@ window.rcmail && rcmail.addEventListener('init', function(evt) {
|
|||
rcmail.env.message_commands.push('calendar-create-from-mail');
|
||||
rcmail.add_element($('<a>'));
|
||||
}
|
||||
else
|
||||
else {
|
||||
rcmail.enable_command('calendar-create-from-mail', true);
|
||||
|
||||
// add contextmenu item
|
||||
if (window.rcm_contextmenu_register_command) {
|
||||
rcm_contextmenu_register_command(
|
||||
'calendar-create-from-mail',
|
||||
function(cmd,el){ cal.create_from_mail() },
|
||||
'calendar.createfrommail',
|
||||
'moveto');
|
||||
}
|
||||
|
||||
rcmail.addEventListener('beforemenu-open', function(p) {
|
||||
if (p.menu == 'attachmentmenu') {
|
||||
cal.selected_attachment = p.id;
|
||||
var mimetype = rcmail.env.attachments[p.id];
|
||||
rcmail.enable_command('attachment-save-calendar', mimetype == 'text/calendar' || mimetype == 'text/x-vcalendar' || mimetype == 'application/ics');
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
|
2489
calendar_ui.js
|
@ -26,12 +26,11 @@
|
|||
"require": {
|
||||
"php": ">=5.3.0",
|
||||
"roundcube/plugin-installer": ">=0.1.3",
|
||||
"kolab/libcalendaring": "~1.0"
|
||||
"kolab/libcalendaring": ">=3.2.0"
|
||||
},
|
||||
"extra": {
|
||||
"roundcube": {
|
||||
"min-version": "1.0.0",
|
||||
"max-version": "1.0.99",
|
||||
"min-version": "1.1.0",
|
||||
"sql-dir": "drivers/database/SQL"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,10 +2,9 @@
|
|||
/*
|
||||
+-------------------------------------------------------------------------+
|
||||
| Configuration for the Calendar plugin |
|
||||
| Version 0.7-beta |
|
||||
| |
|
||||
| Copyright (C) 2010, Lazlo Westerhof - Netherlands |
|
||||
| Copyright (C) 2011, Kolab Systems AG |
|
||||
| Copyright (C) 2011-2014, Kolab Systems AG |
|
||||
| |
|
||||
| This program is free software: you can redistribute it and/or modify |
|
||||
| it under the terms of the GNU Affero General Public License as |
|
||||
|
@ -27,14 +26,17 @@
|
|||
*/
|
||||
|
||||
// backend type (database, google, kolab)
|
||||
$rcmail_config['calendar_driver'] = "database";
|
||||
$config['calendar_driver'] = "database";
|
||||
|
||||
// default calendar view (agendaDay, agendaWeek, month)
|
||||
$rcmail_config['calendar_default_view'] = "agendaWeek";
|
||||
$config['calendar_default_view'] = "agendaWeek";
|
||||
|
||||
// show a birthdays calendar from the user's address book(s)
|
||||
$config['calendar_contact_birthdays'] = false;
|
||||
|
||||
// mapping of Roundcube date formats to calendar formats (long/short/agenda)
|
||||
// should be in sync with 'date_formats' in main config
|
||||
$rcmail_config['calendar_date_format_sets'] = array(
|
||||
$config['calendar_date_format_sets'] = array(
|
||||
'yyyy-MM-dd' => array('MMM d yyyy', 'M-d', 'ddd MM-dd'),
|
||||
'dd-MM-yyyy' => array('d MMM yyyy', 'd-M', 'ddd dd-MM'),
|
||||
'yyyy/MM/dd' => array('MMM d yyyy', 'M/d', 'ddd MM/dd'),
|
||||
|
@ -45,59 +47,59 @@ $rcmail_config['calendar_date_format_sets'] = array(
|
|||
);
|
||||
|
||||
// general date format (only set if different from default date format and not user configurable)
|
||||
// $rcmail_config['calendar_date_format'] = "yyyy-MM-dd";
|
||||
// $config['calendar_date_format'] = "yyyy-MM-dd";
|
||||
|
||||
// time format (only set if different from default date format)
|
||||
// $rcmail_config['calendar_time_format'] = "HH:mm";
|
||||
// $config['calendar_time_format'] = "HH:mm";
|
||||
|
||||
// short date format (used for column titles)
|
||||
// $rcmail_config['calendar_date_short'] = 'M-d';
|
||||
// $config['calendar_date_short'] = 'M-d';
|
||||
|
||||
// long date format (used for calendar title)
|
||||
// $rcmail_config['calendar_date_long'] = 'MMM d yyyy';
|
||||
// $config['calendar_date_long'] = 'MMM d yyyy';
|
||||
|
||||
// date format used for agenda view
|
||||
// $rcmail_config['calendar_date_agenda'] = 'ddd MM-dd';
|
||||
// $config['calendar_date_agenda'] = 'ddd MM-dd';
|
||||
|
||||
// timeslots per hour (1, 2, 3, 4, 6)
|
||||
$rcmail_config['calendar_timeslots'] = 2;
|
||||
$config['calendar_timeslots'] = 2;
|
||||
|
||||
// show this number of days in agenda view
|
||||
$rcmail_config['calendar_agenda_range'] = 60;
|
||||
$config['calendar_agenda_range'] = 60;
|
||||
|
||||
// first day of the week (0-6)
|
||||
$rcmail_config['calendar_first_day'] = 1;
|
||||
$config['calendar_first_day'] = 1;
|
||||
|
||||
// first hour of the calendar (0-23)
|
||||
$rcmail_config['calendar_first_hour'] = 6;
|
||||
$config['calendar_first_hour'] = 6;
|
||||
|
||||
// working hours begin
|
||||
$rcmail_config['calendar_work_start'] = 6;
|
||||
$config['calendar_work_start'] = 6;
|
||||
|
||||
// working hours end
|
||||
$rcmail_config['calendar_work_end'] = 18;
|
||||
$config['calendar_work_end'] = 18;
|
||||
|
||||
// show line at current time of the day
|
||||
$rcmail_config['calendar_time_indicator'] = true;
|
||||
$config['calendar_time_indicator'] = true;
|
||||
|
||||
// default alarm settings for new events.
|
||||
// this is only a preset when a new event dialog opens
|
||||
// possible values are <empty>, DISPLAY, EMAIL
|
||||
$rcmail_config['calendar_default_alarm_type'] = '';
|
||||
$config['calendar_default_alarm_type'] = '';
|
||||
|
||||
// default alarm offset for new events.
|
||||
// use ical-style offset values like "-1H" (one hour before) or "+30M" (30 minutes after)
|
||||
$rcmail_config['calendar_default_alarm_offset'] = '-15M';
|
||||
$config['calendar_default_alarm_offset'] = '-15M';
|
||||
|
||||
// how to colorize events:
|
||||
// 0: according to calendar color
|
||||
// 1: according to category color
|
||||
// 2: calendar for outer, category for inner color
|
||||
// 3: category for outer, calendar for inner color
|
||||
$rcmail_config['calendar_event_coloring'] = 0;
|
||||
$config['calendar_event_coloring'] = 0;
|
||||
|
||||
// event categories
|
||||
$rcmail_config['calendar_categories'] = array(
|
||||
$config['calendar_categories'] = array(
|
||||
'Personal' => 'c0c0c0',
|
||||
'Work' => 'ff0000',
|
||||
'Family' => '00ff00',
|
||||
|
@ -105,19 +107,49 @@ $rcmail_config['calendar_categories'] = array(
|
|||
);
|
||||
|
||||
// enable users to invite/edit attendees for shared events organized by others
|
||||
$rcmail_config['calendar_allow_invite_shared'] = false;
|
||||
$config['calendar_allow_invite_shared'] = false;
|
||||
|
||||
// allow users to accecpt iTip invitations who are no explicitly listed as attendee.
|
||||
// this can be the case if invitations are sent to mailing lists or alias email addresses.
|
||||
$config['calendar_allow_itip_uninvited'] = true;
|
||||
|
||||
// controls the visibility/default of the checkbox controlling the sending of iTip invitations
|
||||
// 0 = hidden + disabled
|
||||
// 1 = hidden + active
|
||||
// 2 = visible + unchecked
|
||||
// 3 = visible + active
|
||||
$config['calendar_itip_send_option'] = 3;
|
||||
|
||||
// Action taken after iTip request is handled. Possible values:
|
||||
// 0 - no action
|
||||
// 1 - move to Trash
|
||||
// 2 - delete the message
|
||||
// 3 - flag as deleted
|
||||
// folder_name - move the message to the specified folder
|
||||
$config['calendar_itip_after_action'] = 0;
|
||||
|
||||
// enable asynchronous free-busy triggering after data changed
|
||||
$rcmail_config['calendar_freebusy_trigger'] = false;
|
||||
$config['calendar_freebusy_trigger'] = false;
|
||||
|
||||
// SMTP server host used to send (anonymous) itip messages
|
||||
$rcmail_config['calendar_itip_smtp_server'] = null;
|
||||
// free-busy information will be displayed for user calendars if available
|
||||
// 0 - no free-busy information
|
||||
// 1 - enabled in all views
|
||||
// 2 - only in quickview
|
||||
$config['calendar_include_freebusy_data'] = 1;
|
||||
|
||||
// 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'
|
||||
$config['calendar_itip_smtp_server'] = null;
|
||||
|
||||
// SMTP username used to send (anonymous) itip messages
|
||||
$rcmail_config['calendar_itip_smtp_user'] = 'smtpauth';
|
||||
$config['calendar_itip_smtp_user'] = 'smtpauth';
|
||||
|
||||
// SMTP password used to send (anonymous) itip messages
|
||||
$rcmail_config['calendar_itip_smtp_pass'] = '123456';
|
||||
$config['calendar_itip_smtp_pass'] = '123456';
|
||||
|
||||
// show virtual invitation calendars (Kolab driver only)
|
||||
$config['kolab_invitation_calendars'] = true;
|
||||
|
||||
// Base URL to build fully qualified URIs to access calendars via CALDAV
|
||||
// The following replacement variables are supported:
|
||||
|
@ -125,6 +157,13 @@ $rcmail_config['calendar_itip_smtp_pass'] = '123456';
|
|||
// %u - Current webmail user name
|
||||
// %n - Calendar name
|
||||
// %i - Calendar UUID
|
||||
// $rcmail_config['calendar_caldav_url'] = 'http://%h/iRony/calendars/%u/%i';
|
||||
// $config['calendar_caldav_url'] = 'http://%h/iRony/calendars/%u/%i';
|
||||
|
||||
// Driver to provide a resource directory ('ldap' is the only implementation yet).
|
||||
// Leave empty or commented to disable resources support.
|
||||
// $config['calendar_resources_driver'] = 'ldap';
|
||||
|
||||
// LDAP directory configuration to find avilable resources for events
|
||||
// $config['calendar_resources_directory'] = array(/* ldap_public-like address book configuration */);
|
||||
|
||||
?>
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
* @author Thomas Bruederli <bruederli@kolabsys.com>
|
||||
*
|
||||
* Copyright (C) 2010, Lazlo Westerhof <hello@lazlo.me>
|
||||
* Copyright (C) 2012, Kolab Systems AG <contact@kolabsys.com>
|
||||
* Copyright (C) 2012-2015, Kolab Systems AG <contact@kolabsys.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
|
@ -50,8 +50,10 @@
|
|||
* 'EXCEPTIONS' => array(<event>), list of event objects which denote exceptions in the recurrence chain
|
||||
* ),
|
||||
* 'recurrence_id' => 'ID of the recurrence group', // usually the ID of the starting event
|
||||
* '_instance' => 'ID of the recurring instance', // identifies an instance within a recurrence chain
|
||||
* 'categories' => 'Event category',
|
||||
* 'free_busy' => 'free|busy|outofoffice|tentative', // Show time as
|
||||
* 'status' => 'TENTATIVE|CONFIRMED|CANCELLED', // event status according to RFC 2445
|
||||
* 'priority' => 0-9, // Event priority (0=undefined, 1=highest, 9=lowest)
|
||||
* 'sensitivity' => 'public|private|confidential', // Event sensitivity
|
||||
* 'alarms' => '-15M:DISPLAY', // DEPRECATED Reminder settings inspired by valarm definition (e.g. display alert 15 minutes before event)
|
||||
|
@ -92,12 +94,22 @@
|
|||
*/
|
||||
abstract class calendar_driver
|
||||
{
|
||||
const FILTER_ALL = 0;
|
||||
const FILTER_WRITEABLE = 1;
|
||||
const FILTER_INSERTABLE = 2;
|
||||
const FILTER_ACTIVE = 4;
|
||||
const FILTER_PERSONAL = 8;
|
||||
const FILTER_PRIVATE = 16;
|
||||
const FILTER_CONFIDENTIAL = 32;
|
||||
const BIRTHDAY_CALENDAR_ID = '__bdays__';
|
||||
|
||||
// features supported by backend
|
||||
public $alarms = false;
|
||||
public $attendees = false;
|
||||
public $freebusy = false;
|
||||
public $attachments = false;
|
||||
public $undelete = false; // event undelete action
|
||||
public $undelete = false;
|
||||
public $history = false;
|
||||
public $categoriesimmutable = false;
|
||||
public $alarm_types = array('DISPLAY');
|
||||
public $alarm_absolute = true;
|
||||
|
@ -113,12 +125,11 @@ abstract class calendar_driver
|
|||
/**
|
||||
* Get a list of available calendars from this source
|
||||
*
|
||||
* @param bool $active Return only active calendars
|
||||
* @param bool $personal Return only personal calendars
|
||||
*
|
||||
* @param integer Bitmask defining filter criterias.
|
||||
* See FILTER_* constants for possible values.
|
||||
* @return array List of calendars
|
||||
*/
|
||||
abstract function list_calendars($active = false, $personal = false);
|
||||
abstract function list_calendars($filter = 0);
|
||||
|
||||
/**
|
||||
* Create a new calendar assigned to the current user
|
||||
|
@ -160,7 +171,16 @@ abstract class calendar_driver
|
|||
* id: Calendar Identifier
|
||||
* @return boolean True on success, Fales on failure
|
||||
*/
|
||||
abstract function remove_calendar($prop);
|
||||
abstract function delete_calendar($prop);
|
||||
|
||||
/**
|
||||
* Search for shared or otherwise not listed calendars the user has access
|
||||
*
|
||||
* @param string Search string
|
||||
* @param string Section/source to search
|
||||
* @return array List of calendars
|
||||
*/
|
||||
abstract function search_calendars($query, $source);
|
||||
|
||||
/**
|
||||
* Add a single event to the database
|
||||
|
@ -178,6 +198,31 @@ abstract class calendar_driver
|
|||
*/
|
||||
abstract function edit_event($event);
|
||||
|
||||
/**
|
||||
* Extended event editing with possible changes to the argument
|
||||
*
|
||||
* @param array Hash array with event properties
|
||||
* @param string New participant status
|
||||
* @param array List of hash arrays with updated attendees
|
||||
* @return boolean True on success, False on error
|
||||
*/
|
||||
public function edit_rsvp(&$event, $status, $attendees)
|
||||
{
|
||||
return $this->edit_event($event);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the participant status for the given attendee
|
||||
*
|
||||
* @param array Hash array with event properties
|
||||
* @param array List of hash arrays each represeting an updated attendee
|
||||
* @return boolean True on success, False on error
|
||||
*/
|
||||
public function update_attendees(&$event, $attendees)
|
||||
{
|
||||
return $this->edit_event($event);
|
||||
}
|
||||
|
||||
/**
|
||||
* Move a single event
|
||||
*
|
||||
|
@ -230,21 +275,23 @@ abstract class calendar_driver
|
|||
* Return data of a single event
|
||||
*
|
||||
* @param mixed UID string or hash array with event properties:
|
||||
* id: Event identifier
|
||||
* calendar: Calendar identifier (optional)
|
||||
* @param boolean If true, only writeable calendars shall be searched
|
||||
* @param boolean If true, only active calendars shall be searched
|
||||
* @param boolean If true, only personal calendars shall be searched
|
||||
* id: Event identifier
|
||||
* uid: Event UID
|
||||
* _instance: Instance identifier in combination with uid (optional)
|
||||
* calendar: Calendar identifier (optional)
|
||||
* @param integer Bitmask defining the scope to search events in.
|
||||
* See FILTER_* constants for possible values.
|
||||
* @param boolean If true, recurrence exceptions shall be added
|
||||
*
|
||||
* @return array Event object as hash array
|
||||
*/
|
||||
abstract function get_event($event, $writeable = false, $active = false, $personal = false);
|
||||
abstract function get_event($event, $scope = 0, $full = false);
|
||||
|
||||
/**
|
||||
* Get events from source.
|
||||
*
|
||||
* @param integer Event's new start (unix timestamp)
|
||||
* @param integer Event's new end (unix timestamp)
|
||||
* @param integer Date range start (unix timestamp)
|
||||
* @param integer Date range end (unix timestamp)
|
||||
* @param string Search query (optional)
|
||||
* @param mixed List of calendar IDs to load events from (either as array or comma-separated string)
|
||||
* @param boolean Include virtual/recurring events (optional)
|
||||
|
@ -253,6 +300,16 @@ abstract class calendar_driver
|
|||
*/
|
||||
abstract function load_events($start, $end, $query = null, $calendars = null, $virtual = 1, $modifiedsince = null);
|
||||
|
||||
/**
|
||||
* Get number of events in the given calendar
|
||||
*
|
||||
* @param mixed List of calendar IDs to count events (either as array or comma-separated string)
|
||||
* @param integer Date range start (unix timestamp)
|
||||
* @param integer Date range end (unix timestamp)
|
||||
* @return array Hash array with counts grouped by calendar ID
|
||||
*/
|
||||
abstract function count_events($calendars, $start, $end = null);
|
||||
|
||||
/**
|
||||
* Get a list of pending alarms to be displayed to the user
|
||||
*
|
||||
|
@ -342,6 +399,21 @@ abstract class calendar_driver
|
|||
*/
|
||||
public function get_attachment_body($id, $event) { }
|
||||
|
||||
/**
|
||||
* Build a struct representing the given message reference
|
||||
*
|
||||
* @param object|string $uri_or_headers rcube_message_header instance holding the message headers
|
||||
* or an URI from a stored link referencing a mail message.
|
||||
* @param string $folder IMAP folder the message resides in
|
||||
*
|
||||
* @return array An struct referencing the given IMAP message
|
||||
*/
|
||||
public function get_message_reference($uri_or_headers, $folder = null)
|
||||
{
|
||||
// to be implemented by the derived classes
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* List availabale categories
|
||||
* The default implementation reads them from config/user prefs
|
||||
|
@ -381,6 +453,132 @@ abstract class calendar_driver
|
|||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create instances of a recurring event
|
||||
*
|
||||
* @param array Hash array with event properties
|
||||
* @param object DateTime Start date of the recurrence window
|
||||
* @param object DateTime End date of the recurrence window
|
||||
* @return array List of recurring event instances
|
||||
*/
|
||||
public function get_recurring_events($event, $start, $end = null)
|
||||
{
|
||||
$events = array();
|
||||
|
||||
if ($event['recurrence']) {
|
||||
// include library class
|
||||
require_once(dirname(__FILE__) . '/../lib/calendar_recurrence.php');
|
||||
|
||||
$rcmail = rcmail::get_instance();
|
||||
$recurrence = new calendar_recurrence($rcmail->plugins->get_plugin('calendar'), $event);
|
||||
$recurrence_id_format = libcalendaring::recurrence_id_format($event);
|
||||
|
||||
// determine a reasonable end date if none given
|
||||
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->add(new DateInterval($intvl));
|
||||
}
|
||||
|
||||
$i = 0;
|
||||
while ($next_event = $recurrence->next_instance()) {
|
||||
// add to output if in range
|
||||
if (($next_event['start'] <= $end && $next_event['end'] >= $start)) {
|
||||
$next_event['_instance'] = $next_event['start']->format($recurrence_id_format);
|
||||
$next_event['id'] = $next_event['uid'] . '-' . $exception['_instance'];
|
||||
$next_event['recurrence_id'] = $event['uid'];
|
||||
$events[] = $next_event;
|
||||
}
|
||||
else if ($next_event['start'] > $end) { // stop loop if out of range
|
||||
break;
|
||||
}
|
||||
|
||||
// avoid endless recursion loops
|
||||
if (++$i > 1000) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $events;
|
||||
}
|
||||
|
||||
/**
|
||||
* Provide a list of revisions for the given event
|
||||
*
|
||||
* @param array $event Hash array with event properties:
|
||||
* id: Event identifier
|
||||
* calendar: Calendar identifier
|
||||
*
|
||||
* @return array List of changes, each as a hash array:
|
||||
* rev: Revision number
|
||||
* type: Type of the change (create, update, move, delete)
|
||||
* date: Change date
|
||||
* user: The user who executed the change
|
||||
* ip: Client IP
|
||||
* destination: Destination calendar for 'move' type
|
||||
*/
|
||||
public function get_event_changelog($event)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a list of property changes beteen two revisions of an event
|
||||
*
|
||||
* @param array $event Hash array with event properties:
|
||||
* id: Event identifier
|
||||
* calendar: Calendar identifier
|
||||
* @param mixed $rev Revisions: "from:to"
|
||||
*
|
||||
* @return array List of property changes, each as a hash array:
|
||||
* property: Revision number
|
||||
* old: Old property value
|
||||
* new: Updated property value
|
||||
*/
|
||||
public function get_event_diff($event, $rev)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return full data of a specific revision of an event
|
||||
*
|
||||
* @param mixed UID string or hash array with event properties:
|
||||
* id: Event identifier
|
||||
* calendar: Calendar identifier
|
||||
* @param mixed $rev Revision number
|
||||
*
|
||||
* @return array Event object as hash array
|
||||
* @see self::get_event()
|
||||
*/
|
||||
public function get_event_revison($event, $rev)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Command the backend to restore a certain revision of an event.
|
||||
* This shall replace the current event with an older version.
|
||||
*
|
||||
* @param mixed UID string or hash array with event properties:
|
||||
* id: Event identifier
|
||||
* calendar: Calendar identifier
|
||||
* @param mixed $rev Revision number
|
||||
*
|
||||
* @return boolean True on success, False on failure
|
||||
*/
|
||||
public function restore_event_revision($event, $rev)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Callback function to produce driver-specific calendar create/edit form
|
||||
*
|
||||
|
@ -403,13 +601,219 @@ abstract class calendar_driver
|
|||
}
|
||||
|
||||
/**
|
||||
* Return a (limited) list of color values to be used for calendar and category coloring
|
||||
* Compose a list of birthday events from the contact records in the user's address books.
|
||||
*
|
||||
* @return mixed List for colors as hex values or false if no presets should be shown
|
||||
* This is a default implementation using Roundcube's address book API.
|
||||
* It can be overriden with a more optimized version by the individual drivers.
|
||||
*
|
||||
* @param integer Event's new start (unix timestamp)
|
||||
* @param integer Event's new end (unix timestamp)
|
||||
* @param string Search query (optional)
|
||||
* @param integer Only list events modified since this time (unix timestamp)
|
||||
* @return array A list of event records
|
||||
*/
|
||||
public function get_color_values()
|
||||
public function load_birthday_events($start, $end, $search = null, $modifiedsince = null)
|
||||
{
|
||||
return false;
|
||||
// ignore update requests for simplicity reasons
|
||||
if (!empty($modifiedsince)) {
|
||||
return array();
|
||||
}
|
||||
|
||||
// convert to DateTime for comparisons
|
||||
$start = new DateTime('@'.$start);
|
||||
$end = new DateTime('@'.$end);
|
||||
// extract the current year
|
||||
$year = $start->format('Y');
|
||||
$year2 = $end->format('Y');
|
||||
|
||||
$events = array();
|
||||
$search = mb_strtolower($search);
|
||||
$rcmail = rcmail::get_instance();
|
||||
$cache = $rcmail->get_cache('calendar.birthdays', 'db', 3600);
|
||||
$cache->expunge();
|
||||
|
||||
$alarm_type = $rcmail->config->get('calendar_birthdays_alarm_type', '');
|
||||
$alarm_offset = $rcmail->config->get('calendar_birthdays_alarm_offset', '-1D');
|
||||
$alarms = $alarm_type ? $alarm_offset . ':' . $alarm_type : null;
|
||||
|
||||
// let the user select the address books to consider in prefs
|
||||
$selected_sources = $rcmail->config->get('calendar_birthday_adressbooks');
|
||||
$sources = $selected_sources ?: array_keys($rcmail->get_address_sources(false, true));
|
||||
foreach ($sources as $source) {
|
||||
$abook = $rcmail->get_address_book($source);
|
||||
|
||||
// skip LDAP address books unless selected by the user
|
||||
if (!$abook || ($abook instanceof rcube_ldap && empty($selected_sources))) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$abook->set_pagesize(10000);
|
||||
|
||||
// check for cached results
|
||||
$cache_records = array();
|
||||
$cached = $cache->get($source);
|
||||
|
||||
// iterate over (cached) contacts
|
||||
foreach (($cached ?: $abook->search('*', '', 2, true, true, array('birthday'))) as $contact) {
|
||||
if (is_array($contact) && !empty($contact['birthday'])) {
|
||||
try {
|
||||
if (is_array($contact['birthday']))
|
||||
$contact['birthday'] = reset($contact['birthday']);
|
||||
|
||||
$bday = $contact['birthday'] instanceof DateTime ? $contact['birthday'] :
|
||||
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;
|
||||
}
|
||||
|
||||
$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
|
||||
if (empty($cached)) {
|
||||
$cache_records[] = array(
|
||||
'ID' => $contact['ID'],
|
||||
'name' => $display_name,
|
||||
'birthday' => $bday->format('Y-m-d'),
|
||||
);
|
||||
}
|
||||
|
||||
// filter by search term (only name is involved here)
|
||||
if (!empty($search) && strpos(mb_strtolower($event_title), $search) === false) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// quick-and-dirty recurrence computation: just replace the year
|
||||
$bday->setDate($year, $bday->format('n'), $bday->format('j'));
|
||||
$bday->setTime(12, 0, 0);
|
||||
|
||||
// date range reaches over multiple years: use end year if not in range
|
||||
if (($bday > $end || $bday < $start) && $year2 != $year) {
|
||||
$bday->setDate($year2, $bday->format('n'), $bday->format('j'));
|
||||
$year = $year2;
|
||||
}
|
||||
|
||||
// birthday is within requested range
|
||||
if ($bday <= $end && $bday >= $start) {
|
||||
$age = $year - $birthyear;
|
||||
$event = array(
|
||||
'id' => rcube_ldap::dn_encode('bday:' . $source . ':' . $contact['ID'] . ':' . $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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// store collected contacts in cache
|
||||
if (empty($cached)) {
|
||||
$cache->write($source, $cache_records);
|
||||
}
|
||||
}
|
||||
|
||||
return $events;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a single birthday calendar event
|
||||
*/
|
||||
public function get_birthday_event($id)
|
||||
{
|
||||
// decode $id
|
||||
list(,$source,$contact_id,$year) = explode(':', rcube_ldap::dn_decode($id));
|
||||
|
||||
$rcmail = rcmail::get_instance();
|
||||
|
||||
if ($source && $contact_id && ($abook = $rcmail->get_address_book($source))) {
|
||||
$contact = $abook->get_record($contact_id, true);
|
||||
|
||||
if (is_array($contact) && !empty($contact['birthday'])) {
|
||||
try {
|
||||
if (is_array($contact['birthday']))
|
||||
$contact['birthday'] = reset($contact['birthday']);
|
||||
|
||||
$bday = $contact['birthday'] instanceof DateTime ? $contact['birthday'] :
|
||||
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);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
$display_name = rcube_addressbook::compose_display_name($contact);
|
||||
$event_title = $rcmail->gettext(array('name' => 'birthdayeventtitle', 'vars' => array('name' => $display_name)), 'calendar');
|
||||
|
||||
$event = array(
|
||||
'id' => rcube_ldap::dn_encode('bday:' . $source . ':' . $contact['ID'] . ':' . $year),
|
||||
'uid' => rcube_ldap::dn_encode('bday:' . $source . ':' . $contact['ID'] . ':' . $birthyear),
|
||||
'calendar' => self::BIRTHDAY_CALENDAR_ID,
|
||||
'title' => $event_title,
|
||||
'description' => '',
|
||||
'allday' => true,
|
||||
'start' => $bday,
|
||||
'recurrence' => array('FREQ' => 'YEARLY', 'INTERVAL' => 1),
|
||||
'free_busy' => 'free',
|
||||
);
|
||||
$event['end'] = clone $bday;
|
||||
$event['end']->add(new DateInterval('PT1H'));
|
||||
|
||||
return $event;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Store alarm dismissal for birtual birthay events
|
||||
*
|
||||
* @param string Event identifier
|
||||
* @param integer Suspend the alarm for this number of seconds
|
||||
*/
|
||||
public function dismiss_birthday_alarm($event_id, $snooze = 0)
|
||||
{
|
||||
$rcmail = rcmail::get_instance();
|
||||
$cache = $rcmail->get_cache('calendar.birthdayalarms', 'db', 86400 * 30);
|
||||
$cache->remove($event_id);
|
||||
|
||||
// compute new notification time or disable if not snoozed
|
||||
$notifyat = $snooze > 0 ? time() + $snooze : null;
|
||||
$cache->set($event_id, array('snooze' => $snooze, 'notifyat' => $notifyat));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Handler for user_delete plugin hook
|
||||
*
|
||||
* @param array Hash array with hook arguments
|
||||
* @return array Return arguments for plugin hooks
|
||||
*/
|
||||
public function user_delete($args)
|
||||
{
|
||||
// TO BE OVERRIDDEN
|
||||
return $args;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,12 +3,11 @@
|
|||
*
|
||||
* Plugin to add a calendar to Roundcube.
|
||||
*
|
||||
* @version @package_version@
|
||||
* @author Lazlo Westerhof
|
||||
* @author Thomas Bruederli
|
||||
* @url http://rc-calendar.lazlo.me
|
||||
* @licence GNU AGPL
|
||||
* @copyright (c) 2010 Lazlo Westerhof - Netherlands
|
||||
* @copyright (c) 2014 Kolab Systems AG
|
||||
*
|
||||
**/
|
||||
|
||||
|
@ -29,6 +28,8 @@ CREATE TABLE IF NOT EXISTS `events` (
|
|||
`calendar_id` int(11) UNSIGNED NOT NULL DEFAULT '0',
|
||||
`recurrence_id` int(11) UNSIGNED NOT NULL DEFAULT '0',
|
||||
`uid` varchar(255) NOT NULL DEFAULT '',
|
||||
`instance` varchar(16) NOT NULL DEFAULT ''
|
||||
`isexception` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`created` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
|
||||
`changed` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
|
||||
`sequence` int(1) UNSIGNED NOT NULL DEFAULT '0',
|
||||
|
@ -44,7 +45,8 @@ CREATE TABLE IF NOT EXISTS `events` (
|
|||
`free_busy` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`priority` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`sensitivity` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`alarms` varchar(255) DEFAULT NULL,
|
||||
`status` varchar(32) NOT NULL DEFAULT '',
|
||||
`alarms` text DEFAULT NULL,
|
||||
`attendees` text DEFAULT NULL,
|
||||
`notifyat` datetime DEFAULT NULL,
|
||||
PRIMARY KEY(`event_id`),
|
||||
|
@ -80,4 +82,4 @@ CREATE TABLE IF NOT EXISTS `itipinvitations` (
|
|||
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
REPLACE INTO system (name, value) VALUES ('calendar-database-version', '2013051600');
|
||||
REPLACE INTO system (name, value) VALUES ('calendar-database-version', '2015022700');
|
||||
|
|
3
drivers/database/SQL/mysql/2014040900.sql
Normal file
|
@ -0,0 +1,3 @@
|
|||
-- MySQL database updates since version 1.0
|
||||
|
||||
ALTER TABLE `events` ADD `status` VARCHAR(32) NOT NULL AFTER `sensitivity`;
|
15
drivers/database/SQL/mysql/2015022700.sql
Normal file
|
@ -0,0 +1,15 @@
|
|||
-- add identifier for recurring instances and exceptions
|
||||
|
||||
ALTER TABLE `events` ADD `instance` varchar(16) NOT NULL DEFAULT '' AFTER `uid`;
|
||||
ALTER TABLE `events` ADD `isexception` tinyint(1) NOT NULL DEFAULT '0' AFTER `instance`;
|
||||
|
||||
UPDATE `events` SET `instance` = DATE_FORMAT(`start`, '%Y%m%d')
|
||||
WHERE `recurrence_id` != 0 AND `instance` = '' AND `all_day` = 1;
|
||||
|
||||
UPDATE `events` SET `instance` = DATE_FORMAT(`start`, '%Y%m%dT%k%i%s')
|
||||
WHERE `recurrence_id` != 0 AND `instance` = '' AND `all_day` = 0;
|
||||
|
||||
-- extend alarms columns for multiple values
|
||||
|
||||
ALTER TABLE `events` CHANGE `alarms` `alarms` TEXT NULL DEFAULT NULL;
|
||||
|
|
@ -3,13 +3,12 @@
|
|||
*
|
||||
* Plugin to add a calendar to RoundCube.
|
||||
*
|
||||
* @version @package_version@
|
||||
* @author Lazlo Westerhof
|
||||
* @author Albert Lee
|
||||
* @author Aleksander Machniak <machniak@kolabsys.com>
|
||||
* @url http://rc-calendar.lazlo.me
|
||||
* @licence GNU AGPL
|
||||
* @copyright (c) 2010 Lazlo Westerhof - Netherlands
|
||||
* @copyright (c) 2014 Kolab Systems AG
|
||||
*
|
||||
**/
|
||||
|
||||
|
@ -45,22 +44,25 @@ CREATE TABLE events (
|
|||
REFERENCES calendars (calendar_id) ON UPDATE CASCADE ON DELETE CASCADE,
|
||||
recurrence_id integer NOT NULL DEFAULT 0,
|
||||
uid varchar(255) NOT NULL DEFAULT '',
|
||||
instance varchar(16) NOT NULL DEFAULT '',
|
||||
isexception smallint NOT NULL DEFAULT '0',
|
||||
created timestamp without time zone DEFAULT now() NOT NULL,
|
||||
changed timestamp without time zone DEFAULT now(),
|
||||
sequence integer NOT NULL DEFAULT 0,
|
||||
"start" timestamp without time zone DEFAULT now() NOT NULL,
|
||||
"end" timestamp without time zone DEFAULT now() NOT NULL,
|
||||
recurrence varchar(255) DEFAULT NULL,
|
||||
title character varying(255) NOT NULL,
|
||||
description text NOT NULL,
|
||||
location character varying(255) NOT NULL,
|
||||
categories character varying(255) NOT NULL,
|
||||
url character varying(255) NOT NULL,
|
||||
title character varying(255) NOT NULL DEFAULT '',
|
||||
description text NOT NULL DEFAULT '',
|
||||
location character varying(255) NOT NULL DEFAULT '',
|
||||
categories character varying(255) NOT NULL DEFAULT '',
|
||||
url character varying(255) NOT NULL DEFAULT '',
|
||||
all_day smallint NOT NULL DEFAULT 0,
|
||||
free_busy smallint NOT NULL DEFAULT 0,
|
||||
priority smallint NOT NULL DEFAULT 0,
|
||||
sensitivity smallint NOT NULL DEFAULT 0,
|
||||
alarms varchar(255) DEFAULT NULL,
|
||||
status character varying(32) NOT NULL DEFAULT '',
|
||||
alarms text DEFAULT NULL,
|
||||
attendees text DEFAULT NULL,
|
||||
notifyat timestamp without time zone DEFAULT NULL,
|
||||
PRIMARY KEY (event_id)
|
||||
|
@ -104,4 +106,4 @@ CREATE TABLE itipinvitations (
|
|||
|
||||
CREATE INDEX itipinvitations_user_id_event_uid_idx ON itipinvitations (user_id, event_uid);
|
||||
|
||||
INSERT INTO system (name, value) VALUES ('calendar-database-version', '2013051600');
|
||||
INSERT INTO system (name, value) VALUES ('calendar-database-version', '2015022700');
|
||||
|
|
3
drivers/database/SQL/postgres/2014040900.sql
Normal file
|
@ -0,0 +1,3 @@
|
|||
-- Postgres database updates since version 1.0
|
||||
|
||||
ALTER TABLE events ADD status character varying(32) NOT NULL;
|
9
drivers/database/SQL/postgres/2015022700.sql
Normal file
|
@ -0,0 +1,9 @@
|
|||
-- add identifier for recurring instances and exceptions
|
||||
|
||||
ALTER TABLE events ADD instance character varying(16) NOT NULL;
|
||||
ALTER TABLE events ADD isexception smallint NOT NULL DEFAULT '0';
|
||||
|
||||
-- extend alarms columns for multiple values
|
||||
|
||||
ALTER TABLE events ALTER COLUMN alarms TYPE text;
|
||||
|
|
@ -3,13 +3,12 @@
|
|||
*
|
||||
* Plugin to add a calendar to Roundcube.
|
||||
*
|
||||
* @version @package_version@
|
||||
* @author Lazlo Westerhof
|
||||
* @author Thomas Bruederli
|
||||
* @author Albert Lee
|
||||
* @url http://rc-calendar.lazlo.me
|
||||
* @licence GNU AGPL
|
||||
* @copyright (c) 2010 Lazlo Westerhof - Netherlands
|
||||
* @copyright (c) 2014 Kolab Systems AG
|
||||
*
|
||||
**/
|
||||
|
||||
|
@ -28,6 +27,8 @@ CREATE TABLE events (
|
|||
calendar_id integer NOT NULL default '0',
|
||||
recurrence_id integer NOT NULL default '0',
|
||||
uid varchar(255) NOT NULL default '',
|
||||
instance varchar(16) NOT NULL default '',
|
||||
isexception tinyint(1) NOT NULL default '0',
|
||||
created datetime NOT NULL default '1000-01-01 00:00:00',
|
||||
changed datetime NOT NULL default '1000-01-01 00:00:00',
|
||||
sequence integer NOT NULL default '0',
|
||||
|
@ -43,7 +44,8 @@ CREATE TABLE events (
|
|||
free_busy tinyint(1) NOT NULL default '0',
|
||||
priority tinyint(1) NOT NULL default '0',
|
||||
sensitivity tinyint(1) NOT NULL default '0',
|
||||
alarms varchar(255) default NULL,
|
||||
status varchar(32) NOT NULL default '',
|
||||
alarms text default NULL,
|
||||
attendees text default NULL,
|
||||
notifyat datetime default NULL,
|
||||
CONSTRAINT fk_events_calendar_id FOREIGN KEY (calendar_id)
|
||||
|
@ -74,4 +76,4 @@ CREATE TABLE itipinvitations (
|
|||
|
||||
CREATE INDEX ix_itipinvitations_uid ON itipinvitations(user_id, event_uid);
|
||||
|
||||
INSERT INTO system (name, value) VALUES ('calendar-database-version', '2013051600');
|
||||
INSERT INTO system (name, value) VALUES ('calendar-database-version', '2015022700');
|
||||
|
|
67
drivers/database/SQL/sqlite/2014040900.sql
Normal file
|
@ -0,0 +1,67 @@
|
|||
-- SQLite database updates since version 0.9-beta
|
||||
|
||||
-- ALTER TABLE events ADD url varchar(255) NOT NULL AFTER categories;
|
||||
|
||||
CREATE TABLE temp_events (
|
||||
event_id integer NOT NULL PRIMARY KEY,
|
||||
calendar_id integer NOT NULL default '0',
|
||||
recurrence_id integer NOT NULL default '0',
|
||||
uid varchar(255) NOT NULL default '',
|
||||
created datetime NOT NULL default '1000-01-01 00:00:00',
|
||||
changed datetime NOT NULL default '1000-01-01 00:00:00',
|
||||
sequence integer NOT NULL default '0',
|
||||
start datetime NOT NULL default '1000-01-01 00:00:00',
|
||||
end datetime NOT NULL default '1000-01-01 00:00:00',
|
||||
recurrence varchar(255) default NULL,
|
||||
title varchar(255) NOT NULL,
|
||||
description text NOT NULL,
|
||||
location varchar(255) NOT NULL default '',
|
||||
categories varchar(255) NOT NULL default '',
|
||||
url varchar(255) NOT NULL default '',
|
||||
all_day tinyint(1) NOT NULL default '0',
|
||||
free_busy tinyint(1) NOT NULL default '0',
|
||||
priority tinyint(1) NOT NULL default '0',
|
||||
sensitivity tinyint(1) NOT NULL default '0',
|
||||
alarms varchar(255) default NULL,
|
||||
attendees text default NULL,
|
||||
notifyat datetime default NULL
|
||||
);
|
||||
|
||||
INSERT INTO temp_events (event_id, calendar_id, recurrence_id, uid, created, changed, sequence, start, end, recurrence, title, description, location, categories, url, all_day, free_busy, priority, sensitivity, alarms, attendees, notifyat)
|
||||
SELECT event_id, calendar_id, recurrence_id, uid, created, changed, sequence, start, end, recurrence, title, description, location, categories, url, all_day, free_busy, priority, sensitivity, alarms, attendees, notifyat
|
||||
FROM events;
|
||||
|
||||
DROP TABLE events;
|
||||
|
||||
CREATE TABLE events (
|
||||
event_id integer NOT NULL PRIMARY KEY,
|
||||
calendar_id integer NOT NULL default '0',
|
||||
recurrence_id integer NOT NULL default '0',
|
||||
uid varchar(255) NOT NULL default '',
|
||||
created datetime NOT NULL default '1000-01-01 00:00:00',
|
||||
changed datetime NOT NULL default '1000-01-01 00:00:00',
|
||||
sequence integer NOT NULL default '0',
|
||||
start datetime NOT NULL default '1000-01-01 00:00:00',
|
||||
end datetime NOT NULL default '1000-01-01 00:00:00',
|
||||
recurrence varchar(255) default NULL,
|
||||
title varchar(255) NOT NULL,
|
||||
description text NOT NULL,
|
||||
location varchar(255) NOT NULL default '',
|
||||
categories varchar(255) NOT NULL default '',
|
||||
url varchar(255) NOT NULL default '',
|
||||
all_day tinyint(1) NOT NULL default '0',
|
||||
free_busy tinyint(1) NOT NULL default '0',
|
||||
priority tinyint(1) NOT NULL default '0',
|
||||
sensitivity tinyint(1) NOT NULL default '0',
|
||||
status varchar(32) NOT NULL default '',
|
||||
alarms varchar(255) default NULL,
|
||||
attendees text default NULL,
|
||||
notifyat datetime default NULL,
|
||||
CONSTRAINT fk_events_calendar_id FOREIGN KEY (calendar_id)
|
||||
REFERENCES calendars(calendar_id)
|
||||
);
|
||||
|
||||
INSERT INTO events (event_id, calendar_id, recurrence_id, uid, created, changed, sequence, start, end, recurrence, title, description, location, categories, url, all_day, free_busy, priority, sensitivity, alarms, attendees, notifyat)
|
||||
SELECT event_id, calendar_id, recurrence_id, uid, created, changed, sequence, start, end, recurrence, title, description, location, categories, url, all_day, free_busy, priority, sensitivity, alarms, attendees, notifyat
|
||||
FROM temp_events;
|
||||
|
79
drivers/database/SQL/sqlite/2015022700.sql
Normal file
|
@ -0,0 +1,79 @@
|
|||
-- ALTER TABLE `events` ADD `instance` varchar(16) NOT NULL DEFAULT '' AFTER `uid`;
|
||||
-- ALTER TABLE `events` ADD `isexception` tinyint(3) NOT NULL DEFAULT '0' AFTER `instance`;
|
||||
-- ALTER TABLE `events` CHANGE `alarms` `alarms` TEXT NULL DEFAULT NULL;
|
||||
|
||||
CREATE TABLE temp_events (
|
||||
event_id integer NOT NULL PRIMARY KEY,
|
||||
calendar_id integer NOT NULL default '0',
|
||||
recurrence_id integer NOT NULL default '0',
|
||||
uid varchar(255) NOT NULL default '',
|
||||
created datetime NOT NULL default '1000-01-01 00:00:00',
|
||||
changed datetime NOT NULL default '1000-01-01 00:00:00',
|
||||
sequence integer NOT NULL default '0',
|
||||
start datetime NOT NULL default '1000-01-01 00:00:00',
|
||||
end datetime NOT NULL default '1000-01-01 00:00:00',
|
||||
recurrence varchar(255) default NULL,
|
||||
title varchar(255) NOT NULL,
|
||||
description text NOT NULL,
|
||||
location varchar(255) NOT NULL default '',
|
||||
categories varchar(255) NOT NULL default '',
|
||||
url varchar(255) NOT NULL default '',
|
||||
all_day tinyint(1) NOT NULL default '0',
|
||||
free_busy tinyint(1) NOT NULL default '0',
|
||||
priority tinyint(1) NOT NULL default '0',
|
||||
sensitivity tinyint(1) NOT NULL default '0',
|
||||
status varchar(32) NOT NULL default '',
|
||||
alarms varchar(255) default NULL,
|
||||
attendees text default NULL,
|
||||
notifyat datetime default NULL
|
||||
);
|
||||
|
||||
INSERT INTO temp_events (event_id, calendar_id, recurrence_id, uid, created, changed, sequence, start, end, recurrence, title, description, location, categories, url, all_day, free_busy, priority, sensitivity, alarms, attendees, notifyat)
|
||||
SELECT event_id, calendar_id, recurrence_id, uid, created, changed, sequence, start, end, recurrence, title, description, location, categories, url, all_day, free_busy, priority, sensitivity, alarms, attendees, notifyat
|
||||
FROM events;
|
||||
|
||||
DROP TABLE events;
|
||||
|
||||
CREATE TABLE events (
|
||||
event_id integer NOT NULL PRIMARY KEY,
|
||||
calendar_id integer NOT NULL default '0',
|
||||
recurrence_id integer NOT NULL default '0',
|
||||
uid varchar(255) NOT NULL default '',
|
||||
instance varchar(16) NOT NULL default '',
|
||||
isexception tinyint(1) NOT NULL default '0',
|
||||
created datetime NOT NULL default '1000-01-01 00:00:00',
|
||||
changed datetime NOT NULL default '1000-01-01 00:00:00',
|
||||
sequence integer NOT NULL default '0',
|
||||
start datetime NOT NULL default '1000-01-01 00:00:00',
|
||||
end datetime NOT NULL default '1000-01-01 00:00:00',
|
||||
recurrence varchar(255) default NULL,
|
||||
title varchar(255) NOT NULL,
|
||||
description text NOT NULL,
|
||||
location varchar(255) NOT NULL default '',
|
||||
categories varchar(255) NOT NULL default '',
|
||||
url varchar(255) NOT NULL default '',
|
||||
all_day tinyint(1) NOT NULL default '0',
|
||||
free_busy tinyint(1) NOT NULL default '0',
|
||||
priority tinyint(1) NOT NULL default '0',
|
||||
sensitivity tinyint(1) NOT NULL default '0',
|
||||
status varchar(32) NOT NULL default '',
|
||||
alarms text default NULL,
|
||||
attendees text default NULL,
|
||||
notifyat datetime default NULL,
|
||||
CONSTRAINT fk_events_calendar_id FOREIGN KEY (calendar_id)
|
||||
REFERENCES calendars(calendar_id)
|
||||
);
|
||||
|
||||
INSERT INTO events (event_id, calendar_id, recurrence_id, uid, created, changed, sequence, start, end, recurrence, title, description, location, categories, url, all_day, free_busy, priority, sensitivity, alarms, attendees, notifyat)
|
||||
SELECT event_id, calendar_id, recurrence_id, uid, created, changed, sequence, start, end, recurrence, title, description, location, categories, url, all_day, free_busy, priority, sensitivity, alarms, attendees, notifyat
|
||||
FROM temp_events;
|
||||
|
||||
DROP TABLE temp_events;
|
||||
|
||||
-- Derrive instance columns from start date/time
|
||||
|
||||
UPDATE events SET instance = strftime('%Y%m%d', start)
|
||||
WHERE recurrence_id != 0 AND instance = '' AND all_day = 1;
|
||||
|
||||
UPDATE events SET instance = strftime('%Y%m%dT%H%M%S', start)
|
||||
WHERE recurrence_id != 0 AND instance = '' AND all_day = 0;
|
|
@ -7,11 +7,11 @@
|
|||
**/
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `kolab_alarms` (
|
||||
`event_id` VARCHAR(255) NOT NULL,
|
||||
`alarm_id` VARCHAR(255) NOT NULL,
|
||||
`user_id` int(10) UNSIGNED NOT NULL,
|
||||
`notifyat` DATETIME DEFAULT NULL,
|
||||
`dismissed` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY(`event_id`,`user_id`),
|
||||
PRIMARY KEY(`alarm_id`,`user_id`),
|
||||
CONSTRAINT `fk_kolab_alarms_user_id` FOREIGN KEY (`user_id`)
|
||||
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
) /*!40000 ENGINE=INNODB */;
|
||||
|
@ -29,4 +29,4 @@ CREATE TABLE IF NOT EXISTS `itipinvitations` (
|
|||
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
REPLACE INTO system (name, value) VALUES ('calendar-kolab-version', '2013011000');
|
||||
REPLACE INTO system (name, value) VALUES ('calendar-kolab-version', '2014041700');
|
||||
|
|
1
drivers/kolab/SQL/mysql/2014041700.sql
Normal file
|
@ -0,0 +1 @@
|
|||
ALTER TABLE `kolab_alarms` CHANGE `event_id` `alarm_id` VARCHAR(255) NOT NULL;
|
31
drivers/kolab/SQL/oracle.initial.sql
Normal file
|
@ -0,0 +1,31 @@
|
|||
/**
|
||||
* Roundcube Calendar Kolab backend
|
||||
*
|
||||
* @author Aleksander Machniak
|
||||
* @licence GNU AGPL
|
||||
**/
|
||||
|
||||
CREATE TABLE "kolab_alarms" (
|
||||
"alarm_id" varchar(255) NOT NULL PRIMARY KEY,
|
||||
"user_id" integer NOT NULL
|
||||
REFERENCES "users" ("user_id") ON DELETE CASCADE,
|
||||
"notifyat" timestamp DEFAULT NULL,
|
||||
"dismissed" smallint DEFAULT 0 NOT NULL
|
||||
);
|
||||
|
||||
CREATE INDEX "kolab_alarms_user_id_idx" ON "kolab_alarms" ("user_id");
|
||||
|
||||
|
||||
CREATE TABLE "itipinvitations" (
|
||||
"token" varchar(64) NOT NULL PRIMARY KEY,
|
||||
"event_uid" varchar(255) NOT NULL,
|
||||
"user_id" integer NOT NULL
|
||||
REFERENCES "users" ("user_id") ON DELETE CASCADE,
|
||||
"event" long NOT NULL,
|
||||
"expires" timestamp DEFAULT NULL,
|
||||
"cancelled" smallint DEFAULT 0 NOT NULL
|
||||
);
|
||||
|
||||
CREATE INDEX "itipinvitations_user_id_idx" ON "itipinvitations" ("user_id", "event_uid");
|
||||
|
||||
INSERT INTO "system" ("name", "value") VALUES ('calendar-kolab-version', '2014041700');
|
|
@ -6,14 +6,16 @@
|
|||
**/
|
||||
|
||||
CREATE TABLE IF NOT EXISTS kolab_alarms (
|
||||
event_id character varying(255) NOT NULL,
|
||||
alarm_id character varying(255) NOT NULL,
|
||||
user_id integer NOT NULL
|
||||
REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
notifyat timestamp without time zone DEFAULT NULL,
|
||||
dismissed smallint NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY(event_id)
|
||||
PRIMARY KEY(alarm_id)
|
||||
);
|
||||
|
||||
CREATE INDEX kolab_alarms_user_id_idx ON kolab_alarms (user_id);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS itipinvitations (
|
||||
token character varying(64) NOT NULL,
|
||||
event_uid character varying(255) NOT NULL,
|
||||
|
@ -25,6 +27,6 @@ CREATE TABLE IF NOT EXISTS itipinvitations (
|
|||
PRIMARY KEY(token)
|
||||
);
|
||||
|
||||
CREATE INDEX itipinvitations_event_uid_user_id_idx ON itipinvitations (event_uid, user_id);
|
||||
CREATE INDEX itipinvitations_user_id_event_uid_idx ON itipinvitations (user_id, event_uid);
|
||||
|
||||
INSERT INTO system (name, value) VALUES ('calendar-kolab-version', '2013011000');
|
||||
INSERT INTO system (name, value) VALUES ('calendar-kolab-version', '2014041700');
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
* @author Thomas Bruederli <bruederli@kolabsys.com>
|
||||
* @author Aleksander Machniak <machniak@kolabsys.com>
|
||||
*
|
||||
* Copyright (C) 2012, Kolab Systems AG <contact@kolabsys.com>
|
||||
* Copyright (C) 2012-2015, Kolab Systems AG <contact@kolabsys.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
|
@ -24,22 +24,43 @@
|
|||
*/
|
||||
|
||||
|
||||
class kolab_calendar
|
||||
class kolab_calendar extends kolab_storage_folder_api
|
||||
{
|
||||
public $id;
|
||||
public $ready = false;
|
||||
public $readonly = true;
|
||||
public $rights = 'lrs';
|
||||
public $editable = false;
|
||||
public $attachments = true;
|
||||
public $alarms = false;
|
||||
public $history = false;
|
||||
public $subscriptions = true;
|
||||
public $categories = array();
|
||||
public $storage;
|
||||
public $name;
|
||||
|
||||
private $cal;
|
||||
private $events = array();
|
||||
private $imap_folder = 'INBOX/Calendar';
|
||||
private $search_fields = array('title', 'description', 'location', 'attendees');
|
||||
public $type = 'event';
|
||||
|
||||
protected $cal;
|
||||
protected $events = array();
|
||||
protected $search_fields = array('title', 'description', 'location', 'attendees');
|
||||
|
||||
/**
|
||||
* Factory method to instantiate a kolab_calendar object
|
||||
*
|
||||
* @param string Calendar ID (encoded IMAP folder name)
|
||||
* @param object calendar plugin object
|
||||
* @return object kolab_calendar instance
|
||||
*/
|
||||
public static function factory($id, $calendar)
|
||||
{
|
||||
$imap = $calendar->rc->get_storage();
|
||||
$imap_folder = kolab_storage::id_decode($id);
|
||||
$info = $imap->folder_info($imap_folder, true);
|
||||
if (empty($info) || $info['noselect'] || strpos(kolab_storage::folder_type($imap_folder), 'event') !== 0) {
|
||||
return new kolab_user_calendar($imap_folder, $calendar);
|
||||
}
|
||||
else {
|
||||
return new kolab_calendar($imap_folder, $calendar);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Default constructor
|
||||
|
@ -47,28 +68,30 @@ class kolab_calendar
|
|||
public function __construct($imap_folder, $calendar)
|
||||
{
|
||||
$this->cal = $calendar;
|
||||
|
||||
if (strlen($imap_folder))
|
||||
$this->imap_folder = $this->name = $imap_folder;
|
||||
$this->imap = $calendar->rc->get_storage();
|
||||
$this->name = $imap_folder;
|
||||
|
||||
// ID is derrived from folder name
|
||||
$this->id = kolab_storage::folder_id($this->imap_folder);
|
||||
$this->id = kolab_storage::folder_id($this->name, true);
|
||||
$old_id = kolab_storage::folder_id($this->name, false);
|
||||
|
||||
// fetch objects from the given IMAP folder
|
||||
$this->storage = kolab_storage::get_folder($this->imap_folder);
|
||||
$this->ready = $this->storage && !PEAR::isError($this->storage);
|
||||
$this->storage = kolab_storage::get_folder($this->name);
|
||||
$this->ready = $this->storage && $this->storage->valid;
|
||||
|
||||
// Set readonly and alarms flags according to folder permissions
|
||||
// Set writeable and alarms flags according to folder permissions
|
||||
if ($this->ready) {
|
||||
if ($this->storage->get_namespace() == 'personal') {
|
||||
$this->readonly = false;
|
||||
$this->editable = true;
|
||||
$this->rights = 'lrswikxteav';
|
||||
$this->alarms = true;
|
||||
}
|
||||
else {
|
||||
$rights = $this->storage->get_myrights();
|
||||
if ($rights && !PEAR::isError($rights)) {
|
||||
if (strpos($rights, 'i') !== false)
|
||||
$this->readonly = false;
|
||||
$this->rights = $rights;
|
||||
if (strpos($rights, 't') !== false || strpos($rights, 'd') !== false)
|
||||
$this->editable = strpos($rights, 'i');;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -76,20 +99,12 @@ class kolab_calendar
|
|||
$prefs = $this->cal->rc->config->get('kolab_calendars', array());
|
||||
if (isset($prefs[$this->id]['showalarms']))
|
||||
$this->alarms = $prefs[$this->id]['showalarms'];
|
||||
else if (isset($prefs[$old_id]['showalarms']))
|
||||
$this->alarms = $prefs[$old_id]['showalarms'];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Getter for a nice and human readable name for this calendar
|
||||
* See http://wiki.kolab.org/UI-Concepts/Folder-Listing for reference
|
||||
*
|
||||
* @return string Name of this calendar
|
||||
*/
|
||||
public function get_name()
|
||||
{
|
||||
$folder = kolab_storage::object_name($this->imap_folder, $this->namespace);
|
||||
return $folder;
|
||||
$this->default = $this->storage->default;
|
||||
$this->subtype = $this->storage->subtype;
|
||||
}
|
||||
|
||||
|
||||
|
@ -100,43 +115,18 @@ class kolab_calendar
|
|||
*/
|
||||
public function get_realname()
|
||||
{
|
||||
return $this->imap_folder;
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Getter for the IMAP folder owner
|
||||
*
|
||||
* @return string Name of the folder owner
|
||||
*/
|
||||
public function get_owner()
|
||||
public function get_title()
|
||||
{
|
||||
return $this->storage->get_owner();
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Getter for the name of the namespace to which the IMAP folder belongs
|
||||
*
|
||||
* @return string Name of the namespace (personal, other, shared)
|
||||
*/
|
||||
public function get_namespace()
|
||||
{
|
||||
return $this->storage->get_namespace();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Getter for the top-end calendar folder name (not the entire path)
|
||||
*
|
||||
* @return string Name of this calendar
|
||||
*/
|
||||
public function get_foldername()
|
||||
{
|
||||
$parts = explode('/', $this->imap_folder);
|
||||
return rcube_charset::convert(end($parts), 'UTF7-IMAP');
|
||||
}
|
||||
|
||||
/**
|
||||
* Return color to display this calendar
|
||||
*/
|
||||
|
@ -161,27 +151,37 @@ class kolab_calendar
|
|||
*/
|
||||
public function get_caldav_url()
|
||||
{
|
||||
$url = null;
|
||||
if ($template = $this->cal->rc->config->get('calendar_caldav_url', null)) {
|
||||
return strtr($template, array(
|
||||
'%h' => $_SERVER['HTTP_HOST'],
|
||||
'%u' => urlencode($this->cal->rc->get_user_name()),
|
||||
'%i' => urlencode($this->storage->get_uid()),
|
||||
'%n' => urlencode($this->imap_folder),
|
||||
'%n' => urlencode($this->name),
|
||||
));
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the corresponding kolab_storage_folder instance
|
||||
*/
|
||||
public function get_folder()
|
||||
{
|
||||
return $this->storage;
|
||||
}
|
||||
|
||||
/**
|
||||
* Update properties of this calendar folder
|
||||
*
|
||||
* @see calendar_driver::edit_calendar()
|
||||
*/
|
||||
public function update(&$prop)
|
||||
{
|
||||
$prop['oldname'] = $this->get_realname();
|
||||
$newfolder = kolab_storage::folder_update($prop);
|
||||
|
||||
if ($newfolder === false) {
|
||||
$this->cal->last_error = $this->cal->gettext(kolab_storage::$last_error);
|
||||
return false;
|
||||
}
|
||||
|
||||
// create ID
|
||||
return kolab_storage::folder_id($newfolder);
|
||||
}
|
||||
|
||||
/**
|
||||
* Getter for a single event object
|
||||
|
@ -190,22 +190,54 @@ class kolab_calendar
|
|||
{
|
||||
// directly access storage object
|
||||
if (!$this->events[$id] && ($record = $this->storage->get_object($id)))
|
||||
$this->events[$id] = $this->_to_rcube_event($record);
|
||||
$this->events[$id] = $this->_to_driver_event($record, true);
|
||||
|
||||
// event not found, maybe a recurring instance is requested
|
||||
if (!$this->events[$id]) {
|
||||
$master_id = preg_replace('/-\d+$/', '', $id);
|
||||
if ($master_id != $id && ($record = $this->storage->get_object($master_id)))
|
||||
$this->events[$master_id] = $this->_to_rcube_event($record);
|
||||
$master_id = preg_replace('/-\d+(T\d{6})?$/', '', $id);
|
||||
$instance_id = substr($id, strlen($master_id) + 1);
|
||||
|
||||
if (($master = $this->events[$master_id]) && $master['recurrence']) {
|
||||
$this->_get_recurring_events($record, $master['start'], null, $id);
|
||||
if ($master_id != $id && ($record = $this->storage->get_object($master_id))) {
|
||||
$master = $this->_to_driver_event($record);
|
||||
}
|
||||
|
||||
// check for match in top-level exceptions (aka loose single occurrences)
|
||||
if ($master && $master['_formatobj'] && ($instance = $master['_formatobj']->get_instance($instance_id))) {
|
||||
$this->events[$id] = $this->_to_driver_event($instance);
|
||||
}
|
||||
// check for match on the first instance already
|
||||
else if ($master['_instance'] && $master['_instance'] == $instance_id) {
|
||||
$this->events[$id] = $master;
|
||||
}
|
||||
else if ($master && is_array($master['recurrence'])) {
|
||||
$this->get_recurring_events($record, $master['start'], null, $id);
|
||||
}
|
||||
}
|
||||
|
||||
return $this->events[$id];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get attachment body
|
||||
* @see calendar_driver::get_attachment_body()
|
||||
*/
|
||||
public function get_attachment_body($id, $event)
|
||||
{
|
||||
if (!$this->ready)
|
||||
return false;
|
||||
|
||||
$data = $this->storage->get_attachment($event['id'], $id);
|
||||
|
||||
if ($data == null) {
|
||||
// try again with master UID
|
||||
$uid = preg_replace('/-\d+(T\d{6})?$/', '', $event['id']);
|
||||
if ($uid != $event['id']) {
|
||||
$data = $this->storage->get_attachment($uid, $id);
|
||||
}
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param integer Event's new start (unix timestamp)
|
||||
|
@ -213,71 +245,75 @@ class kolab_calendar
|
|||
* @param string Search query (optional)
|
||||
* @param boolean Include virtual events (optional)
|
||||
* @param array Additional parameters to query storage
|
||||
* @param array Additional query to filter events
|
||||
* @return array A list of event records
|
||||
*/
|
||||
public function list_events($start, $end, $search = null, $virtual = 1, $query = array())
|
||||
public function list_events($start, $end, $search = null, $virtual = 1, $query = array(), $filter_query = null)
|
||||
{
|
||||
// convert to DateTime for comparisons
|
||||
$start = new DateTime('@'.$start);
|
||||
$end = new DateTime('@'.$end);
|
||||
try {
|
||||
$start = new DateTime('@'.$start);
|
||||
}
|
||||
catch (Exception $e) {
|
||||
$start = new DateTime('@0');
|
||||
}
|
||||
try {
|
||||
$end = new DateTime('@'.$end);
|
||||
}
|
||||
catch (Exception $e) {
|
||||
$end = new DateTime('today +10 years');
|
||||
}
|
||||
|
||||
// get email addresses of the current user
|
||||
$user_emails = $this->cal->get_user_emails();
|
||||
|
||||
// query Kolab storage
|
||||
$query[] = array('dtstart', '<=', $end);
|
||||
$query[] = array('dtend', '>=', $start);
|
||||
|
||||
if (is_array($filter_query)) {
|
||||
$query = array_merge($query, $filter_query);
|
||||
}
|
||||
|
||||
if (!empty($search)) {
|
||||
$search = mb_strtolower($search);
|
||||
$words = rcube_utils::tokenize_string($search, 1);
|
||||
foreach (rcube_utils::normalize_string($search, true) as $word) {
|
||||
$query[] = array('words', 'LIKE', $word);
|
||||
}
|
||||
}
|
||||
else {
|
||||
$words = array();
|
||||
}
|
||||
|
||||
// set partstat filter to skip pending and declined invitations
|
||||
if (empty($filter_query) && $this->get_namespace() != 'other') {
|
||||
$partstat_exclude = array('NEEDS-ACTION','DECLINED');
|
||||
}
|
||||
else {
|
||||
$partstat_exclude = array();
|
||||
}
|
||||
|
||||
$events = array();
|
||||
foreach ($this->storage->select($query) as $record) {
|
||||
$event = $this->_to_rcube_event($record);
|
||||
$this->events[$event['id']] = $event;
|
||||
$event = $this->_to_driver_event($record, !$virtual);
|
||||
|
||||
// remember seen categories
|
||||
if ($event['categories'])
|
||||
$this->categories[$event['categories']]++;
|
||||
|
||||
// filter events by search query
|
||||
if (!empty($search)) {
|
||||
$hit = false;
|
||||
foreach ($this->search_fields as $col) {
|
||||
$sval = is_array($event[$col]) ? self::_complex2string($event[$col]) : $event[$col];
|
||||
if (empty($sval))
|
||||
continue;
|
||||
|
||||
// do a simple substring matching (to be improved)
|
||||
$val = mb_strtolower($sval);
|
||||
if (strpos($val, $search) !== false) {
|
||||
$hit = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!$hit) // skip this event if not match with search term
|
||||
continue;
|
||||
}
|
||||
|
||||
if ($event['categories']) {
|
||||
$cat = is_array($event['categories']) ? $event['categories'][0] : $event['categories'];
|
||||
$this->categories[$cat]++;
|
||||
}
|
||||
|
||||
// list events in requested time window
|
||||
if ($event['start'] <= $end && $event['end'] >= $start) {
|
||||
unset($event['_attendees']);
|
||||
$add = true;
|
||||
|
||||
// skip the first instance of a recurring event if listed in exdate
|
||||
if ($virtual && (!empty($event['recurrence']['EXDATE']) || !empty($event['recurrence']['EXCEPTIONS']))) {
|
||||
if ($virtual && !empty($event['recurrence']['EXDATE'])) {
|
||||
$event_date = $event['start']->format('Ymd');
|
||||
$exdates = (array)$event['recurrence']['EXDATE'];
|
||||
|
||||
// add dates from exceptions to list
|
||||
if (is_array($event['recurrence']['EXCEPTIONS'])) {
|
||||
foreach ($event['recurrence']['EXCEPTIONS'] as $exception) {
|
||||
$exdates[] = clone $exception['start'];
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($exdates as $exdate) {
|
||||
if ($exdate->format('Ymd') == $event_date) {
|
||||
$add = false;
|
||||
|
@ -286,19 +322,114 @@ class kolab_calendar
|
|||
}
|
||||
}
|
||||
|
||||
// find and merge exception for the first instance
|
||||
if ($virtual && !empty($event['recurrence']) && is_array($event['recurrence']['EXCEPTIONS'])) {
|
||||
foreach ($event['recurrence']['EXCEPTIONS'] as $exception) {
|
||||
if ($event['_instance'] == $exception['_instance']) {
|
||||
// clone date objects from main event before adjusting them with exception data
|
||||
if (is_object($event['start'])) $event['start'] = clone $record['start'];
|
||||
if (is_object($event['end'])) $event['end'] = clone $record['end'];
|
||||
kolab_driver::merge_exception_data($event, $exception);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($add)
|
||||
$events[] = $event;
|
||||
}
|
||||
|
||||
|
||||
// resolve recurring events
|
||||
if ($record['recurrence'] && $virtual == 1) {
|
||||
$events = array_merge($events, $this->_get_recurring_events($record, $start, $end));
|
||||
$events = array_merge($events, $this->get_recurring_events($record, $start, $end));
|
||||
}
|
||||
// add top-level exceptions (aka loose single occurrences)
|
||||
else if (is_array($record['exceptions'])) {
|
||||
foreach ($record['exceptions'] as $ex) {
|
||||
$component = $this->_to_driver_event($ex);
|
||||
if ($component['start'] <= $end && $component['end'] >= $start) {
|
||||
$events[] = $component;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// post-filter all events by fulltext search and partstat values
|
||||
$me = $this;
|
||||
$events = array_filter($events, function($event) use ($words, $partstat_exclude, $user_emails, $me) {
|
||||
// fulltext search
|
||||
if (count($words)) {
|
||||
$hits = 0;
|
||||
foreach ($words as $word) {
|
||||
$hits += $me->fulltext_match($event, $word, false);
|
||||
}
|
||||
if ($hits < count($words)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// partstat filter
|
||||
if (count($partstat_exclude) && is_array($event['attendees'])) {
|
||||
foreach ($event['attendees'] as $attendee) {
|
||||
if (in_array($attendee['email'], $user_emails) && in_array($attendee['status'], $partstat_exclude)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
});
|
||||
|
||||
// avoid session race conditions that will loose temporary subscriptions
|
||||
$this->cal->rc->session->nowrite = true;
|
||||
|
||||
return $events;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param integer Date range start (unix timestamp)
|
||||
* @param integer Date range end (unix timestamp)
|
||||
* @param array Additional query to filter events
|
||||
* @return integer Count
|
||||
*/
|
||||
public function count_events($start, $end = null, $filter_query = null)
|
||||
{
|
||||
// convert to DateTime for comparisons
|
||||
try {
|
||||
$start = new DateTime('@'.$start);
|
||||
}
|
||||
catch (Exception $e) {
|
||||
$start = new DateTime('@0');
|
||||
}
|
||||
if ($end) {
|
||||
try {
|
||||
$end = new DateTime('@'.$end);
|
||||
}
|
||||
catch (Exception $e) {
|
||||
$end = null;
|
||||
}
|
||||
}
|
||||
|
||||
// query Kolab storage
|
||||
$query[] = array('dtend', '>=', $start);
|
||||
|
||||
if ($end)
|
||||
$query[] = array('dtstart', '<=', $end);
|
||||
|
||||
// add query to exclude pending/declined invitations
|
||||
if (empty($filter_query)) {
|
||||
foreach ($this->cal->get_user_emails() as $email) {
|
||||
$query[] = array('tags', '!=', 'x-partstat:' . $email . ':needs-action');
|
||||
$query[] = array('tags', '!=', 'x-partstat:' . $email . ':declined');
|
||||
}
|
||||
}
|
||||
else if (is_array($filter_query)) {
|
||||
$query = array_merge($query, $filter_query);
|
||||
}
|
||||
|
||||
// we rely the Kolab storage query (no post-filtering)
|
||||
return $this->storage->count($query);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new event record
|
||||
|
@ -312,8 +443,12 @@ class kolab_calendar
|
|||
if (!is_array($event))
|
||||
return false;
|
||||
|
||||
// email links are stored separately
|
||||
$links = $event['links'];
|
||||
unset($event['links']);
|
||||
|
||||
//generate new event from RC input
|
||||
$object = $this->_from_rcube_event($event);
|
||||
$object = $this->_from_driver_event($event);
|
||||
$saved = $this->storage->save($object, 'event');
|
||||
|
||||
if (!$saved) {
|
||||
|
@ -325,8 +460,10 @@ class kolab_calendar
|
|||
$saved = false;
|
||||
}
|
||||
else {
|
||||
$event['id'] = $event['uid'];
|
||||
$this->events = array($event['uid'] => $this->_to_rcube_event($object));
|
||||
// save links in configuration.relation object
|
||||
$this->save_links($event['uid'], $links);
|
||||
|
||||
$this->events = array($event['uid'] => $this->_to_driver_event($object, true));
|
||||
}
|
||||
|
||||
return $saved;
|
||||
|
@ -342,12 +479,16 @@ class kolab_calendar
|
|||
public function update_event($event, $exception_id = null)
|
||||
{
|
||||
$updated = false;
|
||||
$old = $this->storage->get_object($event['id']);
|
||||
$old = $this->storage->get_object($event['uid'] ?: $event['id']);
|
||||
if (!$old || PEAR::isError($old))
|
||||
return false;
|
||||
|
||||
$object = $this->_from_rcube_event($event, $old);
|
||||
$saved = $this->storage->save($object, 'event', $event['id']);
|
||||
// email links are stored separately
|
||||
$links = $event['links'];
|
||||
unset($event['links']);
|
||||
|
||||
$object = $this->_from_driver_event($event, $old);
|
||||
$saved = $this->storage->save($object, 'event', $old['uid']);
|
||||
|
||||
if (!$saved) {
|
||||
rcube::raise_error(array(
|
||||
|
@ -357,12 +498,15 @@ class kolab_calendar
|
|||
true, false);
|
||||
}
|
||||
else {
|
||||
// save links in configuration.relation object
|
||||
$this->save_links($event['uid'], $links);
|
||||
|
||||
$updated = true;
|
||||
$this->events[$event['id']] = $this->_to_rcube_event($object);
|
||||
$this->events = array($event['uid'] => $this->_to_driver_event($object, true));
|
||||
|
||||
// refresh local cache with recurring instances
|
||||
if ($exception_id) {
|
||||
$this->_get_recurring_events($object, $event['start'], $event['end'], $exception_id);
|
||||
$this->get_recurring_events($object, $event['start'], $event['end'], $exception_id);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -377,13 +521,13 @@ class kolab_calendar
|
|||
*/
|
||||
public function delete_event($event, $force = true)
|
||||
{
|
||||
$deleted = $this->storage->delete($event['id'], $force);
|
||||
$deleted = $this->storage->delete($event['uid'] ?: $event['id'], $force);
|
||||
|
||||
if (!$deleted) {
|
||||
rcube::raise_error(array(
|
||||
'code' => 600, 'type' => 'php',
|
||||
'file' => __FILE__, 'line' => __LINE__,
|
||||
'message' => "Error deleting event object from Kolab server"),
|
||||
'message' => sprintf("Error deleting event object '%s' from Kolab server", $event['id'])),
|
||||
true, false);
|
||||
}
|
||||
|
||||
|
@ -412,6 +556,29 @@ class kolab_calendar
|
|||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Find messages linked with an event
|
||||
*/
|
||||
protected function get_links($uid)
|
||||
{
|
||||
$storage = kolab_storage_config::get_instance();
|
||||
return $storage->get_object_links($uid);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
protected function save_links($uid, $links)
|
||||
{
|
||||
// make sure we have a valid array
|
||||
if (empty($links)) {
|
||||
$links = array();
|
||||
}
|
||||
|
||||
$storage = kolab_storage_config::get_instance();
|
||||
$remove = array_diff($storage->get_object_links($uid), $links);
|
||||
return $storage->save_object_links($uid, $links, $remove);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create instances of a recurring event
|
||||
|
@ -422,7 +589,7 @@ class kolab_calendar
|
|||
* @param string ID of a specific recurring event instance
|
||||
* @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)
|
||||
{
|
||||
$object = $event['_formatobj'];
|
||||
if (!$object) {
|
||||
|
@ -444,40 +611,48 @@ class kolab_calendar
|
|||
$end->add(new DateInterval($intvl));
|
||||
}
|
||||
|
||||
// add recurrence exceptions to output
|
||||
$i = 0;
|
||||
// copy the recurrence rule from the master event (to be used in the UI)
|
||||
$recurrence_rule = $event['recurrence'];
|
||||
unset($recurrence_rule['EXCEPTIONS'], $recurrence_rule['EXDATE']);
|
||||
|
||||
// read recurrence exceptions first
|
||||
$events = array();
|
||||
$exdates = array();
|
||||
$exdata = array();
|
||||
$futuredata = array();
|
||||
$recurrence_id_format = libcalendaring::recurrence_id_format($event);
|
||||
|
||||
if (is_array($event['recurrence']['EXCEPTIONS'])) {
|
||||
// copy the recurrence rule from the master event (to be used in the UI)
|
||||
$recurrence_rule = $event['recurrence'];
|
||||
unset($recurrence_rule['EXCEPTIONS'], $recurrence_rule['EXDATE']);
|
||||
|
||||
foreach ($event['recurrence']['EXCEPTIONS'] as $exception) {
|
||||
$rec_event = $this->_to_rcube_event($exception);
|
||||
$rec_event['id'] = $event['uid'] . '-' . ++$i;
|
||||
$rec_event['recurrence_id'] = $event['uid'];
|
||||
$rec_event['recurrence'] = $recurrence_rule;
|
||||
$rec_event['_instance'] = $i;
|
||||
$rec_event['isexception'] = 1;
|
||||
$events[] = $rec_event;
|
||||
if (!$exception['_instance'])
|
||||
$exception['_instance'] = libcalendaring::recurrence_instance_identifier($exception);
|
||||
|
||||
// found the specifically requested instance, exiting...
|
||||
if ($rec_event['id'] == $event_id) {
|
||||
$rec_event = $this->_to_driver_event($exception);
|
||||
$rec_event['id'] = $event['uid'] . '-' . $exception['_instance'];
|
||||
$rec_event['isexception'] = 1;
|
||||
|
||||
// found the specifically requested instance: register exception (single occurrence wins)
|
||||
if ($rec_event['id'] == $event_id && (!$this->events[$event_id] || $this->events[$event_id]['thisandfuture'])) {
|
||||
$rec_event['recurrence'] = $recurrence_rule;
|
||||
$rec_event['recurrence_id'] = $event['uid'];
|
||||
$this->events[$rec_event['id']] = $rec_event;
|
||||
return $events;
|
||||
}
|
||||
|
||||
// remember this exception's date
|
||||
$exdate = $rec_event['start']->format('Y-m-d');
|
||||
$exdates[$exdate] = $rec_event['id'];
|
||||
$exdate = substr($exception['_instance'], 0, 8);
|
||||
if (!$exdata[$exdate] || $exdata[$exdate]['thisandfuture']) {
|
||||
$exdata[$exdate] = $rec_event;
|
||||
}
|
||||
if ($rec_event['thisandfuture']) {
|
||||
$futuredata[$exdate] = $rec_event;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// found the specifically requested instance, exiting...
|
||||
if ($event_id && !empty($this->events[$event_id])) {
|
||||
return array($this->events[$event_id]);
|
||||
}
|
||||
|
||||
// use libkolab to compute recurring events
|
||||
if (class_exists('kolabcalendaring')) {
|
||||
$recurrence = new kolab_date_recurrence($object);
|
||||
|
@ -488,27 +663,28 @@ class kolab_calendar
|
|||
$recurrence = new calendar_recurrence($this->cal, $event);
|
||||
}
|
||||
|
||||
$i = 0;
|
||||
while ($next_event = $recurrence->next_instance()) {
|
||||
// skip if there's an exception at this date
|
||||
$datestr = $next_event['start']->format('Y-m-d');
|
||||
if ($exdates[$datestr]) {
|
||||
// use this event data for future recurring instances
|
||||
if ($futuredata[$datestr])
|
||||
$overlay_data = $futuredata[$datestr];
|
||||
continue;
|
||||
}
|
||||
$datestr = $next_event['start']->format('Ymd');
|
||||
$instance_id = $next_event['start']->format($recurrence_id_format);
|
||||
|
||||
// use this event data for future recurring instances
|
||||
if ($futuredata[$datestr])
|
||||
$overlay_data = $futuredata[$datestr];
|
||||
|
||||
// add to output if in range
|
||||
$rec_id = $event['uid'] . '-' . ++$i;
|
||||
$rec_id = $event['uid'] . '-' . $instance_id;
|
||||
if (($next_event['start'] <= $end && $next_event['end'] >= $start) || ($event_id && $rec_id == $event_id)) {
|
||||
$rec_event = $this->_to_rcube_event($next_event);
|
||||
$rec_event = $this->_to_driver_event($next_event);
|
||||
$rec_event['_instance'] = $instance_id;
|
||||
$rec_event['_count'] = $i + 1;
|
||||
|
||||
if ($overlay_data) // copy data from a 'this-and-future' exception
|
||||
$this->_merge_event_data($rec_event, $overlay_data);
|
||||
if ($overlay_data || $exdata[$datestr]) // copy data from exception
|
||||
kolab_driver::merge_exception_data($rec_event, $exdata[$datestr] ?: $overlay_data);
|
||||
|
||||
$rec_event['id'] = $rec_id;
|
||||
$rec_event['recurrence_id'] = $event['uid'];
|
||||
$rec_event['_instance'] = $i;
|
||||
$rec_event['recurrence'] = $recurrence_rule;
|
||||
unset($rec_event['_attendees']);
|
||||
$events[] = $rec_event;
|
||||
|
||||
|
@ -521,139 +697,85 @@ class kolab_calendar
|
|||
break;
|
||||
|
||||
// avoid endless recursion loops
|
||||
if ($i > 1000)
|
||||
if (++$i > 1000)
|
||||
break;
|
||||
}
|
||||
|
||||
return $events;
|
||||
}
|
||||
|
||||
/**
|
||||
* Merge certain properties 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
|
||||
*/
|
||||
private function _merge_event_data(&$event, $overlay)
|
||||
{
|
||||
static $forbidden = array('id','uid','created','changed','recurrence','organizer','attendees','sequence');
|
||||
|
||||
foreach ($overlay as $prop => $value) {
|
||||
// adjust time of the recurring event instance
|
||||
if ($prop == 'start' || $prop == 'end') {
|
||||
if (is_object($event[$prop]) && is_a($event[$prop], 'DateTime'))
|
||||
$event[$prop]->setTime($value->format('G'), intval($value->format('i')), intval($value->format('s')));
|
||||
}
|
||||
else if ($prop[0] != '_' && !in_array($prop, $forbidden))
|
||||
$event[$prop] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert from Kolab_Format to internal representation
|
||||
*/
|
||||
private function _to_rcube_event($record)
|
||||
private function _to_driver_event($record, $noinst = false)
|
||||
{
|
||||
$record['id'] = $record['uid'];
|
||||
$record['calendar'] = $this->id;
|
||||
/*
|
||||
// convert from DateTime to unix timestamp
|
||||
if (is_a($record['start'], 'DateTime'))
|
||||
$record['start'] = $record['start']->format('U');
|
||||
if (is_a($record['end'], 'DateTime'))
|
||||
$record['end'] = $record['end']->format('U');
|
||||
*/
|
||||
// all-day events go from 12:00 - 13:00
|
||||
if ($record['end'] <= $record['start'] && $record['allday']) {
|
||||
$record['end'] = clone $record['start'];
|
||||
$record['end']->add(new DateInterval('PT1H'));
|
||||
$record['links'] = $this->get_links($record['uid']);
|
||||
|
||||
if ($this->get_namespace() == 'other') {
|
||||
$record['className'] = 'fc-event-ns-other';
|
||||
$record = kolab_driver::add_partstat_class($record, array('NEEDS-ACTION','DECLINED'), $this->get_owner());
|
||||
}
|
||||
|
||||
if (!empty($record['_attachments'])) {
|
||||
foreach ($record['_attachments'] as $key => $attachment) {
|
||||
if ($attachment !== false) {
|
||||
if (!$attachment['name'])
|
||||
$attachment['name'] = $key;
|
||||
|
||||
unset($attachment['path'], $attachment['content']);
|
||||
$attachments[] = $attachment;
|
||||
}
|
||||
}
|
||||
|
||||
$record['attachments'] = $attachments;
|
||||
// add instance identifier to first occurrence (master event)
|
||||
$recurrence_id_format = libcalendaring::recurrence_id_format($record);
|
||||
if (!$noinst && $record['recurrence'] && !$record['recurrence_id'] && !$record['_instance']) {
|
||||
$record['_instance'] = $record['start']->format($recurrence_id_format);
|
||||
}
|
||||
else if (is_a($record['recurrence_date'], 'DateTime')) {
|
||||
$record['_instance'] = $record['recurrence_date']->format($recurrence_id_format);
|
||||
}
|
||||
|
||||
// Roundcube only supports one category assignment
|
||||
if (is_array($record['categories']))
|
||||
$record['categories'] = $record['categories'][0];
|
||||
|
||||
// The web client only supports DISPLAY type of alarms
|
||||
if (!empty($record['alarms']))
|
||||
$record['alarms'] = preg_replace('/:[A-Z]+$/', ':DISPLAY', $record['alarms']);
|
||||
|
||||
// remove empty recurrence array
|
||||
if (empty($record['recurrence']))
|
||||
unset($record['recurrence']);
|
||||
|
||||
// remove internals
|
||||
unset($record['_mailbox'], $record['_msguid'], $record['_formatobj'], $record['_attachments'], $record['x-custom']);
|
||||
// clean up exception data
|
||||
if ($record['recurrence'] && is_array($record['recurrence']['EXCEPTIONS'])) {
|
||||
array_walk($record['recurrence']['EXCEPTIONS'], function(&$exception) {
|
||||
unset($exception['_mailbox'], $exception['_msguid'], $exception['_formatobj'], $exception['_attachments']);
|
||||
});
|
||||
}
|
||||
|
||||
return $record;
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert the given event record into a data structure that can be passed to Kolab_Storage backend for saving
|
||||
* (opposite of self::_to_rcube_event())
|
||||
* (opposite of self::_to_driver_event())
|
||||
*/
|
||||
private function _from_rcube_event($event, $old = array())
|
||||
private function _from_driver_event($event, $old = array())
|
||||
{
|
||||
// in kolab_storage attachments are indexed by content-id
|
||||
$event['_attachments'] = array();
|
||||
if (is_array($event['attachments'])) {
|
||||
foreach ($event['attachments'] as $attachment) {
|
||||
$key = null;
|
||||
// Roundcube ID has nothing to do with the storage ID, remove it
|
||||
if ($attachment['content']) {
|
||||
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']) {
|
||||
$event['_attachments'][$key] = false;
|
||||
}
|
||||
// replace existing entry
|
||||
else if ($key) {
|
||||
$event['_attachments'][$key] = $attachment;
|
||||
}
|
||||
// append as new attachment
|
||||
else {
|
||||
$event['_attachments'][] = $attachment;
|
||||
}
|
||||
}
|
||||
|
||||
unset($event['attachments']);
|
||||
}
|
||||
|
||||
// set current user as ORGANIZER
|
||||
$identity = $this->cal->rc->user->get_identity();
|
||||
$identity = $this->cal->rc->user->list_emails(true);
|
||||
if (empty($event['attendees']) && $identity['email'])
|
||||
$event['attendees'] = array(array('role' => 'ORGANIZER', 'name' => $identity['name'], 'email' => $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'])) {
|
||||
$event['recurrence']['EXDATE'] = array();
|
||||
}
|
||||
|
||||
// remove recurrence information (e.g. EXDATES and EXCEPTIONS) entirely
|
||||
if ($event['recurrence'] && empty($event['recurrence']['FREQ']) && empty($event['recurrence']['RDATE'])) {
|
||||
$event['recurrence'] = array();
|
||||
}
|
||||
|
||||
// keep 'comment' from initial itip invitation
|
||||
if (!empty($old['comment'])) {
|
||||
$event['comment'] = $old['comment'];
|
||||
}
|
||||
|
||||
// clean up exception data
|
||||
if (is_array($event['exceptions'])) {
|
||||
array_walk($event['exceptions'], function(&$exception) {
|
||||
unset($exception['_mailbox'], $exception['_msguid'], $exception['_formatobj'], $exception['_attachments'],
|
||||
$event['attachments'], $event['deleted_attachments'], $event['recurrence_id']);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
// remove some internal properties which should not be saved
|
||||
unset($event['_savemode'], $event['_fromcalendar'], $event['_identity']);
|
||||
unset($event['_savemode'], $event['_fromcalendar'], $event['_identity'], $event['_folder_id'],
|
||||
$event['recurrence_id'], $event['attachments'], $event['deleted_attachments'], $event['className']);
|
||||
|
||||
// copy meta data (starting with _) from old object
|
||||
foreach ((array)$old as $key => $val) {
|
||||
|
@ -664,6 +786,28 @@ class kolab_calendar
|
|||
return $event;
|
||||
}
|
||||
|
||||
/**
|
||||
* Match the given word in the event contents
|
||||
*/
|
||||
public function fulltext_match($event, $word, $recursive = true)
|
||||
{
|
||||
$hits = 0;
|
||||
foreach ($this->search_fields as $col) {
|
||||
$sval = is_array($event[$col]) ? self::_complex2string($event[$col]) : $event[$col];
|
||||
if (empty($sval))
|
||||
continue;
|
||||
|
||||
// do a simple substring matching (to be improved)
|
||||
$val = mb_strtolower($sval);
|
||||
if (strpos($val, $word) !== false) {
|
||||
$hits++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return $hits;
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert a complex event attribute to a string value
|
||||
*/
|
||||
|
|
377
drivers/kolab/kolab_invitation_calendar.php
Normal file
|
@ -0,0 +1,377 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Kolab calendar storage class simulating a virtual calendar listing pedning/declined invitations
|
||||
*
|
||||
* @author Thomas Bruederli <bruederli@kolabsys.com>
|
||||
*
|
||||
* Copyright (C) 2014-2015, Kolab Systems AG <contact@kolabsys.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
class kolab_invitation_calendar
|
||||
{
|
||||
public $id = '__invitation__';
|
||||
public $ready = true;
|
||||
public $alarms = false;
|
||||
public $rights = 'lrsv';
|
||||
public $editable = false;
|
||||
public $attachments = false;
|
||||
public $subscriptions = false;
|
||||
public $partstats = array('unknown');
|
||||
public $categories = array();
|
||||
public $name = 'Invitations';
|
||||
|
||||
/**
|
||||
* Default constructor
|
||||
*/
|
||||
public function __construct($id, $calendar)
|
||||
{
|
||||
$this->cal = $calendar;
|
||||
$this->id = $id;
|
||||
|
||||
switch ($this->id) {
|
||||
case kolab_driver::INVITATIONS_CALENDAR_PENDING:
|
||||
$this->partstats = array('NEEDS-ACTION');
|
||||
$this->name = $this->cal->gettext('invitationspending');
|
||||
if (!empty($_REQUEST['_quickview']))
|
||||
$this->partstats[] = 'TENTATIVE';
|
||||
break;
|
||||
|
||||
case kolab_driver::INVITATIONS_CALENDAR_DECLINED:
|
||||
$this->partstats = array('DECLINED');
|
||||
$this->name = $this->cal->gettext('invitationsdeclined');
|
||||
break;
|
||||
}
|
||||
|
||||
// user-specific alarms settings win
|
||||
$prefs = $this->cal->rc->config->get('kolab_calendars', array());
|
||||
if (isset($prefs[$this->id]['showalarms']))
|
||||
$this->alarms = $prefs[$this->id]['showalarms'];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Getter for a nice and human readable name for this calendar
|
||||
*
|
||||
* @return string Name of this calendar
|
||||
*/
|
||||
public function get_name()
|
||||
{
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Getter for the IMAP folder owner
|
||||
*
|
||||
* @return string Name of the folder owner
|
||||
*/
|
||||
public function get_owner()
|
||||
{
|
||||
return $this->cal->rc->get_user_name();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function get_title()
|
||||
{
|
||||
return $this->get_name();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Getter for the name of the namespace to which the IMAP folder belongs
|
||||
*
|
||||
* @return string Name of the namespace (personal, other, shared)
|
||||
*/
|
||||
public function get_namespace()
|
||||
{
|
||||
return 'x-special';
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Getter for the top-end calendar folder name (not the entire path)
|
||||
*
|
||||
* @return string Name of this calendar
|
||||
*/
|
||||
public function get_foldername()
|
||||
{
|
||||
return $this->get_name();
|
||||
}
|
||||
|
||||
/**
|
||||
* Getter for the Cyrus mailbox identifier corresponding to this folder
|
||||
*
|
||||
* @return string Mailbox ID
|
||||
*/
|
||||
public function get_mailbox_id()
|
||||
{
|
||||
// this is a virtual collection and has no concrete mailbox ID
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return color to display this calendar
|
||||
*/
|
||||
public function get_color()
|
||||
{
|
||||
// calendar color is stored in local user prefs
|
||||
$prefs = $this->cal->rc->config->get('kolab_calendars', array());
|
||||
|
||||
if (!empty($prefs[$this->id]) && !empty($prefs[$this->id]['color']))
|
||||
return $prefs[$this->id]['color'];
|
||||
|
||||
return 'ffffff';
|
||||
}
|
||||
|
||||
/**
|
||||
* Compose an URL for CalDAV access to this calendar (if configured)
|
||||
*/
|
||||
public function get_caldav_url()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check activation status of this folder
|
||||
*
|
||||
* @return boolean True if enabled, false if not
|
||||
*/
|
||||
public function is_active()
|
||||
{
|
||||
$prefs = $this->cal->rc->config->get('kolab_calendars', array()); // read local prefs
|
||||
return (bool)$prefs[$this->id]['active'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Update properties of this calendar folder
|
||||
*
|
||||
* @see calendar_driver::edit_calendar()
|
||||
*/
|
||||
public function update(&$prop)
|
||||
{
|
||||
// don't change anything.
|
||||
// let kolab_driver save props in local prefs
|
||||
return $prop['id'];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Getter for a single event object
|
||||
*/
|
||||
public function get_event($id)
|
||||
{
|
||||
// redirect call to kolab_driver::get_event()
|
||||
$event = $this->cal->driver->get_event($id, calendar_driver::FILTER_WRITEABLE);
|
||||
|
||||
if (is_array($event)) {
|
||||
// add pointer to original calendar folder
|
||||
$event['_folder_id'] = $event['calendar'];
|
||||
$event = $this->_mod_event($event);
|
||||
}
|
||||
|
||||
return $event;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get attachment body
|
||||
* @see calendar_driver::get_attachment_body()
|
||||
*/
|
||||
public function get_attachment_body($id, $event)
|
||||
{
|
||||
// find the actual folder this event resides in
|
||||
if (!empty($event['_folder_id'])) {
|
||||
$cal = $this->cal->get_calendar($event['_folder_id']);
|
||||
}
|
||||
else {
|
||||
$cal = null;
|
||||
foreach (kolab_storage::list_folders('', '*', 'event', null) as $foldername) {
|
||||
$cal = new kolab_calendar($foldername, $this->cal);
|
||||
if ($cal->ready && $cal->storage && $cal->get_event($event['id'])) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($cal && $cal->storage) {
|
||||
return $cal->get_attachment_body($id, $event);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param integer Event's new start (unix timestamp)
|
||||
* @param integer Event's new end (unix timestamp)
|
||||
* @param string Search query (optional)
|
||||
* @param boolean Include virtual events (optional)
|
||||
* @param array Additional parameters to query storage
|
||||
* @return array A list of event records
|
||||
*/
|
||||
public function list_events($start, $end, $search = null, $virtual = 1, $query = array())
|
||||
{
|
||||
// get email addresses of the current user
|
||||
$user_emails = $this->cal->get_user_emails();
|
||||
$subquery = array();
|
||||
foreach ($user_emails as $email) {
|
||||
foreach ($this->partstats as $partstat) {
|
||||
$subquery[] = array('tags', '=', 'x-partstat:' . $email . ':' . strtolower($partstat));
|
||||
}
|
||||
}
|
||||
|
||||
// aggregate events from all calendar folders
|
||||
$events = array();
|
||||
foreach (kolab_storage::list_folders('', '*', 'event', null) as $foldername) {
|
||||
$cal = new kolab_calendar($foldername, $this->cal);
|
||||
if ($cal->get_namespace() == 'other')
|
||||
continue;
|
||||
|
||||
foreach ($cal->list_events($start, $end, $search, 1, $query, array(array($subquery, 'OR'))) as $event) {
|
||||
$match = false;
|
||||
|
||||
// post-filter events to match out partstats
|
||||
if (is_array($event['attendees'])) {
|
||||
foreach ($event['attendees'] as $attendee) {
|
||||
if (in_array($attendee['email'], $user_emails) && in_array($attendee['status'], $this->partstats)) {
|
||||
$match = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($match) {
|
||||
$events[$event['id']] = $this->_mod_event($event);
|
||||
}
|
||||
}
|
||||
|
||||
// merge list of event categories (really?)
|
||||
$this->categories += $cal->categories;
|
||||
}
|
||||
|
||||
return $events;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param integer Date range start (unix timestamp)
|
||||
* @param integer Date range end (unix timestamp)
|
||||
* @return integer Count
|
||||
*/
|
||||
public function count_events($start, $end = null)
|
||||
{
|
||||
// get email addresses of the current user
|
||||
$user_emails = $this->cal->get_user_emails();
|
||||
$subquery = array();
|
||||
foreach ($user_emails as $email) {
|
||||
foreach ($this->partstats as $partstat) {
|
||||
$subquery[] = array('tags', '=', 'x-partstat:' . $email . ':' . strtolower($partstat));
|
||||
}
|
||||
}
|
||||
|
||||
$filter = array(
|
||||
array('tags','!=','x-status:cancelled'),
|
||||
array($subquery, 'OR')
|
||||
);
|
||||
|
||||
// aggregate counts from all calendar folders
|
||||
$count = 0;
|
||||
foreach (kolab_storage::list_folders('', '*', 'event', null) as $foldername) {
|
||||
$cal = new kolab_calendar($foldername, $this->cal);
|
||||
if ($cal->get_namespace() == 'other')
|
||||
continue;
|
||||
|
||||
$count += $cal->count_events($start, $end, $filter);
|
||||
}
|
||||
|
||||
return $count;
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper method to modify some event properties
|
||||
*/
|
||||
private function _mod_event($event)
|
||||
{
|
||||
// set classes according to PARTSTAT
|
||||
$event = kolab_driver::add_partstat_class($event, $this->partstats);
|
||||
|
||||
if (strpos($event['className'], 'fc-invitation-') !== false) {
|
||||
$event['calendar'] = $this->id;
|
||||
}
|
||||
|
||||
return $event;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Create a new event record
|
||||
*
|
||||
* @see calendar_driver::new_event()
|
||||
*
|
||||
* @return mixed The created record ID on success, False on error
|
||||
*/
|
||||
public function insert_event($event)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Update a specific event record
|
||||
*
|
||||
* @see calendar_driver::new_event()
|
||||
* @return boolean True on success, False on error
|
||||
*/
|
||||
|
||||
public function update_event($event, $exception_id = null)
|
||||
{
|
||||
// forward call to the actual storage folder
|
||||
if ($event['_folder_id']) {
|
||||
$cal = $this->cal->driver->get_calendar($event['_folder_id']);
|
||||
if ($cal && $cal->ready) {
|
||||
return $cal->update_event($event, $exception_id);
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete an event record
|
||||
*
|
||||
* @see calendar_driver::remove_event()
|
||||
* @return boolean True on success, False on error
|
||||
*/
|
||||
public function delete_event($event, $force = true)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Restore deleted event record
|
||||
*
|
||||
* @see calendar_driver::undelete_event()
|
||||
* @return boolean True on success, False on error
|
||||
*/
|
||||
public function restore_event($event)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
}
|
432
drivers/kolab/kolab_user_calendar.php
Normal file
|
@ -0,0 +1,432 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Kolab calendar storage class simulating a virtual user calendar
|
||||
*
|
||||
* @author Thomas Bruederli <bruederli@kolabsys.com>
|
||||
*
|
||||
* Copyright (C) 2014-2015, Kolab Systems AG <contact@kolabsys.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
class kolab_user_calendar extends kolab_calendar
|
||||
{
|
||||
public $id = 'unknown';
|
||||
public $ready = false;
|
||||
public $editable = false;
|
||||
public $attachments = false;
|
||||
public $subscriptions = false;
|
||||
|
||||
protected $userdata = array();
|
||||
protected $timeindex = array();
|
||||
|
||||
|
||||
/**
|
||||
* Default constructor
|
||||
*/
|
||||
public function __construct($user_or_folder, $calendar)
|
||||
{
|
||||
$this->cal = $calendar;
|
||||
|
||||
// full user record is provided
|
||||
if (is_array($user_or_folder)) {
|
||||
$this->userdata = $user_or_folder;
|
||||
$this->storage = new kolab_storage_folder_user($this->userdata['kolabtargetfolder'], '', $this->userdata);
|
||||
}
|
||||
else { // get user record from LDAP
|
||||
$this->storage = new kolab_storage_folder_user($user_or_folder);
|
||||
$this->userdata = $this->storage->ldaprec;
|
||||
}
|
||||
|
||||
$this->ready = !empty($this->userdata['kolabtargetfolder']);
|
||||
$this->storage->type = 'event';
|
||||
|
||||
if ($this->ready) {
|
||||
// ID is derrived from the user's kolabtargetfolder attribute
|
||||
$this->id = kolab_storage::folder_id($this->userdata['kolabtargetfolder'], true);
|
||||
$this->imap_folder = $this->userdata['kolabtargetfolder'];
|
||||
$this->name = $this->storage->get_name();
|
||||
$this->parent = ''; // user calendars are top level
|
||||
|
||||
// user-specific alarms settings win
|
||||
$prefs = $this->cal->rc->config->get('kolab_calendars', array());
|
||||
if (isset($prefs[$this->id]['showalarms']))
|
||||
$this->alarms = $prefs[$this->id]['showalarms'];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Getter for a nice and human readable name for this calendar
|
||||
*
|
||||
* @return string Name of this calendar
|
||||
*/
|
||||
public function get_name()
|
||||
{
|
||||
return $this->userdata['displayname'] ?: ($this->userdata['name'] ?: $this->userdata['mail']);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Getter for the IMAP folder owner
|
||||
*
|
||||
* @return string Name of the folder owner
|
||||
*/
|
||||
public function get_owner()
|
||||
{
|
||||
return $this->userdata['mail'];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function get_title()
|
||||
{
|
||||
return trim($this->userdata['displayname'] . '; ' . $this->userdata['mail'], '; ');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Getter for the name of the namespace to which the IMAP folder belongs
|
||||
*
|
||||
* @return string Name of the namespace (personal, other, shared)
|
||||
*/
|
||||
public function get_namespace()
|
||||
{
|
||||
return 'other user';
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Getter for the top-end calendar folder name (not the entire path)
|
||||
*
|
||||
* @return string Name of this calendar
|
||||
*/
|
||||
public function get_foldername()
|
||||
{
|
||||
return $this->get_name();
|
||||
}
|
||||
|
||||
/**
|
||||
* Return color to display this calendar
|
||||
*/
|
||||
public function get_color()
|
||||
{
|
||||
// calendar color is stored in local user prefs
|
||||
$prefs = $this->cal->rc->config->get('kolab_calendars', array());
|
||||
|
||||
if (!empty($prefs[$this->id]) && !empty($prefs[$this->id]['color']))
|
||||
return $prefs[$this->id]['color'];
|
||||
|
||||
return 'cc0000';
|
||||
}
|
||||
|
||||
/**
|
||||
* Compose an URL for CalDAV access to this calendar (if configured)
|
||||
*/
|
||||
public function get_caldav_url()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check subscription status of this folder
|
||||
*
|
||||
* @return boolean True if subscribed, false if not
|
||||
*/
|
||||
public function is_subscribed()
|
||||
{
|
||||
return $this->storage->is_subscribed();
|
||||
}
|
||||
|
||||
/**
|
||||
* Update properties of this calendar folder
|
||||
*
|
||||
* @see calendar_driver::edit_calendar()
|
||||
*/
|
||||
public function update(&$prop)
|
||||
{
|
||||
// don't change anything.
|
||||
// let kolab_driver save props in local prefs
|
||||
return $prop['id'];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Getter for a single event object
|
||||
*/
|
||||
public function get_event($id)
|
||||
{
|
||||
// TODO: implement this
|
||||
return $this->events[$id];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get attachment body
|
||||
* @see calendar_driver::get_attachment_body()
|
||||
*/
|
||||
public function get_attachment_body($id, $event)
|
||||
{
|
||||
if (!$event['calendar'] && ($ev = $this->get_event($event['id']))) {
|
||||
$event['calendar'] = $ev['calendar'];
|
||||
}
|
||||
|
||||
if ($event['calendar'] && ($cal = $this->cal->get_calendar($event['calendar']))) {
|
||||
return $cal->get_attachment_body($id, $event);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param integer Event's new start (unix timestamp)
|
||||
* @param integer Event's new end (unix timestamp)
|
||||
* @param string Search query (optional)
|
||||
* @param boolean Include virtual events (optional)
|
||||
* @param array Additional parameters to query storage
|
||||
* @return array A list of event records
|
||||
*/
|
||||
public function list_events($start, $end, $search = null, $virtual = 1, $query = array())
|
||||
{
|
||||
// convert to DateTime for comparisons
|
||||
try {
|
||||
$start_dt = new DateTime('@'.$start);
|
||||
}
|
||||
catch (Exception $e) {
|
||||
$start_dt = new DateTime('@0');
|
||||
}
|
||||
try {
|
||||
$end_dt = new DateTime('@'.$end);
|
||||
}
|
||||
catch (Exception $e) {
|
||||
$end_dt = new DateTime('today +10 years');
|
||||
}
|
||||
|
||||
$limit_changed = null;
|
||||
if (!empty($query)) {
|
||||
foreach ($query as $q) {
|
||||
if ($q[0] == 'changed' && $q[1] == '>=') {
|
||||
try { $limit_changed = new DateTime('@'.$q[2]); }
|
||||
catch (Exception $e) { /* ignore */ }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// aggregate all calendar folders the user shares (but are not subscribed)
|
||||
foreach (kolab_storage::list_user_folders($this->userdata, 'event', false) as $foldername) {
|
||||
$cal = new kolab_calendar($foldername, $this->cal);
|
||||
foreach ($cal->list_events($start, $end, $search, 1) as $event) {
|
||||
$this->events[$event['id']] = $event;
|
||||
$this->timeindex[$this->time_key($event)] = $event['id'];
|
||||
}
|
||||
}
|
||||
|
||||
// get events from the user's free/busy feed (for quickview only)
|
||||
$fbview = $this->cal->rc->config->get('calendar_include_freebusy_data', 1);
|
||||
if ($fbview && ($fbview == 1 || !empty($_REQUEST['_quickview'])) && empty($search)) {
|
||||
$this->fetch_freebusy($limit_changed);
|
||||
}
|
||||
|
||||
$events = array();
|
||||
foreach ($this->events as $event) {
|
||||
// list events in requested time window
|
||||
if ($event['start'] <= $end_dt && $event['end'] >= $start_dt &&
|
||||
(!$limit_changed || !$event['changed'] || $event['changed'] >= $limit_changed)) {
|
||||
$events[] = $event;
|
||||
}
|
||||
}
|
||||
|
||||
// avoid session race conditions that will loose temporary subscriptions
|
||||
$this->cal->rc->session->nowrite = true;
|
||||
|
||||
return $events;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param integer Date range start (unix timestamp)
|
||||
* @param integer Date range end (unix timestamp)
|
||||
* @return integer Count
|
||||
*/
|
||||
public function count_events($start, $end = null)
|
||||
{
|
||||
// not implemented
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper method to fetch free/busy data for the user and turn it into calendar data
|
||||
*/
|
||||
private function fetch_freebusy($limit_changed = null)
|
||||
{
|
||||
// ask kolab server first
|
||||
try {
|
||||
$request_config = array(
|
||||
'store_body' => true,
|
||||
'follow_redirects' => true,
|
||||
);
|
||||
$request = libkolab::http_request(kolab_storage::get_freebusy_url($this->userdata['mail']), 'GET', $request_config);
|
||||
$response = $request->send();
|
||||
|
||||
// authentication required
|
||||
if ($response->getStatus() == 401) {
|
||||
$request->setAuth($this->cal->rc->user->get_username(), $this->cal->rc->decrypt($_SESSION['password']));
|
||||
$response = $request->send();
|
||||
}
|
||||
|
||||
if ($response->getStatus() == 200)
|
||||
$fbdata = $response->getBody();
|
||||
|
||||
unset($request, $response);
|
||||
}
|
||||
catch (Exception $e) {
|
||||
rcube::raise_error(array(
|
||||
'code' => 900,
|
||||
'type' => 'php',
|
||||
'file' => __FILE__,
|
||||
'line' => __LINE__,
|
||||
'message' => "Error fetching free/busy information: " . $e->getMessage()),
|
||||
true, false);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
$statusmap = array(
|
||||
'FREE' => 'free',
|
||||
'BUSY' => 'busy',
|
||||
'BUSY-TENTATIVE' => 'tentative',
|
||||
'X-OUT-OF-OFFICE' => 'outofoffice',
|
||||
'OOF' => 'outofoffice',
|
||||
);
|
||||
$titlemap = array(
|
||||
'FREE' => $this->cal->gettext('availfree'),
|
||||
'BUSY' => $this->cal->gettext('availbusy'),
|
||||
'BUSY-TENTATIVE' => $this->cal->gettext('availtentative'),
|
||||
'X-OUT-OF-OFFICE' => $this->cal->gettext('availoutofoffice'),
|
||||
);
|
||||
|
||||
// console('_fetch_freebusy', kolab_storage::get_freebusy_url($this->userdata['mail']), $fbdata);
|
||||
|
||||
// parse free-busy information
|
||||
$count = 0;
|
||||
if ($fbdata) {
|
||||
$ical = $this->cal->get_ical();
|
||||
$ical->import($fbdata);
|
||||
if ($fb = $ical->freebusy) {
|
||||
// consider 'changed >= X' queries
|
||||
if ($limit_changed && $fb['created'] && $fb['created'] < $limit_changed) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
foreach ($fb['periods'] as $tuple) {
|
||||
list($from, $to, $type) = $tuple;
|
||||
$event = array(
|
||||
'id' => md5($this->id . $from->format('U') . '/' . $to->format('U')),
|
||||
'calendar' => $this->id,
|
||||
'changed' => $fb['created'] ?: new DateTime(),
|
||||
'title' => $this->get_name() . ' ' . ($titlemap[$type] ?: $type),
|
||||
'start' => $from,
|
||||
'end' => $to,
|
||||
'free_busy' => $statusmap[$type] ?: 'busy',
|
||||
'className' => 'fc-type-freebusy',
|
||||
'organizer' => array(
|
||||
'email' => $this->userdata['mail'],
|
||||
'name' => $this->userdata['displayname'],
|
||||
),
|
||||
);
|
||||
|
||||
// avoid duplicate entries
|
||||
$key = $this->time_key($event);
|
||||
if (!$this->timeindex[$key]) {
|
||||
$this->events[$event['id']] = $event;
|
||||
$this->timeindex[$key] = $event['id'];
|
||||
$count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $count;
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper to build a key for the absolute time slot the given event convers
|
||||
*/
|
||||
private function time_key($event)
|
||||
{
|
||||
return sprintf('%s/%s', $event['start']->format('U'), is_object($event['end']->format('U')) ?: '0');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Create a new event record
|
||||
*
|
||||
* @see calendar_driver::new_event()
|
||||
*
|
||||
* @return mixed The created record ID on success, False on error
|
||||
*/
|
||||
public function insert_event($event)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Update a specific event record
|
||||
*
|
||||
* @see calendar_driver::new_event()
|
||||
* @return boolean True on success, False on error
|
||||
*/
|
||||
|
||||
public function update_event($event, $exception_id = null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete an event record
|
||||
*
|
||||
* @see calendar_driver::remove_event()
|
||||
* @return boolean True on success, False on error
|
||||
*/
|
||||
public function delete_event($event, $force = true)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Restore deleted event record
|
||||
*
|
||||
* @see calendar_driver::undelete_event()
|
||||
* @return boolean True on success, False on error
|
||||
*/
|
||||
public function restore_event($event)
|
||||
{
|
||||
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);
|
||||
}
|
||||
|
||||
}
|
150
drivers/ldap/resources_driver_ldap.php
Normal file
|
@ -0,0 +1,150 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* LDAP-based resource directory class using rcube_ldap functionality
|
||||
*
|
||||
* @author Thomas Bruederli <bruederli@kolabsys.com>
|
||||
*
|
||||
* Copyright (C) 2014, Kolab Systems AG <contact@kolabsys.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/**
|
||||
* LDAP-based resource directory implementation
|
||||
*/
|
||||
class resources_driver_ldap extends resources_driver
|
||||
{
|
||||
private $rc;
|
||||
private $ldap;
|
||||
|
||||
/**
|
||||
* Default constructor
|
||||
*/
|
||||
function __construct($cal)
|
||||
{
|
||||
$this->cal = $cal;
|
||||
$this->rc = $cal->rc;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetch resource objects to be displayed for booking
|
||||
*
|
||||
* @param string Search query (optional)
|
||||
* @return array List of resource records available for booking
|
||||
*/
|
||||
public function load_resources($query = null, $num = 5000)
|
||||
{
|
||||
if (!($ldap = $this->connect())) {
|
||||
return array();
|
||||
}
|
||||
|
||||
// TODO: apply paging
|
||||
$ldap->set_pagesize($num);
|
||||
|
||||
if (isset($query)) {
|
||||
$results = $ldap->search('*', $query, 0, true, true);
|
||||
}
|
||||
else {
|
||||
$results = $ldap->list_records();
|
||||
}
|
||||
|
||||
if ($results instanceof ArrayAccess) {
|
||||
foreach ($results as $i => $rec) {
|
||||
$results[$i] = $this->decode_resource($rec);
|
||||
}
|
||||
}
|
||||
|
||||
return $results;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return properties of a single resource
|
||||
*
|
||||
* @param string Unique resource identifier
|
||||
* @return array Resource object as hash array
|
||||
*/
|
||||
public function get_resource($dn)
|
||||
{
|
||||
$rec = null;
|
||||
|
||||
if ($ldap = $this->connect()) {
|
||||
$rec = $ldap->get_record(rcube_ldap::dn_encode($dn), true);
|
||||
|
||||
if (!empty($rec)) {
|
||||
$rec = $this->decode_resource($rec);
|
||||
}
|
||||
}
|
||||
|
||||
return $rec;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return properties of a resource owner
|
||||
*
|
||||
* @param string Owner identifier
|
||||
* @return array Resource object as hash array
|
||||
*/
|
||||
public function get_resource_owner($dn)
|
||||
{
|
||||
$owner = null;
|
||||
|
||||
if ($ldap = $this->connect()) {
|
||||
$owner = $ldap->get_record(rcube_ldap::dn_encode($dn), true);
|
||||
$owner['ID'] = rcube_ldap::dn_decode($owner['ID']);
|
||||
unset($owner['_raw_attrib'], $owner['_type']);
|
||||
}
|
||||
|
||||
return $owner;
|
||||
}
|
||||
|
||||
/**
|
||||
* Extract JSON-serialized attributes
|
||||
*/
|
||||
private function decode_resource($rec)
|
||||
{
|
||||
$rec['ID'] = rcube_ldap::dn_decode($rec['ID']);
|
||||
|
||||
if (is_array($rec['attributes']) && $rec['attributes'][0]) {
|
||||
$attributes = array();
|
||||
|
||||
foreach ($rec['attributes'] as $sattr) {
|
||||
$attr = @json_decode($sattr, true);
|
||||
$attributes += $attr;
|
||||
}
|
||||
|
||||
$rec['attributes'] = $attributes;
|
||||
}
|
||||
|
||||
// force $rec['members'] to be an array
|
||||
if (!empty($rec['members']) && !is_array($rec['members'])) {
|
||||
$rec['members'] = array($rec['members']);
|
||||
}
|
||||
|
||||
// remove unused cruft
|
||||
unset($rec['_raw_attrib']);
|
||||
|
||||
return $rec;
|
||||
}
|
||||
|
||||
private function connect()
|
||||
{
|
||||
if (!isset($this->ldap)) {
|
||||
$this->ldap = new rcube_ldap($this->rc->config->get('calendar_resources_directory'), true);
|
||||
}
|
||||
|
||||
return $this->ldap->ready ? $this->ldap : null;
|
||||
}
|
||||
|
||||
}
|
114
drivers/resources_driver.php
Normal file
|
@ -0,0 +1,114 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Resources directory interface definition
|
||||
*
|
||||
* @author Thomas Bruederli <bruederli@kolabsys.com>
|
||||
*
|
||||
* Copyright (C) 2014, Kolab Systems AG <contact@kolabsys.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* Interface definition for a resources directory driver classe
|
||||
*/
|
||||
abstract class resources_driver
|
||||
{
|
||||
protected$cal;
|
||||
|
||||
/**
|
||||
* Default constructor
|
||||
*/
|
||||
function __construct($cal)
|
||||
{
|
||||
$this->cal = $cal;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetch resource objects to be displayed for booking
|
||||
*
|
||||
* @param string Search query (optional)
|
||||
* @return array List of resource records available for booking
|
||||
*/
|
||||
abstract public function load_resources($query = null);
|
||||
|
||||
/**
|
||||
* Return properties of a single resource
|
||||
*
|
||||
* @param string Unique resource identifier
|
||||
* @return array Resource object as hash array
|
||||
*/
|
||||
abstract public function get_resource($id);
|
||||
|
||||
/**
|
||||
* Return properties of a resource owner
|
||||
*
|
||||
* @param string Owner identifier
|
||||
* @return array Resource object as hash array
|
||||
*/
|
||||
public function get_resource_owner($id)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get event data to display a resource's calendar
|
||||
*
|
||||
* The default implementation extracts the resource's email address
|
||||
* and fetches free-busy data using the calendar backend driver.
|
||||
*
|
||||
* @param integer Event's new start (unix timestamp)
|
||||
* @param integer Event's new end (unix timestamp)
|
||||
* @return array A list of event objects (see calendar_driver specification)
|
||||
*/
|
||||
public function get_resource_calendar($id, $start, $end)
|
||||
{
|
||||
$events = array();
|
||||
$rec = $this->get_resource($id);
|
||||
if ($rec && !empty($rec['email']) && $this->cal->driver) {
|
||||
$fbtypemap = array(
|
||||
calendar::FREEBUSY_BUSY => 'busy',
|
||||
calendar::FREEBUSY_TENTATIVE => 'tentative',
|
||||
calendar::FREEBUSY_OOF => 'outofoffice',
|
||||
);
|
||||
|
||||
// if the backend has free-busy information
|
||||
$fblist = $this->cal->driver->get_freebusy_list($rec['email'], $start, $end);
|
||||
if (is_array($fblist)) {
|
||||
foreach ($fblist as $slot) {
|
||||
list($from, $to, $type) = $slot;
|
||||
if ($type == calendar::FREEBUSY_FREE || $type == calendar::FREEBUSY_UNKNOWN) {
|
||||
continue;
|
||||
}
|
||||
if ($from < $end && $to > $start) {
|
||||
$event = array(
|
||||
'id' => sha1($id . $from . $to),
|
||||
'title' => $rec['name'],
|
||||
'start' => new DateTime('@' . $from),
|
||||
'end' => new DateTime('@' . $to),
|
||||
'status' => $fbtypemap[$type],
|
||||
'calendar' => '_resource',
|
||||
);
|
||||
$events[] = $event;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $events;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,5 +1,7 @@
|
|||
<?php
|
||||
|
||||
require_once realpath(__DIR__ . '/../../libcalendaring/lib/libcalendaring_itip.php');
|
||||
|
||||
/**
|
||||
* iTIP functions for the Calendar plugin
|
||||
*
|
||||
|
@ -24,173 +26,32 @@
|
|||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
class calendar_itip
|
||||
class calendar_itip extends libcalendaring_itip
|
||||
{
|
||||
private $rc;
|
||||
private $cal;
|
||||
private $sender;
|
||||
private $itip_send = false;
|
||||
|
||||
function __construct($cal, $identity = null)
|
||||
/**
|
||||
* Constructor to set text domain to calendar
|
||||
*/
|
||||
function __construct($plugin, $domain = 'calendar')
|
||||
{
|
||||
$this->cal = $cal;
|
||||
$this->rc = $cal->rc;
|
||||
$this->sender = $identity ? $identity : $this->rc->user->get_identity();
|
||||
parent::__construct($plugin, $domain);
|
||||
|
||||
$this->cal->add_hook('smtp_connect', array($this, 'smtp_connect_hook'));
|
||||
}
|
||||
|
||||
function set_sender_email($email)
|
||||
{
|
||||
if (!empty($email))
|
||||
$this->sender['email'] = $email;
|
||||
$this->db_itipinvitations = $this->rc->db->table_name('itipinvitations', true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Send an iTip mail message
|
||||
*
|
||||
* @param array Event object to send
|
||||
* @param string iTip method (REQUEST|REPLY|CANCEL)
|
||||
* @param array Hash array with recipient data (name, email)
|
||||
* @param string Mail subject
|
||||
* @param string Mail body text label
|
||||
* @param object Mail_mime object with message data
|
||||
* @return boolean True on success, false on failure
|
||||
* Handler for calendar/itip-status requests
|
||||
*/
|
||||
public function send_itip_message($event, $method, $recipient, $subject, $bodytext, $message = null)
|
||||
public function get_itip_status($event, $existing = null)
|
||||
{
|
||||
if (!$this->sender['name'])
|
||||
$this->sender['name'] = $this->sender['email'];
|
||||
|
||||
if (!$message)
|
||||
$message = $this->compose_itip_message($event, $method);
|
||||
|
||||
$mailto = rcube_idn_to_ascii($recipient['email']);
|
||||
|
||||
$headers = $message->headers();
|
||||
$headers['To'] = format_email_recipient($mailto, $recipient['name']);
|
||||
$headers['Subject'] = $this->cal->gettext(array(
|
||||
'name' => $subject,
|
||||
'vars' => array('title' => $event['title'], 'name' => $this->sender['name'])
|
||||
));
|
||||
|
||||
// compose a list of all event attendees
|
||||
$attendees_list = array();
|
||||
foreach ((array)$event['attendees'] as $attendee) {
|
||||
$attendees_list[] = ($attendee['name'] && $attendee['email']) ?
|
||||
$attendee['name'] . ' <' . $attendee['email'] . '>' :
|
||||
($attendee['name'] ? $attendee['name'] : $attendee['email']);
|
||||
}
|
||||
|
||||
$mailbody = $this->cal->gettext(array(
|
||||
'name' => $bodytext,
|
||||
'vars' => array(
|
||||
'title' => $event['title'],
|
||||
'date' => $this->cal->lib->event_date_text($event, true),
|
||||
'attendees' => join(', ', $attendees_list),
|
||||
'sender' => $this->sender['name'],
|
||||
'organizer' => $this->sender['name'],
|
||||
)
|
||||
));
|
||||
|
||||
// append links for direct invitation replies
|
||||
if ($method == 'REQUEST' && ($token = $this->store_invitation($event, $recipient['email']))) {
|
||||
$mailbody .= "\n\n" . $this->cal->gettext(array(
|
||||
'name' => 'invitationattendlinks',
|
||||
'vars' => array('url' => $this->cal->get_url(array('action' => 'attend', 't' => $token))),
|
||||
));
|
||||
}
|
||||
else if ($method == 'CANCEL') {
|
||||
$this->cancel_itip_invitation($event);
|
||||
}
|
||||
|
||||
$message->headers($headers, true);
|
||||
$message->setTXTBody(rcube_mime::format_flowed($mailbody, 79));
|
||||
$status = parent::get_itip_status($event, $existing);
|
||||
|
||||
// finally send the message
|
||||
$this->itip_send = true;
|
||||
$sent = $this->rc->deliver_message($message, $headers['X-Sender'], $mailto, $smtp_error);
|
||||
$this->itip_send = false;
|
||||
// don't ask for deleting events when declining
|
||||
if ($this->rc->config->get('kolab_invitation_calendars'))
|
||||
$status['saved'] = false;
|
||||
|
||||
return $sent;
|
||||
return $status;
|
||||
}
|
||||
|
||||
/**
|
||||
* Plugin hook to alter SMTP authentication.
|
||||
* This is used if iTip messages are to be sent from an unauthenticated session
|
||||
*/
|
||||
public function smtp_connect_hook($p)
|
||||
{
|
||||
// replace smtp auth settings if we're not in an authenticated session
|
||||
if ($this->itip_send && !$this->rc->user->ID) {
|
||||
foreach (array('smtp_server', 'smtp_user', 'smtp_pass') as $prop) {
|
||||
$p[$prop] = $this->rc->config->get("calendar_itip_$prop", $p[$prop]);
|
||||
}
|
||||
}
|
||||
|
||||
return $p;
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper function to build a Mail_mime object to send an iTip message
|
||||
*
|
||||
* @param array Event object to send
|
||||
* @param string iTip method (REQUEST|REPLY|CANCEL)
|
||||
* @return object Mail_mime object with message data
|
||||
*/
|
||||
public function compose_itip_message($event, $method)
|
||||
{
|
||||
$from = rcube_idn_to_ascii($this->sender['email']);
|
||||
$from_utf = rcube_idn_to_utf8($from);
|
||||
$sender = format_email_recipient($from, $this->sender['name']);
|
||||
|
||||
// truncate list attendees down to the recipient of the iTip Reply.
|
||||
// constraints for a METHOD:REPLY according to RFC 5546
|
||||
if ($method == 'REPLY') {
|
||||
$replying_attendee = null; $reply_attendees = array();
|
||||
foreach ($event['attendees'] as $attendee) {
|
||||
if ($attendee['role'] == 'ORGANIZER') {
|
||||
$reply_attendees[] = $attendee;
|
||||
}
|
||||
else if (strcasecmp($attedee['email'], $from) == 0 || strcasecmp($attendee['email'], $from_utf) == 0) {
|
||||
$replying_attendee = $attendee;
|
||||
}
|
||||
}
|
||||
if ($replying_attendee) {
|
||||
$reply_attendees[] = $replying_attendee;
|
||||
$event['attendees'] = $reply_attendees;
|
||||
}
|
||||
}
|
||||
|
||||
// compose multipart message using PEAR:Mail_Mime
|
||||
$message = new Mail_mime("\r\n");
|
||||
$message->setParam('text_encoding', 'quoted-printable');
|
||||
$message->setParam('head_encoding', 'quoted-printable');
|
||||
$message->setParam('head_charset', RCMAIL_CHARSET);
|
||||
$message->setParam('text_charset', RCMAIL_CHARSET . ";\r\n format=flowed");
|
||||
$message->setContentType('multipart/alternative');
|
||||
|
||||
// compose common headers array
|
||||
$headers = array(
|
||||
'From' => $sender,
|
||||
'Date' => $this->rc->user_date(),
|
||||
'Message-ID' => $this->rc->gen_message_id(),
|
||||
'X-Sender' => $from,
|
||||
);
|
||||
if ($agent = $this->rc->config->get('useragent'))
|
||||
$headers['User-Agent'] = $agent;
|
||||
|
||||
$message->headers($headers);
|
||||
|
||||
// attach ics file for this event
|
||||
$ical = $this->cal->get_ical();
|
||||
$ics = $ical->export(array($event), $method, false, $method == 'REQUEST' ? array($this->cal->driver, 'get_attachment_body') : false);
|
||||
$message->addAttachment($ics, 'text/calendar', 'event.ics', false, '8bit', '', RCMAIL_CHARSET . "; method=" . $method);
|
||||
|
||||
return $message;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Find invitation record by token
|
||||
*
|
||||
|
@ -200,7 +61,7 @@ class calendar_itip
|
|||
public function get_invitation($token)
|
||||
{
|
||||
if ($parts = $this->decode_token($token)) {
|
||||
$result = $this->rc->db->query("SELECT * FROM itipinvitations WHERE token=?", $parts['base']);
|
||||
$result = $this->rc->db->query("SELECT * FROM $this->db_itipinvitations WHERE `token` = ?", $parts['base']);
|
||||
if ($result && ($rec = $this->rc->db->fetch_assoc($result))) {
|
||||
$rec['event'] = unserialize($rec['event']);
|
||||
$rec['attendee'] = $parts['attendee'];
|
||||
|
@ -244,16 +105,16 @@ class calendar_itip
|
|||
if ($organizer) {
|
||||
$status = strtolower($newstatus);
|
||||
if ($this->send_itip_message($invitation['event'], 'REPLY', $organizer, 'itipsubject' . $status, 'itipmailbody' . $status))
|
||||
$this->rc->output->command('display_message', $this->cal->gettext(array('name' => 'sentresponseto', 'vars' => array('mailto' => $organizer['name'] ? $organizer['name'] : $organizer['email']))), 'confirmation');
|
||||
$this->rc->output->command('display_message', $this->plugin->gettext(array('name' => 'sentresponseto', 'vars' => array('mailto' => $organizer['name'] ? $organizer['name'] : $organizer['email']))), 'confirmation');
|
||||
else
|
||||
$this->rc->output->command('display_message', $this->cal->gettext('itipresponseerror'), 'error');
|
||||
$this->rc->output->command('display_message', $this->plugin->gettext('itipresponseerror'), 'error');
|
||||
}
|
||||
|
||||
// update record in DB
|
||||
$query = $this->rc->db->query(
|
||||
"UPDATE itipinvitations
|
||||
SET event=?
|
||||
WHERE token=?",
|
||||
"UPDATE $this->db_itipinvitations
|
||||
SET `event` = ?
|
||||
WHERE `token` = ?",
|
||||
self::serialize_event($invitation['event']),
|
||||
$invitation['token']
|
||||
);
|
||||
|
@ -289,17 +150,19 @@ class calendar_itip
|
|||
return $token;
|
||||
|
||||
// delete old entry
|
||||
$this->rc->db->query("DELETE FROM itipinvitations WHERE token=?", $base);
|
||||
$this->rc->db->query("DELETE FROM $this->db_itipinvitations WHERE `token` = ?", $base);
|
||||
|
||||
$event_uid = $event['uid'] . ($event['_instance'] ? '-' . $event['_instance'] : '');
|
||||
|
||||
$query = $this->rc->db->query(
|
||||
"INSERT INTO itipinvitations
|
||||
(token, event_uid, user_id, event, expires)
|
||||
"INSERT INTO $this->db_itipinvitations
|
||||
(`token`, `event_uid`, `user_id`, `event`, `expires`)
|
||||
VALUES(?, ?, ?, ?, ?)",
|
||||
$base,
|
||||
$event['uid'],
|
||||
$event_uid,
|
||||
$this->rc->user->ID,
|
||||
self::serialize_event($event),
|
||||
date('Y-m-d H:i:s', $event['end'] + 86400 * 2)
|
||||
date('Y-m-d H:i:s', $event['end']->format('U') + 86400 * 2)
|
||||
);
|
||||
|
||||
if ($this->rc->db->affected_rows($query)) {
|
||||
|
@ -317,12 +180,14 @@ class calendar_itip
|
|||
*/
|
||||
public function cancel_itip_invitation($event)
|
||||
{
|
||||
$event_uid = $event['uid'] . ($event['_instance'] ? '-' . $event['_instance'] : '');
|
||||
|
||||
// flag invitation record as cancelled
|
||||
$this->rc->db->query(
|
||||
"UPDATE itipinvitations
|
||||
SET cancelled=1
|
||||
WHERE event_uid=? AND user_id=?",
|
||||
$event['uid'],
|
||||
"UPDATE $this->db_itipinvitations
|
||||
SET `cancelled` = 1
|
||||
WHERE `event_uid` = ? AND `user_id` = ?",
|
||||
$event_uid,
|
||||
$this->rc->user->ID
|
||||
);
|
||||
}
|
||||
|
@ -335,7 +200,8 @@ class calendar_itip
|
|||
*/
|
||||
public function generate_token($event, $attendee)
|
||||
{
|
||||
$base = sha1($event['uid'] . ';' . $this->rc->user->ID);
|
||||
$event_uid = $event['uid'] . ($event['_instance'] ? '-' . $event['_instance'] : '');
|
||||
$base = sha1($event_uid . ';' . $this->rc->user->ID);
|
||||
$mail = base64_encode($attendee);
|
||||
$hash = substr(md5($base . $mail . $this->rc->config->get('des_key')), 0, 6);
|
||||
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
<?php
|
||||
|
||||
require_once realpath(__DIR__ . '/../../libcalendaring/lib/libcalendaring_recurrence.php');
|
||||
|
||||
/**
|
||||
* Recurrence computation class for the Calendar plugin
|
||||
*
|
||||
* Uitility class to compute instances of recurring events.
|
||||
*
|
||||
* @version @package_version@
|
||||
* @author Thomas Bruederli <bruederli@kolabsys.com>
|
||||
* @package @package_name@
|
||||
*
|
||||
* Copyright (C) 2012, Kolab Systems AG <contact@kolabsys.com>
|
||||
* Copyright (C) 2012-2014, Kolab Systems AG <contact@kolabsys.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
|
@ -24,14 +24,10 @@
|
|||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
class calendar_recurrence
|
||||
class calendar_recurrence extends libcalendaring_recurrence
|
||||
{
|
||||
private $cal;
|
||||
private $event;
|
||||
private $next;
|
||||
private $engine;
|
||||
private $duration;
|
||||
private $hour = 0;
|
||||
|
||||
/**
|
||||
* Default constructor
|
||||
|
@ -41,62 +37,25 @@ class calendar_recurrence
|
|||
*/
|
||||
function __construct($cal, $event)
|
||||
{
|
||||
// use Horde classes to compute recurring instances
|
||||
// TODO: replace with something that has less than 6'000 lines of code
|
||||
require_once(__DIR__ . '/Horde_Date_Recurrence.php');
|
||||
parent::__construct($cal->lib);
|
||||
|
||||
$this->cal = $cal;
|
||||
$this->event = $event;
|
||||
$this->next = new Horde_Date($event['start'], $cal->timezone->getName());
|
||||
$this->hour = $this->next->hour;
|
||||
|
||||
if (is_object($event['start']) && is_object($event['end']))
|
||||
$this->duration = $event['start']->diff($event['end']);
|
||||
|
||||
$this->engine = new Horde_Date_Recurrence($event['start']);
|
||||
$this->engine->fromRRule20(libcalendaring::to_rrule($event['recurrence']));
|
||||
|
||||
if (is_array($event['recurrence']['EXDATE'])) {
|
||||
foreach ($event['recurrence']['EXDATE'] as $exdate) {
|
||||
if (is_a($exdate, 'DateTime')) {
|
||||
$this->engine->addException($exdate->format('Y'), $exdate->format('n'), $exdate->format('j'));
|
||||
}
|
||||
}
|
||||
}
|
||||
if (is_array($event['recurrence']['RDATE'])) {
|
||||
foreach ($event['recurrence']['RDATE'] as $rdate) {
|
||||
if (is_a($rdate, 'DateTime')) {
|
||||
$this->engine->addRDate($rdate->format('Y'), $rdate->format('n'), $rdate->format('j'));
|
||||
}
|
||||
}
|
||||
}
|
||||
$event['start']->_dateonly |= $event['allday'];
|
||||
$this->init($event['recurrence'], $event['start']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get date/time of the next occurence of this event
|
||||
* Alias of libcalendaring_recurrence::next()
|
||||
*
|
||||
* @return mixed DateTime object or False if recurrence ended
|
||||
*/
|
||||
public function next_start()
|
||||
{
|
||||
$time = false;
|
||||
$after = clone $this->next;
|
||||
$after->mday = $after->mday + 1;
|
||||
if ($this->next && ($next = $this->engine->nextActiveRecurrence($after))) {
|
||||
if (!$next->after($this->next)) {
|
||||
// avoid endless loops if recurrence computation fails
|
||||
return false;
|
||||
}
|
||||
if ($this->event['allday']) {
|
||||
$next->hour = $this->hour; # fix time for all-day events
|
||||
$next->min = 0;
|
||||
}
|
||||
|
||||
$time = $next->toDateTime();
|
||||
$this->next = $next;
|
||||
}
|
||||
|
||||
return $time;
|
||||
return $this->next();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -106,14 +65,18 @@ class calendar_recurrence
|
|||
*/
|
||||
public function next_instance()
|
||||
{
|
||||
if ($next_start = $this->next_start()) {
|
||||
$next_end = clone $next_start;
|
||||
$next_end->add($this->duration);
|
||||
|
||||
if ($next_start = $this->next()) {
|
||||
$next = $this->event;
|
||||
$next['recurrence_id'] = $next_start->format('Y-m-d');
|
||||
$next['start'] = $next_start;
|
||||
$next['end'] = $next_end;
|
||||
|
||||
if ($this->duration) {
|
||||
$next['end'] = clone $next_start;
|
||||
$next['end']->add($this->duration);
|
||||
}
|
||||
|
||||
$next['recurrence_date'] = clone $next_start;
|
||||
$next['_instance'] = libcalendaring::recurrence_instance_identifier($next);
|
||||
|
||||
unset($next['_formatobj']);
|
||||
|
||||
return $next;
|
||||
|
|
|
@ -2,12 +2,11 @@
|
|||
/**
|
||||
* User Interface class for the Calendar plugin
|
||||
*
|
||||
* @version @package_version@
|
||||
* @author Lazlo Westerhof <hello@lazlo.me>
|
||||
* @author Thomas Bruederli <bruederli@kolabsys.com>
|
||||
*
|
||||
* Copyright (C) 2010, Lazlo Westerhof <hello@lazlo.me>
|
||||
* Copyright (C) 2012, Kolab Systems AG <contact@kolabsys.com>
|
||||
* Copyright (C) 2014, Kolab Systems AG <contact@kolabsys.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
|
@ -74,16 +73,22 @@ class calendar_ui
|
|||
$this->cal->register_handler('plugin.calendar_select', array($this, 'calendar_select'));
|
||||
$this->cal->register_handler('plugin.identity_select', array($this, 'identity_select'));
|
||||
$this->cal->register_handler('plugin.category_select', array($this, 'category_select'));
|
||||
$this->cal->register_handler('plugin.status_select', array($this, 'status_select'));
|
||||
$this->cal->register_handler('plugin.freebusy_select', array($this, 'freebusy_select'));
|
||||
$this->cal->register_handler('plugin.priority_select', array($this, 'priority_select'));
|
||||
$this->cal->register_handler('plugin.sensitivity_select', array($this, 'sensitivity_select'));
|
||||
$this->cal->register_handler('plugin.alarm_select', array($this, 'alarm_select'));
|
||||
$this->cal->register_handler('plugin.recurrence_form', array($this, 'recurrence_form'));
|
||||
$this->cal->register_handler('plugin.recurrence_form', array($this->cal->lib, 'recurrence_form'));
|
||||
$this->cal->register_handler('plugin.attachments_form', array($this, 'attachments_form'));
|
||||
$this->cal->register_handler('plugin.attachments_list', array($this, 'attachments_list'));
|
||||
$this->cal->register_handler('plugin.filedroparea', array($this, 'file_drop_area'));
|
||||
$this->cal->register_handler('plugin.attendees_list', array($this, 'attendees_list'));
|
||||
$this->cal->register_handler('plugin.attendees_form', array($this, 'attendees_form'));
|
||||
$this->cal->register_handler('plugin.resources_form', array($this, 'resources_form'));
|
||||
$this->cal->register_handler('plugin.resources_list', array($this, 'resources_list'));
|
||||
$this->cal->register_handler('plugin.resources_searchform', array($this, 'resources_search_form'));
|
||||
$this->cal->register_handler('plugin.resource_info', array($this, 'resource_info'));
|
||||
$this->cal->register_handler('plugin.resource_calendar', array($this, 'resource_calendar'));
|
||||
$this->cal->register_handler('plugin.attendees_freebusy_table', array($this, 'attendees_freebusy_table'));
|
||||
$this->cal->register_handler('plugin.edit_attendees_notify', array($this, 'edit_attendees_notify'));
|
||||
$this->cal->register_handler('plugin.edit_recurring_warning', array($this, 'recurring_event_warning'));
|
||||
|
@ -91,6 +96,7 @@ class calendar_ui
|
|||
$this->cal->register_handler('plugin.angenda_options', array($this, 'angenda_options'));
|
||||
$this->cal->register_handler('plugin.events_import_form', array($this, 'events_import_form'));
|
||||
$this->cal->register_handler('plugin.events_export_form', array($this, 'events_export_form'));
|
||||
$this->cal->register_handler('plugin.event_changelog_table', array($this, 'event_changelog_table'));
|
||||
$this->cal->register_handler('plugin.searchform', array($this->rc->output, 'search_form')); // use generic method from rcube_template
|
||||
}
|
||||
|
||||
|
@ -101,7 +107,6 @@ class calendar_ui
|
|||
{
|
||||
$skin_path = $this->cal->local_skin_path();
|
||||
$this->cal->include_stylesheet($skin_path . '/fullcalendar.css');
|
||||
$this->cal->include_stylesheet($skin_path . '/jquery.miniColors.css');
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -111,7 +116,14 @@ class calendar_ui
|
|||
{
|
||||
$this->cal->include_script('calendar_ui.js');
|
||||
$this->cal->include_script('lib/js/fullcalendar.js');
|
||||
$this->cal->include_script('lib/js/jquery.miniColors.min.js');
|
||||
$this->rc->output->include_script('treelist.js');
|
||||
|
||||
// include kolab folderlist widget if available
|
||||
if (in_array('libkolab', $this->cal->api->loaded_plugins())) {
|
||||
$this->cal->api->include_script('libkolab/js/folderlist.js');
|
||||
}
|
||||
|
||||
jqueryui::miniColors();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -151,75 +163,164 @@ class calendar_ui
|
|||
foreach ((array)$calendars as $id => $prop) {
|
||||
if (!$prop['color'])
|
||||
continue;
|
||||
$color = $prop['color'];
|
||||
$class = 'cal-' . asciiwords($id, true);
|
||||
$css .= "li.$class, #eventshow .$class { color: #$color }\n";
|
||||
if ($mode != 1) {
|
||||
if ($mode == 3) {
|
||||
$css .= ".fc-event-$class .fc-event-bg {";
|
||||
$css .= " opacity: 0.9;";
|
||||
$css .= " filter: alpha(opacity=90);";
|
||||
}
|
||||
else {
|
||||
$css .= ".fc-event-$class, ";
|
||||
$css .= ".fc-event-$class .fc-event-inner {";
|
||||
}
|
||||
if (!$attrib['printmode'])
|
||||
$css .= " background-color: #$color;";
|
||||
if ($mode % 2 == 0)
|
||||
$css .= " border-color: #$color;";
|
||||
$css .= "}\n";
|
||||
}
|
||||
$css .= ".$class .handle { background-color: #$color; }";
|
||||
$css .= $this->calendar_css_classes($id, $prop, $mode);
|
||||
}
|
||||
|
||||
return html::tag('style', array('type' => 'text/css'), $css);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function calendar_css_classes($id, $prop, $mode)
|
||||
{
|
||||
$color = $prop['color'];
|
||||
$class = 'cal-' . asciiwords($id, true);
|
||||
$css .= "li .$class, #eventshow .$class { color: #$color }\n";
|
||||
|
||||
if ($mode != 1) {
|
||||
if ($mode == 3) {
|
||||
$css .= ".fc-event-$class .fc-event-bg {";
|
||||
$css .= " opacity: 0.9;";
|
||||
$css .= " filter: alpha(opacity=90);";
|
||||
}
|
||||
else {
|
||||
$css .= ".fc-event-$class, ";
|
||||
$css .= ".fc-event-$class .fc-event-inner {";
|
||||
}
|
||||
if (!$attrib['printmode'])
|
||||
$css .= " background-color: #$color;";
|
||||
if ($mode % 2 == 0)
|
||||
$css .= " border-color: #$color;";
|
||||
$css .= "}\n";
|
||||
}
|
||||
|
||||
return $css . ".$class .handle { background-color: #$color; }\n";
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function calendar_list($attrib = array())
|
||||
{
|
||||
$calendars = $this->cal->driver->list_calendars();
|
||||
$html = '';
|
||||
$jsenv = array();
|
||||
$tree = true;
|
||||
$calendars = $this->cal->driver->list_calendars(0, $tree);
|
||||
|
||||
// walk folder tree
|
||||
if (is_object($tree)) {
|
||||
$html = $this->list_tree_html($tree, $calendars, $jsenv, $attrib);
|
||||
|
||||
// append birthdays calendar which isn't part of $tree
|
||||
if ($bdaycal = $calendars[calendar_driver::BIRTHDAY_CALENDAR_ID]) {
|
||||
$calendars = array(calendar_driver::BIRTHDAY_CALENDAR_ID => $bdaycal);
|
||||
}
|
||||
else {
|
||||
$calendars = array(); // clear array for flat listing
|
||||
}
|
||||
}
|
||||
else {
|
||||
// fall-back to flat folder listing
|
||||
$attrib['class'] .= ' flat';
|
||||
}
|
||||
|
||||
$li = '';
|
||||
foreach ((array)$calendars as $id => $prop) {
|
||||
if ($attrib['activeonly'] && !$prop['active'])
|
||||
continue;
|
||||
|
||||
unset($prop['user_id']);
|
||||
$prop['alarms'] = $this->cal->driver->alarms;
|
||||
$prop['attendees'] = $this->cal->driver->attendees;
|
||||
$prop['freebusy'] = $this->cal->driver->freebusy;
|
||||
$prop['attachments'] = $this->cal->driver->attachments;
|
||||
$prop['undelete'] = $this->cal->driver->undelete;
|
||||
$prop['feedurl'] = $this->cal->get_url(array('_cal' => $this->cal->ical_feed_hash($id) . '.ics', 'action' => 'feed'));
|
||||
|
||||
if (!$prop['virtual'])
|
||||
$jsenv[$id] = $prop;
|
||||
|
||||
$html_id = html_identifier($id);
|
||||
$class = 'cal-' . asciiwords($id, true);
|
||||
$title = $prop['name'] != $prop['listname'] ? html_entity_decode($prop['name'], ENT_COMPAT, RCMAIL_CHARSET) : '';
|
||||
|
||||
if ($prop['virtual'])
|
||||
$class .= ' virtual';
|
||||
else if ($prop['readonly'])
|
||||
$class .= ' readonly';
|
||||
if ($prop['class_name'])
|
||||
$class .= ' '.$prop['class_name'];
|
||||
|
||||
$li .= html::tag('li', array('id' => 'rcmlical' . $html_id, 'class' => $class),
|
||||
($prop['virtual'] ? '' : html::tag('input', array('type' => 'checkbox', 'name' => '_cal[]', 'value' => $id, 'checked' => $prop['active']), '') .
|
||||
html::span('handle', ' ')) .
|
||||
html::span(array('class' => 'calname', 'title' => $title), $prop['listname']));
|
||||
$html .= html::tag('li', array('id' => 'rcmlical' . $id, 'class' => $prop['group']),
|
||||
$content = $this->calendar_list_item($id, $prop, $jsenv, $attrib['activeonly'])
|
||||
);
|
||||
}
|
||||
|
||||
$this->rc->output->set_env('calendars', $jsenv);
|
||||
$this->rc->output->add_gui_object('folderlist', $attrib['id']);
|
||||
$this->rc->output->add_gui_object('calendarslist', $attrib['id']);
|
||||
|
||||
return html::tag('ul', $attrib, $li, html::$common_attrib);
|
||||
return html::tag('ul', $attrib, $html, html::$common_attrib);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return html for a structured list <ul> for the folder tree
|
||||
*/
|
||||
public function list_tree_html($node, $data, &$jsenv, $attrib)
|
||||
{
|
||||
$out = '';
|
||||
foreach ($node->children as $folder) {
|
||||
$id = $folder->id;
|
||||
$prop = $data[$id];
|
||||
$is_collapsed = false; // TODO: determine this somehow?
|
||||
|
||||
$content = $this->calendar_list_item($id, $prop, $jsenv, $attrib['activeonly']);
|
||||
|
||||
if (!empty($folder->children)) {
|
||||
$content .= html::tag('ul', array('style' => ($is_collapsed ? "display:none;" : null)),
|
||||
$this->list_tree_html($folder, $data, $jsenv, $attrib));
|
||||
}
|
||||
|
||||
if (strlen($content)) {
|
||||
$out .= html::tag('li', array(
|
||||
'id' => 'rcmlical' . rcube_utils::html_identifier($id),
|
||||
'class' => $prop['group'] . ($prop['virtual'] ? ' virtual' : ''),
|
||||
),
|
||||
$content);
|
||||
}
|
||||
}
|
||||
|
||||
return $out;
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper method to build a calendar list item (HTML content and js data)
|
||||
*/
|
||||
public function calendar_list_item($id, $prop, &$jsenv, $activeonly = false)
|
||||
{
|
||||
// enrich calendar properties with settings from the driver
|
||||
if (!$prop['virtual']) {
|
||||
unset($prop['user_id']);
|
||||
$prop['alarms'] = $this->cal->driver->alarms;
|
||||
$prop['attendees'] = $this->cal->driver->attendees;
|
||||
$prop['freebusy'] = $this->cal->driver->freebusy;
|
||||
$prop['attachments'] = $this->cal->driver->attachments;
|
||||
$prop['undelete'] = $this->cal->driver->undelete;
|
||||
$prop['feedurl'] = $this->cal->get_url(array('_cal' => $this->cal->ical_feed_hash($id) . '.ics', 'action' => 'feed'));
|
||||
|
||||
$jsenv[$id] = $prop;
|
||||
}
|
||||
|
||||
$classes = array('calendar', 'cal-' . asciiwords($id, true));
|
||||
$title = $prop['title'] ?: ($prop['name'] != $prop['listname'] || strlen($prop['name']) > 25 ?
|
||||
html_entity_decode($prop['name'], ENT_COMPAT, RCMAIL_CHARSET) : '');
|
||||
|
||||
if ($prop['virtual'])
|
||||
$classes[] = 'virtual';
|
||||
else if (!$prop['editable'])
|
||||
$classes[] = 'readonly';
|
||||
if ($prop['subscribed'])
|
||||
$classes[] = 'subscribed';
|
||||
if ($prop['subscribed'] === 2)
|
||||
$classes[] = 'partial';
|
||||
if ($prop['class'])
|
||||
$classes[] = $prop['class'];
|
||||
|
||||
$content = '';
|
||||
if (!$activeonly || $prop['active']) {
|
||||
$label_id = 'cl:' . $id;
|
||||
$content = html::div(join(' ', $classes),
|
||||
html::span(array('class' => 'calname', 'id' => $label_id, 'title' => $title), $prop['editname'] ? Q($prop['editname']) : $prop['listname']) .
|
||||
($prop['virtual'] ? '' :
|
||||
html::tag('input', array('type' => 'checkbox', 'name' => '_cal[]', 'value' => $id, 'checked' => $prop['active'], 'aria-labelledby' => $label_id), '') .
|
||||
html::span('actions',
|
||||
($prop['removable'] ? html::a(array('href' => '#', 'class' => 'remove', 'title' => $this->cal->gettext('removelist')), ' ') : '') .
|
||||
html::a(array('href' => '#', 'class' => 'quickview', 'title' => $this->cal->gettext('quickview'), 'role' => 'checkbox', 'aria-checked' => 'false'), '') .
|
||||
(isset($prop['subscribed']) ? html::a(array('href' => '#', 'class' => 'subscribed', 'title' => $this->cal->gettext('calendarsubscribe'), 'role' => 'checkbox', 'aria-checked' => $prop['subscribed'] ? 'true' : 'false'), ' ') : '')
|
||||
) .
|
||||
html::span(array('class' => 'handle', 'style' => "background-color: #" . ($prop['color'] ?: 'f00')), ' ')
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
return $content;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -231,17 +332,17 @@ class calendar_ui
|
|||
$attrib['style'] .= 'display:none';
|
||||
|
||||
$select_range = new html_select(array('name' => 'listrange', 'id' => 'agenda-listrange'));
|
||||
$select_range->add(1 . ' ' . preg_replace('/\(.+\)/', '', $this->cal->gettext('days')), $days);
|
||||
foreach (array(2,5,7,14,30,60,90) as $days)
|
||||
$select_range->add($days . ' ' . preg_replace('/\(|\)/', '', $this->cal->gettext('days')), $days);
|
||||
$select_range->add(1 . ' ' . preg_replace('/\(.+\)/', '', $this->cal->lib->gettext('days')), $days);
|
||||
foreach (array(2,5,7,14,30,60,90,180,365) as $days)
|
||||
$select_range->add($days . ' ' . preg_replace('/\(|\)/', '', $this->cal->lib->gettext('days')), $days);
|
||||
|
||||
$html .= html::label('agenda-listrange', $this->cal->gettext('listrange'));
|
||||
$html .= $select_range->show($this->rc->config->get('calendar_agenda_range', $this->cal->defaults['calendar_agenda_range']));
|
||||
|
||||
$select_sections = new html_select(array('name' => 'listsections', 'id' => 'agenda-listsections'));
|
||||
$select_sections->add('---', '');
|
||||
foreach (array('day' => 'days', 'week' => 'weeks', 'month' => 'months', 'smart' => 'smartsections') as $val => $label)
|
||||
$select_sections->add(preg_replace('/\(|\)/', '', ucfirst($this->cal->gettext($label))), $val);
|
||||
foreach (array('day' => 'libcalendaring.days', 'week' => 'libcalendaring.weeks', 'month' => 'libcalendaring.months', 'smart' => 'calendar.smartsections') as $val => $label)
|
||||
$select_sections->add(preg_replace('/\(|\)/', '', ucfirst($this->rc->gettext($label))), $val);
|
||||
|
||||
$html .= html::span('spacer', ' ');
|
||||
$html .= html::label('agenda-listsections', $this->cal->gettext('listsections'));
|
||||
|
@ -260,7 +361,7 @@ class calendar_ui
|
|||
$select = new html_select($attrib);
|
||||
|
||||
foreach ((array)$this->cal->driver->list_calendars() as $id => $prop) {
|
||||
if (!$prop['readonly'])
|
||||
if ($prop['editable'] || strpos($prop['rights'], 'i') !== false)
|
||||
$select->add($prop['name'], $id);
|
||||
}
|
||||
|
||||
|
@ -274,7 +375,7 @@ class calendar_ui
|
|||
{
|
||||
$attrib['name'] = 'identity';
|
||||
$select = new html_select($attrib);
|
||||
$identities = $this->rc->user->list_identities();
|
||||
$identities = $this->rc->user->list_emails();
|
||||
|
||||
foreach ($identities as $ident) {
|
||||
$select->add(format_email_recipient($ident['email'], $ident['name']), $ident['identity_id']);
|
||||
|
@ -298,6 +399,20 @@ class calendar_ui
|
|||
return $select->show(null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Render a HTML select box for status property
|
||||
*/
|
||||
function status_select($attrib = array())
|
||||
{
|
||||
$attrib['name'] = 'status';
|
||||
$select = new html_select($attrib);
|
||||
$select->add('---', '');
|
||||
$select->add($this->cal->gettext('status-confirmed'), 'CONFIRMED');
|
||||
$select->add($this->cal->gettext('status-cancelled'), 'CANCELLED');
|
||||
//$select->add($this->cal->gettext('tentative'), 'TENTATIVE');
|
||||
return $select->show(null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Render a HTML select box for free/busy/out-of-office property
|
||||
*/
|
||||
|
@ -307,7 +422,8 @@ class calendar_ui
|
|||
$select = new html_select($attrib);
|
||||
$select->add($this->cal->gettext('free'), 'free');
|
||||
$select->add($this->cal->gettext('busy'), 'busy');
|
||||
$select->add($this->cal->gettext('outofoffice'), 'outofoffice');
|
||||
// out-of-office is not supported by libkolabxml (#3220)
|
||||
// $select->add($this->cal->gettext('outofoffice'), 'outofoffice');
|
||||
$select->add($this->cal->gettext('tentative'), 'tentative');
|
||||
return $select->show(null);
|
||||
}
|
||||
|
@ -377,161 +493,6 @@ class calendar_ui
|
|||
|
||||
return html::div($attrib, html::div('message', html::span('ui-icon ui-icon-alert', '') . $this->cal->gettext('changerecurringeventwarning')) . html::div('savemode', $form));
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate the form for recurrence settings
|
||||
*/
|
||||
function recurrence_form($attrib = array())
|
||||
{
|
||||
switch ($attrib['part']) {
|
||||
// frequency selector
|
||||
case 'frequency':
|
||||
$select = new html_select(array('name' => 'frequency', 'id' => 'edit-recurrence-frequency'));
|
||||
$select->add($this->cal->gettext('never'), '');
|
||||
$select->add($this->cal->gettext('daily'), 'DAILY');
|
||||
$select->add($this->cal->gettext('weekly'), 'WEEKLY');
|
||||
$select->add($this->cal->gettext('monthly'), 'MONTHLY');
|
||||
$select->add($this->cal->gettext('yearly'), 'YEARLY');
|
||||
$select->add($this->cal->gettext('rdate'), 'RDATE');
|
||||
$html = html::label('edit-frequency', $this->cal->gettext('frequency')) . $select->show('');
|
||||
break;
|
||||
|
||||
// daily recurrence
|
||||
case 'daily':
|
||||
$select = $this->interval_selector(array('name' => 'interval', 'class' => 'edit-recurrence-interval', 'id' => 'edit-recurrence-interval-daily'));
|
||||
$html = html::div($attrib, html::label(null, $this->cal->gettext('every')) . $select->show(1) . html::span('label-after', $this->cal->gettext('days')));
|
||||
break;
|
||||
|
||||
// weekly recurrence form
|
||||
case 'weekly':
|
||||
$select = $this->interval_selector(array('name' => 'interval', 'class' => 'edit-recurrence-interval', 'id' => 'edit-recurrence-interval-weekly'));
|
||||
$html = html::div($attrib, html::label(null, $this->cal->gettext('every')) . $select->show(1) . html::span('label-after', $this->cal->gettext('weeks')));
|
||||
// weekday selection
|
||||
$daymap = array('sun','mon','tue','wed','thu','fri','sat');
|
||||
$checkbox = new html_checkbox(array('name' => 'byday', 'class' => 'edit-recurrence-weekly-byday'));
|
||||
$first = $this->rc->config->get('calendar_first_day', 1);
|
||||
for ($weekdays = '', $j = $first; $j <= $first+6; $j++) {
|
||||
$d = $j % 7;
|
||||
$weekdays .= html::label(array('class' => 'weekday'), $checkbox->show('', array('value' => strtoupper(substr($daymap[$d], 0, 2)))) . $this->cal->gettext($daymap[$d])) . ' ';
|
||||
}
|
||||
$html .= html::div($attrib, html::label(null, $this->cal->gettext('bydays')) . $weekdays);
|
||||
break;
|
||||
|
||||
// monthly recurrence form
|
||||
case 'monthly':
|
||||
$select = $this->interval_selector(array('name' => 'interval', 'class' => 'edit-recurrence-interval', 'id' => 'edit-recurrence-interval-monthly'));
|
||||
$html = html::div($attrib, html::label(null, $this->cal->gettext('every')) . $select->show(1) . html::span('label-after', $this->cal->gettext('months')));
|
||||
|
||||
$checkbox = new html_checkbox(array('name' => 'bymonthday', 'class' => 'edit-recurrence-monthly-bymonthday'));
|
||||
for ($monthdays = '', $d = 1; $d <= 31; $d++) {
|
||||
$monthdays .= html::label(array('class' => 'monthday'), $checkbox->show('', array('value' => $d)) . $d);
|
||||
$monthdays .= $d % 7 ? ' ' : html::br();
|
||||
}
|
||||
|
||||
// rule selectors
|
||||
$radio = new html_radiobutton(array('name' => 'repeatmode', 'class' => 'edit-recurrence-monthly-mode'));
|
||||
$table = new html_table(array('cols' => 2, 'border' => 0, 'cellpadding' => 0, 'class' => 'formtable'));
|
||||
$table->add('label', html::label(null, $radio->show('BYMONTHDAY', array('value' => 'BYMONTHDAY')) . ' ' . $this->cal->gettext('each')));
|
||||
$table->add(null, $monthdays);
|
||||
$table->add('label', html::label(null, $radio->show('', array('value' => 'BYDAY')) . ' ' . $this->cal->gettext('onevery')));
|
||||
$table->add(null, $this->rrule_selectors($attrib['part']));
|
||||
|
||||
$html .= html::div($attrib, $table->show());
|
||||
|
||||
break;
|
||||
|
||||
// annually recurrence form
|
||||
case 'yearly':
|
||||
$select = $this->interval_selector(array('name' => 'interval', 'class' => 'edit-recurrence-interval', 'id' => 'edit-recurrence-interval-yearly'));
|
||||
$html = html::div($attrib, html::label(null, $this->cal->gettext('every')) . $select->show(1) . html::span('label-after', $this->cal->gettext('years')));
|
||||
// month selector
|
||||
$monthmap = array('','jan','feb','mar','apr','may','jun','jul','aug','sep','oct','nov','dec');
|
||||
$checkbox = new html_checkbox(array('name' => 'bymonth', 'class' => 'edit-recurrence-yearly-bymonth'));
|
||||
for ($months = '', $m = 1; $m <= 12; $m++) {
|
||||
$months .= html::label(array('class' => 'month'), $checkbox->show(null, array('value' => $m)) . $this->cal->gettext($monthmap[$m]));
|
||||
$months .= $m % 4 ? ' ' : html::br();
|
||||
}
|
||||
$html .= html::div($attrib + array('id' => 'edit-recurrence-yearly-bymonthblock'), $months);
|
||||
|
||||
// day rule selection
|
||||
$html .= html::div($attrib, html::label(null, $this->cal->gettext('onevery')) . $this->rrule_selectors($attrib['part'], '---'));
|
||||
break;
|
||||
|
||||
// end of recurrence form
|
||||
case 'until':
|
||||
$radio = new html_radiobutton(array('name' => 'repeat', 'class' => 'edit-recurrence-until'));
|
||||
$select = $this->interval_selector(array('name' => 'times', 'id' => 'edit-recurrence-repeat-times'));
|
||||
$input = new html_inputfield(array('name' => 'untildate', 'id' => 'edit-recurrence-enddate', 'size' => "10"));
|
||||
|
||||
$table = new html_table(array('cols' => 2, 'border' => 0, 'cellpadding' => 0, 'class' => 'formtable'));
|
||||
|
||||
$table->add('label', ucfirst($this->cal->gettext('recurrencend')));
|
||||
$table->add(null, html::label(null, $radio->show('', array('value' => '', 'id' => 'edit-recurrence-repeat-forever')) . ' ' .
|
||||
$this->cal->gettext('forever')));
|
||||
|
||||
$table->add('label', '');
|
||||
$table->add(null, $radio->show('', array('value' => 'count', 'id' => 'edit-recurrence-repeat-count')) . ' ' .
|
||||
$this->cal->gettext(array(
|
||||
'name' => 'forntimes',
|
||||
'vars' => array('nr' => $select->show(1)))
|
||||
));
|
||||
|
||||
$table->add('label', '');
|
||||
$table->add(null, $radio->show('', array('value' => 'until', 'id' => 'edit-recurrence-repeat-until')) . ' ' .
|
||||
$this->cal->gettext('untildate') . ' ' . $input->show(''));
|
||||
$html = $table->show();
|
||||
break;
|
||||
|
||||
case 'rdate':
|
||||
$ul = html::tag('ul', array('id' => 'edit-recurrence-rdates'), '');
|
||||
$input = new html_inputfield(array('name' => 'rdate', 'id' => 'edit-recurrence-rdate-input', 'size' => "10"));
|
||||
$button = new html_inputfield(array('type' => 'button', 'class' => 'button add', 'value' => $this->cal->gettext('addrdate')));
|
||||
$html .= html::div($attrib, $ul . html::div('inputform', $input->show() . $button->show()));
|
||||
break;
|
||||
}
|
||||
|
||||
return $html;
|
||||
}
|
||||
|
||||
/**
|
||||
* Input field for interval selection
|
||||
*/
|
||||
private function interval_selector($attrib)
|
||||
{
|
||||
$select = new html_select($attrib);
|
||||
$select->add(range(1,30), range(1,30));
|
||||
return $select;
|
||||
}
|
||||
|
||||
/**
|
||||
* Drop-down menus for recurrence rules like "each last sunday of"
|
||||
*/
|
||||
private function rrule_selectors($part, $noselect = null)
|
||||
{
|
||||
// rule selectors
|
||||
$select_prefix = new html_select(array('name' => 'bydayprefix', 'id' => "edit-recurrence-$part-prefix"));
|
||||
if ($noselect) $select_prefix->add($noselect, '');
|
||||
$select_prefix->add(array(
|
||||
$this->cal->gettext('first'),
|
||||
$this->cal->gettext('second'),
|
||||
$this->cal->gettext('third'),
|
||||
$this->cal->gettext('fourth'),
|
||||
$this->cal->gettext('last')
|
||||
),
|
||||
array(1, 2, 3, 4, -1));
|
||||
|
||||
$select_wday = new html_select(array('name' => 'byday', 'id' => "edit-recurrence-$part-byday"));
|
||||
if ($noselect) $select_wday->add($noselect, '');
|
||||
|
||||
$daymap = array('sunday','monday','tuesday','wednesday','thursday','friday','saturday');
|
||||
$first = $this->rc->config->get('calendar_first_day', 1);
|
||||
for ($j = $first; $j <= $first+6; $j++) {
|
||||
$d = $j % 7;
|
||||
$select_wday->add($this->cal->gettext($daymap[$d]), strtoupper(substr($daymap[$d], 0, 2)));
|
||||
}
|
||||
|
||||
return $select_prefix->show() . ' ' . $select_wday->show();
|
||||
}
|
||||
|
||||
/**
|
||||
* Form for uploading and importing events
|
||||
|
@ -544,8 +505,14 @@ class calendar_ui
|
|||
// Get max filesize, enable upload progress bar
|
||||
$max_filesize = rcube_upload_init();
|
||||
|
||||
$accept = '.ics, text/calendar, text/x-vcalendar, application/ics';
|
||||
if (class_exists('ZipArchive', false)) {
|
||||
$accept .= ', .zip, application/zip';
|
||||
}
|
||||
|
||||
$input = new html_inputfield(array(
|
||||
'type' => 'file', 'name' => '_data', 'size' => $attrib['uploadfieldsize']));
|
||||
'type' => 'file', 'name' => '_data', 'size' => $attrib['uploadfieldsize'],
|
||||
'accept' => $accept));
|
||||
|
||||
$select = new html_select(array('name' => '_range', 'id' => 'event-import-range'));
|
||||
$select->add(array(
|
||||
|
@ -732,13 +699,29 @@ class calendar_ui
|
|||
*/
|
||||
function attendees_list($attrib = array())
|
||||
{
|
||||
$table = new html_table(array('cols' => 5, 'border' => 0, 'cellpadding' => 0, 'class' => 'rectable'));
|
||||
// add "noreply" checkbox to attendees table only
|
||||
$invitations = strpos($attrib['id'], 'attend') !== false;
|
||||
|
||||
$invite = new html_checkbox(array('value' => 1, 'id' => 'edit-attendees-invite'));
|
||||
$table = new html_table(array('cols' => 5 + intval($invitations), 'border' => 0, 'cellpadding' => 0, 'class' => 'rectable'));
|
||||
|
||||
$table->add_header('role', $this->cal->gettext('role'));
|
||||
$table->add_header('name', $this->cal->gettext('attendee'));
|
||||
$table->add_header('name', $this->cal->gettext($attrib['coltitle'] ?: 'attendee'));
|
||||
$table->add_header('availability', $this->cal->gettext('availability'));
|
||||
$table->add_header('confirmstate', $this->cal->gettext('confirmstate'));
|
||||
if ($invitations) {
|
||||
$table->add_header(array('class' => 'invite', 'title' => $this->cal->gettext('sendinvitations')),
|
||||
$invite->show(1) . html::label('edit-attendees-invite', $this->cal->gettext('sendinvitations')));
|
||||
}
|
||||
$table->add_header('options', '');
|
||||
|
||||
|
||||
// hide invite column if disabled by config
|
||||
$itip_notify = (int)$this->rc->config->get('calendar_itip_send_option', $this->cal->defaults['calendar_itip_send_option']);
|
||||
if ($invitations && !($itip_notify & 2)) {
|
||||
$css = sprintf('#%s td.invite, #%s th.invite { display:none !important }', $attrib['id'], $attrib['id']);
|
||||
$this->rc->output->add_footer(html::tag('style', array('type' => 'text/css'), $css));
|
||||
}
|
||||
|
||||
return $table->show($attrib);
|
||||
}
|
||||
|
||||
|
@ -747,17 +730,108 @@ class calendar_ui
|
|||
*/
|
||||
function attendees_form($attrib = array())
|
||||
{
|
||||
$input = new html_inputfield(array('name' => 'participant', 'id' => 'edit-attendee-name', 'size' => 30));
|
||||
$checkbox = new html_checkbox(array('name' => 'invite', 'id' => 'edit-attendees-invite', 'value' => 1));
|
||||
|
||||
$input = new html_inputfield(array('name' => 'participant', 'id' => 'edit-attendee-name', 'size' => 30));
|
||||
$textarea = new html_textarea(array('name' => 'comment', 'id' => 'edit-attendees-comment',
|
||||
'rows' => 4, 'cols' => 55, 'title' => $this->cal->gettext('itipcommenttitle')));
|
||||
|
||||
return html::div($attrib,
|
||||
html::div(null, $input->show() . " " .
|
||||
html::tag('input', array('type' => 'button', 'class' => 'button', 'id' => 'edit-attendee-add', 'value' => $this->cal->gettext('addattendee'))) . " " .
|
||||
html::tag('input', array('type' => 'button', 'class' => 'button', 'id' => 'edit-attendee-schedule', 'value' => $this->cal->gettext('scheduletime').'...'))) .
|
||||
html::p('attendees-invitebox', html::label(null, $checkbox->show(1) . $this->cal->gettext('sendinvitations')))
|
||||
html::p('attendees-commentbox', html::label(null, $this->cal->gettext('itipcomment') . $textarea->show()))
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function resources_form($attrib = array())
|
||||
{
|
||||
$input = new html_inputfield(array('name' => 'resource', 'id' => 'edit-resource-name', 'size' => 30));
|
||||
|
||||
return html::div($attrib,
|
||||
html::div(null, $input->show() . " " .
|
||||
html::tag('input', array('type' => 'button', 'class' => 'button', 'id' => 'edit-resource-add', 'value' => $this->cal->gettext('addresource'))) . " " .
|
||||
html::tag('input', array('type' => 'button', 'class' => 'button', 'id' => 'edit-resource-find', 'value' => $this->cal->gettext('findresources').'...')))
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function resources_list($attrib = array())
|
||||
{
|
||||
$attrib += array('id' => 'calendar-resources-list');
|
||||
|
||||
$this->rc->output->add_gui_object('resourceslist', $attrib['id']);
|
||||
|
||||
return html::tag('ul', $attrib, '', html::$common_attrib);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function resource_info($attrib = array())
|
||||
{
|
||||
$attrib += array('id' => 'calendar-resources-info');
|
||||
|
||||
$this->rc->output->add_gui_object('resourceinfo', $attrib['id']);
|
||||
$this->rc->output->add_gui_object('resourceownerinfo', $attrib['id'] . '-owner');
|
||||
|
||||
// copy address book labels for owner details to client
|
||||
$this->rc->output->add_label('name','firstname','surname','department','jobtitle','email','phone','address');
|
||||
|
||||
$table_attrib = array('id','class','style','width','summary','cellpadding','cellspacing','border');
|
||||
|
||||
return html::tag('table', $attrib,
|
||||
html::tag('tbody', null, ''), $table_attrib) .
|
||||
|
||||
html::tag('table', array('id' => $attrib['id'] . '-owner', 'style' => 'display:none') + $attrib,
|
||||
html::tag('thead', null,
|
||||
html::tag('tr', null,
|
||||
html::tag('td', array('colspan' => 2), Q($this->cal->gettext('resourceowner')))
|
||||
)
|
||||
) .
|
||||
html::tag('tbody', null, ''),
|
||||
$table_attrib);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function resource_calendar($attrib = array())
|
||||
{
|
||||
$attrib += array('id' => 'calendar-resources-calendar');
|
||||
|
||||
$this->rc->output->add_gui_object('resourceinfocalendar', $attrib['id']);
|
||||
|
||||
return html::div($attrib, '');
|
||||
}
|
||||
|
||||
/**
|
||||
* GUI object 'searchform' for the resource finder dialog
|
||||
*
|
||||
* @param array Named parameters
|
||||
* @return string HTML code for the gui object
|
||||
*/
|
||||
function resources_search_form($attrib)
|
||||
{
|
||||
$attrib += array('command' => 'search-resource', 'id' => 'rcmcalresqsearchbox', 'autocomplete' => 'off');
|
||||
$attrib['name'] = '_q';
|
||||
|
||||
$input_q = new html_inputfield($attrib);
|
||||
$out = $input_q->show();
|
||||
|
||||
// add form tag around text field
|
||||
$out = $this->rc->output->form_tag(array(
|
||||
'name' => "rcmcalresoursqsearchform",
|
||||
'onsubmit' => rcmail_output::JS_OBJECT_NAME . ".command('" . $attrib['command'] . "'); return false",
|
||||
'style' => "display:inline"),
|
||||
$out);
|
||||
|
||||
return $out;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
|
@ -780,21 +854,19 @@ class calendar_ui
|
|||
}
|
||||
|
||||
/**
|
||||
* Render event details in a table
|
||||
* Table oultine for event changelog display
|
||||
*/
|
||||
function event_details_table($event, $title)
|
||||
function event_changelog_table($attrib = array())
|
||||
{
|
||||
$table = new html_table(array('cols' => 2, 'border' => 0, 'class' => 'calendar-eventdetails'));
|
||||
$table->add('ititle', $title);
|
||||
$table->add('title', Q($event['title']));
|
||||
$table->add('label', $this->cal->gettext('date'));
|
||||
$table->add('location', Q($this->cal->lib->event_date_text($event)));
|
||||
if ($event['location']) {
|
||||
$table->add('label', $this->cal->gettext('location'));
|
||||
$table->add('location', Q($event['location']));
|
||||
}
|
||||
|
||||
return $table->show();
|
||||
$table = new html_table(array('cols' => 5, 'border' => 0, 'cellspacing' => 0));
|
||||
$table->add_header('diff', '');
|
||||
$table->add_header('revision', $this->cal->gettext('revision'));
|
||||
$table->add_header('date', $this->cal->gettext('date'));
|
||||
$table->add_header('user', $this->cal->gettext('user'));
|
||||
$table->add_header('operation', $this->cal->gettext('operation'));
|
||||
$table->add_header('actions', ' ');
|
||||
|
||||
return $table->show($attrib);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -804,7 +876,7 @@ class calendar_ui
|
|||
{
|
||||
if ($this->cal->event) {
|
||||
return html::div($attrib,
|
||||
$this->event_details_table($this->cal->event, $this->cal->gettext('itipinvitation')) .
|
||||
$this->cal->itip->itip_object_details_table($this->cal->event, $this->cal->itip->gettext('itipinvitation')) .
|
||||
$this->cal->invitestatus
|
||||
);
|
||||
}
|
||||
|
@ -814,20 +886,11 @@ class calendar_ui
|
|||
|
||||
function event_rsvp_buttons($attrib = array())
|
||||
{
|
||||
$attrib += array('type' => 'button');
|
||||
foreach (array('accepted','tentative','declined') as $method) {
|
||||
$buttons .= html::tag('input', array(
|
||||
'type' => $attrib['type'],
|
||||
'name' => $attrib['iname'],
|
||||
'class' => 'button',
|
||||
'rel' => $method,
|
||||
'value' => $this->cal->gettext('itip' . $method),
|
||||
));
|
||||
}
|
||||
|
||||
return html::div($attrib,
|
||||
html::div('label', $this->cal->gettext('acceptinvitation')) .
|
||||
html::div('rsvp-buttons', $buttons));
|
||||
$actions = array('accepted','tentative','declined');
|
||||
if ($attrib['delegate'] !== 'false')
|
||||
$actions[] = 'delegated';
|
||||
|
||||
return $this->cal->itip->itip_rsvp_buttons($attrib, $actions);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,38 +1,206 @@
|
|||
<?php
|
||||
/**
|
||||
* RoundCube Calendar
|
||||
* Localizations for Kolab Calendar plugin
|
||||
*
|
||||
* Plugin to add a calendar to RoundCube.
|
||||
* Copyright (C) 2014, Kolab Systems AG
|
||||
*
|
||||
* @version 0.2 BETA 2
|
||||
* @author Lazlo Westerhof
|
||||
* @url http://rc-calendar.lazlo.me
|
||||
* @licence GNU GPL
|
||||
* @copyright (c) 2010 Lazlo Westerhof - Netherlands
|
||||
*
|
||||
**/
|
||||
|
||||
$labels = array();
|
||||
|
||||
// config
|
||||
$labels['default_view'] = 'Изглед';
|
||||
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
|
||||
*/
|
||||
$labels['default_view'] = 'Изглед по подразбиране';
|
||||
$labels['time_format'] = 'Формат на часовете';
|
||||
$labels['timeslots'] = 'Полета на час';
|
||||
$labels['timeslots'] = 'Time slots per hour';
|
||||
$labels['first_day'] = 'Първи ден от седмицата';
|
||||
|
||||
// calendar
|
||||
$labels['first_hour'] = 'Първи час при показване';
|
||||
$labels['workinghours'] = 'Работни часове';
|
||||
$labels['add_category'] = 'Добавяне на категория';
|
||||
$labels['remove_category'] = 'Премахване на категория';
|
||||
$labels['defaultcalendar'] = 'Създаване на нови събития в ';
|
||||
$labels['eventcoloring'] = 'Оцветяване на събитията';
|
||||
$labels['coloringmode0'] = 'Според календара';
|
||||
$labels['coloringmode1'] = 'Относно категорията';
|
||||
$labels['coloringmode2'] = 'Календар за очертание, категория за съдържание';
|
||||
$labels['coloringmode3'] = 'Категория за очертание, календар за съдържание';
|
||||
$labels['calendar'] = 'Календар';
|
||||
$labels['calendars'] = 'Календари';
|
||||
$labels['category'] = 'Категория';
|
||||
$labels['categories'] = 'Категории';
|
||||
$labels['createcalendar'] = 'Създаване на нов календар';
|
||||
$labels['editcalendar'] = 'Промяна на свойствата на календара';
|
||||
$labels['name'] = 'Име';
|
||||
$labels['color'] = 'Цвят';
|
||||
$labels['day'] = 'Ден';
|
||||
$labels['week'] = 'Седмица';
|
||||
$labels['month'] = 'Месец';
|
||||
$labels['agenda'] = 'Бележник';
|
||||
$labels['new'] = 'Ново';
|
||||
$labels['new_event'] = 'Добавяне на събитие';
|
||||
$labels['edit_event'] = 'Промяна на събитие';
|
||||
$labels['edit'] = 'Промяна';
|
||||
$labels['save'] = 'Запис';
|
||||
$labels['remove'] = 'Изтриване';
|
||||
$labels['removelist'] = 'Remove from list';
|
||||
$labels['cancel'] = 'Отказ';
|
||||
$labels['select'] = 'Избиране';
|
||||
$labels['print'] = 'Печат';
|
||||
$labels['printtitle'] = 'Печат на календарите';
|
||||
$labels['title'] = 'Заглавие';
|
||||
$labels['description'] = 'Описание';
|
||||
$labels['all-day'] = 'цял ден';
|
||||
$labels['export'] = 'Запази като ICS';
|
||||
$labels['category'] = 'Категория';
|
||||
?>
|
||||
$labels['export'] = 'Извличане';
|
||||
$labels['exporttitle'] = 'Извличане към iCalendar';
|
||||
$labels['exportrange'] = 'Събития от';
|
||||
$labels['exportattachments'] = 'With attachments';
|
||||
$labels['customdate'] = 'Custom date';
|
||||
$labels['location'] = 'Местоположение';
|
||||
$labels['url'] = 'URL';
|
||||
$labels['date'] = 'Дата';
|
||||
$labels['start'] = 'Начало';
|
||||
$labels['starttime'] = 'Start time';
|
||||
$labels['end'] = 'Край';
|
||||
$labels['repeat'] = 'Repeat';
|
||||
$labels['selectdate'] = 'Избор на дата';
|
||||
$labels['freebusy'] = 'Показване като';
|
||||
$labels['free'] = 'Свободно';
|
||||
$labels['busy'] = 'Заето';
|
||||
$labels['outofoffice'] = 'Извън офиса';
|
||||
$labels['tentative'] = 'Предварително';
|
||||
$labels['status'] = 'Статус';
|
||||
$labels['status-cancelled'] = 'Cancelled';
|
||||
$labels['priority'] = 'Приоритет';
|
||||
$labels['sensitivity'] = 'Частност';
|
||||
$labels['public'] = 'публично';
|
||||
$labels['private'] = 'частно';
|
||||
$labels['confidential'] = 'конфиденциално';
|
||||
$labels['links'] = 'Reference';
|
||||
$labels['alarms'] = 'Напомняне';
|
||||
$labels['comment'] = 'Comment';
|
||||
$labels['created'] = 'Created';
|
||||
$labels['changed'] = 'Last Modified';
|
||||
$labels['unknown'] = 'Неизвестно';
|
||||
$labels['generated'] = 'генерирано в';
|
||||
$labels['removelink'] = 'Remove email reference';
|
||||
$labels['printdescriptions'] = 'Печат на описанията';
|
||||
$labels['parentcalendar'] = 'Внасяне вътре';
|
||||
$labels['searchearlierdates'] = '« Търсене за по- стари събития';
|
||||
$labels['searchlaterdates'] = 'Търсене за по- нови събития »';
|
||||
$labels['andnmore'] = '$nr повече...';
|
||||
$labels['togglerole'] = 'Click to toggle role';
|
||||
$labels['createfrommail'] = 'Запазване като събитие';
|
||||
$labels['importevents'] = 'Внасяне на събития';
|
||||
$labels['importrange'] = 'Събития от';
|
||||
$labels['onemonthback'] = '1 месец назад';
|
||||
$labels['nmonthsback'] = '$nr месеца назад';
|
||||
$labels['showurl'] = 'Показване на URL на календара';
|
||||
$labels['showurldescription'] = 'Използвайте следния адрес, за да достъпвате (само за четене) вашия календар от други приложения. Можете да копирате и поставяте това във всеки календарен софтуер, поддържащ форматът iCal';
|
||||
$labels['caldavurldescription'] = 'Copy this address to a <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a> client application (e.g. Evolution or Mozilla Thunderbird) to fully synchronize this specific calendar with your computer or mobile device.';
|
||||
$labels['searchterms'] = 'Search terms';
|
||||
$labels['calendarsubscribe'] = 'List permanently';
|
||||
$labels['listrange'] = 'Оразмеряване към екран:';
|
||||
$labels['listsections'] = 'Разделяне на:';
|
||||
$labels['smartsections'] = 'Интелигентни секции';
|
||||
$labels['until'] = 'до';
|
||||
$labels['today'] = 'Днес';
|
||||
$labels['tomorrow'] = 'Утре';
|
||||
$labels['thisweek'] = 'Тази седмица';
|
||||
$labels['nextweek'] = 'Следващата седмица';
|
||||
$labels['thismonth'] = 'Този месец';
|
||||
$labels['nextmonth'] = 'Следващия месец';
|
||||
$labels['weekofyear'] = 'Седмица';
|
||||
$labels['pastevents'] = 'Минали';
|
||||
$labels['futureevents'] = 'Бъдещи';
|
||||
$labels['showalarms'] = 'Show reminders';
|
||||
$labels['defaultalarmtype'] = 'Настройка за напомняне по подразбиране';
|
||||
$labels['defaultalarmoffset'] = 'Време за напомняне по подразбиране';
|
||||
$labels['attendee'] = 'Участник';
|
||||
$labels['role'] = 'Роля';
|
||||
$labels['availability'] = 'Avail.';
|
||||
$labels['confirmstate'] = 'Статус';
|
||||
$labels['addattendee'] = 'Добавяне на участник';
|
||||
$labels['roleorganizer'] = 'Организатор';
|
||||
$labels['rolerequired'] = 'Задължителен';
|
||||
$labels['roleoptional'] = 'По избор';
|
||||
$labels['rolechair'] = 'Chair';
|
||||
$labels['rolenonparticipant'] = 'Absent';
|
||||
$labels['cutypeindividual'] = 'Individual';
|
||||
$labels['cutypegroup'] = 'Group';
|
||||
$labels['cutyperesource'] = 'Resource';
|
||||
$labels['cutyperoom'] = 'Room';
|
||||
$labels['availfree'] = 'Свободно';
|
||||
$labels['availbusy'] = 'Заето';
|
||||
$labels['availunknown'] = 'Неизвестно';
|
||||
$labels['availtentative'] = 'Предварително';
|
||||
$labels['availoutofoffice'] = 'Извън офиса';
|
||||
$labels['delegatedto'] = 'Delegated to: ';
|
||||
$labels['delegatedfrom'] = 'Delegated from: ';
|
||||
$labels['scheduletime'] = 'Find availability';
|
||||
$labels['sendinvitations'] = 'Изпращане на покани';
|
||||
$labels['sendnotifications'] = 'Известяване на участниците относно промените';
|
||||
$labels['sendcancellation'] = 'Известяване на участниците относно отмяна на събития';
|
||||
$labels['onlyworkinghours'] = 'Find availability within my working hours';
|
||||
$labels['reqallattendees'] = 'Required/all participants';
|
||||
$labels['prevslot'] = 'Previous Slot';
|
||||
$labels['nextslot'] = 'Next Slot';
|
||||
$labels['noslotfound'] = 'Unable to find a free time slot';
|
||||
$labels['invitationsubject'] = 'You\'ve been invited to "$title"';
|
||||
$labels['invitationmailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nPlease find attached an iCalendar file with all the event details which you can import to your calendar application.";
|
||||
$labels['invitationattendlinks'] = "In case your email client doesn't support iTip requests you can use the following link to either accept or decline this invitation:\n\$url";
|
||||
$labels['eventupdatesubject'] = '"$title" has been updated';
|
||||
$labels['eventupdatesubjectempty'] = 'An event that concerns you has been updated';
|
||||
$labels['eventupdatemailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nPlease find attached an iCalendar file with the updated event details which you can import to your calendar application.";
|
||||
$labels['eventcancelsubject'] = '"$title" has been canceled';
|
||||
$labels['eventcancelmailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nThe event has been cancelled by \$organizer.\n\nPlease find attached an iCalendar file with the updated event details.";
|
||||
$labels['itipmailbodyaccepted'] = "\$sender has accepted the invitation to the following event:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
|
||||
$labels['itipmailbodytentative'] = "\$sender has tentatively accepted the invitation to the following event:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
|
||||
$labels['itipmailbodydeclined'] = "\$sender has declined the invitation to the following event:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
|
||||
$labels['itipdeclineevent'] = 'Искате ли да отхвърлите поканата за това събитие?';
|
||||
$labels['declinedeleteconfirm'] = 'Do you also want to delete this declined event from your calendar?';
|
||||
$labels['itipcomment'] = 'Invitation/notification comment';
|
||||
$labels['notanattendee'] = 'You\'re not listed as an attendee of this event';
|
||||
$labels['eventcancelled'] = 'The event has been cancelled';
|
||||
$labels['saveincalendar'] = 'запазване в';
|
||||
$labels['resource'] = 'Resource';
|
||||
$labels['resourcedetails'] = 'Details';
|
||||
$labels['tabsummary'] = 'Заглавие';
|
||||
$labels['tabrecurrence'] = 'Recurrence';
|
||||
$labels['tabattendees'] = 'Участници';
|
||||
$labels['tabattachments'] = 'Прикрепени файлове';
|
||||
$labels['tabsharing'] = 'Споделяне';
|
||||
$labels['deleteobjectconfirm'] = 'Наистина ли искате да премахнете това събитие?';
|
||||
$labels['deleteventconfirm'] = 'Наистина ли искате да премахнете това събитие?';
|
||||
$labels['deletecalendarconfirm'] = 'Наистина ли искате да премахнете този календар с всичките му събития?';
|
||||
$labels['deletecalendarconfirmrecursive'] = 'Do you really want to delete this calendar with all its events and sub-calendars?';
|
||||
$labels['savingdata'] = 'Запазване на данни...';
|
||||
$labels['errorsaving'] = 'Неуспешно записването на промените.';
|
||||
$labels['operationfailed'] = 'The requested operation failed.';
|
||||
$labels['invalideventdates'] = 'Invalid dates entered! Please check your input.';
|
||||
$labels['invalidcalendarproperties'] = 'Invalid calendar properties! Please set a valid name.';
|
||||
$labels['searchnoresults'] = 'No events found in the selected calendars.';
|
||||
$labels['successremoval'] = 'The event has been deleted successfully.';
|
||||
$labels['successrestore'] = 'The event has been restored successfully.';
|
||||
$labels['errornotifying'] = 'Failed to send notifications to event participants';
|
||||
$labels['errorimportingevent'] = 'Failed to import the event';
|
||||
$labels['newerversionexists'] = 'A newer version of this event already exists! Aborted.';
|
||||
$labels['nowritecalendarfound'] = 'No calendar found to save the event';
|
||||
$labels['importedsuccessfully'] = 'The event was successfully added to \'$calendar\'';
|
||||
$labels['attendeupdateesuccess'] = 'Successfully updated the participant\'s status';
|
||||
$labels['itipsendsuccess'] = 'Invitation sent to participants.';
|
||||
$labels['itipresponseerror'] = 'Failed to send the response to this event invitation';
|
||||
$labels['itipinvalidrequest'] = 'This invitation is no longer valid';
|
||||
$labels['sentresponseto'] = 'Successfully sent invitation response to $mailto';
|
||||
$labels['localchangeswarning'] = 'You are about to make changes that will only be reflected on your calendar and not be sent to the organizer of the event.';
|
||||
$labels['importsuccess'] = 'Successfully imported $nr events';
|
||||
$labels['importnone'] = 'No events found to be imported';
|
||||
$labels['importerror'] = 'An error occured while importing';
|
||||
$labels['aclnorights'] = 'You do not have administrator rights on this calendar.';
|
||||
$labels['changeeventconfirm'] = 'Change event';
|
||||
$labels['changerecurringeventwarning'] = 'This is a recurring event. Would you like to edit the current event only, this and all future occurences, all occurences or save it as a new event?';
|
||||
$labels['currentevent'] = 'Current';
|
||||
$labels['futurevents'] = 'Бъдещи';
|
||||
$labels['allevents'] = 'All';
|
||||
$labels['saveasnew'] = 'Save as new';
|
||||
$labels['birthdays'] = 'Birthdays';
|
||||
$labels['birthdayscalendar'] = 'Birthdays Calendar';
|
||||
$labels['displaybirthdayscalendar'] = 'Display birthdays calendar';
|
||||
$labels['birthdayscalendarsources'] = 'From these address books';
|
||||
$labels['birthdayeventtitle'] = '$name\'s Birthday';
|
||||
$labels['birthdayage'] = 'Age $age';
|
||||
?>
|
||||
|
|
267
localization/ca_ES.inc
Normal file
|
@ -0,0 +1,267 @@
|
|||
<?php
|
||||
/**
|
||||
* Localizations for Kolab Calendar plugin
|
||||
*
|
||||
* Copyright (C) 2014, Kolab Systems AG
|
||||
*
|
||||
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
|
||||
*/
|
||||
$labels['default_view'] = 'Vista per defecte';
|
||||
$labels['time_format'] = 'Format de l\'hora';
|
||||
$labels['timeslots'] = 'Espais de temps per hora';
|
||||
$labels['first_day'] = 'Primer dia de la setmana';
|
||||
$labels['first_hour'] = 'Primera hora a mostrar';
|
||||
$labels['workinghours'] = 'Hores de feina';
|
||||
$labels['add_category'] = 'Afegeix categoria';
|
||||
$labels['remove_category'] = 'Suprimeix categoria';
|
||||
$labels['defaultcalendar'] = 'Crea nous esdeveniments a';
|
||||
$labels['eventcoloring'] = 'Colors dels esdeveniments';
|
||||
$labels['coloringmode0'] = 'Depenent del calendari';
|
||||
$labels['coloringmode1'] = 'Depenent de la categoria';
|
||||
$labels['coloringmode2'] = 'Calendari pel contorn, categoria pel contingut';
|
||||
$labels['coloringmode3'] = 'Categoria pel contorn, calendari pel contingut\'';
|
||||
$labels['afternothing'] = 'No facis res';
|
||||
$labels['aftertrash'] = 'Mou a la Paperera';
|
||||
$labels['afterdelete'] = 'Suprimeix el missatge';
|
||||
$labels['afterflagdeleted'] = 'Marca\'l com a suprimit';
|
||||
$labels['aftermoveto'] = 'Mou a...';
|
||||
$labels['itipoptions'] = 'Invitacions a esdeveniments';
|
||||
$labels['afteraction'] = 'S\'envia un missatge després d\'una invitació o una actualització';
|
||||
$labels['calendar'] = 'Calendari';
|
||||
$labels['calendars'] = 'Calendaris';
|
||||
$labels['category'] = 'Categoria';
|
||||
$labels['categories'] = 'Categories';
|
||||
$labels['createcalendar'] = 'Crea un nou calendari';
|
||||
$labels['editcalendar'] = 'Edita les propietats del calendari';
|
||||
$labels['name'] = 'Nom';
|
||||
$labels['color'] = 'Color';
|
||||
$labels['day'] = 'Dia';
|
||||
$labels['week'] = 'Setmana';
|
||||
$labels['month'] = 'Mes';
|
||||
$labels['agenda'] = 'Agenda';
|
||||
$labels['new'] = 'Nou';
|
||||
$labels['new_event'] = 'Nou esdeveniment';
|
||||
$labels['edit_event'] = 'Edita esdeveniment';
|
||||
$labels['edit'] = 'Edita';
|
||||
$labels['save'] = 'Desa';
|
||||
$labels['removelist'] = 'Remove from list';
|
||||
$labels['cancel'] = 'Cancel·la';
|
||||
$labels['select'] = 'Selecciona';
|
||||
$labels['print'] = 'Imprimeix';
|
||||
$labels['printtitle'] = 'Imprimeix calendaris';
|
||||
$labels['title'] = 'Resum';
|
||||
$labels['description'] = 'Descripció';
|
||||
$labels['all-day'] = 'Tot el dia';
|
||||
$labels['export'] = 'Exporta';
|
||||
$labels['exporttitle'] = 'Exporta a iCalendari';
|
||||
$labels['exportrange'] = 'Esdeveniments de';
|
||||
$labels['exportattachments'] = 'Amb fitxers adjunts';
|
||||
$labels['customdate'] = 'Personalitza la data';
|
||||
$labels['location'] = 'Ubicació';
|
||||
$labels['url'] = 'URL';
|
||||
$labels['date'] = 'Data';
|
||||
$labels['start'] = 'Inici';
|
||||
$labels['starttime'] = 'Hora d\'inici';
|
||||
$labels['end'] = 'Final';
|
||||
$labels['endtime'] = 'Hora de finalització';
|
||||
$labels['repeat'] = 'Repeteix';
|
||||
$labels['selectdate'] = 'Tria la data';
|
||||
$labels['freebusy'] = 'Mostra\'m com';
|
||||
$labels['free'] = 'Lliure';
|
||||
$labels['busy'] = 'Ocupat';
|
||||
$labels['outofoffice'] = 'Fora de l\'oficina';
|
||||
$labels['tentative'] = 'Provisional';
|
||||
$labels['mystatus'] = 'El meu estat';
|
||||
$labels['status'] = 'Estat';
|
||||
$labels['status-confirmed'] = 'Confirmat';
|
||||
$labels['status-cancelled'] = 'Cancel·lat';
|
||||
$labels['priority'] = 'Prioritat';
|
||||
$labels['sensitivity'] = 'Privadesa';
|
||||
$labels['public'] = 'públic';
|
||||
$labels['private'] = 'privat';
|
||||
$labels['confidential'] = 'confidencial';
|
||||
$labels['links'] = 'Reference';
|
||||
$labels['alarms'] = 'Recordatori';
|
||||
$labels['comment'] = 'Comentari';
|
||||
$labels['created'] = 'Creat';
|
||||
$labels['changed'] = 'Darrera modificació';
|
||||
$labels['unknown'] = 'Desconegut';
|
||||
$labels['eventoptions'] = 'Opcions';
|
||||
$labels['generated'] = 'generat a';
|
||||
$labels['eventhistory'] = 'Historial';
|
||||
$labels['removelink'] = 'Remove email reference';
|
||||
$labels['printdescriptions'] = 'Imprimeix descripcions';
|
||||
$labels['parentcalendar'] = 'Insereix dins';
|
||||
$labels['searchearlierdates'] = '« Cerca els esdeveniments d\'abans';
|
||||
$labels['searchlaterdates'] = 'Cerca els esdeveniments de després »';
|
||||
$labels['andnmore'] = '$nr més...';
|
||||
$labels['togglerole'] = 'Feu clic per commutar el rol';
|
||||
$labels['createfrommail'] = 'Desa com a esdeveniment';
|
||||
$labels['importevents'] = 'Importa esdeveniments';
|
||||
$labels['importrange'] = 'Esdeveniments de';
|
||||
$labels['onemonthback'] = '1 mes abans';
|
||||
$labels['nmonthsback'] = '$nr mesos abans';
|
||||
$labels['showurl'] = 'Mostra la URL del calendari';
|
||||
$labels['showurldescription'] = 'Podeu fer servir aquesta adreça per accedir (només lectura) el vostre calendari des d\'altres aplicacions. Copieu i enganxeu-la dins d\'un altre programari de calendari que suporti el format iCal.';
|
||||
$labels['caldavurldescription'] = 'Copieu aquesta adreça a una aplicació client <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a> (p.ex.: Evolution o Mozilla Thunderbird) per sincronitzar aquest calendari amb el vostre ordinador o dispositiu mòbil.';
|
||||
$labels['findcalendars'] = 'Cerca calendaris...';
|
||||
$labels['searchterms'] = 'Termes de cerca';
|
||||
$labels['calsearchresults'] = 'Calendaris disponibles';
|
||||
$labels['calendarsubscribe'] = 'Llista permanentment';
|
||||
$labels['nocalendarsfound'] = 'No s\'ha trobat cap calendari';
|
||||
$labels['nrcalendarsfound'] = 'S\'han trobat $nr calendaris';
|
||||
$labels['quickview'] = 'Mostra només aquest calendari';
|
||||
$labels['invitationspending'] = 'Invitacions pendents';
|
||||
$labels['invitationsdeclined'] = 'Invitacions declinades';
|
||||
$labels['changepartstat'] = 'Canvia l\'estat d\'un participant';
|
||||
$labels['rsvpcomment'] = 'Text d\'invitació';
|
||||
$labels['listrange'] = 'Rang per mostrar:';
|
||||
$labels['listsections'] = 'Divideix en:';
|
||||
$labels['smartsections'] = 'Seccions petites';
|
||||
$labels['until'] = 'fins';
|
||||
$labels['today'] = 'Avui';
|
||||
$labels['tomorrow'] = 'Demà';
|
||||
$labels['thisweek'] = 'Aquesta setmana';
|
||||
$labels['nextweek'] = 'Setmana vinent';
|
||||
$labels['prevweek'] = 'Setmana anterior';
|
||||
$labels['thismonth'] = 'Aquest mes';
|
||||
$labels['nextmonth'] = 'Mes vinent';
|
||||
$labels['weekofyear'] = 'Setmana';
|
||||
$labels['pastevents'] = 'Passat';
|
||||
$labels['futureevents'] = 'Futur';
|
||||
$labels['showalarms'] = 'Mostra els recordatoris';
|
||||
$labels['defaultalarmtype'] = 'Recordatori per defecte';
|
||||
$labels['defaultalarmoffset'] = 'Temps de recordatori per defecte';
|
||||
$labels['attendee'] = 'Participant';
|
||||
$labels['role'] = 'Rol';
|
||||
$labels['availability'] = 'Disp.';
|
||||
$labels['confirmstate'] = 'Estat';
|
||||
$labels['addattendee'] = 'Afegeix participant';
|
||||
$labels['roleorganizer'] = 'Organitzador';
|
||||
$labels['rolerequired'] = 'Obligatori';
|
||||
$labels['roleoptional'] = 'Opcional';
|
||||
$labels['rolechair'] = 'President';
|
||||
$labels['rolenonparticipant'] = 'Absent';
|
||||
$labels['cutypeindividual'] = 'Individual';
|
||||
$labels['cutypegroup'] = 'Grup';
|
||||
$labels['cutyperesource'] = 'Recurs';
|
||||
$labels['cutyperoom'] = 'Sala';
|
||||
$labels['availfree'] = 'Lliure';
|
||||
$labels['availbusy'] = 'Ocupat';
|
||||
$labels['availunknown'] = 'Desconegut';
|
||||
$labels['availtentative'] = 'Provisional';
|
||||
$labels['availoutofoffice'] = 'Fora de l\'oficina';
|
||||
$labels['delegatedto'] = 'Delegat a:';
|
||||
$labels['delegatedfrom'] = 'Delegat de:';
|
||||
$labels['scheduletime'] = 'Cerca disponibilitat';
|
||||
$labels['sendinvitations'] = 'Envia invitacions';
|
||||
$labels['sendnotifications'] = 'Notifica als participants quan hi hagi modificacions';
|
||||
$labels['sendcancellation'] = 'Notifica als participants si es cancel·la l\'esdeveniment';
|
||||
$labels['onlyworkinghours'] = 'Cerca disponibilitat dins de les hores de feina';
|
||||
$labels['reqallattendees'] = 'Obligatori/tots els participants';
|
||||
$labels['prevslot'] = 'Lloc anterior';
|
||||
$labels['nextslot'] = 'Lloc següent';
|
||||
$labels['suggestedslot'] = 'Lloc suggerit';
|
||||
$labels['noslotfound'] = 'No s\'ha pogut trobar un espai de temps lliure';
|
||||
$labels['invitationsubject'] = 'Heu estat convidats a "$title"';
|
||||
$labels['invitationmailbody'] = "*\$title*\n\nQuan: \$date\n\nConvidats: \$attendees\n\nSi us plau cerqueu el fitxer iCalendar adjunt dins dels detalls de l'esdeveniment per poder-lo importar a la vostra aplicació de calendari.";
|
||||
$labels['invitationattendlinks'] = "En cas que el vostre client de correu electrònic no suporti peticions de tipus iTip, podeu fer servir el següent enllaç per acceptar o declinar aquesta invitació:\n\$url";
|
||||
$labels['eventupdatesubject'] = '"$title" ha estat actualitzat';
|
||||
$labels['eventupdatesubjectempty'] = 'Un esdeveniment que us afecta ha estat actualitzat';
|
||||
$labels['eventupdatemailbody'] = "*\$title*\n\nQuan: \$date\n\nConvidats: \$attendees\n\nSi us plau cerqueu el fitxer iCalendar adjunt dins dels detalls actualitzats de l'esdeveniment per poder-lo importar a la vostra aplicació de calendari.";
|
||||
$labels['eventcancelsubject'] = '"$title" ha estat cancel·lat';
|
||||
$labels['eventcancelmailbody'] = "*\$title*\n\nQuan: \$date\n\nConvidats: \$attendees\n\nL'esdeveniment ha estat cancel·lat per \$organizer.\n\nSi us plau cerqueu el fitxer iCalendar adjunt amb els detalls actualitzats de l'esdeveniment.";
|
||||
$labels['itipobjectnotfound'] = 'L\'esdeveniment que fa referència aquest missatge no s\'ha trobat al vostre calendari.';
|
||||
$labels['itipmailbodyaccepted'] = "\$sender ha acceptat la invitació al següent esdeveniment:\n\n*\$title*\n\nQuan: \$date\n\nConvidats: \$attendees";
|
||||
$labels['itipmailbodytentative'] = "\$sender ha acceptat provisionalment la invitació al següent esdeveniment:\n\n*\$title*\n\nQuan: \$date\n\nConvidats: \$attendees";
|
||||
$labels['itipmailbodydeclined'] = "\$sender ha declinat la invitació al següent esdeveniment:\n\n*\$title*\n\nQuan: \$date\n\nConvidats: \$attendees";
|
||||
$labels['itipmailbodycancel'] = "\$sender ha rebutjat la vostra participació en el següent esdeveniment:\n\n*\$title*\n\nQuan: \$date";
|
||||
$labels['itipdeclineevent'] = 'Voleu declinar la vostra invitació a aquest esdeveniment?';
|
||||
$labels['declinedeleteconfirm'] = 'Voleu també suprimir aquest esdeveniment declinat del vostre calendari?';
|
||||
$labels['itipcomment'] = 'Comentari de la invitació/notificació';
|
||||
$labels['itipcommenttitle'] = 'Aquest comentari serà adjuntat al missatge d\'invitació/notificació que s\'envia als participants';
|
||||
$labels['notanattendee'] = 'No sou a la llista d\'assistents d\'aquest esdeveniment';
|
||||
$labels['eventcancelled'] = 'L\'esdeveniment s\'ha cancel·lat.';
|
||||
$labels['saveincalendar'] = 'desa a';
|
||||
$labels['updatemycopy'] = 'Actualitza en el meu calendari';
|
||||
$labels['savetocalendar'] = 'Desa al calendari';
|
||||
$labels['resource'] = 'Recurs';
|
||||
$labels['addresource'] = 'Recurs de llibre';
|
||||
$labels['findresources'] = 'Cerca recursos';
|
||||
$labels['resourcedetails'] = 'Detalls';
|
||||
$labels['resourceavailability'] = 'Disponibilitat';
|
||||
$labels['resourceowner'] = 'Propietari';
|
||||
$labels['resourceadded'] = 'El recurs ha estat afegit al vostre esdeveniment';
|
||||
$labels['tabsummary'] = 'Resum';
|
||||
$labels['tabrecurrence'] = 'Periodicitat';
|
||||
$labels['tabattendees'] = 'Participants';
|
||||
$labels['tabresources'] = 'Recursos';
|
||||
$labels['tabattachments'] = 'Fitxers adjunts';
|
||||
$labels['tabsharing'] = 'Compartit';
|
||||
$labels['deleteobjectconfirm'] = 'Esteu segur de voler suprimir aquest esdeveniment?';
|
||||
$labels['deleteventconfirm'] = 'Esteu segur de voler suprimir aquest esdeveniment?';
|
||||
$labels['deletecalendarconfirm'] = 'Esteu segurs de voler suprimir aquest calendari amb tots els seus esdeveniments?';
|
||||
$labels['deletecalendarconfirmrecursive'] = 'Esteu segurs de voler suprimir aquest calendari amb tots els seus esdeveniments i sub-calendaris?';
|
||||
$labels['savingdata'] = 'S\'estan desant les dades...';
|
||||
$labels['errorsaving'] = 'No s\'han pogut desar els canvis.';
|
||||
$labels['operationfailed'] = 'L\'operació sol·licitada ha fallat.';
|
||||
$labels['invalideventdates'] = 'Les dades entrades no són vàlides!. Si us plau verifiqueu l\'entrada.';
|
||||
$labels['invalidcalendarproperties'] = 'Les propietats del calendari no són vàlides!. Si us plau introduïu un nom vàlid.';
|
||||
$labels['searchnoresults'] = 'No s\'ha trobat cap esdeveniment en els calendaris seleccionats.';
|
||||
$labels['successremoval'] = 'L\'esdeveniment ha estat suprimit correctament.';
|
||||
$labels['successrestore'] = 'L\'esdeveniment ha estat recuperat correctament.';
|
||||
$labels['errornotifying'] = 'No s\'ha pogut enviar les notificacions als participants de l\'esdeveniment';
|
||||
$labels['errorimportingevent'] = 'No s\'ha pogut importar aquest esdeveniment';
|
||||
$labels['importwarningexists'] = 'Ja existeix una còpia d\'aquest esdeveniment al vostre calendari.';
|
||||
$labels['newerversionexists'] = 'Ja existeix una nova versió d\'aquest esdeveniment!. S\'ha avortat.';
|
||||
$labels['nowritecalendarfound'] = 'No s\'ha trobat el calendari per desar l\'esdeveniment';
|
||||
$labels['importedsuccessfully'] = 'L\'esdeveniment ha estat correctament afegit a \'$calendar\'';
|
||||
$labels['updatedsuccessfully'] = 'L\'esdeveniment ha estat correctament actualitzat dins de \'$calendar\'';
|
||||
$labels['attendeupdateesuccess'] = 'L\'estat del participant ha estat actualitzat correctament';
|
||||
$labels['itipsendsuccess'] = 'La invitació ha estat enviada als participants.';
|
||||
$labels['itipresponseerror'] = 'No s\'ha pogut enviar la resposta a la invitació d\'aquest esdeveniment';
|
||||
$labels['itipinvalidrequest'] = 'Aquesta invitació ja no és vàlida';
|
||||
$labels['sentresponseto'] = 'S\'ha enviat correctament la resposta de la invitació a $mailto';
|
||||
$labels['localchangeswarning'] = 'Esteu a punt de fer canvis que només seran reflectits al vostre calendari i no seran enviats a l\'organitzador de l\'esdeveniment.';
|
||||
$labels['importsuccess'] = 'S\'han importat correctament $nr esdeveniments';
|
||||
$labels['importnone'] = 'No s\'ha trobat cap esdeveniment per importar';
|
||||
$labels['importerror'] = 'Hi ha hagut un error mentre s\'importava';
|
||||
$labels['aclnorights'] = 'No teniu drets d\'administrador en aquest calendari.';
|
||||
$labels['changeeventconfirm'] = 'Canvia l\'esdeveniment';
|
||||
$labels['changerecurringeventwarning'] = 'Aquest és un esdeveniment periòdic. Voleu editar només l\'esdeveniment actual, aquesta i totes les futures ocurrències, totes les ocurrències o desar-lo com un esdeveniment nou?';
|
||||
$labels['currentevent'] = 'Actual';
|
||||
$labels['futurevents'] = 'Futurs';
|
||||
$labels['allevents'] = 'Tots';
|
||||
$labels['saveasnew'] = 'Desa com a nou';
|
||||
$labels['birthdays'] = 'Aniversaris';
|
||||
$labels['birthdayscalendar'] = 'Calendari d\'aniversaris';
|
||||
$labels['displaybirthdayscalendar'] = 'Mostra el calendari d\'aniversaris';
|
||||
$labels['birthdayscalendarsources'] = 'D\'aquestes llibretes d\'adreces';
|
||||
$labels['birthdayeventtitle'] = 'Aniversari de $name';
|
||||
$labels['birthdayage'] = 'Edat $age';
|
||||
$labels['eventchangelog'] = 'Canvia historial';
|
||||
$labels['eventdiff'] = 'Canvis de revisions $rev';
|
||||
$labels['revision'] = 'Revisió';
|
||||
$labels['user'] = 'Usuari';
|
||||
$labels['operation'] = 'Acció';
|
||||
$labels['actionappend'] = 'Desat';
|
||||
$labels['actionmove'] = 'Mogut';
|
||||
$labels['actiondelete'] = 'Suprimit';
|
||||
$labels['compare'] = 'Compara';
|
||||
$labels['showrevision'] = 'Mostra aquesta versió';
|
||||
$labels['restore'] = 'Restaura aquesta versió';
|
||||
$labels['eventnotfound'] = 'No s\'han pogut carregar les dades d\'aquest esdeveniment';
|
||||
$labels['eventchangelognotavailable'] = 'No està disponible canviar l\'historial d\'aquest esdeveniment';
|
||||
$labels['eventdiffnotavailable'] = 'No és possible comparar les revisions seleccionades';
|
||||
$labels['eventrestoreconfirm'] = 'Esteu segurs de voler restaurar la revisió $rev d\'aquest esdeveniment? Això substituirà l\'actual esdeveniment per una versió antiga.';
|
||||
$labels['arialabelminical'] = 'Selecció de la data del calendari';
|
||||
$labels['arialabelcalendarview'] = 'Vista del calendari';
|
||||
$labels['arialabelsearchform'] = 'Formulari per cercar esdeveniments';
|
||||
$labels['arialabelquicksearchbox'] = 'Entrada de cerca d\'esdeveniments';
|
||||
$labels['arialabelcalsearchform'] = 'Formulari de cerca de calendaris';
|
||||
$labels['calendaractions'] = 'Accions del calendari';
|
||||
$labels['arialabeleventattendees'] = 'Llista de participants de l\'esdeveniment';
|
||||
$labels['arialabeleventresources'] = 'Llista de recursos de l\'esdeveniment';
|
||||
$labels['arialabelresourcesearchform'] = 'Formulari de cerca de recursos';
|
||||
$labels['arialabelresourceselection'] = 'Recursos disponibles';
|
||||
?>
|
|
@ -1,18 +1,15 @@
|
|||
<?php
|
||||
|
||||
$labels = array();
|
||||
|
||||
// config
|
||||
/**
|
||||
* Localizations for Kolab Calendar plugin
|
||||
*
|
||||
* Copyright (C) 2014, Kolab Systems AG
|
||||
*
|
||||
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
|
||||
*/
|
||||
$labels['default_view'] = 'Výchozí pohled';
|
||||
$labels['time_format'] = 'Formát data';
|
||||
$labels['timeslots'] = 'Slotů na hodinu';
|
||||
$labels['timeslots'] = 'Míst v rozvrhu na hodinu';
|
||||
$labels['first_day'] = 'První den v týdnu';
|
||||
|
||||
// preferences
|
||||
$labels['default_view'] = 'Výchozí pohled';
|
||||
$labels['time_format'] = 'Formát času';
|
||||
$labels['timeslots'] = 'Slotů na hodinu';
|
||||
$labels['first_day'] = 'První den týdne';
|
||||
$labels['first_hour'] = 'První hodina k zobrazení';
|
||||
$labels['workinghours'] = 'Pracovní hodiny';
|
||||
$labels['add_category'] = 'Přidat kategorii';
|
||||
|
@ -23,8 +20,13 @@ $labels['coloringmode0'] = 'Podle kalendáře';
|
|||
$labels['coloringmode1'] = 'Podle kategorie';
|
||||
$labels['coloringmode2'] = 'Kalendář pro orámování, kategorie pro obsah';
|
||||
$labels['coloringmode3'] = 'Kategorie pro orámování, kalendář pro obsah';
|
||||
|
||||
// calendar
|
||||
$labels['afternothing'] = 'Nedělat nic';
|
||||
$labels['aftertrash'] = 'Přesunout do koše';
|
||||
$labels['afterdelete'] = 'Smazat zprávu';
|
||||
$labels['afterflagdeleted'] = 'Označit jako smazané';
|
||||
$labels['aftermoveto'] = 'Přesunout do...';
|
||||
$labels['itipoptions'] = 'Pozvání na událost';
|
||||
$labels['afteraction'] = 'Poté co jsou pozvání nebo aktualizace zprávy zpracovány';
|
||||
$labels['calendar'] = 'Kalendář';
|
||||
$labels['calendars'] = 'Kalendáře';
|
||||
$labels['category'] = 'Kategorie';
|
||||
|
@ -42,7 +44,7 @@ $labels['new_event'] = 'Nová událost';
|
|||
$labels['edit_event'] = 'Upravit událost';
|
||||
$labels['edit'] = 'Upravit';
|
||||
$labels['save'] = 'Uložit';
|
||||
$labels['remove'] = 'Odstranit';
|
||||
$labels['removelist'] = 'Odstranit ze seznamu';
|
||||
$labels['cancel'] = 'Storno';
|
||||
$labels['select'] = 'Vybrat';
|
||||
$labels['print'] = 'Tisk';
|
||||
|
@ -50,40 +52,69 @@ $labels['printtitle'] = 'Vytisknout kalendáře';
|
|||
$labels['title'] = 'Souhrn';
|
||||
$labels['description'] = 'Popis';
|
||||
$labels['all-day'] = 'celý den';
|
||||
$labels['export'] = 'Exportovat do ICS';
|
||||
$labels['exporttitle'] = 'Exportovat souhrn do ICS';
|
||||
$labels['export'] = 'Uložit jako ICS';
|
||||
$labels['exporttitle'] = 'Uložit jako iCalendar';
|
||||
$labels['exportrange'] = 'Události od';
|
||||
$labels['exportattachments'] = 'S přílohami';
|
||||
$labels['customdate'] = 'Vlastní datum';
|
||||
$labels['location'] = 'Místo';
|
||||
$labels['url'] = 'URL';
|
||||
$labels['date'] = 'Datum';
|
||||
$labels['start'] = 'Začátek';
|
||||
$labels['starttime'] = 'Začáteční čas';
|
||||
$labels['end'] = 'Konec';
|
||||
$labels['endtime'] = 'Čas konce';
|
||||
$labels['repeat'] = 'Opakování';
|
||||
$labels['selectdate'] = 'Vyberte datum';
|
||||
$labels['freebusy'] = 'Zobrazovat časový úsek jako';
|
||||
$labels['freebusy'] = 'Zobrazovat mě jako';
|
||||
$labels['free'] = 'volno';
|
||||
$labels['busy'] = 'obsazeno';
|
||||
$labels['outofoffice'] = 'mimo kancelář';
|
||||
$labels['tentative'] = 'nezávazně';
|
||||
$labels['priority'] = 'Priorita';
|
||||
$labels['mystatus'] = 'Můj stav';
|
||||
$labels['status'] = 'Stav';
|
||||
$labels['status-confirmed'] = 'Potvrzeno';
|
||||
$labels['status-cancelled'] = 'Zrušeno';
|
||||
$labels['priority'] = 'Přednost';
|
||||
$labels['sensitivity'] = 'Soukromí';
|
||||
$labels['public'] = 'veřejné';
|
||||
$labels['private'] = 'soukromé';
|
||||
$labels['confidential'] = 'důvěrné';
|
||||
$labels['links'] = 'Odkaz';
|
||||
$labels['alarms'] = 'Připomenutí';
|
||||
$labels['generated'] = 'vygenerováno';
|
||||
$labels['comment'] = 'Poznámka';
|
||||
$labels['created'] = 'Vytvořeno';
|
||||
$labels['changed'] = 'Naposledy změněno';
|
||||
$labels['unknown'] = 'Neznámý';
|
||||
$labels['eventoptions'] = 'Volby';
|
||||
$labels['generated'] = 'vytvořeno';
|
||||
$labels['eventhistory'] = 'Historie';
|
||||
$labels['removelink'] = 'Odstranit odkaz na e-mail';
|
||||
$labels['printdescriptions'] = 'Vytisknout popisy';
|
||||
$labels['parentcalendar'] = 'Vložit dovnitř';
|
||||
$labels['searchearlierdates'] = '« Hledat dřívější události';
|
||||
$labels['searchlaterdates'] = 'Hledat pozdější události »';
|
||||
$labels['andnmore'] = 'dalších $nr...';
|
||||
$labels['togglerole'] = 'Klikněte k přepnutí role';
|
||||
$labels['togglerole'] = 'Klepněte k přepnutí role';
|
||||
$labels['createfrommail'] = 'Uložit jako událost';
|
||||
$labels['importevents'] = 'Importovat události';
|
||||
$labels['importevents'] = 'Zavést události';
|
||||
$labels['importrange'] = 'Události od';
|
||||
$labels['onemonthback'] = '1 měsíc nazpátek';
|
||||
$labels['nmonthsback'] = '$nr měsíců nazpátek';
|
||||
$labels['showurl'] = 'Ukázat URL kalendáře';
|
||||
$labels['showurl'] = 'Ukázat adresu (URL) kalendáře';
|
||||
$labels['showurldescription'] = 'Tuto adresu použijte pro přístup (jen ke čtení) ke kalendáři z jiných aplikací. Můžete ji zkopírovat a vložit do jakéhokoli kalendářového softwaru, který podporuje formát iCal.';
|
||||
|
||||
// agenda view
|
||||
$labels['caldavurldescription'] = 'Zkopírujte tuto adresu do aplikace <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a> klienta (např. Evolution nebo Mozilla Thunderbird) pro úplné synchronizování tohoto adresáře s vaším počítačem nebo mobilním zařízením.';
|
||||
$labels['findcalendars'] = 'Najít kalendáře...';
|
||||
$labels['searchterms'] = 'Hledané výrazy';
|
||||
$labels['calsearchresults'] = 'Dostupné kalendáře';
|
||||
$labels['calendarsubscribe'] = 'Ukazovat seznam trvale';
|
||||
$labels['nocalendarsfound'] = 'Nenalezeny žádné kalendáře';
|
||||
$labels['nrcalendarsfound'] = '$nr kalendářů nalezeno';
|
||||
$labels['quickview'] = 'Zobrazit jen tento kalendář';
|
||||
$labels['invitationspending'] = 'Pozvání čekající na vyřízení';
|
||||
$labels['invitationsdeclined'] = 'Odmítnutá pozvání';
|
||||
$labels['changepartstat'] = 'Změnit stav příjemce';
|
||||
$labels['rsvpcomment'] = 'Text pozvánky';
|
||||
$labels['listrange'] = 'Rozsah k zobrazení:';
|
||||
$labels['listsections'] = 'Rozdělit na:';
|
||||
$labels['smartsections'] = 'Chytré sekce';
|
||||
|
@ -92,18 +123,15 @@ $labels['today'] = 'Dnes';
|
|||
$labels['tomorrow'] = 'Zítra';
|
||||
$labels['thisweek'] = 'Tento týden';
|
||||
$labels['nextweek'] = 'Příští týden';
|
||||
$labels['prevweek'] = 'Předchozí týden';
|
||||
$labels['thismonth'] = 'Tento měsíc';
|
||||
$labels['nextmonth'] = 'Příští měsíc';
|
||||
$labels['weekofyear'] = 'Týden';
|
||||
$labels['pastevents'] = 'Minulost';
|
||||
$labels['futureevents'] = 'Budoucnost';
|
||||
|
||||
// alarm/reminder settings
|
||||
$labels['showalarms'] = 'Zobrazit upozornění';
|
||||
$labels['showalarms'] = 'Ukázat připomenutí';
|
||||
$labels['defaultalarmtype'] = 'Výchozí nastavení připomenutí';
|
||||
$labels['defaultalarmoffset'] = 'Výchozí čas připomenutí';
|
||||
|
||||
// attendees
|
||||
$labels['attendee'] = 'Účastník';
|
||||
$labels['role'] = 'Role';
|
||||
$labels['availability'] = 'Dost.';
|
||||
|
@ -112,67 +140,74 @@ $labels['addattendee'] = 'Přidat účastníka';
|
|||
$labels['roleorganizer'] = 'Organizátor';
|
||||
$labels['rolerequired'] = 'Povinný';
|
||||
$labels['roleoptional'] = 'Nepovinný';
|
||||
$labels['roleresource'] = 'Prostředek';
|
||||
$labels['availfree'] = 'volno';
|
||||
$labels['availbusy'] = 'obsazeno';
|
||||
$labels['availunknown'] = 'neznámý';
|
||||
$labels['availtentative'] = 'nezávazně';
|
||||
$labels['availoutofoffice'] = 'mimo kancelář';
|
||||
$labels['rolechair'] = 'Předsednictví';
|
||||
$labels['rolenonparticipant'] = 'Nepřítomný';
|
||||
$labels['cutypeindividual'] = 'Jednotlivec';
|
||||
$labels['cutypegroup'] = 'Skupina';
|
||||
$labels['cutyperesource'] = 'Zdroj';
|
||||
$labels['cutyperoom'] = 'Místnost';
|
||||
$labels['availfree'] = 'Volno';
|
||||
$labels['availbusy'] = 'Obsazeno';
|
||||
$labels['availunknown'] = 'Neznámý';
|
||||
$labels['availtentative'] = 'Nezávazně';
|
||||
$labels['availoutofoffice'] = 'Mimo kancelář';
|
||||
$labels['delegatedto'] = 'Pověřený:';
|
||||
$labels['delegatedfrom'] = 'Pověřující:';
|
||||
$labels['scheduletime'] = 'Najít dostupnost';
|
||||
$labels['sendinvitations'] = 'Poslat pozvánky';
|
||||
$labels['sendnotifications'] = 'Uvědomit účastníky o změnách';
|
||||
$labels['sendcancellation'] = 'Uvědomit účastníky o zrušení události';
|
||||
$labels['onlyworkinghours'] = 'Najít dostupnost v mé pracovní době';
|
||||
$labels['reqallattendees'] = 'Povinní/všichni účastníci';
|
||||
$labels['prevslot'] = 'Předchozí slot';
|
||||
$labels['nextslot'] = 'Další slot';
|
||||
$labels['noslotfound'] = 'Nelze najít volný slot';
|
||||
$labels['prevslot'] = 'Předchozí místo v rozvrhu';
|
||||
$labels['nextslot'] = 'Další místo v rozvrhu';
|
||||
$labels['suggestedslot'] = 'Navržené místo v rozvrhu';
|
||||
$labels['noslotfound'] = 'Nelze najít volné místo v rozvrhu';
|
||||
$labels['invitationsubject'] = 'Byl(a) jste pozván(a) na událost "$title"';
|
||||
$labels['invitationmailbody'] = "*\$title*\n\nKdy: \$date\n\nPozváni: \$attendees\n\nPodrobnosti o události najdete v přiloženém souboru typu iCalendar. Můžete si ho naimportovat do kalendářového programu.";
|
||||
$labels['invitationmailbody'] = "*\$title*\n\nKdy: \$date\n\nPozváni: \$attendees\n\nPodrobnosti o události najdete v přiloženém souboru typu iCalendar. Můžete si ho zavést do kalendářového programu.";
|
||||
$labels['invitationattendlinks'] = "Pokud váš poštovní klient nepodporuje pozvánky iTip, použijte prosím následující odkaz k potvrzení nebo odmítnutí pozvání:\n\$url";
|
||||
$labels['eventupdatesubject'] = 'Událost "$title" byla aktualizována';
|
||||
$labels['eventupdatesubjectempty'] = 'Událost, která se vás týká, byla aktualizována';
|
||||
$labels['eventupdatemailbody'] = "*\$title*\n\nKdy: \$date\n\nPozváni: \$attendees\n\nPodrobnosti o aktualizované události najdete v přiloženém souboru typu iCalendar. Můžete si ho naimportovat do kalendářového programu.";
|
||||
$labels['eventupdatemailbody'] = "*\$title*\n\nKdy: \$date\n\nPozváni: \$attendees\n\nPodrobnosti o aktualizované události najdete v přiloženém souboru typu iCalendar. Můžete si ho zavést do kalendářového programu.";
|
||||
$labels['eventcancelsubject'] = 'Událost "$title" byla zrušena';
|
||||
$labels['eventcancelmailbody'] = "*\$title*\n\nKdy: \$date\n\nPozváni: \$attendees\n\nUdálost byla zrušena organizátorem (\$organizer).\n\nPodrobnosti najdete v přiloženém souboru ve formátu iCalendar.";
|
||||
|
||||
// invitation handling
|
||||
$labels['itipinvitation'] = 'Pozvání na událost';
|
||||
$labels['itipupdate'] = 'Aktualizace události';
|
||||
$labels['itipcancellation'] = 'Zrušeno:';
|
||||
$labels['itipreply'] = 'Odpověď na';
|
||||
$labels['itipaccepted'] = 'Potvrdit';
|
||||
$labels['itiptentative'] = 'Možná';
|
||||
$labels['itipdeclined'] = 'Odmítnout';
|
||||
$labels['itipsubjectaccepted'] = '$name potvrdil(a) účas na události "$title"';
|
||||
$labels['itipsubjecttentative'] = '$name nezávazně potvrdil(a) účast na události "$title"';
|
||||
$labels['itipsubjectdeclined'] = '$name odmítl(a) účast na události "$title"';
|
||||
$labels['itipobjectnotfound'] = 'Událost, na který tato zpráva odkazuje, nebyl nalezen ve vašem kalendáři.';
|
||||
$labels['itipmailbodyaccepted'] = "\$sender přijal(a) pozvání na tuto událost:\n\n*\$title*\n\nKdy: \$date\n\nPozváni: \$attendees";
|
||||
$labels['itipmailbodytentative'] = "\$sender nezávazně přijal(a) pozvání na tuto událost:\n\n*\$title*\n\nKdy: \$date\n\nPozváni: \$attendees";
|
||||
$labels['itipmailbodydeclined'] = "\$sender odmítl(a) pozvání na tuto událost:\n\n*\$title*\n\nKdy: \$date\n\nPozváni: \$attendees";
|
||||
$labels['itipmailbodycancel'] = "\$sender odmítl vaši účast na následující události:\n\n*\$title*\n\nTermín: \$date";
|
||||
$labels['itipmailbodydelegated'] = "\$sender delegoval účast na následující události:\n\n*\$title*\n\nTermín: \$date";
|
||||
$labels['itipmailbodydelegatedto'] = "\$sender delegoval účast na následující události na vás:\n\n*\$title*\n\nTermín: \$date";
|
||||
$labels['itipdeclineevent'] = 'Opravdu chcete odmítnout pozvání na tuto událost?';
|
||||
$labels['importtocalendar'] = 'Uložit do kalendáře';
|
||||
$labels['removefromcalendar'] = 'Odstranit z kalendáře';
|
||||
$labels['updateattendeestatus'] = 'Aktualizovat stav účastníka';
|
||||
$labels['acceptinvitation'] = 'Chcete přijmout toto pozvání (potvrdit účast)?';
|
||||
$labels['youhaveaccepted'] = 'Přijal(a) jste toto pozvání';
|
||||
$labels['youhavetentative'] = 'Nezávazně jste přijal(a) toto pozvání';
|
||||
$labels['youhavedeclined'] = 'Odmítl(a) jste toto pozvání';
|
||||
$labels['declinedeleteconfirm'] = 'Chcete také ze svého kalendáře smazat tuto odmítnutou událost?';
|
||||
$labels['itipcomment'] = 'Poznámka k pozvání/oznámení';
|
||||
$labels['itipcommenttitle'] = 'Tato poznámka bude připojena ke zprávě s pozváním/oznámením poslané účastníkům';
|
||||
$labels['notanattendee'] = 'Nejste na seznamu účastníků této události';
|
||||
$labels['eventcancelled'] = 'Tato událost byla zrušena';
|
||||
$labels['saveincalendar'] = 'uložit do';
|
||||
|
||||
// event dialog tabs
|
||||
$labels['updatemycopy'] = 'Aktualizovat v mém kalendáři';
|
||||
$labels['savetocalendar'] = 'Uložit do kalenáře';
|
||||
$labels['openpreview'] = 'Ověřit kalendář';
|
||||
$labels['noearlierevents'] = 'Žádné dřívější události';
|
||||
$labels['nolaterevents'] = 'Žádné pozdější události';
|
||||
$labels['resource'] = 'Zdroj';
|
||||
$labels['addresource'] = 'Zapsat zdroj';
|
||||
$labels['findresources'] = 'Najít zdroje';
|
||||
$labels['resourcedetails'] = 'Podrobnosti';
|
||||
$labels['resourceavailability'] = 'Dostupnost';
|
||||
$labels['resourceowner'] = 'Vlastník';
|
||||
$labels['resourceadded'] = 'Zdroj byl přidán do vaší události';
|
||||
$labels['tabsummary'] = 'Souhrn';
|
||||
$labels['tabrecurrence'] = 'Opakování';
|
||||
$labels['tabattendees'] = 'Účastníci';
|
||||
$labels['tabresources'] = 'Zdroje';
|
||||
$labels['tabattachments'] = 'Přílohy';
|
||||
$labels['tabsharing'] = 'Sdílení';
|
||||
|
||||
// messages
|
||||
$labels['deleteobjectconfirm'] = 'Opravdu chcete smazat tuto událost?';
|
||||
$labels['deleteventconfirm'] = 'Opravdu chcete smazat tuto událost?';
|
||||
$labels['deletecalendarconfirm'] = 'Opravdu chcete smazat tento kalendář se všemi událostmi?';
|
||||
$labels['savingdata'] = 'Ukládám data...';
|
||||
$labels['deletecalendarconfirmrecursive'] = 'Do you really want to delete this calendar with all its events and sub-calendars?';
|
||||
$labels['savingdata'] = 'Ukládají se data...';
|
||||
$labels['errorsaving'] = 'Nelze uložit změny.';
|
||||
$labels['operationfailed'] = 'Požavovaná operace selhala.';
|
||||
$labels['invalideventdates'] = 'Vložená data nejsou platná! Zkontrolujte prosím zadávané údaje.';
|
||||
|
@ -181,55 +216,59 @@ $labels['searchnoresults'] = 'Ve vybraných kalendářích nebyly nalezeny žád
|
|||
$labels['successremoval'] = 'Událost byla úspěšně smazána.';
|
||||
$labels['successrestore'] = 'Událost byla úspěšně obnovena.';
|
||||
$labels['errornotifying'] = 'Nelze odeslat notifikace účastníkům události';
|
||||
$labels['errorimportingevent'] = 'Nelze naimportovat událost';
|
||||
$labels['errorimportingevent'] = 'Událost se nepodařilo zavést';
|
||||
$labels['importwarningexists'] = 'Kopie této události již ve vašem kalendáři existuje.';
|
||||
$labels['newerversionexists'] = 'Existuje již novější verze této události! Operace byla zrušena.';
|
||||
$labels['nowritecalendarfound'] = 'Nebyl nalezen žádný kalendář, do kterého by šlo uložit tuto událost.';
|
||||
$labels['importedsuccessfully'] = 'Událost byla úspěšně přidána do kalendáře \'$calendar\'';
|
||||
$labels['updatedsuccessfully'] = 'Událost byla úspěšně aktualizována v \'$calendar\'';
|
||||
$labels['attendeupdateesuccess'] = 'Stav účastníka byl úspěšně aktualizován';
|
||||
$labels['itipsendsuccess'] = 'Pozvánky byly rozeslány účastníkům.';
|
||||
$labels['itipresponseerror'] = 'Nelze odeslat odpověď na tuto pozvánku';
|
||||
$labels['itipinvalidrequest'] = 'Tato pozvánka již není platná';
|
||||
$labels['sentresponseto'] = 'Odpověď na pozvánku byla úspěšně odeslána na adresu $mailto';
|
||||
$labels['localchangeswarning'] = 'Chystáte se provést změny, které se projeví jen ve vašem vlastním kalendáři a nelze je poslat organizátorovi události.';
|
||||
$labels['importsuccess'] = 'Úspěšně importováno $nr událostí';
|
||||
$labels['importnone'] = 'Nebyly nalezeny žádné události k importu';
|
||||
$labels['importerror'] = 'Při importu došlo k chybě';
|
||||
$labels['localchangeswarning'] = 'Chystáte se provést změny, které se projeví jen ve vašem vlastním kalendáři a nebudou poslány organizátorovi události.';
|
||||
$labels['importsuccess'] = 'Úspěšně zavedeno $nr událostí';
|
||||
$labels['importnone'] = 'Nebyly nalezeny žádné události k zavedení';
|
||||
$labels['importerror'] = 'Při zavádění došlo k chybě';
|
||||
$labels['aclnorights'] = 'Nemáte administrátorská práva k tomuto kalendáři.';
|
||||
|
||||
// recurrence form
|
||||
$labels['repeat'] = 'Opakování';
|
||||
$labels['frequency'] = 'Opakovat';
|
||||
$labels['never'] = 'nikdy';
|
||||
$labels['daily'] = 'denně';
|
||||
$labels['weekly'] = 'týdně';
|
||||
$labels['monthly'] = 'měsíčně';
|
||||
$labels['yearly'] = 'ročně';
|
||||
$labels['every'] = 'Každý';
|
||||
$labels['days'] = 'den (dny)';
|
||||
$labels['weeks'] = 'týden (týdny)';
|
||||
$labels['months'] = 'měsíc(e/ů)';
|
||||
$labels['years'] = 'rok(y/ů) v:';
|
||||
$labels['bydays'] = ' ';
|
||||
$labels['untildate'] = 'do';
|
||||
$labels['each'] = 'Každý';
|
||||
$labels['onevery'] = 'Vždy v';
|
||||
$labels['onsamedate'] = 'Ve stejné datum';
|
||||
$labels['forever'] = 'trvale';
|
||||
$labels['recurrencend'] = 'do';
|
||||
$labels['forntimes'] = 'jen $nrkrát';
|
||||
$labels['first'] = 'první';
|
||||
$labels['second'] = 'druhý';
|
||||
$labels['third'] = 'třetí';
|
||||
$labels['fourth'] = 'čtvrtý';
|
||||
$labels['last'] = 'poslední';
|
||||
$labels['dayofmonth'] = 'Den v měsíci';
|
||||
|
||||
$labels['changeeventconfirm'] = 'Změnit událost';
|
||||
$labels['removeeventconfirm'] = 'Odstranit událost';
|
||||
$labels['removeeventconfirm'] = 'Smazat událost';
|
||||
$labels['changerecurringeventwarning'] = 'Toto je opakovaná událost. Chcete upravit jen toto konání, toto a všechna následující konání, úplně všechna konání nebo uložit událost jako novou?';
|
||||
$labels['removerecurringeventwarning'] = 'Toto je opakovaná událost. Chcete odstranit jen toto konání, toto a následující konání nebo úplně všechna konání této události?';
|
||||
$labels['currentevent'] = 'Aktuální';
|
||||
$labels['removerecurringeventwarning'] = 'Toto je opakovaná událost. Chcete smazat jen toto konání, toto a všechna následující konání, nebo úplně všechna konání?';
|
||||
$labels['currentevent'] = 'Nynější';
|
||||
$labels['futurevents'] = 'Budoucí';
|
||||
$labels['allevents'] = 'Všechny';
|
||||
$labels['allevents'] = 'Vše';
|
||||
$labels['saveasnew'] = 'Uložit jako novou';
|
||||
|
||||
$labels['birthdays'] = 'Narozeniny';
|
||||
$labels['birthdayscalendar'] = 'Kalendář narozenin';
|
||||
$labels['displaybirthdayscalendar'] = 'Zobrazit kalendář narozenin';
|
||||
$labels['birthdayscalendarsources'] = 'Z těchto adresářů';
|
||||
$labels['birthdayeventtitle'] = 'Narozeniny $name';
|
||||
$labels['birthdayage'] = 'Věk $age';
|
||||
$labels['eventchangelog'] = 'Historie změn';
|
||||
$labels['eventdiff'] = 'Změny od verze $rev';
|
||||
$labels['revision'] = 'Verze';
|
||||
$labels['user'] = 'Uživatel';
|
||||
$labels['operation'] = 'Činnost';
|
||||
$labels['actionappend'] = 'Uloženo';
|
||||
$labels['actionmove'] = 'Přesunuto';
|
||||
$labels['actiondelete'] = 'Smazáno';
|
||||
$labels['compare'] = 'Porovnat';
|
||||
$labels['showrevision'] = 'Ukázat tuto verzi';
|
||||
$labels['restore'] = 'Obnovit tuto verzi';
|
||||
$labels['eventnotfound'] = 'Nepodařilo se nahrát data události';
|
||||
$labels['eventchangelognotavailable'] = 'Historie změn není pro tuto událost dostupná';
|
||||
$labels['eventdiffnotavailable'] = 'Pro vybrané verze není žádné srovnání možné';
|
||||
$labels['eventrestoreconfirm'] = 'Opravdu chcete obnovit změnu $rev této události? Tímto dojde k nahrazení nynější události starou verzí.';
|
||||
$labels['arialabelminical'] = 'Výběr data v kalendáři';
|
||||
$labels['arialabelcalendarview'] = 'Pohled na kalendář';
|
||||
$labels['arialabelsearchform'] = 'Hledání události';
|
||||
$labels['arialabelquicksearchbox'] = 'Zadání hledání události';
|
||||
$labels['arialabelcalsearchform'] = 'Hledání kalendářů';
|
||||
$labels['calendaractions'] = 'Činnosti v kalendáři';
|
||||
$labels['arialabeleventattendees'] = 'Seznam účastníků události';
|
||||
$labels['arialabeleventresources'] = 'Seznam zdrojů události';
|
||||
$labels['arialabelresourcesearchform'] = 'Hledání zdrojů';
|
||||
$labels['arialabelresourceselection'] = 'Dostupné zdroje';
|
||||
?>
|
||||
|
|
204
localization/da_DK.inc
Normal file
|
@ -0,0 +1,204 @@
|
|||
<?php
|
||||
/**
|
||||
* Localizations for Kolab Calendar plugin
|
||||
*
|
||||
* Copyright (C) 2014, Kolab Systems AG
|
||||
*
|
||||
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
|
||||
*/
|
||||
$labels['default_view'] = 'Standardvisning';
|
||||
$labels['time_format'] = 'Tidsformat';
|
||||
$labels['first_day'] = 'Første ugedag';
|
||||
$labels['first_hour'] = 'Første time som vises';
|
||||
$labels['workinghours'] = 'Arbejdstider';
|
||||
$labels['add_category'] = 'Tilføj kategori';
|
||||
$labels['remove_category'] = 'Fjern kategori';
|
||||
$labels['defaultcalendar'] = 'Opret nye arragementer i';
|
||||
$labels['eventcoloring'] = 'Farver for arrangementer';
|
||||
$labels['coloringmode0'] = 'Ifølge kalender';
|
||||
$labels['coloringmode1'] = 'Ifølge kategori';
|
||||
$labels['coloringmode2'] = 'Kalender til oversigt, kategori til indhold';
|
||||
$labels['coloringmode3'] = 'Kategori til oversigt, kalender til indhold';
|
||||
$labels['calendar'] = 'Kalender';
|
||||
$labels['calendars'] = 'Kalendere';
|
||||
$labels['category'] = 'Kategori';
|
||||
$labels['categories'] = 'Kategorier';
|
||||
$labels['createcalendar'] = 'Opret ny kalender';
|
||||
$labels['editcalendar'] = 'Redigér kalenderegenskaber';
|
||||
$labels['name'] = 'Navn';
|
||||
$labels['color'] = 'Farve';
|
||||
$labels['day'] = 'Dag';
|
||||
$labels['week'] = 'Uge';
|
||||
$labels['month'] = 'Måned';
|
||||
$labels['agenda'] = 'Dagsorden';
|
||||
$labels['new'] = 'Ny';
|
||||
$labels['new_event'] = 'Nyt arrangement';
|
||||
$labels['edit_event'] = 'Redigér arrangement';
|
||||
$labels['edit'] = 'Redigér';
|
||||
$labels['save'] = 'Gem';
|
||||
$labels['removelist'] = 'Remove from list';
|
||||
$labels['cancel'] = 'Annullér';
|
||||
$labels['select'] = 'Vælg';
|
||||
$labels['print'] = 'Udskriv';
|
||||
$labels['printtitle'] = 'Udskriv kalendere';
|
||||
$labels['title'] = 'Resumé';
|
||||
$labels['description'] = 'Beskrivelse';
|
||||
$labels['all-day'] = 'hele-dagen';
|
||||
$labels['export'] = 'Eksport';
|
||||
$labels['exporttitle'] = 'Eksportér til iCalendar';
|
||||
$labels['exportrange'] = 'Arrangementer fra';
|
||||
$labels['exportattachments'] = 'Med vedhæftninger';
|
||||
$labels['customdate'] = 'Brugerdefineret dato';
|
||||
$labels['location'] = 'Placering';
|
||||
$labels['url'] = 'URL';
|
||||
$labels['date'] = 'Dato';
|
||||
$labels['start'] = 'Start';
|
||||
$labels['starttime'] = 'Start time';
|
||||
$labels['end'] = 'Slut';
|
||||
$labels['repeat'] = 'Gentag';
|
||||
$labels['selectdate'] = 'Vælg dato';
|
||||
$labels['freebusy'] = 'Vis mig som';
|
||||
$labels['free'] = 'Ledig';
|
||||
$labels['busy'] = 'Optaget';
|
||||
$labels['outofoffice'] = 'Ikke på kontoret';
|
||||
$labels['tentative'] = 'Forsøgsvis';
|
||||
$labels['status'] = 'Status';
|
||||
$labels['status-confirmed'] = 'Bekræftet';
|
||||
$labels['status-cancelled'] = 'Annulleret';
|
||||
$labels['priority'] = 'Prioritet';
|
||||
$labels['sensitivity'] = 'Privatliv';
|
||||
$labels['public'] = 'offentlig';
|
||||
$labels['private'] = 'privat';
|
||||
$labels['confidential'] = 'fortrolig';
|
||||
$labels['links'] = 'Reference';
|
||||
$labels['alarms'] = 'Påmindelse';
|
||||
$labels['comment'] = 'Comment';
|
||||
$labels['created'] = 'Created';
|
||||
$labels['changed'] = 'Last Modified';
|
||||
$labels['unknown'] = 'Ukendt';
|
||||
$labels['eventoptions'] = 'Tilvalg';
|
||||
$labels['generated'] = 'oprettet per';
|
||||
$labels['removelink'] = 'Remove email reference';
|
||||
$labels['printdescriptions'] = 'Udskriv beskrivelser';
|
||||
$labels['parentcalendar'] = 'Indsæt indeni';
|
||||
$labels['searchearlierdates'] = '« Søg efter tidligere arrangementer';
|
||||
$labels['searchlaterdates'] = 'Søg efter senere arrangementer »';
|
||||
$labels['andnmore'] = '$nr flere...';
|
||||
$labels['togglerole'] = 'Klik for at vise eller skjule rolle';
|
||||
$labels['createfrommail'] = 'Gem som arrangement';
|
||||
$labels['importevents'] = 'Importér arrangement';
|
||||
$labels['importrange'] = 'Arrangementer fra';
|
||||
$labels['onemonthback'] = '1 måned tilbage';
|
||||
$labels['nmonthsback'] = '$nr måneder tilbage';
|
||||
$labels['showurl'] = 'Vis kalenderens URL';
|
||||
$labels['showurldescription'] = 'Brug følgende adresse for at tilgå din kalender (skrivebeskyttet) fra andre programmer. Du kan kopiere og indsætet denne i ethvert kalenderprogram, der understøtter iCal-formatet.';
|
||||
$labels['caldavurldescription'] = 'Kopiér denne adresse til en <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a>-klientprogram (eks. Evolution eller Mozilla Thunderbird) for at synkronisere denne kalender komplet med din computer eller mobilenhed.';
|
||||
$labels['searchterms'] = 'Search terms';
|
||||
$labels['calendarsubscribe'] = 'List permanently';
|
||||
$labels['listrange'] = 'Interval som skal vises:';
|
||||
$labels['listsections'] = 'Del op i:';
|
||||
$labels['smartsections'] = 'Smarte sektioner';
|
||||
$labels['until'] = 'indtil';
|
||||
$labels['today'] = 'I dag';
|
||||
$labels['tomorrow'] = 'I morgen';
|
||||
$labels['thisweek'] = 'Denne uge';
|
||||
$labels['nextweek'] = 'Næste uge';
|
||||
$labels['thismonth'] = 'Denne måned';
|
||||
$labels['nextmonth'] = 'Næste måned';
|
||||
$labels['weekofyear'] = 'Uge';
|
||||
$labels['pastevents'] = 'Tidligere';
|
||||
$labels['futureevents'] = 'Fremtid';
|
||||
$labels['showalarms'] = 'Show reminders';
|
||||
$labels['defaultalarmtype'] = 'Standardindstilling for påmindelse';
|
||||
$labels['defaultalarmoffset'] = 'Standardtidspunkt for påmindelse';
|
||||
$labels['attendee'] = 'Deltager';
|
||||
$labels['role'] = 'Rolle';
|
||||
$labels['availability'] = 'Tilg.';
|
||||
$labels['confirmstate'] = 'Status';
|
||||
$labels['addattendee'] = 'Tilføj deltager';
|
||||
$labels['roleorganizer'] = 'Organisator';
|
||||
$labels['rolerequired'] = 'Påkrævet';
|
||||
$labels['roleoptional'] = 'Valgfri';
|
||||
$labels['rolechair'] = 'Formand';
|
||||
$labels['cutypeindividual'] = 'Individuel';
|
||||
$labels['cutypegroup'] = 'Gruppe';
|
||||
$labels['cutyperesource'] = 'Ressource';
|
||||
$labels['cutyperoom'] = 'Lokale';
|
||||
$labels['availfree'] = 'Ledig';
|
||||
$labels['availbusy'] = 'Optaget';
|
||||
$labels['availunknown'] = 'Ukendt';
|
||||
$labels['availtentative'] = 'Forsøgsvis';
|
||||
$labels['availoutofoffice'] = 'Ikke på kontoret';
|
||||
$labels['delegatedto'] = 'Delegated to: ';
|
||||
$labels['delegatedfrom'] = 'Delegated from: ';
|
||||
$labels['scheduletime'] = 'Find ledigt tidspunkt';
|
||||
$labels['sendinvitations'] = 'Send invitationer';
|
||||
$labels['sendnotifications'] = 'Gør deltagere opmærksom på ændringer';
|
||||
$labels['sendcancellation'] = 'Giv deltagere besked om aflysning af arrangementer';
|
||||
$labels['onlyworkinghours'] = 'Find ledigt tidspunkt inden for mine arbejdstider';
|
||||
$labels['reqallattendees'] = 'Påkrævet/alle deltagere';
|
||||
$labels['prevslot'] = 'Forrige blok';
|
||||
$labels['nextslot'] = 'Næste blok';
|
||||
$labels['noslotfound'] = 'Kunne ikke finde en ledig tidsblok';
|
||||
$labels['invitationsubject'] = 'Du er blevet inviteret til "$title"';
|
||||
$labels['invitationmailbody'] = "*\$title*\n\nTidspunkt: \$date\n\nInviterede: \$attendees\n\nBemærk venligst vedhæftede iCalendar-fil med alle detaljer om arrangementet, som du kan importere til dit kalenderprogram.";
|
||||
$labels['invitationattendlinks'] = "Hvis dit e-postprogram ikke understøtter iTip-forespørgsler, så kan du benytte følgende henvisning til enten at acceptere eller afvise denne invitation:\n\$url";
|
||||
$labels['eventupdatesubject'] = '"$title" er blevet opdateret';
|
||||
$labels['eventupdatesubjectempty'] = 'Et arrangement der vedrører dig er blevet opdateret';
|
||||
$labels['eventupdatemailbody'] = "*\$title*\n\nTidspunkt: \$date\n\nInviterede: \$attendees\n\nBemærk venligst vedhæftede iCalendar-fil med alle detaljer om arrangementet, som du kan importere til dit kalenderprogram.";
|
||||
$labels['eventcancelsubject'] = '"$title" er blevet aflyst';
|
||||
$labels['eventcancelmailbody'] = "*\$title*\n\nTidspunkt: \$date\n\nInviterede: \$attendees\n\nDette arrangement er blevet aflyst af \$organizer.\n\nBemærk venligst vedhæftede iCalendard-fil med de opdaterede detaljer om arrangementet.";
|
||||
$labels['itipmailbodyaccepted'] = "\$sender har accepteret invitationen til det følgende arrangement:\n\n*\$title*\n\nTidspunkt: \$date\n\nInviterede: \$attendees";
|
||||
$labels['itipmailbodytentative'] = "\$sender har forsøgsvist accepteret invitationen til det følgende arrangement:\n\n*\$title*\n\nTidspunkt: \$date\n\nInviterede: \$attendees";
|
||||
$labels['itipmailbodydeclined'] = "\$sender har afvist invitationen til det følgende arrangement:\n\n*\$title*\n\nTidspunkt: \$date\n\nInviterede: \$attendees";
|
||||
$labels['itipdeclineevent'] = 'Sikker på at du vil afvise dette arrangement?';
|
||||
$labels['declinedeleteconfirm'] = 'Vil du også slette dette afviste arrangement fra din kalender?';
|
||||
$labels['itipcomment'] = 'Invitation/notification comment';
|
||||
$labels['notanattendee'] = 'Du er ikke opført som deltager for dette arrangement';
|
||||
$labels['eventcancelled'] = 'Arrangementet er blevet aflyst';
|
||||
$labels['saveincalendar'] = 'gem i';
|
||||
$labels['resource'] = 'Ressource';
|
||||
$labels['resourcedetails'] = 'Detaljer';
|
||||
$labels['tabsummary'] = 'Resumé';
|
||||
$labels['tabrecurrence'] = 'Gentagelse';
|
||||
$labels['tabattendees'] = 'Deltagere';
|
||||
$labels['tabresources'] = 'Ressourcer';
|
||||
$labels['tabattachments'] = 'Vedhæftninger';
|
||||
$labels['tabsharing'] = 'Deling';
|
||||
$labels['deleteobjectconfirm'] = 'Sikker på at du vil slette dette arrangement?';
|
||||
$labels['deleteventconfirm'] = 'Sikker på at du vil slette dette arrangement?';
|
||||
$labels['deletecalendarconfirm'] = 'Sikker på at du vil slette denne kalender med alle dets arrangementer?';
|
||||
$labels['deletecalendarconfirmrecursive'] = 'Sikker på du vil slette denne kalender med alle dens arrangementer og delkalendere?';
|
||||
$labels['savingdata'] = 'Gemmer data...';
|
||||
$labels['errorsaving'] = 'Kunne ikke gemme ændringer.';
|
||||
$labels['operationfailed'] = 'Den forespurgte handling mislykkedes.';
|
||||
$labels['invalideventdates'] = 'Ugyldig dato indtastet! Tjek venligst dit input.';
|
||||
$labels['invalidcalendarproperties'] = 'Ugyldige kalenderegenskaber! Angiv venligst et gyldigt navn.';
|
||||
$labels['searchnoresults'] = 'Der blev ikke fundet arrangementer i de valgte kalendere.';
|
||||
$labels['successremoval'] = 'Sletning af arrangementet blev gennemført.';
|
||||
$labels['successrestore'] = 'Gendannelse af arrangementet blev gennemført.';
|
||||
$labels['errornotifying'] = 'Kunne ikke sende notifikation til arrangementets deltagere';
|
||||
$labels['errorimportingevent'] = 'Kunne ikke importere arrangementet';
|
||||
$labels['newerversionexists'] = 'Der findes allerede en nyere version af arrangementet! Afbrød.';
|
||||
$labels['nowritecalendarfound'] = 'Ingen funden kalender til lagring af arrangementet';
|
||||
$labels['importedsuccessfully'] = 'Arrangementet blev tilføjet til \'$calendar\'';
|
||||
$labels['attendeupdateesuccess'] = 'Opdatering af deltagernes status blev gennemført';
|
||||
$labels['itipsendsuccess'] = 'Invitation blev sendt til deltagerne.';
|
||||
$labels['itipresponseerror'] = 'Kunne ikke sende svar til denne arrangementsinvitation';
|
||||
$labels['itipinvalidrequest'] = 'Denne invitation er ikke længere gyldig';
|
||||
$labels['sentresponseto'] = 'Gennemførte afsendelse af invitationssvar til $mailto';
|
||||
$labels['localchangeswarning'] = 'Du er i færd med at foretage ændringer, der vil påvirke din kalender og som ikke vil blive sendt til afholderen af arrangementet.';
|
||||
$labels['importsuccess'] = 'Gennemførte import af $nr arrangementer';
|
||||
$labels['importnone'] = 'Fandt ingen arrangementer som kunne importeres';
|
||||
$labels['importerror'] = 'Der opstod en fejl under import';
|
||||
$labels['aclnorights'] = 'Du har ikke administratorrettigheder for denne kalender.';
|
||||
$labels['changeeventconfirm'] = 'Tilpas arrangement';
|
||||
$labels['changerecurringeventwarning'] = 'Dette er et tilbagevendende arrangement. Ønsker du kun at redige det aktuelle arrangement, dette og alle fremtidige forekomster, alle forekomster eller gemme det som et nyt arrangement?';
|
||||
$labels['currentevent'] = 'Nuværende';
|
||||
$labels['futurevents'] = 'Fremtid';
|
||||
$labels['allevents'] = 'Alle';
|
||||
$labels['saveasnew'] = 'Gem som ny';
|
||||
$labels['user'] = 'Bruger';
|
||||
$labels['actiondelete'] = 'Slettet';
|
||||
$labels['compare'] = 'Sammenlign';
|
||||
?>
|
|
@ -1,11 +1,14 @@
|
|||
<?php
|
||||
|
||||
$labels = array();
|
||||
|
||||
// preferences
|
||||
/**
|
||||
* Localizations for Kolab Calendar plugin
|
||||
*
|
||||
* Copyright (C) 2014, Kolab Systems AG
|
||||
*
|
||||
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
|
||||
*/
|
||||
$labels['default_view'] = 'Ansicht';
|
||||
$labels['time_format'] = 'Zeitformatierung';
|
||||
$labels['timeslots'] = 'Zeitraster pro Stunde';
|
||||
$labels['timeslots'] = 'Time slots per hour';
|
||||
$labels['first_day'] = 'Erster Wochentag';
|
||||
$labels['first_hour'] = 'Erste angezeigte Stunde';
|
||||
$labels['workinghours'] = 'Arbeitszeiten';
|
||||
|
@ -17,8 +20,6 @@ $labels['coloringmode0'] = 'Farbe des Kalenders';
|
|||
$labels['coloringmode1'] = 'Farbe der Kategorie';
|
||||
$labels['coloringmode2'] = 'Kalenderfarbe aussen, Kategoriefarbe innen';
|
||||
$labels['coloringmode3'] = 'Kategoriefarbe aussen, Kalenderfarbe innen';
|
||||
|
||||
// calendar
|
||||
$labels['calendar'] = 'Kalender';
|
||||
$labels['calendars'] = 'Kalender';
|
||||
$labels['category'] = 'Kategorie';
|
||||
|
@ -36,7 +37,7 @@ $labels['new_event'] = 'Neuer Termin';
|
|||
$labels['edit_event'] = 'Termin bearbeiten';
|
||||
$labels['edit'] = 'Bearbeiten';
|
||||
$labels['save'] = 'Speichern';
|
||||
$labels['remove'] = 'Entfernen';
|
||||
$labels['removelist'] = 'Remove from list';
|
||||
$labels['cancel'] = 'Abbrechen';
|
||||
$labels['select'] = 'Auswählen';
|
||||
$labels['print'] = 'Drucken';
|
||||
|
@ -47,24 +48,31 @@ $labels['all-day'] = 'ganztägig';
|
|||
$labels['export'] = 'Exportieren';
|
||||
$labels['exporttitle'] = 'Kalender als iCalendar exportieren';
|
||||
$labels['exportrange'] = 'Termine ab';
|
||||
$labels['exportattachments'] = 'Mit Anhängen';
|
||||
$labels['customdate'] = 'Eigenes Datum';
|
||||
$labels['exportattachments'] = 'With attachments';
|
||||
$labels['customdate'] = 'Custom date';
|
||||
$labels['location'] = 'Ort';
|
||||
$labels['url'] = 'URL';
|
||||
$labels['date'] = 'Datum';
|
||||
$labels['start'] = 'Beginn';
|
||||
$labels['end'] = 'Ende';
|
||||
$labels['repeat'] = 'Wiederholung';
|
||||
$labels['selectdate'] = 'Datum auswählen';
|
||||
$labels['freebusy'] = 'Zeige mich als';
|
||||
$labels['free'] = 'Frei';
|
||||
$labels['busy'] = 'Gebucht';
|
||||
$labels['outofoffice'] = 'Abwesend';
|
||||
$labels['tentative'] = 'Mit Vorbehalt';
|
||||
$labels['status'] = 'Status';
|
||||
$labels['status-confirmed'] = 'Bestätigt';
|
||||
$labels['status-cancelled'] = 'Gekündigt';
|
||||
$labels['priority'] = 'Priorität';
|
||||
$labels['sensitivity'] = 'Sichtbarkeit';
|
||||
$labels['public'] = 'öffentlich';
|
||||
$labels['private'] = 'privat';
|
||||
$labels['confidential'] = 'vertraulich';
|
||||
$labels['alarms'] = 'Erinnerung';
|
||||
$labels['comment'] = 'Kommentar';
|
||||
$labels['unknown'] = 'Unbekannt';
|
||||
$labels['generated'] = 'erstellt am';
|
||||
$labels['printdescriptions'] = 'Beschrieb drucken';
|
||||
$labels['parentcalendar'] = 'Erstellen in';
|
||||
|
@ -79,9 +87,9 @@ $labels['onemonthback'] = '1 Monat zurück';
|
|||
$labels['nmonthsback'] = '$nr Monate zurück';
|
||||
$labels['showurl'] = 'URL anzeigen';
|
||||
$labels['showurldescription'] = 'Über die folgende Adresse können Sie mit einem beliebigen Kalenderprogramm Ihren Kalender abrufen (nur lesend), sofern dieses das iCal-Format unterstützt.';
|
||||
$labels['caldavurldescription'] = 'Benutzen Sie folgende Addresse in einer <a href="http://de.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a>-Anwendung (wie z.B. Evolution oder Mozilla Thunderbird) um diesen spezifischen Kalender mit dem Computer oder Mobiltelefon zu synchronisieren.';
|
||||
|
||||
// agenda view
|
||||
$labels['caldavurldescription'] = 'Copy this address to a <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a> client application (e.g. Evolution or Mozilla Thunderbird) to fully synchronize this specific calendar with your computer or mobile device.';
|
||||
$labels['searchterms'] = 'Search terms';
|
||||
$labels['calendarsubscribe'] = 'List permanently';
|
||||
$labels['listrange'] = 'Angezeigter Bereich:';
|
||||
$labels['listsections'] = 'Unterteilung:';
|
||||
$labels['smartsections'] = 'Intelligent';
|
||||
|
@ -95,13 +103,9 @@ $labels['nextmonth'] = 'Nächsten Monat';
|
|||
$labels['weekofyear'] = 'KW';
|
||||
$labels['pastevents'] = 'Vergangene';
|
||||
$labels['futureevents'] = 'Zukünftige';
|
||||
|
||||
// alarm/reminder settings
|
||||
$labels['showalarms'] = 'Erinnerungen anzeigen';
|
||||
$labels['showalarms'] = 'Show reminders';
|
||||
$labels['defaultalarmtype'] = 'Standard-Erinnerungseinstellung';
|
||||
$labels['defaultalarmoffset'] = 'Standard-Erinnerungszeit';
|
||||
|
||||
// attendees
|
||||
$labels['attendee'] = 'Teilnehmer';
|
||||
$labels['role'] = 'Rolle';
|
||||
$labels['availability'] = 'Verfüg.';
|
||||
|
@ -110,7 +114,12 @@ $labels['addattendee'] = 'Hinzufügen';
|
|||
$labels['roleorganizer'] = 'Organisator';
|
||||
$labels['rolerequired'] = 'Erforderlich';
|
||||
$labels['roleoptional'] = 'Optional';
|
||||
$labels['rolechair'] = 'Vorsitz';
|
||||
$labels['rolechair'] = 'Chair';
|
||||
$labels['rolenonparticipant'] = 'Absent';
|
||||
$labels['cutypeindividual'] = 'Individual';
|
||||
$labels['cutypegroup'] = 'Group';
|
||||
$labels['cutyperesource'] = 'Ressource';
|
||||
$labels['cutyperoom'] = 'Room';
|
||||
$labels['availfree'] = 'Frei';
|
||||
$labels['availbusy'] = 'Gebucht';
|
||||
$labels['availunknown'] = 'Unbekannt';
|
||||
|
@ -133,45 +142,25 @@ $labels['eventupdatesubjectempty'] = 'Termin wurde aktualisiert';
|
|||
$labels['eventupdatemailbody'] = "*\$title*\n\nWann: \$date\n\nTeilnehmer: \$attendees\n\nIm Anhang finden Sie eine iCalendar-Datei mit den aktualisiereten Termindaten. Diese können Sie in Ihre Kalenderanwendung importieren.";
|
||||
$labels['eventcancelsubject'] = '"$title" wurde abgesagt';
|
||||
$labels['eventcancelmailbody'] = "*\$title*\n\nWann: \$date\n\nTeilnehmer: \$attendees\n\nDer Termin wurde von \$organizer abgesagt.\n\nIm Anhang finden Sie eine iCalendar-Datei mit den Termindaten.";
|
||||
|
||||
// invitation handling
|
||||
$labels['itipinvitation'] = 'Einladung zu';
|
||||
$labels['itipreply'] = 'Antwort zu';
|
||||
$labels['itipupdate'] = 'Aktialisiert:';
|
||||
$labels['itipcancellation'] = 'Abgesagt:';
|
||||
$labels['itipaccepted'] = 'Akzeptieren';
|
||||
$labels['itiptentative'] = 'Mit Vorbehalt';
|
||||
$labels['itipdeclined'] = 'Ablehnen';
|
||||
$labels['itipsubjectaccepted'] = 'Einladung zu "$title" wurde von $name angenommen';
|
||||
$labels['itipsubjecttentative'] = 'Einladung zu "$title" wurde von $name mit Vorbehalt angenommen';
|
||||
$labels['itipsubjectdeclined'] = 'Einladung zu "$title" wurde von $name abgelehnt';
|
||||
$labels['itipmailbodyaccepted'] = "\$sender hat die Einladung zum folgenden Termin angenommen:\n\n*\$title*\n\nWann: \$date\n\nTeilnehmer: \$attendees";
|
||||
$labels['itipmailbodytentative'] = "\$sender hat die Einladung mit Vorbehalt zum folgenden Termin angenommen:\n\n*\$title*\n\nWann: \$date\n\nTeilnehmer: \$attendees";
|
||||
$labels['itipmailbodydeclined'] = "\$sender hat die Einladung zum folgenden Termin abgelehnt:\n\n*\$title*\n\nWann: \$date\n\nTeilnehmer: \$attendees";
|
||||
$labels['itipdeclineevent'] = 'Möchten Sie die Einladung zu diesem Termin ablehnen?';
|
||||
$labels['declinedeleteconfirm'] = 'Möchten Sie den abgelehnten Termin ebenfalls aus Ihrem Kalender löschen?';
|
||||
$labels['importtocalendar'] = 'In Kalender übernehmen';
|
||||
$labels['removefromcalendar'] = 'Aus meinem Kalender löschen';
|
||||
$labels['updateattendeestatus'] = 'Teilnehmerstatus aktualisieren';
|
||||
$labels['acceptinvitation'] = 'Möchten Sie die Einladung zu diesem Termin annehmen?';
|
||||
$labels['youhaveaccepted'] = 'Sie haben die Einladung angenommen';
|
||||
$labels['youhavetentative'] = 'Sie haben die Einladung mit Vorbehalt angenommen';
|
||||
$labels['youhavedeclined'] = 'Sie haben die Einladung abgelehnt';
|
||||
$labels['declinedeleteconfirm'] = 'Do you also want to delete this declined event from your calendar?';
|
||||
$labels['notanattendee'] = 'Sie sind nicht in der Liste der Teilnehmer aufgeführt';
|
||||
$labels['eventcancelled'] = 'Der Termin wurde vom Organisator abgesagt';
|
||||
$labels['saveincalendar'] = 'speichern in';
|
||||
|
||||
// event dialog tabs
|
||||
$labels['resource'] = 'Ressource';
|
||||
$labels['resourcedetails'] = 'Details';
|
||||
$labels['tabsummary'] = 'Übersicht';
|
||||
$labels['tabrecurrence'] = 'Wiederholung';
|
||||
$labels['tabattendees'] = 'Teilnehmer';
|
||||
$labels['tabattachments'] = 'Anhänge';
|
||||
$labels['tabsharing'] = 'Freigabe';
|
||||
|
||||
// messages
|
||||
$labels['deleteobjectconfirm'] = 'Möchten Sie diesen Termin wirklich löschen?';
|
||||
$labels['deleteventconfirm'] = 'Möchten Sie diesen Termin wirklich löschen?';
|
||||
$labels['deletecalendarconfirm'] = 'Möchten Sie diesen Kalender mit allen Terminen wirklich löschen?';
|
||||
$labels['deletecalendarconfirmrecursive'] = 'Möchten Sie diesen Kalender mit allen Terminen und Unter-Kalendern wirklich löschen?';
|
||||
$labels['deletecalendarconfirmrecursive'] = 'Do you really want to delete this calendar with all its events and sub-calendars?';
|
||||
$labels['savingdata'] = 'Speichere Daten...';
|
||||
$labels['errorsaving'] = 'Fehler beim Speichern.';
|
||||
$labels['operationfailed'] = 'Die Aktion ist fehlgeschlagen.';
|
||||
|
@ -188,48 +177,24 @@ $labels['importedsuccessfully'] = 'Der Termin wurde erfolgreich in \'$calendar\'
|
|||
$labels['attendeupdateesuccess'] = 'Teilnehmerstatus erfolgreich aktualisiert';
|
||||
$labels['itipsendsuccess'] = 'Einladung an Teilnehmer versendet.';
|
||||
$labels['itipresponseerror'] = 'Die Antwort auf diese Einladung konnte nicht versendet werden';
|
||||
$labels['itipinvalidrequest'] = 'Diese Einladung ist nicht mehr gültig';
|
||||
$labels['sentresponseto'] = 'Antwort auf diese Einladung erfolgreich an $mailto gesendet';
|
||||
$labels['localchangeswarning'] = 'Änderungen an diesem Termin werden nur in Ihrem Kalender gespeichert und nicht an den Organisator des Termins gesendet.';
|
||||
$labels['localchangeswarning'] = 'You are about to make changes that will only be reflected on your calendar and not be sent to the organizer of the event.';
|
||||
$labels['importsuccess'] = 'Es wurden $nr Termine erfolgreich importiert';
|
||||
$labels['importnone'] = 'Keine Termine zum Importieren gefunden';
|
||||
$labels['importerror'] = 'Fehler beim Importieren';
|
||||
|
||||
// recurrence form
|
||||
$labels['repeat'] = 'Wiederholung';
|
||||
$labels['frequency'] = 'Wiederholung';
|
||||
$labels['never'] = 'nie';
|
||||
$labels['daily'] = 'täglich';
|
||||
$labels['weekly'] = 'wöchentlich';
|
||||
$labels['monthly'] = 'monatlich';
|
||||
$labels['yearly'] = 'jährlich';
|
||||
$labels['rdate'] = 'per Datum';
|
||||
$labels['every'] = 'Alle';
|
||||
$labels['days'] = 'Tag(e)';
|
||||
$labels['weeks'] = 'Woche(n)';
|
||||
$labels['months'] = 'Monat(e)';
|
||||
$labels['years'] = 'Jahre(e) im:';
|
||||
$labels['bydays'] = 'Am';
|
||||
$labels['untildate'] = 'am';
|
||||
$labels['each'] = 'Jeden';
|
||||
$labels['onevery'] = 'An jedem';
|
||||
$labels['onsamedate'] = 'Am gleichen Tag';
|
||||
$labels['forever'] = 'unendlich';
|
||||
$labels['recurrencend'] = 'bis';
|
||||
$labels['forntimes'] = '$nr Wiederholungen';
|
||||
$labels['first'] = 'erster';
|
||||
$labels['second'] = 'zweiter';
|
||||
$labels['third'] = 'dritter';
|
||||
$labels['fourth'] = 'vierter';
|
||||
$labels['last'] = 'letzter';
|
||||
$labels['dayofmonth'] = 'Tag des Montats';
|
||||
$labels['addrdate'] = 'Datum hinzufügen';
|
||||
$labels['aclnorights'] = 'Sie haben keine Administrator-Rechte für diesen Kalender.';
|
||||
$labels['changeeventconfirm'] = 'Termin ändern';
|
||||
$labels['removeeventconfirm'] = 'Termin löschen';
|
||||
$labels['changerecurringeventwarning'] = 'Dies ist eine Terminreihe. Möchten Sie nur den aktuellen, diesen und alle zukünftigen oder alle Termine bearbeiten oder die Änderungen als neuen Termin speichern?';
|
||||
$labels['removerecurringeventwarning'] = 'Dies ist eine Terminreihe. Möchten Sie nur den aktuellen, diesen und alle zukünftigen oder alle Termine löschen?';
|
||||
$labels['currentevent'] = 'Aktuellen';
|
||||
$labels['futurevents'] = 'Zukünftige';
|
||||
$labels['allevents'] = 'Alle';
|
||||
$labels['saveasnew'] = 'Als neu speichern';
|
||||
|
||||
$labels['birthdays'] = 'Geburtstage';
|
||||
$labels['birthdayscalendar'] = 'Geburtstags-Kalender';
|
||||
$labels['displaybirthdayscalendar'] = 'Geburtstags-Kalender anzeigen';
|
||||
$labels['birthdayscalendarsources'] = 'Für diese Adressbücher';
|
||||
$labels['birthdayeventtitle'] = '$names Geburtstag';
|
||||
$labels['birthdayage'] = 'Alter $age';
|
||||
$labels['actiondelete'] = 'Gelöscht';
|
||||
?>
|
||||
|
|
|
@ -1,24 +1,32 @@
|
|||
<?php
|
||||
|
||||
$labels = array();
|
||||
|
||||
// preferences
|
||||
$labels['default_view'] = 'Ansicht';
|
||||
/**
|
||||
* Localizations for Kolab Calendar plugin
|
||||
*
|
||||
* Copyright (C) 2014, Kolab Systems AG
|
||||
*
|
||||
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
|
||||
*/
|
||||
$labels['default_view'] = 'Standardansicht';
|
||||
$labels['time_format'] = 'Zeitformatierung';
|
||||
$labels['timeslots'] = 'Zeitraster pro Stunde';
|
||||
$labels['timeslots'] = 'Time slots per hour';
|
||||
$labels['first_day'] = 'Erster Wochentag';
|
||||
$labels['first_hour'] = 'Erste angezeigte Stunde';
|
||||
$labels['workinghours'] = 'Arbeitszeiten';
|
||||
$labels['add_category'] = 'Katgorie hinzufügen';
|
||||
$labels['remove_category'] = 'Katgorie entfernen';
|
||||
$labels['add_category'] = 'Kategorie hinzufügen';
|
||||
$labels['remove_category'] = 'Kategorie entfernen';
|
||||
$labels['defaultcalendar'] = 'Neue Termine erstellen in';
|
||||
$labels['eventcoloring'] = 'Färbung der Termine';
|
||||
$labels['coloringmode0'] = 'Farbe des Kalenders';
|
||||
$labels['coloringmode1'] = 'Farbe der Kategorie';
|
||||
$labels['coloringmode2'] = 'Kalenderfarbe außen, Kategoriefarbe innen';
|
||||
$labels['coloringmode3'] = 'Kategoriefarbe außen, Kalenderfarbe innen';
|
||||
|
||||
// calendar
|
||||
$labels['afternothing'] = 'nichts unternehmen';
|
||||
$labels['aftertrash'] = 'In den Papierkorb verschieben';
|
||||
$labels['afterdelete'] = 'Nachricht löschen';
|
||||
$labels['afterflagdeleted'] = 'Als gelöscht markieren';
|
||||
$labels['aftermoveto'] = 'Verschiebe nach...';
|
||||
$labels['itipoptions'] = 'Veranstaltungseinladungen';
|
||||
$labels['afteraction'] = 'Nachdem eine Einladungs- oder Update-Nachricht verarbetet wurde';
|
||||
$labels['calendar'] = 'Kalender';
|
||||
$labels['calendars'] = 'Kalender';
|
||||
$labels['category'] = 'Kategorie';
|
||||
|
@ -36,7 +44,7 @@ $labels['new_event'] = 'Neuer Termin';
|
|||
$labels['edit_event'] = 'Termin bearbeiten';
|
||||
$labels['edit'] = 'Bearbeiten';
|
||||
$labels['save'] = 'Speichern';
|
||||
$labels['remove'] = 'Entfernen';
|
||||
$labels['removelist'] = 'Von der Liste entfernen';
|
||||
$labels['cancel'] = 'Abbrechen';
|
||||
$labels['select'] = 'Auswählen';
|
||||
$labels['print'] = 'Drucken';
|
||||
|
@ -48,24 +56,40 @@ $labels['export'] = 'Exportieren';
|
|||
$labels['exporttitle'] = 'Kalender als iCalendar exportieren';
|
||||
$labels['exportrange'] = 'Termine ab';
|
||||
$labels['exportattachments'] = 'Mit Anhängen';
|
||||
$labels['customdate'] = 'Eigenes Datum';
|
||||
$labels['customdate'] = 'Benutzerdefiniertes Datum';
|
||||
$labels['location'] = 'Ort';
|
||||
$labels['url'] = 'URL';
|
||||
$labels['date'] = 'Datum';
|
||||
$labels['start'] = 'Beginn';
|
||||
$labels['starttime'] = 'Startzeit';
|
||||
$labels['end'] = 'Ende';
|
||||
$labels['endtime'] = 'Endzeit';
|
||||
$labels['repeat'] = 'Wiederholung';
|
||||
$labels['selectdate'] = 'Datum auswählen';
|
||||
$labels['freebusy'] = 'Zeige mich als';
|
||||
$labels['free'] = 'Frei';
|
||||
$labels['busy'] = 'Gebucht';
|
||||
$labels['outofoffice'] = 'Abwesend';
|
||||
$labels['tentative'] = 'Mit Vorbehalt';
|
||||
$labels['mystatus'] = 'Mein Status';
|
||||
$labels['status'] = 'Status';
|
||||
$labels['status-confirmed'] = 'Bestätigt';
|
||||
$labels['status-cancelled'] = 'Abgesagt';
|
||||
$labels['priority'] = 'Priorität';
|
||||
$labels['sensitivity'] = 'Sichtbarkeit';
|
||||
$labels['public'] = 'öffentlich';
|
||||
$labels['private'] = 'privat';
|
||||
$labels['confidential'] = 'vertraulich';
|
||||
$labels['links'] = 'Referenz';
|
||||
$labels['alarms'] = 'Erinnerung';
|
||||
$labels['comment'] = 'Kommentar';
|
||||
$labels['created'] = 'Erstellt';
|
||||
$labels['changed'] = 'Geändert';
|
||||
$labels['unknown'] = 'Unbekannt';
|
||||
$labels['eventoptions'] = 'Optionen';
|
||||
$labels['generated'] = 'erstellt am';
|
||||
$labels['eventhistory'] = 'Historie';
|
||||
$labels['removelink'] = 'E-Mail-Referenz entfernen';
|
||||
$labels['printdescriptions'] = 'Beschreibung drucken';
|
||||
$labels['parentcalendar'] = 'Erstellen in';
|
||||
$labels['searchearlierdates'] = '« Frühere Termine suchen';
|
||||
|
@ -79,9 +103,18 @@ $labels['onemonthback'] = '1 Monat zurück';
|
|||
$labels['nmonthsback'] = '$nr Monate zurück';
|
||||
$labels['showurl'] = 'URL anzeigen';
|
||||
$labels['showurldescription'] = 'Über die folgende Adresse können Sie mit einem beliebigen Kalenderprogramm Ihren Kalender abrufen (nur lesend), sofern dieses das iCal-Format unterstützt.';
|
||||
$labels['caldavurldescription'] = 'Benutzen Sie folgende Addresse in einer <a href="http://de.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a>-Anwendung (wie z.B. Evolution oder Mozilla Thunderbird) um diesen spezifischen Kalender mit dem Computer oder Mobiltelefon zu synchronisieren.';
|
||||
|
||||
// agenda view
|
||||
$labels['caldavurldescription'] = 'Diese Adresse in einen <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a>-Klienten (z.B. Evolution oder Mozilla Thunderbird) kopieren, um den Kalender in Gänze mit einem mobilen Gerät zu synchronisieren.';
|
||||
$labels['findcalendars'] = 'Kalender finden...';
|
||||
$labels['searchterms'] = 'Suchbegriffe';
|
||||
$labels['calsearchresults'] = 'Verfügbare Kalender';
|
||||
$labels['calendarsubscribe'] = 'Permanent anzeigen';
|
||||
$labels['nocalendarsfound'] = 'Keine Kalender gefunden';
|
||||
$labels['nrcalendarsfound'] = '$nr Kalender gefunden';
|
||||
$labels['quickview'] = 'Nur diesen Kalender anzeigen';
|
||||
$labels['invitationspending'] = 'Ausstehende Einladungen';
|
||||
$labels['invitationsdeclined'] = 'Abgelehnte Einladungen';
|
||||
$labels['changepartstat'] = 'Teilnehmerstatus ändern';
|
||||
$labels['rsvpcomment'] = 'Einladungstext';
|
||||
$labels['listrange'] = 'Angezeigter Bereich:';
|
||||
$labels['listsections'] = 'Unterteilung:';
|
||||
$labels['smartsections'] = 'Intelligent';
|
||||
|
@ -90,18 +123,15 @@ $labels['today'] = 'Heute';
|
|||
$labels['tomorrow'] = 'Morgen';
|
||||
$labels['thisweek'] = 'Diese Woche';
|
||||
$labels['nextweek'] = 'Nächste Woche';
|
||||
$labels['prevweek'] = 'Vorige Woche';
|
||||
$labels['thismonth'] = 'Diesen Monat';
|
||||
$labels['nextmonth'] = 'Nächsten Monat';
|
||||
$labels['weekofyear'] = 'Woche';
|
||||
$labels['pastevents'] = 'Vergangene';
|
||||
$labels['futureevents'] = 'Zukünftige';
|
||||
|
||||
// alarm/reminder settings
|
||||
$labels['showalarms'] = 'Erinnerungen anzeigen';
|
||||
$labels['showalarms'] = 'Show reminders';
|
||||
$labels['defaultalarmtype'] = 'Standard-Erinnerungseinstellung';
|
||||
$labels['defaultalarmoffset'] = 'Standard-Erinnerungszeit';
|
||||
|
||||
// attendees
|
||||
$labels['attendee'] = 'Teilnehmer';
|
||||
$labels['role'] = 'Rolle';
|
||||
$labels['availability'] = 'Verfüg.';
|
||||
|
@ -111,11 +141,18 @@ $labels['roleorganizer'] = 'Organisator';
|
|||
$labels['rolerequired'] = 'Erforderlich';
|
||||
$labels['roleoptional'] = 'Optional';
|
||||
$labels['rolechair'] = 'Vorsitz';
|
||||
$labels['rolenonparticipant'] = 'Absent';
|
||||
$labels['cutypeindividual'] = 'Person';
|
||||
$labels['cutypegroup'] = 'Gruppe';
|
||||
$labels['cutyperesource'] = 'Ressource';
|
||||
$labels['cutyperoom'] = 'Raum';
|
||||
$labels['availfree'] = 'Frei';
|
||||
$labels['availbusy'] = 'Gebucht';
|
||||
$labels['availunknown'] = 'Unbekannt';
|
||||
$labels['availtentative'] = 'Mit Vorbehalt';
|
||||
$labels['availoutofoffice'] = 'Abwesend';
|
||||
$labels['delegatedto'] = 'Delegiert an:';
|
||||
$labels['delegatedfrom'] = 'Delegiert von:';
|
||||
$labels['scheduletime'] = 'Verfügbarkeit anzeigen';
|
||||
$labels['sendinvitations'] = 'Einladungen versenden';
|
||||
$labels['sendnotifications'] = 'Teilnehmer über die Änderungen informieren';
|
||||
|
@ -124,6 +161,7 @@ $labels['onlyworkinghours'] = 'Verfügbarkeit innerhalb meiner Arbeitszeiten suc
|
|||
$labels['reqallattendees'] = 'Erforderliche/alle Teilnehmer';
|
||||
$labels['prevslot'] = 'Vorheriger Vorschlag';
|
||||
$labels['nextslot'] = 'Nächster Vorschlag';
|
||||
$labels['suggestedslot'] = 'Empfohlener Slot';
|
||||
$labels['noslotfound'] = 'Es konnten keine freien Zeiten gefunden werden';
|
||||
$labels['invitationsubject'] = 'Sie wurden zu "$title" eingeladen';
|
||||
$labels['invitationmailbody'] = "*\$title*\n\nWann: \$date\n\nTeilnehmer: \$attendees\n\nIm Anhang finden Sie eine iCalendar-Datei mit allen Details des Termins. Diese können Sie in Ihre Kalenderanwendung importieren.";
|
||||
|
@ -133,45 +171,42 @@ $labels['eventupdatesubjectempty'] = 'Termin wurde aktualisiert';
|
|||
$labels['eventupdatemailbody'] = "*\$title*\n\nWann: \$date\n\nTeilnehmer: \$attendees\n\nIm Anhang finden Sie eine iCalendar-Datei mit den aktualisiereten Termindaten. Diese können Sie in Ihre Kalenderanwendung importieren.";
|
||||
$labels['eventcancelsubject'] = '"$title" wurde abgesagt';
|
||||
$labels['eventcancelmailbody'] = "*\$title*\n\nWann: \$date\n\nTeilnehmer: \$attendees\n\nDer Termin wurde von \$organizer abgesagt.\n\nIm Anhang finden Sie eine iCalendar-Datei mit den Termindaten.";
|
||||
|
||||
// invitation handling
|
||||
$labels['itipinvitation'] = 'Einladung zu';
|
||||
$labels['itipreply'] = 'Antwort zu';
|
||||
$labels['itipupdate'] = 'Aktialisiert:';
|
||||
$labels['itipcancellation'] = 'Abgesagt:';
|
||||
$labels['itipaccepted'] = 'Akzeptieren';
|
||||
$labels['itiptentative'] = 'Mit Vorbehalt';
|
||||
$labels['itipdeclined'] = 'Ablehnen';
|
||||
$labels['itipsubjectaccepted'] = 'Einladung zu "$title" wurde von $name angenommen';
|
||||
$labels['itipsubjecttentative'] = 'Einladung zu "$title" wurde von $name mit Vorbehalt angenommen';
|
||||
$labels['itipsubjectdeclined'] = 'Einladung zu "$title" wurde von $name abgelehnt';
|
||||
$labels['itipobjectnotfound'] = 'Der Termin auf den sich diese Nachricht bezieht, wurde in Deinem Kalnder nicht gefunden.';
|
||||
$labels['itipmailbodyaccepted'] = "\$sender hat die Einladung zum folgenden Termin angenommen:\n\n*\$title*\n\nWann: \$date\n\nTeilnehmer: \$attendees";
|
||||
$labels['itipmailbodytentative'] = "\$sender hat die Einladung mit Vorbehalt zum folgenden Termin angenommen:\n\n*\$title*\n\nWann: \$date\n\nTeilnehmer: \$attendees";
|
||||
$labels['itipmailbodydeclined'] = "\$sender hat die Einladung zum folgenden Termin abgelehnt:\n\n*\$title*\n\nWann: \$date\n\nTeilnehmer: \$attendees";
|
||||
$labels['itipmailbodycancel'] = "\$sender hat Deine Teilnahme bei der folgenden Veranstaltung zurückgewiesen:\n\n*\$title*\n\nam: \$date";
|
||||
$labels['itipmailbodydelegated'] = "\$sender hat die Teilnahme an folgendem Event delegiert:\n\n*\$title*\n\nWhen: \$date";
|
||||
$labels['itipmailbodydelegatedto'] = "\$sender hat die Teilnahme an folgendem Event an Sie delegiert:\n\n*\$title*\n\nWhen: \$date";
|
||||
$labels['itipdeclineevent'] = 'Möchten Sie die Einladung zu diesem Termin ablehnen?';
|
||||
$labels['declinedeleteconfirm'] = 'Möchten Sie den abgelehnten Termin ebenfalls aus Ihrem Kalender löschen?';
|
||||
$labels['importtocalendar'] = 'In Kalender übernehmen';
|
||||
$labels['removefromcalendar'] = 'Aus meinem Kalender löschen';
|
||||
$labels['updateattendeestatus'] = 'Teilnehmerstatus aktualisieren';
|
||||
$labels['acceptinvitation'] = 'Möchten Sie die Einladung zu diesem Termin annehmen?';
|
||||
$labels['youhaveaccepted'] = 'Sie haben die Einladung angenommen';
|
||||
$labels['youhavetentative'] = 'Sie haben die Einladung mit Vorbehalt angenommen';
|
||||
$labels['youhavedeclined'] = 'Sie haben die Einladung abgelehnt';
|
||||
$labels['declinedeleteconfirm'] = 'Soll der abgelehnte Termin zusätzlich aus dem Kalender gelöscht werden?';
|
||||
$labels['itipcomment'] = 'Kommentar zur Einladungs-/Benachrichtigungsnachricht';
|
||||
$labels['itipcommenttitle'] = 'Dieser Kommentar wird an die Einladungs-/Benachrichtigungsnachricht angehängt, die an die Teilnehmer verschickt wird';
|
||||
$labels['notanattendee'] = 'Sie sind nicht in der Liste der Teilnehmer aufgeführt';
|
||||
$labels['eventcancelled'] = 'Der Termin wurde vom Organisator abgesagt';
|
||||
$labels['saveincalendar'] = 'speichern in';
|
||||
|
||||
// event dialog tabs
|
||||
$labels['updatemycopy'] = 'In meinen Kalender updaten';
|
||||
$labels['savetocalendar'] = 'In Kalender übernehmen';
|
||||
$labels['openpreview'] = 'Kalender überprüfen';
|
||||
$labels['noearlierevents'] = 'Keine früheren Ereignisse';
|
||||
$labels['nolaterevents'] = 'Keine späteren Ereignisse';
|
||||
$labels['resource'] = 'Ressource';
|
||||
$labels['addresource'] = 'Ressource buchen';
|
||||
$labels['findresources'] = 'Ressourcen finden';
|
||||
$labels['resourcedetails'] = 'Details';
|
||||
$labels['resourceavailability'] = 'Verfügbarkeit';
|
||||
$labels['resourceowner'] = 'Eigentümer';
|
||||
$labels['resourceadded'] = 'Diese Ressource wurde Deinem Ereignis hinzugefügt';
|
||||
$labels['tabsummary'] = 'Übersicht';
|
||||
$labels['tabrecurrence'] = 'Wiederholung';
|
||||
$labels['tabattendees'] = 'Teilnehmer';
|
||||
$labels['tabresources'] = 'Ressourcen';
|
||||
$labels['tabattachments'] = 'Anhänge';
|
||||
$labels['tabsharing'] = 'Freigabe';
|
||||
|
||||
// messages
|
||||
$labels['deleteobjectconfirm'] = 'Möchten Sie diesen Termin wirklich löschen?';
|
||||
$labels['deleteventconfirm'] = 'Möchten Sie diesen Termin wirklich löschen?';
|
||||
$labels['deletecalendarconfirm'] = 'Möchten Sie diesen Kalender mit allen Terminen wirklich löschen?';
|
||||
$labels['deletecalendarconfirmrecursive'] = 'Möchten Sie diesen Kalender mit allen Terminen und Unter-Kalendern wirklich löschen?';
|
||||
$labels['deletecalendarconfirmrecursive'] = 'Soll dieser Kalender wirklich mit allen Terminen und Unterkalendern gelöscht werden?';
|
||||
$labels['savingdata'] = 'Speichere Daten...';
|
||||
$labels['errorsaving'] = 'Fehler beim Speichern.';
|
||||
$labels['operationfailed'] = 'Die Aktion ist fehlgeschlagen.';
|
||||
|
@ -182,54 +217,59 @@ $labels['successremoval'] = 'Der Termin wurde erfolgreich gelöscht.';
|
|||
$labels['successrestore'] = 'Der Termin wurde erfolgreich wieder hergestellt.';
|
||||
$labels['errornotifying'] = 'Benachrichtigung an die Teilnehmer konnten nicht gesendet werden';
|
||||
$labels['errorimportingevent'] = 'Fehler beim Importieren';
|
||||
$labels['importwarningexists'] = 'Eine Kopie dieses Termins exisitert bereits in Deinem Kalender.';
|
||||
$labels['newerversionexists'] = 'Eine neuere Version dieses Termins exisitert bereits! Import abgebrochen.';
|
||||
$labels['nowritecalendarfound'] = 'Kein Kalender zum Speichern gefunden';
|
||||
$labels['importedsuccessfully'] = 'Der Termin wurde erfolgreich in \'$calendar\' gespeichert';
|
||||
$labels['updatedsuccessfully'] = 'Der Termin wurde erfolgreich in \'$calendar\' geändert';
|
||||
$labels['attendeupdateesuccess'] = 'Teilnehmerstatus erfolgreich aktualisiert';
|
||||
$labels['itipsendsuccess'] = 'Einladung an Teilnehmer versendet.';
|
||||
$labels['itipresponseerror'] = 'Die Antwort auf diese Einladung konnte nicht versendet werden';
|
||||
$labels['itipinvalidrequest'] = 'Diese Einladung ist nicht mehr gültig.';
|
||||
$labels['sentresponseto'] = 'Antwort auf diese Einladung erfolgreich an $mailto gesendet';
|
||||
$labels['localchangeswarning'] = 'Änderungen an diesem Termin werden nur in Ihrem Kalender gespeichert und nicht an den Organisator des Termins gesendet.';
|
||||
$labels['localchangeswarning'] = 'Die auszuführenden Änderungen werden sich nur auf den persönlichen Kalender auswirken und nicht an den Organisator des Termins weitergeleitet.';
|
||||
$labels['importsuccess'] = 'Es wurden $nr Termine erfolgreich importiert';
|
||||
$labels['importnone'] = 'Keine Termine zum Importieren gefunden';
|
||||
$labels['importerror'] = 'Fehler beim Importieren';
|
||||
|
||||
// recurrence form
|
||||
$labels['repeat'] = 'Wiederholung';
|
||||
$labels['frequency'] = 'Wiederholung';
|
||||
$labels['never'] = 'nie';
|
||||
$labels['daily'] = 'täglich';
|
||||
$labels['weekly'] = 'wöchentlich';
|
||||
$labels['monthly'] = 'monatlich';
|
||||
$labels['yearly'] = 'jährlich';
|
||||
$labels['rdate'] = 'per Datum';
|
||||
$labels['every'] = 'Alle';
|
||||
$labels['days'] = 'Tag(e)';
|
||||
$labels['weeks'] = 'Woche(n)';
|
||||
$labels['months'] = 'Monat(e)';
|
||||
$labels['years'] = 'Jahre(e) im:';
|
||||
$labels['bydays'] = 'Am';
|
||||
$labels['untildate'] = 'am';
|
||||
$labels['each'] = 'Jeden';
|
||||
$labels['onevery'] = 'An jedem';
|
||||
$labels['onsamedate'] = 'Am gleichen Tag';
|
||||
$labels['forever'] = 'unendlich';
|
||||
$labels['recurrencend'] = 'bis';
|
||||
$labels['forntimes'] = '$nr Wiederholungen';
|
||||
$labels['first'] = 'erster';
|
||||
$labels['second'] = 'zweiter';
|
||||
$labels['third'] = 'dritter';
|
||||
$labels['fourth'] = 'vierter';
|
||||
$labels['last'] = 'letzter';
|
||||
$labels['dayofmonth'] = 'Tag des Montats';
|
||||
$labels['addrdate'] = 'Datum hinzufügen';
|
||||
$labels['aclnorights'] = 'Der Zugriff auf diesen Kalender erfordert Administrator-Rechte.';
|
||||
$labels['changeeventconfirm'] = 'Termin ändern';
|
||||
$labels['removeeventconfirm'] = 'Termin löschen';
|
||||
$labels['removeeventconfirm'] = 'Ereignis löschen';
|
||||
$labels['changerecurringeventwarning'] = 'Dies ist eine Terminreihe. Möchten Sie nur den aktuellen, diesen und alle zukünftigen oder alle Termine bearbeiten oder die Änderungen als neuen Termin speichern?';
|
||||
$labels['removerecurringeventwarning'] = 'Dies ist eine Terminreihe. Möchten Sie nur den aktuellen, diesen und alle zukünftigen oder alle Termine löschen?';
|
||||
$labels['removerecurringeventwarning'] = 'Dies ist ein wiederkehrender Termin. Wollen Sie nur diesen Termin bearbeiten oder alle zukünftigen Vorkommen? Alternativ können auch alle Vorkommen bearbeitet werden.';
|
||||
$labels['removerecurringallonly'] = 'Dieses ist ein wiederkehrender Termin. Als ein Teilnehmer können Sie nur den gesamten Termin inklusive aller Wiederholungen löschen.';
|
||||
$labels['currentevent'] = 'Aktuellen';
|
||||
$labels['futurevents'] = 'Zukünftige';
|
||||
$labels['allevents'] = 'Alle';
|
||||
$labels['saveasnew'] = 'Als neu speichern';
|
||||
|
||||
$labels['birthdays'] = 'Geburtstage';
|
||||
$labels['birthdayscalendar'] = 'Geburtstags-Kalender';
|
||||
$labels['displaybirthdayscalendar'] = 'Geburtstags-Kalender anzeigen';
|
||||
$labels['birthdayscalendarsources'] = 'Für diese Adressbücher';
|
||||
$labels['birthdayeventtitle'] = '$names Geburtstag';
|
||||
$labels['birthdayage'] = 'Alter $age';
|
||||
$labels['eventchangelog'] = 'Änderungshistorie';
|
||||
$labels['eventdiff'] = 'Änderungen aus den Versionen $rev';
|
||||
$labels['revision'] = 'Version';
|
||||
$labels['user'] = 'Benutzer';
|
||||
$labels['operation'] = 'Aktion';
|
||||
$labels['actionappend'] = 'Gespeichert';
|
||||
$labels['actionmove'] = 'Verschoben';
|
||||
$labels['actiondelete'] = 'Gelöscht';
|
||||
$labels['compare'] = 'Vergleichen';
|
||||
$labels['showrevision'] = 'Diese Version anzeigen';
|
||||
$labels['restore'] = 'Diese Version wiederherstellen';
|
||||
$labels['eventnotfound'] = 'Termindaten sind leider nicht vergübar';
|
||||
$labels['eventchangelognotavailable'] = 'Änderungshistorie ist nicht verfügbar für diesen Termin';
|
||||
$labels['eventdiffnotavailable'] = 'Vergleich für die gewählten Versionen nicht möglich';
|
||||
$labels['eventrestoreconfirm'] = 'Wollen Sie wirklich die Version $rev dieses Termins wiederherstellen? Diese Aktion wird die aktuelle Kopie mit der älteren Version ersetzen.';
|
||||
$labels['arialabelminical'] = 'Kalender Datumswahl';
|
||||
$labels['arialabelcalendarview'] = 'Kalender Ansicht';
|
||||
$labels['arialabelsearchform'] = 'Suchformular für Termine';
|
||||
$labels['arialabelquicksearchbox'] = 'Sucheingabe für Termine';
|
||||
$labels['arialabelcalsearchform'] = 'Suchformular für Kalender';
|
||||
$labels['calendaractions'] = 'Kalenderaktionen';
|
||||
$labels['arialabeleventattendees'] = 'Teilehmerliste';
|
||||
$labels['arialabeleventresources'] = 'Liste der Terminressourcen';
|
||||
$labels['arialabelresourcesearchform'] = 'Suchformular für Ressourcen';
|
||||
$labels['arialabelresourceselection'] = 'Verfügbare Ressourcen';
|
||||
?>
|
||||
|
|
|
@ -1,11 +1,19 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Localizations for Kolab Calendar plugin
|
||||
*
|
||||
* Copyright (C) 2014, Kolab Systems AG
|
||||
*
|
||||
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
|
||||
*/
|
||||
|
||||
$labels = array();
|
||||
|
||||
// preferences
|
||||
$labels['default_view'] = 'Default view';
|
||||
$labels['time_format'] = 'Time format';
|
||||
$labels['timeslots'] = 'Timeslots per hour';
|
||||
$labels['timeslots'] = 'Time slots per hour';
|
||||
$labels['first_day'] = 'First weekday';
|
||||
$labels['first_hour'] = 'First hour to show';
|
||||
$labels['workinghours'] = 'Working hours';
|
||||
|
@ -17,6 +25,13 @@ $labels['coloringmode0'] = 'According to calendar';
|
|||
$labels['coloringmode1'] = 'According to category';
|
||||
$labels['coloringmode2'] = 'Calendar for outline, category for content';
|
||||
$labels['coloringmode3'] = 'Category for outline, calendar for content';
|
||||
$labels['afternothing'] = 'Do nothing';
|
||||
$labels['aftertrash'] = 'Move to Trash';
|
||||
$labels['afterdelete'] = 'Delete the message';
|
||||
$labels['afterflagdeleted'] = 'Flag as deleted';
|
||||
$labels['aftermoveto'] = 'Move to...';
|
||||
$labels['itipoptions'] = 'Event Invitations';
|
||||
$labels['afteraction'] = 'After an invitation or update message is processed';
|
||||
|
||||
// calendar
|
||||
$labels['calendar'] = 'Calendar';
|
||||
|
@ -36,7 +51,7 @@ $labels['new_event'] = 'New event';
|
|||
$labels['edit_event'] = 'Edit event';
|
||||
$labels['edit'] = 'Edit';
|
||||
$labels['save'] = 'Save';
|
||||
$labels['remove'] = 'Remove';
|
||||
$labels['removelist'] = 'Remove from list';
|
||||
$labels['cancel'] = 'Cancel';
|
||||
$labels['select'] = 'Select';
|
||||
$labels['print'] = 'Print';
|
||||
|
@ -53,20 +68,35 @@ $labels['location'] = 'Location';
|
|||
$labels['url'] = 'URL';
|
||||
$labels['date'] = 'Date';
|
||||
$labels['start'] = 'Start';
|
||||
$labels['starttime'] = 'Start time';
|
||||
$labels['end'] = 'End';
|
||||
$labels['endtime'] = 'End time';
|
||||
$labels['repeat'] = 'Repeat';
|
||||
$labels['selectdate'] = 'Choose date';
|
||||
$labels['freebusy'] = 'Show me as';
|
||||
$labels['free'] = 'Free';
|
||||
$labels['busy'] = 'Busy';
|
||||
$labels['outofoffice'] = 'Out of Office';
|
||||
$labels['tentative'] = 'Tentative';
|
||||
$labels['mystatus'] = 'My status';
|
||||
$labels['status'] = 'Status';
|
||||
$labels['status-confirmed'] = 'Confirmed';
|
||||
$labels['status-cancelled'] = 'Cancelled';
|
||||
$labels['priority'] = 'Priority';
|
||||
$labels['sensitivity'] = 'Privacy';
|
||||
$labels['public'] = 'public';
|
||||
$labels['private'] = 'private';
|
||||
$labels['confidential'] = 'confidential';
|
||||
$labels['links'] = 'Reference';
|
||||
$labels['alarms'] = 'Reminder';
|
||||
$labels['comment'] = 'Comment';
|
||||
$labels['created'] = 'Created';
|
||||
$labels['changed'] = 'Last Modified';
|
||||
$labels['unknown'] = 'Unknown';
|
||||
$labels['eventoptions'] = 'Options';
|
||||
$labels['generated'] = 'generated at';
|
||||
$labels['eventhistory'] = 'History';
|
||||
$labels['removelink'] = 'Remove email reference';
|
||||
$labels['printdescriptions'] = 'Print descriptions';
|
||||
$labels['parentcalendar'] = 'Insert inside';
|
||||
$labels['searchearlierdates'] = '« Search for earlier events';
|
||||
|
@ -81,6 +111,17 @@ $labels['nmonthsback'] = '$nr months back';
|
|||
$labels['showurl'] = 'Show calendar URL';
|
||||
$labels['showurldescription'] = 'Use the following address to access (read only) your calendar from other applications. You can copy and paste this into any calendar software that supports the iCal format.';
|
||||
$labels['caldavurldescription'] = 'Copy this address to a <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a> client application (e.g. Evolution or Mozilla Thunderbird) to fully synchronize this specific calendar with your computer or mobile device.';
|
||||
$labels['findcalendars'] = 'Find calendars...';
|
||||
$labels['searchterms'] = 'Search terms';
|
||||
$labels['calsearchresults'] = 'Available Calendars';
|
||||
$labels['calendarsubscribe'] = 'List permanently';
|
||||
$labels['nocalendarsfound'] = 'No calendars found';
|
||||
$labels['nrcalendarsfound'] = '$nr calendars found';
|
||||
$labels['quickview'] = 'View only this calendar';
|
||||
$labels['invitationspending'] = 'Pending invitations';
|
||||
$labels['invitationsdeclined'] = 'Declined invitations';
|
||||
$labels['changepartstat'] = 'Change participant status';
|
||||
$labels['rsvpcomment'] = 'Invitation text';
|
||||
|
||||
// agenda view
|
||||
$labels['listrange'] = 'Range to display:';
|
||||
|
@ -91,6 +132,7 @@ $labels['today'] = 'Today';
|
|||
$labels['tomorrow'] = 'Tomorrow';
|
||||
$labels['thisweek'] = 'This week';
|
||||
$labels['nextweek'] = 'Next week';
|
||||
$labels['prevweek'] = 'Previous week';
|
||||
$labels['thismonth'] = 'This month';
|
||||
$labels['nextmonth'] = 'Next month';
|
||||
$labels['weekofyear'] = 'Week';
|
||||
|
@ -98,7 +140,7 @@ $labels['pastevents'] = 'Past';
|
|||
$labels['futureevents'] = 'Future';
|
||||
|
||||
// alarm/reminder settings
|
||||
$labels['showalarms'] = 'Show alarms';
|
||||
$labels['showalarms'] = 'Show reminders';
|
||||
$labels['defaultalarmtype'] = 'Default reminder setting';
|
||||
$labels['defaultalarmoffset'] = 'Default reminder time';
|
||||
|
||||
|
@ -112,6 +154,7 @@ $labels['roleorganizer'] = 'Organizer';
|
|||
$labels['rolerequired'] = 'Required';
|
||||
$labels['roleoptional'] = 'Optional';
|
||||
$labels['rolechair'] = 'Chair';
|
||||
$labels['rolenonparticipant'] = 'Absent';
|
||||
$labels['cutypeindividual'] = 'Individual';
|
||||
$labels['cutypegroup'] = 'Group';
|
||||
$labels['cutyperesource'] = 'Resource';
|
||||
|
@ -121,6 +164,8 @@ $labels['availbusy'] = 'Busy';
|
|||
$labels['availunknown'] = 'Unknown';
|
||||
$labels['availtentative'] = 'Tentative';
|
||||
$labels['availoutofoffice'] = 'Out of Office';
|
||||
$labels['delegatedto'] = 'Delegated to: ';
|
||||
$labels['delegatedfrom'] = 'Delegated from: ';
|
||||
$labels['scheduletime'] = 'Find availability';
|
||||
$labels['sendinvitations'] = 'Send invitations';
|
||||
$labels['sendnotifications'] = 'Notify participants about modifications';
|
||||
|
@ -129,6 +174,7 @@ $labels['onlyworkinghours'] = 'Find availability within my working hours';
|
|||
$labels['reqallattendees'] = 'Required/all participants';
|
||||
$labels['prevslot'] = 'Previous Slot';
|
||||
$labels['nextslot'] = 'Next Slot';
|
||||
$labels['suggestedslot'] = 'Suggested Slot';
|
||||
$labels['noslotfound'] = 'Unable to find a free time slot';
|
||||
$labels['invitationsubject'] = 'You\'ve been invited to "$title"';
|
||||
$labels['invitationmailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nPlease find attached an iCalendar file with all the event details which you can import to your calendar application.";
|
||||
|
@ -139,41 +185,49 @@ $labels['eventupdatemailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$atten
|
|||
$labels['eventcancelsubject'] = '"$title" has been canceled';
|
||||
$labels['eventcancelmailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nThe event has been cancelled by \$organizer.\n\nPlease find attached an iCalendar file with the updated event details.";
|
||||
|
||||
// invitation handling
|
||||
$labels['itipinvitation'] = 'Invitation to';
|
||||
$labels['itipupdate'] = 'Update of';
|
||||
$labels['itipcancellation'] = 'Cancelled:';
|
||||
$labels['itipreply'] = 'Reply to';
|
||||
$labels['itipaccepted'] = 'Accept';
|
||||
$labels['itiptentative'] = 'Maybe';
|
||||
$labels['itipdeclined'] = 'Decline';
|
||||
$labels['itipsubjectaccepted'] = '"$title" has been accepted by $name';
|
||||
$labels['itipsubjecttentative'] = '"$title" has been tentatively accepted by $name';
|
||||
$labels['itipsubjectdeclined'] = '"$title" has been declined by $name';
|
||||
// invitation handling (overrides labels from libcalendaring)
|
||||
$labels['itipobjectnotfound'] = 'The event referred by this message was not found in your calendar.';
|
||||
|
||||
$labels['itipmailbodyaccepted'] = "\$sender has accepted the invitation to the following event:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
|
||||
$labels['itipmailbodytentative'] = "\$sender has tentatively accepted the invitation to the following event:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
|
||||
$labels['itipmailbodydeclined'] = "\$sender has declined the invitation to the following event:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
|
||||
$labels['itipmailbodycancel'] = "\$sender has rejected your participation in the following event:\n\n*\$title*\n\nWhen: \$date";
|
||||
$labels['itipmailbodydelegated'] = "\$sender has delegated the participation in the following event:\n\n*\$title*\n\nWhen: \$date";
|
||||
$labels['itipmailbodydelegatedto'] = "\$sender has delegated the participation in the following event to you:\n\n*\$title*\n\nWhen: \$date";
|
||||
|
||||
$labels['itipdeclineevent'] = 'Do you want to decline your invitation to this event?';
|
||||
$labels['declinedeleteconfirm'] = 'Do you also want to delete this declined event from your calendar?';
|
||||
$labels['importtocalendar'] = 'Save to my calendar';
|
||||
$labels['removefromcalendar'] = 'Remove from my calendar';
|
||||
$labels['updateattendeestatus'] = 'Update the participant\'s status';
|
||||
$labels['acceptinvitation'] = 'Do you accept this invitation?';
|
||||
$labels['youhaveaccepted'] = 'You have accepted this invitation';
|
||||
$labels['youhavetentative'] = 'You have tentatively accepted this invitation';
|
||||
$labels['youhavedeclined'] = 'You have declined this invitation';
|
||||
$labels['itipcomment'] = 'Invitation/notification comment';
|
||||
$labels['itipcommenttitle'] = 'This comment will be attached to the invitation/notification message sent to participants';
|
||||
|
||||
$labels['notanattendee'] = 'You\'re not listed as an attendee of this event';
|
||||
$labels['eventcancelled'] = 'The event has been cancelled';
|
||||
$labels['saveincalendar'] = 'save in';
|
||||
$labels['updatemycopy'] = 'Update in my calendar';
|
||||
$labels['savetocalendar'] = 'Save to calendar';
|
||||
$labels['openpreview'] = 'Check Calendar';
|
||||
$labels['noearlierevents'] = 'No earlier events';
|
||||
$labels['nolaterevents'] = 'No later events';
|
||||
|
||||
// resources
|
||||
$labels['resource'] = 'Resource';
|
||||
$labels['addresource'] = 'Book resource';
|
||||
$labels['findresources'] = 'Find resources';
|
||||
$labels['resourcedetails'] = 'Details';
|
||||
$labels['resourceavailability'] = 'Availability';
|
||||
$labels['resourceowner'] = 'Owner';
|
||||
$labels['resourceadded'] = 'The resource was added to your event';
|
||||
|
||||
// event dialog tabs
|
||||
$labels['tabsummary'] = 'Summary';
|
||||
$labels['tabrecurrence'] = 'Recurrence';
|
||||
$labels['tabattendees'] = 'Participants';
|
||||
$labels['tabresources'] = 'Resources';
|
||||
$labels['tabattachments'] = 'Attachments';
|
||||
$labels['tabsharing'] = 'Sharing';
|
||||
|
||||
// messages
|
||||
$labels['deleteobjectconfirm'] = 'Do you really want to delete this event?';
|
||||
$labels['deleteventconfirm'] = 'Do you really want to delete this event?';
|
||||
$labels['deletecalendarconfirm'] = 'Do you really want to delete this calendar with all its events?';
|
||||
$labels['deletecalendarconfirmrecursive'] = 'Do you really want to delete this calendar with all its events and sub-calendars?';
|
||||
|
@ -187,9 +241,11 @@ $labels['successremoval'] = 'The event has been deleted successfully.';
|
|||
$labels['successrestore'] = 'The event has been restored successfully.';
|
||||
$labels['errornotifying'] = 'Failed to send notifications to event participants';
|
||||
$labels['errorimportingevent'] = 'Failed to import the event';
|
||||
$labels['importwarningexists'] = 'A copy of this event already exists in your calendar.';
|
||||
$labels['newerversionexists'] = 'A newer version of this event already exists! Aborted.';
|
||||
$labels['nowritecalendarfound'] = 'No calendar found to save the event';
|
||||
$labels['importedsuccessfully'] = 'The event was successfully added to \'$calendar\'';
|
||||
$labels['updatedsuccessfully'] = 'The event was successfully updated in \'$calendar\'';
|
||||
$labels['attendeupdateesuccess'] = 'Successfully updated the participant\'s status';
|
||||
$labels['itipsendsuccess'] = 'Invitation sent to participants.';
|
||||
$labels['itipresponseerror'] = 'Failed to send the response to this event invitation';
|
||||
|
@ -201,43 +257,52 @@ $labels['importnone'] = 'No events found to be imported';
|
|||
$labels['importerror'] = 'An error occured while importing';
|
||||
$labels['aclnorights'] = 'You do not have administrator rights on this calendar.';
|
||||
|
||||
// recurrence form
|
||||
$labels['repeat'] = 'Repeat';
|
||||
$labels['frequency'] = 'Repeat';
|
||||
$labels['never'] = 'never';
|
||||
$labels['daily'] = 'daily';
|
||||
$labels['weekly'] = 'weekly';
|
||||
$labels['monthly'] = 'monthly';
|
||||
$labels['yearly'] = 'annually';
|
||||
$labels['rdate'] = 'on dates';
|
||||
$labels['every'] = 'Every';
|
||||
$labels['days'] = 'day(s)';
|
||||
$labels['weeks'] = 'week(s)';
|
||||
$labels['months'] = 'month(s)';
|
||||
$labels['years'] = 'year(s) in:';
|
||||
$labels['bydays'] = 'On';
|
||||
$labels['untildate'] = 'the';
|
||||
$labels['each'] = 'Each';
|
||||
$labels['onevery'] = 'On every';
|
||||
$labels['onsamedate'] = 'On the same date';
|
||||
$labels['forever'] = 'forever';
|
||||
$labels['recurrencend'] = 'until';
|
||||
$labels['forntimes'] = 'for $nr time(s)';
|
||||
$labels['first'] = 'first';
|
||||
$labels['second'] = 'second';
|
||||
$labels['third'] = 'third';
|
||||
$labels['fourth'] = 'fourth';
|
||||
$labels['last'] = 'last';
|
||||
$labels['dayofmonth'] = 'Day of month';
|
||||
$labels['addrdate'] = 'Add repeat date';
|
||||
|
||||
$labels['changeeventconfirm'] = 'Change event';
|
||||
$labels['removeeventconfirm'] = 'Remove event';
|
||||
$labels['removeeventconfirm'] = 'Delete event';
|
||||
$labels['changerecurringeventwarning'] = 'This is a recurring event. Would you like to edit the current event only, this and all future occurences, all occurences or save it as a new event?';
|
||||
$labels['removerecurringeventwarning'] = 'This is a recurring event. Would you like to remove the current event only, this and all future occurences or all occurences of this event?';
|
||||
$labels['removerecurringeventwarning'] = 'This is a recurring event. Would you like to delete the current event only, this and all future occurences or all occurences of this event?';
|
||||
$labels['removerecurringallonly'] = 'This is a recurring event. As a participant, you can only delete the entire event with all occurences.';
|
||||
$labels['currentevent'] = 'Current';
|
||||
$labels['futurevents'] = 'Future';
|
||||
$labels['allevents'] = 'All';
|
||||
$labels['saveasnew'] = 'Save as new';
|
||||
|
||||
// birthdays calendar
|
||||
$labels['birthdays'] = 'Birthdays';
|
||||
$labels['birthdayscalendar'] = 'Birthdays Calendar';
|
||||
$labels['displaybirthdayscalendar'] = 'Display birthdays calendar';
|
||||
$labels['birthdayscalendarsources'] = 'From these address books';
|
||||
$labels['birthdayeventtitle'] = '$name\'s Birthday';
|
||||
$labels['birthdayage'] = 'Age $age';
|
||||
|
||||
// history dialog
|
||||
$labels['eventchangelog'] = 'Change History';
|
||||
$labels['eventdiff'] = 'Changes from revisions $rev';
|
||||
$labels['revision'] = 'Revision';
|
||||
$labels['user'] = 'User';
|
||||
$labels['operation'] = 'Action';
|
||||
$labels['actionappend'] = 'Saved';
|
||||
$labels['actionmove'] = 'Moved';
|
||||
$labels['actiondelete'] = 'Deleted';
|
||||
$labels['compare'] = 'Compare';
|
||||
$labels['showrevision'] = 'Show this version';
|
||||
$labels['restore'] = 'Restore this version';
|
||||
$labels['eventnotfound'] = 'Failed to load event data';
|
||||
$labels['eventchangelognotavailable'] = 'Change history is not available for this event';
|
||||
$labels['eventdiffnotavailable'] = 'No comparison possible for the selected revisions';
|
||||
$labels['eventrestoreconfirm'] = 'Do you really want to restore revision $rev of this event? This will replace the current event with the old version.';
|
||||
|
||||
|
||||
// (hidden) titles and labels for accessibility annotations
|
||||
$labels['arialabelminical'] = 'Calendar date selection';
|
||||
$labels['arialabelcalendarview'] = 'Calendar view';
|
||||
$labels['arialabelsearchform'] = 'Event search form';
|
||||
$labels['arialabelquicksearchbox'] = 'Event search input';
|
||||
$labels['arialabelcalsearchform'] = 'Calendars search form';
|
||||
$labels['calendaractions'] = 'Calendar actions';
|
||||
$labels['arialabeleventattendees'] = 'Event participants list';
|
||||
$labels['arialabeleventresources'] = 'Event resources list';
|
||||
$labels['arialabelresourcesearchform'] = 'Resources search form';
|
||||
$labels['arialabelresourceselection'] = 'Available resources';
|
||||
|
||||
?>
|
||||
|
|
270
localization/es_AR.inc
Normal file
|
@ -0,0 +1,270 @@
|
|||
<?php
|
||||
/**
|
||||
* Localizations for Kolab Calendar plugin
|
||||
*
|
||||
* Copyright (C) 2014, Kolab Systems AG
|
||||
*
|
||||
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
|
||||
*/
|
||||
$labels['default_view'] = 'Vista predeterminada';
|
||||
$labels['time_format'] = 'Formato de hora';
|
||||
$labels['timeslots'] = 'Espacios por hora';
|
||||
$labels['first_day'] = 'Primer día de semana';
|
||||
$labels['first_hour'] = 'Primer hora a mostrar';
|
||||
$labels['workinghours'] = 'Horario laboral';
|
||||
$labels['add_category'] = 'Agregar categoría';
|
||||
$labels['remove_category'] = 'Eliminar categoría';
|
||||
$labels['defaultcalendar'] = 'Crear nuevos eventos en';
|
||||
$labels['eventcoloring'] = 'Colores de eventos';
|
||||
$labels['coloringmode0'] = 'De acuerdo al calendario';
|
||||
$labels['coloringmode1'] = 'De acuerdo a la categoría';
|
||||
$labels['coloringmode2'] = 'Calendario para borde, categoría para contenido';
|
||||
$labels['coloringmode3'] = 'Categoría para borde, calendario para contenido';
|
||||
$labels['afternothing'] = 'Hacer nada';
|
||||
$labels['aftertrash'] = 'Mover a la papelera';
|
||||
$labels['afterdelete'] = 'Eliminar el mensaje';
|
||||
$labels['afterflagdeleted'] = 'Marcar como eliminado';
|
||||
$labels['aftermoveto'] = 'Mover a...';
|
||||
$labels['itipoptions'] = 'Invitaciones del evento';
|
||||
$labels['afteraction'] = 'Luego que una invitación o actualización de mensaje es procesado';
|
||||
$labels['calendar'] = 'Calendario';
|
||||
$labels['calendars'] = 'Calendarios';
|
||||
$labels['category'] = 'Categoría';
|
||||
$labels['categories'] = 'Categorías';
|
||||
$labels['createcalendar'] = 'Crear nuevo calendario';
|
||||
$labels['editcalendar'] = 'Editar propiedades del calendario';
|
||||
$labels['name'] = 'Nombre';
|
||||
$labels['color'] = 'Color';
|
||||
$labels['day'] = 'Día';
|
||||
$labels['week'] = 'Semana';
|
||||
$labels['month'] = 'Mes';
|
||||
$labels['agenda'] = 'Agenda';
|
||||
$labels['new'] = 'Nuevo';
|
||||
$labels['new_event'] = 'Nuevo evento';
|
||||
$labels['edit_event'] = 'Editar evento';
|
||||
$labels['edit'] = 'Editar';
|
||||
$labels['save'] = 'Guardar';
|
||||
$labels['removelist'] = 'Eliminar de la lista';
|
||||
$labels['cancel'] = 'Cancelar';
|
||||
$labels['select'] = 'Seleccionar';
|
||||
$labels['print'] = 'Imprimir';
|
||||
$labels['printtitle'] = 'Imprimir calendarios';
|
||||
$labels['title'] = 'Sumario';
|
||||
$labels['description'] = 'Descripción';
|
||||
$labels['all-day'] = 'Todo el día';
|
||||
$labels['export'] = 'Exportar';
|
||||
$labels['exporttitle'] = 'Exportar a iCalendar';
|
||||
$labels['exportrange'] = 'Eventos de';
|
||||
$labels['exportattachments'] = 'Con adjunto';
|
||||
$labels['customdate'] = 'Fecha personalizada';
|
||||
$labels['location'] = 'Localización';
|
||||
$labels['url'] = 'URL';
|
||||
$labels['date'] = 'Fecha';
|
||||
$labels['start'] = 'Inicio';
|
||||
$labels['starttime'] = 'Hora de inicio';
|
||||
$labels['end'] = 'Fin';
|
||||
$labels['endtime'] = 'Hora de finalización';
|
||||
$labels['repeat'] = 'Repetir';
|
||||
$labels['selectdate'] = 'Elegir fecha';
|
||||
$labels['freebusy'] = 'Mostrarme como';
|
||||
$labels['free'] = 'Libre';
|
||||
$labels['busy'] = 'Ocupado';
|
||||
$labels['outofoffice'] = 'Fuera de la oficina';
|
||||
$labels['tentative'] = 'Tentativo';
|
||||
$labels['mystatus'] = 'Mi estado';
|
||||
$labels['status'] = 'Estado';
|
||||
$labels['status-confirmed'] = 'Confirmado';
|
||||
$labels['status-cancelled'] = 'Cancelado';
|
||||
$labels['priority'] = 'Prioridad';
|
||||
$labels['sensitivity'] = 'Privacidad';
|
||||
$labels['public'] = 'público';
|
||||
$labels['private'] = 'privado';
|
||||
$labels['confidential'] = 'confidencial';
|
||||
$labels['alarms'] = 'Recordatorio';
|
||||
$labels['comment'] = 'Comentario';
|
||||
$labels['created'] = 'Creado';
|
||||
$labels['changed'] = 'Última modificación';
|
||||
$labels['unknown'] = 'Desconocido';
|
||||
$labels['eventoptions'] = 'Opciones';
|
||||
$labels['generated'] = 'generado en';
|
||||
$labels['eventhistory'] = 'Historial';
|
||||
$labels['printdescriptions'] = 'Imprimir descripciones';
|
||||
$labels['parentcalendar'] = 'Insertar dentro';
|
||||
$labels['searchearlierdates'] = '« Buscar eventos anteriores';
|
||||
$labels['searchlaterdates'] = 'Buscar eventos posteriores »';
|
||||
$labels['andnmore'] = '$nr más...';
|
||||
$labels['togglerole'] = 'Click para cambiar rol';
|
||||
$labels['createfrommail'] = 'Guardar como evento';
|
||||
$labels['importevents'] = 'Importar eventos';
|
||||
$labels['importrange'] = 'Eventos de';
|
||||
$labels['onemonthback'] = '1 mes atrás';
|
||||
$labels['nmonthsback'] = '$nr meses atrás';
|
||||
$labels['showurl'] = 'Mostrar URL del calendario';
|
||||
$labels['showurldescription'] = 'Use la siguiente direccion para acceder (sólo lectura) a su calendario desde otras aplicaciones. Puede copiar y pegar esto dentro de cualquier software de calendario que soporte el formato iCal.';
|
||||
$labels['caldavurldescription'] = 'Copie esta direccion a su aplicación cliente <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a> (por ejemplo, Evolution o Mozilla Thunderbird) para sincronizar completamente este calendario específico con su ordenador o dispositivo móvil.';
|
||||
$labels['findcalendars'] = 'Encontrar calendarios...';
|
||||
$labels['searchterms'] = 'Buscar términos';
|
||||
$labels['calsearchresults'] = 'Calendarios disponibles';
|
||||
$labels['calendarsubscribe'] = 'Listar permanentemente';
|
||||
$labels['nocalendarsfound'] = 'No se encontraron calendarios';
|
||||
$labels['nrcalendarsfound'] = '$nr calendarios encontrados';
|
||||
$labels['quickview'] = 'Ver sólo este calendario';
|
||||
$labels['invitationspending'] = 'Invitaciones pendientes';
|
||||
$labels['invitationsdeclined'] = 'Invitaciones rechazadas';
|
||||
$labels['changepartstat'] = 'Cambiar el estado del participante';
|
||||
$labels['rsvpcomment'] = 'Texto de invitación';
|
||||
$labels['listrange'] = 'Rango a mostrar:';
|
||||
$labels['listsections'] = 'Dividir en:';
|
||||
$labels['smartsections'] = 'Secciones inteligentes';
|
||||
$labels['until'] = 'hasta';
|
||||
$labels['today'] = 'Hoy';
|
||||
$labels['tomorrow'] = 'Mañana';
|
||||
$labels['thisweek'] = 'Esta semana';
|
||||
$labels['nextweek'] = 'Próxima semana';
|
||||
$labels['prevweek'] = 'Semana anterior';
|
||||
$labels['thismonth'] = 'Este mes';
|
||||
$labels['nextmonth'] = 'Próximo mes';
|
||||
$labels['weekofyear'] = 'Semana';
|
||||
$labels['pastevents'] = 'Pasado';
|
||||
$labels['futureevents'] = 'Futuro';
|
||||
$labels['showalarms'] = 'Mostrar alarmas';
|
||||
$labels['defaultalarmtype'] = 'Configuración predeterminada de recordatorio';
|
||||
$labels['defaultalarmoffset'] = 'Tiempo predeterminado de recordatorio';
|
||||
$labels['attendee'] = 'Participante';
|
||||
$labels['role'] = 'Rol';
|
||||
$labels['availability'] = 'Disp.';
|
||||
$labels['confirmstate'] = 'Estado';
|
||||
$labels['addattendee'] = 'Agregar participante';
|
||||
$labels['roleorganizer'] = 'Organizador';
|
||||
$labels['rolerequired'] = 'Requerido';
|
||||
$labels['roleoptional'] = 'Opcional';
|
||||
$labels['rolechair'] = 'Jefe';
|
||||
$labels['rolenonparticipant'] = 'Ausente';
|
||||
$labels['cutypeindividual'] = 'Individual';
|
||||
$labels['cutypegroup'] = 'Grupo';
|
||||
$labels['cutyperesource'] = 'Recurso';
|
||||
$labels['cutyperoom'] = 'Habitación';
|
||||
$labels['availfree'] = 'Libre';
|
||||
$labels['availbusy'] = 'Ocupado';
|
||||
$labels['availunknown'] = 'Desconocido';
|
||||
$labels['availtentative'] = 'Tentativo';
|
||||
$labels['availoutofoffice'] = 'Fuera de la oficina';
|
||||
$labels['delegatedto'] = 'Delegado a:';
|
||||
$labels['delegatedfrom'] = 'Delegado de:';
|
||||
$labels['scheduletime'] = 'Buscar disponibilidad';
|
||||
$labels['sendinvitations'] = 'Enviar invitaciones';
|
||||
$labels['sendnotifications'] = 'Notificar a los participantes sobre las modificaciones';
|
||||
$labels['sendcancellation'] = 'Notificar a los participantes sobre la cancelación del evento';
|
||||
$labels['onlyworkinghours'] = 'Buscar disponibilidad dentro de mi horario laboral';
|
||||
$labels['reqallattendees'] = 'Requerido/todos los participantes';
|
||||
$labels['prevslot'] = 'Espacio anterior';
|
||||
$labels['nextslot'] = 'Espacio siguiente';
|
||||
$labels['suggestedslot'] = 'Espacio sugerido';
|
||||
$labels['noslotfound'] = 'Imposible encontrar un espacio libre';
|
||||
$labels['invitationsubject'] = 'Ha sido invitado a "$title"';
|
||||
$labels['invitationmailbody'] = "*\$title*\n\nCuándo: \$date\n\nInvitados: \$attendees\n\nEncontrará adjunto un archivo iCalendar con todos los detalles del evento, el cual puede importar a su aplicación de calendario.";
|
||||
$labels['invitationattendlinks'] = "En caso que su cliente de correo electrónico no soporte peticiones iTip puede usar el siguiente link para aceptar o declinar esta invitación:\n\$url";
|
||||
$labels['eventupdatesubject'] = '"$title" ha sido actualizado';
|
||||
$labels['eventupdatesubjectempty'] = 'Un evento que le interesa ha sido actualizado';
|
||||
$labels['eventupdatemailbody'] = "*\$title*\n\nCuándo: \$date\n\nInvitados: \$attendees\n\nEncontrará adjunto un archivo iCalendar con todos los detalles del evento, el cual puede importar a su aplicación de calendario.";
|
||||
$labels['eventcancelsubject'] = '"$title" has been canceled';
|
||||
$labels['eventcancelmailbody'] = "*\$title*\n\nCuándo: \$date\n\nInvitados: \$attendees\n\nEl evento ha sido cancelado por \$organizer.\n\nEncontrará adjunto un archivo iCalendar con todos los detalles actualizados del evento.";
|
||||
$labels['itipobjectnotfound'] = 'El evento referido por este mensaje no fue encontrado en su calendario.';
|
||||
$labels['itipmailbodyaccepted'] = "\$sender ha aceptado la invitación al siguiente evento:\n\n*\$title*\n\nCuándo: \$date\n\nInvitados: \$attendees";
|
||||
$labels['itipmailbodytentative'] = "\$sender ha tentativamente aceptado la invitación al siguiente evento:\n\n*\$title*\n\nCuándo: \$date\n\nInvitados: \$attendees";
|
||||
$labels['itipmailbodydeclined'] = "\$sender ha rechazado la invitación al siguiente evento:\n\n*\$title*\n\nCuándo: \$date\n\nInvitados: \$attendees";
|
||||
$labels['itipmailbodycancel'] = "\$sender ha rechazado tu participación en el siguiente evento:\n\n*\$title*\n\nCuándo:\$date";
|
||||
$labels['itipdeclineevent'] = '¿Quiere rechazar la invitación a este evento?';
|
||||
$labels['declinedeleteconfirm'] = '¿Quiere también eliminar este evento rechazado de su calendario?';
|
||||
$labels['itipcomment'] = 'Comentario de la invitación/notificación';
|
||||
$labels['itipcommenttitle'] = 'Este comentario será adjuntado al mensaje de invitación/notificación enviado a los participantes';
|
||||
$labels['notanattendee'] = 'No esta incluído en la lista de invitados a este evento';
|
||||
$labels['eventcancelled'] = 'El evento ha sido cancelado';
|
||||
$labels['saveincalendar'] = 'guardar en';
|
||||
$labels['updatemycopy'] = 'Actualizar mi calendario';
|
||||
$labels['savetocalendar'] = 'Guardar en el calendario';
|
||||
$labels['openpreview'] = 'Comprobar Calendario';
|
||||
$labels['noearlierevents'] = 'No hay eventos anteriores';
|
||||
$labels['nolaterevents'] = 'No hay eventos posteriores';
|
||||
$labels['resource'] = 'Recurso';
|
||||
$labels['addresource'] = 'Agendar recurso';
|
||||
$labels['findresources'] = 'Encontrar recursos';
|
||||
$labels['resourcedetails'] = 'Detalles';
|
||||
$labels['resourceavailability'] = 'Disponibilidad';
|
||||
$labels['resourceowner'] = 'Propietario';
|
||||
$labels['resourceadded'] = 'El recurso fue agregado a su evento';
|
||||
$labels['tabsummary'] = 'Sumario';
|
||||
$labels['tabrecurrence'] = 'Recurrencia';
|
||||
$labels['tabattendees'] = 'Participantes';
|
||||
$labels['tabresources'] = 'Recursos';
|
||||
$labels['tabattachments'] = 'Adjuntos';
|
||||
$labels['tabsharing'] = 'Compartir';
|
||||
$labels['deleteobjectconfirm'] = 'Confirme que desea eliminar este evento';
|
||||
$labels['deleteventconfirm'] = 'Confirme que desea eliminar este evento';
|
||||
$labels['deletecalendarconfirm'] = 'Confirme que desea eliminar este calendario con todos sus eventos';
|
||||
$labels['deletecalendarconfirmrecursive'] = 'Confirme que desea eliminar este calendario con todos sus eventos y sub-calendarios';
|
||||
$labels['savingdata'] = 'Guardando...';
|
||||
$labels['errorsaving'] = 'Falló guardando los cambios.';
|
||||
$labels['operationfailed'] = 'La operación falló.';
|
||||
$labels['invalideventdates'] = 'Ingresó fechas erroneas. Por favor compruebe los datos.';
|
||||
$labels['invalidcalendarproperties'] = 'Propiedades del calendario erroneas. Por favor ingrese un nombre válido.';
|
||||
$labels['searchnoresults'] = 'No hay eventos en los calendarios seleccionados.';
|
||||
$labels['successremoval'] = 'El evento ha sido eliminado exitosamente.';
|
||||
$labels['successrestore'] = 'El evento ha sido recuperado exitosamente.';
|
||||
$labels['errornotifying'] = 'Fallo al enviar las notificaciones del evento a los participantes';
|
||||
$labels['errorimportingevent'] = 'Fallo al importar el evento';
|
||||
$labels['importwarningexists'] = 'Una copia de este evento ya existe en su calendario.';
|
||||
$labels['newerversionexists'] = 'Ya existe una versión actualizada de este evento. Cancelado.';
|
||||
$labels['nowritecalendarfound'] = 'No hay calendarios para guardar el evento.';
|
||||
$labels['importedsuccessfully'] = 'El evento fue guardado en \'$calendar\' exitosamente';
|
||||
$labels['updatedsuccessfully'] = 'El evento fue actualizado exitosamente en \'$calendar\'';
|
||||
$labels['attendeupdateesuccess'] = 'Se actualizaron los estados de los participantes exitosamente';
|
||||
$labels['itipsendsuccess'] = 'Invitaciones enviadas a los participantes.';
|
||||
$labels['itipresponseerror'] = 'Fallo enviando la respuesta a la invitación de este evento';
|
||||
$labels['itipinvalidrequest'] = 'Esta invitación no es válida';
|
||||
$labels['sentresponseto'] = 'Se envió la respuesta a la invitación $mailto exitosamente';
|
||||
$labels['localchangeswarning'] = 'Se realizarán cambios que sólo serán reflejadas en su calendario y no serán enviadas al organizador del evento';
|
||||
$labels['importsuccess'] = 'Importados $nr eventos exitosamente';
|
||||
$labels['importnone'] = 'No se importaron eventos';
|
||||
$labels['importerror'] = 'Fallo al importar';
|
||||
$labels['aclnorights'] = 'No tiene permisos de administrador en este calendario.';
|
||||
$labels['changeeventconfirm'] = 'Cambiar evento';
|
||||
$labels['removeeventconfirm'] = 'Eliminar evento';
|
||||
$labels['changerecurringeventwarning'] = 'Este es un evento recurrente. ¿Desea editar solo el evento actual, este y las ocurrencias futuras, todas las ocurrencias o guardarlo como un evento nuevo?';
|
||||
$labels['removerecurringeventwarning'] = 'Este es un evento recurrente. ¿Desea eliminar solo el evento actual, este y las ocurrencias futuras o todas las ocurrencias del evento?';
|
||||
$labels['currentevent'] = 'Actual';
|
||||
$labels['futurevents'] = 'Futuro';
|
||||
$labels['allevents'] = 'Todos';
|
||||
$labels['saveasnew'] = 'Guardar como nuevo';
|
||||
$labels['birthdays'] = 'Cumpleaños';
|
||||
$labels['birthdayscalendar'] = 'Calendario de cumpleaños';
|
||||
$labels['displaybirthdayscalendar'] = 'Mostrar calendario de cumpleaños';
|
||||
$labels['birthdayscalendarsources'] = 'De estas libretas de direcciones';
|
||||
$labels['birthdayeventtitle'] = 'Cumpleaños de $name';
|
||||
$labels['birthdayage'] = 'Edad $age';
|
||||
$labels['eventchangelog'] = 'Cambiar Historial';
|
||||
$labels['eventdiff'] = 'Cambios de revisiones $rev';
|
||||
$labels['revision'] = 'Revisión';
|
||||
$labels['user'] = 'Usuario';
|
||||
$labels['operation'] = 'Acción';
|
||||
$labels['actionappend'] = 'Guardado';
|
||||
$labels['actionmove'] = 'Movido';
|
||||
$labels['actiondelete'] = 'Eliminado';
|
||||
$labels['compare'] = 'Comparar';
|
||||
$labels['showrevision'] = 'Mostrar esta versión';
|
||||
$labels['restore'] = 'Recuperar esta versión';
|
||||
$labels['eventnotfound'] = 'Fallo al cargar datos del evento';
|
||||
$labels['eventchangelognotavailable'] = 'Cambiar historial no esta disponible para este evento';
|
||||
$labels['eventdiffnotavailable'] = 'No es posible comparar las revisiones seleccionadas';
|
||||
$labels['eventrestoreconfirm'] = 'Confirme que quiere recuperar la revisión $rev de este evento. Esta acción reemplazará el evento actual con la versión anterior.';
|
||||
$labels['arialabelminical'] = 'Selección de fecha del calendario';
|
||||
$labels['arialabelcalendarview'] = 'Vista del calendario';
|
||||
$labels['arialabelsearchform'] = 'Formulario de búsqueda de evento';
|
||||
$labels['arialabelquicksearchbox'] = 'Entrada de búsqueda de evento';
|
||||
$labels['arialabelcalsearchform'] = 'Formulario de búsqueda de calendario';
|
||||
$labels['calendaractions'] = 'Acciones del calendario';
|
||||
$labels['arialabeleventattendees'] = 'Lista de participantes del evento';
|
||||
$labels['arialabeleventresources'] = 'Lista de recursos del evento';
|
||||
$labels['arialabelresourcesearchform'] = 'Formulario de búsqueda de recursos';
|
||||
$labels['arialabelresourceselection'] = 'Recursos disponibles';
|
||||
?>
|
|
@ -1,39 +1,210 @@
|
|||
<?php
|
||||
/**
|
||||
* RoundCube Calendar
|
||||
*
|
||||
* Plugin to add a calendar to RoundCube.
|
||||
*
|
||||
* @version 0.2 BETA 3
|
||||
* @author Lazlo Westerhof
|
||||
* @author David Iribas
|
||||
* @url http://rc-calendar.lazlo.me
|
||||
* @licence GNU GPL
|
||||
* @copyright (c) 2010 Lazlo Westerhof - Netherlands
|
||||
*
|
||||
**/
|
||||
|
||||
$labels = array();
|
||||
|
||||
// config
|
||||
$labels['default_view'] = 'Vista por defecto';
|
||||
$labels['time_format'] = 'Formato hora';
|
||||
$labels['timeslots'] = 'Periodos de hora';
|
||||
$labels['first_day'] = 'Primer dia';
|
||||
|
||||
// calendar
|
||||
$labels['calendar'] = 'Calendario';
|
||||
$labels['day'] = 'Dia';
|
||||
$labels['week'] = 'Semana';
|
||||
$labels['month'] = 'Mes';
|
||||
$labels['new_event'] = 'Nuevo evento';
|
||||
$labels['edit_event'] = 'Editar evento';
|
||||
$labels['save'] = 'Guardar';
|
||||
$labels['remove'] = 'Borrar';
|
||||
$labels['cancel'] = 'Cancelar';
|
||||
$labels['title'] = 'Resumen';
|
||||
$labels['description'] = 'Descripcion';
|
||||
$labels['all-day'] = 'dia-completo';
|
||||
$labels['export'] = 'Exportar a ICS';
|
||||
$labels['category'] = 'Categoria';
|
||||
?>
|
||||
<?php
|
||||
/**
|
||||
* Localizations for Kolab Calendar plugin
|
||||
*
|
||||
* Copyright (C) 2014, Kolab Systems AG
|
||||
*
|
||||
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
|
||||
*/
|
||||
$labels['default_view'] = 'Default view';
|
||||
$labels['time_format'] = 'Time format';
|
||||
$labels['timeslots'] = 'Time slots per hour';
|
||||
$labels['first_day'] = 'First weekday';
|
||||
$labels['first_hour'] = 'First hour to show';
|
||||
$labels['workinghours'] = 'Working hours';
|
||||
$labels['add_category'] = 'Add category';
|
||||
$labels['remove_category'] = 'Remove category';
|
||||
$labels['defaultcalendar'] = 'Create new events in';
|
||||
$labels['eventcoloring'] = 'Event coloring';
|
||||
$labels['coloringmode0'] = 'According to calendar';
|
||||
$labels['coloringmode1'] = 'According to category';
|
||||
$labels['coloringmode2'] = 'Calendar for outline, category for content';
|
||||
$labels['coloringmode3'] = 'Category for outline, calendar for content';
|
||||
$labels['calendar'] = 'Calendar';
|
||||
$labels['calendars'] = 'Calendarios';
|
||||
$labels['category'] = 'Category';
|
||||
$labels['categories'] = 'Categories';
|
||||
$labels['createcalendar'] = 'Create new calendar';
|
||||
$labels['editcalendar'] = 'Edit calendar properties';
|
||||
$labels['name'] = 'Nombre';
|
||||
$labels['color'] = 'Color';
|
||||
$labels['day'] = 'Day';
|
||||
$labels['week'] = 'Week';
|
||||
$labels['month'] = 'Month';
|
||||
$labels['agenda'] = 'Agenda';
|
||||
$labels['new'] = 'New';
|
||||
$labels['new_event'] = 'New event';
|
||||
$labels['edit_event'] = 'Edit event';
|
||||
$labels['edit'] = 'Editar';
|
||||
$labels['save'] = 'Guardar';
|
||||
$labels['removelist'] = 'Remove from list';
|
||||
$labels['cancel'] = 'Cancelar';
|
||||
$labels['select'] = 'Select';
|
||||
$labels['print'] = 'Print';
|
||||
$labels['printtitle'] = 'Print calendars';
|
||||
$labels['title'] = 'Summary';
|
||||
$labels['description'] = 'Descripción';
|
||||
$labels['all-day'] = 'all-day';
|
||||
$labels['export'] = 'Export';
|
||||
$labels['exporttitle'] = 'Export to iCalendar';
|
||||
$labels['exportrange'] = 'Events from';
|
||||
$labels['exportattachments'] = 'With attachments';
|
||||
$labels['customdate'] = 'Custom date';
|
||||
$labels['location'] = 'Location';
|
||||
$labels['url'] = 'URL';
|
||||
$labels['date'] = 'Date';
|
||||
$labels['start'] = 'Start';
|
||||
$labels['starttime'] = 'Start time';
|
||||
$labels['end'] = 'End';
|
||||
$labels['repeat'] = 'Repeat';
|
||||
$labels['selectdate'] = 'Choose date';
|
||||
$labels['freebusy'] = 'Show me as';
|
||||
$labels['free'] = 'Free';
|
||||
$labels['busy'] = 'Busy';
|
||||
$labels['outofoffice'] = 'Out of Office';
|
||||
$labels['tentative'] = 'Tentative';
|
||||
$labels['status'] = 'Status';
|
||||
$labels['status-cancelled'] = 'Cancelled';
|
||||
$labels['priority'] = 'Priority';
|
||||
$labels['sensitivity'] = 'Privacy';
|
||||
$labels['public'] = 'public';
|
||||
$labels['private'] = 'private';
|
||||
$labels['confidential'] = 'confidential';
|
||||
$labels['links'] = 'Reference';
|
||||
$labels['alarms'] = 'Reminder';
|
||||
$labels['comment'] = 'Comentario';
|
||||
$labels['created'] = 'Created';
|
||||
$labels['changed'] = 'Last Modified';
|
||||
$labels['unknown'] = 'Unknown';
|
||||
$labels['eventoptions'] = 'Opciones';
|
||||
$labels['generated'] = 'generated at';
|
||||
$labels['removelink'] = 'Remove email reference';
|
||||
$labels['printdescriptions'] = 'Print descriptions';
|
||||
$labels['parentcalendar'] = 'Insert inside';
|
||||
$labels['searchearlierdates'] = '« Search for earlier events';
|
||||
$labels['searchlaterdates'] = 'Search for later events »';
|
||||
$labels['andnmore'] = '$nr more...';
|
||||
$labels['togglerole'] = 'Click to toggle role';
|
||||
$labels['createfrommail'] = 'Save as event';
|
||||
$labels['importevents'] = 'Import events';
|
||||
$labels['importrange'] = 'Events from';
|
||||
$labels['onemonthback'] = '1 month back';
|
||||
$labels['nmonthsback'] = '$nr months back';
|
||||
$labels['showurl'] = 'Show calendar URL';
|
||||
$labels['showurldescription'] = 'Use the following address to access (read only) your calendar from other applications. You can copy and paste this into any calendar software that supports the iCal format.';
|
||||
$labels['caldavurldescription'] = 'Copy this address to a <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a> client application (e.g. Evolution or Mozilla Thunderbird) to fully synchronize this specific calendar with your computer or mobile device.';
|
||||
$labels['searchterms'] = 'Search terms';
|
||||
$labels['calendarsubscribe'] = 'List permanently';
|
||||
$labels['listrange'] = 'Range to display:';
|
||||
$labels['listsections'] = 'Divide into:';
|
||||
$labels['smartsections'] = 'Smart sections';
|
||||
$labels['until'] = 'until';
|
||||
$labels['today'] = 'Today';
|
||||
$labels['tomorrow'] = 'Tomorrow';
|
||||
$labels['thisweek'] = 'This week';
|
||||
$labels['nextweek'] = 'Next week';
|
||||
$labels['thismonth'] = 'This month';
|
||||
$labels['nextmonth'] = 'Next month';
|
||||
$labels['weekofyear'] = 'Week';
|
||||
$labels['pastevents'] = 'Past';
|
||||
$labels['futureevents'] = 'Future';
|
||||
$labels['showalarms'] = 'Show reminders';
|
||||
$labels['defaultalarmtype'] = 'Default reminder setting';
|
||||
$labels['defaultalarmoffset'] = 'Default reminder time';
|
||||
$labels['attendee'] = 'Participant';
|
||||
$labels['role'] = 'Rol';
|
||||
$labels['availability'] = 'Avail.';
|
||||
$labels['confirmstate'] = 'Status';
|
||||
$labels['addattendee'] = 'Add participant';
|
||||
$labels['roleorganizer'] = 'Organizer';
|
||||
$labels['rolerequired'] = 'Requerido';
|
||||
$labels['roleoptional'] = 'Opcional';
|
||||
$labels['rolechair'] = 'Chair';
|
||||
$labels['rolenonparticipant'] = 'Absent';
|
||||
$labels['cutypeindividual'] = 'Individual';
|
||||
$labels['cutypegroup'] = 'Grupo';
|
||||
$labels['cutyperesource'] = 'Recurso';
|
||||
$labels['cutyperoom'] = 'Room';
|
||||
$labels['availfree'] = 'Free';
|
||||
$labels['availbusy'] = 'Busy';
|
||||
$labels['availunknown'] = 'Unknown';
|
||||
$labels['availtentative'] = 'Tentative';
|
||||
$labels['availoutofoffice'] = 'Out of Office';
|
||||
$labels['delegatedto'] = 'Delegated to: ';
|
||||
$labels['delegatedfrom'] = 'Delegated from: ';
|
||||
$labels['scheduletime'] = 'Find availability';
|
||||
$labels['sendinvitations'] = 'Send invitations';
|
||||
$labels['sendnotifications'] = 'Notify participants about modifications';
|
||||
$labels['sendcancellation'] = 'Notify participants about event cancellation';
|
||||
$labels['onlyworkinghours'] = 'Find availability within my working hours';
|
||||
$labels['reqallattendees'] = 'Required/all participants';
|
||||
$labels['prevslot'] = 'Previous Slot';
|
||||
$labels['nextslot'] = 'Next Slot';
|
||||
$labels['noslotfound'] = 'Unable to find a free time slot';
|
||||
$labels['invitationsubject'] = 'You\'ve been invited to "$title"';
|
||||
$labels['invitationmailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nPlease find attached an iCalendar file with all the event details which you can import to your calendar application.";
|
||||
$labels['invitationattendlinks'] = "In case your email client doesn't support iTip requests you can use the following link to either accept or decline this invitation:\n\$url";
|
||||
$labels['eventupdatesubject'] = '"$title" has been updated';
|
||||
$labels['eventupdatesubjectempty'] = 'An event that concerns you has been updated';
|
||||
$labels['eventupdatemailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nPlease find attached an iCalendar file with the updated event details which you can import to your calendar application.";
|
||||
$labels['eventcancelsubject'] = '"$title" has been canceled';
|
||||
$labels['eventcancelmailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nThe event has been cancelled by \$organizer.\n\nPlease find attached an iCalendar file with the updated event details.";
|
||||
$labels['itipmailbodyaccepted'] = "\$sender has accepted the invitation to the following event:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
|
||||
$labels['itipmailbodytentative'] = "\$sender has tentatively accepted the invitation to the following event:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
|
||||
$labels['itipmailbodydeclined'] = "\$sender has declined the invitation to the following event:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
|
||||
$labels['itipdeclineevent'] = 'Do you want to decline your invitation to this event?';
|
||||
$labels['declinedeleteconfirm'] = 'Do you also want to delete this declined event from your calendar?';
|
||||
$labels['itipcomment'] = 'Invitation/notification comment';
|
||||
$labels['notanattendee'] = 'You\'re not listed as an attendee of this event';
|
||||
$labels['eventcancelled'] = 'The event has been cancelled';
|
||||
$labels['saveincalendar'] = 'save in';
|
||||
$labels['resource'] = 'Recurso';
|
||||
$labels['resourcedetails'] = 'Detalles';
|
||||
$labels['tabsummary'] = 'Summary';
|
||||
$labels['tabrecurrence'] = 'Recurrence';
|
||||
$labels['tabattendees'] = 'Participants';
|
||||
$labels['tabresources'] = 'Recursos';
|
||||
$labels['tabattachments'] = 'Attachments';
|
||||
$labels['tabsharing'] = 'Sharing';
|
||||
$labels['deleteobjectconfirm'] = 'Do you really want to delete this event?';
|
||||
$labels['deleteventconfirm'] = 'Do you really want to delete this event?';
|
||||
$labels['deletecalendarconfirm'] = 'Do you really want to delete this calendar with all its events?';
|
||||
$labels['deletecalendarconfirmrecursive'] = 'Do you really want to delete this calendar with all its events and sub-calendars?';
|
||||
$labels['savingdata'] = 'Guardando datos...';
|
||||
$labels['errorsaving'] = 'Failed to save changes.';
|
||||
$labels['operationfailed'] = 'The requested operation failed.';
|
||||
$labels['invalideventdates'] = 'Invalid dates entered! Please check your input.';
|
||||
$labels['invalidcalendarproperties'] = 'Invalid calendar properties! Please set a valid name.';
|
||||
$labels['searchnoresults'] = 'No events found in the selected calendars.';
|
||||
$labels['successremoval'] = 'The event has been deleted successfully.';
|
||||
$labels['successrestore'] = 'The event has been restored successfully.';
|
||||
$labels['errornotifying'] = 'Failed to send notifications to event participants';
|
||||
$labels['errorimportingevent'] = 'Failed to import the event';
|
||||
$labels['newerversionexists'] = 'A newer version of this event already exists! Aborted.';
|
||||
$labels['nowritecalendarfound'] = 'No calendar found to save the event';
|
||||
$labels['importedsuccessfully'] = 'The event was successfully added to \'$calendar\'';
|
||||
$labels['attendeupdateesuccess'] = 'Successfully updated the participant\'s status';
|
||||
$labels['itipsendsuccess'] = 'Invitation sent to participants.';
|
||||
$labels['itipresponseerror'] = 'Failed to send the response to this event invitation';
|
||||
$labels['itipinvalidrequest'] = 'This invitation is no longer valid';
|
||||
$labels['sentresponseto'] = 'Successfully sent invitation response to $mailto';
|
||||
$labels['localchangeswarning'] = 'You are about to make changes that will only be reflected on your calendar and not be sent to the organizer of the event.';
|
||||
$labels['importsuccess'] = 'Successfully imported $nr events';
|
||||
$labels['importnone'] = 'No events found to be imported';
|
||||
$labels['importerror'] = 'An error occured while importing';
|
||||
$labels['aclnorights'] = 'You do not have administrator rights on this calendar.';
|
||||
$labels['changeeventconfirm'] = 'Change event';
|
||||
$labels['changerecurringeventwarning'] = 'This is a recurring event. Would you like to edit the current event only, this and all future occurences, all occurences or save it as a new event?';
|
||||
$labels['currentevent'] = 'Current';
|
||||
$labels['futurevents'] = 'Future';
|
||||
$labels['allevents'] = 'All';
|
||||
$labels['saveasnew'] = 'Save as new';
|
||||
$labels['birthdays'] = 'Birthdays';
|
||||
$labels['birthdayscalendar'] = 'Birthdays Calendar';
|
||||
$labels['displaybirthdayscalendar'] = 'Display birthdays calendar';
|
||||
$labels['birthdayscalendarsources'] = 'From these address books';
|
||||
$labels['birthdayeventtitle'] = '$name\'s Birthday';
|
||||
$labels['birthdayage'] = 'Age $age';
|
||||
$labels['user'] = 'Usuario';
|
||||
$labels['operation'] = 'Acción';
|
||||
?>
|
||||
|
|
|
@ -1,127 +1,146 @@
|
|||
<?php
|
||||
|
||||
$labels = array();
|
||||
|
||||
// preferences
|
||||
$labels['default_view'] = 'Vaikevaade';
|
||||
$labels['time_format'] = 'Aja vorming';
|
||||
$labels['timeslots'] = 'Ajaühikuid päevas';
|
||||
$labels['first_day'] = 'Esimene päev';
|
||||
$labels['first_hour'] = 'Esimene tund';
|
||||
$labels['workinghours'] = 'Tööaeg';
|
||||
$labels['add_category'] = 'Lisa kategooria';
|
||||
$labels['remove_category'] = 'Kustuta kategooria';
|
||||
$labels['defaultcalendar'] = 'Loo uued sündmused';
|
||||
$labels['eventcoloring'] = 'Sündmuste värvid';
|
||||
$labels['coloringmode0'] = 'Vastavalt kalendrile';
|
||||
$labels['coloringmode1'] = 'Vastavalt kategooriale';
|
||||
$labels['coloringmode2'] = 'Kalender väljaspool, kategooria sisul';
|
||||
$labels['coloringmode3'] = 'Kategooria väljaspool, kalender sisul';
|
||||
|
||||
// calendar
|
||||
$labels['calendar'] = 'Kalender';
|
||||
$labels['calendars'] = 'Kalendrid';
|
||||
$labels['category'] = 'Kategooria';
|
||||
$labels['categories'] = 'Kategooriad';
|
||||
$labels['createcalendar'] = 'Uus kalender';
|
||||
$labels['editcalendar'] = 'Muuda seadeid';
|
||||
/**
|
||||
* Localizations for Kolab Calendar plugin
|
||||
*
|
||||
* Copyright (C) 2014, Kolab Systems AG
|
||||
*
|
||||
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
|
||||
*/
|
||||
$labels['default_view'] = 'Default view';
|
||||
$labels['time_format'] = 'Time format';
|
||||
$labels['timeslots'] = 'Time slots per hour';
|
||||
$labels['first_day'] = 'First weekday';
|
||||
$labels['first_hour'] = 'First hour to show';
|
||||
$labels['workinghours'] = 'Working hours';
|
||||
$labels['add_category'] = 'Add category';
|
||||
$labels['remove_category'] = 'Remove category';
|
||||
$labels['defaultcalendar'] = 'Create new events in';
|
||||
$labels['eventcoloring'] = 'Event coloring';
|
||||
$labels['coloringmode0'] = 'According to calendar';
|
||||
$labels['coloringmode1'] = 'According to category';
|
||||
$labels['coloringmode2'] = 'Calendar for outline, category for content';
|
||||
$labels['coloringmode3'] = 'Category for outline, calendar for content';
|
||||
$labels['calendar'] = 'Calendar';
|
||||
$labels['calendars'] = 'Calendars';
|
||||
$labels['category'] = 'Category';
|
||||
$labels['categories'] = 'Categories';
|
||||
$labels['createcalendar'] = 'Create new calendar';
|
||||
$labels['editcalendar'] = 'Edit calendar properties';
|
||||
$labels['name'] = 'Nimi';
|
||||
$labels['color'] = 'Värv';
|
||||
$labels['day'] = 'Päev';
|
||||
$labels['week'] = 'Nädal';
|
||||
$labels['month'] = 'Kuu';
|
||||
$labels['color'] = 'Color';
|
||||
$labels['day'] = 'Day';
|
||||
$labels['week'] = 'Week';
|
||||
$labels['month'] = 'Month';
|
||||
$labels['agenda'] = 'Agenda';
|
||||
$labels['new'] = 'Uus';
|
||||
$labels['new_event'] = 'Uus sündmus';
|
||||
$labels['edit_event'] = 'Muuda sündmust';
|
||||
$labels['edit'] = 'Redigeeri';
|
||||
$labels['new'] = 'New';
|
||||
$labels['new_event'] = 'New event';
|
||||
$labels['edit_event'] = 'Edit event';
|
||||
$labels['edit'] = 'Edit';
|
||||
$labels['save'] = 'Salvesta';
|
||||
$labels['remove'] = 'Kustuta';
|
||||
$labels['cancel'] = 'Tühista';
|
||||
$labels['select'] = 'Märgi';
|
||||
$labels['print'] = 'Trüki';
|
||||
$labels['printtitle'] = 'Trüki kalendrid';
|
||||
$labels['title'] = 'Kokkuvõte';
|
||||
$labels['description'] = 'Selgitus';
|
||||
$labels['all-day'] = 'kogu päev';
|
||||
$labels['export'] = 'Ekspordi';
|
||||
$labels['exporttitle'] = 'Ekspordi iCalendar';
|
||||
$labels['location'] = 'Askukoht';
|
||||
$labels['date'] = 'Kuupäev';
|
||||
$labels['start'] = 'Algus';
|
||||
$labels['end'] = 'Lõpp';
|
||||
$labels['selectdate'] = 'Vali kuupäev';
|
||||
$labels['freebusy'] = 'Näita mind';
|
||||
$labels['free'] = 'vabana';
|
||||
$labels['busy'] = 'hõivatuna';
|
||||
$labels['outofoffice'] = 'kontorist eemal';
|
||||
$labels['tentative'] = 'ei tea';
|
||||
$labels['priority'] = 'Prioriteet';
|
||||
$labels['sensitivity'] = 'Privaatsus';
|
||||
$labels['public'] = 'avalik';
|
||||
$labels['private'] = 'varjatud';
|
||||
$labels['confidential'] = 'konfidentsiaalne';
|
||||
$labels['alarms'] = 'Meeldetuletus';
|
||||
$labels['generated'] = 'loodud';
|
||||
$labels['printdescriptions'] = 'Väljuta kirjeldus';
|
||||
$labels['parentcalendar'] = 'Sisesta';
|
||||
$labels['searchearlierdates'] = '« Otsi varasemaid sündmusi';
|
||||
$labels['searchlaterdates'] = 'Otsi hilisemaid sündmusi »';
|
||||
$labels['andnmore'] = '$nr rohkem...';
|
||||
$labels['togglerole'] = 'Kliki rolli muutmiseks';
|
||||
$labels['createfrommail'] = 'Salvesta sündmusena';
|
||||
$labels['importevents'] = 'Impordi sündmused';
|
||||
$labels['importrange'] = 'Sündmused alates';
|
||||
$labels['onemonthback'] = '1 kuu tagasi';
|
||||
$labels['nmonthsback'] = '$nr kuud tagasi';
|
||||
$labels['showurl'] = 'Näita kalendi URLi';
|
||||
$labels['showurldescription'] = 'Kasuta seda aadressi kalendri lugemisõiguse andmiseks iCal vormingus.';
|
||||
|
||||
// agenda view
|
||||
$labels['listrange'] = 'Näita ajavahemikku:';
|
||||
$labels['listsections'] = 'Jaga:';
|
||||
$labels['smartsections'] = 'nutikad osad';
|
||||
$labels['until'] = 'kuni';
|
||||
$labels['today'] = 'täna';
|
||||
$labels['tomorrow'] = 'homme';
|
||||
$labels['thisweek'] = 'see nädal';
|
||||
$labels['nextweek'] = 'järgmine nädal';
|
||||
$labels['thismonth'] = 'Sel kuul';
|
||||
$labels['nextmonth'] = 'Järgmisel kuul';
|
||||
$labels['weekofyear'] = 'Nädal aastas';
|
||||
$labels['pastevents'] = 'Möödunud';
|
||||
$labels['futureevents'] = 'Tulevased';
|
||||
|
||||
// alarm/reminder settings
|
||||
$labels['showalarms'] = 'Näita meeldetuletusi';
|
||||
$labels['defaultalarmtype'] = 'Meeldetuletuse vaiketüüp';
|
||||
$labels['defaultalarmoffset'] = 'Meeldetuletuse vaikeaeg';
|
||||
|
||||
// attendees
|
||||
$labels['attendee'] = 'Ósavõtja';
|
||||
$labels['role'] = 'Roll';
|
||||
$labels['availability'] = 'Saadavus';
|
||||
$labels['confirmstate'] = 'Staatus';
|
||||
$labels['addattendee'] = 'Lisa osaleja';
|
||||
$labels['roleorganizer'] = 'Korraldaja';
|
||||
$labels['rolerequired'] = 'Vajalik';
|
||||
$labels['roleoptional'] = 'Teised';
|
||||
$labels['roleresource'] = 'Ressurss';
|
||||
$labels['availfree'] = 'Vaba';
|
||||
$labels['availbusy'] = 'Hõivatud';
|
||||
$labels['availunknown'] = 'Teadmata';
|
||||
$labels['availtentative'] = 'Tinglik';
|
||||
$labels['availoutofoffice'] = 'Kontorist eemal';
|
||||
$labels['scheduletime'] = 'Otsi saadavust';
|
||||
$labels['sendinvitations'] = 'Saada kutsed';
|
||||
$labels['sendnotifications'] = 'Anna osavõtjaile muutustest teada';
|
||||
$labels['sendcancellation'] = 'Anna osavõtjaile tühistamisest teada';
|
||||
$labels['onlyworkinghours'] = 'Leia vaba aeg minu tööajast';
|
||||
$labels['reqallattendees'] = 'Vajalikud/teised osavõtjad';
|
||||
$labels['prevslot'] = 'Eelnev aeg';
|
||||
$labels['nextslot'] = 'Järgnev aeg';
|
||||
$labels['noslotfound'] = 'Ei õnnestu leida vaba aega';
|
||||
$labels['invitationsubject'] = 'Olete kutsutud "$title"';
|
||||
$labels['removelist'] = 'Remove from list';
|
||||
$labels['cancel'] = 'Cancel';
|
||||
$labels['select'] = 'Select';
|
||||
$labels['print'] = 'Print';
|
||||
$labels['printtitle'] = 'Print calendars';
|
||||
$labels['title'] = 'Summary';
|
||||
$labels['description'] = 'Description';
|
||||
$labels['all-day'] = 'all-day';
|
||||
$labels['export'] = 'Export';
|
||||
$labels['exporttitle'] = 'Export to iCalendar';
|
||||
$labels['exportrange'] = 'Events from';
|
||||
$labels['exportattachments'] = 'With attachments';
|
||||
$labels['customdate'] = 'Custom date';
|
||||
$labels['location'] = 'Location';
|
||||
$labels['url'] = 'URL';
|
||||
$labels['date'] = 'Date';
|
||||
$labels['start'] = 'Start';
|
||||
$labels['starttime'] = 'Start time';
|
||||
$labels['end'] = 'End';
|
||||
$labels['repeat'] = 'Repeat';
|
||||
$labels['selectdate'] = 'Choose date';
|
||||
$labels['freebusy'] = 'Show me as';
|
||||
$labels['free'] = 'Free';
|
||||
$labels['busy'] = 'Busy';
|
||||
$labels['outofoffice'] = 'Absent';
|
||||
$labels['tentative'] = 'Tentative';
|
||||
$labels['status'] = 'Status';
|
||||
$labels['status-cancelled'] = 'Cancelled';
|
||||
$labels['priority'] = 'Priority';
|
||||
$labels['sensitivity'] = 'Privacy';
|
||||
$labels['public'] = 'public';
|
||||
$labels['private'] = 'private';
|
||||
$labels['confidential'] = 'confidential';
|
||||
$labels['links'] = 'Reference';
|
||||
$labels['alarms'] = 'Reminder';
|
||||
$labels['comment'] = 'Kommentaar';
|
||||
$labels['created'] = 'Created';
|
||||
$labels['changed'] = 'Last Modified';
|
||||
$labels['unknown'] = 'Unknown';
|
||||
$labels['generated'] = 'generated at';
|
||||
$labels['removelink'] = 'Remove email reference';
|
||||
$labels['printdescriptions'] = 'Print descriptions';
|
||||
$labels['parentcalendar'] = 'Insert inside';
|
||||
$labels['searchearlierdates'] = '« Search for earlier events';
|
||||
$labels['searchlaterdates'] = 'Search for later events »';
|
||||
$labels['andnmore'] = '$nr more...';
|
||||
$labels['togglerole'] = 'Click to toggle role';
|
||||
$labels['createfrommail'] = 'Save as event';
|
||||
$labels['importevents'] = 'Import events';
|
||||
$labels['importrange'] = 'Events from';
|
||||
$labels['onemonthback'] = '1 month back';
|
||||
$labels['nmonthsback'] = '$nr months back';
|
||||
$labels['showurl'] = 'Show calendar URL';
|
||||
$labels['showurldescription'] = 'Use the following address to access (read only) your calendar from other applications. You can copy and paste this into any calendar software that supports the iCal format.';
|
||||
$labels['caldavurldescription'] = 'Copy this address to a <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a> client application (e.g. Evolution or Mozilla Thunderbird) to fully synchronize this specific calendar with your computer or mobile device.';
|
||||
$labels['searchterms'] = 'Search terms';
|
||||
$labels['calendarsubscribe'] = 'List permanently';
|
||||
$labels['listrange'] = 'Range to display:';
|
||||
$labels['listsections'] = 'Divide into:';
|
||||
$labels['smartsections'] = 'Smart sections';
|
||||
$labels['until'] = 'until';
|
||||
$labels['today'] = 'Today';
|
||||
$labels['tomorrow'] = 'Tomorrow';
|
||||
$labels['thisweek'] = 'This week';
|
||||
$labels['nextweek'] = 'Next week';
|
||||
$labels['thismonth'] = 'This month';
|
||||
$labels['nextmonth'] = 'Next month';
|
||||
$labels['weekofyear'] = 'Week';
|
||||
$labels['pastevents'] = 'Past';
|
||||
$labels['futureevents'] = 'Future';
|
||||
$labels['showalarms'] = 'Show reminders';
|
||||
$labels['defaultalarmtype'] = 'Default reminder setting';
|
||||
$labels['defaultalarmoffset'] = 'Default reminder time';
|
||||
$labels['attendee'] = 'Participant';
|
||||
$labels['role'] = 'Role';
|
||||
$labels['availability'] = 'Avail.';
|
||||
$labels['confirmstate'] = 'Status';
|
||||
$labels['addattendee'] = 'Add participant';
|
||||
$labels['roleorganizer'] = 'Organizer';
|
||||
$labels['rolerequired'] = 'Kohustuslik';
|
||||
$labels['roleoptional'] = 'Optional';
|
||||
$labels['rolechair'] = 'Chair';
|
||||
$labels['rolenonparticipant'] = 'Absent';
|
||||
$labels['cutypeindividual'] = 'Individual';
|
||||
$labels['cutypegroup'] = 'Group';
|
||||
$labels['cutyperesource'] = 'Resource';
|
||||
$labels['cutyperoom'] = 'Room';
|
||||
$labels['availfree'] = 'Free';
|
||||
$labels['availbusy'] = 'Busy';
|
||||
$labels['availunknown'] = 'Unknown';
|
||||
$labels['availtentative'] = 'Tentative';
|
||||
$labels['availoutofoffice'] = 'Absent';
|
||||
$labels['delegatedto'] = 'Delegated to: ';
|
||||
$labels['delegatedfrom'] = 'Delegated from: ';
|
||||
$labels['scheduletime'] = 'Find availability';
|
||||
$labels['sendinvitations'] = 'Send invitations';
|
||||
$labels['sendnotifications'] = 'Notify participants about modifications';
|
||||
$labels['sendcancellation'] = 'Notify participants about event cancellation';
|
||||
$labels['onlyworkinghours'] = 'Find availability within my working hours';
|
||||
$labels['reqallattendees'] = 'Required/all participants';
|
||||
$labels['prevslot'] = 'Previous Slot';
|
||||
$labels['nextslot'] = 'Next Slot';
|
||||
$labels['noslotfound'] = 'Unable to find a free time slot';
|
||||
$labels['invitationsubject'] = 'You\'ve been invited to "$title"';
|
||||
$labels['invitationmailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nPlease find attached an iCalendar file with all the event details which you can import to your calendar application.";
|
||||
$labels['invitationattendlinks'] = "In case your email client doesn't support iTip requests you can use the following link to either accept or decline this invitation:\n\$url";
|
||||
$labels['eventupdatesubject'] = '"$title" has been updated';
|
||||
|
@ -129,102 +148,60 @@ $labels['eventupdatesubjectempty'] = 'An event that concerns you has been update
|
|||
$labels['eventupdatemailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nPlease find attached an iCalendar file with the updated event details which you can import to your calendar application.";
|
||||
$labels['eventcancelsubject'] = '"$title" has been canceled';
|
||||
$labels['eventcancelmailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nThe event has been cancelled by \$organizer.\n\nPlease find attached an iCalendar file with the updated event details.";
|
||||
|
||||
// invitation handling
|
||||
$labels['itipinvitation'] = 'Invitation to';
|
||||
$labels['itipupdate'] = 'Update of';
|
||||
$labels['itipcancellation'] = 'Cancelled:';
|
||||
$labels['itipreply'] = 'Reply to';
|
||||
$labels['itipaccepted'] = 'Accept';
|
||||
$labels['itiptentative'] = 'Maybe';
|
||||
$labels['itipdeclined'] = 'Decline';
|
||||
$labels['itipsubjectaccepted'] = '"$title" has been accepted by $name';
|
||||
$labels['itipsubjecttentative'] = '"$title" has been tentatively accepted by $name';
|
||||
$labels['itipsubjectdeclined'] = '"$title" has been declined by $name';
|
||||
$labels['itipmailbodyaccepted'] = "\$sender has accepted the invitation to the following event:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
|
||||
$labels['itipmailbodytentative'] = "\$sender has tentatively accepted the invitation to the following event:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
|
||||
$labels['itipmailbodydeclined'] = "\$sender has declined the invitation to the following event:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
|
||||
$labels['itipdeclineevent'] = 'Do you want to decline your invitation to this event?';
|
||||
$labels['importtocalendar'] = 'Salvesta minu kalendrisse';
|
||||
$labels['removefromcalendar'] = 'Kustuta kalendrist';
|
||||
$labels['updateattendeestatus'] = 'Värskenda osavõtja staatust';
|
||||
$labels['acceptinvitation'] = 'Kas kutse vastu võtta?';
|
||||
$labels['youhaveaccepted'] = 'Oled kutse vastu võtnud';
|
||||
$labels['youhavetentative'] = 'Oled kutse tingimisi vastu võtnud';
|
||||
$labels['youhavedeclined'] = 'Oled kutsest keeldunud';
|
||||
$labels['notanattendee'] = 'Sa ei ole osavõtjate nimekirjas';
|
||||
$labels['eventcancelled'] = 'Sündmus on tühistatud';
|
||||
$labels['saveincalendar'] = 'salvesta';
|
||||
|
||||
// event dialog tabs
|
||||
$labels['tabsummary'] = 'Kokkuvõte';
|
||||
$labels['tabrecurrence'] = 'Kordumine';
|
||||
$labels['tabattendees'] = 'Osavõtjad';
|
||||
$labels['tabattachments'] = 'Manused';
|
||||
$labels['tabsharing'] = 'Jagamine';
|
||||
|
||||
// messages
|
||||
$labels['deleteventconfirm'] = 'Kas tõsti kustutada see sündmus?';
|
||||
$labels['deletecalendarconfirm'] = 'Kas tõesti kustutada see kalender koos kõigi sündmustega?';
|
||||
$labels['savingdata'] = 'Andmete salvestamine...';
|
||||
$labels['errorsaving'] = 'Andmete salvestamine ebaõnnestus.';
|
||||
$labels['operationfailed'] = 'Operatsioon nurjus.';
|
||||
$labels['invalideventdates'] = 'Kuupäev on vigane! Kontrollige vormingut.';
|
||||
$labels['invalidcalendarproperties'] = 'Vigane kalendri atribuut! Valige sobiv atribuut.';
|
||||
$labels['searchnoresults'] = 'Sellest kalendrist ei leitud ühtki sündmust.';
|
||||
$labels['successremoval'] = 'Sündmus on edukalt kustutatud.';
|
||||
$labels['successrestore'] = 'Sündmus on edukalt taastatud.';
|
||||
$labels['errornotifying'] = 'Teate saatmine osavõtjaile ebaõnnestus.';
|
||||
$labels['errorimportingevent'] = 'Sündmuse import ebaõnnestus.';
|
||||
$labels['newerversionexists'] = 'Uuem versioon sündmusest on juba olemas! Täitmine peatatud.';
|
||||
$labels['nowritecalendarfound'] = 'Kirjutamiseks sobivat kalendrit ei leitud.';
|
||||
$labels['importedsuccessfully'] = 'Sündmus on edukalt lisatud kalendrisse \'$calendar\'';
|
||||
$labels['attendeupdateesuccess'] = 'Osavõtja staatus on uuendatud';
|
||||
$labels['itipsendsuccess'] = 'Kutse on saadetud osavõtjaile.';
|
||||
$labels['itipresponseerror'] = 'Vastuse saatmine kutsele ebaõnnestus.';
|
||||
$labels['itipinvalidrequest'] = 'See kutse pole enam kehtiv.';
|
||||
$labels['sentresponseto'] = 'Vastus kutsele on edukalt saadetud aadressile $mailto';
|
||||
$labels['localchangeswarning'] = 'Muutuseid on näha ainult teie isiklikus kalendris.';
|
||||
$labels['importsuccess'] = 'Edukalt imporditud $nr sündmust';
|
||||
$labels['importnone'] = 'Ühtki imporditavat sündmust ei leitud';
|
||||
$labels['importerror'] = 'Importimise käigus tekkis viga';
|
||||
$labels['aclnorights'] = 'Ei ole selle kalendri administreerimisõigusi.';
|
||||
|
||||
// recurrence form
|
||||
$labels['repeat'] = 'Korda';
|
||||
$labels['frequency'] = 'Sagedus';
|
||||
$labels['never'] = 'mitte kunagi';
|
||||
$labels['daily'] = 'iga päev';
|
||||
$labels['weekly'] = 'nädalati';
|
||||
$labels['monthly'] = 'iga kuu';
|
||||
$labels['yearly'] = 'iga aasta';
|
||||
$labels['every'] = 'Iga';
|
||||
$labels['days'] = 'päevad';
|
||||
$labels['weeks'] = 'nädalad';
|
||||
$labels['months'] = 'kuud';
|
||||
$labels['years'] = 'aastad:';
|
||||
$labels['bydays'] = 'On';
|
||||
$labels['untildate'] = 'the';
|
||||
$labels['each'] = 'Iga';
|
||||
$labels['onevery'] = 'Igal';
|
||||
$labels['onsamedate'] = 'samal kuupäeval';
|
||||
$labels['forever'] = 'alati';
|
||||
$labels['recurrencend'] = 'kuni';
|
||||
$labels['forntimes'] = ' $nr korda';
|
||||
$labels['first'] = 'esimesel';
|
||||
$labels['second'] = 'teisel';
|
||||
$labels['third'] = 'kolmandal';
|
||||
$labels['fourth'] = 'neljandal';
|
||||
$labels['last'] = 'viimasel';
|
||||
$labels['dayofmonth'] = 'Kuupäev';
|
||||
|
||||
$labels['changeeventconfirm'] = 'Muuda sündmust';
|
||||
$labels['removeeventconfirm'] = 'Kustuta sündmus';
|
||||
$labels['changerecurringeventwarning'] = 'See on korduv sündmus. Kas muuta seda sündmust, seda ja kõiki järgnevaid, või salvestada uue sündmusena?';
|
||||
$labels['removerecurringeventwarning'] = 'See on korduv sündmus. Kas kustudada see sündmus, see ja kõik järgnevad sündmused?';
|
||||
$labels['currentevent'] = 'Praegune';
|
||||
$labels['futurevents'] = 'Tulevikusündmused';
|
||||
$labels['allevents'] = 'Kõik sündmused';
|
||||
$labels['saveasnew'] = 'Salvesta uuena';
|
||||
|
||||
$labels['declinedeleteconfirm'] = 'Do you also want to delete this declined event from your calendar?';
|
||||
$labels['itipcomment'] = 'Invitation/notification comment';
|
||||
$labels['notanattendee'] = 'You\'re not listed as an attendee of this event';
|
||||
$labels['eventcancelled'] = 'The event has been cancelled';
|
||||
$labels['saveincalendar'] = 'save in';
|
||||
$labels['resource'] = 'Resource';
|
||||
$labels['resourcedetails'] = 'Details';
|
||||
$labels['tabsummary'] = 'Summary';
|
||||
$labels['tabrecurrence'] = 'Recurrence';
|
||||
$labels['tabattendees'] = 'Participants';
|
||||
$labels['tabattachments'] = 'Attachments';
|
||||
$labels['tabsharing'] = 'Sharing';
|
||||
$labels['deleteobjectconfirm'] = 'Do you really want to delete this event?';
|
||||
$labels['deleteventconfirm'] = 'Do you really want to delete this event?';
|
||||
$labels['deletecalendarconfirm'] = 'Do you really want to delete this calendar with all its events?';
|
||||
$labels['deletecalendarconfirmrecursive'] = 'Do you really want to delete this calendar with all its events and sub-calendars?';
|
||||
$labels['savingdata'] = 'Saving data...';
|
||||
$labels['errorsaving'] = 'Failed to save changes.';
|
||||
$labels['operationfailed'] = 'The requested operation failed.';
|
||||
$labels['invalideventdates'] = 'Invalid dates entered! Please check your input.';
|
||||
$labels['invalidcalendarproperties'] = 'Invalid calendar properties! Please set a valid name.';
|
||||
$labels['searchnoresults'] = 'No events found in the selected calendars.';
|
||||
$labels['successremoval'] = 'The event has been deleted successfully.';
|
||||
$labels['successrestore'] = 'The event has been restored successfully.';
|
||||
$labels['errornotifying'] = 'Failed to send notifications to event participants';
|
||||
$labels['errorimportingevent'] = 'Failed to import the event';
|
||||
$labels['newerversionexists'] = 'A newer version of this event already exists! Aborted.';
|
||||
$labels['nowritecalendarfound'] = 'No calendar found to save the event';
|
||||
$labels['importedsuccessfully'] = 'The event was successfully added to \'$calendar\'';
|
||||
$labels['attendeupdateesuccess'] = 'Successfully updated the participant\'s status';
|
||||
$labels['itipsendsuccess'] = 'Invitation sent to participants.';
|
||||
$labels['itipresponseerror'] = 'Failed to send the response to this event invitation';
|
||||
$labels['itipinvalidrequest'] = 'This invitation is no longer valid';
|
||||
$labels['sentresponseto'] = 'Successfully sent invitation response to $mailto';
|
||||
$labels['localchangeswarning'] = 'You are about to make changes that will only be reflected on your calendar and not be sent to the organizer of the event.';
|
||||
$labels['importsuccess'] = 'Successfully imported $nr events';
|
||||
$labels['importnone'] = 'No events found to be imported';
|
||||
$labels['importerror'] = 'An error occured while importing';
|
||||
$labels['aclnorights'] = 'You do not have administrator rights on this calendar.';
|
||||
$labels['changeeventconfirm'] = 'Change event';
|
||||
$labels['changerecurringeventwarning'] = 'This is a recurring event. Would you like to edit the current event only, this and all future occurences, all occurences or save it as a new event?';
|
||||
$labels['currentevent'] = 'Current';
|
||||
$labels['futurevents'] = 'Future';
|
||||
$labels['allevents'] = 'All';
|
||||
$labels['saveasnew'] = 'Save as new';
|
||||
$labels['birthdays'] = 'Birthdays';
|
||||
$labels['birthdayscalendar'] = 'Birthdays Calendar';
|
||||
$labels['displaybirthdayscalendar'] = 'Display birthdays calendar';
|
||||
$labels['birthdayscalendarsources'] = 'From these address books';
|
||||
$labels['birthdayeventtitle'] = '$name\'s Birthday';
|
||||
$labels['birthdayage'] = 'Age $age';
|
||||
$labels['operation'] = 'Toiming';
|
||||
?>
|
||||
|
|
271
localization/fi_FI.inc
Normal file
|
@ -0,0 +1,271 @@
|
|||
<?php
|
||||
/**
|
||||
* Localizations for Kolab Calendar plugin
|
||||
*
|
||||
* Copyright (C) 2014, Kolab Systems AG
|
||||
*
|
||||
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
|
||||
*/
|
||||
$labels['default_view'] = 'Oletusnäkymä';
|
||||
$labels['time_format'] = 'Aikamuoto';
|
||||
$labels['timeslots'] = 'Ajankohdat per tunti';
|
||||
$labels['first_day'] = 'Viikon ensimmäinen päivä';
|
||||
$labels['first_hour'] = 'Ensimmäinen näytettävä tunti';
|
||||
$labels['workinghours'] = 'Työaika';
|
||||
$labels['add_category'] = 'Lisää luokka';
|
||||
$labels['remove_category'] = 'Poista luokka';
|
||||
$labels['defaultcalendar'] = 'Luo uudet tapahtumat kohteeseen';
|
||||
$labels['eventcoloring'] = 'Tapahtuman väritys';
|
||||
$labels['coloringmode0'] = 'Kalenterin mukaan';
|
||||
$labels['coloringmode1'] = 'Luokan mukaan';
|
||||
$labels['afternothing'] = 'Älä tee mitään';
|
||||
$labels['aftertrash'] = 'Siirrä roskakoriin';
|
||||
$labels['afterdelete'] = 'Poista viesti';
|
||||
$labels['afterflagdeleted'] = 'Merkitse poistettavaksi';
|
||||
$labels['aftermoveto'] = 'Siirrä...';
|
||||
$labels['itipoptions'] = 'Tapahtuman kutsut';
|
||||
$labels['afteraction'] = 'Kun kutsu tai päivitysviesti on käsitelty';
|
||||
$labels['calendar'] = 'Kalenteri';
|
||||
$labels['calendars'] = 'Kalenterit';
|
||||
$labels['category'] = 'Luokka';
|
||||
$labels['categories'] = 'Luokat';
|
||||
$labels['createcalendar'] = 'Luo uusi kalenteri';
|
||||
$labels['editcalendar'] = 'Muokkaa kalenterin ominaisuuksia';
|
||||
$labels['name'] = 'Nimi';
|
||||
$labels['color'] = 'Väri';
|
||||
$labels['day'] = 'Päivä';
|
||||
$labels['week'] = 'Viikko';
|
||||
$labels['month'] = 'Kuukausi';
|
||||
$labels['agenda'] = 'Asialista';
|
||||
$labels['new'] = 'Uusi';
|
||||
$labels['new_event'] = 'Uusi tapahtuma';
|
||||
$labels['edit_event'] = 'Muokkaa tapahtumaa';
|
||||
$labels['edit'] = 'Muokkaa';
|
||||
$labels['save'] = 'Tallenna';
|
||||
$labels['removelist'] = 'Poista listasta';
|
||||
$labels['cancel'] = 'Peru';
|
||||
$labels['select'] = 'Valitse';
|
||||
$labels['print'] = 'Tulosta';
|
||||
$labels['printtitle'] = 'Tulosta kalenterit';
|
||||
$labels['title'] = 'Yhteenveto';
|
||||
$labels['description'] = 'Kuvaus';
|
||||
$labels['all-day'] = 'koko päivä';
|
||||
$labels['export'] = 'Vie';
|
||||
$labels['exporttitle'] = 'Vie iCalendar-muotoon';
|
||||
$labels['exportrange'] = 'Tapahtumat';
|
||||
$labels['exportattachments'] = 'Liitteiden kanssa';
|
||||
$labels['customdate'] = 'Kustomoitu aika';
|
||||
$labels['location'] = 'Sijainti';
|
||||
$labels['url'] = 'Osoite';
|
||||
$labels['date'] = 'Päiväys';
|
||||
$labels['start'] = 'Alkaa';
|
||||
$labels['starttime'] = 'Aloitusaika';
|
||||
$labels['end'] = 'Päättyy';
|
||||
$labels['endtime'] = 'Päättymisaika';
|
||||
$labels['repeat'] = 'Toista';
|
||||
$labels['selectdate'] = 'Valitse päiväys';
|
||||
$labels['freebusy'] = 'Aseta tilakseni';
|
||||
$labels['free'] = 'Vapaa';
|
||||
$labels['busy'] = 'Varattu';
|
||||
$labels['outofoffice'] = 'Ei toimistolla';
|
||||
$labels['tentative'] = 'Alustava';
|
||||
$labels['mystatus'] = 'Tilani';
|
||||
$labels['status'] = 'Tila';
|
||||
$labels['status-confirmed'] = 'Vahvistettu';
|
||||
$labels['status-cancelled'] = 'Peruttu';
|
||||
$labels['priority'] = 'Tärkeys';
|
||||
$labels['sensitivity'] = 'Yksityisyys';
|
||||
$labels['public'] = 'julkinen';
|
||||
$labels['private'] = 'yksityinen';
|
||||
$labels['confidential'] = 'luottamuksellinen';
|
||||
$labels['links'] = 'Viittaus';
|
||||
$labels['alarms'] = 'Muistutus';
|
||||
$labels['comment'] = 'Kommentti';
|
||||
$labels['created'] = 'Luotu';
|
||||
$labels['changed'] = 'Viimeksi muokattu';
|
||||
$labels['unknown'] = 'Tuntematon';
|
||||
$labels['eventoptions'] = 'Valinnat';
|
||||
$labels['generated'] = 'generoitu';
|
||||
$labels['eventhistory'] = 'Historia';
|
||||
$labels['removelink'] = 'Poista sähköpostiviittaus';
|
||||
$labels['printdescriptions'] = 'Tulosta kuvaukset';
|
||||
$labels['searchearlierdates'] = '« Etsi aiempia tapahtumia';
|
||||
$labels['searchlaterdates'] = 'Etsi myöhempiä tapahtumia »';
|
||||
$labels['andnmore'] = '$nr lisää...';
|
||||
$labels['togglerole'] = 'Klikkaa vaihtaaksesi rooli';
|
||||
$labels['createfrommail'] = 'Tallenna tapahtumana';
|
||||
$labels['importevents'] = 'Tuo tapahtumat';
|
||||
$labels['importrange'] = 'Tapahtumat';
|
||||
$labels['onemonthback'] = '1 kuukauden ajalta';
|
||||
$labels['nmonthsback'] = '$nr kuukauden ajalta';
|
||||
$labels['showurl'] = 'Näytä kalenterin osoite';
|
||||
$labels['showurldescription'] = 'Käytä seuraavia osoitteita avataksesi kalenterisi pelkässä lukumuodossa muissa sovelluksissa. Voit kopioida ja liittää osoitteen mihin tahansa iCal-muotoa tukevaan kalenterisovellukseen.';
|
||||
$labels['caldavurldescription'] = 'Kopioi tämä osoite <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a-asiakassovellukseen (esim. Evolution tai Mozilla Thunderbird) synkronoidaksesi tämän kalenterin tietokoneesi tai mobiililaitteesi kanssa.';
|
||||
$labels['findcalendars'] = 'Etsi kalentereita...';
|
||||
$labels['searchterms'] = 'Hakuehdot';
|
||||
$labels['calsearchresults'] = 'Saatavilla olevat kalenterit';
|
||||
$labels['calendarsubscribe'] = 'Luetteloi pysyvästi';
|
||||
$labels['nocalendarsfound'] = 'Kalentereita ei löytynyt';
|
||||
$labels['nrcalendarsfound'] = '$nr kalenteria löytynyt';
|
||||
$labels['quickview'] = 'Näytä vain tämä kalenteri';
|
||||
$labels['invitationspending'] = 'Odottavat kutsut';
|
||||
$labels['invitationsdeclined'] = 'Torjutut kutsut';
|
||||
$labels['changepartstat'] = 'Muuta osallistujan tilaa';
|
||||
$labels['rsvpcomment'] = 'Kutsuteksti';
|
||||
$labels['listrange'] = 'Näytettävä aikaväli';
|
||||
$labels['listsections'] = 'Jaa osiin:';
|
||||
$labels['smartsections'] = 'Älykkäät osiot';
|
||||
$labels['until'] = 'kunnes';
|
||||
$labels['today'] = 'Tänään';
|
||||
$labels['tomorrow'] = 'Huomenna';
|
||||
$labels['thisweek'] = 'Tällä viikolla';
|
||||
$labels['nextweek'] = 'Ensi viikolla';
|
||||
$labels['prevweek'] = 'Edellinen viikko';
|
||||
$labels['thismonth'] = 'Tässä kuussa';
|
||||
$labels['nextmonth'] = 'Ensi kuussa';
|
||||
$labels['weekofyear'] = 'Viikko';
|
||||
$labels['pastevents'] = 'Menneet';
|
||||
$labels['futureevents'] = 'Tulevat';
|
||||
$labels['showalarms'] = 'Näytä muistutukset';
|
||||
$labels['defaultalarmtype'] = 'Muistutuksen oletusasetus';
|
||||
$labels['defaultalarmoffset'] = 'Muistutuksen oletusaika';
|
||||
$labels['attendee'] = 'Osallistujat';
|
||||
$labels['role'] = 'Rooli';
|
||||
$labels['availability'] = 'Saatavilla';
|
||||
$labels['confirmstate'] = 'Tila';
|
||||
$labels['addattendee'] = 'Lisää osallistuja';
|
||||
$labels['roleorganizer'] = 'Järjestäjä';
|
||||
$labels['rolerequired'] = 'Vaadittu';
|
||||
$labels['roleoptional'] = 'Valinnainen';
|
||||
$labels['rolechair'] = 'Kutsuja';
|
||||
$labels['rolenonparticipant'] = 'Poissaoleva';
|
||||
$labels['cutypeindividual'] = 'Yksityishenkilö';
|
||||
$labels['cutypegroup'] = 'Ryhmä';
|
||||
$labels['cutyperesource'] = 'Resurssi';
|
||||
$labels['cutyperoom'] = 'Huone';
|
||||
$labels['availfree'] = 'Vapaa';
|
||||
$labels['availbusy'] = 'Varattu';
|
||||
$labels['availunknown'] = 'Tuntematon';
|
||||
$labels['availtentative'] = 'Alustava';
|
||||
$labels['availoutofoffice'] = 'Ei toimistolla';
|
||||
$labels['delegatedto'] = 'Delegoitu henkilölle:';
|
||||
$labels['delegatedfrom'] = 'Delegoitus henkilöltä:';
|
||||
$labels['scheduletime'] = 'Etsi saatavuus';
|
||||
$labels['sendinvitations'] = 'Lähetä kutsut';
|
||||
$labels['sendnotifications'] = 'Ilmoita osallistujille muutoksista';
|
||||
$labels['sendcancellation'] = 'Ilmoita osallistujille tapahtuman perumisesta';
|
||||
$labels['onlyworkinghours'] = 'Etsi saatavuutta työajan sisältä';
|
||||
$labels['reqallattendees'] = 'Vaadittu/kaikki osallistujat';
|
||||
$labels['prevslot'] = 'Edellinen ajankohta';
|
||||
$labels['nextslot'] = 'Seuraava ajankohta';
|
||||
$labels['suggestedslot'] = 'Ehdotettu ajankohta';
|
||||
$labels['noslotfound'] = 'Vapaata ajankohtaa ei löytynyt';
|
||||
$labels['invitationsubject'] = 'Sinut on kutsuttu tapahtumaan "$title"';
|
||||
$labels['invitationmailbody'] = "*\$title*\n\nMilloin: \$date\n\nKutsutut: \$attendees\n\nOhessa iCalendar -tiedosto mistä löytyvät kaikki tapahtuman yksityistiedot. Voit tuoda tämän tiedoston kalenteriohjelmaasi.";
|
||||
$labels['invitationattendlinks'] = "Mikäli sähköpostiohjelmasi ei tue iTip pyyntöjä, voit aina käyttää ao. osoitetta kutsun hyväksymiseen / hylkäämiseen:\n\$url";
|
||||
$labels['eventupdatesubject'] = '"$title" on päivitetty';
|
||||
$labels['eventupdatesubjectempty'] = 'Sinua koskeva tapahtuma on päivitetty';
|
||||
$labels['eventupdatemailbody'] = "*\$title*\n\nMilloin: \$date\n\nKutsutut: \$attendees\n\nOhessa iCalendar -tiedosto mistä löytyvät kaikki päivitetyn tapahtuman yksityistiedot. Voit tuoda tämän tiedoston kalenteriohjelmaasi.";
|
||||
$labels['eventcancelsubject'] = '"$title" on peruttu';
|
||||
$labels['eventcancelmailbody'] = "*\$title*\n\nMilloin: \$date\n\nKutsutut: \$attendees\n\nTämä tapahtuma on peruttu \$organizer toimesta.\n\nLöydät liitteenä iCalendar -tiedoston tapahtuman päivitetyin tiedoin.";
|
||||
$labels['itipobjectnotfound'] = 'Viestissä mainittua tapahtumaa ei löydy kalenteristasi.';
|
||||
$labels['itipmailbodyaccepted'] = "\$sender on hyväksynyt kutsun seuraavaan tapahtumaan:\n\n*\$title*\n\nMilloin: \$date\n\nKutsutut: \$attendees";
|
||||
$labels['itipmailbodytentative'] = "\$sender on alustavasti hyväksynyt kutsun seuraavaan tapahtumaan:\n\n*\$title*\n\nMilloin: \$date\n\nKutsutut: \$attendees";
|
||||
$labels['itipmailbodydeclined'] = "\$sender on hylännyt kutsun seuraavaan tapahtumaan:\n\n*\$title*\n\nMilloin: \$date\n\nKutsutut: \$attendees";
|
||||
$labels['itipmailbodycancel'] = "\$sender on hylännyt osallistumisesi tapahtumaan:\n\n*\$title*\n\nMilloin: \$date";
|
||||
$labels['itipmailbodydelegated'] = "\$sender on delegoinut osallistumisensa seuraavaan tapahtumaan:\n\n*\$title*\n\nAjankohta: \$date";
|
||||
$labels['itipmailbodydelegatedto'] = "\$sender on delegoinut osallistumisensa sinulle seuraavaan tapahtumaan:\n\n*\$title*\n\nAjankohta: \$date";
|
||||
$labels['itipdeclineevent'] = 'Haluatko perua kutsun tähän tapahtumaan?';
|
||||
$labels['declinedeleteconfirm'] = 'Haluatko poistaa tämän hylätyn tapahtuman kalenteristasi?';
|
||||
$labels['itipcomment'] = 'Kutsun/herätteen kommentit';
|
||||
$labels['itipcommenttitle'] = 'Tämä kommentti liitetään osallistujille lähetettävään kutsuun/heräteviestiin';
|
||||
$labels['notanattendee'] = 'Sinua ei ole määritetty tapahtuman osanottajaksi';
|
||||
$labels['eventcancelled'] = 'Tapahtuma on peruttu';
|
||||
$labels['updatemycopy'] = 'Päivitä kalenterini';
|
||||
$labels['savetocalendar'] = 'Tallenna kalenteriin';
|
||||
$labels['openpreview'] = 'Tarkista kalenteri';
|
||||
$labels['noearlierevents'] = 'Ei aiempia tapahtumia';
|
||||
$labels['nolaterevents'] = 'Ei myöhempiä tapahtumia';
|
||||
$labels['resource'] = 'Resurssi';
|
||||
$labels['addresource'] = 'Varaa resurssi';
|
||||
$labels['findresources'] = 'Etsi resursseja';
|
||||
$labels['resourcedetails'] = 'Tiedot';
|
||||
$labels['resourceavailability'] = 'Saatavuus';
|
||||
$labels['resourceowner'] = 'Omistaja';
|
||||
$labels['resourceadded'] = 'Resurssi on liitetty tapahtumaasi';
|
||||
$labels['tabsummary'] = 'Yhteenveto';
|
||||
$labels['tabrecurrence'] = 'Toistuminen';
|
||||
$labels['tabattendees'] = 'Osallistujat';
|
||||
$labels['tabresources'] = 'Resurssit';
|
||||
$labels['tabattachments'] = 'Liitteet';
|
||||
$labels['tabsharing'] = 'Jakaminen';
|
||||
$labels['deleteobjectconfirm'] = 'Haluatko varmasti poistaa tämän tapahtuman?';
|
||||
$labels['deleteventconfirm'] = 'Haluatko varmasti poistaa tämän tapahtuman?';
|
||||
$labels['deletecalendarconfirm'] = 'Haluatko varmasti poistaa tämän kalenterin ja kaikki sen tapahtumat?';
|
||||
$labels['deletecalendarconfirmrecursive'] = 'Haluatko varmasti poistaa tämän kalenterin ja kaikki sen tapahtumat sekä alikalenterit?';
|
||||
$labels['savingdata'] = 'Tallennetaan tietoja...';
|
||||
$labels['errorsaving'] = 'Muutosten tallentaminen epäonnistui.';
|
||||
$labels['operationfailed'] = 'Pyydetty toiminto epäonnistui.';
|
||||
$labels['invalideventdates'] = 'Annettu virheellisiä päivämääriä! Tarkista syöte.';
|
||||
$labels['invalidcalendarproperties'] = 'Kalenterin ominaisuudet ovat virheelliset. Aseta kelvollinen nimi.';
|
||||
$labels['searchnoresults'] = 'Valituista kalentereista ei löytynyt tapahtumia.';
|
||||
$labels['successremoval'] = 'Tapahtuma on poistettu onnistuneesti.';
|
||||
$labels['successrestore'] = 'Tapahtuma on palautettu onnistuneesti.';
|
||||
$labels['errornotifying'] = 'Herätteen lähetys osallistujille epäonnistui';
|
||||
$labels['errorimportingevent'] = 'Tapahtuman tuonti epäonnistui';
|
||||
$labels['importwarningexists'] = 'Tämän tapahtuman kopio löytyy jo kalenteristasi';
|
||||
$labels['newerversionexists'] = 'Uudempi versio tästä tapahtumasta on jo olemassa! Keskeytetty.';
|
||||
$labels['nowritecalendarfound'] = 'Tapahtuman tallentamiseksi ei löytynyt kalenteria';
|
||||
$labels['importedsuccessfully'] = 'Tapahtuma lisättiin onnistuneesti kalenteriin \'$calendar\'';
|
||||
$labels['updatedsuccessfully'] = 'Tapahtuma on onnistuneesti päivitetty kalenterissa \'$calendar\'';
|
||||
$labels['attendeupdateesuccess'] = 'Osallistujan tila päivitetty onnistuneesti';
|
||||
$labels['itipsendsuccess'] = 'Kutsu lähetetty osallistujille.';
|
||||
$labels['itipresponseerror'] = 'Vastauksen lähettäminen tapahtumakutsuun epäonnistui';
|
||||
$labels['itipinvalidrequest'] = 'Kutsu ei ole enää kelvollinen';
|
||||
$labels['sentresponseto'] = 'Vastaus kutsuun lähetetty onnistuneesti sähköpostiin $mailto';
|
||||
$labels['localchangeswarning'] = 'Olet tekemässä muutoksia, jotka vaikuttavat ainoastaan omaan kalenteriisi. Muutoksia ei lähetetä tapahtuman järjestäjälle.';
|
||||
$labels['importsuccess'] = '$nr tapahtumaa tuotiin onnistuneesti';
|
||||
$labels['importnone'] = 'Tuotavaksi tarkoitettuja tapahtumia ei löytynyt';
|
||||
$labels['importerror'] = 'Tuotaessa tapahtui virhe';
|
||||
$labels['aclnorights'] = 'Sinulla ei ole ylläpitäjän oikeuksia tähän kalenteriin.';
|
||||
$labels['changeeventconfirm'] = 'Vaihda tapahtuma';
|
||||
$labels['removeeventconfirm'] = 'Poista tapahtuma';
|
||||
$labels['changerecurringeventwarning'] = 'Tämä on tuistuva tapahtuma. Haluatko muokata vain tätä ajankohtaa, tätä ja tulevia tapahtuman ajankohtia, kaikkia tapahtuman ajankohtia vai tallentaa kokonaan uutena tapahtumana? ';
|
||||
$labels['removerecurringeventwarning'] = 'Tämä on toistuva tapahtuma. Haluatko poistaa vain nykyisen tapahtuman, nykyisen tapahtuman ja tulevaisuuden tapahtumat vai kaikki tapahtumaan liittyvät merkinnät?';
|
||||
$labels['removerecurringallonly'] = 'Tämä on toistuva tapahtuma. Osallistujana voit poistaa vain koko tapahtuman kaikkine toistumiskertoineen.';
|
||||
$labels['currentevent'] = 'Nykyinen';
|
||||
$labels['futurevents'] = 'Tulevat';
|
||||
$labels['allevents'] = 'Kaikki';
|
||||
$labels['saveasnew'] = 'Tallenna uutena';
|
||||
$labels['birthdays'] = 'Syntymäpäivät';
|
||||
$labels['birthdayscalendar'] = 'Syntymäpäivät kalenteri';
|
||||
$labels['displaybirthdayscalendar'] = 'Näytä syntymäpäivät kalenterissa';
|
||||
$labels['birthdayscalendarsources'] = 'Näistä osoitekirjoista';
|
||||
$labels['birthdayeventtitle'] = 'Syntymäpäivä: $name';
|
||||
$labels['birthdayage'] = 'Ikä $age';
|
||||
$labels['eventchangelog'] = 'Muuta historiaa';
|
||||
$labels['eventdiff'] = 'Muutokset versiosta $rev';
|
||||
$labels['revision'] = 'Versio';
|
||||
$labels['user'] = 'Käyttäjä';
|
||||
$labels['operation'] = 'Toiminto';
|
||||
$labels['actionappend'] = 'Tallennettu';
|
||||
$labels['actionmove'] = 'Siirretty';
|
||||
$labels['actiondelete'] = 'Poistettu';
|
||||
$labels['compare'] = 'Vertaa';
|
||||
$labels['showrevision'] = 'Näytä tämä versio';
|
||||
$labels['restore'] = 'Palauta tämä versio';
|
||||
$labels['eventnotfound'] = 'Tapahtumadatan lataus epäonnistui';
|
||||
$labels['eventchangelognotavailable'] = 'Tapahtuman muutoshistoria ei ole saatavilla';
|
||||
$labels['eventdiffnotavailable'] = 'Vertailu ei ole saatavilla valittujen versioiden välillä';
|
||||
$labels['eventrestoreconfirm'] = 'Haluatko varmasti palauttaa tämän tapahtuman version $rev? Nykyinen tapahtuma korvataan vanhalla versiolla.';
|
||||
$labels['arialabelminical'] = 'Kalenterin ajankohdan valinta';
|
||||
$labels['arialabelcalendarview'] = 'Kalenterinäkymä';
|
||||
$labels['arialabelsearchform'] = 'Tapahtumahaun lomake';
|
||||
$labels['arialabelquicksearchbox'] = 'Tapatumahaun syöte';
|
||||
$labels['arialabelcalsearchform'] = 'Kalenterihakujen lomake';
|
||||
$labels['calendaractions'] = 'Kalenterin toiminnot';
|
||||
$labels['arialabeleventattendees'] = 'Tapahtuman osallistujalista';
|
||||
$labels['arialabeleventresources'] = 'Tapahtuman resurssilista';
|
||||
$labels['arialabelresourcesearchform'] = 'Resurssien hakulomake';
|
||||
$labels['arialabelresourceselection'] = 'Saatavilla olevat resurssit';
|
||||
?>
|
|
@ -1,11 +1,14 @@
|
|||
<?php
|
||||
|
||||
$labels = array();
|
||||
|
||||
// preferences
|
||||
/**
|
||||
* Localizations for Kolab Calendar plugin
|
||||
*
|
||||
* Copyright (C) 2014, Kolab Systems AG
|
||||
*
|
||||
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
|
||||
*/
|
||||
$labels['default_view'] = 'Vue par défaut';
|
||||
$labels['time_format'] = 'Format de l\'heure';
|
||||
$labels['timeslots'] = 'Nombre d\'intervalle par heure';
|
||||
$labels['timeslots'] = 'Créneau horaire';
|
||||
$labels['first_day'] = 'Premier jour de la semaine';
|
||||
$labels['first_hour'] = 'Première heure à afficher';
|
||||
$labels['workinghours'] = 'Heures de travail';
|
||||
|
@ -17,8 +20,13 @@ $labels['coloringmode0'] = 'Selon l\'agenda';
|
|||
$labels['coloringmode1'] = 'Selon la catégorie';
|
||||
$labels['coloringmode2'] = 'Calendrier en contour, catégorie en contenu';
|
||||
$labels['coloringmode3'] = 'Catégorie en contour, calendrier en contenu';
|
||||
|
||||
// calendar
|
||||
$labels['afternothing'] = 'Ne rien faire';
|
||||
$labels['aftertrash'] = 'Déplacer dans la corbeille';
|
||||
$labels['afterdelete'] = 'Supprimer ce message';
|
||||
$labels['afterflagdeleted'] = 'Marquer comme supprimer';
|
||||
$labels['aftermoveto'] = 'Déplacer vers...';
|
||||
$labels['itipoptions'] = 'Invitations à l\'évenement';
|
||||
$labels['afteraction'] = 'Après une invitation ou une modification, le message est traité';
|
||||
$labels['calendar'] = 'Agenda';
|
||||
$labels['calendars'] = 'Agendas';
|
||||
$labels['category'] = 'Catégorie';
|
||||
|
@ -36,7 +44,7 @@ $labels['new_event'] = 'Nouvel évènement';
|
|||
$labels['edit_event'] = 'Modifier l\'évènement';
|
||||
$labels['edit'] = 'Modifier';
|
||||
$labels['save'] = 'Enregistrer';
|
||||
$labels['remove'] = 'Supprimer';
|
||||
$labels['removelist'] = 'supprimer de la liste';
|
||||
$labels['cancel'] = 'Annuler';
|
||||
$labels['select'] = 'Sélectionner';
|
||||
$labels['print'] = 'Imprimer';
|
||||
|
@ -46,23 +54,42 @@ $labels['description'] = 'Description';
|
|||
$labels['all-day'] = 'Toute la journée';
|
||||
$labels['export'] = 'Exporter';
|
||||
$labels['exporttitle'] = 'Exporter vers iCalendar';
|
||||
$labels['exportrange'] = 'Évènements depuis';
|
||||
$labels['exportattachments'] = 'With attachments';
|
||||
$labels['customdate'] = 'Date personnalisée';
|
||||
$labels['location'] = 'Lieu';
|
||||
$labels['url'] = 'URL';
|
||||
$labels['date'] = 'Date';
|
||||
$labels['start'] = 'Début';
|
||||
$labels['starttime'] = 'Début';
|
||||
$labels['end'] = 'Fin';
|
||||
$labels['endtime'] = 'Fin';
|
||||
$labels['repeat'] = 'Répéter';
|
||||
$labels['selectdate'] = 'Sélectionner une date';
|
||||
$labels['freebusy'] = 'Montrez moi comme';
|
||||
$labels['free'] = 'Libre';
|
||||
$labels['busy'] = 'Occupé';
|
||||
$labels['outofoffice'] = 'Absent';
|
||||
$labels['tentative'] = 'Provisoire';
|
||||
$labels['mystatus'] = 'Mon status';
|
||||
$labels['status'] = 'Statut';
|
||||
$labels['status-confirmed'] = 'Confirmé';
|
||||
$labels['status-cancelled'] = 'Annulée';
|
||||
$labels['priority'] = 'Priorité';
|
||||
$labels['sensitivity'] = 'Diffusion';
|
||||
$labels['public'] = 'publique';
|
||||
$labels['private'] = 'privée';
|
||||
$labels['confidential'] = 'Confidentiel';
|
||||
$labels['links'] = 'Référence';
|
||||
$labels['alarms'] = 'Rappel';
|
||||
$labels['comment'] = 'Commentaire';
|
||||
$labels['created'] = 'Créée';
|
||||
$labels['changed'] = 'Dernière modification';
|
||||
$labels['unknown'] = 'Inconnu';
|
||||
$labels['eventoptions'] = 'Options';
|
||||
$labels['generated'] = 'généré à';
|
||||
$labels['eventhistory'] = 'Historique';
|
||||
$labels['removelink'] = 'Enlever référence d\'e-mail';
|
||||
$labels['printdescriptions'] = 'Imprimer les descriptions';
|
||||
$labels['parentcalendar'] = 'Ajouter à l\'intérieur';
|
||||
$labels['searchearlierdates'] = '« Chercher des évènements plus ancien';
|
||||
|
@ -76,8 +103,18 @@ $labels['onemonthback'] = '1 mois précédent';
|
|||
$labels['nmonthsback'] = '$nr mois précédents';
|
||||
$labels['showurl'] = 'Afficher l\'URL de l\'agenda';
|
||||
$labels['showurldescription'] = 'Utilisez l\'adresse suivante pour accéder(lecture seule) à votre agenda depuis une autre application. Vous pouvez copier/coller celle-ci dans n\'importe quel agenda électronique gérant le format iCal.';
|
||||
|
||||
// agenda view
|
||||
$labels['caldavurldescription'] = 'Copiez cette adresse vers une application client (comme Evolution ou Mozilla Thunderbird) compatible <a href="http://fr.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a> pour synchroniser ce calendrier avec votre ordinateur ou votre smartphone.';
|
||||
$labels['findcalendars'] = 'Recherche de calendriers...';
|
||||
$labels['searchterms'] = 'Critères de recherche';
|
||||
$labels['calsearchresults'] = 'Calendriers disponibles';
|
||||
$labels['calendarsubscribe'] = 'Lister définitivement';
|
||||
$labels['nocalendarsfound'] = 'Aucun calendriers trouvés';
|
||||
$labels['nrcalendarsfound'] = '$nr calendriers trouvés';
|
||||
$labels['quickview'] = 'Voir uniquement ce calendrier';
|
||||
$labels['invitationspending'] = 'Invitations en attente';
|
||||
$labels['invitationsdeclined'] = 'Invitations refusées';
|
||||
$labels['changepartstat'] = 'Changer le statut du participent';
|
||||
$labels['rsvpcomment'] = 'Texte d\'invitation';
|
||||
$labels['listrange'] = 'Intervalle à afficher :';
|
||||
$labels['listsections'] = 'Diviser en :';
|
||||
$labels['smartsections'] = 'Section intelligente';
|
||||
|
@ -86,18 +123,15 @@ $labels['today'] = 'Aujourd\'hui';
|
|||
$labels['tomorrow'] = 'Demain';
|
||||
$labels['thisweek'] = 'Cette semaine';
|
||||
$labels['nextweek'] = 'Semaine prochaine';
|
||||
$labels['prevweek'] = 'Semaine précédente';
|
||||
$labels['thismonth'] = 'Ce mois';
|
||||
$labels['nextmonth'] = 'Mois prochain';
|
||||
$labels['weekofyear'] = 'Semaine';
|
||||
$labels['pastevents'] = 'Passé';
|
||||
$labels['futureevents'] = 'Futur';
|
||||
|
||||
// alarm/reminder settings
|
||||
$labels['showalarms'] = 'Afficher les alarmes';
|
||||
$labels['showalarms'] = 'Afficher les rappels';
|
||||
$labels['defaultalarmtype'] = 'Paramètre de rappel par défaut';
|
||||
$labels['defaultalarmoffset'] = 'Durée de rappel par défaut';
|
||||
|
||||
// attendees
|
||||
$labels['attendee'] = 'Participant';
|
||||
$labels['role'] = 'Rôle';
|
||||
$labels['availability'] = 'Dispo.';
|
||||
|
@ -106,12 +140,19 @@ $labels['addattendee'] = 'Ajouter participant';
|
|||
$labels['roleorganizer'] = 'Organisateur';
|
||||
$labels['rolerequired'] = 'Requis';
|
||||
$labels['roleoptional'] = 'Optionel';
|
||||
$labels['roleresource'] = 'Ressource';
|
||||
$labels['rolechair'] = 'Chair';
|
||||
$labels['rolenonparticipant'] = 'Absent';
|
||||
$labels['cutypeindividual'] = 'Individual';
|
||||
$labels['cutypegroup'] = 'Groupe';
|
||||
$labels['cutyperesource'] = 'Ressource';
|
||||
$labels['cutyperoom'] = 'Salle';
|
||||
$labels['availfree'] = 'Disponible';
|
||||
$labels['availbusy'] = 'Occupé';
|
||||
$labels['availunknown'] = 'Inconnu';
|
||||
$labels['availtentative'] = 'Provisoire';
|
||||
$labels['availoutofoffice'] = 'Absent';
|
||||
$labels['delegatedto'] = 'Délégué à :';
|
||||
$labels['delegatedfrom'] = 'Délégué de :';
|
||||
$labels['scheduletime'] = 'Trouver les disponibilités';
|
||||
$labels['sendinvitations'] = 'Envoyer les invitations';
|
||||
$labels['sendnotifications'] = 'Informer les participants des modifications';
|
||||
|
@ -120,52 +161,50 @@ $labels['onlyworkinghours'] = 'Trouver des disponibilités en fonction de mes he
|
|||
$labels['reqallattendees'] = 'Demandé/tous';
|
||||
$labels['prevslot'] = 'Créneau précédent';
|
||||
$labels['nextslot'] = 'Créneau suivant';
|
||||
$labels['suggestedslot'] = 'Emplacement suggéré';
|
||||
$labels['noslotfound'] = 'Impossible de trouver un créneau disponible';
|
||||
$labels['invitationsubject'] = 'Vous avez invité à "$title"';
|
||||
$labels['invitationmailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nVous trouverez ci-joint un fichier iCalendar avec tous les détails de l'évènement que vous pourrez importer dans votre agenda électronique.";
|
||||
$labels['invitationattendlinks'] = "Dans le cas où votre application de messagerie ne gère pas les demandes \"iTip\". Vous pouvez utiliser ce lien pour accepter ou refuser l'invitation :\n\$url";
|
||||
$labels['invitationsubject'] = 'Vous avez été invité à "$title"';
|
||||
$labels['invitationmailbody'] = "*\$title*\n\nQuand: \$date\n\nParticipants: \$attendees\n\nVous trouverez ci-joint un fichier iCalendar avec tous les détails de l'évènement que vous pourrez importer dans votre agenda électronique.";
|
||||
$labels['invitationattendlinks'] = "Dans le cas où votre application de messagerie ne gère pas les demandes \"iTip\". Vous pouvez utiliser ce lien pour accepter ou refuser l'invitation : \n\$url";
|
||||
$labels['eventupdatesubject'] = '"$title" a été modifié';
|
||||
$labels['eventupdatesubjectempty'] = 'Un évènement vous concernant a été modifié';
|
||||
$labels['eventupdatemailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nVous trouverez ci-joint un fichier iCalendar avec tous les modifications de l'évènement que vous pourrez importer dans votre agenda électronique.";
|
||||
$labels['eventupdatemailbody'] = "*\$title*\n\nQuand: \$date\n\nParticipants: \$attendees\n\nVous trouverez ci-joint un fichier iCalendar avec tous les modifications de l'évènement que vous pourrez importer dans votre agenda électronique.";
|
||||
$labels['eventcancelsubject'] = '"$title" a été annulé';
|
||||
$labels['eventcancelmailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nL'évènement a été annulé par \$organizer.\n\nVous trouverez en pièce jointe un fichier iCalendar avec les modifications de l'évènement que vous pourrez importer dans votre agenda électronique.";
|
||||
|
||||
// invitation handling
|
||||
$labels['itipinvitation'] = 'Invitation à';
|
||||
$labels['itipupdate'] = 'Mise à jour de';
|
||||
$labels['itipcancellation'] = 'Annulation:';
|
||||
$labels['itipreply'] = 'Répondre à';
|
||||
$labels['itipaccepted'] = 'Accepter';
|
||||
$labels['itiptentative'] = 'Peut-être';
|
||||
$labels['itipdeclined'] = 'Refuser';
|
||||
$labels['itipsubjectaccepted'] = '"$title" a été accepté par $name';
|
||||
$labels['itipsubjecttentative'] = '"$title" a été accepté provisoirement par $name';
|
||||
$labels['itipsubjectdeclined'] = '"$title" a été refusé par $name';
|
||||
$labels['itipmailbodyaccepted'] = "\$sender a accepté l'invitation à l'évènement suivant :\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
|
||||
$labels['itipmailbodytentative'] = "\$sender a accepté provisoirement l'invitation à l'évènement suivant :\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
|
||||
$labels['itipmailbodydeclined'] = "\$sender a refusé l'invitation à l'évènement suivant :\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
|
||||
$labels['eventcancelmailbody'] = "*\$title*\n\nQuand: \$date\n\nParticipants: \$attendees\n\nL'évènement a été annulé par \$organizer.\n\nVous trouverez en pièce jointe un fichier iCalendar avec les modifications de l'évènement que vous pourrez importer dans votre agenda électronique.";
|
||||
$labels['itipobjectnotfound'] = 'L\'évènement lié à ce message n\'a pas été trouvé dans votre calendrier.';
|
||||
$labels['itipmailbodyaccepted'] = "\$sender a accepté l'invitation à l'évènement suivant :\n\n*\$title*\n\nQuand: \$date\n\nParticipants: \$attendees";
|
||||
$labels['itipmailbodytentative'] = "\$sender a accepté provisoirement l'invitation à l'évènement suivant :\n\n*\$title*\n\nQuand: \$date\n\nParticipants: \$attendees";
|
||||
$labels['itipmailbodydeclined'] = "\$sender a refusé l'invitation à l'évènement suivant :\n\n*\$title*\n\nQuand: \$date\n\nParticipants: \$attendees";
|
||||
$labels['itipmailbodycancel'] = "\$sender a rejeté votre participation à l’évènement suivant :\n\n*\$title*\n\nLe: \$date";
|
||||
$labels['itipdeclineevent'] = 'Voulez-vous refuser l\'invitation à cet évènement?';
|
||||
$labels['importtocalendar'] = 'Enregistrer mon agenda';
|
||||
$labels['removefromcalendar'] = 'Supprimer de mon agenda';
|
||||
$labels['updateattendeestatus'] = 'Modifier le statut des participants';
|
||||
$labels['acceptinvitation'] = 'Acceptez-vous cette invitation?';
|
||||
$labels['youhaveaccepted'] = 'Vous avez accepté cette invitation';
|
||||
$labels['youhavetentative'] = 'Vous avez accepté provisoirement cette invitation';
|
||||
$labels['youhavedeclined'] = 'Vous avez refusé cette invitation';
|
||||
$labels['declinedeleteconfirm'] = 'Voulez-vous aussi supprimer cet évènement annulé, de votre calendrier ?';
|
||||
$labels['itipcomment'] = 'Commentaire d’invitation ou de notification';
|
||||
$labels['itipcommenttitle'] = 'Ce commentaire sera inséré dans le message d\'invitation ou de notification envoyé aux participants';
|
||||
$labels['notanattendee'] = 'Vous n\'êtes pas dans la liste des participants à cet évènement';
|
||||
$labels['eventcancelled'] = 'L\'évènement a été annulé';
|
||||
$labels['saveincalendar'] = 'Enregistrer sous';
|
||||
|
||||
// event dialog tabs
|
||||
$labels['updatemycopy'] = 'Mise à jour dans mon calendrier';
|
||||
$labels['savetocalendar'] = 'Sauvegarde dans le calendrier';
|
||||
$labels['openpreview'] = 'Test calendrier';
|
||||
$labels['noearlierevents'] = 'Aucun évènements passé';
|
||||
$labels['nolaterevents'] = 'Aucun évènement futur';
|
||||
$labels['resource'] = 'Ressource';
|
||||
$labels['addresource'] = 'Carnet de ressources';
|
||||
$labels['findresources'] = 'Recherche des ressources';
|
||||
$labels['resourcedetails'] = 'Détails';
|
||||
$labels['resourceavailability'] = 'Disponibilité';
|
||||
$labels['resourceowner'] = 'Propriétaire';
|
||||
$labels['resourceadded'] = 'Cette ressource a été ajouté à l\'évènement';
|
||||
$labels['tabsummary'] = 'Résumé';
|
||||
$labels['tabrecurrence'] = 'Récurrence';
|
||||
$labels['tabattendees'] = 'Participants';
|
||||
$labels['tabresources'] = 'Ressources';
|
||||
$labels['tabattachments'] = 'Pièces jointes';
|
||||
$labels['tabsharing'] = 'Partage';
|
||||
|
||||
// messages
|
||||
$labels['deleteobjectconfirm'] = 'Voulez-vous vraiment supprimer cet évènement?';
|
||||
$labels['deleteventconfirm'] = 'Voulez-vous vraiment supprimer cet évènement?';
|
||||
$labels['deletecalendarconfirm'] = 'Voulez-vous vraiment supprimer cet agenda et tous ses évènements?';
|
||||
$labels['deletecalendarconfirmrecursive'] = 'Voulez-vous vraiment supprimer ce calendrier avec tous ces évènements et ces sous calendriers ?';
|
||||
$labels['savingdata'] = 'Enregistrer...';
|
||||
$labels['errorsaving'] = 'Échec lors de l\'enregistrement des changements';
|
||||
$labels['operationfailed'] = 'L\'opération demandée a échoué';
|
||||
|
@ -176,55 +215,58 @@ $labels['successremoval'] = 'L\'évènement a été supprimé.';
|
|||
$labels['successrestore'] = 'L\'évènement a été restauré.';
|
||||
$labels['errornotifying'] = 'Échec de l\'envoi de notification aux participants ';
|
||||
$labels['errorimportingevent'] = 'Échec de l\'import de l\'évènement';
|
||||
$labels['importwarningexists'] = 'Une copie de cet évènement existe déjà dans votre calendrier.';
|
||||
$labels['newerversionexists'] = 'Une nouvelle version de cet évènement existe! Abandon.';
|
||||
$labels['nowritecalendarfound'] = 'Pas d\'agenda trouvé pour enregistrer l\'évènement';
|
||||
$labels['importedsuccessfully'] = 'L\'évènement a été ajouté à l\'agenda \'$calendar\'';
|
||||
$labels['updatedsuccessfully'] = 'Cet évènement a été modifié avec succès dans \'$calendar\'';
|
||||
$labels['attendeupdateesuccess'] = 'Le statut des participants a été modifié';
|
||||
$labels['itipsendsuccess'] = 'Invitation envoyé aux participants.';
|
||||
$labels['itipresponseerror'] = 'Échec de l\'envoi d\'une réponse à cette invitation.';
|
||||
$labels['itipinvalidrequest'] = 'C\'est invitation n\'est plus valide.';
|
||||
$labels['sentresponseto'] = 'La réponse à l\'invitation a été envoyé à $mailto';
|
||||
$labels['localchangeswarning'] = 'Vous êtes sur le point de faire des changements uniquement visible sur votre agenda personnel.';
|
||||
$labels['localchangeswarning'] = 'Vous êtes sur le point d\'effectuer des modifications qui seront effectifs sur votre calendrier mais qui ne seront pas envoyés à l\'organisateur de l’évènement.';
|
||||
$labels['importsuccess'] = '$nr évènements importés.';
|
||||
$labels['importnone'] = 'Pas d\'évènements à importer';
|
||||
$labels['importerror'] = 'Une erreur est arrivée lors de l\'import';
|
||||
$labels['aclnorights'] = 'Vous n\'avez pas les droits d\'administration sur cet agenda.';
|
||||
|
||||
// recurrence form
|
||||
$labels['repeat'] = 'Répéter';
|
||||
$labels['frequency'] = 'Répéter';
|
||||
$labels['never'] = 'Jamais';
|
||||
$labels['daily'] = 'Quotidienne';
|
||||
$labels['weekly'] = 'Hebdomadaire';
|
||||
$labels['monthly'] = 'Mensuelle';
|
||||
$labels['yearly'] = 'Annuelle';
|
||||
$labels['every'] = 'Tous les';
|
||||
$labels['days'] = 'jour(s)';
|
||||
$labels['weeks'] = 'semaine(s)';
|
||||
$labels['months'] = 'mois';
|
||||
$labels['years'] = 'année(s) en :';
|
||||
$labels['bydays'] = 'Le';
|
||||
$labels['untildate'] = 'le';
|
||||
$labels['each'] = 'Chaque';
|
||||
$labels['onevery'] = 'Tous les';
|
||||
$labels['onsamedate'] = 'à la même date';
|
||||
$labels['forever'] = 'Pour toujours';
|
||||
$labels['recurrencend'] = 'Jusqu\'à';
|
||||
$labels['forntimes'] = '$nr fois';
|
||||
$labels['first'] = 'premier';
|
||||
$labels['second'] = 'deuxième';
|
||||
$labels['third'] = 'troisième';
|
||||
$labels['fourth'] = 'quatrième';
|
||||
$labels['last'] = 'dernier';
|
||||
$labels['dayofmonth'] = 'Jour du mois';
|
||||
|
||||
$labels['changeeventconfirm'] = 'Modifier l\'évènement';
|
||||
$labels['removeeventconfirm'] = 'Supprimer l\'évènement';
|
||||
$labels['changerecurringeventwarning'] = 'Ceci est un évènement récurant. Voulez vous éditer seulement cette occurrence, celle-ci et toutes les suivantes, toutes les occurrences ou l\'enregistrer comme un nouvel évènement? ';
|
||||
$labels['removerecurringeventwarning'] = 'Ceci est un évènement récurant. Voulez-vous supprimer seulement cette occurrence, celle-ci et toutes les suivantes ou toutes les occurrences de cet évènement?';
|
||||
$labels['removerecurringeventwarning'] = 'Ceci est un évènement recrurent. Voulez-vous supprimer uniquement l\'évènement courent, l’évènement courent et toutes ces occurrences futures ou toutes les occurrences ?';
|
||||
$labels['currentevent'] = 'Cette occurrence';
|
||||
$labels['futurevents'] = 'Cette occurrence et toutes les suivantes';
|
||||
$labels['allevents'] = 'Toutes les occurrences';
|
||||
$labels['saveasnew'] = 'Enregistrer comme un nouvel évènement';
|
||||
|
||||
$labels['birthdays'] = 'Anniversaires';
|
||||
$labels['birthdayscalendar'] = 'Calendrier des anniversaires';
|
||||
$labels['displaybirthdayscalendar'] = 'Afficher le calendrier des anniversaires';
|
||||
$labels['birthdayscalendarsources'] = 'Depuis ces carnets d\'adresses';
|
||||
$labels['birthdayeventtitle'] = 'Anniversaire de $name';
|
||||
$labels['birthdayage'] = 'Age $age';
|
||||
$labels['eventchangelog'] = 'Historique des modifications';
|
||||
$labels['eventdiff'] = 'Modifications pour le version $rev';
|
||||
$labels['revision'] = 'Version';
|
||||
$labels['user'] = 'Utilisateur';
|
||||
$labels['operation'] = 'Action';
|
||||
$labels['actionappend'] = 'Sauvegardé';
|
||||
$labels['actionmove'] = 'Déplacé';
|
||||
$labels['actiondelete'] = 'Supprimé';
|
||||
$labels['compare'] = 'Comparer';
|
||||
$labels['showrevision'] = 'Afficher cette version';
|
||||
$labels['restore'] = 'Restaurer cette version';
|
||||
$labels['eventnotfound'] = 'Impossible de charger les données de l’évènement';
|
||||
$labels['eventchangelognotavailable'] = 'Il n\'y a pas d\'historique des modifications pour cet évènement';
|
||||
$labels['eventdiffnotavailable'] = 'La comparaison des versions sélectionnées est impossible';
|
||||
$labels['eventrestoreconfirm'] = 'Voulez-vous vraiment restaurer le version $rev de cet évènement ? Cette action va remplacer l\'évènement courent par l\'ancienne version.';
|
||||
$labels['arialabelminical'] = 'Sélection de la date du calendrier';
|
||||
$labels['arialabelcalendarview'] = 'Vue du calendrier';
|
||||
$labels['arialabelsearchform'] = 'Recherche d\'évènements depuis';
|
||||
$labels['arialabelquicksearchbox'] = 'Saisie de le recherche d\'évènements';
|
||||
$labels['arialabelcalsearchform'] = 'Recherche de calendriers';
|
||||
$labels['calendaractions'] = 'Actions calendrier';
|
||||
$labels['arialabeleventattendees'] = 'Liste des participants à l\'évènement';
|
||||
$labels['arialabeleventresources'] = 'Liste des ressources de l\'évènement';
|
||||
$labels['arialabelresourcesearchform'] = 'Recherche des ressources';
|
||||
$labels['arialabelresourceselection'] = 'Ressources disponibles';
|
||||
?>
|
||||
|
|
272
localization/he.inc
Normal file
|
@ -0,0 +1,272 @@
|
|||
<?php
|
||||
/**
|
||||
* Localizations for Kolab Calendar plugin
|
||||
*
|
||||
* Copyright (C) 2014, Kolab Systems AG
|
||||
*
|
||||
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
|
||||
*/
|
||||
$labels['default_view'] = 'Default view';
|
||||
$labels['time_format'] = 'Time format';
|
||||
$labels['timeslots'] = 'Time slots per hour';
|
||||
$labels['first_day'] = 'First weekday';
|
||||
$labels['first_hour'] = 'First hour to show';
|
||||
$labels['workinghours'] = 'Working hours';
|
||||
$labels['add_category'] = 'Add category';
|
||||
$labels['remove_category'] = 'Remove category';
|
||||
$labels['defaultcalendar'] = 'Create new events in';
|
||||
$labels['eventcoloring'] = 'Event coloring';
|
||||
$labels['coloringmode0'] = 'According to calendar';
|
||||
$labels['coloringmode1'] = 'According to category';
|
||||
$labels['coloringmode2'] = 'Calendar for outline, category for content';
|
||||
$labels['coloringmode3'] = 'Category for outline, calendar for content';
|
||||
$labels['afternothing'] = 'Do nothing';
|
||||
$labels['aftertrash'] = 'Move to Trash';
|
||||
$labels['afterdelete'] = 'Delete the message';
|
||||
$labels['afterflagdeleted'] = 'Flag as deleted';
|
||||
$labels['aftermoveto'] = 'Move to...';
|
||||
$labels['itipoptions'] = 'Event Invitations';
|
||||
$labels['afteraction'] = 'After an invitation or update message is processed';
|
||||
$labels['calendar'] = 'Calendar';
|
||||
$labels['calendars'] = 'Calendars';
|
||||
$labels['category'] = 'Category';
|
||||
$labels['categories'] = 'Categories';
|
||||
$labels['createcalendar'] = 'Create new calendar';
|
||||
$labels['editcalendar'] = 'Edit calendar properties';
|
||||
$labels['name'] = 'Name';
|
||||
$labels['color'] = 'Color';
|
||||
$labels['day'] = 'Day';
|
||||
$labels['week'] = 'Week';
|
||||
$labels['month'] = 'Month';
|
||||
$labels['agenda'] = 'Agenda';
|
||||
$labels['new'] = 'New';
|
||||
$labels['new_event'] = 'New event';
|
||||
$labels['edit_event'] = 'Edit event';
|
||||
$labels['edit'] = 'Edit';
|
||||
$labels['save'] = 'Save';
|
||||
$labels['removelist'] = 'Remove from list';
|
||||
$labels['cancel'] = 'Cancel';
|
||||
$labels['select'] = 'Select';
|
||||
$labels['print'] = 'Print';
|
||||
$labels['printtitle'] = 'Print calendars';
|
||||
$labels['title'] = 'Summary';
|
||||
$labels['description'] = 'Description';
|
||||
$labels['all-day'] = 'all-day';
|
||||
$labels['export'] = 'Export';
|
||||
$labels['exporttitle'] = 'Export to iCalendar';
|
||||
$labels['exportrange'] = 'Events from';
|
||||
$labels['exportattachments'] = 'With attachments';
|
||||
$labels['customdate'] = 'Custom date';
|
||||
$labels['location'] = 'Location';
|
||||
$labels['url'] = 'URL';
|
||||
$labels['date'] = 'Date';
|
||||
$labels['start'] = 'Start';
|
||||
$labels['starttime'] = 'Start time';
|
||||
$labels['end'] = 'End';
|
||||
$labels['endtime'] = 'End time';
|
||||
$labels['repeat'] = 'Repeat';
|
||||
$labels['selectdate'] = 'Choose date';
|
||||
$labels['freebusy'] = 'Show me as';
|
||||
$labels['free'] = 'Free';
|
||||
$labels['busy'] = 'Busy';
|
||||
$labels['outofoffice'] = 'Out of Office';
|
||||
$labels['tentative'] = 'Tentative';
|
||||
$labels['mystatus'] = 'My status';
|
||||
$labels['status'] = 'Status';
|
||||
$labels['status-confirmed'] = 'Confirmed';
|
||||
$labels['status-cancelled'] = 'Cancelled';
|
||||
$labels['priority'] = 'Priority';
|
||||
$labels['sensitivity'] = 'Privacy';
|
||||
$labels['public'] = 'public';
|
||||
$labels['private'] = 'private';
|
||||
$labels['confidential'] = 'confidential';
|
||||
$labels['alarms'] = 'Reminder';
|
||||
$labels['comment'] = 'Comment';
|
||||
$labels['created'] = 'Created';
|
||||
$labels['changed'] = 'Last Modified';
|
||||
$labels['unknown'] = 'Unknown';
|
||||
$labels['eventoptions'] = 'Options';
|
||||
$labels['generated'] = 'generated at';
|
||||
$labels['eventhistory'] = 'History';
|
||||
$labels['printdescriptions'] = 'Print descriptions';
|
||||
$labels['parentcalendar'] = 'Insert inside';
|
||||
$labels['searchearlierdates'] = '« Search for earlier events';
|
||||
$labels['searchlaterdates'] = 'Search for later events »';
|
||||
$labels['andnmore'] = '$nr more...';
|
||||
$labels['togglerole'] = 'Click to toggle role';
|
||||
$labels['createfrommail'] = 'Save as event';
|
||||
$labels['importevents'] = 'Import events';
|
||||
$labels['importrange'] = 'Events from';
|
||||
$labels['onemonthback'] = '1 month back';
|
||||
$labels['nmonthsback'] = '$nr months back';
|
||||
$labels['showurl'] = 'Show calendar URL';
|
||||
$labels['showurldescription'] = 'Use the following address to access (read only) your calendar from other applications. You can copy and paste this into any calendar software that supports the iCal format.';
|
||||
$labels['caldavurldescription'] = 'Copy this address to a <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a> client application (e.g. Evolution or Mozilla Thunderbird) to fully synchronize this specific calendar with your computer or mobile device.';
|
||||
$labels['findcalendars'] = 'Find calendars...';
|
||||
$labels['searchterms'] = 'Search terms';
|
||||
$labels['calsearchresults'] = 'Available Calendars';
|
||||
$labels['calendarsubscribe'] = 'List permanently';
|
||||
$labels['nocalendarsfound'] = 'No calendars found';
|
||||
$labels['nrcalendarsfound'] = '$nr calendars found';
|
||||
$labels['quickview'] = 'View only this calendar';
|
||||
$labels['invitationspending'] = 'Pending invitations';
|
||||
$labels['invitationsdeclined'] = 'Declined invitations';
|
||||
$labels['changepartstat'] = 'Change participant status';
|
||||
$labels['rsvpcomment'] = 'Invitation text';
|
||||
$labels['listrange'] = 'Range to display:';
|
||||
$labels['listsections'] = 'Divide into:';
|
||||
$labels['smartsections'] = 'Smart sections';
|
||||
$labels['until'] = 'until';
|
||||
$labels['today'] = 'Today';
|
||||
$labels['tomorrow'] = 'Tomorrow';
|
||||
$labels['thisweek'] = 'This week';
|
||||
$labels['nextweek'] = 'Next week';
|
||||
$labels['prevweek'] = 'Previous week';
|
||||
$labels['thismonth'] = 'This month';
|
||||
$labels['nextmonth'] = 'Next month';
|
||||
$labels['weekofyear'] = 'Week';
|
||||
$labels['pastevents'] = 'Past';
|
||||
$labels['futureevents'] = 'Future';
|
||||
$labels['showalarms'] = 'Show reminders';
|
||||
$labels['defaultalarmtype'] = 'Default reminder setting';
|
||||
$labels['defaultalarmoffset'] = 'Default reminder time';
|
||||
$labels['attendee'] = 'Participant';
|
||||
$labels['role'] = 'Role';
|
||||
$labels['availability'] = 'Avail.';
|
||||
$labels['confirmstate'] = 'Status';
|
||||
$labels['addattendee'] = 'Add participant';
|
||||
$labels['roleorganizer'] = 'Organizer';
|
||||
$labels['rolerequired'] = 'Required';
|
||||
$labels['roleoptional'] = 'Optional';
|
||||
$labels['rolechair'] = 'Chair';
|
||||
$labels['rolenonparticipant'] = 'Absent';
|
||||
$labels['cutypeindividual'] = 'Individual';
|
||||
$labels['cutypegroup'] = 'Group';
|
||||
$labels['cutyperesource'] = 'Resource';
|
||||
$labels['cutyperoom'] = 'Room';
|
||||
$labels['availfree'] = 'Free';
|
||||
$labels['availbusy'] = 'Busy';
|
||||
$labels['availunknown'] = 'Unknown';
|
||||
$labels['availtentative'] = 'Tentative';
|
||||
$labels['availoutofoffice'] = 'Out of Office';
|
||||
$labels['delegatedto'] = 'Delegated to: ';
|
||||
$labels['delegatedfrom'] = 'Delegated from: ';
|
||||
$labels['scheduletime'] = 'Find availability';
|
||||
$labels['sendinvitations'] = 'Send invitations';
|
||||
$labels['sendnotifications'] = 'Notify participants about modifications';
|
||||
$labels['sendcancellation'] = 'Notify participants about event cancellation';
|
||||
$labels['onlyworkinghours'] = 'Find availability within my working hours';
|
||||
$labels['reqallattendees'] = 'Required/all participants';
|
||||
$labels['prevslot'] = 'Previous Slot';
|
||||
$labels['nextslot'] = 'Next Slot';
|
||||
$labels['suggestedslot'] = 'Suggested Slot';
|
||||
$labels['noslotfound'] = 'Unable to find a free time slot';
|
||||
$labels['invitationsubject'] = 'You\'ve been invited to "$title"';
|
||||
$labels['invitationmailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nPlease find attached an iCalendar file with all the event details which you can import to your calendar application.";
|
||||
$labels['invitationattendlinks'] = "In case your email client doesn't support iTip requests you can use the following link to either accept or decline this invitation:\n\$url";
|
||||
$labels['eventupdatesubject'] = '"$title" has been updated';
|
||||
$labels['eventupdatesubjectempty'] = 'An event that concerns you has been updated';
|
||||
$labels['eventupdatemailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nPlease find attached an iCalendar file with the updated event details which you can import to your calendar application.";
|
||||
$labels['eventcancelsubject'] = '"$title" has been canceled';
|
||||
$labels['eventcancelmailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nThe event has been cancelled by \$organizer.\n\nPlease find attached an iCalendar file with the updated event details.";
|
||||
$labels['itipobjectnotfound'] = 'The event referred by this message was not found in your calendar.';
|
||||
$labels['itipmailbodyaccepted'] = "\$sender has accepted the invitation to the following event:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
|
||||
$labels['itipmailbodytentative'] = "\$sender has tentatively accepted the invitation to the following event:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
|
||||
$labels['itipmailbodydeclined'] = "\$sender has declined the invitation to the following event:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
|
||||
$labels['itipmailbodycancel'] = "\$sender has rejected your participation in the following event:\n\n*\$title*\n\nWhen: \$date";
|
||||
$labels['itipmailbodydelegated'] = "\$sender has delegated the participation in the following event:\n\n*\$title*\n\nWhen: \$date";
|
||||
$labels['itipmailbodydelegatedto'] = "\$sender has delegated the participation in the following event to you:\n\n*\$title*\n\nWhen: \$date";
|
||||
$labels['itipdeclineevent'] = 'Do you want to decline your invitation to this event?';
|
||||
$labels['declinedeleteconfirm'] = 'Do you also want to delete this declined event from your calendar?';
|
||||
$labels['itipcomment'] = 'Invitation/notification comment';
|
||||
$labels['itipcommenttitle'] = 'This comment will be attached to the invitation/notification message sent to participants';
|
||||
$labels['notanattendee'] = 'You\'re not listed as an attendee of this event';
|
||||
$labels['eventcancelled'] = 'The event has been cancelled';
|
||||
$labels['saveincalendar'] = 'save in';
|
||||
$labels['updatemycopy'] = 'Update in my calendar';
|
||||
$labels['savetocalendar'] = 'Save to calendar';
|
||||
$labels['openpreview'] = 'Check Calendar';
|
||||
$labels['noearlierevents'] = 'No earlier events';
|
||||
$labels['nolaterevents'] = 'No later events';
|
||||
$labels['resource'] = 'Resource';
|
||||
$labels['addresource'] = 'Book resource';
|
||||
$labels['findresources'] = 'Find resources';
|
||||
$labels['resourcedetails'] = 'Details';
|
||||
$labels['resourceavailability'] = 'Availability';
|
||||
$labels['resourceowner'] = 'Owner';
|
||||
$labels['resourceadded'] = 'The resource was added to your event';
|
||||
$labels['tabsummary'] = 'Summary';
|
||||
$labels['tabrecurrence'] = 'Recurrence';
|
||||
$labels['tabattendees'] = 'Participants';
|
||||
$labels['tabresources'] = 'Resources';
|
||||
$labels['tabattachments'] = 'Attachments';
|
||||
$labels['tabsharing'] = 'Sharing';
|
||||
$labels['deleteobjectconfirm'] = 'Do you really want to delete this event?';
|
||||
$labels['deleteventconfirm'] = 'Do you really want to delete this event?';
|
||||
$labels['deletecalendarconfirm'] = 'Do you really want to delete this calendar with all its events?';
|
||||
$labels['deletecalendarconfirmrecursive'] = 'Do you really want to delete this calendar with all its events and sub-calendars?';
|
||||
$labels['savingdata'] = 'Saving data...';
|
||||
$labels['errorsaving'] = 'Failed to save changes.';
|
||||
$labels['operationfailed'] = 'The requested operation failed.';
|
||||
$labels['invalideventdates'] = 'Invalid dates entered! Please check your input.';
|
||||
$labels['invalidcalendarproperties'] = 'Invalid calendar properties! Please set a valid name.';
|
||||
$labels['searchnoresults'] = 'No events found in the selected calendars.';
|
||||
$labels['successremoval'] = 'The event has been deleted successfully.';
|
||||
$labels['successrestore'] = 'The event has been restored successfully.';
|
||||
$labels['errornotifying'] = 'Failed to send notifications to event participants';
|
||||
$labels['errorimportingevent'] = 'Failed to import the event';
|
||||
$labels['importwarningexists'] = 'A copy of this event already exists in your calendar.';
|
||||
$labels['newerversionexists'] = 'A newer version of this event already exists! Aborted.';
|
||||
$labels['nowritecalendarfound'] = 'No calendar found to save the event';
|
||||
$labels['importedsuccessfully'] = 'The event was successfully added to \'$calendar\'';
|
||||
$labels['updatedsuccessfully'] = 'The event was successfully updated in \'$calendar\'';
|
||||
$labels['attendeupdateesuccess'] = 'Successfully updated the participant\'s status';
|
||||
$labels['itipsendsuccess'] = 'Invitation sent to participants.';
|
||||
$labels['itipresponseerror'] = 'Failed to send the response to this event invitation';
|
||||
$labels['itipinvalidrequest'] = 'This invitation is no longer valid';
|
||||
$labels['sentresponseto'] = 'Successfully sent invitation response to $mailto';
|
||||
$labels['localchangeswarning'] = 'You are about to make changes that will only be reflected on your calendar and not be sent to the organizer of the event.';
|
||||
$labels['importsuccess'] = 'Successfully imported $nr events';
|
||||
$labels['importnone'] = 'No events found to be imported';
|
||||
$labels['importerror'] = 'An error occured while importing';
|
||||
$labels['aclnorights'] = 'You do not have administrator rights on this calendar.';
|
||||
$labels['changeeventconfirm'] = 'Change event';
|
||||
$labels['removeeventconfirm'] = 'Delete event';
|
||||
$labels['changerecurringeventwarning'] = 'This is a recurring event. Would you like to edit the current event only, this and all future occurences, all occurences or save it as a new event?';
|
||||
$labels['removerecurringeventwarning'] = 'This is a recurring event. Would you like to delete the current event only, this and all future occurences or all occurences of this event?';
|
||||
$labels['currentevent'] = 'Current';
|
||||
$labels['futurevents'] = 'Future';
|
||||
$labels['allevents'] = 'All';
|
||||
$labels['saveasnew'] = 'Save as new';
|
||||
$labels['birthdays'] = 'Birthdays';
|
||||
$labels['birthdayscalendar'] = 'Birthdays Calendar';
|
||||
$labels['displaybirthdayscalendar'] = 'Display birthdays calendar';
|
||||
$labels['birthdayscalendarsources'] = 'From these address books';
|
||||
$labels['birthdayeventtitle'] = '$name\'s Birthday';
|
||||
$labels['birthdayage'] = 'Age $age';
|
||||
$labels['eventchangelog'] = 'Change History';
|
||||
$labels['eventdiff'] = 'Changes from revisions $rev';
|
||||
$labels['revision'] = 'Revision';
|
||||
$labels['user'] = 'User';
|
||||
$labels['operation'] = 'Action';
|
||||
$labels['actionappend'] = 'Saved';
|
||||
$labels['actionmove'] = 'Moved';
|
||||
$labels['actiondelete'] = 'Deleted';
|
||||
$labels['compare'] = 'Compare';
|
||||
$labels['showrevision'] = 'Show this version';
|
||||
$labels['restore'] = 'Restore this version';
|
||||
$labels['eventnotfound'] = 'Failed to load event data';
|
||||
$labels['eventchangelognotavailable'] = 'Change history is not available for this event';
|
||||
$labels['eventdiffnotavailable'] = 'No comparison possible for the selected revisions';
|
||||
$labels['eventrestoreconfirm'] = 'Do you really want to restore revision $rev of this event? This will replace the current event with the old version.';
|
||||
$labels['arialabelminical'] = 'Calendar date selection';
|
||||
$labels['arialabelcalendarview'] = 'Calendar view';
|
||||
$labels['arialabelsearchform'] = 'Event search form';
|
||||
$labels['arialabelquicksearchbox'] = 'Event search input';
|
||||
$labels['arialabelcalsearchform'] = 'Calendars search form';
|
||||
$labels['calendaractions'] = 'Calendar actions';
|
||||
$labels['arialabeleventattendees'] = 'Event participants list';
|
||||
$labels['arialabeleventresources'] = 'Event resources list';
|
||||
$labels['arialabelresourcesearchform'] = 'Resources search form';
|
||||
$labels['arialabelresourceselection'] = 'Available resources';
|
||||
?>
|
272
localization/hr.inc
Normal file
|
@ -0,0 +1,272 @@
|
|||
<?php
|
||||
/**
|
||||
* Localizations for Kolab Calendar plugin
|
||||
*
|
||||
* Copyright (C) 2014, Kolab Systems AG
|
||||
*
|
||||
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
|
||||
*/
|
||||
$labels['default_view'] = 'Default view';
|
||||
$labels['time_format'] = 'Format datuma';
|
||||
$labels['timeslots'] = 'Time slots per hour';
|
||||
$labels['first_day'] = 'Prvi dan tjedna';
|
||||
$labels['first_hour'] = 'Prvi sat za prikaz';
|
||||
$labels['workinghours'] = 'Radni sati';
|
||||
$labels['add_category'] = 'Dodaj kategoriju';
|
||||
$labels['remove_category'] = 'Obriši kategoriju';
|
||||
$labels['defaultcalendar'] = 'Kreiraj nove događaje u';
|
||||
$labels['eventcoloring'] = 'Bojanje događaja';
|
||||
$labels['coloringmode0'] = 'Prema kalendaru';
|
||||
$labels['coloringmode1'] = 'Prema kategoriji';
|
||||
$labels['coloringmode2'] = 'Calendar for outline, category for content';
|
||||
$labels['coloringmode3'] = 'Category for outline, calendar for content';
|
||||
$labels['afternothing'] = 'Do nothing';
|
||||
$labels['aftertrash'] = 'Move to Trash';
|
||||
$labels['afterdelete'] = 'Delete the message';
|
||||
$labels['afterflagdeleted'] = 'Flag as deleted';
|
||||
$labels['aftermoveto'] = 'Move to...';
|
||||
$labels['itipoptions'] = 'Event Invitations';
|
||||
$labels['afteraction'] = 'After an invitation or update message is processed';
|
||||
$labels['calendar'] = 'Kalendar';
|
||||
$labels['calendars'] = 'Kalendari';
|
||||
$labels['category'] = 'Kategorija';
|
||||
$labels['categories'] = 'Kategorije';
|
||||
$labels['createcalendar'] = 'Create new calendar';
|
||||
$labels['editcalendar'] = 'Edit calendar properties';
|
||||
$labels['name'] = 'Name';
|
||||
$labels['color'] = 'Color';
|
||||
$labels['day'] = 'Day';
|
||||
$labels['week'] = 'Week';
|
||||
$labels['month'] = 'Month';
|
||||
$labels['agenda'] = 'Agenda';
|
||||
$labels['new'] = 'New';
|
||||
$labels['new_event'] = 'New event';
|
||||
$labels['edit_event'] = 'Edit event';
|
||||
$labels['edit'] = 'Edit';
|
||||
$labels['save'] = 'Save';
|
||||
$labels['removelist'] = 'Remove from list';
|
||||
$labels['cancel'] = 'Cancel';
|
||||
$labels['select'] = 'Select';
|
||||
$labels['print'] = 'Print';
|
||||
$labels['printtitle'] = 'Print calendars';
|
||||
$labels['title'] = 'Summary';
|
||||
$labels['description'] = 'Description';
|
||||
$labels['all-day'] = 'all-day';
|
||||
$labels['export'] = 'Export';
|
||||
$labels['exporttitle'] = 'Export to iCalendar';
|
||||
$labels['exportrange'] = 'Events from';
|
||||
$labels['exportattachments'] = 'With attachments';
|
||||
$labels['customdate'] = 'Custom date';
|
||||
$labels['location'] = 'Location';
|
||||
$labels['url'] = 'URL';
|
||||
$labels['date'] = 'Date';
|
||||
$labels['start'] = 'Start';
|
||||
$labels['starttime'] = 'Start time';
|
||||
$labels['end'] = 'End';
|
||||
$labels['endtime'] = 'End time';
|
||||
$labels['repeat'] = 'Repeat';
|
||||
$labels['selectdate'] = 'Choose date';
|
||||
$labels['freebusy'] = 'Show me as';
|
||||
$labels['free'] = 'Free';
|
||||
$labels['busy'] = 'Busy';
|
||||
$labels['outofoffice'] = 'Out of Office';
|
||||
$labels['tentative'] = 'Tentative';
|
||||
$labels['mystatus'] = 'My status';
|
||||
$labels['status'] = 'Status';
|
||||
$labels['status-confirmed'] = 'Confirmed';
|
||||
$labels['status-cancelled'] = 'Cancelled';
|
||||
$labels['priority'] = 'Priority';
|
||||
$labels['sensitivity'] = 'Privacy';
|
||||
$labels['public'] = 'public';
|
||||
$labels['private'] = 'private';
|
||||
$labels['confidential'] = 'confidential';
|
||||
$labels['alarms'] = 'Reminder';
|
||||
$labels['comment'] = 'Comment';
|
||||
$labels['created'] = 'Created';
|
||||
$labels['changed'] = 'Last Modified';
|
||||
$labels['unknown'] = 'Unknown';
|
||||
$labels['eventoptions'] = 'Options';
|
||||
$labels['generated'] = 'generated at';
|
||||
$labels['eventhistory'] = 'History';
|
||||
$labels['printdescriptions'] = 'Print descriptions';
|
||||
$labels['parentcalendar'] = 'Insert inside';
|
||||
$labels['searchearlierdates'] = '« Search for earlier events';
|
||||
$labels['searchlaterdates'] = 'Search for later events »';
|
||||
$labels['andnmore'] = '$nr more...';
|
||||
$labels['togglerole'] = 'Click to toggle role';
|
||||
$labels['createfrommail'] = 'Save as event';
|
||||
$labels['importevents'] = 'Import events';
|
||||
$labels['importrange'] = 'Events from';
|
||||
$labels['onemonthback'] = '1 month back';
|
||||
$labels['nmonthsback'] = '$nr months back';
|
||||
$labels['showurl'] = 'Show calendar URL';
|
||||
$labels['showurldescription'] = 'Use the following address to access (read only) your calendar from other applications. You can copy and paste this into any calendar software that supports the iCal format.';
|
||||
$labels['caldavurldescription'] = 'Copy this address to a <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a> client application (e.g. Evolution or Mozilla Thunderbird) to fully synchronize this specific calendar with your computer or mobile device.';
|
||||
$labels['findcalendars'] = 'Find calendars...';
|
||||
$labels['searchterms'] = 'Search terms';
|
||||
$labels['calsearchresults'] = 'Available Calendars';
|
||||
$labels['calendarsubscribe'] = 'List permanently';
|
||||
$labels['nocalendarsfound'] = 'No calendars found';
|
||||
$labels['nrcalendarsfound'] = '$nr calendars found';
|
||||
$labels['quickview'] = 'View only this calendar';
|
||||
$labels['invitationspending'] = 'Pending invitations';
|
||||
$labels['invitationsdeclined'] = 'Declined invitations';
|
||||
$labels['changepartstat'] = 'Change participant status';
|
||||
$labels['rsvpcomment'] = 'Invitation text';
|
||||
$labels['listrange'] = 'Range to display:';
|
||||
$labels['listsections'] = 'Divide into:';
|
||||
$labels['smartsections'] = 'Smart sections';
|
||||
$labels['until'] = 'until';
|
||||
$labels['today'] = 'Today';
|
||||
$labels['tomorrow'] = 'Tomorrow';
|
||||
$labels['thisweek'] = 'This week';
|
||||
$labels['nextweek'] = 'Next week';
|
||||
$labels['prevweek'] = 'Previous week';
|
||||
$labels['thismonth'] = 'This month';
|
||||
$labels['nextmonth'] = 'Next month';
|
||||
$labels['weekofyear'] = 'Week';
|
||||
$labels['pastevents'] = 'Past';
|
||||
$labels['futureevents'] = 'Future';
|
||||
$labels['showalarms'] = 'Show reminders';
|
||||
$labels['defaultalarmtype'] = 'Default reminder setting';
|
||||
$labels['defaultalarmoffset'] = 'Default reminder time';
|
||||
$labels['attendee'] = 'Participant';
|
||||
$labels['role'] = 'Role';
|
||||
$labels['availability'] = 'Avail.';
|
||||
$labels['confirmstate'] = 'Status';
|
||||
$labels['addattendee'] = 'Add participant';
|
||||
$labels['roleorganizer'] = 'Organizer';
|
||||
$labels['rolerequired'] = 'Required';
|
||||
$labels['roleoptional'] = 'Optional';
|
||||
$labels['rolechair'] = 'Chair';
|
||||
$labels['rolenonparticipant'] = 'Absent';
|
||||
$labels['cutypeindividual'] = 'Individual';
|
||||
$labels['cutypegroup'] = 'Group';
|
||||
$labels['cutyperesource'] = 'Resource';
|
||||
$labels['cutyperoom'] = 'Room';
|
||||
$labels['availfree'] = 'Free';
|
||||
$labels['availbusy'] = 'Busy';
|
||||
$labels['availunknown'] = 'Unknown';
|
||||
$labels['availtentative'] = 'Tentative';
|
||||
$labels['availoutofoffice'] = 'Out of Office';
|
||||
$labels['delegatedto'] = 'Delegated to: ';
|
||||
$labels['delegatedfrom'] = 'Delegated from: ';
|
||||
$labels['scheduletime'] = 'Find availability';
|
||||
$labels['sendinvitations'] = 'Send invitations';
|
||||
$labels['sendnotifications'] = 'Notify participants about modifications';
|
||||
$labels['sendcancellation'] = 'Notify participants about event cancellation';
|
||||
$labels['onlyworkinghours'] = 'Find availability within my working hours';
|
||||
$labels['reqallattendees'] = 'Required/all participants';
|
||||
$labels['prevslot'] = 'Previous Slot';
|
||||
$labels['nextslot'] = 'Next Slot';
|
||||
$labels['suggestedslot'] = 'Suggested Slot';
|
||||
$labels['noslotfound'] = 'Unable to find a free time slot';
|
||||
$labels['invitationsubject'] = 'You\'ve been invited to "$title"';
|
||||
$labels['invitationmailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nPlease find attached an iCalendar file with all the event details which you can import to your calendar application.";
|
||||
$labels['invitationattendlinks'] = "In case your email client doesn't support iTip requests you can use the following link to either accept or decline this invitation:\n\$url";
|
||||
$labels['eventupdatesubject'] = '"$title" has been updated';
|
||||
$labels['eventupdatesubjectempty'] = 'An event that concerns you has been updated';
|
||||
$labels['eventupdatemailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nPlease find attached an iCalendar file with the updated event details which you can import to your calendar application.";
|
||||
$labels['eventcancelsubject'] = '"$title" has been canceled';
|
||||
$labels['eventcancelmailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nThe event has been cancelled by \$organizer.\n\nPlease find attached an iCalendar file with the updated event details.";
|
||||
$labels['itipobjectnotfound'] = 'The event referred by this message was not found in your calendar.';
|
||||
$labels['itipmailbodyaccepted'] = "\$sender has accepted the invitation to the following event:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
|
||||
$labels['itipmailbodytentative'] = "\$sender has tentatively accepted the invitation to the following event:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
|
||||
$labels['itipmailbodydeclined'] = "\$sender has declined the invitation to the following event:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
|
||||
$labels['itipmailbodycancel'] = "\$sender has rejected your participation in the following event:\n\n*\$title*\n\nWhen: \$date";
|
||||
$labels['itipmailbodydelegated'] = "\$sender has delegated the participation in the following event:\n\n*\$title*\n\nWhen: \$date";
|
||||
$labels['itipmailbodydelegatedto'] = "\$sender has delegated the participation in the following event to you:\n\n*\$title*\n\nWhen: \$date";
|
||||
$labels['itipdeclineevent'] = 'Do you want to decline your invitation to this event?';
|
||||
$labels['declinedeleteconfirm'] = 'Do you also want to delete this declined event from your calendar?';
|
||||
$labels['itipcomment'] = 'Invitation/notification comment';
|
||||
$labels['itipcommenttitle'] = 'This comment will be attached to the invitation/notification message sent to participants';
|
||||
$labels['notanattendee'] = 'You\'re not listed as an attendee of this event';
|
||||
$labels['eventcancelled'] = 'The event has been cancelled';
|
||||
$labels['saveincalendar'] = 'save in';
|
||||
$labels['updatemycopy'] = 'Update in my calendar';
|
||||
$labels['savetocalendar'] = 'Save to calendar';
|
||||
$labels['openpreview'] = 'Check Calendar';
|
||||
$labels['noearlierevents'] = 'No earlier events';
|
||||
$labels['nolaterevents'] = 'No later events';
|
||||
$labels['resource'] = 'Resource';
|
||||
$labels['addresource'] = 'Book resource';
|
||||
$labels['findresources'] = 'Find resources';
|
||||
$labels['resourcedetails'] = 'Details';
|
||||
$labels['resourceavailability'] = 'Availability';
|
||||
$labels['resourceowner'] = 'Owner';
|
||||
$labels['resourceadded'] = 'The resource was added to your event';
|
||||
$labels['tabsummary'] = 'Summary';
|
||||
$labels['tabrecurrence'] = 'Recurrence';
|
||||
$labels['tabattendees'] = 'Participants';
|
||||
$labels['tabresources'] = 'Resources';
|
||||
$labels['tabattachments'] = 'Attachments';
|
||||
$labels['tabsharing'] = 'Sharing';
|
||||
$labels['deleteobjectconfirm'] = 'Do you really want to delete this event?';
|
||||
$labels['deleteventconfirm'] = 'Do you really want to delete this event?';
|
||||
$labels['deletecalendarconfirm'] = 'Do you really want to delete this calendar with all its events?';
|
||||
$labels['deletecalendarconfirmrecursive'] = 'Do you really want to delete this calendar with all its events and sub-calendars?';
|
||||
$labels['savingdata'] = 'Saving data...';
|
||||
$labels['errorsaving'] = 'Failed to save changes.';
|
||||
$labels['operationfailed'] = 'The requested operation failed.';
|
||||
$labels['invalideventdates'] = 'Invalid dates entered! Please check your input.';
|
||||
$labels['invalidcalendarproperties'] = 'Invalid calendar properties! Please set a valid name.';
|
||||
$labels['searchnoresults'] = 'No events found in the selected calendars.';
|
||||
$labels['successremoval'] = 'The event has been deleted successfully.';
|
||||
$labels['successrestore'] = 'The event has been restored successfully.';
|
||||
$labels['errornotifying'] = 'Failed to send notifications to event participants';
|
||||
$labels['errorimportingevent'] = 'Failed to import the event';
|
||||
$labels['importwarningexists'] = 'A copy of this event already exists in your calendar.';
|
||||
$labels['newerversionexists'] = 'A newer version of this event already exists! Aborted.';
|
||||
$labels['nowritecalendarfound'] = 'No calendar found to save the event';
|
||||
$labels['importedsuccessfully'] = 'The event was successfully added to \'$calendar\'';
|
||||
$labels['updatedsuccessfully'] = 'The event was successfully updated in \'$calendar\'';
|
||||
$labels['attendeupdateesuccess'] = 'Successfully updated the participant\'s status';
|
||||
$labels['itipsendsuccess'] = 'Invitation sent to participants.';
|
||||
$labels['itipresponseerror'] = 'Failed to send the response to this event invitation';
|
||||
$labels['itipinvalidrequest'] = 'This invitation is no longer valid';
|
||||
$labels['sentresponseto'] = 'Successfully sent invitation response to $mailto';
|
||||
$labels['localchangeswarning'] = 'You are about to make changes that will only be reflected on your calendar and not be sent to the organizer of the event.';
|
||||
$labels['importsuccess'] = 'Successfully imported $nr events';
|
||||
$labels['importnone'] = 'No events found to be imported';
|
||||
$labels['importerror'] = 'An error occured while importing';
|
||||
$labels['aclnorights'] = 'You do not have administrator rights on this calendar.';
|
||||
$labels['changeeventconfirm'] = 'Change event';
|
||||
$labels['removeeventconfirm'] = 'Delete event';
|
||||
$labels['changerecurringeventwarning'] = 'This is a recurring event. Would you like to edit the current event only, this and all future occurences, all occurences or save it as a new event?';
|
||||
$labels['removerecurringeventwarning'] = 'This is a recurring event. Would you like to delete the current event only, this and all future occurences or all occurences of this event?';
|
||||
$labels['currentevent'] = 'Current';
|
||||
$labels['futurevents'] = 'Future';
|
||||
$labels['allevents'] = 'All';
|
||||
$labels['saveasnew'] = 'Save as new';
|
||||
$labels['birthdays'] = 'Birthdays';
|
||||
$labels['birthdayscalendar'] = 'Birthdays Calendar';
|
||||
$labels['displaybirthdayscalendar'] = 'Display birthdays calendar';
|
||||
$labels['birthdayscalendarsources'] = 'From these address books';
|
||||
$labels['birthdayeventtitle'] = '$name\'s Birthday';
|
||||
$labels['birthdayage'] = 'Age $age';
|
||||
$labels['eventchangelog'] = 'Change History';
|
||||
$labels['eventdiff'] = 'Changes from revisions $rev';
|
||||
$labels['revision'] = 'Revision';
|
||||
$labels['user'] = 'User';
|
||||
$labels['operation'] = 'Action';
|
||||
$labels['actionappend'] = 'Saved';
|
||||
$labels['actionmove'] = 'Moved';
|
||||
$labels['actiondelete'] = 'Deleted';
|
||||
$labels['compare'] = 'Compare';
|
||||
$labels['showrevision'] = 'Show this version';
|
||||
$labels['restore'] = 'Restore this version';
|
||||
$labels['eventnotfound'] = 'Failed to load event data';
|
||||
$labels['eventchangelognotavailable'] = 'Change history is not available for this event';
|
||||
$labels['eventdiffnotavailable'] = 'No comparison possible for the selected revisions';
|
||||
$labels['eventrestoreconfirm'] = 'Do you really want to restore revision $rev of this event? This will replace the current event with the old version.';
|
||||
$labels['arialabelminical'] = 'Calendar date selection';
|
||||
$labels['arialabelcalendarview'] = 'Calendar view';
|
||||
$labels['arialabelsearchform'] = 'Event search form';
|
||||
$labels['arialabelquicksearchbox'] = 'Event search input';
|
||||
$labels['arialabelcalsearchform'] = 'Calendars search form';
|
||||
$labels['calendaractions'] = 'Calendar actions';
|
||||
$labels['arialabeleventattendees'] = 'Event participants list';
|
||||
$labels['arialabeleventresources'] = 'Event resources list';
|
||||
$labels['arialabelresourcesearchform'] = 'Resources search form';
|
||||
$labels['arialabelresourceselection'] = 'Available resources';
|
||||
?>
|
|
@ -1,38 +1,217 @@
|
|||
<?php
|
||||
/**
|
||||
* RoundCube Calendar
|
||||
* Localizations for Kolab Calendar plugin
|
||||
*
|
||||
* Plugin to add a calendar to RoundCube.
|
||||
* Copyright (C) 2014, Kolab Systems AG
|
||||
*
|
||||
* @version 0.2 BETA 2
|
||||
* @author Lazlo Westerhof
|
||||
* @url http://rc-calendar.lazlo.me
|
||||
* @licence GNU GPL
|
||||
* @copyright (c) 2010 Lazlo Westerhof - Netherlands
|
||||
*
|
||||
**/
|
||||
|
||||
$labels = array();
|
||||
|
||||
// config
|
||||
$labels['default_view'] = 'Alap nézet';
|
||||
$labels['time_format'] = 'Idõ formátum';
|
||||
$labels['timeslots'] = 'Idõrés óránként';
|
||||
$labels['first_day'] = 'A hét elsõ napja';
|
||||
|
||||
// calendar
|
||||
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
|
||||
*/
|
||||
$labels['default_view'] = 'Alapnézett nézet';
|
||||
$labels['time_format'] = 'Idő formátum';
|
||||
$labels['timeslots'] = 'Órák felbontása időrésekre';
|
||||
$labels['first_day'] = 'A hét első napja';
|
||||
$labels['first_hour'] = 'Kezdő óra';
|
||||
$labels['workinghours'] = 'Munkaidő';
|
||||
$labels['add_category'] = 'Kategória hozzáadása';
|
||||
$labels['remove_category'] = 'Kategória törlése';
|
||||
$labels['defaultcalendar'] = 'Új események alapértelmezett helye';
|
||||
$labels['eventcoloring'] = 'Események színezése';
|
||||
$labels['coloringmode0'] = 'Naptár szerint';
|
||||
$labels['coloringmode1'] = 'Kategória szerint';
|
||||
$labels['coloringmode2'] = 'Naptár színe körvonal, kategória színe belsőrész';
|
||||
$labels['coloringmode3'] = 'Kategória színe körvonal, naptár színe belsőrész';
|
||||
$labels['calendar'] = 'Naptár';
|
||||
$labels['calendars'] = 'Naptárak';
|
||||
$labels['category'] = 'Kategória';
|
||||
$labels['categories'] = 'Kategóriák';
|
||||
$labels['createcalendar'] = 'Új naptár létrehozása';
|
||||
$labels['editcalendar'] = 'Naptár tulajdonságai';
|
||||
$labels['name'] = 'Név';
|
||||
$labels['color'] = 'Szín';
|
||||
$labels['day'] = 'Nap';
|
||||
$labels['week'] = 'Hét';
|
||||
$labels['month'] = 'Hónap';
|
||||
$labels['new_event'] = 'Új bejegyzés';
|
||||
$labels['edit_event'] = 'Bejegyzés szerkesztése';
|
||||
$labels['agenda'] = 'Napirend';
|
||||
$labels['new'] = 'Új';
|
||||
$labels['new_event'] = 'Új esemény';
|
||||
$labels['edit_event'] = 'Esemény módosítása';
|
||||
$labels['edit'] = 'Módosítás';
|
||||
$labels['save'] = 'Mentés';
|
||||
$labels['remove'] = 'Törlés';
|
||||
$labels['removelist'] = 'Remove from list';
|
||||
$labels['cancel'] = 'Mégse';
|
||||
$labels['select'] = 'Jelölés';
|
||||
$labels['print'] = 'Nyomtatás';
|
||||
$labels['printtitle'] = 'Naptárak nyomtatása';
|
||||
$labels['title'] = 'Tárgy';
|
||||
$labels['description'] = 'Leírás';
|
||||
$labels['all-day'] = 'Egész nap';
|
||||
$labels['export'] = 'Exportálás ICS formátumba';
|
||||
$labels['category'] = 'Kategória';
|
||||
$labels['export'] = 'Exportálás';
|
||||
$labels['exporttitle'] = 'Exportálás iCalendar-ba';
|
||||
$labels['exportrange'] = 'Visszamenőleg';
|
||||
$labels['exportattachments'] = 'Csatolmányokkal';
|
||||
$labels['customdate'] = 'Megadott dátumig';
|
||||
$labels['location'] = 'Hol';
|
||||
$labels['url'] = 'URL';
|
||||
$labels['date'] = 'Dátum';
|
||||
$labels['start'] = 'Kezdet';
|
||||
$labels['starttime'] = 'Start time';
|
||||
$labels['end'] = 'Vég';
|
||||
$labels['repeat'] = 'Ismétlődés';
|
||||
$labels['selectdate'] = 'Válasszon dátumot';
|
||||
$labels['freebusy'] = 'Foglaltság';
|
||||
$labels['free'] = 'Szabad';
|
||||
$labels['busy'] = 'Foglalt';
|
||||
$labels['outofoffice'] = 'Házon kívűl';
|
||||
$labels['tentative'] = 'Feltételes';
|
||||
$labels['status'] = 'Stát.';
|
||||
$labels['status-confirmed'] = 'Confirmed';
|
||||
$labels['status-cancelled'] = 'Cancelled';
|
||||
$labels['priority'] = 'Prioritás';
|
||||
$labels['sensitivity'] = 'Manánszféra';
|
||||
$labels['public'] = 'publikus';
|
||||
$labels['private'] = 'privát';
|
||||
$labels['confidential'] = 'titkos';
|
||||
$labels['links'] = 'Reference';
|
||||
$labels['alarms'] = 'Emlékeztető';
|
||||
$labels['comment'] = 'Megjegyzés';
|
||||
$labels['created'] = 'Created';
|
||||
$labels['changed'] = 'Last Modified';
|
||||
$labels['unknown'] = 'Ismeretlen foglaltság';
|
||||
$labels['generated'] = 'készítve:';
|
||||
$labels['removelink'] = 'Remove email reference';
|
||||
$labels['printdescriptions'] = 'Leírás nyomtatása';
|
||||
$labels['parentcalendar'] = 'Szülőnaptár';
|
||||
$labels['searchearlierdates'] = '< Korábbi események keresése';
|
||||
$labels['searchlaterdates'] = 'Későbbi események keresése >';
|
||||
$labels['andnmore'] = 'még $nr ...';
|
||||
$labels['togglerole'] = 'Kattintson a szerepváltáshoz';
|
||||
$labels['createfrommail'] = 'Mentés naptári eseményként';
|
||||
$labels['importevents'] = 'Események importálása';
|
||||
$labels['importrange'] = 'Visszamenőleg';
|
||||
$labels['onemonthback'] = '1 hónapra';
|
||||
$labels['nmonthsback'] = '$nr hónapra';
|
||||
$labels['showurl'] = 'Naptár URL címe';
|
||||
$labels['showurldescription'] = 'Ezen a címen érhető el (csak olvasásra!) a naptár más alkalmazások számára, iCal formátumban.';
|
||||
$labels['caldavurldescription'] = 'Másolja be ezt a címet egy <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a>-kompatibilis kliensbe (pl. Evolution vagy Mozilla Thunderbird) hogy kétirányú szinkronizációval tudjon a naptárához hozzáférni.';
|
||||
$labels['searchterms'] = 'Search terms';
|
||||
$labels['calendarsubscribe'] = 'List permanently';
|
||||
$labels['listrange'] = 'Megjelenítés:';
|
||||
$labels['listsections'] = 'Felosztás:';
|
||||
$labels['smartsections'] = 'Áttekintve';
|
||||
$labels['until'] = 'eddig';
|
||||
$labels['today'] = 'Ma';
|
||||
$labels['tomorrow'] = 'Holnap';
|
||||
$labels['thisweek'] = 'Ezen a héten';
|
||||
$labels['nextweek'] = 'Jövő héten';
|
||||
$labels['thismonth'] = 'Ebben a hónapban';
|
||||
$labels['nextmonth'] = 'Jövő hónapban';
|
||||
$labels['weekofyear'] = 'Hét:';
|
||||
$labels['pastevents'] = 'Múltban';
|
||||
$labels['futureevents'] = 'Jövőben';
|
||||
$labels['showalarms'] = 'Emlékeztetők megjelenítése';
|
||||
$labels['defaultalarmtype'] = 'Alapértelmezett emlékeztető';
|
||||
$labels['defaultalarmoffset'] = 'Alapértelmezett emlékeztető ideje';
|
||||
$labels['attendee'] = 'Résztvevő';
|
||||
$labels['role'] = 'Szerepkör';
|
||||
$labels['availability'] = 'Elérh.';
|
||||
$labels['confirmstate'] = 'Stát.';
|
||||
$labels['addattendee'] = 'Résztvevő meghívása';
|
||||
$labels['roleorganizer'] = 'Szervező';
|
||||
$labels['rolerequired'] = 'Kötelező';
|
||||
$labels['roleoptional'] = 'Opcionális';
|
||||
$labels['rolechair'] = 'Elnöklő';
|
||||
$labels['rolenonparticipant'] = 'Hiányzó';
|
||||
$labels['cutypeindividual'] = 'Egyén';
|
||||
$labels['cutypegroup'] = 'Csoport';
|
||||
$labels['cutyperesource'] = 'Eszköz';
|
||||
$labels['cutyperoom'] = 'Helyiség';
|
||||
$labels['availfree'] = 'Szabad';
|
||||
$labels['availbusy'] = 'Foglalt';
|
||||
$labels['availunknown'] = 'Ismeretlen foglaltság';
|
||||
$labels['availtentative'] = 'Feltételes';
|
||||
$labels['availoutofoffice'] = 'Házon kívül';
|
||||
$labels['delegatedto'] = 'Beosztva ide: ';
|
||||
$labels['delegatedfrom'] = 'Beosztva innen: ';
|
||||
$labels['scheduletime'] = 'Elérhetőség';
|
||||
$labels['sendinvitations'] = 'Meghívók küldése';
|
||||
$labels['sendnotifications'] = 'Résztvevők értesítése a változásokról';
|
||||
$labels['sendcancellation'] = 'Résztvevők értesítése a lemondásról';
|
||||
$labels['onlyworkinghours'] = 'Elérhetőség figyelembevétele csak az én munkaidőmben';
|
||||
$labels['reqallattendees'] = 'Mindenki részére';
|
||||
$labels['prevslot'] = 'Előző idősáv';
|
||||
$labels['nextslot'] = 'Következő idősáv';
|
||||
$labels['noslotfound'] = 'Nem sikerült szabad idősávot találni';
|
||||
$labels['invitationsubject'] = '$title';
|
||||
$labels['invitationmailbody'] = "Meghívó érkezett '\$title' eseményre.\n\nIdőpont: \$date\nSzervező: \$organizer\nRésztvevők: \$attendees\n\n\nMellékletben egy iCalendar naptárbejegyzés, mely tetszőleges naptárprogramba importálható.";
|
||||
$labels['invitationattendlinks'] = "Amennyiben a levelezőben nem lát elfogadó/elutasító gombokat (a levelező program nem támogatja az iTip üzeneteket), kattintson ide a meghívó elfogadására, vagy elutasítására:\n\$url";
|
||||
$labels['eventupdatesubject'] = '$title - módosítva';
|
||||
$labels['eventupdatesubjectempty'] = 'Egy Önt érintő esemény módosítva lett';
|
||||
$labels['eventupdatemailbody'] = "Módosítás érkezett '\$title' eseményre vonatkozóan.\n\nIdőpont: \$date\nSzervező: \$organizer\nRésztvevők: \$attendees\n\n\nMellékletben egy frissített iCalendar naptárbejegyzés, mely tetszőleges naptárprogramba importálható.";
|
||||
$labels['eventcancelsubject'] = '$title - lemondva';
|
||||
$labels['eventcancelmailbody'] = "'\$title' eseményre \$organizer szervező visszavonta a meghívást.\n\nIdőpont: \$date\nRésztvevők: \$attendees\n\n\nMellékletben egy frissített iCalendar naptárbejegyzés, mely tetszőleges naptárprogramba importálható.";
|
||||
$labels['itipobjectnotfound'] = 'Az üzenetben hivatkozott esemény nem található a naptárban.';
|
||||
$labels['itipmailbodyaccepted'] = "\$sender elfogadta a meghívást '\$title' eseményre.\n\nIdőpont: \$date\nRésztvevők: \$attendees";
|
||||
$labels['itipmailbodytentative'] = "\$sender feltételesen elfogadta a meghívást '\$title' eseményre.\n\nIdőpont: \$date\nRésztvevők: \$attendees";
|
||||
$labels['itipmailbodydeclined'] = "\$sender elutasította a meghívást '\$title' eseményre.\n\nIdőpont: \$date\nRésztvevők: \$attendees";
|
||||
$labels['itipmailbodycancel'] = "\$sender elutasította a részvételét '\$title' eseményen, \$date időpontra";
|
||||
$labels['itipdeclineevent'] = 'Biztos benne, hogy el szeretné utasítani ezt a meghívást?';
|
||||
$labels['declinedeleteconfirm'] = 'Ki is szeretné törölni a saját naptárából ezt az időpontot?';
|
||||
$labels['itipcomment'] = 'Invitation/notification comment';
|
||||
$labels['notanattendee'] = 'Ön nem szerepel az esemény meghívottai között';
|
||||
$labels['eventcancelled'] = 'Az esemény le lett mondva';
|
||||
$labels['saveincalendar'] = 'Mentés naptárba';
|
||||
$labels['updatemycopy'] = 'Naptárbejegyzés frissítése';
|
||||
$labels['resource'] = 'Eszközök';
|
||||
$labels['addresource'] = 'Eszköz foglalása';
|
||||
$labels['findresources'] = 'Eszközök keresése';
|
||||
$labels['resourcedetails'] = 'Részletek';
|
||||
$labels['resourceavailability'] = 'Elérhetőség';
|
||||
$labels['resourceowner'] = 'Tulajdonos';
|
||||
$labels['resourceadded'] = 'Az eszköz le lett foglalva az eseményhez';
|
||||
$labels['tabsummary'] = 'Részletek';
|
||||
$labels['tabrecurrence'] = 'Ismétlődés';
|
||||
$labels['tabattendees'] = 'Résztvevők';
|
||||
$labels['tabresources'] = 'Eszközök';
|
||||
$labels['tabattachments'] = 'Csatolmányok';
|
||||
$labels['tabsharing'] = 'Megosztás';
|
||||
$labels['deleteobjectconfirm'] = 'Biztos benne, hogy törölni szeretné ezt az eseményt?';
|
||||
$labels['deleteventconfirm'] = 'Biztos benne, hogy törölni szeretné ezt az eseményt?';
|
||||
$labels['deletecalendarconfirm'] = 'Biztos benne, hogy törölni szeretné ezt a naptárat, az összes benne lévő eseménnyel?';
|
||||
$labels['deletecalendarconfirmrecursive'] = 'Biztos benne, hogy törölni szeretné ezt a naptárat, az összes benne lévő al-naptárral és eseménnyel?';
|
||||
$labels['savingdata'] = 'Adatok mentése...';
|
||||
$labels['errorsaving'] = 'A módosításokat nem sikerült elmenteni.';
|
||||
$labels['operationfailed'] = 'A műveletet nem sikerült elvégezni.';
|
||||
$labels['invalideventdates'] = 'Helytelen dátumokoat adott meg! Kérem, ellenörizze a bevírt adatokat.';
|
||||
$labels['invalidcalendarproperties'] = 'Helytelen naptár tulajdonságok! Kérem, adjon meg egy helyes nevet.';
|
||||
$labels['searchnoresults'] = 'Nem található esemény a kiválasztott naptárakban.';
|
||||
$labels['successremoval'] = 'Az esemény törlése sikerült.';
|
||||
$labels['successrestore'] = 'Az esemény sikeresen vissza lett állítva.';
|
||||
$labels['errornotifying'] = 'Nem sikerült meghívókat küldeni a résztvevőknek.';
|
||||
$labels['errorimportingevent'] = 'Az esemény importálása sikertelen volt.';
|
||||
$labels['newerversionexists'] = 'Egy újabb verzió már van ebből az eseményből! Itt abbahagytam.';
|
||||
$labels['nowritecalendarfound'] = 'No calendar found to save the event';
|
||||
$labels['importedsuccessfully'] = 'Az esemény a \'$calendar\' naptárhoz hozzá lett adva';
|
||||
$labels['attendeupdateesuccess'] = 'A résztvevők adatai sikeresen frissítve';
|
||||
$labels['itipsendsuccess'] = 'Értesítés küldve a résztvevőknek';
|
||||
$labels['itipresponseerror'] = 'Nem sikerült választ küldeni erre a meghívásra';
|
||||
$labels['itipinvalidrequest'] = 'Ez a meghívás már érvénytelen';
|
||||
$labels['sentresponseto'] = 'Értesítésre válasz küldve: $mailto';
|
||||
$labels['localchangeswarning'] = 'Ezek a változások csak az ön naptárában fognak megjelenni, az esemény szervezőjénél nem.';
|
||||
$labels['importsuccess'] = '$nr esemény sikeresen importálva lett';
|
||||
$labels['importnone'] = 'Nem található importálható esemény.';
|
||||
$labels['importerror'] = 'Hiba importálás közben';
|
||||
$labels['aclnorights'] = 'Nincs adminisztrátori joga ehhez a naptárhoz';
|
||||
$labels['changeeventconfirm'] = 'Bejegyzés módosítása';
|
||||
$labels['changerecurringeventwarning'] = 'Ez egy ismétlődő esemény. Csak ezt az előfordulást szeretné módosítani, esetleg ezt az előfordulást az összes következővel, netán a teljes sorozatot, vagy új eseményként legyen mentve?';
|
||||
$labels['currentevent'] = 'Csak ezt';
|
||||
$labels['futurevents'] = 'Ezt és a következőeket';
|
||||
$labels['allevents'] = 'Egész sorozatot';
|
||||
$labels['saveasnew'] = 'Mentés újként';
|
||||
$labels['birthdays'] = 'Születésnapok';
|
||||
$labels['birthdayscalendar'] = 'Születésnapi naptár';
|
||||
$labels['displaybirthdayscalendar'] = 'Születésnapok megjelenítése';
|
||||
$labels['birthdayscalendarsources'] = 'Alábbi címjegyzékekből:';
|
||||
$labels['birthdayeventtitle'] = '$name születésnapja';
|
||||
$labels['birthdayage'] = '$age éves';
|
||||
$labels['actiondelete'] = 'Deleted';
|
||||
?>
|
||||
|
|
|
@ -1,38 +1,274 @@
|
|||
<?php
|
||||
/**
|
||||
* RoundCube Calendar
|
||||
* Localizations for Kolab Calendar plugin
|
||||
*
|
||||
* Plugin to add a calendar to RoundCube.
|
||||
* Copyright (C) 2014, Kolab Systems AG
|
||||
*
|
||||
* @version 0.2 BETA 2
|
||||
* @author Lazlo Westerhof
|
||||
* @url http://rc-calendar.lazlo.me
|
||||
* @licence GNU GPL
|
||||
* @copyright (c) 2010 Lazlo Westerhof - Netherlands
|
||||
*
|
||||
**/
|
||||
|
||||
$labels = array();
|
||||
|
||||
// config
|
||||
$labels['default_view'] = 'Visualizzazine di default';
|
||||
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
|
||||
*/
|
||||
$labels['default_view'] = 'Visualizzazione predefinita';
|
||||
$labels['time_format'] = 'Formato ora';
|
||||
$labels['timeslots'] = 'Timeslots per ora';
|
||||
$labels['first_day'] = 'Inizio settimana';
|
||||
|
||||
// calendar
|
||||
$labels['first_hour'] = 'Prima ora da mostrare';
|
||||
$labels['workinghours'] = 'Orario lavorativo';
|
||||
$labels['add_category'] = 'Aggiungi categoria';
|
||||
$labels['remove_category'] = 'Rimuovi categoria';
|
||||
$labels['defaultcalendar'] = 'Crea nuovi eventi in';
|
||||
$labels['eventcoloring'] = 'Colorazione evento';
|
||||
$labels['coloringmode0'] = 'Secondo il calendario';
|
||||
$labels['coloringmode1'] = 'Secondo la categoria';
|
||||
$labels['coloringmode2'] = 'Calendar for outline, category for content';
|
||||
$labels['coloringmode3'] = 'Category for outline, calendar for content';
|
||||
$labels['afternothing'] = 'Nessuna azione';
|
||||
$labels['aftertrash'] = 'Sposta nel cestino';
|
||||
$labels['afterdelete'] = 'Cancella il messaggio';
|
||||
$labels['afterflagdeleted'] = 'Segna come cancellato';
|
||||
$labels['aftermoveto'] = 'Sposta in...';
|
||||
$labels['itipoptions'] = 'Inviti all\'evento';
|
||||
$labels['afteraction'] = 'Dopo un invito o un aggiornamento il messaggio è processato';
|
||||
$labels['calendar'] = 'Calendario';
|
||||
$labels['calendars'] = 'Calendari';
|
||||
$labels['category'] = 'Categoria';
|
||||
$labels['categories'] = 'Categorie';
|
||||
$labels['createcalendar'] = 'Crea nuovo calendario';
|
||||
$labels['editcalendar'] = 'Modifica proprietà calendario';
|
||||
$labels['name'] = 'Nome';
|
||||
$labels['color'] = 'Colore';
|
||||
$labels['day'] = 'Giorno';
|
||||
$labels['week'] = 'Settimana';
|
||||
$labels['month'] = 'Mese';
|
||||
$labels['agenda'] = 'Agenda';
|
||||
$labels['new'] = 'Nuovo';
|
||||
$labels['new_event'] = 'Nuovo evento';
|
||||
$labels['edit_event'] = 'Modifica evento';
|
||||
$labels['edit'] = 'Modifica';
|
||||
$labels['save'] = 'Salva';
|
||||
$labels['remove'] = 'Elimina';
|
||||
$labels['removelist'] = 'Rimuovi dalla lista';
|
||||
$labels['cancel'] = 'Annulla';
|
||||
$labels['select'] = 'Seleziona';
|
||||
$labels['print'] = 'Stampa';
|
||||
$labels['printtitle'] = 'Stampa calendari';
|
||||
$labels['title'] = 'Oggetto';
|
||||
$labels['description'] = 'Descrizione';
|
||||
$labels['all-day'] = 'Giorno intero';
|
||||
$labels['export'] = 'Esporta in ICS';
|
||||
$labels['category'] = 'Categoria';
|
||||
?>
|
||||
$labels['all-day'] = 'Tutto il giorno';
|
||||
$labels['export'] = 'Esporta';
|
||||
$labels['exporttitle'] = 'Esporta come iCalendar';
|
||||
$labels['exportrange'] = 'Eventi di';
|
||||
$labels['exportattachments'] = 'Con allegati';
|
||||
$labels['customdate'] = 'Data personalizzata';
|
||||
$labels['location'] = 'Luogo';
|
||||
$labels['url'] = 'URL';
|
||||
$labels['date'] = 'Data';
|
||||
$labels['start'] = 'Inizio';
|
||||
$labels['starttime'] = 'Ora di inizio';
|
||||
$labels['end'] = 'Fine';
|
||||
$labels['endtime'] = 'Ora di fine';
|
||||
$labels['repeat'] = 'Ricorrenza';
|
||||
$labels['selectdate'] = 'Scegliere la data';
|
||||
$labels['freebusy'] = 'Mostrami come';
|
||||
$labels['free'] = 'Libero';
|
||||
$labels['busy'] = 'Occupato';
|
||||
$labels['outofoffice'] = 'Fuori Ufficio';
|
||||
$labels['tentative'] = 'Provvisorio';
|
||||
$labels['mystatus'] = 'Il mio stato';
|
||||
$labels['status'] = 'Stato';
|
||||
$labels['status-confirmed'] = 'Confermato';
|
||||
$labels['status-cancelled'] = 'Cancellato';
|
||||
$labels['priority'] = 'Priorità';
|
||||
$labels['sensitivity'] = 'Privacy';
|
||||
$labels['public'] = 'pubblico';
|
||||
$labels['private'] = 'privato';
|
||||
$labels['confidential'] = 'confidenziale';
|
||||
$labels['links'] = 'Riferimento';
|
||||
$labels['alarms'] = 'Promemoria';
|
||||
$labels['comment'] = 'Commento';
|
||||
$labels['created'] = 'Creato';
|
||||
$labels['changed'] = 'Ultima modifica';
|
||||
$labels['unknown'] = 'Sconosciuto';
|
||||
$labels['eventoptions'] = 'Opzioni';
|
||||
$labels['generated'] = 'generato il';
|
||||
$labels['eventhistory'] = 'Storico';
|
||||
$labels['removelink'] = 'Rimuovi riferimento email';
|
||||
$labels['printdescriptions'] = 'Stampa descrizioni';
|
||||
$labels['parentcalendar'] = 'Inserisci dentro';
|
||||
$labels['searchearlierdates'] = '« Cerca eventi precedenti';
|
||||
$labels['searchlaterdates'] = 'Cerca eventi successivi »';
|
||||
$labels['andnmore'] = 'Altri $nr...';
|
||||
$labels['togglerole'] = 'Fare clic per cambiare il ruolo';
|
||||
$labels['createfrommail'] = 'Salva come evento';
|
||||
$labels['importevents'] = 'Importa eventi';
|
||||
$labels['importrange'] = 'Eventi di';
|
||||
$labels['onemonthback'] = '1 mese prima';
|
||||
$labels['nmonthsback'] = '$nr mesi prima';
|
||||
$labels['showurl'] = 'Mostra URL calendario';
|
||||
$labels['showurldescription'] = 'Usare il seguente indirizzo per accedere (in sola lettura) al calendario da altre applicazioni. È possibile copiarlo e incollarlo in qualsiasi software che supporta il formato iCal.';
|
||||
$labels['caldavurldescription'] = 'Copiare questo indirizzo in un\'applicazione client <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a> (es. Evolution o Mozilla Thunderbird) per sincronizzare completamente questo specifico calendario con il proprio computer o dispositivo mobile.';
|
||||
$labels['findcalendars'] = 'Trova calendari...';
|
||||
$labels['searchterms'] = 'Cerca elemento';
|
||||
$labels['calsearchresults'] = 'Calendari disponibili';
|
||||
$labels['calendarsubscribe'] = 'Elenca sempre';
|
||||
$labels['nocalendarsfound'] = 'Nessun calendario trovato';
|
||||
$labels['nrcalendarsfound'] = '$nr calendari trovati';
|
||||
$labels['quickview'] = 'Visualizza solo questo calendario';
|
||||
$labels['invitationspending'] = 'Inviti in sospeso';
|
||||
$labels['invitationsdeclined'] = 'Inviti scartati';
|
||||
$labels['changepartstat'] = 'Cambia lo stato del partecipante';
|
||||
$labels['rsvpcomment'] = 'Testo dell\'invito';
|
||||
$labels['listrange'] = 'Intervallo da visualizzare:';
|
||||
$labels['listsections'] = 'Dividi in:';
|
||||
$labels['smartsections'] = 'Sezioni intelligenti';
|
||||
$labels['until'] = 'fino a';
|
||||
$labels['today'] = 'Oggi';
|
||||
$labels['tomorrow'] = 'Domani';
|
||||
$labels['thisweek'] = 'Questa settimana';
|
||||
$labels['nextweek'] = 'Prossima settimana';
|
||||
$labels['prevweek'] = 'Settimana precedente';
|
||||
$labels['thismonth'] = 'Questo mese';
|
||||
$labels['nextmonth'] = 'Prossimo mese';
|
||||
$labels['weekofyear'] = 'Settimana';
|
||||
$labels['pastevents'] = 'Passato';
|
||||
$labels['futureevents'] = 'Futuro';
|
||||
$labels['showalarms'] = 'Mostra promemoria';
|
||||
$labels['defaultalarmtype'] = 'Impostazioni predefinite dei promemoria';
|
||||
$labels['defaultalarmoffset'] = 'Tempo predefinito per i promemoria';
|
||||
$labels['attendee'] = 'Partecipante';
|
||||
$labels['role'] = 'Ruolo';
|
||||
$labels['availability'] = 'Dispon.';
|
||||
$labels['confirmstate'] = 'Stato';
|
||||
$labels['addattendee'] = 'Aggiungi partecipante';
|
||||
$labels['roleorganizer'] = 'Organizzatore';
|
||||
$labels['rolerequired'] = 'Necessario';
|
||||
$labels['roleoptional'] = 'Facoltativo';
|
||||
$labels['rolechair'] = 'Presidente';
|
||||
$labels['rolenonparticipant'] = 'Assente';
|
||||
$labels['cutypeindividual'] = 'Individual';
|
||||
$labels['cutypegroup'] = 'Gruppo';
|
||||
$labels['cutyperesource'] = 'Risorsa';
|
||||
$labels['cutyperoom'] = 'Stanza';
|
||||
$labels['availfree'] = 'Libero';
|
||||
$labels['availbusy'] = 'Occupato';
|
||||
$labels['availunknown'] = 'Sconosciuto';
|
||||
$labels['availtentative'] = 'Provvisorio';
|
||||
$labels['availoutofoffice'] = 'Fuori sede';
|
||||
$labels['delegatedto'] = 'Delegato a:';
|
||||
$labels['delegatedfrom'] = 'Delegato da:';
|
||||
$labels['scheduletime'] = 'Trova disponibilità';
|
||||
$labels['sendinvitations'] = 'Manda inviti';
|
||||
$labels['sendnotifications'] = 'Notifica le modifiche ai partecipanti';
|
||||
$labels['sendcancellation'] = 'Notifica ai partecipanti la cancellazione dell\'evento';
|
||||
$labels['onlyworkinghours'] = 'Trova disponibilità durante le ore lavorative';
|
||||
$labels['reqallattendees'] = 'Necessario/tutti i partecipanti';
|
||||
$labels['prevslot'] = 'Spazio precedente';
|
||||
$labels['nextslot'] = 'Spazio successivo';
|
||||
$labels['suggestedslot'] = 'Spazio suggerito';
|
||||
$labels['noslotfound'] = 'Impossibile trovare uno spazio di tempo libero';
|
||||
$labels['invitationsubject'] = 'Sei stato invitato a "$title"';
|
||||
$labels['invitationmailbody'] = "*\$title*\n\nQuando: \$date\n\nInvitati: \$attendees\n\nIn allegato un file iCalendar con tutti i dettagli dell'evento, che puoi importare nella tua applicazione calendario.";
|
||||
$labels['invitationattendlinks'] = "Se il tuo client di posta elettronica non supporta le richieste iTip, puoi seguire il seguente collegamento per accettare o rifiutare l'invito:\n\$url";
|
||||
$labels['eventupdatesubject'] = '"$title" è stato aggiornato';
|
||||
$labels['eventupdatesubjectempty'] = 'Un evento che ti riguarda è stato aggiornato';
|
||||
$labels['eventupdatemailbody'] = "*\$title*\n\nQuando: \$date\n\nInvitati: \$attendees\n\nIn allegato un file iCalendar con i dettagli aggiornati dell'evento che puoi importare nella tua applicazione calendario.";
|
||||
$labels['eventcancelsubject'] = '"$title" è stato annullato';
|
||||
$labels['eventcancelmailbody'] = "*\$title*\n\nQuando: \$date\n\nInvitati: \$attendees\n\nL'evento è stato cancellato da \$organizer.\n\nIn allegato un file iCalendar con i dettagli aggiornati dell'evento .";
|
||||
$labels['itipobjectnotfound'] = 'L\'evento al quale questo messaggio fa riferimento non è stato trovato nel tuo calendario.';
|
||||
$labels['itipmailbodyaccepted'] = "\$sender ha accettato l'invito al seguente evento:\n\n*\$title*\n\nQuando: \$date\n\nInvitati: \$attendees";
|
||||
$labels['itipmailbodytentative'] = "\$sender ha accettato con riserva l'invito al seguente evento:\n\n*\$title*\n\nQuando: \$date\n\nInvitati: \$attendees";
|
||||
$labels['itipmailbodydeclined'] = "\$sender ha rifiutato l'invito al seguente evento:\n\n*\$title*\n\nQuando: \$date\n\nInvitati: \$attendees";
|
||||
$labels['itipmailbodycancel'] = "\$Il mittente ha rifiutato la tua partecipazione nel seguente evento:\n\n*\$title*\n\nQuando: \$date";
|
||||
$labels['itipmailbodydelegated'] = "\$Il mittente ha delegato la partecipazione nel seguente evento:\n\n*\$title*\n\nQuando: \$date";
|
||||
$labels['itipmailbodydelegatedto'] = "\$Il mittente ha delegato a te la partecipazione nel seguente evento:\n\n*\$title*\n\nQuando:\$date";
|
||||
$labels['itipdeclineevent'] = 'Vuoi rifiutare l\'invito a questo evento?';
|
||||
$labels['declinedeleteconfirm'] = 'Vuoi anche cancellare dal calendario l\'evento rifiutato?';
|
||||
$labels['itipcomment'] = 'Commento all\'invito/notifica';
|
||||
$labels['itipcommenttitle'] = 'Questo commento verrà allegato al messaggio di invito/notifica spedito ai partecipanti';
|
||||
$labels['notanattendee'] = 'Non sei elencato tra i partecipanti a questo evento';
|
||||
$labels['eventcancelled'] = 'L\'evento è stato annullato';
|
||||
$labels['saveincalendar'] = 'salva in';
|
||||
$labels['updatemycopy'] = 'Aggiorna nel mio calendario';
|
||||
$labels['savetocalendar'] = 'Salva sul calendario';
|
||||
$labels['openpreview'] = 'Controlla calendario';
|
||||
$labels['noearlierevents'] = 'Non ci sono eventi precedenti';
|
||||
$labels['nolaterevents'] = 'Non ci sono eventi successivi';
|
||||
$labels['resource'] = 'Risorsa';
|
||||
$labels['addresource'] = 'Prenota risorsa';
|
||||
$labels['findresources'] = 'Trova risorse';
|
||||
$labels['resourcedetails'] = 'Dettagli';
|
||||
$labels['resourceavailability'] = 'Disponibilità';
|
||||
$labels['resourceowner'] = 'Proprietario';
|
||||
$labels['resourceadded'] = 'La risorsa è stata aggiunta al tuo evento';
|
||||
$labels['tabsummary'] = 'Riepilogo';
|
||||
$labels['tabrecurrence'] = 'Ricorrenza';
|
||||
$labels['tabattendees'] = 'Partecipanti';
|
||||
$labels['tabresources'] = 'Risorse';
|
||||
$labels['tabattachments'] = 'Allegati';
|
||||
$labels['tabsharing'] = 'Condivisione';
|
||||
$labels['deleteobjectconfirm'] = 'Cancellare davvero questo evento?';
|
||||
$labels['deleteventconfirm'] = 'Cancellare davvero questo evento?';
|
||||
$labels['deletecalendarconfirm'] = 'Cancellare davvero questo calendario con tutti i suoi eventi?';
|
||||
$labels['deletecalendarconfirmrecursive'] = 'Vuoi veramente eliminare questo calendario con tutti i suoi eventi e i suoi sotto-calendari?';
|
||||
$labels['savingdata'] = 'Salvataggio dati...';
|
||||
$labels['errorsaving'] = 'Impossibile salvare le modifiche.';
|
||||
$labels['operationfailed'] = 'L\'operazione richiesta è fallita.';
|
||||
$labels['invalideventdates'] = 'Le date inserite non sono valide. Controllare l\'inserimento.';
|
||||
$labels['invalidcalendarproperties'] = 'Proprietà del calendario non valide. Impostare un nome valido.';
|
||||
$labels['searchnoresults'] = 'Nessun evento trovato nel calendario selezionato.';
|
||||
$labels['successremoval'] = 'L\'evento è stato cancellato correttamente.';
|
||||
$labels['successrestore'] = 'L\'evento è stato ripristinato correttamente.';
|
||||
$labels['errornotifying'] = 'Spedizione delle notifiche ai partecipanti dell\'evento fallita';
|
||||
$labels['errorimportingevent'] = 'Importazione evento fallita';
|
||||
$labels['importwarningexists'] = 'Una copia di questo evento esiste già nel tuo calendario';
|
||||
$labels['newerversionexists'] = 'Esiste già una versione più recente di questo evento. Abortito.';
|
||||
$labels['nowritecalendarfound'] = 'Non c\'è nessun calendario dove salvare l\'evento';
|
||||
$labels['importedsuccessfully'] = 'Evento aggiunto correttamente a \'$calendar\'';
|
||||
$labels['updatedsuccessfully'] = 'L\'evento è stato aggiornato con successo su \'$calendar\'';
|
||||
$labels['attendeupdateesuccess'] = 'Stato dei partecipanti aggiornato correttamente';
|
||||
$labels['itipsendsuccess'] = 'Invito spedito ai partecipanti.';
|
||||
$labels['itipresponseerror'] = 'Spedizione della risposta all\'invito fallita';
|
||||
$labels['itipinvalidrequest'] = 'Questo invito non è più valido';
|
||||
$labels['sentresponseto'] = 'Risposta all\'invito inviata correttamente a $mailto';
|
||||
$labels['localchangeswarning'] = 'Stai per fare dei cambiamenti che compariranno solo nel tuo calendario e non saranno spediti all\'organizzatore dell\'evento.';
|
||||
$labels['importsuccess'] = '$nr eventi importati correttamente';
|
||||
$labels['importnone'] = 'Nessun evento trovato da importare';
|
||||
$labels['importerror'] = 'Si è verificato un errore durante l\'importazione';
|
||||
$labels['aclnorights'] = 'Non hai i diritti di amministratore per questo calendario.';
|
||||
$labels['changeeventconfirm'] = 'Cambia evento';
|
||||
$labels['removeeventconfirm'] = 'Cancella evento';
|
||||
$labels['changerecurringeventwarning'] = 'This is a recurring event. Would you like to edit the current event only, this and all future occurences, all occurences or save it as a new event?';
|
||||
$labels['removerecurringeventwarning'] = 'Questo è un evento ricorrente. Vuoi cancellare solamente l\'evento corrente, quest\'ultimo e tutte le future ricorrenze oppure tutte le ricorrenze di questo evento?';
|
||||
$labels['currentevent'] = 'Current';
|
||||
$labels['futurevents'] = 'Futuro';
|
||||
$labels['allevents'] = 'Tutto';
|
||||
$labels['saveasnew'] = 'Salva come nuovo';
|
||||
$labels['birthdays'] = 'Compleanni';
|
||||
$labels['birthdayscalendar'] = 'Calendario compleanni';
|
||||
$labels['displaybirthdayscalendar'] = 'Mostra il calendario compleanni';
|
||||
$labels['birthdayscalendarsources'] = 'Da queste rubriche';
|
||||
$labels['birthdayeventtitle'] = 'Compleanno di $name';
|
||||
$labels['birthdayage'] = 'Età: $age anni';
|
||||
$labels['eventchangelog'] = 'Storico modifiche';
|
||||
$labels['eventdiff'] = 'Cambiamenti dalle revisioni $rev';
|
||||
$labels['revision'] = 'Revisione';
|
||||
$labels['user'] = 'Utente';
|
||||
$labels['operation'] = 'Azione';
|
||||
$labels['actionappend'] = 'Salvato';
|
||||
$labels['actionmove'] = 'Spostato';
|
||||
$labels['actiondelete'] = 'Cancellato';
|
||||
$labels['compare'] = 'Confronta';
|
||||
$labels['showrevision'] = 'Mostra questa versione';
|
||||
$labels['restore'] = 'Rirpistina questa versione';
|
||||
$labels['eventnotfound'] = 'Caricamento dati dell\'evento fallito';
|
||||
$labels['eventchangelognotavailable'] = 'Lo storico modifiche non è disponibile per questo evento';
|
||||
$labels['eventdiffnotavailable'] = 'Nessun confronto possibile tra le revisioni selezionate';
|
||||
$labels['eventrestoreconfirm'] = 'Vuoi veramente ripristinare la revisione $rev di questo evento? L\'evento corrente verrà sostituito dalla vecchia versione.';
|
||||
$labels['arialabelminical'] = 'Selezione della data del calendario';
|
||||
$labels['arialabelcalendarview'] = 'Vista calendario';
|
||||
$labels['arialabelsearchform'] = 'Modulo ricerca evento';
|
||||
$labels['arialabelquicksearchbox'] = 'Inserimento ricerca evento';
|
||||
$labels['arialabelcalsearchform'] = 'Modulo ricerca calendari';
|
||||
$labels['calendaractions'] = 'Azione calendari';
|
||||
$labels['arialabeleventattendees'] = 'Lista partecipanti all\'evento';
|
||||
$labels['arialabeleventresources'] = 'Lista risorse dell\'evento';
|
||||
$labels['arialabelresourcesearchform'] = 'Modulo ricerca risorse';
|
||||
$labels['arialabelresourceselection'] = 'Risorse disponibili';
|
||||
?>
|
||||
|
|
|
@ -1,230 +1,209 @@
|
|||
<?php
|
||||
|
||||
$labels = array();
|
||||
|
||||
// preferences
|
||||
$labels['default_view'] = 'Default view';
|
||||
$labels['time_format'] = 'Time format';
|
||||
$labels['timeslots'] = 'Timeslots per hour';
|
||||
$labels['first_day'] = 'First weekday';
|
||||
$labels['first_hour'] = 'First hour to show';
|
||||
$labels['workinghours'] = 'Working hours';
|
||||
$labels['add_category'] = 'Add category';
|
||||
$labels['remove_category'] = 'Remove category';
|
||||
$labels['defaultcalendar'] = 'Create new events in';
|
||||
$labels['eventcoloring'] = 'Event coloring';
|
||||
$labels['coloringmode0'] = 'According to calendar';
|
||||
$labels['coloringmode1'] = 'According to category';
|
||||
$labels['coloringmode2'] = 'Calendar for outline, category for content';
|
||||
$labels['coloringmode3'] = 'Category for outline, calendar for content';
|
||||
|
||||
// calendar
|
||||
$labels['calendar'] = 'Calendar';
|
||||
$labels['calendars'] = 'Calendars';
|
||||
$labels['category'] = 'Category';
|
||||
$labels['categories'] = 'Categories';
|
||||
$labels['createcalendar'] = 'Create new calendar';
|
||||
$labels['editcalendar'] = 'Edit calendar properties';
|
||||
$labels['name'] = 'Name';
|
||||
$labels['color'] = 'Color';
|
||||
$labels['day'] = 'Day';
|
||||
$labels['week'] = 'Week';
|
||||
$labels['month'] = 'Month';
|
||||
$labels['agenda'] = 'Agenda';
|
||||
$labels['new'] = 'New';
|
||||
$labels['new_event'] = 'New event';
|
||||
$labels['edit_event'] = 'Edit event';
|
||||
$labels['edit'] = 'Edit';
|
||||
$labels['save'] = 'Save';
|
||||
$labels['remove'] = 'Remove';
|
||||
$labels['cancel'] = 'Cancel';
|
||||
$labels['select'] = 'Select';
|
||||
$labels['print'] = 'Print';
|
||||
$labels['printtitle'] = 'Print calendars';
|
||||
$labels['title'] = 'Summary';
|
||||
$labels['description'] = 'Description';
|
||||
$labels['all-day'] = 'all-day';
|
||||
$labels['export'] = 'Export';
|
||||
$labels['exporttitle'] = 'Export to iCalendar';
|
||||
$labels['location'] = 'Location';
|
||||
$labels['date'] = 'Date';
|
||||
$labels['start'] = 'Start';
|
||||
$labels['end'] = 'End';
|
||||
$labels['selectdate'] = 'Choose date';
|
||||
$labels['freebusy'] = 'Show me as';
|
||||
$labels['free'] = 'Free';
|
||||
$labels['busy'] = 'Busy';
|
||||
$labels['outofoffice'] = 'Out of Office';
|
||||
$labels['tentative'] = 'Tentative';
|
||||
$labels['priority'] = 'Priority';
|
||||
$labels['sensitivity'] = 'Privacy';
|
||||
$labels['public'] = 'public';
|
||||
$labels['private'] = 'private';
|
||||
$labels['confidential'] = 'confidential';
|
||||
$labels['alarms'] = 'Reminder';
|
||||
$labels['generated'] = 'generated at';
|
||||
$labels['printdescriptions'] = 'Print descriptions';
|
||||
$labels['parentcalendar'] = 'Insert inside';
|
||||
$labels['searchearlierdates'] = '« Search for earlier events';
|
||||
$labels['searchlaterdates'] = 'Search for later events »';
|
||||
$labels['andnmore'] = '$nr more...';
|
||||
$labels['togglerole'] = 'Click to toggle role';
|
||||
$labels['createfrommail'] = 'Save as event';
|
||||
$labels['importevents'] = 'Import events';
|
||||
$labels['importrange'] = 'Events from';
|
||||
$labels['onemonthback'] = '1 month back';
|
||||
$labels['nmonthsback'] = '$nr months back';
|
||||
$labels['showurl'] = 'Show calendar URL';
|
||||
$labels['showurldescription'] = 'Use the following address to access (read only) your calendar from other applications. You can copy and paste this into any calendar software that supports the iCal format.';
|
||||
|
||||
// agenda view
|
||||
$labels['listrange'] = 'Range to display:';
|
||||
$labels['listsections'] = 'Divide into:';
|
||||
$labels['smartsections'] = 'Smart sections';
|
||||
$labels['until'] = 'until';
|
||||
$labels['today'] = 'Today';
|
||||
$labels['tomorrow'] = 'Tomorrow';
|
||||
$labels['thisweek'] = 'This week';
|
||||
$labels['nextweek'] = 'Next week';
|
||||
$labels['thismonth'] = 'This month';
|
||||
$labels['nextmonth'] = 'Next month';
|
||||
$labels['weekofyear'] = 'Week';
|
||||
$labels['pastevents'] = 'Past';
|
||||
$labels['futureevents'] = 'Future';
|
||||
|
||||
// alarm/reminder settings
|
||||
$labels['showalarms'] = 'Show alarms';
|
||||
$labels['defaultalarmtype'] = 'Default reminder setting';
|
||||
$labels['defaultalarmoffset'] = 'Default reminder time';
|
||||
|
||||
// attendees
|
||||
$labels['attendee'] = 'Participant';
|
||||
$labels['role'] = 'Role';
|
||||
$labels['availability'] = 'Avail.';
|
||||
$labels['confirmstate'] = 'Status';
|
||||
$labels['addattendee'] = 'Add participant';
|
||||
$labels['roleorganizer'] = 'Organizer';
|
||||
$labels['rolerequired'] = 'Required';
|
||||
$labels['roleoptional'] = 'Optional';
|
||||
$labels['roleresource'] = 'Resource';
|
||||
$labels['availfree'] = 'Free';
|
||||
$labels['availbusy'] = 'Busy';
|
||||
$labels['availunknown'] = 'Unknown';
|
||||
$labels['availtentative'] = 'Tentative';
|
||||
$labels['availoutofoffice'] = 'Out of Office';
|
||||
$labels['scheduletime'] = 'Find availability';
|
||||
$labels['sendinvitations'] = 'Send invitations';
|
||||
$labels['sendnotifications'] = 'Notify participants about modifications';
|
||||
$labels['sendcancellation'] = 'Notify participants about event cancellation';
|
||||
$labels['onlyworkinghours'] = 'Find availability within my working hours';
|
||||
$labels['reqallattendees'] = 'Required/all participants';
|
||||
$labels['prevslot'] = 'Previous Slot';
|
||||
$labels['nextslot'] = 'Next Slot';
|
||||
$labels['noslotfound'] = 'Unable to find a free time slot';
|
||||
$labels['invitationsubject'] = 'You\'ve been invited to "$title"';
|
||||
$labels['invitationmailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nPlease find attached an iCalendar file with all the event details which you can import to your calendar application.";
|
||||
$labels['invitationattendlinks'] = "In case your email client doesn't support iTip requests you can use the following link to either accept or decline this invitation:\n\$url";
|
||||
$labels['eventupdatesubject'] = '"$title" has been updated';
|
||||
$labels['eventupdatesubjectempty'] = 'An event that concerns you has been updated';
|
||||
$labels['eventupdatemailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nPlease find attached an iCalendar file with the updated event details which you can import to your calendar application.";
|
||||
$labels['eventcancelsubject'] = '"$title" has been canceled';
|
||||
$labels['eventcancelmailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nThe event has been cancelled by \$organizer.\n\nPlease find attached an iCalendar file with the updated event details.";
|
||||
|
||||
// invitation handling
|
||||
$labels['itipinvitation'] = 'Invitation to';
|
||||
$labels['itipupdate'] = 'Update of';
|
||||
$labels['itipcancellation'] = 'Cancelled:';
|
||||
$labels['itipreply'] = 'Reply to';
|
||||
$labels['itipaccepted'] = 'Accept';
|
||||
$labels['itiptentative'] = 'Maybe';
|
||||
$labels['itipdeclined'] = 'Decline';
|
||||
$labels['itipsubjectaccepted'] = '"$title" has been accepted by $name';
|
||||
$labels['itipsubjecttentative'] = '"$title" has been tentatively accepted by $name';
|
||||
$labels['itipsubjectdeclined'] = '"$title" has been declined by $name';
|
||||
$labels['itipmailbodyaccepted'] = "\$sender has accepted the invitation to the following event:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
|
||||
$labels['itipmailbodytentative'] = "\$sender has tentatively accepted the invitation to the following event:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
|
||||
$labels['itipmailbodydeclined'] = "\$sender has declined the invitation to the following event:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
|
||||
$labels['itipdeclineevent'] = 'Do you want to decline your invitation to this event?';
|
||||
$labels['importtocalendar'] = 'Save to my calendar';
|
||||
$labels['removefromcalendar'] = 'Remove from my calendar';
|
||||
$labels['updateattendeestatus'] = 'Update the participant\'s status';
|
||||
$labels['acceptinvitation'] = 'Do you accept this invitation?';
|
||||
$labels['youhaveaccepted'] = 'You have accepted this invitation';
|
||||
$labels['youhavetentative'] = 'You have tentatively accepted this invitation';
|
||||
$labels['youhavedeclined'] = 'You have declined this invitation';
|
||||
$labels['notanattendee'] = 'You\'re not listed as an attendee of this event';
|
||||
$labels['eventcancelled'] = 'The event has been cancelled';
|
||||
$labels['saveincalendar'] = 'save in';
|
||||
|
||||
// event dialog tabs
|
||||
$labels['tabsummary'] = 'Summary';
|
||||
$labels['tabrecurrence'] = 'Recurrence';
|
||||
$labels['tabattendees'] = 'Participants';
|
||||
$labels['tabattachments'] = 'Attachments';
|
||||
$labels['tabsharing'] = 'Sharing';
|
||||
|
||||
// messages
|
||||
$labels['deleteventconfirm'] = 'Do you really want to delete this event?';
|
||||
$labels['deletecalendarconfirm'] = 'Do you really want to delete this calendar with all its events?';
|
||||
$labels['savingdata'] = 'Saving data...';
|
||||
$labels['errorsaving'] = 'Failed to save changes.';
|
||||
$labels['operationfailed'] = 'The requested operation failed.';
|
||||
$labels['invalideventdates'] = 'Invalid dates entered! Please check your input.';
|
||||
$labels['invalidcalendarproperties'] = 'Invalid calendar properties! Please set a valid name.';
|
||||
$labels['searchnoresults'] = 'No events found in the selected calendars.';
|
||||
$labels['successremoval'] = 'The event has been deleted successfully.';
|
||||
$labels['successrestore'] = 'The event has been restored successfully.';
|
||||
$labels['errornotifying'] = 'Failed to send notifications to event participants';
|
||||
$labels['errorimportingevent'] = 'Failed to import the event';
|
||||
$labels['newerversionexists'] = 'A newer version of this event already exists! Aborted.';
|
||||
$labels['nowritecalendarfound'] = 'No calendar found to save the event';
|
||||
$labels['importedsuccessfully'] = 'The event was successfully added to \'$calendar\'';
|
||||
$labels['attendeupdateesuccess'] = 'Successfully updated the participant\'s status';
|
||||
$labels['itipsendsuccess'] = 'Invitation sent to participants.';
|
||||
$labels['itipresponseerror'] = 'Failed to send the response to this event invitation';
|
||||
$labels['itipinvalidrequest'] = 'This invitation is no longer valid';
|
||||
$labels['sentresponseto'] = 'Successfully sent invitation response to $mailto';
|
||||
$labels['localchangeswarning'] = 'You are about to make changes that will only be reflected on your personal calendar';
|
||||
$labels['importsuccess'] = 'Successfully imported $nr events';
|
||||
$labels['importnone'] = 'No events found to be imported';
|
||||
$labels['importerror'] = 'An error occured while importing';
|
||||
$labels['aclnorights'] = 'You do not have administrator rights on this calendar.';
|
||||
|
||||
// recurrence form
|
||||
$labels['repeat'] = 'Repeat';
|
||||
$labels['frequency'] = 'Repeat';
|
||||
$labels['never'] = 'never';
|
||||
$labels['daily'] = 'daily';
|
||||
$labels['weekly'] = 'weekly';
|
||||
$labels['monthly'] = 'monthly';
|
||||
$labels['yearly'] = 'annually';
|
||||
$labels['every'] = 'Every';
|
||||
$labels['days'] = 'day(s)';
|
||||
$labels['weeks'] = 'week(s)';
|
||||
$labels['months'] = 'month(s)';
|
||||
$labels['years'] = 'year(s) in:';
|
||||
$labels['bydays'] = 'On';
|
||||
$labels['untildate'] = 'the';
|
||||
$labels['each'] = 'Each';
|
||||
$labels['onevery'] = 'On every';
|
||||
$labels['onsamedate'] = 'On the same date';
|
||||
$labels['forever'] = 'forever';
|
||||
$labels['recurrencend'] = 'until';
|
||||
$labels['forntimes'] = 'for $nr time(s)';
|
||||
$labels['first'] = 'first';
|
||||
$labels['second'] = 'second';
|
||||
$labels['third'] = 'third';
|
||||
$labels['fourth'] = 'fourth';
|
||||
$labels['last'] = 'last';
|
||||
$labels['dayofmonth'] = 'Day of month';
|
||||
|
||||
$labels['changeeventconfirm'] = 'Change event';
|
||||
$labels['removeeventconfirm'] = 'Remove event';
|
||||
$labels['changerecurringeventwarning'] = 'This is a recurring event. Would you like to edit the current event only, this and all future occurences, all occurences or save it as a new event?';
|
||||
$labels['removerecurringeventwarning'] = 'This is a recurring event. Would you like to remove the current event only, this and all future occurences or all occurences of this event?';
|
||||
$labels['currentevent'] = 'Current';
|
||||
$labels['futurevents'] = 'Future';
|
||||
$labels['allevents'] = 'All';
|
||||
$labels['saveasnew'] = 'Save as new';
|
||||
|
||||
/**
|
||||
* Localizations for Kolab Calendar plugin
|
||||
*
|
||||
* Copyright (C) 2014, Kolab Systems AG
|
||||
*
|
||||
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
|
||||
*/
|
||||
$labels['default_view'] = 'デフォルトビュー';
|
||||
$labels['time_format'] = '時刻表示形式';
|
||||
$labels['timeslots'] = 'Time slots per hour';
|
||||
$labels['first_day'] = '最初の平日';
|
||||
$labels['first_hour'] = '最初の時間を表示';
|
||||
$labels['workinghours'] = '労働時間';
|
||||
$labels['add_category'] = 'カテゴリ追加';
|
||||
$labels['remove_category'] = 'カテゴリ削除';
|
||||
$labels['defaultcalendar'] = '新しいイベントの作成';
|
||||
$labels['eventcoloring'] = 'イベントカラー';
|
||||
$labels['coloringmode0'] = 'カレンダーの説明';
|
||||
$labels['coloringmode1'] = 'カテゴリの説明';
|
||||
$labels['coloringmode2'] = 'アウトライン用カレンダー、コンテンツ用カテゴリ';
|
||||
$labels['coloringmode3'] = 'アウトライン用カレンダー、コンテンツ用カテゴリ';
|
||||
$labels['calendar'] = 'カレンダー';
|
||||
$labels['calendars'] = 'カレンダー';
|
||||
$labels['category'] = 'カテゴリ';
|
||||
$labels['categories'] = 'カテゴリ';
|
||||
$labels['createcalendar'] = '新しいカレンダーの作成';
|
||||
$labels['editcalendar'] = 'カレンダーのプロパティ編集';
|
||||
$labels['name'] = '名前';
|
||||
$labels['color'] = '色';
|
||||
$labels['day'] = '日';
|
||||
$labels['week'] = '週';
|
||||
$labels['month'] = '月';
|
||||
$labels['agenda'] = '予定表';
|
||||
$labels['new'] = '新規';
|
||||
$labels['new_event'] = '新規イベント';
|
||||
$labels['edit_event'] = 'イベント編集';
|
||||
$labels['edit'] = '編集';
|
||||
$labels['save'] = '保存';
|
||||
$labels['removelist'] = 'Remove from list';
|
||||
$labels['cancel'] = 'キャンセル';
|
||||
$labels['select'] = '選択';
|
||||
$labels['print'] = '印刷';
|
||||
$labels['printtitle'] = 'カレンダー印刷';
|
||||
$labels['title'] = '要約';
|
||||
$labels['description'] = '説明';
|
||||
$labels['all-day'] = '全日';
|
||||
$labels['export'] = 'エクスポート';
|
||||
$labels['exporttitle'] = 'iカレンダーへエクスポート';
|
||||
$labels['exportrange'] = 'イベント元';
|
||||
$labels['exportattachments'] = 'With attachments';
|
||||
$labels['customdate'] = 'Custom date';
|
||||
$labels['location'] = '場所';
|
||||
$labels['url'] = 'URL';
|
||||
$labels['date'] = '期日';
|
||||
$labels['start'] = '開始';
|
||||
$labels['starttime'] = 'Start time';
|
||||
$labels['end'] = '終了';
|
||||
$labels['repeat'] = '繰返し';
|
||||
$labels['selectdate'] = '日付選択';
|
||||
$labels['freebusy'] = '表示する';
|
||||
$labels['free'] = '空';
|
||||
$labels['busy'] = 'ビジー';
|
||||
$labels['outofoffice'] = '外出';
|
||||
$labels['tentative'] = '仮';
|
||||
$labels['status'] = '状態';
|
||||
$labels['status-cancelled'] = 'Cancelled';
|
||||
$labels['priority'] = '優先度';
|
||||
$labels['sensitivity'] = 'プライバシー';
|
||||
$labels['public'] = 'パブリック';
|
||||
$labels['private'] = 'プライベート';
|
||||
$labels['confidential'] = '親展';
|
||||
$labels['links'] = 'Reference';
|
||||
$labels['alarms'] = '通知';
|
||||
$labels['comment'] = 'Comment';
|
||||
$labels['created'] = 'Created';
|
||||
$labels['changed'] = 'Last Modified';
|
||||
$labels['unknown'] = '不明';
|
||||
$labels['eventoptions'] = 'オプション';
|
||||
$labels['generated'] = '生成';
|
||||
$labels['removelink'] = 'Remove email reference';
|
||||
$labels['printdescriptions'] = '説明印刷';
|
||||
$labels['parentcalendar'] = '内に挿入';
|
||||
$labels['searchearlierdates'] = '<< 以前のイベントを検索';
|
||||
$labels['searchlaterdates'] = '今後のイベントの検索 >>';
|
||||
$labels['andnmore'] = '$nr さらに…';
|
||||
$labels['togglerole'] = 'クリックでロールをトグル';
|
||||
$labels['createfrommail'] = 'イベントとして保存';
|
||||
$labels['importevents'] = 'イベントのインポート';
|
||||
$labels['importrange'] = 'イベント元';
|
||||
$labels['onemonthback'] = '1 ヶ月戻る';
|
||||
$labels['nmonthsback'] = '$nr ヶ月戻る';
|
||||
$labels['showurl'] = 'カレンダーURL表示';
|
||||
$labels['showurldescription'] = '以下のアドレスを使用して他のアプリケーションからカレンダーにアクセス(読込のみ)できます。iCal形式をサポートしたカレンダーソフトウェアへコピーアンドペーストができます。';
|
||||
$labels['caldavurldescription'] = 'Copy this address to a <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a> client application (e.g. Evolution or Mozilla Thunderbird) to fully synchronize this specific calendar with your computer or mobile device.';
|
||||
$labels['searchterms'] = 'Search terms';
|
||||
$labels['calendarsubscribe'] = 'List permanently';
|
||||
$labels['listrange'] = '表示範囲:';
|
||||
$labels['listsections'] = '分割:';
|
||||
$labels['smartsections'] = 'スマートセクション';
|
||||
$labels['until'] = 'いつまでに';
|
||||
$labels['today'] = '今日';
|
||||
$labels['tomorrow'] = '明日';
|
||||
$labels['thisweek'] = '今週';
|
||||
$labels['nextweek'] = '来週';
|
||||
$labels['thismonth'] = '今月';
|
||||
$labels['nextmonth'] = '来月';
|
||||
$labels['weekofyear'] = '週';
|
||||
$labels['pastevents'] = '以前';
|
||||
$labels['futureevents'] = '以降';
|
||||
$labels['showalarms'] = 'Show reminders';
|
||||
$labels['defaultalarmtype'] = 'デフォルト通知設定';
|
||||
$labels['defaultalarmoffset'] = 'デフォルト通知時間';
|
||||
$labels['attendee'] = '参加者';
|
||||
$labels['role'] = 'ロール';
|
||||
$labels['availability'] = '利用可';
|
||||
$labels['confirmstate'] = '状態';
|
||||
$labels['addattendee'] = '参加者追加';
|
||||
$labels['roleorganizer'] = '編成者';
|
||||
$labels['rolerequired'] = '要件';
|
||||
$labels['roleoptional'] = 'オプション';
|
||||
$labels['rolechair'] = 'Chair';
|
||||
$labels['rolenonparticipant'] = 'Absent';
|
||||
$labels['cutypeindividual'] = 'Individual';
|
||||
$labels['cutypegroup'] = 'グループ';
|
||||
$labels['cutyperesource'] = 'リソース';
|
||||
$labels['cutyperoom'] = 'Room';
|
||||
$labels['availfree'] = '空';
|
||||
$labels['availbusy'] = 'ビジー';
|
||||
$labels['availunknown'] = '不明';
|
||||
$labels['availtentative'] = '仮';
|
||||
$labels['availoutofoffice'] = '外出';
|
||||
$labels['delegatedto'] = 'Delegated to: ';
|
||||
$labels['delegatedfrom'] = 'Delegated from: ';
|
||||
$labels['scheduletime'] = '利用可検索';
|
||||
$labels['sendinvitations'] = '招待を送る';
|
||||
$labels['sendnotifications'] = '変更を参加者へ通知する';
|
||||
$labels['sendcancellation'] = '中止を参加者へ通知する';
|
||||
$labels['onlyworkinghours'] = '労働時間内の利用可検索';
|
||||
$labels['reqallattendees'] = '要件/全参加者';
|
||||
$labels['prevslot'] = '前のスロット';
|
||||
$labels['nextslot'] = '次のスロット';
|
||||
$labels['noslotfound'] = '空スロットを見つけられません';
|
||||
$labels['invitationsubject'] = '"$title" に招待されました';
|
||||
$labels['invitationmailbody'] = "*\$title*\n\nいつ: \$date\n\n招待者: \$attendees\n\nあなたのカレンダーアプリケーションにインポートできる全イベントの詳細がインポートできる添付されたiカレンダーファイルを見つけてください。";
|
||||
$labels['invitationattendlinks'] = "この場合あなたのメールクライアントはiTip リクエストをサポートしてません、以下のリンクからこの招待を承諾もしくは辞退してください:\n\$url";
|
||||
$labels['eventupdatesubject'] = '"$title" はアップデートされました';
|
||||
$labels['eventupdatesubjectempty'] = 'あなたに関連するイベントが更新されました';
|
||||
$labels['eventupdatemailbody'] = "*\$title*\n\nいつ: \$date\n\n招待者: \$attendees\n\nあなたのカレンダーアプリケーションにインポートできるアップデートされた全イベントの詳細が添付されたiカレンダーファイルを見つけてください。";
|
||||
$labels['eventcancelsubject'] = '"$title" は変更されました';
|
||||
$labels['eventcancelmailbody'] = "*\$title*\n\nいつ: \$date\n\n招待者: \$attendees\n\nイベントが \$organizer によってキャンセルされました。\n\n更新されたイベントの詳細とともに添付されたiカレンダーファイルを見つけてください。";
|
||||
$labels['itipmailbodyaccepted'] = "\$sender は以下のイベントへの招待を承諾しました:\n\n*\$title*\n\nいつ: \$date\n\n招待者: \$attendees";
|
||||
$labels['itipmailbodytentative'] = "\$sender は以下のイベントへの招待を仮承諾しました:\n\n*\$title*\n\nいつ: \$date\n\n招待者: \$attendees";
|
||||
$labels['itipmailbodydeclined'] = "\$sender は以下のイベントへの招待を辞退しました:\n\n*\$title*\n\nいつ: \$date\n\n招待者: \$attendees";
|
||||
$labels['itipdeclineevent'] = 'このイベントへの招待を辞退しますか?';
|
||||
$labels['declinedeleteconfirm'] = 'Do you also want to delete this declined event from your calendar?';
|
||||
$labels['itipcomment'] = 'Invitation/notification comment';
|
||||
$labels['notanattendee'] = 'このイベントの出席者として一覧にありません';
|
||||
$labels['eventcancelled'] = 'このイベントはキャンセルされました';
|
||||
$labels['saveincalendar'] = '保存';
|
||||
$labels['resource'] = 'リソース';
|
||||
$labels['resourcedetails'] = '詳細';
|
||||
$labels['tabsummary'] = '要約';
|
||||
$labels['tabrecurrence'] = '繰返し';
|
||||
$labels['tabattendees'] = '参加者';
|
||||
$labels['tabresources'] = 'リソース';
|
||||
$labels['tabattachments'] = '添付';
|
||||
$labels['tabsharing'] = '共有';
|
||||
$labels['deleteobjectconfirm'] = '本当にこのイベントを削除しますか?';
|
||||
$labels['deleteventconfirm'] = '本当にこのイベントを削除しますか?';
|
||||
$labels['deletecalendarconfirm'] = '本当にこのカレンダーを全イベントとともに削除しますか?';
|
||||
$labels['deletecalendarconfirmrecursive'] = 'Do you really want to delete this calendar with all its events and sub-calendars?';
|
||||
$labels['savingdata'] = 'データを保存中…';
|
||||
$labels['errorsaving'] = '変更が保存できませんでした。';
|
||||
$labels['operationfailed'] = '要求された操作ができませんでした。';
|
||||
$labels['invalideventdates'] = '無効な日付が入力されました! 入力を確認してください。';
|
||||
$labels['invalidcalendarproperties'] = '無効なカレンダーのプロパティです! 有効な名前を設定してください。';
|
||||
$labels['searchnoresults'] = '選択されたカレンダーにイベントは見つかりません。';
|
||||
$labels['successremoval'] = 'イベントを削除しました';
|
||||
$labels['successrestore'] = 'イベントを復旧しました';
|
||||
$labels['errornotifying'] = 'イベント参加者への通知が送信できませんでした';
|
||||
$labels['errorimportingevent'] = 'イベントのインポートができませんでした';
|
||||
$labels['newerversionexists'] = 'このイベントのより新しいヴァージョンがすでにあります。中断されました。';
|
||||
$labels['nowritecalendarfound'] = 'イベントを保存するカレンダーが見つかりません';
|
||||
$labels['importedsuccessfully'] = '\'$calendar\' へイベントを追加しました';
|
||||
$labels['attendeupdateesuccess'] = '出席者状況を更新しました';
|
||||
$labels['itipsendsuccess'] = '出席者へ招待を送信しました。';
|
||||
$labels['itipresponseerror'] = 'この招待の返信できませんでした';
|
||||
$labels['itipinvalidrequest'] = 'この招待は間もなく無効になります';
|
||||
$labels['sentresponseto'] = '$mailto への招待の返信しました';
|
||||
$labels['localchangeswarning'] = 'You are about to make changes that will only be reflected on your calendar and not be sent to the organizer of the event.';
|
||||
$labels['importsuccess'] = '$nr イベントをインポートしました';
|
||||
$labels['importnone'] = 'インポートされたイベントはありません';
|
||||
$labels['importerror'] = 'インポート中にエラーが発生しました。';
|
||||
$labels['aclnorights'] = 'このカレンダーの管理権限がありません。';
|
||||
$labels['changeeventconfirm'] = 'イベント変更';
|
||||
$labels['changerecurringeventwarning'] = 'これは繰返しイベントです。現在のイベントのみ、このイベントと今後の全イベント、全イベント、編集したい、もしくは新しいイベントとして保存したい?';
|
||||
$labels['currentevent'] = '現在';
|
||||
$labels['futurevents'] = '今後';
|
||||
$labels['allevents'] = '全て';
|
||||
$labels['saveasnew'] = '新規保存';
|
||||
$labels['birthdays'] = 'Birthdays';
|
||||
$labels['birthdayscalendar'] = 'Birthdays Calendar';
|
||||
$labels['displaybirthdayscalendar'] = 'Display birthdays calendar';
|
||||
$labels['birthdayscalendarsources'] = 'From these address books';
|
||||
$labels['birthdayeventtitle'] = '$name\'s Birthday';
|
||||
$labels['birthdayage'] = 'Age $age';
|
||||
$labels['user'] = 'ユーザ';
|
||||
?>
|
||||
|
|
9
localization/ku_IQ.inc
Normal file
|
@ -0,0 +1,9 @@
|
|||
<?php
|
||||
/**
|
||||
* Localizations for Kolab Calendar plugin
|
||||
*
|
||||
* Copyright (C) 2014, Kolab Systems AG
|
||||
*
|
||||
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
|
||||
*/
|
||||
?>
|
|
@ -1,39 +1,224 @@
|
|||
<?php
|
||||
/**
|
||||
* RoundCube Calendar
|
||||
* Localizations for Kolab Calendar plugin
|
||||
*
|
||||
* Plugin to add a calendar to RoundCube.
|
||||
* Copyright (C) 2014, Kolab Systems AG
|
||||
*
|
||||
* @version 0.2 BETA 2
|
||||
* @author Lazlo Westerhof
|
||||
* @url http://rc-calendar.lazlo.me
|
||||
* @licence GNU GPL
|
||||
* @copyright (c) 2010 Lazlo Westerhof - Netherlands
|
||||
*
|
||||
**/
|
||||
|
||||
$labels = array();
|
||||
|
||||
// config
|
||||
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
|
||||
*/
|
||||
$labels['default_view'] = 'Standaard agenda';
|
||||
$labels['time_format'] = 'Tijdsformaat';
|
||||
$labels['timeslots'] = 'Timeslots per uur';
|
||||
$labels['timeslots'] = 'Tijdsdelen per uur';
|
||||
$labels['first_day'] = 'Eerste weekdag';
|
||||
|
||||
// calendar
|
||||
$labels['calendar'] = 'Agenda';
|
||||
$labels['first_hour'] = 'Eerste uur om weer te geven';
|
||||
$labels['workinghours'] = 'Werkuren';
|
||||
$labels['add_category'] = 'Categorie toevoegen';
|
||||
$labels['remove_category'] = 'Categorie verwijderen';
|
||||
$labels['defaultcalendar'] = 'Maak nieuwe afspraken in';
|
||||
$labels['eventcoloring'] = 'Kleuren van afspraken';
|
||||
$labels['coloringmode0'] = 'Volgens kalender';
|
||||
$labels['coloringmode1'] = 'Volgens categorie';
|
||||
$labels['coloringmode2'] = 'Kalender voor omtrek, categorie voor inhoud';
|
||||
$labels['coloringmode3'] = 'Categorie voor omtrek, kalender voor inhoud';
|
||||
$labels['calendar'] = 'Kalender';
|
||||
$labels['calendars'] = 'Kalenders';
|
||||
$labels['category'] = 'Categorie';
|
||||
$labels['categories'] = 'Categorieën';
|
||||
$labels['createcalendar'] = 'Maak een nieuwe kalender';
|
||||
$labels['editcalendar'] = 'Wijzig kalender eigenschappen';
|
||||
$labels['name'] = 'Naam';
|
||||
$labels['color'] = 'Kleur';
|
||||
$labels['day'] = 'Dag';
|
||||
$labels['week'] = 'Week';
|
||||
$labels['month'] = 'Maand';
|
||||
$labels['new_event'] = 'Nieuw evenement';
|
||||
$labels['edit_event'] = 'Wijzig evenement';
|
||||
$labels['agenda'] = 'Agenda';
|
||||
$labels['new'] = 'Nieuw';
|
||||
$labels['new_event'] = 'Nieuwe afspraak';
|
||||
$labels['edit_event'] = 'Wijzig afspraak';
|
||||
$labels['edit'] = 'Wijzig';
|
||||
$labels['save'] = 'Bewaar';
|
||||
$labels['remove'] = 'Verwijder';
|
||||
$labels['removelist'] = 'Remove from list';
|
||||
$labels['cancel'] = 'Terug';
|
||||
$labels['select'] = 'Selecteer';
|
||||
$labels['print'] = 'Afdrukken';
|
||||
$labels['printtitle'] = 'Kalenders afdrukken';
|
||||
$labels['title'] = 'Samenvatting';
|
||||
$labels['description'] = 'Beschrijving';
|
||||
$labels['description'] = 'Omschrijving';
|
||||
$labels['all-day'] = 'hele dag';
|
||||
$labels['export'] = 'Exporteer naar ICS';
|
||||
$labels['category'] = 'Categorie';
|
||||
$labels['exporttitle'] = 'Als iCalender exporteren';
|
||||
$labels['exportrange'] = 'Afspraken uit';
|
||||
$labels['exportattachments'] = 'Exporteer bijlages';
|
||||
$labels['customdate'] = 'Aangepaste datumweergave';
|
||||
$labels['location'] = 'Locatie';
|
||||
?>
|
||||
$labels['url'] = 'URL';
|
||||
$labels['date'] = 'Datum';
|
||||
$labels['start'] = 'Begin';
|
||||
$labels['starttime'] = 'Start time';
|
||||
$labels['end'] = 'Eind';
|
||||
$labels['repeat'] = 'Herhaal';
|
||||
$labels['selectdate'] = 'Kies datum';
|
||||
$labels['freebusy'] = 'Toon mij als';
|
||||
$labels['free'] = 'Vrij';
|
||||
$labels['busy'] = 'Bezet';
|
||||
$labels['outofoffice'] = 'Niet Aanwezig';
|
||||
$labels['tentative'] = 'Misschien';
|
||||
$labels['status'] = 'Status';
|
||||
$labels['status-confirmed'] = 'Bevestigd';
|
||||
$labels['status-cancelled'] = 'Afgelast';
|
||||
$labels['priority'] = 'Prioriteit';
|
||||
$labels['sensitivity'] = 'Zichtbaarheid';
|
||||
$labels['public'] = 'publiek';
|
||||
$labels['private'] = 'prive';
|
||||
$labels['confidential'] = 'vertrouwelijk';
|
||||
$labels['links'] = 'Reference';
|
||||
$labels['alarms'] = 'Herinnering';
|
||||
$labels['comment'] = 'Opmerking';
|
||||
$labels['created'] = 'Created';
|
||||
$labels['changed'] = 'Last Modified';
|
||||
$labels['unknown'] = 'Onbekend';
|
||||
$labels['eventoptions'] = 'Opties';
|
||||
$labels['generated'] = 'gegenereerd op';
|
||||
$labels['removelink'] = 'Remove email reference';
|
||||
$labels['printdescriptions'] = 'Print beschrijvingen';
|
||||
$labels['parentcalendar'] = 'Voeg toe in';
|
||||
$labels['searchearlierdates'] = '« Zoek voor eerdere afspraken';
|
||||
$labels['searchlaterdates'] = 'Zoek voor latere afspraken »';
|
||||
$labels['andnmore'] = '$nr meer...';
|
||||
$labels['togglerole'] = 'Klik om van rol te wisselen';
|
||||
$labels['createfrommail'] = 'Bewaar als afspraak';
|
||||
$labels['importevents'] = 'Afspraken importeren';
|
||||
$labels['importrange'] = 'Afspraken vanaf';
|
||||
$labels['onemonthback'] = '1 maand terug';
|
||||
$labels['nmonthsback'] = '$nr maanden terug';
|
||||
$labels['showurl'] = 'Toon kalender URL';
|
||||
$labels['showurldescription'] = 'Gebruik het volgende adres om uw kalendar te gebruiken (alleen lezen) in andere programma\'s. U kunt dit knippen en plakken in elk kalender programma dat het iCal formaat ondersteunt.';
|
||||
$labels['caldavurldescription'] = 'Kopieer dit adres in een <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a> programma (bijv. Evolution of Mozilla Thunderbird) om deze specifieke kalender volledig te synchronizeren met je computer of mobiel apparaat.';
|
||||
$labels['findcalendars'] = 'Vind agenda\'s...';
|
||||
$labels['searchterms'] = 'Search terms';
|
||||
$labels['calsearchresults'] = 'Beschikbare agenda\'s';
|
||||
$labels['calendarsubscribe'] = 'Permanent weergeven';
|
||||
$labels['listrange'] = 'Bereik om te tonen:';
|
||||
$labels['listsections'] = 'Verdeel in:';
|
||||
$labels['smartsections'] = 'Slimme secties';
|
||||
$labels['until'] = 'tot';
|
||||
$labels['today'] = 'Vandaag';
|
||||
$labels['tomorrow'] = 'Morgen';
|
||||
$labels['thisweek'] = 'Deze week';
|
||||
$labels['nextweek'] = 'Volgende week';
|
||||
$labels['thismonth'] = 'Deze maand';
|
||||
$labels['nextmonth'] = 'Volgende maand';
|
||||
$labels['weekofyear'] = 'Week';
|
||||
$labels['pastevents'] = 'Verleden';
|
||||
$labels['futureevents'] = 'Toekomst';
|
||||
$labels['showalarms'] = 'Toon herinneringen';
|
||||
$labels['defaultalarmtype'] = 'Instelling standaard herinnering';
|
||||
$labels['defaultalarmoffset'] = 'Standaard herinneringstijd';
|
||||
$labels['attendee'] = 'Deelnemer';
|
||||
$labels['role'] = 'Rol';
|
||||
$labels['availability'] = 'Beschikb.';
|
||||
$labels['confirmstate'] = 'Status';
|
||||
$labels['addattendee'] = 'Deelnemer toevoegen';
|
||||
$labels['roleorganizer'] = 'Organisatie';
|
||||
$labels['rolerequired'] = 'Verplicht';
|
||||
$labels['roleoptional'] = 'Optioneel';
|
||||
$labels['rolechair'] = 'Voorzitter';
|
||||
$labels['rolenonparticipant'] = 'Afwezig';
|
||||
$labels['cutypeindividual'] = 'Individueel';
|
||||
$labels['cutypegroup'] = 'Groep';
|
||||
$labels['cutyperesource'] = 'Middel';
|
||||
$labels['cutyperoom'] = 'Kamer';
|
||||
$labels['availfree'] = 'Vrij';
|
||||
$labels['availbusy'] = 'Bezet';
|
||||
$labels['availunknown'] = 'Onbekend';
|
||||
$labels['availtentative'] = 'Misschien';
|
||||
$labels['availoutofoffice'] = 'Niet Aanwezig';
|
||||
$labels['delegatedto'] = 'Gedelegeerd aan';
|
||||
$labels['delegatedfrom'] = 'Gedelegeerd door';
|
||||
$labels['scheduletime'] = 'Vind beschikbaarheid';
|
||||
$labels['sendinvitations'] = 'Verzend uitnodigingen';
|
||||
$labels['sendnotifications'] = 'Verzend notificaties';
|
||||
$labels['sendcancellation'] = 'Verzend annulering';
|
||||
$labels['onlyworkinghours'] = 'Vind beschikbaarheid binnen mijn werkuren';
|
||||
$labels['reqallattendees'] = 'Verplicht/alle deelnemers';
|
||||
$labels['prevslot'] = 'vorig voorstel';
|
||||
$labels['nextslot'] = 'volgend voorstel';
|
||||
$labels['noslotfound'] = 'Geen voorstel gevonden';
|
||||
$labels['invitationsubject'] = 'U bent uitgenodigd voor "$title"';
|
||||
$labels['invitationmailbody'] = "*\$title*\n\nWanneer: \$date\n\nGenodigden: \$attendees\n\nBijgevoegd vindt u een iCalendar bestand met alle details omtrent de afspraak die u kunt importeren in uw kalender programma.";
|
||||
$labels['invitationattendlinks'] = "In het geval dat uw email programma geen iTip verzoeken aankan, kunt u de volgende link gebruiken om deze uitnodiging te accepteren or af te wijzen :\n\$url";
|
||||
$labels['eventupdatesubject'] = '"$title" is gewijzigd';
|
||||
$labels['eventupdatesubjectempty'] = 'Een afspraak is gewijzigd';
|
||||
$labels['eventupdatemailbody'] = "*\$title*\n\nWanneer: \$date\n\nGenodigden: \$attendees\n\nBijgevoegd vindt u een iCalendar bestand met de gewijzigde details omtrent de afspraak die u kunt importeren in uw kalender programma.";
|
||||
$labels['eventcancelsubject'] = '"$title" is geannuleerd';
|
||||
$labels['eventcancelmailbody'] = "*\$title*\n\nWanneer: \$date\n\nGenodigden: \$attendees\n\nDeze afspraak is geannuleerd door \$organizer.\n\nBijgevoegd vindt u een iCalendar bestand met de gewijzigde details omtrent de afspraak";
|
||||
$labels['itipobjectnotfound'] = 'De afspraak waaraan door dit bericht wordt gereferreerd is niet gevonden in uw kalender.';
|
||||
$labels['itipmailbodyaccepted'] = "\$sender heeft de uitnodiging geaccepteerd voor de volgende afspraak:\n\n*\$title*\n\nWanneer: \$date\n\nGenodigden: \$attendees";
|
||||
$labels['itipmailbodytentative'] = "\$sender heeft onder voorbehoud de uitnodiging geaccepteerd voor de volgende afspraak:\n\n*\$title*\n\nWanneer: \$date\n\nGenodigden: \$attendees";
|
||||
$labels['itipmailbodydeclined'] = "\$sender heeft de uitnodiging afgewezen voor de volgende afspraak:\n\n*\$title*\n\nWanneer: \$date\n\nGenodigden: \$attendees";
|
||||
$labels['itipmailbodycancel'] = "\$sender heeft je deelname afgewezen voor de volgende afspraak:\n\n*\$title*\n\nWanneer: \$date";
|
||||
$labels['itipdeclineevent'] = 'Wil u de uitnodiging voor deze afspraak afwijzen?';
|
||||
$labels['declinedeleteconfirm'] = 'Wilt u tevens deze afgewezen uitnodiging verwijderen uit je kalender?';
|
||||
$labels['itipcomment'] = 'Invitation/notification comment';
|
||||
$labels['notanattendee'] = 'U staat niet op de lijst van genodigden voor deze afspraak';
|
||||
$labels['eventcancelled'] = 'Dit evenement is afgelast';
|
||||
$labels['saveincalendar'] = 'bewaar in';
|
||||
$labels['updatemycopy'] = 'Wijzig in mijn kalender';
|
||||
$labels['savetocalendar'] = 'Opslaan in kalender';
|
||||
$labels['resource'] = 'Hulpmiddel';
|
||||
$labels['addresource'] = 'Voeg hulpmiddel toe';
|
||||
$labels['findresources'] = 'Vind hulpmiddelen';
|
||||
$labels['resourcedetails'] = 'Details';
|
||||
$labels['resourceavailability'] = 'Beschikbaarheid';
|
||||
$labels['resourceowner'] = 'Eigenaar';
|
||||
$labels['resourceadded'] = 'Hulpmiddel is toegevoegd aan uw afspraak';
|
||||
$labels['tabsummary'] = 'Samenvatting';
|
||||
$labels['tabrecurrence'] = 'Herhaling';
|
||||
$labels['tabattendees'] = 'Deelnemers';
|
||||
$labels['tabresources'] = 'Middelen';
|
||||
$labels['tabattachments'] = 'Toebehoren';
|
||||
$labels['tabsharing'] = 'Delen';
|
||||
$labels['deleteobjectconfirm'] = 'Weet je zeker dat je deze afspraak wilt verwijderen?';
|
||||
$labels['deleteventconfirm'] = 'Weet u zeker dat u deze afspraak wilt verwijderen?';
|
||||
$labels['deletecalendarconfirm'] = 'Weet u zeker dat u deze kalender samen met alle afspraken wilt verwijderen?';
|
||||
$labels['deletecalendarconfirmrecursive'] = 'Weet u zeker dat je deze kalender samen met alle afspraken en er onder hangende kalenders wilt verwijderen?';
|
||||
$labels['savingdata'] = 'Data wordt opgeslagen...';
|
||||
$labels['errorsaving'] = 'Opslaan mislukt.';
|
||||
$labels['operationfailed'] = 'De gevraagde opdracht is mislukt.';
|
||||
$labels['invalideventdates'] = 'Ongeldige datums ingevoerd! Controleer aub uw invoer.';
|
||||
$labels['invalidcalendarproperties'] = 'Ongeldige kalender eigenschappen! Gebruik aub een geldige naam.';
|
||||
$labels['searchnoresults'] = 'Geen afspraken gevonden in de geselecteerde kalenders.';
|
||||
$labels['successremoval'] = 'De afspraak is succesvol verwijdert.';
|
||||
$labels['successrestore'] = 'De afspraak is succesvol herstelt';
|
||||
$labels['errornotifying'] = 'Uitnodigingen versturen naar de genodigden van de afspraak is mislukt';
|
||||
$labels['errorimportingevent'] = 'Afspraak importeren is mislukt';
|
||||
$labels['importwarningexists'] = 'Een kopie van deze afspraak bevindt zich al in uw kalender.';
|
||||
$labels['newerversionexists'] = 'Een nieuwere versie van deze afspraak bestaat! Bewerking afgebroken.';
|
||||
$labels['nowritecalendarfound'] = 'Geen kalender gevonden om de afspraak in op te slaan';
|
||||
$labels['importedsuccessfully'] = 'De afspraak is succesvol toegevoegd aan \'$calendar\'';
|
||||
$labels['updatedsuccessfully'] = 'Het bijwerken van de gebeurtenis in \'$calendar\' is geslaagd';
|
||||
$labels['attendeupdateesuccess'] = 'Status van genodigde succesvol gewijzigd';
|
||||
$labels['itipsendsuccess'] = 'Uitnodiging verstuurd aan de genodigden.';
|
||||
$labels['itipresponseerror'] = 'Antwoord op deze uitnodiging versturen is mislukt';
|
||||
$labels['itipinvalidrequest'] = 'Deze uitnodiging is niet langer geldig';
|
||||
$labels['sentresponseto'] = 'Antwoord op deze uitnodiging was succesvol verstuurd aan $mailto';
|
||||
$labels['localchangeswarning'] = 'U bent bezig wijzigingen te maken die alleen zichtbaar zijn in u eigen kalender en die niet doorgestuurd zullen worden aan de organisator van de afspraak.';
|
||||
$labels['importsuccess'] = 'Succesvol $nr afspraken geïmporteerd';
|
||||
$labels['importnone'] = 'Geen afspraken gevonden om te importeren';
|
||||
$labels['importerror'] = 'Er is een fout tijdens het importeren opgetreden';
|
||||
$labels['aclnorights'] = 'U heeft geen administratieve rechten op deze kalender.';
|
||||
$labels['changeeventconfirm'] = 'Wijzig afspraak';
|
||||
$labels['changerecurringeventwarning'] = 'Dit is een terugkerende afspraak. Wilt u alleen de huidige afspraak wijzigen, deze en alle toekomstige afspraken, alle afspraken of opslaan als een nieuwe afspraak?';
|
||||
$labels['currentevent'] = 'Huidige';
|
||||
$labels['futurevents'] = 'Toekomstige';
|
||||
$labels['allevents'] = 'Alle';
|
||||
$labels['saveasnew'] = 'Bewaar als nieuw';
|
||||
$labels['birthdays'] = 'Verjaardagen';
|
||||
$labels['birthdayscalendar'] = 'Verjaardagskalender';
|
||||
$labels['displaybirthdayscalendar'] = 'Toon verjaardagskalender';
|
||||
$labels['birthdayscalendarsources'] = 'Uit deze adresboeken';
|
||||
$labels['birthdayeventtitle'] = 'verjaardag van $name';
|
||||
$labels['birthdayage'] = 'Leeftijd $age';
|
||||
$labels['user'] = 'Gebruiker';
|
||||
$labels['compare'] = 'Vergelijken';
|
||||
?>
|
||||
|
|
103
localization/pl.inc
Normal file
|
@ -0,0 +1,103 @@
|
|||
<?php
|
||||
/**
|
||||
* Localizations for Kolab Calendar plugin
|
||||
*
|
||||
* Copyright (C) 2014, Kolab Systems AG
|
||||
*
|
||||
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
|
||||
*/
|
||||
$labels['default_view'] = 'Domyślny widok';
|
||||
$labels['time_format'] = 'Format czasu';
|
||||
$labels['first_day'] = 'Pierwszy dzień tygodnia';
|
||||
$labels['first_hour'] = 'Pierwsza godzina do wyświetlenia';
|
||||
$labels['workinghours'] = 'Godziny pracy';
|
||||
$labels['add_category'] = 'Dodaj kategorię';
|
||||
$labels['remove_category'] = 'Usuń kategorię';
|
||||
$labels['afternothing'] = 'Nie rób nic';
|
||||
$labels['aftertrash'] = 'Przenieś do kosza';
|
||||
$labels['afterdelete'] = 'Usuń wiadomość';
|
||||
$labels['afterflagdeleted'] = 'Oznacz jako usunięte';
|
||||
$labels['aftermoveto'] = 'Przenieś do...';
|
||||
$labels['calendar'] = 'Kalendarz';
|
||||
$labels['calendars'] = 'Kalendarze';
|
||||
$labels['category'] = 'Kategoria';
|
||||
$labels['categories'] = 'Kategorie';
|
||||
$labels['createcalendar'] = 'Utwórz nowy kalendarz';
|
||||
$labels['editcalendar'] = 'Edytuj właściwości kalendarza';
|
||||
$labels['name'] = 'Nazwa';
|
||||
$labels['color'] = 'Kolor';
|
||||
$labels['day'] = 'Dzień';
|
||||
$labels['week'] = 'Tydzień';
|
||||
$labels['month'] = 'Miesiąc';
|
||||
$labels['new'] = 'Nowy';
|
||||
$labels['new_event'] = 'Nowe zdarzenie';
|
||||
$labels['edit_event'] = 'Edytuj zdarzenie';
|
||||
$labels['edit'] = 'Edytuj';
|
||||
$labels['save'] = 'Zapisz';
|
||||
$labels['removelist'] = 'Usuń z listy';
|
||||
$labels['cancel'] = 'Anuluj';
|
||||
$labels['print'] = 'Drukuj';
|
||||
$labels['printtitle'] = 'Drukuj kalendarze';
|
||||
$labels['title'] = 'Podsumowanie';
|
||||
$labels['description'] = 'Opis';
|
||||
$labels['export'] = 'Eksport';
|
||||
$labels['exporttitle'] = 'Eksport do iCalendar';
|
||||
$labels['url'] = 'URL';
|
||||
$labels['date'] = 'Data';
|
||||
$labels['start'] = 'Start';
|
||||
$labels['end'] = 'Koniec';
|
||||
$labels['repeat'] = 'Powtórz';
|
||||
$labels['selectdate'] = 'Wybierz datę';
|
||||
$labels['free'] = 'Wolny';
|
||||
$labels['busy'] = 'Zajęty';
|
||||
$labels['outofoffice'] = 'Poza biurem';
|
||||
$labels['status-cancelled'] = 'Anulowane';
|
||||
$labels['priority'] = 'Priorytet';
|
||||
$labels['sensitivity'] = 'Prywatność';
|
||||
$labels['created'] = 'Utworzone';
|
||||
$labels['changed'] = 'Ostatnia modyfikacja';
|
||||
$labels['unknown'] = 'Nieznane';
|
||||
$labels['eventoptions'] = 'Opcje';
|
||||
$labels['eventhistory'] = 'Historia';
|
||||
$labels['andnmore'] = '$nr więcej...';
|
||||
$labels['createfrommail'] = 'Zapisz jako zdarzenie';
|
||||
$labels['importevents'] = 'Importuj zdarzenia';
|
||||
$labels['showurl'] = 'Pokaż URL kalendarza';
|
||||
$labels['calsearchresults'] = 'Dostępne Kalendarze';
|
||||
$labels['nocalendarsfound'] = 'Nie znaleziono kalendarzy';
|
||||
$labels['quickview'] = 'Pokaż tylko ten kalendarz';
|
||||
$labels['today'] = 'Dzisiaj';
|
||||
$labels['tomorrow'] = 'Jutro';
|
||||
$labels['thisweek'] = 'Ten tydzień';
|
||||
$labels['nextweek'] = 'Następny tydzień';
|
||||
$labels['prevweek'] = 'Poprzedni tydzień';
|
||||
$labels['thismonth'] = 'Ten miesiąc';
|
||||
$labels['nextmonth'] = 'Następny miesiąc';
|
||||
$labels['weekofyear'] = 'Tydzień';
|
||||
$labels['rolerequired'] = 'Wymagane';
|
||||
$labels['availfree'] = 'Wolny';
|
||||
$labels['availbusy'] = 'Zajęty';
|
||||
$labels['availunknown'] = 'Nieznane';
|
||||
$labels['availoutofoffice'] = 'Poza biurem';
|
||||
$labels['saveincalendar'] = 'zapisz w';
|
||||
$labels['savetocalendar'] = 'Zapisz w kalendarzu';
|
||||
$labels['openpreview'] = 'Sprawdź kalendarz';
|
||||
$labels['noearlierevents'] = 'Brak wcześniejszych zdarzeń';
|
||||
$labels['nolaterevents'] = 'Brak późniejszych zdarzeń';
|
||||
$labels['resourcedetails'] = 'Szczegóły';
|
||||
$labels['resourceavailability'] = 'Dostępność';
|
||||
$labels['resourceowner'] = 'Właściciel';
|
||||
$labels['tabsummary'] = 'Podsumowanie';
|
||||
$labels['deleteobjectconfirm'] = 'Czy na pewno chcesz usunąć to zdarzenie?';
|
||||
$labels['deleteventconfirm'] = 'Czy na pewno chcesz usunąć to zdarzenie?';
|
||||
$labels['deletecalendarconfirm'] = 'Czy na pewno chcesz usunąć ten kalendarz i wszystkie jego zdarzenia?';
|
||||
$labels['changeeventconfirm'] = 'Zmodyfikuj zdarzenie';
|
||||
$labels['removeeventconfirm'] = 'Usuń zdarzenie';
|
||||
$labels['allevents'] = 'Wszystko';
|
||||
$labels['saveasnew'] = 'Zapisz jako nowy';
|
||||
$labels['birthdays'] = 'Urodziny';
|
||||
$labels['birthdayscalendar'] = 'Kalendarz urodzin';
|
||||
$labels['displaybirthdayscalendar'] = 'Wyświetl kalendarz urodzin';
|
||||
$labels['birthdayage'] = 'Wiek $age';
|
||||
$labels['user'] = 'Użytkownik';
|
||||
?>
|
|
@ -1,24 +1,32 @@
|
|||
<?php
|
||||
|
||||
$labels = array();
|
||||
|
||||
// preferences
|
||||
/**
|
||||
* Localizations for Kolab Calendar plugin
|
||||
*
|
||||
* Copyright (C) 2014, Kolab Systems AG
|
||||
*
|
||||
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
|
||||
*/
|
||||
$labels['default_view'] = 'Domyślny widok';
|
||||
$labels['time_format'] = 'Format czasu';
|
||||
$labels['timeslots'] = 'Okienka na godzinę';
|
||||
$labels['timeslots'] = 'Time slots per hour';
|
||||
$labels['first_day'] = 'Pierwszy dzień tygodnia';
|
||||
$labels['first_hour'] = 'Pierwsza godzina do wyświetlenia';
|
||||
$labels['workinghours'] = 'Godziny pracy';
|
||||
$labels['first_hour'] = 'Pierwsza godzina';
|
||||
$labels['workinghours'] = 'Godziny robocze';
|
||||
$labels['add_category'] = 'Dodaj kategorię';
|
||||
$labels['remove_category'] = 'Usuń kategorię';
|
||||
$labels['defaultcalendar'] = 'Utwórz nowe zdarzenia w';
|
||||
$labels['eventcoloring'] = 'Kolorowanie zdarzeń';
|
||||
$labels['coloringmode0'] = 'zależnie od kalendarza';
|
||||
$labels['coloringmode1'] = 'zależnie od kategorii';
|
||||
$labels['coloringmode2'] = 'Kalendarz - obramowanie, kategoria - tło';
|
||||
$labels['coloringmode3'] = 'Kategoria - obramowanie, kalendarz - tło';
|
||||
|
||||
// calendar
|
||||
$labels['defaultcalendar'] = 'Twórz nowe zdarzenia w';
|
||||
$labels['eventcoloring'] = 'Kolor zdarzenia';
|
||||
$labels['coloringmode0'] = 'Zgodnie z kalendarzem';
|
||||
$labels['coloringmode1'] = 'Zgodnie z kategorią';
|
||||
$labels['coloringmode2'] = 'Kalendarz dla obramowania, kategoria dla środka';
|
||||
$labels['coloringmode3'] = 'Kategoria dla obramowania, kalendarz dla środka';
|
||||
$labels['afternothing'] = 'Nie rób nic';
|
||||
$labels['aftertrash'] = 'Przenieś do Kosza';
|
||||
$labels['afterdelete'] = 'Usuń wiadomość';
|
||||
$labels['afterflagdeleted'] = 'Oznacz jako usunięta';
|
||||
$labels['aftermoveto'] = 'Przenieś do...';
|
||||
$labels['itipoptions'] = 'Zaproszenia';
|
||||
$labels['afteraction'] = 'Wiadomość jest przetwarzana po zaproszeniu lub aktualizacji';
|
||||
$labels['calendar'] = 'Kalendarz';
|
||||
$labels['calendars'] = 'Kalendarze';
|
||||
$labels['category'] = 'Kategoria';
|
||||
|
@ -31,194 +39,235 @@ $labels['day'] = 'Dzień';
|
|||
$labels['week'] = 'Tydzień';
|
||||
$labels['month'] = 'Miesiąc';
|
||||
$labels['agenda'] = 'Agenda';
|
||||
$labels['new'] = 'Nowy';
|
||||
$labels['new_event'] = 'Nowe zdarzenie';
|
||||
$labels['edit_event'] = 'Edytuj zdarzenie';
|
||||
$labels['edit'] = 'Edytuj';
|
||||
$labels['save'] = 'Zapisz';
|
||||
$labels['remove'] = 'Usuń';
|
||||
$labels['removelist'] = 'Usuń z listy';
|
||||
$labels['cancel'] = 'Anuluj';
|
||||
$labels['select'] = 'Wybierz';
|
||||
$labels['print'] = 'Drukuj kalendarze';
|
||||
$labels['print'] = 'Drukuj';
|
||||
$labels['printtitle'] = 'Drukuj kalendarze';
|
||||
$labels['title'] = 'Podsumowanie';
|
||||
$labels['description'] = 'Opis';
|
||||
$labels['all-day'] = 'cały dzień';
|
||||
$labels['export'] = 'Eksport do iCalendarza';
|
||||
$labels['export'] = 'Eksport';
|
||||
$labels['exporttitle'] = 'Eksport w formacie iCalendar';
|
||||
$labels['exportrange'] = 'Zdarzenia z';
|
||||
$labels['exportattachments'] = 'Z załącznikami';
|
||||
$labels['customdate'] = 'Własna data';
|
||||
$labels['location'] = 'Położenie';
|
||||
$labels['url'] = 'Adres URL';
|
||||
$labels['date'] = 'Data';
|
||||
$labels['start'] = 'Początek';
|
||||
$labels['starttime'] = 'Początek';
|
||||
$labels['end'] = 'Koniec';
|
||||
$labels['endtime'] = 'Koniec';
|
||||
$labels['repeat'] = 'Powtórz';
|
||||
$labels['selectdate'] = 'Wybierz datę';
|
||||
$labels['freebusy'] = 'Pokazuj mnie jako';
|
||||
$labels['freebusy'] = 'Pokaż mnie jako';
|
||||
$labels['free'] = 'Wolny';
|
||||
$labels['busy'] = 'Zajęty';
|
||||
$labels['outofoffice'] = 'Poza buirem';
|
||||
$labels['outofoffice'] = 'Poza biurem';
|
||||
$labels['tentative'] = 'Niepewny';
|
||||
$labels['mystatus'] = 'Mój status';
|
||||
$labels['status'] = 'Status';
|
||||
$labels['status-confirmed'] = 'Potwierdzony';
|
||||
$labels['status-cancelled'] = 'Anulowany';
|
||||
$labels['priority'] = 'Priorytet';
|
||||
$labels['sensitivity'] = 'Dostępność';
|
||||
$labels['sensitivity'] = 'Poufność';
|
||||
$labels['public'] = 'publiczny';
|
||||
$labels['private'] = 'prywatny';
|
||||
$labels['confidential'] = 'zastrzeżony';
|
||||
$labels['confidential'] = 'poufny';
|
||||
$labels['links'] = 'Reference';
|
||||
$labels['alarms'] = 'Przypomnienie';
|
||||
$labels['comment'] = 'Komentarz';
|
||||
$labels['created'] = 'Utworzono';
|
||||
$labels['changed'] = 'Ostatnia modyfikacja';
|
||||
$labels['unknown'] = 'Nieznany';
|
||||
$labels['eventoptions'] = 'Opcje';
|
||||
$labels['generated'] = 'wygenerowano';
|
||||
$labels['eventhistory'] = 'Historia';
|
||||
$labels['removelink'] = 'Remove email reference';
|
||||
$labels['printdescriptions'] = 'Drukuj opisy';
|
||||
$labels['parentcalendar'] = 'Nadrzędny kalendarz';
|
||||
$labels['searchearlierdates'] = '« Wyszukaj wcześniejsze zdarzenia';
|
||||
$labels['searchlaterdates'] = 'Wyszukaj późniejsze zdarzenia »';
|
||||
$labels['parentcalendar'] = 'Wstaw wewnątrz';
|
||||
$labels['searchearlierdates'] = '« Szukaj wcześniejszych zdarzeń';
|
||||
$labels['searchlaterdates'] = 'Szukaj późniejszych zdarzeń »';
|
||||
$labels['andnmore'] = '$nr więcej...';
|
||||
$labels['showmore'] = 'Pokaż więcej...';
|
||||
$labels['togglerole'] = 'Kliknij aby zmienić rolę';
|
||||
$labels['togglerole'] = 'Kliknuj aby przestawić rolę';
|
||||
$labels['createfrommail'] = 'Zapisz jako zdarzenie';
|
||||
$labels['importevents'] = 'Import zdarzeń';
|
||||
$labels['importevents'] = 'Importuj zdarzenia';
|
||||
$labels['importrange'] = 'Zdarzenia z';
|
||||
$labels['onemonthback'] = '1 miesiąc wstecz';
|
||||
$labels['nmonthsback'] = '$nr miesiące wstecz';
|
||||
|
||||
// agenda view
|
||||
$labels['listrange'] = 'Zakres do wyświetlenia:';
|
||||
$labels['nmonthsback'] = '$nr miesięcy wstecz';
|
||||
$labels['showurl'] = 'Pokaż adres URL kalendarza';
|
||||
$labels['showurldescription'] = 'Używaj tego adresu aby dostać się do kalendarza z innych programów (w trybie tylko-do-odczytu). Możesz wkleić go do dowolnej aplikacji obsługującej format iCal.';
|
||||
$labels['caldavurldescription'] = 'Skopiuj ten adres do aplikacji obsługującej format <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a> (np. Evolution lub Mozilla Thunderbird) aby zsynchronizować wybrany kalendarz z twoim komputerem lub urządzeniem przenośnym.';
|
||||
$labels['findcalendars'] = 'Wyszukaj kalendarze...';
|
||||
$labels['searchterms'] = 'Szukana fraza';
|
||||
$labels['calsearchresults'] = 'Dostępne kalendarze';
|
||||
$labels['calendarsubscribe'] = 'Dodaj do listy na stałe';
|
||||
$labels['nocalendarsfound'] = 'Nie znaleziono żadych kalendarzy';
|
||||
$labels['nrcalendarsfound'] = 'znaleziono $nr kalendarzy';
|
||||
$labels['quickview'] = 'Pokaż tylko ten kalendarz';
|
||||
$labels['invitationspending'] = 'Oczekujące zaproszenia';
|
||||
$labels['invitationsdeclined'] = 'Odrzucone zaproszenia';
|
||||
$labels['changepartstat'] = 'Zmień status uczestnika';
|
||||
$labels['rsvpcomment'] = 'Treść zaproszenia';
|
||||
$labels['listrange'] = 'Zakres do pokazania:';
|
||||
$labels['listsections'] = 'Podziel na:';
|
||||
$labels['smartsections'] = 'Inteligentne sekcje';
|
||||
$labels['until'] = 'do';
|
||||
$labels['until'] = 'dopóki';
|
||||
$labels['today'] = 'Dzisiaj';
|
||||
$labels['tomorrow'] = 'Jutro';
|
||||
$labels['thisweek'] = 'Ten tydzień';
|
||||
$labels['thisweek'] = 'Bieżący tydzień';
|
||||
$labels['nextweek'] = 'Następny tydzień';
|
||||
$labels['thismonth'] = 'Ten miesiąc';
|
||||
$labels['prevweek'] = 'Poprzedni tydzień';
|
||||
$labels['thismonth'] = 'Bieżący miesiąc';
|
||||
$labels['nextmonth'] = 'Następny miesiąc';
|
||||
$labels['weekofyear'] = 'Tydzień';
|
||||
$labels['pastevents'] = 'Przeszłość';
|
||||
$labels['futureevents'] = 'Przyszłość';
|
||||
|
||||
// alarm/reminder settings
|
||||
$labels['showalarms'] = 'Wyświetlaj alarmy';
|
||||
$labels['defaultalarmtype'] = 'Domyślne ustawienia przypomnienia';
|
||||
$labels['defaultalarmoffset'] = 'Domyślny czas przypomnienia';
|
||||
|
||||
// attendees
|
||||
$labels['pastevents'] = 'Przeszłe';
|
||||
$labels['futureevents'] = 'Przyszłe';
|
||||
$labels['showalarms'] = 'Pokaż powiadomienia';
|
||||
$labels['defaultalarmtype'] = 'Domyślne powiadomienie';
|
||||
$labels['defaultalarmoffset'] = 'Domyślny czas powiadomienia';
|
||||
$labels['attendee'] = 'Uczestnik';
|
||||
$labels['role'] = 'Rola';
|
||||
$labels['availability'] = 'Dostępn.';
|
||||
$labels['availability'] = 'Dostępny';
|
||||
$labels['confirmstate'] = 'Status';
|
||||
$labels['addattendee'] = 'Dodaj uczestnika';
|
||||
$labels['roleorganizer'] = 'Organizator';
|
||||
$labels['rolerequired'] = 'Wymagany';
|
||||
$labels['roleoptional'] = 'Opcjonalny';
|
||||
$labels['roleresource'] = 'Żródło';
|
||||
$labels['rolechair'] = 'Przewodniczący';
|
||||
$labels['rolenonparticipant'] = 'Nieobecny';
|
||||
$labels['cutypeindividual'] = 'Osoba';
|
||||
$labels['cutypegroup'] = 'Grupa';
|
||||
$labels['cutyperesource'] = 'Zasób';
|
||||
$labels['cutyperoom'] = 'Pokój';
|
||||
$labels['availfree'] = 'Wolny';
|
||||
$labels['availbusy'] = 'Zajęty';
|
||||
$labels['availunknown'] = 'Nieznany';
|
||||
$labels['availtentative'] = 'Niepewny';
|
||||
$labels['availoutofoffice'] = 'Poza buirem';
|
||||
$labels['availoutofoffice'] = 'Poza biurem';
|
||||
$labels['delegatedto'] = 'Oddelegowany do:';
|
||||
$labels['delegatedfrom'] = 'Oddelegowany z:';
|
||||
$labels['scheduletime'] = 'Sprawdź dostępność';
|
||||
$labels['sendinvitations'] = 'Wyślij zaproszenia';
|
||||
$labels['sendnotifications'] = 'Informuj uczestników o zmianach';
|
||||
$labels['sendcancellation'] = 'Informuj uczestników o odwołaniu zdarzenia';
|
||||
$labels['onlyworkinghours'] = 'Sprawdź dostępność podczas moich godzin pracy';
|
||||
$labels['reqallattendees'] = 'Wymagani/wszyscy uczestnicy';
|
||||
$labels['prevslot'] = 'Poprzednie okienko';
|
||||
$labels['nextslot'] = 'Następne okienko';
|
||||
$labels['noslotfound'] = 'Nie można znaleźć wolnego okienka';
|
||||
$labels['invitationsubject'] = 'Zostałeś zaproszony na "$title"';
|
||||
$labels['invitationmailbody'] = "*\$title*\n\nKiedy: \$date\n\nZaproszeni: \$attendees\n\nW załączeniu plik w formacie iCalendar zawierający szczegóły zdarzenia, który można zaimportować do Pana/Pani kalendarza.";
|
||||
$labels['invitationattendlinks'] = "W przypadku gdy Pana/Pani program pocztowy nie obsługuje żądań iTip można użyć następującego łącza w celu akceptacji lub odrzucenia tego zdarzenia:\n\$url";
|
||||
$labels['sendnotifications'] = 'Powiadom uczestników o zmianach';
|
||||
$labels['sendcancellation'] = 'Powiadom uczestników o anulowaniu zdarzenia';
|
||||
$labels['onlyworkinghours'] = 'Sprawdź dostępność w moich godzinach pracy';
|
||||
$labels['reqallattendees'] = 'Wymagany/wszyscy uczestnicy';
|
||||
$labels['prevslot'] = 'Poprzedni przedział';
|
||||
$labels['nextslot'] = 'Następny przedział';
|
||||
$labels['suggestedslot'] = 'Sugerowany przedział';
|
||||
$labels['noslotfound'] = 'Nie znaleziono wolnego przedziału czasu';
|
||||
$labels['invitationsubject'] = 'Zostałeś zaproszony do "$title"';
|
||||
$labels['invitationmailbody'] = "*\$title*\n\nKiedy: \$date\n\nZaproszeni: \$attendees\n\nW załączeniu plik w formacie iCalendar ze szczegółami zdarzenia, który możesz zaimportować do twojej aplikacji kalendarza.";
|
||||
$labels['invitationattendlinks'] = "W przypadku gdy klient poczty elektronicznej nie obsługuje rządań w formacie iTip, aby zaakceptować lub odrzucić to zaproszenie, można skorzystać z następującego linku:\n\$url ";
|
||||
$labels['eventupdatesubject'] = '"$title" zostało zaktualizowane';
|
||||
$labels['eventupdatesubjectempty'] = 'Zdarzenie, które ciebie dotyczy zostało zaktualizowane';
|
||||
$labels['eventupdatemailbody'] = "*\$title*\n\nKiedy: \$date\n\nUczestnicy: \$attendees\n\n.W załączeniu plik w formacie iCalendar zawierający zaktualizowane szczegóły zdarzenia, który można zaimportować do Pana/Pani kalendarza.";
|
||||
$labels['eventupdatesubjectempty'] = 'Zdarzenie które cię dotyczy zostało zaktualizowane';
|
||||
$labels['eventupdatemailbody'] = "*\$title*\n\nKiedy: \$date\n\nZaproszeni: \$attendees\n\nW załączeniu plik w formacie iCalendar zawierający zaktualizowane szczegóły zdarzenia, które możesz zaimportować do swojej aplikacji kalendarza.";
|
||||
$labels['eventcancelsubject'] = '"$title" zostało anulowane';
|
||||
$labels['eventcancelmailbody'] = "*\$title*\n\nKiedy: \$date\n\nUczestnicy: \$attendees\n\nZdarzenie zostało anulowane przez \$organizer.\n\n.W załączeniu plik w formacie iCalendar zawierający zaktualizowane szczegóły zdarzenia.";
|
||||
|
||||
// invitation handling
|
||||
$labels['itipinvitation'] = 'Zaproszenie dla';
|
||||
$labels['itipupdate'] = 'Aktualizacja do';
|
||||
$labels['itipcancellation'] = 'Anulowano:';
|
||||
$labels['itipreply'] = 'Odpowiedź do';
|
||||
$labels['itipaccepted'] = 'Akceptuj';
|
||||
$labels['itiptentative'] = 'Może';
|
||||
$labels['itipdeclined'] = 'Odrzuć';
|
||||
$labels['itipsubjectaccepted'] = '"$title" zostało zaakceptowane przez $name';
|
||||
$labels['itipsubjecttentative'] = '"$title" zostało warunkowo zaakceptowane $name';
|
||||
$labels['itipsubjectdeclined'] = '"$title" zostało odrzucone przez $name';
|
||||
$labels['itipmailbodyaccepted'] = "\$sender zaakceptował zaproszenie na następującego zdarzenie:\n\n*\$title*\n\nKiedy: \$date\n\nUczestnicy: \$attendees";
|
||||
$labels['itipmailbodytentative'] = "\$sender warunkowo zaakceptował zaproszenie na następujące zdarzenie:\n\n*\$title*\n\nKiedy: \$date\n\nUczestnicy: \$attendees";
|
||||
$labels['itipmailbodydeclined'] = "\$sender odrzucił zaproszenie na następujące zdarzenie:\n\n*\$title*\n\nKiedy: \$date\n\nUczestnicy: \$attendees";
|
||||
$labels['eventcancelmailbody'] = "*\$title*\n\nKiedy: \$date\n\nZaproszeni: \$attendees\n\nZdarzenie zostało anulowane przez \$organizer.\n\nW załączeniu plik w formacie iCalendar ze zaktualizowanymi szczegółami zdarzenia.";
|
||||
$labels['itipobjectnotfound'] = 'W twoim kalendarzu nie znaleziono zdarzenia związanego z tą wiadomością.';
|
||||
$labels['itipmailbodyaccepted'] = "\$sender zaakceptował zaproszenie do następującego zdarzenia:\n\n*\$title*\n\nKiedy: \$date\n\nZaproszeni: \$attendees";
|
||||
$labels['itipmailbodytentative'] = "\$sender warunkowo zaakceptował zaproszenie do następującego zdarzenia:\n\n*\$title*\n\nKiedy: \$date\n\nZaproszeni: \$attendees";
|
||||
$labels['itipmailbodydeclined'] = "\$sender odrzucił zaproszenie na następujące zdarzenie:\n\n*\$title*\n\nKiedy: \$date\n\nZaproszeni: \$attendees";
|
||||
$labels['itipmailbodycancel'] = "\$sender odrzucił twój udział w zastępującym zdarzeniu:\n\n*\$title*\n\nKiedy: \$date";
|
||||
$labels['itipdeclineevent'] = 'Czy chcesz odrzucić zaproszenie na to zdarzenie?';
|
||||
$labels['importtocalendar'] = 'Zapisz w moim kalendarzu';
|
||||
$labels['removefromcalendar'] = 'Usuń z mojego kalendarza';
|
||||
$labels['updateattendeestatus'] = 'Aktualizuj status uczestników';
|
||||
$labels['acceptinvitation'] = 'Czy akceptujesz to zaproszenie?';
|
||||
$labels['youhaveaccepted'] = 'Zaakceptowałeś to zaproszenie';
|
||||
$labels['youhavetentative'] = 'Zaakceptowałeś warunkowo to zaproszenie';
|
||||
$labels['youhavedeclined'] = 'Odrzuciłeś to zaproszenie';
|
||||
$labels['notanattendee'] = 'Nie znajdujesz się na liście uczestników tego zdarzenia';
|
||||
$labels['declinedeleteconfirm'] = 'Czy chcesz także usunąć to odrzucone zdarzenie ze swojego kalendarza?';
|
||||
$labels['itipcomment'] = 'Komentarz zaproszenia/powiadomienia';
|
||||
$labels['itipcommenttitle'] = 'Komentarz ten będzie dołączony do wiadomości wysłanej do uczestników zdarzenia';
|
||||
$labels['notanattendee'] = 'Nie jesteś na liście uczestników tego zdarzenia';
|
||||
$labels['eventcancelled'] = 'Zdarzenie zostało anulowane';
|
||||
$labels['saveincalendar'] = 'zapisz w';
|
||||
|
||||
// event dialog tabs
|
||||
$labels['updatemycopy'] = 'Uaktualnij w moim kalendarzu';
|
||||
$labels['savetocalendar'] = 'Zapisz do kalendarza';
|
||||
$labels['openpreview'] = 'Sprawdź kalendarz';
|
||||
$labels['noearlierevents'] = 'Brak wcześniejszych zdarzeń';
|
||||
$labels['nolaterevents'] = '« Brak póżniejszych zdarzeń';
|
||||
$labels['resource'] = 'Zasób';
|
||||
$labels['addresource'] = 'Rezerwuj zasób';
|
||||
$labels['findresources'] = 'Wyszukaj zasoby';
|
||||
$labels['resourcedetails'] = 'Szczegóły';
|
||||
$labels['resourceavailability'] = 'Dostępność';
|
||||
$labels['resourceowner'] = 'Właściciel';
|
||||
$labels['resourceadded'] = 'Zasób został dodany do twojego zdarzenia';
|
||||
$labels['tabsummary'] = 'Podsumowanie';
|
||||
$labels['tabrecurrence'] = 'Powtarzalność';
|
||||
$labels['tabattendees'] = 'Uczestnicy';
|
||||
$labels['tabresources'] = 'Zasoby';
|
||||
$labels['tabattachments'] = 'Załączniki';
|
||||
$labels['tabsharing'] = 'Udostępnianie';
|
||||
|
||||
// messages
|
||||
$labels['deleteobjectconfirm'] = 'Czy na pewno chcesz usunąć to zdarzenie?';
|
||||
$labels['deleteventconfirm'] = 'Czy na pewno chcesz usunąć to zdarzenie?';
|
||||
$labels['deletecalendarconfirm'] = 'Czy na pewno chcesz usunąć ten kalendarz wraz z wszystkimi zdarzeniami?';
|
||||
$labels['savingdata'] = 'Zapisywanie danych...';
|
||||
$labels['errorsaving'] = 'Nie udało się zapisanie zmian.';
|
||||
$labels['deletecalendarconfirm'] = 'Czy na pewno chcesz usunąć ten kalendarz z wszystkimi zadaniami?';
|
||||
$labels['deletecalendarconfirmrecursive'] = 'Czy na pewno chcesz usunąć ten kalendarz ze wszystkimi zdarzeniami i pod-kalendarzami?';
|
||||
$labels['savingdata'] = 'Zapisuję dane...';
|
||||
$labels['errorsaving'] = 'Błąd podczas zapisu danych.';
|
||||
$labels['operationfailed'] = 'Żądana operacja nie powiodła się.';
|
||||
$labels['invalideventdates'] = 'Wprowadzono błędne daty! Sprawdź dane w formularzu.';
|
||||
$labels['invalidcalendarproperties'] = 'Błędne właściwości kalendarza! Proszę podać poprawną datę.';
|
||||
$labels['invalideventdates'] = 'Błędna data! Proszę sprawdzić wprowadzone dane.';
|
||||
$labels['invalidcalendarproperties'] = 'Błędna właściwość kalendarza! Proszę podać poprawną nazwę.';
|
||||
$labels['searchnoresults'] = 'Nie znaleziono zdarzeń w wybranym kalendarzu.';
|
||||
$labels['successremoval'] = 'Zdarzenie zostało usunięte pomyślnie.';
|
||||
$labels['successrestore'] = 'Zdarzenie zostało odtworzone pomyślnie.';
|
||||
$labels['errornotifying'] = 'Nie udało się wysłać powiadomień do uczestników';
|
||||
$labels['errorimportingevent'] = 'Nie powódł się import zdarzenia';
|
||||
$labels['newerversionexists'] = 'Nowsza wersja tego zdarzenia już istnieje! Przerwano.';
|
||||
$labels['nowritecalendarfound'] = 'Nie znaleziono kalendarza do zapisu zdarzenia';
|
||||
$labels['importedsuccessfully'] = 'Zdarzenie zostało pomyślnie zapisane w \'$calendar\'';
|
||||
$labels['attendeupdateesuccess'] = 'Pomyślnie zaktualizowano status uczestnika';
|
||||
$labels['itipresponseerror'] = 'Nie udało się wysłać odpowiedzi na to zaproszenie';
|
||||
$labels['itipinvalidrequest'] = 'To zaproszenie nie jest już aktualne';
|
||||
$labels['sentresponseto'] = 'Pomyślnie wysłano odpowiedź na zaproszenie do $mailto';
|
||||
$labels['localchangeswarning'] = 'Próbujesz dokonać zmian, które będą widoczne tylko w twoim prywatnym kalendarzu';
|
||||
$labels['importsuccess'] = 'Pomyślnie zaimportowano $nr zdarzeń';
|
||||
$labels['importnone'] = 'Nie znaleziono zdarzeń do importu';
|
||||
$labels['importerror'] = 'Wystąpił błąd podczas operacji importu.';
|
||||
|
||||
// recurrence form
|
||||
$labels['repeat'] = 'Powtórz';
|
||||
$labels['frequency'] = 'Częstotliwość';
|
||||
$labels['never'] = 'nigdy';
|
||||
$labels['daily'] = 'codziennie';
|
||||
$labels['weekly'] = 'co tydzień';
|
||||
$labels['monthly'] = 'co miesiąc';
|
||||
$labels['yearly'] = 'co rok';
|
||||
$labels['every'] = 'Każdego';
|
||||
$labels['days'] = 'dni(a)';
|
||||
$labels['weeks'] = 'tygodni(a)';
|
||||
$labels['months'] = 'miesięcy';
|
||||
$labels['years'] = 'lat w:';
|
||||
$labels['bydays'] = 'W';
|
||||
$labels['untildate'] = 'Do';
|
||||
$labels['each'] = 'Każdy';
|
||||
$labels['onevery'] = 'W każdy';
|
||||
$labels['onsamedate'] = 'W tej samej dacie';
|
||||
$labels['forever'] = 'zawsze';
|
||||
$labels['recurrencend'] = 'aż do';
|
||||
$labels['forntimes'] = '$nr raz(y)';
|
||||
$labels['first'] = 'pierwszy';
|
||||
$labels['second'] = 'drugi';
|
||||
$labels['third'] = 'trzeci';
|
||||
$labels['fourth'] = 'czwarty';
|
||||
$labels['last'] = 'ostatni';
|
||||
$labels['dayofmonth'] = 'Dzień miesiąca';
|
||||
|
||||
$labels['successremoval'] = 'Zdarzenie zostało usunięte.';
|
||||
$labels['successrestore'] = 'Zdarzenie zostało przywrócone.';
|
||||
$labels['errornotifying'] = 'Nie udało się wysłać powiadomień do uczestników zdarzenia';
|
||||
$labels['errorimportingevent'] = 'Nie udało się zaimportować zdarzenia';
|
||||
$labels['importwarningexists'] = 'Kopia tego zdarzenia już istnieje w twoim kalendarzu.';
|
||||
$labels['newerversionexists'] = 'Istnieje nowsza wersja tego zdarzenia ! Przerwano.';
|
||||
$labels['nowritecalendarfound'] = 'Nie znaleziono kalendarza aby zapisać zdarzenie.';
|
||||
$labels['importedsuccessfully'] = 'Zdarzenie dodano do \'$calendar\'';
|
||||
$labels['updatedsuccessfully'] = 'Zdarzenie zostało pomyślnie zaktualizowane w \'$calendar\'';
|
||||
$labels['attendeupdateesuccess'] = 'Zaktualizowano status uczestnika.';
|
||||
$labels['itipsendsuccess'] = 'Wysłano zaproszenia do uczestników.';
|
||||
$labels['itipresponseerror'] = 'Nie udało się wysłać odpowiedzi na to zaproszenie.';
|
||||
$labels['itipinvalidrequest'] = 'To zaproszenie nie jest już aktualne.';
|
||||
$labels['sentresponseto'] = 'Wysłano odpowiedź na zaproszenie do $mailto.';
|
||||
$labels['localchangeswarning'] = 'Zamierzasz dokonać zmian, które mogą zostać wykonane tylko w twoim kalendarzu i nie zostaną wysłane do organizatora zdarzenia.';
|
||||
$labels['importsuccess'] = 'Zaimportowano $nr zdarzeń.';
|
||||
$labels['importnone'] = 'Nie znaleziono zdarzeń do zaimportowania.';
|
||||
$labels['importerror'] = 'Wystąpił błąd podczas importu.';
|
||||
$labels['aclnorights'] = 'Nie masz uprawnień administracyjnych dla tego kalendarza.';
|
||||
$labels['changeeventconfirm'] = 'Zmień zdarzenie';
|
||||
$labels['removeeventconfirm'] = 'Usuń zdarzenie';
|
||||
$labels['changerecurringeventwarning'] = 'To jest zdarzenie powtarzające się. Czy chesz zmienić tylko bieżące wystąpienie, to i wszystkie przyszłe wystąpienia, czy wszystkie wystąpienia i zapisać je jako nowe zdarzenie?';
|
||||
$labels['removerecurringeventwarning'] = 'To jest zdarzenie powtarzające się. Czy chesz usunąć tylko bieżące wystąpienie, to i wszystkie przyszłe wystąpienia, czy wszystkie wystąpienia tego zdarzenie?';
|
||||
$labels['changerecurringeventwarning'] = 'To jest zdarzenie powtarzalne. Czy chcesz zmienić bieżące zdarzenie, bieżące i przyszłe, wszystkie, a może zapisać je jako nowe zdarzenie?';
|
||||
$labels['removerecurringeventwarning'] = 'Jest to zdarzenie cykliczne. Czy chcesz usunąć wyłącznie bieżące zdarzenie i jego przyszłe wystąpienia, czy wszystkie wystąpienia tego zdarzenia?';
|
||||
$labels['removerecurringallonly'] = 'Jest to zdarzenie cykliczne. Jako uczestnik, możesz jedynie usunąć całe zdarzenie ze wszystkimi jego wystąpieniami.';
|
||||
$labels['currentevent'] = 'Bieżące';
|
||||
$labels['futurevents'] = 'Przyszłe';
|
||||
$labels['allevents'] = 'Wszystkie';
|
||||
$labels['saveasnew'] = 'Zapisz jako nowy';
|
||||
|
||||
$labels['saveasnew'] = 'Zapisz jako nowe';
|
||||
$labels['birthdays'] = 'Uruodziny';
|
||||
$labels['birthdayscalendar'] = 'Kalendarz Urodzin';
|
||||
$labels['displaybirthdayscalendar'] = 'Wyświetl kalendarz urodzin';
|
||||
$labels['birthdayscalendarsources'] = 'Z tych książek adresowych';
|
||||
$labels['birthdayeventtitle'] = 'Urodziny $name\'s';
|
||||
$labels['birthdayage'] = 'Wiek $age';
|
||||
$labels['eventchangelog'] = 'Historia zmian';
|
||||
$labels['eventdiff'] = 'Zmiany od wersji $rev';
|
||||
$labels['revision'] = 'Wersja';
|
||||
$labels['user'] = 'Użytkownik';
|
||||
$labels['operation'] = 'Akcja';
|
||||
$labels['actionappend'] = 'Zapisane';
|
||||
$labels['actionmove'] = 'Przeniesione';
|
||||
$labels['actiondelete'] = 'Usunięte';
|
||||
$labels['compare'] = 'Porównaj';
|
||||
$labels['showrevision'] = 'Pokaż tą wersję';
|
||||
$labels['restore'] = 'Przywróć tą wersję';
|
||||
$labels['eventnotfound'] = 'Nie udało się wczytać zdarzenia';
|
||||
$labels['eventchangelognotavailable'] = 'Historia zmian jest niedostępna dla tego zdarzenia';
|
||||
$labels['eventdiffnotavailable'] = 'Nie można porównać wybranych wersji';
|
||||
$labels['eventrestoreconfirm'] = 'Czy na pewno chcesz przywrócić wersję $rev tego zdarzenia? Bierzące zdarzenie zostanie zastąpione starszą wersją.';
|
||||
$labels['arialabelminical'] = 'Wybór daty kalendarza';
|
||||
$labels['arialabelcalendarview'] = 'Podgląd kalendarza';
|
||||
$labels['arialabelsearchform'] = 'Formularz wyszukiwania zdarzeń';
|
||||
$labels['arialabelquicksearchbox'] = 'Fraza wyszukiwania zdarzeń';
|
||||
$labels['arialabelcalsearchform'] = 'Formularz wyszukiwania kalendarzy';
|
||||
$labels['calendaractions'] = 'Akcje kalendarzy';
|
||||
$labels['arialabeleventattendees'] = 'Lista uczestników zdarzenia';
|
||||
$labels['arialabeleventresources'] = 'Lista zasobów zdarzenia';
|
||||
$labels['arialabelresourcesearchform'] = 'Formularz wyszukiwania zasobów';
|
||||
$labels['arialabelresourceselection'] = 'Dostępne zasoby';
|
||||
?>
|
||||
|
|
|
@ -1,38 +1,224 @@
|
|||
<?php
|
||||
/**
|
||||
* RoundCube Calendar
|
||||
* Localizations for Kolab Calendar plugin
|
||||
*
|
||||
* Plugin to add a calendar to RoundCube.
|
||||
* Copyright (C) 2014, Kolab Systems AG
|
||||
*
|
||||
* @version 0.2 BETA 2
|
||||
* @author Lazlo Westerhof
|
||||
* @url http://rc-calendar.lazlo.me
|
||||
* @licence GNU GPL
|
||||
* @copyright (c) 2010 Lazlo Westerhof - Netherlands
|
||||
*
|
||||
**/
|
||||
|
||||
$labels = array();
|
||||
|
||||
// config
|
||||
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
|
||||
*/
|
||||
$labels['default_view'] = 'Visualização padrão';
|
||||
$labels['time_format'] = 'Formato da hora';
|
||||
$labels['timeslots'] = 'Caixas de tempo por hora';
|
||||
$labels['timeslots'] = 'Time slots per hour';
|
||||
$labels['first_day'] = 'Primeiro dia da semana';
|
||||
|
||||
// calendar
|
||||
$labels['first_hour'] = 'Primeira hora a mostrar';
|
||||
$labels['workinghours'] = 'Horário de trabalho';
|
||||
$labels['add_category'] = 'Adicionar categoria';
|
||||
$labels['remove_category'] = 'Remover categoria';
|
||||
$labels['defaultcalendar'] = 'Criar novos eventos em';
|
||||
$labels['eventcoloring'] = 'Coloração de evento';
|
||||
$labels['coloringmode0'] = 'De acordo com o calendário';
|
||||
$labels['coloringmode1'] = 'De acordo com a categoria';
|
||||
$labels['coloringmode2'] = 'Calendário para esboço, categoria para conteúdo';
|
||||
$labels['coloringmode3'] = 'Categoria para esboço, calendário para conteúdo';
|
||||
$labels['calendar'] = 'Calendário';
|
||||
$labels['calendars'] = 'Calendários';
|
||||
$labels['category'] = 'Categoria';
|
||||
$labels['categories'] = 'Categorias';
|
||||
$labels['createcalendar'] = 'Criar novo calendário';
|
||||
$labels['editcalendar'] = 'Editar propriedades do calendário';
|
||||
$labels['name'] = 'Nome';
|
||||
$labels['color'] = 'Cor';
|
||||
$labels['day'] = 'Dia';
|
||||
$labels['week'] = 'Semana';
|
||||
$labels['month'] = 'Mês';
|
||||
$labels['agenda'] = 'Agenda';
|
||||
$labels['new'] = 'Novo';
|
||||
$labels['new_event'] = 'Novo evento';
|
||||
$labels['edit_event'] = 'Editar evento';
|
||||
$labels['edit'] = 'Editar';
|
||||
$labels['save'] = 'Gravar';
|
||||
$labels['remove'] = 'Remover';
|
||||
$labels['removelist'] = 'Remove from list';
|
||||
$labels['cancel'] = 'Cancelar';
|
||||
$labels['select'] = 'Selecionar';
|
||||
$labels['print'] = 'Imprimir';
|
||||
$labels['printtitle'] = 'Imprimir calendários';
|
||||
$labels['title'] = 'Sumário';
|
||||
$labels['description'] = 'Descrição';
|
||||
$labels['all-day'] = 'dia-a-dia';
|
||||
$labels['export'] = 'Exportar para ICS';
|
||||
$labels['category'] = 'Categoria';
|
||||
$labels['all-day'] = 'dia todo';
|
||||
$labels['export'] = 'Exportar';
|
||||
$labels['exporttitle'] = 'Exportar para iCalendar';
|
||||
$labels['exportrange'] = 'Eventos de';
|
||||
$labels['exportattachments'] = 'With attachments';
|
||||
$labels['customdate'] = 'Custom date';
|
||||
$labels['location'] = 'Local';
|
||||
$labels['url'] = 'URL';
|
||||
$labels['date'] = 'Data';
|
||||
$labels['start'] = 'Início';
|
||||
$labels['starttime'] = 'Start time';
|
||||
$labels['end'] = 'Término';
|
||||
$labels['repeat'] = 'Repetir';
|
||||
$labels['selectdate'] = 'Escolha a data';
|
||||
$labels['freebusy'] = 'Mostrar me como';
|
||||
$labels['free'] = 'Disponível';
|
||||
$labels['busy'] = 'Ocupado';
|
||||
$labels['outofoffice'] = 'Fora de escritório';
|
||||
$labels['tentative'] = 'Tentativa';
|
||||
$labels['status'] = 'Situação';
|
||||
$labels['status-confirmed'] = 'Confirmado';
|
||||
$labels['status-cancelled'] = 'Cancalado';
|
||||
$labels['priority'] = 'Prioridade';
|
||||
$labels['sensitivity'] = 'Privacidade';
|
||||
$labels['public'] = 'público';
|
||||
$labels['private'] = 'privado';
|
||||
$labels['confidential'] = 'confidencial';
|
||||
$labels['links'] = 'Reference';
|
||||
$labels['alarms'] = 'Lembrete';
|
||||
$labels['comment'] = 'Comentário';
|
||||
$labels['created'] = 'Created';
|
||||
$labels['changed'] = 'Last Modified';
|
||||
$labels['unknown'] = 'Desconhecido';
|
||||
$labels['eventoptions'] = 'Opções';
|
||||
$labels['generated'] = 'gerado em';
|
||||
$labels['removelink'] = 'Remove email reference';
|
||||
$labels['printdescriptions'] = 'Descrições de impressão';
|
||||
$labels['parentcalendar'] = 'Inserir dentro';
|
||||
$labels['searchearlierdates'] = '« Procurar por eventos anteriores';
|
||||
$labels['searchlaterdates'] = 'Procurar por eventos posteriores »';
|
||||
$labels['andnmore'] = '$nr mais...';
|
||||
$labels['togglerole'] = 'Clique para alternar o papel';
|
||||
$labels['createfrommail'] = 'Salvar como evento';
|
||||
$labels['importevents'] = 'Importar eventos';
|
||||
$labels['importrange'] = 'Eventos de';
|
||||
$labels['onemonthback'] = '1 mês atrás';
|
||||
$labels['nmonthsback'] = '$nr meses atrás';
|
||||
$labels['showurl'] = 'Mostrar URL do calendário';
|
||||
$labels['showurldescription'] = 'Use o seguinte endereço para acessar (somente leitura) seu calendário em outras aplicações. Você pode copiar e colar este endereço em qualquer software de calendário que suporte o formato iCal.';
|
||||
$labels['caldavurldescription'] = 'Copy this address to a <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a> client application (e.g. Evolution or Mozilla Thunderbird) to fully synchronize this specific calendar with your computer or mobile device.';
|
||||
$labels['findcalendars'] = 'Buscar calendários...';
|
||||
$labels['searchterms'] = 'Search terms';
|
||||
$labels['calsearchresults'] = 'Calendários disponíveis';
|
||||
$labels['calendarsubscribe'] = 'Listar permanentemente';
|
||||
$labels['listrange'] = 'Intervalo para exibir:';
|
||||
$labels['listsections'] = 'Dividir em:';
|
||||
$labels['smartsections'] = 'Seções inteligentes';
|
||||
$labels['until'] = 'até';
|
||||
$labels['today'] = 'Hoje';
|
||||
$labels['tomorrow'] = 'Amanhã';
|
||||
$labels['thisweek'] = 'Esta semana';
|
||||
$labels['nextweek'] = 'Próxima semana';
|
||||
$labels['thismonth'] = 'Este mês';
|
||||
$labels['nextmonth'] = 'Próximo mês';
|
||||
$labels['weekofyear'] = 'Semana';
|
||||
$labels['pastevents'] = 'Passado';
|
||||
$labels['futureevents'] = 'Futuro';
|
||||
$labels['showalarms'] = 'Show reminders';
|
||||
$labels['defaultalarmtype'] = 'Configuração de lembrete padrão';
|
||||
$labels['defaultalarmoffset'] = 'Horário padrão de lembrete';
|
||||
$labels['attendee'] = 'Participante';
|
||||
$labels['role'] = 'Papel';
|
||||
$labels['availability'] = 'Disp.';
|
||||
$labels['confirmstate'] = 'Situação';
|
||||
$labels['addattendee'] = 'Adicionar participante';
|
||||
$labels['roleorganizer'] = 'Organizador';
|
||||
$labels['rolerequired'] = 'Obrigatório';
|
||||
$labels['roleoptional'] = 'Opcional';
|
||||
$labels['rolechair'] = 'Chair';
|
||||
$labels['rolenonparticipant'] = 'Absent';
|
||||
$labels['cutypeindividual'] = 'Individual';
|
||||
$labels['cutypegroup'] = 'Grupo';
|
||||
$labels['cutyperesource'] = 'Recurso';
|
||||
$labels['cutyperoom'] = 'Room';
|
||||
$labels['availfree'] = 'Disponível';
|
||||
$labels['availbusy'] = 'Ocupado';
|
||||
$labels['availunknown'] = 'Desconhecido';
|
||||
$labels['availtentative'] = 'Tentativa';
|
||||
$labels['availoutofoffice'] = 'Fora de escritório';
|
||||
$labels['delegatedto'] = 'Delegado para:';
|
||||
$labels['delegatedfrom'] = 'Delegado de:';
|
||||
$labels['scheduletime'] = 'Procurar disponibilidade';
|
||||
$labels['sendinvitations'] = 'Enviar convites';
|
||||
$labels['sendnotifications'] = 'Avisar os participantes sobre as modificações';
|
||||
$labels['sendcancellation'] = 'Avisar os participantes sobre o cancelamento do evento';
|
||||
$labels['onlyworkinghours'] = 'Procurar disponibilidade dentro do meu horário de trabalho';
|
||||
$labels['reqallattendees'] = 'Obrigatório/todos os participantes';
|
||||
$labels['prevslot'] = 'Espaço anterior';
|
||||
$labels['nextslot'] = 'Próximo espaço';
|
||||
$labels['noslotfound'] = 'Incapaz de encontrar um horário disponível';
|
||||
$labels['invitationsubject'] = 'Você foi convidado para "$title"';
|
||||
$labels['invitationmailbody'] = "*\$title*\n\nQuando: \$date\n\nConvidados: \$attendees\n\nSegue em anexo um arquivo iCalendar com todos os detalhes do evento na qual você pode importar para sua aplicação de calendário.";
|
||||
$labels['invitationattendlinks'] = "No caso do seu cliente de e-mail não suportar requisições iTIP você pode usar o link a seguir para aceitar ou recusar este convite:\n\$url";
|
||||
$labels['eventupdatesubject'] = '"$title" foi atualizado';
|
||||
$labels['eventupdatesubjectempty'] = 'Um evento do seu interesse foi atualizado';
|
||||
$labels['eventupdatemailbody'] = "*\$title*\n\nQuando: \$date\n\nConvidados: \$attendees\n\nSegue em anexo um arquivo iCalendar com os detalhes atualizados do evento na qual você pode importar para sua aplicação de calendário.";
|
||||
$labels['eventcancelsubject'] = '"$title" foi cancelado';
|
||||
$labels['eventcancelmailbody'] = "*\$title*\n\nQuando: \$date\n\nConvidados: \$attendees\n\nO evento foi cancelado por \$organizer.\n\nSegue em anexo um arquivo iCalendar com os detalhes atualizados do evento.";
|
||||
$labels['itipobjectnotfound'] = 'O evento referenciado por esta mensagem não foi encontrado em seu calendário.';
|
||||
$labels['itipmailbodyaccepted'] = "\$sender aceitou o convite para o seguinte evento:\n\n*\$title*\n\nQuando: \$date\n\nConvidados: \$attendees";
|
||||
$labels['itipmailbodytentative'] = "\$sender aceitou como tentativa o convite para o seguinte evento:\n\n*\$title*\n\nQuando: \$date\n\nConvidados: \$attendees";
|
||||
$labels['itipmailbodydeclined'] = "\$sender recusou o convite para o seguinte evento:\n\n*\$title*\n\nQuando: \$date\n\nConvidados: \$attendees";
|
||||
$labels['itipmailbodycancel'] = "\$sender rejeitou sua participação no seguinte evento:\n\n*\$title*\n\nQuando: \$date";
|
||||
$labels['itipdeclineevent'] = 'Você deseja recusar o convite para este evento?';
|
||||
$labels['declinedeleteconfirm'] = 'Do you also want to delete this declined event from your calendar?';
|
||||
$labels['itipcomment'] = 'Invitation/notification comment';
|
||||
$labels['notanattendee'] = 'Você não está listado como um participante deste evento';
|
||||
$labels['eventcancelled'] = 'O evento foi cancelado';
|
||||
$labels['saveincalendar'] = 'salvar em';
|
||||
$labels['updatemycopy'] = 'Atualize em meu calendário';
|
||||
$labels['savetocalendar'] = 'Gravar no calendário';
|
||||
$labels['resource'] = 'Recurso';
|
||||
$labels['addresource'] = 'Livro de recursos';
|
||||
$labels['findresources'] = 'Encontrar recursos';
|
||||
$labels['resourcedetails'] = 'Detalhes';
|
||||
$labels['resourceavailability'] = 'Disponibilidade';
|
||||
$labels['resourceowner'] = 'Dono';
|
||||
$labels['resourceadded'] = 'O recurso foi adicionado ao seu evento';
|
||||
$labels['tabsummary'] = 'Sumário';
|
||||
$labels['tabrecurrence'] = 'Repetição';
|
||||
$labels['tabattendees'] = 'Participantes';
|
||||
$labels['tabresources'] = 'Recursos';
|
||||
$labels['tabattachments'] = 'Anexos';
|
||||
$labels['tabsharing'] = 'Compartilhamento';
|
||||
$labels['deleteobjectconfirm'] = 'Você realmente deseja remover este evento?';
|
||||
$labels['deleteventconfirm'] = 'Você realmente deseja remover este evento?';
|
||||
$labels['deletecalendarconfirm'] = 'Você realmente deseja excluir este calendário com todos os seus eventos?';
|
||||
$labels['deletecalendarconfirmrecursive'] = 'Do you really want to delete this calendar with all its events and sub-calendars?';
|
||||
$labels['savingdata'] = 'Salvando dados...';
|
||||
$labels['errorsaving'] = 'Falha ao salvar as modificações.';
|
||||
$labels['operationfailed'] = 'A operação requisitada falhou.';
|
||||
$labels['invalideventdates'] = 'Datas inválidas inseridas! Por favor verifique a inserção.';
|
||||
$labels['invalidcalendarproperties'] = 'Propriedades de calendário inválidas! Por favor defina um nome válido.';
|
||||
$labels['searchnoresults'] = 'Nenhum evento encontrado nos calendários selecionados.';
|
||||
$labels['successremoval'] = 'O evento foi excluído com sucesso.';
|
||||
$labels['successrestore'] = 'O evento foi restaurado com sucesso.';
|
||||
$labels['errornotifying'] = 'Falha ao enviar notificações para os participantes do evento.';
|
||||
$labels['errorimportingevent'] = 'Falha ao importar evento';
|
||||
$labels['importwarningexists'] = 'Uma cópia deste evento já existe em seu calendário.';
|
||||
$labels['newerversionexists'] = 'Já existe uma nova versão deste evento! Abortado.';
|
||||
$labels['nowritecalendarfound'] = 'Nenhum calendário encontrado para salvar o evento';
|
||||
$labels['importedsuccessfully'] = 'O evento foi adicionado com sucesso em \'$calendar\'';
|
||||
$labels['updatedsuccessfully'] = 'O evento foi atualizado com sucesso em \'$calendar\'.';
|
||||
$labels['attendeupdateesuccess'] = 'O status do participante foi atualizado com sucesso.';
|
||||
$labels['itipsendsuccess'] = 'Convite enviado aos participantes.';
|
||||
$labels['itipresponseerror'] = 'Falha ao enviar a resposta para este convite de evento';
|
||||
$labels['itipinvalidrequest'] = 'Este convite não é mais válido';
|
||||
$labels['sentresponseto'] = 'Resposta de convite enviada com sucesso para $mailto';
|
||||
$labels['localchangeswarning'] = 'You are about to make changes that will only be reflected on your calendar and not be sent to the organizer of the event.';
|
||||
$labels['importsuccess'] = 'Importado com sucesso $nr eventos';
|
||||
$labels['importnone'] = 'Não há eventos a serem importados';
|
||||
$labels['importerror'] = 'Ocorreu um erro na importação';
|
||||
$labels['aclnorights'] = 'Você não tem permissão de administrador neste calendário.';
|
||||
$labels['changeeventconfirm'] = 'Trocar evento';
|
||||
$labels['changerecurringeventwarning'] = 'Este é um evento com repetição. Você gostaria de editar o evento atual somente, estas e todas as futuras ocorrências ou salvar este como um novo evento?';
|
||||
$labels['currentevent'] = 'Atual';
|
||||
$labels['futurevents'] = 'Futuro';
|
||||
$labels['allevents'] = 'Todos';
|
||||
$labels['saveasnew'] = 'Salvar como novo';
|
||||
$labels['birthdays'] = 'Birthdays';
|
||||
$labels['birthdayscalendar'] = 'Birthdays Calendar';
|
||||
$labels['displaybirthdayscalendar'] = 'Display birthdays calendar';
|
||||
$labels['birthdayscalendarsources'] = 'From these address books';
|
||||
$labels['birthdayeventtitle'] = '$name\'s Birthday';
|
||||
$labels['birthdayage'] = 'Age $age';
|
||||
$labels['user'] = 'Usuário';
|
||||
$labels['actiondelete'] = 'Deletado';
|
||||
?>
|
||||
|
|
275
localization/pt_PT.inc
Normal file
|
@ -0,0 +1,275 @@
|
|||
<?php
|
||||
/**
|
||||
* Localizations for Kolab Calendar plugin
|
||||
*
|
||||
* Copyright (C) 2014, Kolab Systems AG
|
||||
*
|
||||
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
|
||||
*/
|
||||
$labels['default_view'] = 'Visualização padrão';
|
||||
$labels['time_format'] = 'Formato da hora';
|
||||
$labels['timeslots'] = 'Entradas por hora';
|
||||
$labels['first_day'] = 'Primeiro dia da semana';
|
||||
$labels['first_hour'] = 'Primeira hora a mostrar';
|
||||
$labels['workinghours'] = 'Horário de trabalho';
|
||||
$labels['add_category'] = 'Adicionar categoria';
|
||||
$labels['remove_category'] = 'Remover categoria';
|
||||
$labels['defaultcalendar'] = 'Criar novos eventos em';
|
||||
$labels['eventcoloring'] = 'Cores dos eventos';
|
||||
$labels['coloringmode0'] = 'De acordo com o calendário';
|
||||
$labels['coloringmode1'] = 'De acordo com a categoria';
|
||||
$labels['coloringmode2'] = 'Calendário para esboço, categoria para conteúdo';
|
||||
$labels['coloringmode3'] = 'Categoria para esboço, calendário para conteúdo';
|
||||
$labels['afternothing'] = 'Manter';
|
||||
$labels['aftertrash'] = 'Enviar para o lixo';
|
||||
$labels['afterdelete'] = 'Eliminar a mensagem';
|
||||
$labels['afterflagdeleted'] = 'Marcar como eliminada';
|
||||
$labels['aftermoveto'] = 'Mover para...';
|
||||
$labels['itipoptions'] = 'Convites de eventos';
|
||||
$labels['afteraction'] = 'Depois do processamento de um convite ou mensagem de alteração';
|
||||
$labels['calendar'] = 'Calendário';
|
||||
$labels['calendars'] = 'Calendários';
|
||||
$labels['category'] = 'Categoria';
|
||||
$labels['categories'] = 'Categorias';
|
||||
$labels['createcalendar'] = 'Criar um novo calendário';
|
||||
$labels['editcalendar'] = 'Alterar propriedades do calendário';
|
||||
$labels['name'] = 'Nome';
|
||||
$labels['color'] = 'Cor';
|
||||
$labels['day'] = 'Dia';
|
||||
$labels['week'] = 'Semana';
|
||||
$labels['month'] = 'Mês';
|
||||
$labels['agenda'] = 'Agenda';
|
||||
$labels['new'] = 'Novo';
|
||||
$labels['new_event'] = 'Novo evento';
|
||||
$labels['edit_event'] = 'Alterar evento';
|
||||
$labels['edit'] = 'Alterar';
|
||||
$labels['save'] = 'Guardar';
|
||||
$labels['removelist'] = 'Remover da lista';
|
||||
$labels['cancel'] = 'Cancelar';
|
||||
$labels['select'] = 'Selecionar';
|
||||
$labels['print'] = 'Imprimir';
|
||||
$labels['printtitle'] = 'Imprimir calendários';
|
||||
$labels['title'] = 'Sumário';
|
||||
$labels['description'] = 'Descrição';
|
||||
$labels['all-day'] = 'dia todo';
|
||||
$labels['export'] = 'Exportar';
|
||||
$labels['exporttitle'] = 'Exportar para iCalendar';
|
||||
$labels['exportrange'] = 'Eventos de';
|
||||
$labels['exportattachments'] = 'Incluir anexos';
|
||||
$labels['customdate'] = 'Definir data';
|
||||
$labels['location'] = 'Local';
|
||||
$labels['url'] = 'Endereço web';
|
||||
$labels['date'] = 'Data';
|
||||
$labels['start'] = 'Início';
|
||||
$labels['starttime'] = 'Hora de início';
|
||||
$labels['end'] = 'Fim';
|
||||
$labels['endtime'] = 'Hora de fim';
|
||||
$labels['repeat'] = 'Repetir';
|
||||
$labels['selectdate'] = 'Escolher data';
|
||||
$labels['freebusy'] = 'Mostrar-me como';
|
||||
$labels['free'] = 'Livre';
|
||||
$labels['busy'] = 'Ocupado';
|
||||
$labels['outofoffice'] = 'Ausente';
|
||||
$labels['tentative'] = 'Tentativa';
|
||||
$labels['mystatus'] = 'O meu estado';
|
||||
$labels['status'] = 'Estado';
|
||||
$labels['status-confirmed'] = 'Confirmado';
|
||||
$labels['status-cancelled'] = 'Cancelado';
|
||||
$labels['priority'] = 'Prioridade';
|
||||
$labels['sensitivity'] = 'Privacidade';
|
||||
$labels['public'] = 'público';
|
||||
$labels['private'] = 'privado';
|
||||
$labels['confidential'] = 'confidencial';
|
||||
$labels['links'] = 'Referência';
|
||||
$labels['alarms'] = 'Lembrete';
|
||||
$labels['comment'] = 'Comentário';
|
||||
$labels['created'] = 'Criado em';
|
||||
$labels['changed'] = 'Alterado em';
|
||||
$labels['unknown'] = 'Desconhecido';
|
||||
$labels['eventoptions'] = 'Opções';
|
||||
$labels['generated'] = 'produzido a';
|
||||
$labels['eventhistory'] = 'Histórico';
|
||||
$labels['removelink'] = 'Remover referência de email ';
|
||||
$labels['printdescriptions'] = 'Descrições de impressão';
|
||||
$labels['parentcalendar'] = 'Inserir dentro';
|
||||
$labels['searchearlierdates'] = '« Procurar eventos anteriores';
|
||||
$labels['searchlaterdates'] = 'Procurar eventos posteriores »';
|
||||
$labels['andnmore'] = '$nr mais...';
|
||||
$labels['togglerole'] = 'Clique para alternar o papel';
|
||||
$labels['createfrommail'] = 'Salvar como evento';
|
||||
$labels['importevents'] = 'Importar eventos';
|
||||
$labels['importrange'] = 'Eventos de';
|
||||
$labels['onemonthback'] = '1 mês atrás';
|
||||
$labels['nmonthsback'] = '$nr meses atrás';
|
||||
$labels['showurl'] = 'Mostrar URL do calendário';
|
||||
$labels['showurldescription'] = 'Use o seguinte endereço para obter acesso (somente leitura) ao seu calendário com outras aplicações. Para isso pode copiar e colar este endereço em qualquer software que suporte o formato iCal.';
|
||||
$labels['caldavurldescription'] = 'Para sincronizar este calendário com o seu computador ou dispositivos móveis deverá copiar este endereço <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a> para a aplicação cliente. (ex. Evolution ou Mozilla Thunderbird)';
|
||||
$labels['findcalendars'] = 'Procurar calendários...';
|
||||
$labels['searchterms'] = 'Procurar termos';
|
||||
$labels['calsearchresults'] = 'Calendários disponíveis';
|
||||
$labels['calendarsubscribe'] = 'Listar sempre';
|
||||
$labels['nocalendarsfound'] = 'Não foram encontrados calendários';
|
||||
$labels['nrcalendarsfound'] = '$nr calendários encontrados';
|
||||
$labels['quickview'] = 'Só mostrar este calendário';
|
||||
$labels['invitationspending'] = 'Convites pendentes';
|
||||
$labels['invitationsdeclined'] = 'Convites recusados';
|
||||
$labels['changepartstat'] = 'Mudar estado de participante';
|
||||
$labels['rsvpcomment'] = 'Mensagem de convite';
|
||||
$labels['listrange'] = 'Intervalo para exibir:';
|
||||
$labels['listsections'] = 'Dividir em:';
|
||||
$labels['smartsections'] = 'Seções inteligentes';
|
||||
$labels['until'] = 'até';
|
||||
$labels['today'] = 'Hoje';
|
||||
$labels['tomorrow'] = 'Amanhã';
|
||||
$labels['thisweek'] = 'Esta semana';
|
||||
$labels['nextweek'] = 'Próxima semana';
|
||||
$labels['prevweek'] = 'Semana anterior';
|
||||
$labels['thismonth'] = 'Este mês';
|
||||
$labels['nextmonth'] = 'Próximo mês';
|
||||
$labels['weekofyear'] = 'Semana';
|
||||
$labels['pastevents'] = 'Passado';
|
||||
$labels['futureevents'] = 'Futuro';
|
||||
$labels['showalarms'] = 'Mostrar lembretes';
|
||||
$labels['defaultalarmtype'] = 'Configuração padrão de lembrete';
|
||||
$labels['defaultalarmoffset'] = 'Horário padrão de lembrete';
|
||||
$labels['attendee'] = 'Participante';
|
||||
$labels['role'] = 'Papel';
|
||||
$labels['availability'] = 'Disp.';
|
||||
$labels['confirmstate'] = 'Estado';
|
||||
$labels['addattendee'] = 'Adicionar participante';
|
||||
$labels['roleorganizer'] = 'Organizador';
|
||||
$labels['rolerequired'] = 'Obrigatório';
|
||||
$labels['roleoptional'] = 'Facultativo';
|
||||
$labels['rolechair'] = 'Responsável';
|
||||
$labels['rolenonparticipant'] = 'Ausente';
|
||||
$labels['cutypeindividual'] = 'Individual';
|
||||
$labels['cutypegroup'] = 'Grupo';
|
||||
$labels['cutyperesource'] = 'Recurso';
|
||||
$labels['cutyperoom'] = 'Sala';
|
||||
$labels['availfree'] = 'Disponível';
|
||||
$labels['availbusy'] = 'Ocupado';
|
||||
$labels['availunknown'] = 'Desconhecido';
|
||||
$labels['availtentative'] = 'Tentativa';
|
||||
$labels['availoutofoffice'] = 'Ausente';
|
||||
$labels['delegatedto'] = 'Delegado a:';
|
||||
$labels['delegatedfrom'] = 'Delegado de:';
|
||||
$labels['scheduletime'] = 'Procurar disponibilidade';
|
||||
$labels['sendinvitations'] = 'Enviar convites';
|
||||
$labels['sendnotifications'] = 'Avisar os participantes sobre as alterações';
|
||||
$labels['sendcancellation'] = 'Avisar os participantes sobre o cancelamento do evento';
|
||||
$labels['onlyworkinghours'] = 'Procurar disponibilidade dentro do meu horário de trabalho';
|
||||
$labels['reqallattendees'] = 'Necessário/todos os participantes';
|
||||
$labels['prevslot'] = 'Espaço anterior';
|
||||
$labels['nextslot'] = 'Próximo espaço';
|
||||
$labels['suggestedslot'] = 'Espaço sugerido';
|
||||
$labels['noslotfound'] = 'Incapaz de encontrar um horário disponível';
|
||||
$labels['invitationsubject'] = 'Foi convidado para "$title"';
|
||||
$labels['invitationmailbody'] = "*\$title*\n\nQuando: \$date\n\nConvidados: \$attendees\n\nSegue em anexo um arquivo iCalendar com todos os detalhes de um evento, o qual pode importar para o seu calendário.";
|
||||
$labels['invitationattendlinks'] = "No caso do seu cliente de e-mail não suportar pedidos do tipo iTIP, pode usar o seguinte link para aceitar ou recusar este convite:\n\$url";
|
||||
$labels['eventupdatesubject'] = '"$title" foi atualizado.';
|
||||
$labels['eventupdatesubjectempty'] = 'Um evento do seu interesse foi atualizado';
|
||||
$labels['eventupdatemailbody'] = "*\$title*\n\nQuando: \$date\n\nConvidados: \$attendees\n\nSegue em anexo um arquivo iCalendar atualizado com os detalhes de um evento, o qual pode importar para o seu calendário.";
|
||||
$labels['eventcancelsubject'] = '"$title" foi cancelado.';
|
||||
$labels['eventcancelmailbody'] = "*\$title*\n\nQuando: \$date\n\nConvidados: \$attendees\n\nO evento foi cancelado por \$organizer.\n\nSegue em anexo um arquivo iCalendar com os detalhes atualizados do evento.";
|
||||
$labels['itipobjectnotfound'] = 'O evento citado nesta mensagem não foi encontrado no seu calendário.';
|
||||
$labels['itipmailbodyaccepted'] = "\$sender aceitou o convite para o seguinte evento:\n\n*\$title*\n\nQuando: \$date\n\nConvidados: \$attendees";
|
||||
$labels['itipmailbodytentative'] = "\$sender aceitou o convite como \"tentativa\" para o seguinte evento:\n\n*\$title*\n\nQuando: \$date\n\nConvidados: \$attendees";
|
||||
$labels['itipmailbodydeclined'] = "\$sender recusou o convite para o seguinte evento:\n\n*\$title*\n\nQuando: \$date\n\nConvidados: \$attendees";
|
||||
$labels['itipmailbodycancel'] = "\$sender rejeitou a sua participação no seguinte evento:\n\n*\$title*\n\nQuando: \$date";
|
||||
$labels['itipmailbodydelegated'] = "\$sender delegou a participação no seguinte evento:\n\n*\$title*\n\nWhen: \$date";
|
||||
$labels['itipmailbodydelegatedto'] = "\$sender delegou a sua participação no seguinte evento:\n\n*\$title*\n\nWhen: \$date";
|
||||
$labels['itipdeclineevent'] = 'Deseja recusar o convite para este evento?';
|
||||
$labels['declinedeleteconfirm'] = 'Também deseja apagar o evento recusado do seu calendário?';
|
||||
$labels['itipcomment'] = 'Observações — Convite/notificação';
|
||||
$labels['itipcommenttitle'] = 'Estas observações serão enviadas com o convite/notificação aos participantes.';
|
||||
$labels['notanattendee'] = 'Não está listado como participante neste evento';
|
||||
$labels['eventcancelled'] = 'O evento foi cancelado';
|
||||
$labels['saveincalendar'] = 'guardar em';
|
||||
$labels['updatemycopy'] = 'Atualizar no meu calendário';
|
||||
$labels['savetocalendar'] = 'Guardar no calendário';
|
||||
$labels['openpreview'] = 'Verificar calendário';
|
||||
$labels['noearlierevents'] = 'Sem eventos anteriores';
|
||||
$labels['nolaterevents'] = 'Sem eventos posteriores';
|
||||
$labels['resource'] = 'Recurso';
|
||||
$labels['addresource'] = 'Livro de recursos';
|
||||
$labels['findresources'] = 'Encontrar recursos';
|
||||
$labels['resourcedetails'] = 'Detalhes';
|
||||
$labels['resourceavailability'] = 'Disponibilidade';
|
||||
$labels['resourceowner'] = 'Dono';
|
||||
$labels['resourceadded'] = 'O recurso foi adicionado ao seu evento';
|
||||
$labels['tabsummary'] = 'Sumário';
|
||||
$labels['tabrecurrence'] = 'Repetição';
|
||||
$labels['tabattendees'] = 'Participantes';
|
||||
$labels['tabresources'] = 'Recursos';
|
||||
$labels['tabattachments'] = 'Anexos';
|
||||
$labels['tabsharing'] = 'Partilha';
|
||||
$labels['deleteobjectconfirm'] = 'Tem a certeza que quer eliminar este evento?';
|
||||
$labels['deleteventconfirm'] = 'Tem a certeza que quer eliminar este evento?';
|
||||
$labels['deletecalendarconfirm'] = 'Tem a certeza que quer eliminar este calendário e todos os seus eventos?';
|
||||
$labels['deletecalendarconfirmrecursive'] = 'Tem a certeza que quer eliminar este calendário com todos os seus eventos e sub-calendários?';
|
||||
$labels['savingdata'] = 'A guardar os dados...';
|
||||
$labels['errorsaving'] = 'Falha ao guardar as alterações.';
|
||||
$labels['operationfailed'] = 'A operação pedida falhou.';
|
||||
$labels['invalideventdates'] = 'As datas são inválidas! Por favor, verifique novamente.';
|
||||
$labels['invalidcalendarproperties'] = 'Propriedades de calendário inválidas! Por favor defina um nome válido.';
|
||||
$labels['searchnoresults'] = 'Nenhum evento encontrado nos calendários selecionados.';
|
||||
$labels['successremoval'] = 'O evento foi excluído com sucesso.';
|
||||
$labels['successrestore'] = 'O evento foi restaurado com sucesso.';
|
||||
$labels['errornotifying'] = 'Falha ao enviar notificações para os participantes do evento.';
|
||||
$labels['errorimportingevent'] = 'Falha ao importar evento';
|
||||
$labels['importwarningexists'] = 'Uma cópia deste evento já existe em seu calendário.';
|
||||
$labels['newerversionexists'] = 'Já existe uma nova versão deste evento! Abortado.';
|
||||
$labels['nowritecalendarfound'] = 'Nenhum calendário encontrado para salvar o evento';
|
||||
$labels['importedsuccessfully'] = 'O evento foi adicionado com sucesso em \'$calendar\'';
|
||||
$labels['updatedsuccessfully'] = 'O evento foi atualizado com sucesso em \'$calendar\'.';
|
||||
$labels['attendeupdateesuccess'] = 'O status do participante foi atualizado com sucesso.';
|
||||
$labels['itipsendsuccess'] = 'Convite enviado aos participantes.';
|
||||
$labels['itipresponseerror'] = 'Falha ao enviar a resposta para este convite de evento';
|
||||
$labels['itipinvalidrequest'] = 'Este convite já não é válido';
|
||||
$labels['sentresponseto'] = 'Resposta de convite enviada com sucesso para $mailto';
|
||||
$labels['localchangeswarning'] = 'As alterações que pretende efetuar só serão válidas no seu calendário e não serão enviadas ao organizador do evento.';
|
||||
$labels['importsuccess'] = 'Importado com sucesso $nr eventos';
|
||||
$labels['importnone'] = 'Não há eventos a serem importados';
|
||||
$labels['importerror'] = 'Ocorreu um erro na importação';
|
||||
$labels['aclnorights'] = 'Não tem permissão de administrador neste calendário.';
|
||||
$labels['changeeventconfirm'] = 'Alterar evento';
|
||||
$labels['removeeventconfirm'] = 'Eliminar evento';
|
||||
$labels['changerecurringeventwarning'] = 'Este evento é recorrente. Deseja alterar a ocorrência atual, esta e todas as futuras ocorrências ou guardar como um novo evento?';
|
||||
$labels['removerecurringeventwarning'] = 'Este evento é recorrente. Deseja eliminar a ocorrência atual, esta e todas as futuras ocorrências ou todas as ocorrências do evento?';
|
||||
$labels['removerecurringallonly'] = 'Este evento é recorrente. Como participante, só pode apagar apagar o evento com todas as ocorrências.';
|
||||
$labels['currentevent'] = 'Atual';
|
||||
$labels['futurevents'] = 'Futuro';
|
||||
$labels['allevents'] = 'Todos';
|
||||
$labels['saveasnew'] = 'Guardar como';
|
||||
$labels['birthdays'] = 'Aniversários';
|
||||
$labels['birthdayscalendar'] = 'Calendário de aniversários';
|
||||
$labels['displaybirthdayscalendar'] = 'Mostrar calendário de aniversários';
|
||||
$labels['birthdayscalendarsources'] = 'From these address books';
|
||||
$labels['birthdayeventtitle'] = 'Aniversário de $name';
|
||||
$labels['birthdayage'] = 'Idade $age';
|
||||
$labels['eventchangelog'] = 'Alterar histórico';
|
||||
$labels['eventdiff'] = 'Changes from revisions $rev';
|
||||
$labels['revision'] = 'Revisão';
|
||||
$labels['user'] = 'Utilizador';
|
||||
$labels['operation'] = 'Ação';
|
||||
$labels['actionappend'] = 'Guardado';
|
||||
$labels['actionmove'] = 'Movido';
|
||||
$labels['actiondelete'] = 'Eliminado';
|
||||
$labels['compare'] = 'Comparar';
|
||||
$labels['showrevision'] = 'Mostrar esta versão';
|
||||
$labels['restore'] = 'Restaurar esta versão';
|
||||
$labels['eventnotfound'] = 'Falha ao ler os dados do evento';
|
||||
$labels['eventchangelognotavailable'] = 'Não é possível alterar o histórico deste evento';
|
||||
$labels['eventdiffnotavailable'] = 'Não é possível comparar as revisões selecionadas';
|
||||
$labels['eventrestoreconfirm'] = 'Confirma o restauro da revisão $rev deste evento? Os dados atuais serão substituídos pelos da versão anterior.';
|
||||
$labels['arialabelminical'] = 'Seleção da data do calendário';
|
||||
$labels['arialabelcalendarview'] = 'Vista do calendário';
|
||||
$labels['arialabelsearchform'] = 'Quadro de pesquisa de eventos';
|
||||
$labels['arialabelquicksearchbox'] = 'Pesquisa de eventos';
|
||||
$labels['arialabelcalsearchform'] = 'Quadro de pesquisa de calendários';
|
||||
$labels['calendaractions'] = 'Ações do calendário';
|
||||
$labels['arialabeleventattendees'] = 'Lista de participantes do evento';
|
||||
$labels['arialabeleventresources'] = 'Lista de recursos para eventos';
|
||||
$labels['arialabelresourcesearchform'] = 'Quadro de pesquisa de recursos';
|
||||
$labels['arialabelresourceselection'] = 'Recursos disponíveis';
|
||||
?>
|
9
localization/ro.inc
Normal file
|
@ -0,0 +1,9 @@
|
|||
<?php
|
||||
/**
|
||||
* Localizations for Kolab Calendar plugin
|
||||
*
|
||||
* Copyright (C) 2014, Kolab Systems AG
|
||||
*
|
||||
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
|
||||
*/
|
||||
?>
|
|
@ -1,45 +1,33 @@
|
|||
<?php
|
||||
/**
|
||||
* RoundCube Calendar
|
||||
* Localizations for Kolab Calendar plugin
|
||||
*
|
||||
* Plugin to add a calendar to RoundCube.
|
||||
* Copyright (C) 2014, Kolab Systems AG
|
||||
*
|
||||
* @version 0.2 BETA 2
|
||||
* @author Lazlo Westerhof
|
||||
* @url http://rc-calendar.lazlo.me
|
||||
* @licence GNU GPL
|
||||
* @copyright (c) 2010 Lazlo Westerhof - Netherlands
|
||||
*
|
||||
**/
|
||||
|
||||
$labels = array();
|
||||
|
||||
// config
|
||||
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
|
||||
*/
|
||||
$labels['default_view'] = 'Вид по умолчанию';
|
||||
$labels['time_format'] = 'Формат времени';
|
||||
$labels['timeslots'] = 'Промежутков в час';
|
||||
$labels['first_day'] = 'Первый день недели';
|
||||
$labels['default_view'] = 'Вид по умолчанию';
|
||||
$labels['first_hour'] = 'Показывать начиная с';
|
||||
$labels['workinghours'] = 'Рабочие часы';
|
||||
$labels['add_category'] = 'Добавить категорию';
|
||||
$labels['remove_category'] = 'Удалить категорию';
|
||||
$labels['defaultcalendar'] = 'Создать новое событие в';
|
||||
$labels['defaultcalendar'] = 'Создавать новое событие в';
|
||||
$labels['eventcoloring'] = 'Цвет события';
|
||||
$labels['coloringmode0'] = 'Согласно цвета календаря';
|
||||
$labels['coloringmode1'] = 'Согласно цвета категории';
|
||||
$labels['coloringmode2'] = 'Календарь для внешних, категория для внутренних цветов';
|
||||
$labels['coloringmode3'] = 'Категория для внешних, календарь для внутренних цветов';
|
||||
|
||||
|
||||
// calendar
|
||||
$labels['coloringmode2'] = 'Цвет календаря для рамки, цвет категории для фона';
|
||||
$labels['coloringmode3'] = 'Цвет категории для рамки, цвет календаря для фона';
|
||||
$labels['afternothing'] = 'Ничего не делать';
|
||||
$labels['aftertrash'] = 'Переместить в корзину';
|
||||
$labels['afterdelete'] = 'Удалить сообщение';
|
||||
$labels['afterflagdeleted'] = 'Пометить как удалённое';
|
||||
$labels['aftermoveto'] = 'Переместить в...';
|
||||
$labels['itipoptions'] = 'Приглашения на события';
|
||||
$labels['afteraction'] = 'После того, как приглашение или сообщение о его изменении обработано';
|
||||
$labels['calendar'] = 'Календарь';
|
||||
$labels['day'] = 'День';
|
||||
$labels['week'] = 'Неделя';
|
||||
$labels['month'] = 'Месяц';
|
||||
$labels['new_event'] = 'Новое событие';
|
||||
$labels['edit_event'] = 'Изменить событие';
|
||||
$labels['save'] = 'Сохранить';
|
||||
$labels['remove'] = 'Удалить';
|
||||
$labels['cancel'] = 'Завершить';
|
||||
$labels['calendars'] = 'Календари';
|
||||
$labels['category'] = 'Категория';
|
||||
$labels['categories'] = 'Категории';
|
||||
|
@ -47,70 +35,103 @@ $labels['createcalendar'] = 'Создать новый календарь';
|
|||
$labels['editcalendar'] = 'Редактировать свойства календаря';
|
||||
$labels['name'] = 'Имя';
|
||||
$labels['color'] = 'Цвет';
|
||||
$labels['day'] = 'День';
|
||||
$labels['week'] = 'Неделя';
|
||||
$labels['month'] = 'Месяц';
|
||||
$labels['agenda'] = 'Список';
|
||||
$labels['new'] = 'Новый';
|
||||
$labels['new_event'] = 'Новое событие';
|
||||
$labels['edit_event'] = 'Изменить событие';
|
||||
$labels['edit'] = 'Редактировать';
|
||||
$labels['save'] = 'Сохранить';
|
||||
$labels['removelist'] = 'Удалить из списка';
|
||||
$labels['cancel'] = 'Отмена';
|
||||
$labels['select'] = 'Выбрать';
|
||||
$labels['print'] = 'Распечатать';
|
||||
$labels['printtitle'] = 'Распечатать календарь';
|
||||
$labels['title'] = 'Название мероприятия';
|
||||
$labels['title'] = 'Сводка';
|
||||
$labels['description'] = 'Описание';
|
||||
$labels['all-day'] = 'целый день';
|
||||
$labels['all-day'] = 'весь день';
|
||||
$labels['export'] = 'Экспорт';
|
||||
$labels['exporttitle'] = 'Экспорт в iCalendar';
|
||||
$labels['exportrange'] = 'События начиная с';
|
||||
$labels['exportattachments'] = 'С вложениями';
|
||||
$labels['customdate'] = 'Специальная дата';
|
||||
$labels['location'] = 'Место';
|
||||
$labels['url'] = 'URL';
|
||||
$labels['date'] = 'Дата';
|
||||
$labels['start'] = 'Начало';
|
||||
$labels['starttime'] = 'Время начала';
|
||||
$labels['end'] = 'Конец';
|
||||
$labels['endtime'] = 'Время окончания';
|
||||
$labels['repeat'] = 'Повторить';
|
||||
$labels['selectdate'] = 'Выберите дату';
|
||||
$labels['freebusy'] = 'Показать как';
|
||||
$labels['free'] = 'Свободен';
|
||||
$labels['busy'] = 'Занят';
|
||||
$labels['outofoffice'] = 'Вне офиса';
|
||||
$labels['tentative'] = 'Предварительно';
|
||||
$labels['tentative'] = 'Неопределённо';
|
||||
$labels['mystatus'] = 'Мой статус';
|
||||
$labels['status'] = 'Статус';
|
||||
$labels['status-confirmed'] = 'Подтвеждённый';
|
||||
$labels['status-cancelled'] = 'Отмененные';
|
||||
$labels['priority'] = 'Приоритет';
|
||||
$labels['sensitivity'] = 'Секретность';
|
||||
$labels['public'] = 'Общедоступная';
|
||||
$labels['private'] = 'Личная';
|
||||
$labels['confidential'] = 'Конфиденциальная';
|
||||
$labels['public'] = 'общедоступная';
|
||||
$labels['private'] = 'личная';
|
||||
$labels['confidential'] = 'конфиденциальная';
|
||||
$labels['links'] = 'Ссылка';
|
||||
$labels['alarms'] = 'Напоминание';
|
||||
$labels['generated'] = 'generated at';
|
||||
$labels['printdescriptions'] = 'Распечатать описание';
|
||||
$labels['comment'] = 'Комментарий';
|
||||
$labels['created'] = 'Создана';
|
||||
$labels['changed'] = 'Изменена';
|
||||
$labels['unknown'] = 'Неизвестно';
|
||||
$labels['eventoptions'] = 'Опции';
|
||||
$labels['generated'] = 'создан';
|
||||
$labels['eventhistory'] = 'История';
|
||||
$labels['removelink'] = 'Удалить ссылку на письмо';
|
||||
$labels['printdescriptions'] = 'Печатать описания';
|
||||
$labels['parentcalendar'] = 'Вставить внутри';
|
||||
$labels['searchearlierdates'] = 'В« Искать для ранних событий';
|
||||
$labels['searchlaterdates'] = 'Искать для поздних событий В»';
|
||||
$labels['searchearlierdates'] = '« Искать события раньше';
|
||||
$labels['searchlaterdates'] = 'Искать события позже »';
|
||||
$labels['andnmore'] = '$nr больше...';
|
||||
$labels['showmore'] = 'Показать больше...';
|
||||
$labels['togglerole'] = 'Кликните для переключения роли';
|
||||
$labels['createfrommail'] = 'Сохранить как событие';
|
||||
$labels['importevents'] = 'Импортировать события';
|
||||
$labels['importrange'] = 'События с';
|
||||
$labels['importrange'] = 'События начиная с';
|
||||
$labels['onemonthback'] = '1 месяц назад';
|
||||
$labels['nmonthsback'] = '$nr месяцев назад';
|
||||
$labels['nmonthsback'] = '$nr месяца(ев) назад';
|
||||
$labels['showurl'] = 'Показать URL календаря';
|
||||
$labels['showurldescription'] = 'Используйте следующий адрес для доступа к Вашему календарю из других приложений. Вы можете скопировать и вставить это в любое приложение которое поддерживает формат iCal.';
|
||||
|
||||
// agenda view
|
||||
$labels['showurldescription'] = 'Используйте следующий адрес для просмотра Вашего календаря из других приложений. Вы можете скопировать и вставить это в любое приложение которое поддерживает формат iCal.';
|
||||
$labels['caldavurldescription'] = 'Скопируйте этот адрес в клиент, <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">поддерживающий CalDAV</a> (например, Evolution или Mozilla Thunderbird) для полной синхронизации данного календаря со своим компьютером или мобильным устройством.';
|
||||
$labels['findcalendars'] = 'Найти календари...';
|
||||
$labels['searchterms'] = 'Условия поиска';
|
||||
$labels['calsearchresults'] = 'Доступные календари';
|
||||
$labels['calendarsubscribe'] = 'Всегда показывать';
|
||||
$labels['nocalendarsfound'] = 'Календарей не найдено';
|
||||
$labels['nrcalendarsfound'] = '$nr календарей найдено';
|
||||
$labels['quickview'] = 'Просмотреть только этот календарь';
|
||||
$labels['invitationspending'] = 'Ожидающие приглашения';
|
||||
$labels['invitationsdeclined'] = 'Отклонённые приглашения';
|
||||
$labels['changepartstat'] = 'Изменить статус участника';
|
||||
$labels['rsvpcomment'] = 'Текст приглашения';
|
||||
$labels['listrange'] = 'Диапазон:';
|
||||
$labels['listsections'] = 'Разделитесь на:';
|
||||
$labels['listsections'] = 'Разделить на:';
|
||||
$labels['smartsections'] = 'Умные секции';
|
||||
$labels['until'] = 'до';
|
||||
$labels['today'] = 'Сегодня';
|
||||
$labels['tomorrow'] = 'Завтра';
|
||||
$labels['thisweek'] = 'Текущая неделя';
|
||||
$labels['nextweek'] = 'Следующая неделя';
|
||||
$labels['prevweek'] = 'Предыдущая неделя';
|
||||
$labels['thismonth'] = 'Этот месяц';
|
||||
$labels['nextmonth'] = 'Следующий месяц';
|
||||
$labels['weekofyear'] = 'Неделя';
|
||||
$labels['pastevents'] = 'Прошлое';
|
||||
$labels['futureevents'] = 'Будующее';
|
||||
|
||||
// alarm/reminder settings
|
||||
$labels['showalarms'] = 'Показать уведомление';
|
||||
$labels['pastevents'] = 'Прошедшее';
|
||||
$labels['futureevents'] = 'Будущее';
|
||||
$labels['showalarms'] = 'Показывать напоминания';
|
||||
$labels['defaultalarmtype'] = 'Настройки напоминания по умолчанию';
|
||||
$labels['defaultalarmoffset'] = 'Время напоминания по умолчанию';
|
||||
|
||||
// attendees
|
||||
$labels['attendee'] = 'Участник';
|
||||
$labels['role'] = 'Роль';
|
||||
$labels['availability'] = 'Доступность';
|
||||
|
@ -118,125 +139,137 @@ $labels['confirmstate'] = 'Статус';
|
|||
$labels['addattendee'] = 'Добавить участника';
|
||||
$labels['roleorganizer'] = 'Организатор';
|
||||
$labels['rolerequired'] = 'Обязательный';
|
||||
$labels['roleoptional'] = 'Опциональный';
|
||||
$labels['rolechair'] = 'Наблюдатель';
|
||||
$labels['roleoptional'] = 'Необязательный';
|
||||
$labels['rolechair'] = 'Место';
|
||||
$labels['rolenonparticipant'] = 'Absent';
|
||||
$labels['cutypeindividual'] = 'Индивидуум';
|
||||
$labels['cutypegroup'] = 'Группа';
|
||||
$labels['cutyperesource'] = 'Ресурс';
|
||||
$labels['cutyperoom'] = 'Комната';
|
||||
$labels['availfree'] = 'Свободен';
|
||||
$labels['availbusy'] = 'Занят';
|
||||
$labels['availunknown'] = 'Неизвестно';
|
||||
$labels['availtentative'] = 'Предварительно';
|
||||
$labels['availoutofoffice'] = 'Вне офиса';
|
||||
$labels['delegatedto'] = 'Поручено:';
|
||||
$labels['delegatedfrom'] = 'Поручено от:';
|
||||
$labels['scheduletime'] = 'Найти доступность';
|
||||
$labels['sendinvitations'] = 'Отправить приглашение';
|
||||
$labels['sendinvitations'] = 'Отправить приглашения';
|
||||
$labels['sendnotifications'] = 'Уведомить участников об изменениях';
|
||||
$labels['sendcancellation'] = 'Уведомить участников об отмене события';
|
||||
$labels['onlyworkinghours'] = 'Найти возможность в мои рабочие часы';
|
||||
$labels['onlyworkinghours'] = 'Найти доступность в мои рабочие часы';
|
||||
$labels['reqallattendees'] = 'Необходимые/все участники';
|
||||
$labels['prevslot'] = 'Предыдущее время';
|
||||
$labels['nextslot'] = 'Следующее время';
|
||||
$labels['suggestedslot'] = 'Предлагаемое время';
|
||||
$labels['noslotfound'] = 'Невозможно найти свободное время';
|
||||
$labels['invitationsubject'] = 'Вы приглашены на "$title"';
|
||||
$labels['invitationmailbody'] = "*\$title*\n\nКогда: \$date\n\nПриглашенные: \$attendees\n\nПожалуйста найдите вложения в iCalendar файл со всеми деталями события которое Вы можете импортировать в вашу программу календаря.";
|
||||
$labels['invitationattendlinks'] = "В случае, если Ваш почтовый клиент не поддерживает запросы iTip, Вы можете использовать ссылку, чтобы принять или отклонить это приглашение:\n\$url";
|
||||
$labels['invitationmailbody'] = "*\$title*\n\nКогда: \$date\n\nПриглашенные: \$attendees\n\nВо вложении вы найдёте файл iCalendar со всеми деталями события, который Вы можете импортировать в Вашу программу-ежедневник.";
|
||||
$labels['invitationattendlinks'] = "В случае, если Ваш почтовый клиент не поддерживает запросы iTip, Вы можете использовать ссылку данную ниже, чтобы принять или отклонить это приглашение:\n\$url";
|
||||
$labels['eventupdatesubject'] = '"$title" было обновлено';
|
||||
$labels['eventupdatesubjectempty'] = 'Событие, которое касается Вас было обновлено';
|
||||
$labels['eventupdatemailbody'] = "*\$title*\n\nКогда: \$date\n\nПриглашенные: \$attendees\n\nПожалуйста найдите вложения в iCalendar файл со всеми деталями события которое Вы можете импортировать в вашу программу календаря.";
|
||||
$labels['eventupdatesubjectempty'] = 'Событие, которое касается Вас, было обновлено';
|
||||
$labels['eventupdatemailbody'] = "*\$title*\n\nКогда: \$date\n\nПриглашенные: \$attendees\n\nВо вложении вы найдёте файл iCalendar со всеми изменениями в событии, который Вы можете импортировать в Вашу программу-ежедневник.";
|
||||
$labels['eventcancelsubject'] = '"$title" было отменено';
|
||||
$labels['eventcancelmailbody'] = "*\$title*\n\nКогда: \$date\n\nПриглашенные: \$attendees\n\nЭто событие отменено \$organizer.\n\nПожалуйста посмотрите вложение в iCalendar файл которое обновит детали события.";
|
||||
|
||||
// invitation handling
|
||||
$labels['itipinvitation'] = 'Приглашение на';
|
||||
$labels['itipupdate'] = 'Обновление';
|
||||
$labels['itipcancellation'] = 'Отмененный:';
|
||||
$labels['itipreply'] = 'Ответить';
|
||||
$labels['itipaccepted'] = 'Принять';
|
||||
$labels['itiptentative'] = 'Может быть';
|
||||
$labels['itipdeclined'] = 'Отклонить';
|
||||
$labels['itipsubjectaccepted'] = '"$title" принято $name';
|
||||
$labels['itipsubjecttentative'] = '"$title" предварительно принято $name';
|
||||
$labels['itipsubjectdeclined'] = '"$title" отклонено $name';
|
||||
$labels['itipmailbodyaccepted'] = "\$sender принял приглашение на следующее событие:\n\n*\$title*\n\nКогда: \$date\n\nПриглашенные: \$attendees";
|
||||
$labels['itipmailbodytentative'] = "\$sender предварительно принял приглашение на следующее событие:\n\n*\$title*\n\nКогда: \$date\n\nПриглашенные: \$attendees";
|
||||
$labels['itipmailbodydeclined'] = "\$sender отклонил приглашение на следующее событие:\n\n*\$title*\n\nКогда: \$date\n\nПриглашенные: \$attendees";
|
||||
$labels['eventcancelmailbody'] = "*\$title*\n\nКогда: \$date\n\nПриглашенные: \$attendees\n\nЭто событие отменено \$organizer.\n\nВо вложении вы найдёте файл iCalendar со всеми изменениями в событии.";
|
||||
$labels['itipobjectnotfound'] = 'Событие, упомянутое в этом сообщении, не найдено в вашем календаре.';
|
||||
$labels['itipmailbodyaccepted'] = "\$sender принял(а) приглашение на следующее событие:\n\n*\$title*\n\nКогда: \$date\n\nПриглашенные: \$attendees";
|
||||
$labels['itipmailbodytentative'] = "\$sender предварительно принял(а) приглашение на следующее событие:\n\n*\$title*\n\nКогда: \$date\n\nПриглашенные: \$attendees";
|
||||
$labels['itipmailbodydeclined'] = "\$sender отклонил(а) приглашение на следующее событие:\n\n*\$title*\n\nКогда: \$date\n\nПриглашенные: \$attendees";
|
||||
$labels['itipmailbodycancel'] = "\$sender отклонил ваше участие в событии:\n\n*\$title*\n\nДата: \$date";
|
||||
$labels['itipmailbodydelegated'] = "\$sender перепоручил(а) учестие в событии:\n\n*\$title*\n\nДата: \$date";
|
||||
$labels['itipmailbodydelegatedto'] = "\$sender перепоручил(а) Вам участие в событии:\n\n*\$title*\n\nДата: \$date";
|
||||
$labels['itipdeclineevent'] = 'Вы хотите отклонить приглашение на это событие?';
|
||||
$labels['importtocalendar'] = 'Сохранить в мой календарь';
|
||||
$labels['removefromcalendar'] = 'Удалить из моего календаря';
|
||||
$labels['updateattendeestatus'] = 'Обновить статус участника';
|
||||
$labels['acceptinvitation'] = 'Вы принимаете это приглашение?';
|
||||
$labels['youhaveaccepted'] = 'Вы приняли это приглашение';
|
||||
$labels['youhavetentative'] = 'Вы предварительно приняли это приглашение';
|
||||
$labels['youhavedeclined'] = 'Вы отклонили это приглашение';
|
||||
$labels['notanattendee'] = 'Вы не в списке этого события';
|
||||
$labels['declinedeleteconfirm'] = 'Хотите ли вы так же удалить это отклонённое событие из вашего календаря?';
|
||||
$labels['itipcomment'] = 'Комментарий к приглашению/извещению';
|
||||
$labels['itipcommenttitle'] = 'Этот комментарий будет прикреплён к приглашению/оповещению, отправленному участникам';
|
||||
$labels['notanattendee'] = 'Вы не в списке участников этого события';
|
||||
$labels['eventcancelled'] = 'Это событие отменено';
|
||||
$labels['saveincalendar'] = 'сохранить в';
|
||||
|
||||
// event dialog tabs
|
||||
$labels['updatemycopy'] = 'Обновить в моём календаре';
|
||||
$labels['savetocalendar'] = 'Сохранить в календарь';
|
||||
$labels['openpreview'] = 'Проверить календарь';
|
||||
$labels['noearlierevents'] = 'Нет предыдущих событий';
|
||||
$labels['nolaterevents'] = 'Нет последующих событий';
|
||||
$labels['resource'] = 'Ресурс';
|
||||
$labels['addresource'] = 'Зарезервировать ресурс';
|
||||
$labels['findresources'] = 'Найти ресурсы';
|
||||
$labels['resourcedetails'] = 'Подробнее';
|
||||
$labels['resourceavailability'] = 'Доступность';
|
||||
$labels['resourceowner'] = 'Владелец';
|
||||
$labels['resourceadded'] = 'Ресурс добавлен в ваше событие';
|
||||
$labels['tabsummary'] = 'Сводка';
|
||||
$labels['tabrecurrence'] = 'Повторение';
|
||||
$labels['tabattendees'] = 'Участники';
|
||||
$labels['tabresources'] = 'Ресурсы';
|
||||
$labels['tabattachments'] = 'Вложения';
|
||||
$labels['tabsharing'] = 'Совместное использование';
|
||||
|
||||
// messages
|
||||
$labels['deleteobjectconfirm'] = 'Вы действительно хотите удалить это событие?';
|
||||
$labels['deleteventconfirm'] = 'Вы действительно хотите удалить это событие?';
|
||||
$labels['deletecalendarconfirm'] = 'Вы действительно хотите удалить этот календарь со всеми его событиями?';
|
||||
$labels['deletecalendarconfirmrecursive'] = 'Вы действительно хотите удалить этот календарь со всеми его событиями и вложенными календарями?';
|
||||
$labels['savingdata'] = 'Сохранение данных...';
|
||||
$labels['errorsaving'] = 'Ошибка сохранения изменений.';
|
||||
$labels['operationfailed'] = 'Ошибка запрошенной операции.';
|
||||
$labels['operationfailed'] = 'Не удалось выполнить запрошенную операцию.';
|
||||
$labels['invalideventdates'] = 'Неверная дата! Пожалуйста проверьте данные.';
|
||||
$labels['invalidcalendarproperties'] = 'Неверные свойства календаря! Пожалуйста введите допустимые данные.';
|
||||
$labels['searchnoresults'] = 'Событие не найдено в выбранном календаре.';
|
||||
$labels['successremoval'] = 'Это событие успешно удалено.';
|
||||
$labels['successrestore'] = 'Это событие успешно восстановлено.';
|
||||
$labels['errornotifying'] = 'Ошибка в отправке уведомления участникам событий';
|
||||
$labels['errorimportingevent'] = 'Ошибка при импорте события';
|
||||
$labels['newerversionexists'] = 'Новая версия этого события уже существует! Отменено.';
|
||||
$labels['searchnoresults'] = 'Событие не найдено в выбранных календарях.';
|
||||
$labels['successremoval'] = 'Событие успешно удалено.';
|
||||
$labels['successrestore'] = 'Событие успешно восстановлено.';
|
||||
$labels['errornotifying'] = 'Не удалось отправить уведомления участникам событий';
|
||||
$labels['errorimportingevent'] = 'Не удалось импортировать событие';
|
||||
$labels['importwarningexists'] = 'Копия этого события уже есть в вашем календаре.';
|
||||
$labels['newerversionexists'] = 'Обновлённая версия этого события уже существует! Отменено.';
|
||||
$labels['nowritecalendarfound'] = 'Не найден календарь для записи этого события';
|
||||
$labels['importedsuccessfully'] = 'Это событие успешно добавлено в \'$calendar\'';
|
||||
$labels['attendeupdateesuccess'] = 'Успешно обновлен статус участников';
|
||||
$labels['itipresponseerror'] = 'Невозможно послать ответ на это приглашение';
|
||||
$labels['importedsuccessfully'] = 'Событие успешно добавлено в \'$calendar\'';
|
||||
$labels['updatedsuccessfully'] = 'Событие успешно обновлено в \'$calendar\'';
|
||||
$labels['attendeupdateesuccess'] = 'Успешно обновлен статус участника';
|
||||
$labels['itipsendsuccess'] = 'Приглашания отправлены участникам.';
|
||||
$labels['itipresponseerror'] = 'Не удалось послать ответ на это приглашение';
|
||||
$labels['itipinvalidrequest'] = 'Это приглашение больше не действительно';
|
||||
$labels['sentresponseto'] = 'Успешно отправлен ответ на приглашение на $mailto';
|
||||
$labels['localchangeswarning'] = 'Вы собираетесь внести изменения, которые будут только отражены на Вашем личном календаре';
|
||||
$labels['importsuccess'] = 'Успешно импортированы $nr событий';
|
||||
$labels['localchangeswarning'] = 'Вы собираетесь внести изменения, которые отразятся только на Вашем личном календаре и не будут отправлены организатору события.';
|
||||
$labels['importsuccess'] = 'Успешно импортировано $nr событий';
|
||||
$labels['importnone'] = 'Не найдено событий для импорта';
|
||||
$labels['importerror'] = 'Ошибка при импорте';
|
||||
$labels['aclnorights'] = 'Вы не имеете прав администратора для этого календаря.';
|
||||
|
||||
// recurrence form
|
||||
$labels['repeat'] = 'Повторить';
|
||||
$labels['frequency'] = 'Повторить';
|
||||
$labels['never'] = 'никогда';
|
||||
$labels['daily'] = 'ежедневно';
|
||||
$labels['weekly'] = 'еженедельно';
|
||||
$labels['monthly'] = 'ежемесячно';
|
||||
$labels['yearly'] = 'ежегодно';
|
||||
$labels['every'] = 'Каждый';
|
||||
$labels['days'] = 'дней';
|
||||
$labels['weeks'] = 'недели';
|
||||
$labels['months'] = 'месяцы';
|
||||
$labels['years'] = 'годы в:';
|
||||
$labels['bydays'] = 'На';
|
||||
$labels['untildate'] = 'до числа';
|
||||
$labels['each'] = 'Каждый';
|
||||
$labels['onevery'] = 'На каждом';
|
||||
$labels['onsamedate'] = 'В ту же самую дату';
|
||||
$labels['forever'] = 'всегда';
|
||||
$labels['recurrencend'] = 'продолжительность';
|
||||
$labels['forntimes'] = '$nr дней';
|
||||
$labels['first'] = 'первое';
|
||||
$labels['second'] = 'второе';
|
||||
$labels['third'] = 'третье';
|
||||
$labels['fourth'] = 'четвертое';
|
||||
$labels['last'] = 'последнее';
|
||||
$labels['dayofmonth'] = 'День месяца';
|
||||
|
||||
$labels['changeeventconfirm'] = 'Изменить событие';
|
||||
$labels['removeeventconfirm'] = 'Удалить событие';
|
||||
$labels['changerecurringeventwarning'] = 'Это - повторяющееся событие. Хотели бы Вы редактировать только текущее событие, это и все будущие повторения, все события или сохранять его как новое событие?';
|
||||
$labels['removerecurringeventwarning'] = 'Это - повторяющееся событие. Хотели бы Вы удалить только текущее событие, это и все будущие события или все эти события?';
|
||||
$labels['removerecurringallonly'] = 'Это - повторяющееся событие. Как участник, Вы можете удалить всё событие вместе с всеми повторениями.';
|
||||
$labels['currentevent'] = 'Текущее';
|
||||
$labels['futurevents'] = 'Будущие';
|
||||
$labels['allevents'] = 'Все';
|
||||
$labels['saveasnew'] = 'Сохранить как новое';
|
||||
|
||||
$labels['birthdays'] = 'Дни рождения';
|
||||
$labels['birthdayscalendar'] = 'Календарь Дней Рождения';
|
||||
$labels['displaybirthdayscalendar'] = 'Показывать календарь Дней Рождения';
|
||||
$labels['birthdayscalendarsources'] = 'Из этих адресных книг';
|
||||
$labels['birthdayeventtitle'] = 'День рождения $name';
|
||||
$labels['birthdayage'] = 'Возраст $age';
|
||||
$labels['eventchangelog'] = 'История изменений';
|
||||
$labels['eventdiff'] = 'Изменения с ревизии $rev';
|
||||
$labels['revision'] = 'Ревизия';
|
||||
$labels['user'] = 'Пользователь';
|
||||
$labels['operation'] = 'Действие';
|
||||
$labels['actionappend'] = 'Сохранено';
|
||||
$labels['actionmove'] = 'Перемещено';
|
||||
$labels['actiondelete'] = 'Удалено';
|
||||
$labels['compare'] = 'Сравнить';
|
||||
$labels['showrevision'] = 'Показать эту версию';
|
||||
$labels['restore'] = 'Восстановить эту версию';
|
||||
$labels['eventnotfound'] = 'Не удалось загрузить информацию о мероприятиях';
|
||||
$labels['eventchangelognotavailable'] = 'История изменений для этого события недоступна';
|
||||
$labels['eventdiffnotavailable'] = 'Невозможно провести сравнение выбранных ревизий ';
|
||||
$labels['eventrestoreconfirm'] = 'Вы уверенны, что хотите восстановить это событие из ревизии $rev? Оно заменит текущее событие старой версией. ';
|
||||
$labels['arialabelminical'] = 'Выбор даты';
|
||||
$labels['arialabelcalendarview'] = 'Вид календаря';
|
||||
$labels['arialabelsearchform'] = 'Форма поиска событий';
|
||||
$labels['arialabelquicksearchbox'] = 'Поиск событий';
|
||||
$labels['arialabelcalsearchform'] = 'Форма поиска календарей';
|
||||
$labels['calendaractions'] = 'Действия с календарями';
|
||||
$labels['arialabeleventattendees'] = 'Участники события';
|
||||
$labels['arialabeleventresources'] = 'Ресурсы события';
|
||||
$labels['arialabelresourcesearchform'] = 'Форма поиска ресурсов';
|
||||
$labels['arialabelresourceselection'] = 'Доступные ресурсы';
|
||||
?>
|
||||
|
|
82
localization/sk.inc
Normal file
|
@ -0,0 +1,82 @@
|
|||
<?php
|
||||
/**
|
||||
* Localizations for Kolab Calendar plugin
|
||||
*
|
||||
* Copyright (C) 2014, Kolab Systems AG
|
||||
*
|
||||
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
|
||||
*/
|
||||
$labels['default_view'] = 'Prednastavené zobrazenie';
|
||||
$labels['time_format'] = 'Formát času';
|
||||
$labels['timeslots'] = 'Časových úsekov za hodinu';
|
||||
$labels['first_day'] = 'Prvý deň v týždni';
|
||||
$labels['first_hour'] = 'Prvá hodina na zobrazenie';
|
||||
$labels['workinghours'] = 'Pracovný čas';
|
||||
$labels['add_category'] = 'Pridať kategóriu';
|
||||
$labels['remove_category'] = 'Odstrániť kategóriu';
|
||||
$labels['defaultcalendar'] = 'Vytvoriť novú udalosť v';
|
||||
$labels['eventcoloring'] = 'Farba udalosti';
|
||||
$labels['afternothing'] = 'Neurobiť nič';
|
||||
$labels['aftertrash'] = 'Presunúť do koša';
|
||||
$labels['afterdelete'] = 'Vymazať správu';
|
||||
$labels['afterflagdeleted'] = 'Označiť ako vymazané';
|
||||
$labels['aftermoveto'] = 'Presunúť do...';
|
||||
$labels['itipoptions'] = 'Pozvánky na udalosť';
|
||||
$labels['calendar'] = 'Kalendár';
|
||||
$labels['calendars'] = 'Kalendáre';
|
||||
$labels['category'] = 'Kategória';
|
||||
$labels['categories'] = 'Kategórie';
|
||||
$labels['createcalendar'] = 'Vytvoriť nový kalendár';
|
||||
$labels['editcalendar'] = 'Upraviť nastavenie kalendára';
|
||||
$labels['name'] = 'Meno';
|
||||
$labels['color'] = 'Farba';
|
||||
$labels['day'] = 'Deň';
|
||||
$labels['week'] = 'Týždeň';
|
||||
$labels['month'] = 'Mesiac';
|
||||
$labels['agenda'] = 'Agenda';
|
||||
$labels['new'] = 'Nový';
|
||||
$labels['new_event'] = 'Nová udalosť';
|
||||
$labels['edit_event'] = 'Upraviť udalosť';
|
||||
$labels['edit'] = 'Upraviť';
|
||||
$labels['save'] = 'Uložiť';
|
||||
$labels['removelist'] = 'Odstrániť zo zoznamu';
|
||||
$labels['cancel'] = 'Zrušiť';
|
||||
$labels['select'] = 'Vybrať';
|
||||
$labels['print'] = 'Vytlačiť';
|
||||
$labels['printtitle'] = 'Vytlačiť kalendáre';
|
||||
$labels['title'] = 'Sumár';
|
||||
$labels['description'] = 'Popis';
|
||||
$labels['all-day'] = 'celý deň';
|
||||
$labels['export'] = 'Exportovať';
|
||||
$labels['exporttitle'] = 'Exportovať do iCalendar';
|
||||
$labels['exportrange'] = 'Udalosti z';
|
||||
$labels['exportattachments'] = 'S prílohami';
|
||||
$labels['customdate'] = 'Používateľský dátum';
|
||||
$labels['location'] = 'Poloha';
|
||||
$labels['url'] = 'URL';
|
||||
$labels['date'] = 'Dátum';
|
||||
$labels['start'] = 'Začiatok';
|
||||
$labels['starttime'] = 'Čas začiatku';
|
||||
$labels['end'] = 'Koniec';
|
||||
$labels['endtime'] = 'Čas konca';
|
||||
$labels['repeat'] = 'Opakovať';
|
||||
$labels['selectdate'] = 'Vyberte dátum';
|
||||
$labels['freebusy'] = 'Zobraziť ako';
|
||||
$labels['free'] = 'Voľný';
|
||||
$labels['busy'] = 'Zaneprázdnený';
|
||||
$labels['outofoffice'] = 'Mimo kancelárie';
|
||||
$labels['tentative'] = 'Nezáväzne';
|
||||
$labels['mystatus'] = 'Môj stav';
|
||||
$labels['status'] = 'Stav';
|
||||
$labels['status-confirmed'] = 'Potvrdené';
|
||||
$labels['status-cancelled'] = 'Zrušené';
|
||||
$labels['priority'] = 'Priorita';
|
||||
$labels['importrange'] = 'Udalosti z';
|
||||
$labels['weekofyear'] = 'Týždeň';
|
||||
$labels['confirmstate'] = 'Stav';
|
||||
$labels['availfree'] = 'Voľný';
|
||||
$labels['availbusy'] = 'Zaneprázdnený';
|
||||
$labels['availtentative'] = 'Nezáväzne';
|
||||
$labels['availoutofoffice'] = 'Mimo kancelárie';
|
||||
$labels['tabsummary'] = 'Sumár';
|
||||
?>
|
274
localization/sl.inc
Normal file
|
@ -0,0 +1,274 @@
|
|||
<?php
|
||||
/**
|
||||
* Localizations for Kolab Calendar plugin
|
||||
*
|
||||
* Copyright (C) 2014, Kolab Systems AG
|
||||
*
|
||||
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
|
||||
*/
|
||||
$labels['default_view'] = 'Privzeti pogled';
|
||||
$labels['time_format'] = 'Format časa';
|
||||
$labels['timeslots'] = 'Časovnih oken na uro';
|
||||
$labels['first_day'] = 'Prvi dan v tednu';
|
||||
$labels['first_hour'] = 'Prva ura za prikaz';
|
||||
$labels['workinghours'] = 'Ure dela';
|
||||
$labels['add_category'] = 'Dodaj kategorijo';
|
||||
$labels['remove_category'] = 'Odstrani kategorijo';
|
||||
$labels['defaultcalendar'] = 'Ustvari nove dogodke v';
|
||||
$labels['eventcoloring'] = 'Barva dogodka';
|
||||
$labels['coloringmode0'] = 'Po koledarju';
|
||||
$labels['coloringmode1'] = 'Po kategoriji';
|
||||
$labels['coloringmode2'] = 'Koledar za prikaz, kategorija za vsebino';
|
||||
$labels['coloringmode3'] = 'Kategorija za prikaz, koledar za vsebino';
|
||||
$labels['afternothing'] = 'Ne naredi ničesar';
|
||||
$labels['aftertrash'] = 'Premakni v koš';
|
||||
$labels['afterdelete'] = 'Izbriši sporočilo';
|
||||
$labels['afterflagdeleted'] = 'Označi kot izbrisano';
|
||||
$labels['aftermoveto'] = 'Premakni v...';
|
||||
$labels['itipoptions'] = 'Vabila za dogodek';
|
||||
$labels['afteraction'] = 'Po obdelavi vabila ali posodobljenega sporočila';
|
||||
$labels['calendar'] = 'Koledar';
|
||||
$labels['calendars'] = 'Koledarji';
|
||||
$labels['category'] = 'Kategorija';
|
||||
$labels['categories'] = 'Kategorije';
|
||||
$labels['createcalendar'] = 'Ustvari nov koledar';
|
||||
$labels['editcalendar'] = 'Uredi nastavitve koledarja';
|
||||
$labels['name'] = 'Ime';
|
||||
$labels['color'] = 'Barva';
|
||||
$labels['day'] = 'Dan';
|
||||
$labels['week'] = 'Teden';
|
||||
$labels['month'] = 'Mesec';
|
||||
$labels['agenda'] = 'Urnik';
|
||||
$labels['new'] = 'Nov';
|
||||
$labels['new_event'] = 'Nov dogodek';
|
||||
$labels['edit_event'] = 'Uredi dogodek';
|
||||
$labels['edit'] = 'Uredi';
|
||||
$labels['save'] = 'Shrani';
|
||||
$labels['removelist'] = 'Odstrani iz seznama';
|
||||
$labels['cancel'] = 'Prekliči';
|
||||
$labels['select'] = 'Izberi';
|
||||
$labels['print'] = 'Natisni';
|
||||
$labels['printtitle'] = 'Natisni koledarje';
|
||||
$labels['title'] = 'Pregled';
|
||||
$labels['description'] = 'Opis';
|
||||
$labels['all-day'] = 'cel dan';
|
||||
$labels['export'] = 'Izvozi';
|
||||
$labels['exporttitle'] = 'Izvozi v iCalendar';
|
||||
$labels['exportrange'] = 'Dogodki od';
|
||||
$labels['exportattachments'] = 'S priponkami';
|
||||
$labels['customdate'] = 'Poljubni datum';
|
||||
$labels['location'] = 'Lokacija';
|
||||
$labels['url'] = 'URL';
|
||||
$labels['date'] = 'Datum';
|
||||
$labels['start'] = 'Začetek';
|
||||
$labels['starttime'] = 'Čas začetka';
|
||||
$labels['end'] = 'Konec';
|
||||
$labels['endtime'] = 'Čas konca';
|
||||
$labels['repeat'] = 'Ponovi';
|
||||
$labels['selectdate'] = 'Izberi datum';
|
||||
$labels['freebusy'] = 'Prikaži me kot';
|
||||
$labels['free'] = 'Prost';
|
||||
$labels['busy'] = 'Zaseden';
|
||||
$labels['outofoffice'] = 'Izven pisarne';
|
||||
$labels['tentative'] = 'Pogojno';
|
||||
$labels['mystatus'] = 'Moj status';
|
||||
$labels['status'] = 'Status';
|
||||
$labels['status-confirmed'] = 'Potrjeno';
|
||||
$labels['status-cancelled'] = 'Preklicano';
|
||||
$labels['priority'] = 'Prednost';
|
||||
$labels['sensitivity'] = 'Zasebnost';
|
||||
$labels['public'] = 'javno';
|
||||
$labels['private'] = 'zasebno';
|
||||
$labels['confidential'] = 'zaupno';
|
||||
$labels['links'] = 'Sklic';
|
||||
$labels['alarms'] = 'Opomnik';
|
||||
$labels['comment'] = 'Komentar';
|
||||
$labels['created'] = 'Ustvarjeno';
|
||||
$labels['changed'] = 'Nazadnje urejeno';
|
||||
$labels['unknown'] = 'Neznano';
|
||||
$labels['eventoptions'] = 'Nastavitve';
|
||||
$labels['generated'] = 'generirano ob';
|
||||
$labels['eventhistory'] = 'Zgodovina';
|
||||
$labels['removelink'] = 'Odstrani email povezavo';
|
||||
$labels['printdescriptions'] = 'Opis za tisk';
|
||||
$labels['parentcalendar'] = 'Vstavi';
|
||||
$labels['searchearlierdates'] = '« Išči po prejšnjih dogodkih';
|
||||
$labels['searchlaterdates'] = 'Išči po kasnejših dogodkih »';
|
||||
$labels['andnmore'] = '$nr več...';
|
||||
$labels['togglerole'] = 'Klikni za prikaz vloge';
|
||||
$labels['createfrommail'] = 'Shrani kot dogodek';
|
||||
$labels['importevents'] = 'Uvozi dogodke';
|
||||
$labels['importrange'] = 'Dogodki od';
|
||||
$labels['onemonthback'] = '1 mesec nazaj';
|
||||
$labels['nmonthsback'] = '$nr mesecev nazaj';
|
||||
$labels['showurl'] = 'Prikaži URL koledarja';
|
||||
$labels['showurldescription'] = 'Za dostop do koledarja (samo za branje) iz drugih aplikacij uporabi naslednji naslov. Funkcija kopiraj in prilepi deluje z vsakim koledarjem v iCal formatu.';
|
||||
$labels['caldavurldescription'] = 'Za sinhronizacijo tega koledarja z vašim računalnikom ali mobilno napravo, v podprto aplikacijo (npr. Evolution ali Mozilla Thunderbird) kopirajte ta naslov <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a> .';
|
||||
$labels['findcalendars'] = 'Išči koledarje...';
|
||||
$labels['searchterms'] = 'Iskalni pogoji';
|
||||
$labels['calsearchresults'] = 'Razpoložljivi koledarji';
|
||||
$labels['calendarsubscribe'] = 'Označi za vedno';
|
||||
$labels['nocalendarsfound'] = 'Ni najdenih koledarjev';
|
||||
$labels['nrcalendarsfound'] = '$nr najdenih koledarjev';
|
||||
$labels['quickview'] = 'Prikaži samo ta koledar';
|
||||
$labels['invitationspending'] = 'Vabila za dogodek';
|
||||
$labels['invitationsdeclined'] = 'Zavrnjena vabila';
|
||||
$labels['changepartstat'] = 'Spremeni status sodelujočega';
|
||||
$labels['rsvpcomment'] = 'Sporočilo vabila';
|
||||
$labels['listrange'] = 'Prikaži v razponu:';
|
||||
$labels['listsections'] = 'Razdeli v:';
|
||||
$labels['smartsections'] = 'Pametni razdelki';
|
||||
$labels['until'] = 'do';
|
||||
$labels['today'] = 'Danes';
|
||||
$labels['tomorrow'] = 'Jutri';
|
||||
$labels['thisweek'] = 'Ta teden';
|
||||
$labels['nextweek'] = 'Naslednji teden';
|
||||
$labels['prevweek'] = 'Prejšnji teden';
|
||||
$labels['thismonth'] = 'Ta mesec';
|
||||
$labels['nextmonth'] = 'Naslednji mesec';
|
||||
$labels['weekofyear'] = 'Teden';
|
||||
$labels['pastevents'] = 'Pretekli';
|
||||
$labels['futureevents'] = 'Prihodnji';
|
||||
$labels['showalarms'] = 'Prikaži opomnike';
|
||||
$labels['defaultalarmtype'] = 'Privzeta nastavitev opomnika';
|
||||
$labels['defaultalarmoffset'] = 'Privzeti čas opomnika';
|
||||
$labels['attendee'] = 'Udeleženec';
|
||||
$labels['role'] = 'Vloga';
|
||||
$labels['availability'] = 'Razpol.';
|
||||
$labels['confirmstate'] = 'Status';
|
||||
$labels['addattendee'] = 'Dodaj udeleženca';
|
||||
$labels['roleorganizer'] = 'Organizator';
|
||||
$labels['rolerequired'] = 'Zahtevano';
|
||||
$labels['roleoptional'] = 'Neobvezno';
|
||||
$labels['rolechair'] = 'Vodja sestanka';
|
||||
$labels['rolenonparticipant'] = 'Odsoten';
|
||||
$labels['cutypeindividual'] = 'Osebni';
|
||||
$labels['cutypegroup'] = 'Skupina';
|
||||
$labels['cutyperesource'] = 'Vir';
|
||||
$labels['cutyperoom'] = 'Soba';
|
||||
$labels['availfree'] = 'Prost';
|
||||
$labels['availbusy'] = 'Zaseden';
|
||||
$labels['availunknown'] = 'Neznano';
|
||||
$labels['availtentative'] = 'Pogojno';
|
||||
$labels['availoutofoffice'] = 'Izven pisarne';
|
||||
$labels['delegatedto'] = 'Preneseno na:';
|
||||
$labels['delegatedfrom'] = 'Preneseno od:';
|
||||
$labels['scheduletime'] = 'Najdi razpoložljivost';
|
||||
$labels['sendinvitations'] = 'Pošlji vabila';
|
||||
$labels['sendnotifications'] = 'Sporoči udeležencem spremembe';
|
||||
$labels['sendcancellation'] = 'Sporoči udeležencem odpoved dogodka';
|
||||
$labels['onlyworkinghours'] = 'Najdi razpoložljivost med mojim delavnikom';
|
||||
$labels['reqallattendees'] = 'Zahtevano/vsi udeleženci';
|
||||
$labels['prevslot'] = 'Prejšnje mesto';
|
||||
$labels['nextslot'] = 'Naslednje mesto';
|
||||
$labels['suggestedslot'] = 'Predlagano mesto';
|
||||
$labels['noslotfound'] = 'Ne najdem prostega mesta';
|
||||
$labels['invitationsubject'] = 'Vabljeni ste v "$title"';
|
||||
$labels['invitationmailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nProsim preglejte pripeto iCalendar datoteko z vsemi informacijami o dogodku. Datoteko lahko uvozite v vašo koledar aplikacijo.";
|
||||
$labels['invitationattendlinks'] = "V kolikor vaš email klient ne podpira iTip zahtevkov lahko uporabite naslednjo povezavo za sprejem ali zavrnitev vabila:\n\$url";
|
||||
$labels['eventupdatesubject'] = '"$title" je bil posodobljen';
|
||||
$labels['eventupdatesubjectempty'] = 'Dogodek, ki vas zadeva je bil posodobljen';
|
||||
$labels['eventupdatemailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nProsim preglejte pripeto iCalendar datoteko s posodobljenimi informacijami o dogodku. Datoteko lahko uvozite v vašo koledar aplikacijo.";
|
||||
$labels['eventcancelsubject'] = '"$title" je bil preklican';
|
||||
$labels['eventcancelmailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nDogodek je bil preklican s strani \$organizer.\n\nProsim preglejte pripeto iCalendar datoteko s posodobljenimi informacijami o dogodku.";
|
||||
$labels['itipobjectnotfound'] = 'Dogodek, na katerega se nanaša to sporočilo, ni bil najden v vašem koledarju.';
|
||||
$labels['itipmailbodyaccepted'] = "\$sender je sprejel vabilo na dogodek:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
|
||||
$labels['itipmailbodytentative'] = "\$sender je okvirno sprejel vabilo na dogodek:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
|
||||
$labels['itipmailbodydeclined'] = "\$sender ni sprejel vabila na dogodek:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
|
||||
$labels['itipmailbodycancel'] = "\$sender je zavrnil vaše sodelovanje pri dogodku:\n\n*\$title*\n\nWhen: \$date";
|
||||
$labels['itipmailbodydelegated'] = "\$sender je prenesel sodelovanje na dogodku:\n\n*\$title*\n\nWhen: \$date";
|
||||
$labels['itipmailbodydelegatedto'] = "\$sender je na vas prenesel sodelovanje na dogodku:\n\n*\$title*\n\nWhen: \$date";
|
||||
$labels['itipdeclineevent'] = 'Želite zavrniti vabilo na ta dogodek?';
|
||||
$labels['declinedeleteconfirm'] = 'Ali želite tudi izbrisati zavrnjeni dogodek iz vašega koledarja?';
|
||||
$labels['itipcomment'] = 'Komentar vabila/obvestila';
|
||||
$labels['itipcommenttitle'] = 'Komentar bo dodan k vabilu/obvestilu, ki bo poslano sodelujočim';
|
||||
$labels['notanattendee'] = 'Niste označeni kot sodelujoči na tem sestanku';
|
||||
$labels['eventcancelled'] = 'Ta dogodek je bil preklican';
|
||||
$labels['saveincalendar'] = 'shrani v';
|
||||
$labels['updatemycopy'] = 'Posodobi v mojem koledarju';
|
||||
$labels['savetocalendar'] = 'Shrani v koledar';
|
||||
$labels['openpreview'] = 'Preveri Koledar';
|
||||
$labels['noearlierevents'] = 'Ni predhodnjih dogodkov';
|
||||
$labels['nolaterevents'] = 'Ni kasnejših dogodkov';
|
||||
$labels['resource'] = 'Vir';
|
||||
$labels['addresource'] = 'Označi vir';
|
||||
$labels['findresources'] = 'Poišči vire';
|
||||
$labels['resourcedetails'] = 'Podrobnosti';
|
||||
$labels['resourceavailability'] = 'Razpoložljivost';
|
||||
$labels['resourceowner'] = 'Lastnik';
|
||||
$labels['resourceadded'] = 'Vir je bil dodan v vašem dogodku';
|
||||
$labels['tabsummary'] = 'Pregled';
|
||||
$labels['tabrecurrence'] = 'Ponovitev';
|
||||
$labels['tabattendees'] = 'Sodelujoči';
|
||||
$labels['tabresources'] = 'Viri';
|
||||
$labels['tabattachments'] = 'Priponke';
|
||||
$labels['tabsharing'] = 'Deli z ostalimi';
|
||||
$labels['deleteobjectconfirm'] = 'Ali želite potrditi brisanje tega dogodka?';
|
||||
$labels['deleteventconfirm'] = 'Ali želite potrditi brisanje tega dogodka?';
|
||||
$labels['deletecalendarconfirm'] = 'Ali želite izbrisati ta koledar z vsemi dogodki?';
|
||||
$labels['deletecalendarconfirmrecursive'] = 'Ali želite izbrisati to koledar z vsemi dogodki in pod-koledarji?';
|
||||
$labels['savingdata'] = 'Shranjujem...';
|
||||
$labels['errorsaving'] = 'Napaka pri shranjevanju sprememb.';
|
||||
$labels['operationfailed'] = 'Zahtevana operacija ni uspela.';
|
||||
$labels['invalideventdates'] = 'Vnos datumov napačen! Prosim preverite vaš vnos.';
|
||||
$labels['invalidcalendarproperties'] = 'Napačne nastavitve koledarja! Prosim nastavite pravilno ime.';
|
||||
$labels['searchnoresults'] = 'V izbranih koledarjih ni dogodkov.';
|
||||
$labels['successremoval'] = 'Dogodek je bil uspešno izbrisan.';
|
||||
$labels['successrestore'] = 'Dogodek je bil uspešno obnovljen.';
|
||||
$labels['errornotifying'] = 'Napaka. Pošiljanje obvestil sodelujočim ni bilo uspešno.';
|
||||
$labels['errorimportingevent'] = 'Napaka pri uvozu dogodka';
|
||||
$labels['importwarningexists'] = 'Različica tega dogodka že obstaja v vašem koledarju.';
|
||||
$labels['newerversionexists'] = 'Obstaja novejša verzija tega dogodka!';
|
||||
$labels['nowritecalendarfound'] = 'Za shranjevanje dogodka ni na voljo nobenega koledarja';
|
||||
$labels['importedsuccessfully'] = 'Dogodek je bil uspešno dodan v \'$calendar\'';
|
||||
$labels['updatedsuccessfully'] = 'Dogodek je bil uspešno posodobljen v \'$calendar\'';
|
||||
$labels['attendeupdateesuccess'] = 'Posodabljanje statusa sodelujočega uspešno';
|
||||
$labels['itipsendsuccess'] = 'Vabilo sodelujočim poslano';
|
||||
$labels['itipresponseerror'] = 'Napaka. Pošiljanje odgovora na vabilo ni bilo uspešno';
|
||||
$labels['itipinvalidrequest'] = 'To vabilo ni več veljavno';
|
||||
$labels['sentresponseto'] = 'Odgovor je bil uspešno poslan na naslov $mailto';
|
||||
$labels['localchangeswarning'] = 'Spremembe bodo vidne samo v vašem koledarju in ne bodo poslane organizatorju dogodka';
|
||||
$labels['importsuccess'] = 'Uspešno uvoženih $nr dogodkov';
|
||||
$labels['importnone'] = 'Ne najdem dogodkov za uvoz';
|
||||
$labels['importerror'] = 'Pri uvozu je prišlo do napake';
|
||||
$labels['aclnorights'] = 'Na tem koledarju nimate administratorskih pravic';
|
||||
$labels['changeeventconfirm'] = 'Spremeni dogodek';
|
||||
$labels['removeeventconfirm'] = 'Izbriši dogodek';
|
||||
$labels['changerecurringeventwarning'] = 'To je ponavljajoč dogodek. Ali želite urediti samo trenutni dogodek, trenutni in vse prihodnje dogodke, vse ponavljajoče dogodke ali shraniti kot nov dogodek?';
|
||||
$labels['removerecurringeventwarning'] = 'To je ponavljajoč dogodek. Ali želite izbrisati trenutni dogodek, trenutni in vse prihodnje dogodke ali vsa ponavljanja tega dogodka?';
|
||||
$labels['currentevent'] = 'Trenutni';
|
||||
$labels['futurevents'] = 'Prihodnji';
|
||||
$labels['allevents'] = 'Vsi';
|
||||
$labels['saveasnew'] = 'Shrani kot nov';
|
||||
$labels['birthdays'] = 'Rojstni dnevi';
|
||||
$labels['birthdayscalendar'] = 'Koledar rojstnih dnevov';
|
||||
$labels['displaybirthdayscalendar'] = 'Prikaži koledar rojstnih dnevov';
|
||||
$labels['birthdayscalendarsources'] = 'Iz teh imenikov';
|
||||
$labels['birthdayeventtitle'] = 'Rojstni dan osebe $name';
|
||||
$labels['birthdayage'] = 'Starost $age';
|
||||
$labels['eventchangelog'] = 'Spremeni Zgodovino';
|
||||
$labels['eventdiff'] = 'Spremembe iz verzij $rev';
|
||||
$labels['revision'] = 'Verzija';
|
||||
$labels['user'] = 'Uporabnik';
|
||||
$labels['operation'] = 'Dejanje';
|
||||
$labels['actionappend'] = 'Shranjeno';
|
||||
$labels['actionmove'] = 'Premaknjeno';
|
||||
$labels['actiondelete'] = 'Izbrisano';
|
||||
$labels['compare'] = 'Primerjaj';
|
||||
$labels['showrevision'] = 'Prikaži to verzijo';
|
||||
$labels['restore'] = 'Obnovi to verzijo';
|
||||
$labels['eventnotfound'] = 'Napaka pri nalaganju podatkov o dogodku';
|
||||
$labels['eventchangelognotavailable'] = 'Sprememba zgodovine za ta dogodek ni na voljo';
|
||||
$labels['eventdiffnotavailable'] = 'Primerjava za izbrane verzije ni na voljo';
|
||||
$labels['eventrestoreconfirm'] = 'Ali želite obnoviti verzijo $rev tega dogodka? To bo nadomestilo trenutni dogodek s starejšo verzijo.';
|
||||
$labels['arialabelminical'] = 'Izbira datuma v koledarju';
|
||||
$labels['arialabelcalendarview'] = 'Prikaz koledarja';
|
||||
$labels['arialabelsearchform'] = 'Obrazec za iskanje dogodkov';
|
||||
$labels['arialabelquicksearchbox'] = 'Vnos iskanja dogodkov';
|
||||
$labels['arialabelcalsearchform'] = 'Obrazec za iskanje koledarjev';
|
||||
$labels['calendaractions'] = 'Dejanja koledarja';
|
||||
$labels['arialabeleventattendees'] = 'Seznam sodelujočih na dogodku';
|
||||
$labels['arialabeleventresources'] = 'Seznam virov za dogodek';
|
||||
$labels['arialabelresourcesearchform'] = 'Obrazec za iskanje virov';
|
||||
$labels['arialabelresourceselection'] = 'Viri na voljo';
|
||||
?>
|
9
localization/sv.inc
Normal file
|
@ -0,0 +1,9 @@
|
|||
<?php
|
||||
/**
|
||||
* Localizations for Kolab Calendar plugin
|
||||
*
|
||||
* Copyright (C) 2014, Kolab Systems AG
|
||||
*
|
||||
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
|
||||
*/
|
||||
?>
|
274
localization/sv_SE.inc
Normal file
|
@ -0,0 +1,274 @@
|
|||
<?php
|
||||
/**
|
||||
* Localizations for Kolab Calendar plugin
|
||||
*
|
||||
* Copyright (C) 2014, Kolab Systems AG
|
||||
*
|
||||
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
|
||||
*/
|
||||
$labels['default_view'] = 'Standardvy';
|
||||
$labels['time_format'] = 'Tidformat';
|
||||
$labels['timeslots'] = 'Tidsluckor per timme';
|
||||
$labels['first_day'] = 'Första veckodag';
|
||||
$labels['first_hour'] = 'Dagen börjar';
|
||||
$labels['workinghours'] = 'Arbetstid';
|
||||
$labels['add_category'] = 'Lägg till kategori';
|
||||
$labels['remove_category'] = 'Ta bort kategori';
|
||||
$labels['defaultcalendar'] = 'Skapa nya händelser i';
|
||||
$labels['eventcoloring'] = 'Händelsefärg';
|
||||
$labels['coloringmode0'] = 'Enligt kalender';
|
||||
$labels['coloringmode1'] = 'Enligt kategori';
|
||||
$labels['coloringmode2'] = 'Kalender för översikt, kategori för innehåll';
|
||||
$labels['coloringmode3'] = 'Kategori för översikt, kalender för innehåll';
|
||||
$labels['afternothing'] = 'Gör inget';
|
||||
$labels['aftertrash'] = 'Flytta till papperskorgen';
|
||||
$labels['afterdelete'] = 'Ta bort meddelandet';
|
||||
$labels['afterflagdeleted'] = 'Märk som borttaget';
|
||||
$labels['aftermoveto'] = 'Flytta till ...';
|
||||
$labels['itipoptions'] = 'Händelseinbjudningar';
|
||||
$labels['afteraction'] = 'Efter en inbjudan eller uppdatering bearbetats meddelande';
|
||||
$labels['calendar'] = 'Kalender';
|
||||
$labels['calendars'] = 'Kalendrar';
|
||||
$labels['category'] = 'Kategori';
|
||||
$labels['categories'] = 'Kategorier';
|
||||
$labels['createcalendar'] = 'Skapa ny kalender';
|
||||
$labels['editcalendar'] = 'Redigera kalenderegenskaper';
|
||||
$labels['name'] = 'Namn';
|
||||
$labels['color'] = 'Färg';
|
||||
$labels['day'] = 'Dag';
|
||||
$labels['week'] = 'Vecka';
|
||||
$labels['month'] = 'Månad';
|
||||
$labels['agenda'] = 'Agenda';
|
||||
$labels['new'] = 'Ny';
|
||||
$labels['new_event'] = 'Ny händelse';
|
||||
$labels['edit_event'] = 'Redigera händelse';
|
||||
$labels['edit'] = 'Redigera';
|
||||
$labels['save'] = 'Spara';
|
||||
$labels['removelist'] = 'Ta bort från lista';
|
||||
$labels['cancel'] = 'Avbryt';
|
||||
$labels['select'] = 'Välj';
|
||||
$labels['print'] = 'Skriv ut';
|
||||
$labels['printtitle'] = 'Skriv ut kalendrar';
|
||||
$labels['title'] = 'Sammanfattning';
|
||||
$labels['description'] = 'Beskrivning';
|
||||
$labels['all-day'] = 'heldag';
|
||||
$labels['export'] = 'Exportera';
|
||||
$labels['exporttitle'] = 'Exportera till iCalendar';
|
||||
$labels['exportrange'] = 'Händelser från';
|
||||
$labels['exportattachments'] = 'Med bilagor';
|
||||
$labels['customdate'] = 'Anpassat datum';
|
||||
$labels['location'] = 'Plats';
|
||||
$labels['url'] = 'URL';
|
||||
$labels['date'] = 'Datum';
|
||||
$labels['start'] = 'Start';
|
||||
$labels['starttime'] = 'Starttid';
|
||||
$labels['end'] = 'Slut';
|
||||
$labels['endtime'] = 'Sluttid';
|
||||
$labels['repeat'] = 'Upprepa';
|
||||
$labels['selectdate'] = 'Välj datum';
|
||||
$labels['freebusy'] = 'Visa mig som';
|
||||
$labels['free'] = 'Ledig';
|
||||
$labels['busy'] = 'Upptagen';
|
||||
$labels['outofoffice'] = 'Frånvarande';
|
||||
$labels['tentative'] = 'Preliminärt';
|
||||
$labels['mystatus'] = 'Min status';
|
||||
$labels['status'] = 'Status';
|
||||
$labels['status-confirmed'] = 'Bekräftad';
|
||||
$labels['status-cancelled'] = 'Inställd';
|
||||
$labels['priority'] = 'Prioritet';
|
||||
$labels['sensitivity'] = 'Integritet';
|
||||
$labels['public'] = 'publik';
|
||||
$labels['private'] = 'privat';
|
||||
$labels['confidential'] = 'konfidentiell';
|
||||
$labels['links'] = 'Referens';
|
||||
$labels['alarms'] = 'Påminnelse';
|
||||
$labels['comment'] = 'Kommentar';
|
||||
$labels['created'] = 'Skapad';
|
||||
$labels['changed'] = 'Senast ändrad';
|
||||
$labels['unknown'] = 'Okänd';
|
||||
$labels['eventoptions'] = 'Alternativ';
|
||||
$labels['generated'] = 'genererad vid';
|
||||
$labels['eventhistory'] = 'Historik';
|
||||
$labels['removelink'] = 'Ta bort e-postreferens';
|
||||
$labels['printdescriptions'] = 'Skriv ut beskrivning';
|
||||
$labels['parentcalendar'] = 'Infoga inuti';
|
||||
$labels['searchearlierdates'] = '« Sök efter tidigare händelser';
|
||||
$labels['searchlaterdates'] = 'Sök efter senare händelser »';
|
||||
$labels['andnmore'] = '$nr fler ...';
|
||||
$labels['togglerole'] = 'Klicka för att växla roll';
|
||||
$labels['createfrommail'] = 'Spara som händelse';
|
||||
$labels['importevents'] = 'Importera händelser';
|
||||
$labels['importrange'] = 'Händelser från';
|
||||
$labels['onemonthback'] = '1 månad bakåt';
|
||||
$labels['nmonthsback'] = '$nr månader bakåt';
|
||||
$labels['showurl'] = 'Visa kalender-URL';
|
||||
$labels['showurldescription'] = 'Använd följande adress för åtkomst (endast läsbar) till din kalender från andra applikationer. Du kan kopiera och klistra in adressen in i ett kalenderprogram som stöder iCal-formatet.';
|
||||
$labels['caldavurldescription'] = 'Kopiera denna adress till ett <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a> klientprogram (t.ex. Evolution eller Mozilla Thunderbird) för att helt synkronisera denna specifika kalender med din dator eller mobila enhet.';
|
||||
$labels['findcalendars'] = 'Hitta kalendrar ...';
|
||||
$labels['searchterms'] = 'Sökord';
|
||||
$labels['calsearchresults'] = 'Tillgängliga kalendrar';
|
||||
$labels['calendarsubscribe'] = 'Lista permanent';
|
||||
$labels['nocalendarsfound'] = 'Inga kalendrar hittades';
|
||||
$labels['nrcalendarsfound'] = '$nr kalendrar hittades';
|
||||
$labels['quickview'] = 'Visa endast denna kalender';
|
||||
$labels['invitationspending'] = 'Avvaktade inbjudningar';
|
||||
$labels['invitationsdeclined'] = 'Avböjda inbjudningar';
|
||||
$labels['changepartstat'] = 'Ändra deltagarstatus';
|
||||
$labels['rsvpcomment'] = 'Inbjudningstext';
|
||||
$labels['listrange'] = 'Intervall att visa';
|
||||
$labels['listsections'] = 'Dela upp i';
|
||||
$labels['smartsections'] = 'Smarta sektioner';
|
||||
$labels['until'] = 'tills';
|
||||
$labels['today'] = 'Idag';
|
||||
$labels['tomorrow'] = 'Imorgon';
|
||||
$labels['thisweek'] = 'Denna vecka';
|
||||
$labels['nextweek'] = 'Nästa vecka';
|
||||
$labels['prevweek'] = 'Föregående vecka';
|
||||
$labels['thismonth'] = 'Denna månad';
|
||||
$labels['nextmonth'] = 'Nästa månad';
|
||||
$labels['weekofyear'] = 'Vecka';
|
||||
$labels['pastevents'] = 'Förflutna';
|
||||
$labels['futureevents'] = 'Framtida';
|
||||
$labels['showalarms'] = 'Visa påminnelser';
|
||||
$labels['defaultalarmtype'] = 'Standardinställning för påminnelser';
|
||||
$labels['defaultalarmoffset'] = 'Standartid för påminnelser';
|
||||
$labels['attendee'] = 'Deltagare';
|
||||
$labels['role'] = 'Roll';
|
||||
$labels['availability'] = 'Tillg.';
|
||||
$labels['confirmstate'] = 'Status';
|
||||
$labels['addattendee'] = 'Lägg till deltagare';
|
||||
$labels['roleorganizer'] = 'Organisatör';
|
||||
$labels['rolerequired'] = 'Obligatorisk';
|
||||
$labels['roleoptional'] = 'Valfritt';
|
||||
$labels['rolechair'] = 'Stol';
|
||||
$labels['rolenonparticipant'] = 'Frånvarande';
|
||||
$labels['cutypeindividual'] = 'Individuell';
|
||||
$labels['cutypegroup'] = 'Grupp';
|
||||
$labels['cutyperesource'] = 'Resurs';
|
||||
$labels['cutyperoom'] = 'Rum';
|
||||
$labels['availfree'] = 'Ledig';
|
||||
$labels['availbusy'] = 'Upptagen';
|
||||
$labels['availunknown'] = 'Okänd';
|
||||
$labels['availtentative'] = 'Preliminärt';
|
||||
$labels['availoutofoffice'] = 'Frånvarande';
|
||||
$labels['delegatedto'] = 'Delegerad till:';
|
||||
$labels['delegatedfrom'] = 'Delegerad från:';
|
||||
$labels['scheduletime'] = 'Hitta tillgänglighet';
|
||||
$labels['sendinvitations'] = 'Skicka inbjudningar';
|
||||
$labels['sendnotifications'] = 'Meddela deltagare om ändringar';
|
||||
$labels['sendcancellation'] = 'Meddela deltagare om att händelsen ställts in';
|
||||
$labels['onlyworkinghours'] = 'Sök tillgänglighet inom min arbetstid';
|
||||
$labels['reqallattendees'] = 'Obligatorisk/alla deltagare';
|
||||
$labels['prevslot'] = 'Föregående lucka';
|
||||
$labels['nextslot'] = 'Nästa lucka';
|
||||
$labels['suggestedslot'] = 'Föreslagen lucka';
|
||||
$labels['noslotfound'] = 'Det gick inte att hitta en ledig tidslucka';
|
||||
$labels['invitationsubject'] = 'Du har blivit inbjuden till "$title"';
|
||||
$labels['invitationmailbody'] = "*\$title*\n\nNär: \$date\n\nInbjudna: \$attendees\n\nHärmed bifogas en iCalendar-fil med alla detaljer om händelsen som du kan importera till din kalenderapplikation.";
|
||||
$labels['invitationattendlinks'] = "Om din e-postklient inte stöder iTip-förfrågningar kan du använda följande länk för att antingen tacka ja eller eller nej till denna inbjudan:\n\$url";
|
||||
$labels['eventupdatesubject'] = '"$title" har uppdaterats';
|
||||
$labels['eventupdatesubjectempty'] = 'En händelse som berör dig har uppdaterats';
|
||||
$labels['eventupdatemailbody'] = "*\$title*\n\nNär: \$date\n\nInbjudna: \$attendees\n\nHärmed bifogas en iCalendar-fil med uppdaterad information som du kan importera till din kalenderapplikation.";
|
||||
$labels['eventcancelsubject'] = '"$title" har ställts in';
|
||||
$labels['eventcancelmailbody'] = "*\$title*\n\nNär: \$date\n\nInbjudna: \$attendees\n\nHändelsen har ställts in av \$organizer.\n\nHärmed bifogas en iCalendar-fil med uppdaterad information om händelsen.";
|
||||
$labels['itipobjectnotfound'] = 'Den händelse som avses i detta meddelande hittades inte i din kalender.';
|
||||
$labels['itipmailbodyaccepted'] = "\$sender har accepterat inbjudan till följande händelse:\n\n*\$title*\n\nNär: \$date\n\nInbjudna: \$attendees";
|
||||
$labels['itipmailbodytentative'] = "\$sender har preliminärt accepterat inbjudan till följande evenemang:\n\n*\$title*\n\nNär: \$date\n\nInbjudna: \$attendees";
|
||||
$labels['itipmailbodydeclined'] = "\$sender har tackat nej till inbjudan till följande händelse:\n\n*\$title*\n\nNär: \$date\n\nIbjudna: \$attendees";
|
||||
$labels['itipmailbodycancel'] = "\$sender har avvisat ditt deltagande i följande händelse:\n\n*\$title*\n\nNär: \$dat";
|
||||
$labels['itipmailbodydelegated'] = "\$sender har delegerat deltagandet i följande händelse:\n\n*\$title*\n\nNär: \$date";
|
||||
$labels['itipmailbodydelegatedto'] = "\$sender har delegerat deltagandet i följande händelse till dig:\n\n*\$title*\n\nNär: \$date";
|
||||
$labels['itipdeclineevent'] = 'Vill du tacka nej till inbjudan till denna händelse?';
|
||||
$labels['declinedeleteconfirm'] = 'Vill du även ta bort denna händelse, som du tackat nej till, från din kalender?';
|
||||
$labels['itipcomment'] = 'Kommentar till inbjudan/meddelande';
|
||||
$labels['itipcommenttitle'] = 'Denna kommentar kommer att bifogas i inbjudan/meddelandet som skickas till deltagarna';
|
||||
$labels['notanattendee'] = 'Du är inte listad som en deltagare i denna händelse';
|
||||
$labels['eventcancelled'] = 'Händelsen har ställts in';
|
||||
$labels['saveincalendar'] = 'Spara i';
|
||||
$labels['updatemycopy'] = 'Uppdatera i min kalender';
|
||||
$labels['savetocalendar'] = 'Spara till kalender';
|
||||
$labels['openpreview'] = 'Kontrollera kalender';
|
||||
$labels['noearlierevents'] = 'Inga tidigare händelser';
|
||||
$labels['nolaterevents'] = 'Inga senare händelser';
|
||||
$labels['resource'] = 'Resurs';
|
||||
$labels['addresource'] = 'Boka resurs';
|
||||
$labels['findresources'] = 'Hitta resurser';
|
||||
$labels['resourcedetails'] = 'Detaljer';
|
||||
$labels['resourceavailability'] = 'Tillgänglighet';
|
||||
$labels['resourceowner'] = 'Ägare';
|
||||
$labels['resourceadded'] = 'Resursen har kopplats till din händelser ';
|
||||
$labels['tabsummary'] = 'Sammanfattning';
|
||||
$labels['tabrecurrence'] = 'Återkommande';
|
||||
$labels['tabattendees'] = 'Deltagare';
|
||||
$labels['tabresources'] = 'Resurser';
|
||||
$labels['tabattachments'] = 'Bilagor';
|
||||
$labels['tabsharing'] = 'Delning';
|
||||
$labels['deleteobjectconfirm'] = 'Vill du verkligen ta bort denna händelse';
|
||||
$labels['deleteventconfirm'] = 'Vill du verkligen ta bort denna händelse';
|
||||
$labels['deletecalendarconfirm'] = 'Vill du verkligen ta bort denna kalender med alla dess händelser?';
|
||||
$labels['deletecalendarconfirmrecursive'] = 'Vill du verkligen ta bort denna kalender med alla händelser och delkalendrar?';
|
||||
$labels['savingdata'] = 'Sparar data ...';
|
||||
$labels['errorsaving'] = 'Misslyckades att spara ändringar.';
|
||||
$labels['operationfailed'] = 'Den begärda åtgärden misslyckades.';
|
||||
$labels['invalideventdates'] = 'Ogiltiga datum angivna! Kontrollera din inmatning.';
|
||||
$labels['invalidcalendarproperties'] = 'Ogiltiga kalenderegenskaper! Var god ange ett giltigt namn.';
|
||||
$labels['searchnoresults'] = 'Inga händelser hittades i de valda kalendrarna.';
|
||||
$labels['successremoval'] = 'Händelsen har tagits bort.';
|
||||
$labels['successrestore'] = 'Händelsen har återställts.';
|
||||
$labels['errornotifying'] = 'Det gick inte att skicka meddelande till händelsens deltagare';
|
||||
$labels['errorimportingevent'] = 'Det gick inte att importera händelsen';
|
||||
$labels['importwarningexists'] = 'En kopia av denna händelse finns redan i din kalender.';
|
||||
$labels['newerversionexists'] = 'En nyare version av denna händelse finns redan! Åtgärd avbruten.';
|
||||
$labels['nowritecalendarfound'] = 'Ingen kalender hittades att spara händelsen i';
|
||||
$labels['importedsuccessfully'] = 'Händelsen har lagts till i \'$calendar\'';
|
||||
$labels['updatedsuccessfully'] = 'Händelsen uppdaterades i \'$calendar\'';
|
||||
$labels['attendeupdateesuccess'] = 'Uppdaterade deltagarens status';
|
||||
$labels['itipsendsuccess'] = 'Inbjudan har skickats till deltagare.';
|
||||
$labels['itipresponseerror'] = 'Det gick inte att skicka ett svar på inbjudan till denna händelse';
|
||||
$labels['itipinvalidrequest'] = 'Denna inbjudan är inte längre giltig';
|
||||
$labels['sentresponseto'] = 'Skickade svar på inbjudan till $mailto';
|
||||
$labels['localchangeswarning'] = 'Du är på väg att göra ändringar som endast kommer att återspeglas i din kalender och inte skickas till organisatören av händelsen.';
|
||||
$labels['importsuccess'] = 'Importerade $nr händelser';
|
||||
$labels['importnone'] = 'Hittade inga händelser att importera';
|
||||
$labels['importerror'] = 'Ett fel uppstod vid import';
|
||||
$labels['aclnorights'] = 'Du har inga administratörsrättigheter i denna kalender.';
|
||||
$labels['changeeventconfirm'] = 'Ändra händelse';
|
||||
$labels['removeeventconfirm'] = 'Ta bort händelse';
|
||||
$labels['changerecurringeventwarning'] = 'Detta är en återkommande händelse. Vill du redigera endast den aktuella händelsen, denna och alla framtida händelser, alla händelser eller spara den som en ny händelse?';
|
||||
$labels['removerecurringeventwarning'] = 'etta är en återkommande händelse. Vill du ta bort endast den aktuella händelsen, denna och alla framtida händelser eller alla förekomster av denna händelse';
|
||||
$labels['currentevent'] = 'Nuvarande';
|
||||
$labels['futurevents'] = 'Framtida';
|
||||
$labels['allevents'] = 'Alla';
|
||||
$labels['saveasnew'] = 'Spara som ny';
|
||||
$labels['birthdays'] = 'Födelsedagar';
|
||||
$labels['birthdayscalendar'] = 'Födelsedagskalender';
|
||||
$labels['displaybirthdayscalendar'] = 'Visa födelsedagskalender';
|
||||
$labels['birthdayscalendarsources'] = 'Från dessa adressböcker';
|
||||
$labels['birthdayeventtitle'] = '$name\s födelsedag';
|
||||
$labels['birthdayage'] = '$age år';
|
||||
$labels['eventchangelog'] = 'Ändringshistorik';
|
||||
$labels['eventdiff'] = 'Ändringar från revisioner $rev';
|
||||
$labels['revision'] = 'Revision';
|
||||
$labels['user'] = 'Användare';
|
||||
$labels['operation'] = 'Åtgärd';
|
||||
$labels['actionappend'] = 'Sparad';
|
||||
$labels['actionmove'] = 'Flyttad';
|
||||
$labels['actiondelete'] = 'Borttagen';
|
||||
$labels['compare'] = 'Jämför';
|
||||
$labels['showrevision'] = 'Visa denna version';
|
||||
$labels['restore'] = 'Återställ denna verson';
|
||||
$labels['eventnotfound'] = 'Det gick inte att läsa in data för händelsen';
|
||||
$labels['eventchangelognotavailable'] = 'Ändringshistorik är inte tillgänglig för denna händelse';
|
||||
$labels['eventdiffnotavailable'] = 'Ingen jämförelse möjlig för valda revisioner';
|
||||
$labels['eventrestoreconfirm'] = 'Vill du verkligen återställa revision $rev för denna händelse? Det kommer att ersätta den aktuella händelsen med den gamla versionen.';
|
||||
$labels['arialabelminical'] = 'Kalender datumurval';
|
||||
$labels['arialabelcalendarview'] = 'Kalender vy';
|
||||
$labels['arialabelsearchform'] = 'Händelse sökformulär';
|
||||
$labels['arialabelquicksearchbox'] = 'Händelse sökinmatning';
|
||||
$labels['arialabelcalsearchform'] = 'Kalender sökformulär';
|
||||
$labels['calendaractions'] = 'Kalender åtgärder';
|
||||
$labels['arialabeleventattendees'] = 'Händelse deltagarlista';
|
||||
$labels['arialabeleventresources'] = 'Händelse resurslista';
|
||||
$labels['arialabelresourcesearchform'] = 'Resurser sökformulär';
|
||||
$labels['arialabelresourceselection'] = 'Tillgängliga resurser';
|
||||
?>
|
258
localization/th.inc
Normal file
|
@ -0,0 +1,258 @@
|
|||
<?php
|
||||
/**
|
||||
* Localizations for Kolab Calendar plugin
|
||||
*
|
||||
* Copyright (C) 2014, Kolab Systems AG
|
||||
*
|
||||
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
|
||||
*/
|
||||
$labels['default_view'] = 'มุมมองเริ่มต้น';
|
||||
$labels['time_format'] = 'รูปแบบของการแสดงเวลา';
|
||||
$labels['timeslots'] = 'จำนวนช่องเวลาต่อชั่วโมง';
|
||||
$labels['first_day'] = 'วันแรกของสัปดาห์';
|
||||
$labels['first_hour'] = 'ชั่วโมงแรกที่เริ่มแสดงผล';
|
||||
$labels['workinghours'] = 'ชั่วโมงทำงาน';
|
||||
$labels['add_category'] = 'เพิ่มหมวดหมู่';
|
||||
$labels['remove_category'] = 'ลบหมวดหมู่';
|
||||
$labels['defaultcalendar'] = 'เพิ่มนัดหมายใหม่ใน';
|
||||
$labels['eventcoloring'] = 'การให้สีเหตุการณ์ต่างๆ';
|
||||
$labels['coloringmode0'] = 'ตามปฎิทิน';
|
||||
$labels['coloringmode1'] = 'ตามหมวดหมู่';
|
||||
$labels['afternothing'] = 'ไม่ต้องทำอะไร';
|
||||
$labels['aftertrash'] = 'ย้ายลงถังขยะ';
|
||||
$labels['afterdelete'] = 'ลบข้อความ';
|
||||
$labels['afterflagdeleted'] = 'ติดธงว่าลบแล้ว';
|
||||
$labels['aftermoveto'] = 'ย้ายไปยัง...';
|
||||
$labels['itipoptions'] = 'เชิญเข้าร่วมนัดหมาย';
|
||||
$labels['afteraction'] = 'ภายหลังการประมวลผลข้อความ คำเชิญ หรือ ปรับปรุงสถานภาพ';
|
||||
$labels['calendar'] = 'ปฎิทิน';
|
||||
$labels['calendars'] = 'ปฎิทิน';
|
||||
$labels['category'] = 'หมวดหมู่';
|
||||
$labels['categories'] = 'หมวดหมู่';
|
||||
$labels['createcalendar'] = 'สร้างปฎิทินฉบับใหม่';
|
||||
$labels['editcalendar'] = 'แก้ไขคุณสมบัติของปฎิทิน';
|
||||
$labels['name'] = 'ชื่อ';
|
||||
$labels['color'] = 'สี';
|
||||
$labels['day'] = 'วัน';
|
||||
$labels['week'] = 'สัปดาห์';
|
||||
$labels['month'] = 'เดือน';
|
||||
$labels['new'] = 'เพิ่ม';
|
||||
$labels['new_event'] = 'เพิ่มนัดหมาย';
|
||||
$labels['edit_event'] = 'แก้ไขนัดหมาย';
|
||||
$labels['edit'] = 'แก้ไข';
|
||||
$labels['save'] = 'บันทึก';
|
||||
$labels['removelist'] = 'นำออกจากรายการ';
|
||||
$labels['cancel'] = 'ยกเลิก';
|
||||
$labels['select'] = 'เลือก';
|
||||
$labels['print'] = 'พิมพ์';
|
||||
$labels['printtitle'] = 'พิมพ์ปฎิทิน';
|
||||
$labels['title'] = 'สรุป';
|
||||
$labels['description'] = 'คำอธิบาย';
|
||||
$labels['all-day'] = 'ทั้งวัน';
|
||||
$labels['export'] = 'ส่งออก';
|
||||
$labels['exporttitle'] = 'ส่งออกไปยัง iCalendar';
|
||||
$labels['exportrange'] = 'เหตุการณ์จาก';
|
||||
$labels['exportattachments'] = 'พร้อมสิ่งที่แนบมาด้วย';
|
||||
$labels['location'] = 'สถานที่';
|
||||
$labels['date'] = 'วันที่';
|
||||
$labels['start'] = 'เริ่ม';
|
||||
$labels['starttime'] = 'เวลาเริ่ม';
|
||||
$labels['end'] = 'จบ';
|
||||
$labels['endtime'] = 'กำหนดเสร็จ';
|
||||
$labels['repeat'] = 'เกิดซ้ำ';
|
||||
$labels['selectdate'] = 'เลือกวันที่';
|
||||
$labels['free'] = 'ว่าง';
|
||||
$labels['busy'] = 'ติดธุระ';
|
||||
$labels['outofoffice'] = 'อยู่นอกออฟฟิศ';
|
||||
$labels['tentative'] = 'แนวโน้ม';
|
||||
$labels['mystatus'] = 'สถานะของฉัน';
|
||||
$labels['status'] = 'สถานะ';
|
||||
$labels['status-confirmed'] = 'ยืนยัน';
|
||||
$labels['status-cancelled'] = 'ยกเลิก';
|
||||
$labels['priority'] = 'ความสำคัญ';
|
||||
$labels['sensitivity'] = 'ความเป็นส่วนตัว';
|
||||
$labels['public'] = 'สาธารณะ';
|
||||
$labels['private'] = 'ส่วนตัว';
|
||||
$labels['confidential'] = 'ลับเฉพาะ';
|
||||
$labels['links'] = 'อ้างอิง';
|
||||
$labels['alarms'] = 'คำแจ้งเตือน';
|
||||
$labels['comment'] = 'ความคิดเห็น';
|
||||
$labels['created'] = 'สร้างเมื่อ';
|
||||
$labels['changed'] = 'แก้ไขครั้งสุดท้ายเมื่อ';
|
||||
$labels['unknown'] = 'ไม่ทราบ';
|
||||
$labels['eventoptions'] = 'ทางเลือก';
|
||||
$labels['eventhistory'] = 'ประวัติ';
|
||||
$labels['printdescriptions'] = 'พิมพ์คำอธิบาย';
|
||||
$labels['parentcalendar'] = 'เพิ่มเข้าภายใต้';
|
||||
$labels['searchearlierdates'] = '« ค้นหากำหนดการณ์ที่เกิดชึ้นก่อนหน้า';
|
||||
$labels['searchlaterdates'] = 'ค้นหากำหนดการณ์ที่เกิดขึ้นหลังจาก »';
|
||||
$labels['andnmore'] = 'มีอีก $nr';
|
||||
$labels['togglerole'] = 'กดเพื่อเปลี่ยนสลับบทบาท';
|
||||
$labels['createfrommail'] = 'บันทึกเป็นเหตุการณ์';
|
||||
$labels['importevents'] = 'นำเข้าเหตุการณ์';
|
||||
$labels['importrange'] = 'เหตุการณ์จาก';
|
||||
$labels['onemonthback'] = 'ย้อนหลัง 1 เดือน';
|
||||
$labels['nmonthsback'] = 'ย้อนหลัง $nr เดือน';
|
||||
$labels['showurl'] = 'แสดงลิงค์ปฎิทิน';
|
||||
$labels['showurldescription'] = 'ใช้ลิงค์ที่อยู่ต่อไปนี้เพื่อเข้าถึง (อ่านเท่านั้น) ปฎิทินของคุณจากโปรแกรมอื่น คุณสามารถคัดลอกและนำไปวางไว้ในซอฟท์แวร์ปฎิทินที่รับรองรูปแบบ iCal';
|
||||
$labels['caldavurldescription'] = 'คัดลอกลิงค์ที่อยู่นี้ไปยัง <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a> โปรแกรมในเครื่องลูกข่าย (เช่น Evolution หรือ Mozilla Thunderbird) เพื่อซิงค์ข้อมูลปฎิทินฉบับนี้กับคอมพิวเตอร์หรืออุปกรณ์มือถือของคุณ';
|
||||
$labels['findcalendars'] = 'ค้นหาปฎิทิน...';
|
||||
$labels['searchterms'] = 'ข้อความที่ต้องการค้นหา';
|
||||
$labels['calsearchresults'] = 'ปฎิทินที่มีให้เลือก';
|
||||
$labels['calendarsubscribe'] = 'แสดงเป็นรายการถาวร';
|
||||
$labels['nocalendarsfound'] = 'ไม่พบปฎิทิน';
|
||||
$labels['nrcalendarsfound'] = 'พบปฎิทิน $nr ฉบับ';
|
||||
$labels['quickview'] = 'ดูเฉพาะปฎิทินฉบับนี้';
|
||||
$labels['invitationspending'] = 'จดหมายเชิญที่ยังค้างอยู่';
|
||||
$labels['invitationsdeclined'] = 'ปฎิเสธคำเชิญ';
|
||||
$labels['changepartstat'] = 'เปลี่ยนสถานะของผู้เข้าร่วม';
|
||||
$labels['rsvpcomment'] = 'คำเชิญ';
|
||||
$labels['listrange'] = 'ขอบเขตุที่แสดง';
|
||||
$labels['listsections'] = 'แบ่งเป็น:';
|
||||
$labels['until'] = 'จนถึง';
|
||||
$labels['today'] = 'วันนี้';
|
||||
$labels['tomorrow'] = 'พรุ่งนี้';
|
||||
$labels['thisweek'] = 'สัปดาห์นี้';
|
||||
$labels['nextweek'] = 'สัปดาห์หน้า';
|
||||
$labels['prevweek'] = 'สัปดาห์ที่แล้ว';
|
||||
$labels['thismonth'] = 'เดือนนี้';
|
||||
$labels['nextmonth'] = 'เดือนหน้า';
|
||||
$labels['weekofyear'] = 'สัปดาห์';
|
||||
$labels['pastevents'] = 'อดีต';
|
||||
$labels['futureevents'] = 'อนาคต';
|
||||
$labels['showalarms'] = 'แสดงข้อความเตือน';
|
||||
$labels['defaultalarmtype'] = 'ค่าการแจ้งเตือนเริ่มต้น';
|
||||
$labels['attendee'] = 'ผู้เข้าร่วม';
|
||||
$labels['role'] = 'บทบาท';
|
||||
$labels['confirmstate'] = 'สถานะ';
|
||||
$labels['addattendee'] = 'เพิ่มผู้เข้าร่วม';
|
||||
$labels['roleorganizer'] = 'ผู้จัดงาน';
|
||||
$labels['rolerequired'] = 'บังคับ';
|
||||
$labels['roleoptional'] = 'เลือกได้';
|
||||
$labels['rolenonparticipant'] = 'ขาด';
|
||||
$labels['cutypeindividual'] = 'บุคคล';
|
||||
$labels['cutypegroup'] = 'กลุ่ม';
|
||||
$labels['cutyperesource'] = 'ทรัพยากร';
|
||||
$labels['cutyperoom'] = 'ห้อง';
|
||||
$labels['availfree'] = 'ว่าง';
|
||||
$labels['availbusy'] = 'ติดธุระ';
|
||||
$labels['availunknown'] = 'ไม่ทราบ';
|
||||
$labels['availtentative'] = 'แนวโน้ม';
|
||||
$labels['availoutofoffice'] = 'ไม่อยู่ออฟฟิศ';
|
||||
$labels['delegatedto'] = 'มอบหมายให้';
|
||||
$labels['delegatedfrom'] = 'รับมอบจาก';
|
||||
$labels['scheduletime'] = 'ค้นหาส่วนที่ว่าง';
|
||||
$labels['sendinvitations'] = 'ส่งคำเชิญ';
|
||||
$labels['sendnotifications'] = 'แจ้งเตือนผู้เข้าร่วมสำหรับการแก้ไข';
|
||||
$labels['sendcancellation'] = 'แจ้งเตือนผู้เข้าร่วมเกี่ยวกับการยกเลิก';
|
||||
$labels['onlyworkinghours'] = 'ค้นหาเวลาว่างในช่วงชั่วโมงการทำงานของฉัน';
|
||||
$labels['reqallattendees'] = 'บังคับ/ผู้เข้าร่วมทุกคน';
|
||||
$labels['prevslot'] = 'ช่องว่างก่อนหน้านี้';
|
||||
$labels['nextslot'] = 'ช่องว่า่งถัดจากนี้';
|
||||
$labels['suggestedslot'] = 'แนะนำช่องว่าง';
|
||||
$labels['noslotfound'] = 'ไม่สามารถหาช่วงเวลาที่ว่าง';
|
||||
$labels['invitationsubject'] = 'คุณได้รับเชิญไปยัง "$title"';
|
||||
$labels['invitationattendlinks'] = "ในกรณีที่โปรแกรมอีเมล์ของคุณไม่รองรับ 'การร้องขอ iTip' คุณสามารถใช้ลิงค์ต่อไปนี้ในการตอบรับหรือปฎิเสธจดหมายเชิญฉบับนี้ :\n\$url";
|
||||
$labels['eventupdatesubject'] = '"$title" ได้รับการปรับปรุงสถานะ';
|
||||
$labels['eventupdatesubjectempty'] = 'เหตุการณ์ที่คุณเป็นห่วงได้ถูกปรับปรุงสถานะแล้ว';
|
||||
$labels['eventcancelsubject'] = '"$title" ถูกยกเลิก';
|
||||
$labels['eventcancelmailbody'] = "*\$title*\n\nเมื่อ: \$date\n\nInvitees: \$attendees\n\n เหตุการณ์ได้ถูกยกเลิกโดย \$organizer.\n\n ไฟล์ iCalendar ที่แนบมาด้วย ได้รับการปรับปรุงรายละเอียดเรียบร้อยแล้ว";
|
||||
$labels['itipobjectnotfound'] = 'เหตุการณ์ที่อ้างถึงโดยข้อความนี้ไม่ถูกตรวจพบในปฎิทินของคุณ';
|
||||
$labels['itipmailbodyaccepted'] = "\$sender ได้ตอบรับคำเชิญสำหรับเหตุการณ์ต่อไปนี้:\n\n*\$title*\n\nเมื่อ: \$date\n\nInvitees: \$attendees";
|
||||
$labels['itipmailbodytentative'] = "\$sender มีแนวโน้มที่จะตอบรับคำเชิญสำหรับเหตุการณ์ต่อไปนี้:\n\n*\$title*\n\nเมื่อ: \$date\n\nInvitees: \$attendees";
|
||||
$labels['itipmailbodydeclined'] = "\$sender ได้ปฎิเสธคำเชิญสำหรับเหตุการณ์ต่อไปนี้ :\n\n*\$title*\n\nเมื่อ: \$date\n\nInvitees: \$attendees";
|
||||
$labels['itipmailbodycancel'] = "\$sender ปฎิเสธการเข้าร่วมของคุณในเหตุการณ์ต่อไปนี้:\n\n*\$title*\n\nเมื่อ: \$date";
|
||||
$labels['itipmailbodydelegated'] = "\$sender ได้มอบหมายการเข้าร่วมเหตุการณ์ต่อไปนี้:\n\n*\$title*\n\nเมื่อ: \$date";
|
||||
$labels['itipmailbodydelegatedto'] = "\$sender ได้มอบหมายให้คุณเข้าร่วมเหตุการณ์ต่อไปนี้:\n\n*\$title*\n\nเมื่อ: \$date";
|
||||
$labels['itipdeclineevent'] = 'คุณต้องการปฎิเสธคำเชิญสำหรับเหตุการณ์นี้หรือไม่';
|
||||
$labels['declinedeleteconfirm'] = 'คุณต้องการลบเหตุการณ์ที่ปฎิเสธนี้ออกจากปฎิทินของคุณหรือไม่';
|
||||
$labels['itipcomment'] = 'ความคิดเห็น คำเชิญ/คำแจ้งเตือน';
|
||||
$labels['itipcommenttitle'] = 'ความคิดเห็นนี้จะถูกแนบไปพร้อมกับข้อความ คำเชิญ/คำแจ้งเตือน ไปยังผู้เข้าร่วม';
|
||||
$labels['notanattendee'] = 'คุณไม่อยู่ในรายชื่อผุ้เข้าร่วมสำหรับเหตุการณ์นี้';
|
||||
$labels['eventcancelled'] = 'เหตุการณ์ได้ถูกยกเลิก';
|
||||
$labels['saveincalendar'] = 'บันทึกใน';
|
||||
$labels['updatemycopy'] = 'ปรับปรุงปฎิทินของฉัน';
|
||||
$labels['savetocalendar'] = 'บันทึกไปยังปฎิทินของฉัน';
|
||||
$labels['openpreview'] = 'ตรวจสอบปฎิทิน';
|
||||
$labels['noearlierevents'] = 'ไม่มีเหตุการณ์ก่อนหน้า';
|
||||
$labels['nolaterevents'] = 'ไม่มีเหตุการณ์หลังจากนั้น';
|
||||
$labels['resource'] = 'ทรัพยากร';
|
||||
$labels['addresource'] = 'จองทรัพยากร';
|
||||
$labels['findresources'] = 'ค้นหาทรัพยากร';
|
||||
$labels['resourcedetails'] = 'รายละเอียด';
|
||||
$labels['resourceavailability'] = 'ยังว่างอยู่';
|
||||
$labels['resourceowner'] = 'เจ้าของ';
|
||||
$labels['resourceadded'] = 'ทรัพยากรได้ถูกเพิ่มไปยังเหตุการณ์ของคุณ';
|
||||
$labels['tabsummary'] = 'สรุป';
|
||||
$labels['tabrecurrence'] = 'การเกิดซ้ำ';
|
||||
$labels['tabattendees'] = 'ผู้เข้าร่วม';
|
||||
$labels['tabresources'] = 'ทรัพยากร';
|
||||
$labels['tabattachments'] = 'สิ่งที่แนบมาด้วย';
|
||||
$labels['tabsharing'] = 'แบ่งปัน';
|
||||
$labels['deleteobjectconfirm'] = 'คุณต้องการลบเหตุการณ์นี้หรือไม่';
|
||||
$labels['deleteventconfirm'] = 'คุณต้องการลบเหตุการณ์นี้หรือไม่';
|
||||
$labels['deletecalendarconfirm'] = 'คุณต้องการลบปฎิทินฉบับนี้พร้อมกับเหตุการณ์ทั้งหมดหรือไม่';
|
||||
$labels['deletecalendarconfirmrecursive'] = 'คุณต้องการลบปฎิทินฉบับนี้พร้อมเหตุการณ์และปฎิทินย่อยทั้งหมดหรือไม่';
|
||||
$labels['savingdata'] = 'บันทึกข้อมูล';
|
||||
$labels['errorsaving'] = 'การบันทึกการเปลี่ยนแปลงล้มเหลว';
|
||||
$labels['operationfailed'] = 'การทำตามคำร้องล้มเหลว';
|
||||
$labels['invalideventdates'] = 'วันที่ที่ป้อนเข้ามาไม่ถูกต้อง โปรดตรวจสอบการป้อนข้อมูลของท่าน';
|
||||
$labels['invalidcalendarproperties'] = 'การตั้งค่าคุณสมบัติปฎิทินไม่ถูกต้อง โปรดตั้งชื่อให้ถูกต้อง';
|
||||
$labels['searchnoresults'] = 'ไม่พบเหตุการณ์ในปฎิทินฉบับที่เลือก';
|
||||
$labels['successremoval'] = 'เหตุการณ์ได้ถูกลบเรียบร้อยแล้ว';
|
||||
$labels['successrestore'] = 'การกู้เหตุการณ์เรียบร้อยแล้ว';
|
||||
$labels['errornotifying'] = 'เกิดข้อผิดพลาดในการส่งข้อความเตือนไปยังผู้เข้าร่วมเหตุการณ์';
|
||||
$labels['errorimportingevent'] = 'การนำเข้าเหตุการณ์เกิดข้อผิดพลาด';
|
||||
$labels['importwarningexists'] = 'มีเหตุการณ์นี้อยู่ในปฎิทินของคุณอยู่แล้ว';
|
||||
$labels['newerversionexists'] = 'มีเหตุการณ์ที่มีรุ่นควบคุมที่ใหม่กว่าอยู่แล้ว ยกเลิกการนำเข้า';
|
||||
$labels['nowritecalendarfound'] = 'ไม่พบปฎิทินที่จะบันทึกเหตุการณ์นี้';
|
||||
$labels['importedsuccessfully'] = 'เหตุการณ์ได้ถูกเพิ่มไปยัง \'$calendar\' เรียบร้อยแล้ว';
|
||||
$labels['updatedsuccessfully'] = 'เหตุการณ์ได้ถูกปรับปรุงไปยัง \'$calendar\' เรียบร้อยแล้ว';
|
||||
$labels['attendeupdateesuccess'] = 'การปรับปรุงสถานะของผู้เข้าร่วมเรียบร้อยแล้ว';
|
||||
$labels['itipsendsuccess'] = 'คำเชิญถูกส่งไปยังผู้เข้าร่วมแล้ว';
|
||||
$labels['itipresponseerror'] = 'การส่งคำตอบรับสำหรับคำเชิญเหตุการณ์นี้ล้มเหลว';
|
||||
$labels['itipinvalidrequest'] = 'คำเชิญนี้ไม่มีผลแล้ว';
|
||||
$labels['sentresponseto'] = 'การส่งคำตอบรับสำหรับคำเชิญไปยัง $mailto เรียบร้อยแล้ว';
|
||||
$labels['localchangeswarning'] = 'คุณกำลังปรับเปลี่ยนรายละเอียดซึ่งมีผลกับปฎิทินของคุณเท่านั้น และ การปรับเปลี่ยนจะไม่ถูกส่งไปยังผู้จัดของเหตุการณ์นี้';
|
||||
$labels['importsuccess'] = 'นำเข้า $nr เหตุการณ์เรียบร้อยแล้ว';
|
||||
$labels['importnone'] = 'ไม่พบเหตุการณ์ที่จะนำเข้า';
|
||||
$labels['importerror'] = 'พบข้อผิดพลาดในระหว่างนำเข้า';
|
||||
$labels['aclnorights'] = 'คุณไม่มีสิทธิของผู้ดูแลระบบของปฎิทินฉบับนี้';
|
||||
$labels['changeeventconfirm'] = 'เปลี่ยนเหตุการณ์';
|
||||
$labels['removeeventconfirm'] = 'ลบเหตุการณ์';
|
||||
$labels['changerecurringeventwarning'] = 'เหตุการณ์นี้เป็นเหตุการณ์ที่เกิดซ้ำ คุณต้องการแก้ไขเฉพาะเหตุการณ์ปัจจุบันเท่านั้น เหตุการณ์ปัจจุบันรวมทั้งในอนาคต หรือ เหตุการณ์ทั้งหมด หรือ บันทึกเป็นเหตุการณ์ใหม่';
|
||||
$labels['removerecurringeventwarning'] = 'เหตุการณ์นี้เป็นเหตุการณ์ที่เกิดซ้ำ คุณต้องการลบเฉพาะเหตุการณ์ปัจจุบันเท่านั้น เหตุการณ์ปัจจุบันรวมทั้งในอนาคต หรือ เหตุการณ์ทั้งหมด';
|
||||
$labels['removerecurringallonly'] = 'เหตุการณ์นี้เป็นเหตุการณ์ที่เกิดซ้ำ ในฐานะผู้เข้าร่วม คุณสามารถทำการลบได้เฉพาะแบบเหตุการณ์ทั้งหมด พร้อม กำหนดการที่จะเกิดขึ้นทั้งหมดเท่านั้น';
|
||||
$labels['currentevent'] = 'ปัจจุบัน';
|
||||
$labels['futurevents'] = 'อนาคต';
|
||||
$labels['allevents'] = 'ทั้งหมด';
|
||||
$labels['saveasnew'] = 'บันทึกเป็นเหตุการณ์ใหม่';
|
||||
$labels['birthdays'] = 'วันเกิด';
|
||||
$labels['birthdayscalendar'] = 'ปฎิทินวันเกิด';
|
||||
$labels['displaybirthdayscalendar'] = 'แสดงปฎิทินวันเกิด';
|
||||
$labels['birthdayscalendarsources'] = 'จากสมุดที่อยู่เหล่านี้';
|
||||
$labels['birthdayeventtitle'] = 'วันเกิดของ $name';
|
||||
$labels['birthdayage'] = 'อายุ $age ปี';
|
||||
$labels['eventchangelog'] = 'ประวัติการปรับเปลี่ยน';
|
||||
$labels['eventdiff'] = 'สิ่งที่เปลี่ยนจาก รุ่นการปรับปรุง $rev';
|
||||
$labels['revision'] = 'รุ่นการปรับปรุง';
|
||||
$labels['user'] = 'ผู้ใช้';
|
||||
$labels['operation'] = 'การกระทำ';
|
||||
$labels['actionappend'] = 'บันทึกเรียบร้อย';
|
||||
$labels['actionmove'] = 'ย้ายเรียบร้อย';
|
||||
$labels['actiondelete'] = 'ลบเรียบร้อย';
|
||||
$labels['compare'] = 'เปรียบเทียบ';
|
||||
$labels['showrevision'] = 'แสดงรุ่นการปรับปรุงนี้';
|
||||
$labels['restore'] = 'ย้อนกลับไปยังรุ่นการปรับปรุงนี้';
|
||||
$labels['eventnotfound'] = 'การโหลดข้อมูลของเหตุการณ์ล้มเหลว';
|
||||
$labels['eventchangelognotavailable'] = 'ไม่มีประวัติการปรับเปลี่ยนสำหรับเหตุการณ์นี้';
|
||||
$labels['eventdiffnotavailable'] = 'ไม่สามารถเปรียบเทียบรุ่นการปรับปรุงที่เลือกได้';
|
||||
$labels['eventrestoreconfirm'] = 'คุณต้องการกู้คืนรุ่นการปรับปรุง $rev ของเหตุการณ์นี้หรือ นี่จะเป็นการเขียนทับข้อมูลปัจจุบันด้วยข้อมูลที่เก่ากว่า';
|
||||
$labels['arialabelcalendarview'] = 'มุมมองปฎิทิน';
|
||||
$labels['arialabelquicksearchbox'] = 'ป้อนข้อมูลเพื่อค้นหาเหตุการณ์';
|
||||
$labels['arialabelcalsearchform'] = 'ฟอร์มค้นหาปฎิทิน';
|
||||
$labels['arialabeleventattendees'] = 'รายชื่อผู้เข้าร่วมเหตุการณ์';
|
||||
$labels['arialabeleventresources'] = 'รายการทรัพยากรที่ใช้ในเหตุการณ์';
|
||||
$labels['arialabelresourcesearchform'] = 'ฟอร์มค้นหาทรัพยากร';
|
||||
$labels['arialabelresourceselection'] = 'ทรัพยากรที่ยังว่าง';
|
||||
?>
|
9
localization/tr_TR.inc
Normal file
|
@ -0,0 +1,9 @@
|
|||
<?php
|
||||
/**
|
||||
* Localizations for Kolab Calendar plugin
|
||||
*
|
||||
* Copyright (C) 2014, Kolab Systems AG
|
||||
*
|
||||
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
|
||||
*/
|
||||
?>
|
229
localization/uk.inc
Normal file
|
@ -0,0 +1,229 @@
|
|||
<?php
|
||||
/**
|
||||
* Localizations for Kolab Calendar plugin
|
||||
*
|
||||
* Copyright (C) 2014, Kolab Systems AG
|
||||
*
|
||||
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
|
||||
*/
|
||||
$labels['default_view'] = 'Початковий вигляд';
|
||||
$labels['time_format'] = 'Формат часу';
|
||||
$labels['timeslots'] = 'Проміжків на годину';
|
||||
$labels['first_day'] = 'Перший день тижня';
|
||||
$labels['first_hour'] = 'Показувати починаючи з';
|
||||
$labels['workinghours'] = 'Робочі години';
|
||||
$labels['add_category'] = 'Додати категорію';
|
||||
$labels['remove_category'] = 'Вилучити категорію';
|
||||
$labels['defaultcalendar'] = 'Створити нову подію в';
|
||||
$labels['eventcoloring'] = 'Колір події';
|
||||
$labels['coloringmode0'] = 'Згідно кольору календаря';
|
||||
$labels['coloringmode1'] = 'Згідно кольору категорії';
|
||||
$labels['coloringmode2'] = 'Колір календаря для рамки, колір категорії для фону';
|
||||
$labels['coloringmode3'] = 'Колір категорії для рамки, колір календаря для фону';
|
||||
$labels['afternothing'] = 'Нічого не робити';
|
||||
$labels['aftertrash'] = 'Перемістити до смітника';
|
||||
$labels['afterdelete'] = 'Вилучити повідомлення';
|
||||
$labels['afterflagdeleted'] = 'Відмітити як видалене';
|
||||
$labels['aftermoveto'] = 'Перемістити в ...';
|
||||
$labels['itipoptions'] = 'Запрошення на події';
|
||||
$labels['afteraction'] = 'Після того, як запрошення або повідомлення про його зміну оброблено';
|
||||
$labels['calendar'] = 'Календар';
|
||||
$labels['calendars'] = 'Календарі';
|
||||
$labels['category'] = 'Категорія';
|
||||
$labels['categories'] = 'Категорії';
|
||||
$labels['createcalendar'] = 'Створити новий календар';
|
||||
$labels['editcalendar'] = 'Змінити властивості календаря';
|
||||
$labels['name'] = 'Назва';
|
||||
$labels['color'] = 'Колір';
|
||||
$labels['day'] = 'День';
|
||||
$labels['week'] = 'Тиждень';
|
||||
$labels['month'] = 'Місяць';
|
||||
$labels['agenda'] = 'Розпорядок дня';
|
||||
$labels['new'] = 'Новий';
|
||||
$labels['new_event'] = 'Нова подія';
|
||||
$labels['edit_event'] = 'Редагувати подію';
|
||||
$labels['edit'] = 'Редагувати';
|
||||
$labels['save'] = 'Зберегти';
|
||||
$labels['removelist'] = 'Вилучити зі списку';
|
||||
$labels['cancel'] = 'Відмінити';
|
||||
$labels['select'] = 'Вибрати';
|
||||
$labels['print'] = 'Друк';
|
||||
$labels['printtitle'] = 'Друкувати календар';
|
||||
$labels['title'] = 'Резюме';
|
||||
$labels['description'] = 'Опис';
|
||||
$labels['all-day'] = 'весь день';
|
||||
$labels['export'] = 'Експорт';
|
||||
$labels['exporttitle'] = 'Експорт в iCalendar';
|
||||
$labels['exportrange'] = 'Події починаючи з';
|
||||
$labels['exportattachments'] = 'Із вкладеннями';
|
||||
$labels['customdate'] = 'Спеціальна дата';
|
||||
$labels['location'] = 'Розташування';
|
||||
$labels['url'] = 'URL';
|
||||
$labels['date'] = 'Дата';
|
||||
$labels['start'] = 'Початок';
|
||||
$labels['starttime'] = 'Час початку';
|
||||
$labels['end'] = 'Закінчення';
|
||||
$labels['endtime'] = 'Час закінчення';
|
||||
$labels['repeat'] = 'Повторити';
|
||||
$labels['selectdate'] = 'Виберіть дату';
|
||||
$labels['freebusy'] = 'Показати як';
|
||||
$labels['free'] = 'Вільний';
|
||||
$labels['busy'] = 'Зайнятий';
|
||||
$labels['outofoffice'] = 'Поза офісом';
|
||||
$labels['tentative'] = 'Невизначений';
|
||||
$labels['mystatus'] = 'Мій статус';
|
||||
$labels['status'] = 'Статус';
|
||||
$labels['status-confirmed'] = 'Підтверджений';
|
||||
$labels['status-cancelled'] = 'Відмінений';
|
||||
$labels['priority'] = 'Пріоритет';
|
||||
$labels['sensitivity'] = 'Конфіденційність';
|
||||
$labels['public'] = 'публічна';
|
||||
$labels['private'] = 'приватна';
|
||||
$labels['confidential'] = 'конфіденційна';
|
||||
$labels['alarms'] = 'Нагадування';
|
||||
$labels['comment'] = 'Коментарій';
|
||||
$labels['created'] = 'Створена';
|
||||
$labels['changed'] = 'Змінена';
|
||||
$labels['unknown'] = 'Невідомо';
|
||||
$labels['eventoptions'] = 'Опції';
|
||||
$labels['generated'] = 'створений';
|
||||
$labels['eventhistory'] = 'Історія';
|
||||
$labels['printdescriptions'] = 'Друк опису';
|
||||
$labels['parentcalendar'] = 'Вставити всередину';
|
||||
$labels['searchearlierdates'] = '« Шукати події раніше';
|
||||
$labels['searchlaterdates'] = 'Шукати події пізніше »';
|
||||
$labels['andnmore'] = '$nr більше...';
|
||||
$labels['togglerole'] = 'Клікніть для перемикання ролі';
|
||||
$labels['createfrommail'] = 'Зберегти як подію';
|
||||
$labels['importevents'] = 'Імпортувати подію';
|
||||
$labels['importrange'] = 'Події починаючи з';
|
||||
$labels['onemonthback'] = '1 місяць назад';
|
||||
$labels['nmonthsback'] = '$nr місяця (ів) тому';
|
||||
$labels['showurl'] = 'Показати URL календаря';
|
||||
$labels['showurldescription'] = 'Використовуйте наступну адресу для перегляду Вашого календаря з інших додатків. Ви можете скопіювати і вставити це в будь-який додаток який підтримує формат iCal.';
|
||||
$labels['caldavurldescription'] = 'Скопіюйте цей адрес в клієнт, який підтримує <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a> (наприклад, Evolution або Mozilla Thunderbird) для повної синхронізації даного календаря зі своїм комп\'ютером або мобільним пристроєм.';
|
||||
$labels['findcalendars'] = 'Знайти календарі...';
|
||||
$labels['searchterms'] = 'Умови пошуку';
|
||||
$labels['calsearchresults'] = 'Доступні календарі';
|
||||
$labels['calendarsubscribe'] = 'Завжди показувати';
|
||||
$labels['nocalendarsfound'] = 'Не знайдено календарів';
|
||||
$labels['nrcalendarsfound'] = '$nr календарів знайдено';
|
||||
$labels['quickview'] = 'Подивитися тільки цей календар';
|
||||
$labels['invitationspending'] = 'Очікуючі запрошення';
|
||||
$labels['invitationsdeclined'] = 'Відхилені запрошення';
|
||||
$labels['changepartstat'] = 'Змінити статус учасника';
|
||||
$labels['rsvpcomment'] = 'Текст запрошення';
|
||||
$labels['listrange'] = 'Діапазон:';
|
||||
$labels['listsections'] = 'Розділити на:';
|
||||
$labels['smartsections'] = 'Розумні секції';
|
||||
$labels['until'] = 'до';
|
||||
$labels['today'] = 'Сьогодні';
|
||||
$labels['tomorrow'] = 'Завтра';
|
||||
$labels['thisweek'] = 'Поточний тиждень';
|
||||
$labels['nextweek'] = 'Наступний тиждень';
|
||||
$labels['prevweek'] = 'Попередній тиждень';
|
||||
$labels['thismonth'] = 'Поточний місяць';
|
||||
$labels['nextmonth'] = 'Наступний місяць';
|
||||
$labels['weekofyear'] = 'Тиждень';
|
||||
$labels['pastevents'] = 'Минуле';
|
||||
$labels['futureevents'] = 'Майбутнє';
|
||||
$labels['showalarms'] = 'Показувати нагадування';
|
||||
$labels['defaultalarmtype'] = 'Типові налаштування нагадувань';
|
||||
$labels['defaultalarmoffset'] = 'Типовий час нагадувань';
|
||||
$labels['attendee'] = 'Учасний';
|
||||
$labels['role'] = 'Роль';
|
||||
$labels['availability'] = 'Доступність';
|
||||
$labels['confirmstate'] = 'Статус';
|
||||
$labels['addattendee'] = 'Додати учасника';
|
||||
$labels['roleorganizer'] = 'Організатор';
|
||||
$labels['rolerequired'] = 'Обов\'язковий';
|
||||
$labels['roleoptional'] = 'Необов\'язковий';
|
||||
$labels['cutypeindividual'] = 'Окремий';
|
||||
$labels['cutypegroup'] = 'Група';
|
||||
$labels['cutyperesource'] = 'Ресурс';
|
||||
$labels['cutyperoom'] = 'Кімната';
|
||||
$labels['availfree'] = 'Вільний';
|
||||
$labels['availbusy'] = 'Зайнятий';
|
||||
$labels['availunknown'] = 'Невідомо';
|
||||
$labels['availtentative'] = 'Невизначений';
|
||||
$labels['availoutofoffice'] = 'Поза офісом';
|
||||
$labels['delegatedto'] = 'Доручено:';
|
||||
$labels['delegatedfrom'] = 'Доручено від:';
|
||||
$labels['scheduletime'] = 'Знайти доступних';
|
||||
$labels['sendinvitations'] = 'Запросити';
|
||||
$labels['sendnotifications'] = 'Повідомити учасників про зміни';
|
||||
$labels['sendcancellation'] = 'Повідомити учасників про скасування події';
|
||||
$labels['reqallattendees'] = 'Необхідні/всі учасники';
|
||||
$labels['prevslot'] = 'Попередній час';
|
||||
$labels['nextslot'] = 'Наступний час';
|
||||
$labels['suggestedslot'] = 'Пропонований час';
|
||||
$labels['noslotfound'] = 'Неможливо знайти вільний час';
|
||||
$labels['invitationsubject'] = 'Ви запрошені на ';
|
||||
$labels['invitationmailbody'] = "*\$title*\n\nКоли: \$date\n\nЗапрошені: \$attendees\n\nУ вкладенні Ви знайдете файл iCalendar з усіма деталями події, який Ви можете імпортувати у Вашу програму-щоденник.";
|
||||
$labels['invitationattendlinks'] = "У разі, якщо Ваш поштовий клієнт не підтримує запити iTip, Ви можете використати дане нижче посилання, щоб прийняти або відхилити це запрошення:\n\$url";
|
||||
$labels['eventupdatesubject'] = '"$title" була оновлена';
|
||||
$labels['eventupdatesubjectempty'] = 'Подія, яка стосується Вас, була оновленна ';
|
||||
$labels['eventupdatemailbody'] = "*\$title*\n\nКоли: \$date\n\nЗапрошені: \$attendees\n\nУ вкладенні Ви знайдете файл iCalendar з усіма змінами у події, який Ви можете імпортувати у Вашу програму-щоденник.";
|
||||
$labels['eventcancelsubject'] = '"$title" була відмінена';
|
||||
$labels['eventcancelmailbody'] = "*\$title*\n\nКоли: \$date\n\nЗапрошені: \$attendees\n\nЦя подія скасована \$organizer.\n\nУ вкладенні Ви знайдете файл iCalendar з усіма змінами у події.";
|
||||
$labels['itipobjectnotfound'] = 'Згадану в даному повідомленні подію, не знайдено у Вашому календарі.';
|
||||
$labels['itipdeclineevent'] = 'Ви хочете відхилити запрошення на дану подію?';
|
||||
$labels['declinedeleteconfirm'] = 'Чи хочете Ви також видалити відхилену подію з вашого календаря?';
|
||||
$labels['itipcomment'] = 'Коментар до запрошення/повідомлення';
|
||||
$labels['itipcommenttitle'] = 'Даний коментар буде прикріплений до запрошення/повідомленням, надісланого учасникам';
|
||||
$labels['notanattendee'] = 'Ви не в списку учасників цієї події';
|
||||
$labels['eventcancelled'] = 'Дана подія відмінена';
|
||||
$labels['saveincalendar'] = 'зберегти в';
|
||||
$labels['updatemycopy'] = 'Оновити в моєму календарі';
|
||||
$labels['savetocalendar'] = 'Зберегти в календар';
|
||||
$labels['openpreview'] = 'Перевірте календар';
|
||||
$labels['noearlierevents'] = 'Немає попередніх подій';
|
||||
$labels['nolaterevents'] = 'Немає наступних подій';
|
||||
$labels['resource'] = 'Ресурс';
|
||||
$labels['addresource'] = 'Зарезервувати ресурс';
|
||||
$labels['findresources'] = 'Знайти ресурс';
|
||||
$labels['resourcedetails'] = 'Подробиці';
|
||||
$labels['resourceavailability'] = 'Доступність';
|
||||
$labels['resourceowner'] = 'Власник';
|
||||
$labels['resourceadded'] = 'Ресурс доданий у Вашу подію';
|
||||
$labels['tabsummary'] = 'Резюме';
|
||||
$labels['tabrecurrence'] = 'Повторення';
|
||||
$labels['tabattendees'] = 'Учасники';
|
||||
$labels['tabresources'] = 'Ресурси';
|
||||
$labels['tabattachments'] = 'Вкладення';
|
||||
$labels['tabsharing'] = 'Спільне використання';
|
||||
$labels['savingdata'] = 'Збереження даних...';
|
||||
$labels['errorsaving'] = 'Помилка збереження змін.';
|
||||
$labels['changeeventconfirm'] = 'Змінити подію';
|
||||
$labels['removeeventconfirm'] = 'Вилучити подію';
|
||||
$labels['currentevent'] = 'Поточну';
|
||||
$labels['futurevents'] = 'Майбутню';
|
||||
$labels['allevents'] = 'Всі';
|
||||
$labels['birthdays'] = 'Дні Народження';
|
||||
$labels['birthdayscalendar'] = 'Календар Днів Народжень';
|
||||
$labels['displaybirthdayscalendar'] = 'Показувати календар Днів Народжень';
|
||||
$labels['birthdayscalendarsources'] = 'З даних адресних книг';
|
||||
$labels['birthdayeventtitle'] = 'День Народження $name';
|
||||
$labels['birthdayage'] = 'Вік $age';
|
||||
$labels['eventchangelog'] = 'Історія змін';
|
||||
$labels['eventdiff'] = 'Зміни з ревізії $rev';
|
||||
$labels['revision'] = 'Ревізія';
|
||||
$labels['user'] = 'Користувач';
|
||||
$labels['operation'] = 'Дія';
|
||||
$labels['actionappend'] = 'Збережено';
|
||||
$labels['actionmove'] = 'Переміщено';
|
||||
$labels['actiondelete'] = 'Вилучено';
|
||||
$labels['compare'] = 'Порівняти';
|
||||
$labels['showrevision'] = 'Показати дану весію';
|
||||
$labels['restore'] = 'Відновити дану версію';
|
||||
$labels['arialabelminical'] = 'Вибір дати';
|
||||
$labels['arialabelcalendarview'] = 'Вигляд календаря';
|
||||
$labels['arialabelsearchform'] = 'Форма пошуку подій';
|
||||
$labels['arialabelquicksearchbox'] = 'Пошук подій';
|
||||
$labels['arialabelcalsearchform'] = 'Форма пошуку календарів';
|
||||
$labels['calendaractions'] = 'Дії з календарями';
|
||||
$labels['arialabeleventattendees'] = 'Учасники події';
|
||||
$labels['arialabeleventresources'] = 'Ресурси подій';
|
||||
$labels['arialabelresourcesearchform'] = 'Форма пошуку ресурсів';
|
||||
$labels['arialabelresourceselection'] = 'Доступні ресурси';
|
||||
?>
|
272
localization/vi.inc
Normal file
|
@ -0,0 +1,272 @@
|
|||
<?php
|
||||
/**
|
||||
* Localizations for Kolab Calendar plugin
|
||||
*
|
||||
* Copyright (C) 2014, Kolab Systems AG
|
||||
*
|
||||
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
|
||||
*/
|
||||
$labels['default_view'] = 'Default view';
|
||||
$labels['time_format'] = 'Time format';
|
||||
$labels['timeslots'] = 'Time slots per hour';
|
||||
$labels['first_day'] = 'First weekday';
|
||||
$labels['first_hour'] = 'First hour to show';
|
||||
$labels['workinghours'] = 'Working hours';
|
||||
$labels['add_category'] = 'Add category';
|
||||
$labels['remove_category'] = 'Remove category';
|
||||
$labels['defaultcalendar'] = 'Create new events in';
|
||||
$labels['eventcoloring'] = 'Event coloring';
|
||||
$labels['coloringmode0'] = 'According to calendar';
|
||||
$labels['coloringmode1'] = 'According to category';
|
||||
$labels['coloringmode2'] = 'Calendar for outline, category for content';
|
||||
$labels['coloringmode3'] = 'Category for outline, calendar for content';
|
||||
$labels['afternothing'] = 'Do nothing';
|
||||
$labels['aftertrash'] = 'Move to Trash';
|
||||
$labels['afterdelete'] = 'Delete the message';
|
||||
$labels['afterflagdeleted'] = 'Flag as deleted';
|
||||
$labels['aftermoveto'] = 'Move to...';
|
||||
$labels['itipoptions'] = 'Event Invitations';
|
||||
$labels['afteraction'] = 'After an invitation or update message is processed';
|
||||
$labels['calendar'] = 'Calendar';
|
||||
$labels['calendars'] = 'Calendars';
|
||||
$labels['category'] = 'Category';
|
||||
$labels['categories'] = 'Categories';
|
||||
$labels['createcalendar'] = 'Create new calendar';
|
||||
$labels['editcalendar'] = 'Edit calendar properties';
|
||||
$labels['name'] = 'Name';
|
||||
$labels['color'] = 'Color';
|
||||
$labels['day'] = 'Day';
|
||||
$labels['week'] = 'Week';
|
||||
$labels['month'] = 'Month';
|
||||
$labels['agenda'] = 'Agenda';
|
||||
$labels['new'] = 'New';
|
||||
$labels['new_event'] = 'New event';
|
||||
$labels['edit_event'] = 'Edit event';
|
||||
$labels['edit'] = 'Edit';
|
||||
$labels['save'] = 'Save';
|
||||
$labels['removelist'] = 'Remove from list';
|
||||
$labels['cancel'] = 'Cancel';
|
||||
$labels['select'] = 'Select';
|
||||
$labels['print'] = 'Print';
|
||||
$labels['printtitle'] = 'Print calendars';
|
||||
$labels['title'] = 'Summary';
|
||||
$labels['description'] = 'Description';
|
||||
$labels['all-day'] = 'all-day';
|
||||
$labels['export'] = 'Export';
|
||||
$labels['exporttitle'] = 'Export to iCalendar';
|
||||
$labels['exportrange'] = 'Events from';
|
||||
$labels['exportattachments'] = 'With attachments';
|
||||
$labels['customdate'] = 'Custom date';
|
||||
$labels['location'] = 'Location';
|
||||
$labels['url'] = 'URL';
|
||||
$labels['date'] = 'Date';
|
||||
$labels['start'] = 'Start';
|
||||
$labels['starttime'] = 'Start time';
|
||||
$labels['end'] = 'End';
|
||||
$labels['endtime'] = 'End time';
|
||||
$labels['repeat'] = 'Repeat';
|
||||
$labels['selectdate'] = 'Choose date';
|
||||
$labels['freebusy'] = 'Show me as';
|
||||
$labels['free'] = 'Free';
|
||||
$labels['busy'] = 'Busy';
|
||||
$labels['outofoffice'] = 'Out of Office';
|
||||
$labels['tentative'] = 'Tentative';
|
||||
$labels['mystatus'] = 'My status';
|
||||
$labels['status'] = 'Status';
|
||||
$labels['status-confirmed'] = 'Confirmed';
|
||||
$labels['status-cancelled'] = 'Cancelled';
|
||||
$labels['priority'] = 'Priority';
|
||||
$labels['sensitivity'] = 'Privacy';
|
||||
$labels['public'] = 'public';
|
||||
$labels['private'] = 'private';
|
||||
$labels['confidential'] = 'confidential';
|
||||
$labels['alarms'] = 'Reminder';
|
||||
$labels['comment'] = 'Comment';
|
||||
$labels['created'] = 'Created';
|
||||
$labels['changed'] = 'Last Modified';
|
||||
$labels['unknown'] = 'Unknown';
|
||||
$labels['eventoptions'] = 'Options';
|
||||
$labels['generated'] = 'generated at';
|
||||
$labels['eventhistory'] = 'History';
|
||||
$labels['printdescriptions'] = 'Print descriptions';
|
||||
$labels['parentcalendar'] = 'Insert inside';
|
||||
$labels['searchearlierdates'] = '« Search for earlier events';
|
||||
$labels['searchlaterdates'] = 'Search for later events »';
|
||||
$labels['andnmore'] = '$nr more...';
|
||||
$labels['togglerole'] = 'Click to toggle role';
|
||||
$labels['createfrommail'] = 'Save as event';
|
||||
$labels['importevents'] = 'Import events';
|
||||
$labels['importrange'] = 'Events from';
|
||||
$labels['onemonthback'] = '1 month back';
|
||||
$labels['nmonthsback'] = '$nr months back';
|
||||
$labels['showurl'] = 'Show calendar URL';
|
||||
$labels['showurldescription'] = 'Use the following address to access (read only) your calendar from other applications. You can copy and paste this into any calendar software that supports the iCal format.';
|
||||
$labels['caldavurldescription'] = 'Copy this address to a <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a> client application (e.g. Evolution or Mozilla Thunderbird) to fully synchronize this specific calendar with your computer or mobile device.';
|
||||
$labels['findcalendars'] = 'Find calendars...';
|
||||
$labels['searchterms'] = 'Search terms';
|
||||
$labels['calsearchresults'] = 'Available Calendars';
|
||||
$labels['calendarsubscribe'] = 'List permanently';
|
||||
$labels['nocalendarsfound'] = 'No calendars found';
|
||||
$labels['nrcalendarsfound'] = '$nr calendars found';
|
||||
$labels['quickview'] = 'View only this calendar';
|
||||
$labels['invitationspending'] = 'Pending invitations';
|
||||
$labels['invitationsdeclined'] = 'Declined invitations';
|
||||
$labels['changepartstat'] = 'Change participant status';
|
||||
$labels['rsvpcomment'] = 'Invitation text';
|
||||
$labels['listrange'] = 'Range to display:';
|
||||
$labels['listsections'] = 'Divide into:';
|
||||
$labels['smartsections'] = 'Smart sections';
|
||||
$labels['until'] = 'until';
|
||||
$labels['today'] = 'Today';
|
||||
$labels['tomorrow'] = 'Tomorrow';
|
||||
$labels['thisweek'] = 'This week';
|
||||
$labels['nextweek'] = 'Next week';
|
||||
$labels['prevweek'] = 'Previous week';
|
||||
$labels['thismonth'] = 'This month';
|
||||
$labels['nextmonth'] = 'Next month';
|
||||
$labels['weekofyear'] = 'Week';
|
||||
$labels['pastevents'] = 'Past';
|
||||
$labels['futureevents'] = 'Future';
|
||||
$labels['showalarms'] = 'Show reminders';
|
||||
$labels['defaultalarmtype'] = 'Default reminder setting';
|
||||
$labels['defaultalarmoffset'] = 'Default reminder time';
|
||||
$labels['attendee'] = 'Participant';
|
||||
$labels['role'] = 'Role';
|
||||
$labels['availability'] = 'Avail.';
|
||||
$labels['confirmstate'] = 'Status';
|
||||
$labels['addattendee'] = 'Add participant';
|
||||
$labels['roleorganizer'] = 'Organizer';
|
||||
$labels['rolerequired'] = 'Required';
|
||||
$labels['roleoptional'] = 'Optional';
|
||||
$labels['rolechair'] = 'Chair';
|
||||
$labels['rolenonparticipant'] = 'Absent';
|
||||
$labels['cutypeindividual'] = 'Individual';
|
||||
$labels['cutypegroup'] = 'Group';
|
||||
$labels['cutyperesource'] = 'Resource';
|
||||
$labels['cutyperoom'] = 'Room';
|
||||
$labels['availfree'] = 'Free';
|
||||
$labels['availbusy'] = 'Busy';
|
||||
$labels['availunknown'] = 'Unknown';
|
||||
$labels['availtentative'] = 'Tentative';
|
||||
$labels['availoutofoffice'] = 'Out of Office';
|
||||
$labels['delegatedto'] = 'Delegated to: ';
|
||||
$labels['delegatedfrom'] = 'Delegated from: ';
|
||||
$labels['scheduletime'] = 'Find availability';
|
||||
$labels['sendinvitations'] = 'Send invitations';
|
||||
$labels['sendnotifications'] = 'Notify participants about modifications';
|
||||
$labels['sendcancellation'] = 'Notify participants about event cancellation';
|
||||
$labels['onlyworkinghours'] = 'Find availability within my working hours';
|
||||
$labels['reqallattendees'] = 'Required/all participants';
|
||||
$labels['prevslot'] = 'Previous Slot';
|
||||
$labels['nextslot'] = 'Next Slot';
|
||||
$labels['suggestedslot'] = 'Suggested Slot';
|
||||
$labels['noslotfound'] = 'Unable to find a free time slot';
|
||||
$labels['invitationsubject'] = 'You\'ve been invited to "$title"';
|
||||
$labels['invitationmailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nPlease find attached an iCalendar file with all the event details which you can import to your calendar application.";
|
||||
$labels['invitationattendlinks'] = "In case your email client doesn't support iTip requests you can use the following link to either accept or decline this invitation:\n\$url";
|
||||
$labels['eventupdatesubject'] = '"$title" has been updated';
|
||||
$labels['eventupdatesubjectempty'] = 'An event that concerns you has been updated';
|
||||
$labels['eventupdatemailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nPlease find attached an iCalendar file with the updated event details which you can import to your calendar application.";
|
||||
$labels['eventcancelsubject'] = '"$title" has been canceled';
|
||||
$labels['eventcancelmailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nThe event has been cancelled by \$organizer.\n\nPlease find attached an iCalendar file with the updated event details.";
|
||||
$labels['itipobjectnotfound'] = 'The event referred by this message was not found in your calendar.';
|
||||
$labels['itipmailbodyaccepted'] = "\$sender has accepted the invitation to the following event:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
|
||||
$labels['itipmailbodytentative'] = "\$sender has tentatively accepted the invitation to the following event:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
|
||||
$labels['itipmailbodydeclined'] = "\$sender has declined the invitation to the following event:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
|
||||
$labels['itipmailbodycancel'] = "\$sender has rejected your participation in the following event:\n\n*\$title*\n\nWhen: \$date";
|
||||
$labels['itipmailbodydelegated'] = "\$sender has delegated the participation in the following event:\n\n*\$title*\n\nWhen: \$date";
|
||||
$labels['itipmailbodydelegatedto'] = "\$sender has delegated the participation in the following event to you:\n\n*\$title*\n\nWhen: \$date";
|
||||
$labels['itipdeclineevent'] = 'Do you want to decline your invitation to this event?';
|
||||
$labels['declinedeleteconfirm'] = 'Do you also want to delete this declined event from your calendar?';
|
||||
$labels['itipcomment'] = 'Invitation/notification comment';
|
||||
$labels['itipcommenttitle'] = 'This comment will be attached to the invitation/notification message sent to participants';
|
||||
$labels['notanattendee'] = 'You\'re not listed as an attendee of this event';
|
||||
$labels['eventcancelled'] = 'The event has been cancelled';
|
||||
$labels['saveincalendar'] = 'save in';
|
||||
$labels['updatemycopy'] = 'Update in my calendar';
|
||||
$labels['savetocalendar'] = 'Save to calendar';
|
||||
$labels['openpreview'] = 'Check Calendar';
|
||||
$labels['noearlierevents'] = 'No earlier events';
|
||||
$labels['nolaterevents'] = 'No later events';
|
||||
$labels['resource'] = 'Resource';
|
||||
$labels['addresource'] = 'Book resource';
|
||||
$labels['findresources'] = 'Find resources';
|
||||
$labels['resourcedetails'] = 'Details';
|
||||
$labels['resourceavailability'] = 'Availability';
|
||||
$labels['resourceowner'] = 'Owner';
|
||||
$labels['resourceadded'] = 'The resource was added to your event';
|
||||
$labels['tabsummary'] = 'Summary';
|
||||
$labels['tabrecurrence'] = 'Recurrence';
|
||||
$labels['tabattendees'] = 'Participants';
|
||||
$labels['tabresources'] = 'Resources';
|
||||
$labels['tabattachments'] = 'Attachments';
|
||||
$labels['tabsharing'] = 'Sharing';
|
||||
$labels['deleteobjectconfirm'] = 'Do you really want to delete this event?';
|
||||
$labels['deleteventconfirm'] = 'Do you really want to delete this event?';
|
||||
$labels['deletecalendarconfirm'] = 'Do you really want to delete this calendar with all its events?';
|
||||
$labels['deletecalendarconfirmrecursive'] = 'Do you really want to delete this calendar with all its events and sub-calendars?';
|
||||
$labels['savingdata'] = 'Saving data...';
|
||||
$labels['errorsaving'] = 'Failed to save changes.';
|
||||
$labels['operationfailed'] = 'The requested operation failed.';
|
||||
$labels['invalideventdates'] = 'Invalid dates entered! Please check your input.';
|
||||
$labels['invalidcalendarproperties'] = 'Invalid calendar properties! Please set a valid name.';
|
||||
$labels['searchnoresults'] = 'No events found in the selected calendars.';
|
||||
$labels['successremoval'] = 'The event has been deleted successfully.';
|
||||
$labels['successrestore'] = 'The event has been restored successfully.';
|
||||
$labels['errornotifying'] = 'Failed to send notifications to event participants';
|
||||
$labels['errorimportingevent'] = 'Failed to import the event';
|
||||
$labels['importwarningexists'] = 'A copy of this event already exists in your calendar.';
|
||||
$labels['newerversionexists'] = 'A newer version of this event already exists! Aborted.';
|
||||
$labels['nowritecalendarfound'] = 'No calendar found to save the event';
|
||||
$labels['importedsuccessfully'] = 'The event was successfully added to \'$calendar\'';
|
||||
$labels['updatedsuccessfully'] = 'The event was successfully updated in \'$calendar\'';
|
||||
$labels['attendeupdateesuccess'] = 'Successfully updated the participant\'s status';
|
||||
$labels['itipsendsuccess'] = 'Invitation sent to participants.';
|
||||
$labels['itipresponseerror'] = 'Failed to send the response to this event invitation';
|
||||
$labels['itipinvalidrequest'] = 'This invitation is no longer valid';
|
||||
$labels['sentresponseto'] = 'Successfully sent invitation response to $mailto';
|
||||
$labels['localchangeswarning'] = 'You are about to make changes that will only be reflected on your calendar and not be sent to the organizer of the event.';
|
||||
$labels['importsuccess'] = 'Successfully imported $nr events';
|
||||
$labels['importnone'] = 'No events found to be imported';
|
||||
$labels['importerror'] = 'An error occured while importing';
|
||||
$labels['aclnorights'] = 'You do not have administrator rights on this calendar.';
|
||||
$labels['changeeventconfirm'] = 'Change event';
|
||||
$labels['removeeventconfirm'] = 'Delete event';
|
||||
$labels['changerecurringeventwarning'] = 'This is a recurring event. Would you like to edit the current event only, this and all future occurences, all occurences or save it as a new event?';
|
||||
$labels['removerecurringeventwarning'] = 'This is a recurring event. Would you like to delete the current event only, this and all future occurences or all occurences of this event?';
|
||||
$labels['currentevent'] = 'Current';
|
||||
$labels['futurevents'] = 'Future';
|
||||
$labels['allevents'] = 'All';
|
||||
$labels['saveasnew'] = 'Save as new';
|
||||
$labels['birthdays'] = 'Birthdays';
|
||||
$labels['birthdayscalendar'] = 'Birthdays Calendar';
|
||||
$labels['displaybirthdayscalendar'] = 'Display birthdays calendar';
|
||||
$labels['birthdayscalendarsources'] = 'From these address books';
|
||||
$labels['birthdayeventtitle'] = '$name\'s Birthday';
|
||||
$labels['birthdayage'] = 'Age $age';
|
||||
$labels['eventchangelog'] = 'Change History';
|
||||
$labels['eventdiff'] = 'Changes from revisions $rev';
|
||||
$labels['revision'] = 'Revision';
|
||||
$labels['user'] = 'User';
|
||||
$labels['operation'] = 'Action';
|
||||
$labels['actionappend'] = 'Saved';
|
||||
$labels['actionmove'] = 'Moved';
|
||||
$labels['actiondelete'] = 'Deleted';
|
||||
$labels['compare'] = 'Compare';
|
||||
$labels['showrevision'] = 'Show this version';
|
||||
$labels['restore'] = 'Restore this version';
|
||||
$labels['eventnotfound'] = 'Failed to load event data';
|
||||
$labels['eventchangelognotavailable'] = 'Change history is not available for this event';
|
||||
$labels['eventdiffnotavailable'] = 'No comparison possible for the selected revisions';
|
||||
$labels['eventrestoreconfirm'] = 'Do you really want to restore revision $rev of this event? This will replace the current event with the old version.';
|
||||
$labels['arialabelminical'] = 'Calendar date selection';
|
||||
$labels['arialabelcalendarview'] = 'Calendar view';
|
||||
$labels['arialabelsearchform'] = 'Event search form';
|
||||
$labels['arialabelquicksearchbox'] = 'Event search input';
|
||||
$labels['arialabelcalsearchform'] = 'Calendars search form';
|
||||
$labels['calendaractions'] = 'Calendar actions';
|
||||
$labels['arialabeleventattendees'] = 'Event participants list';
|
||||
$labels['arialabeleventresources'] = 'Event resources list';
|
||||
$labels['arialabelresourcesearchform'] = 'Resources search form';
|
||||
$labels['arialabelresourceselection'] = 'Available resources';
|
||||
?>
|
272
localization/vi_VN.inc
Normal file
|
@ -0,0 +1,272 @@
|
|||
<?php
|
||||
/**
|
||||
* Localizations for Kolab Calendar plugin
|
||||
*
|
||||
* Copyright (C) 2014, Kolab Systems AG
|
||||
*
|
||||
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
|
||||
*/
|
||||
$labels['default_view'] = 'Default view';
|
||||
$labels['time_format'] = 'Time format';
|
||||
$labels['timeslots'] = 'Time slots per hour';
|
||||
$labels['first_day'] = 'First weekday';
|
||||
$labels['first_hour'] = 'First hour to show';
|
||||
$labels['workinghours'] = 'Working hours';
|
||||
$labels['add_category'] = 'Add category';
|
||||
$labels['remove_category'] = 'Remove category';
|
||||
$labels['defaultcalendar'] = 'Create new events in';
|
||||
$labels['eventcoloring'] = 'Event coloring';
|
||||
$labels['coloringmode0'] = 'According to calendar';
|
||||
$labels['coloringmode1'] = 'According to category';
|
||||
$labels['coloringmode2'] = 'Calendar for outline, category for content';
|
||||
$labels['coloringmode3'] = 'Category for outline, calendar for content';
|
||||
$labels['afternothing'] = 'Do nothing';
|
||||
$labels['aftertrash'] = 'Move to Trash';
|
||||
$labels['afterdelete'] = 'Delete the message';
|
||||
$labels['afterflagdeleted'] = 'Flag as deleted';
|
||||
$labels['aftermoveto'] = 'Move to...';
|
||||
$labels['itipoptions'] = 'Event Invitations';
|
||||
$labels['afteraction'] = 'After an invitation or update message is processed';
|
||||
$labels['calendar'] = 'Calendar';
|
||||
$labels['calendars'] = 'Calendars';
|
||||
$labels['category'] = 'Category';
|
||||
$labels['categories'] = 'Categories';
|
||||
$labels['createcalendar'] = 'Create new calendar';
|
||||
$labels['editcalendar'] = 'Edit calendar properties';
|
||||
$labels['name'] = 'Name';
|
||||
$labels['color'] = 'Color';
|
||||
$labels['day'] = 'Day';
|
||||
$labels['week'] = 'Week';
|
||||
$labels['month'] = 'Month';
|
||||
$labels['agenda'] = 'Agenda';
|
||||
$labels['new'] = 'New';
|
||||
$labels['new_event'] = 'New event';
|
||||
$labels['edit_event'] = 'Edit event';
|
||||
$labels['edit'] = 'Edit';
|
||||
$labels['save'] = 'Save';
|
||||
$labels['removelist'] = 'Remove from list';
|
||||
$labels['cancel'] = 'Cancel';
|
||||
$labels['select'] = 'Select';
|
||||
$labels['print'] = 'Print';
|
||||
$labels['printtitle'] = 'Print calendars';
|
||||
$labels['title'] = 'Summary';
|
||||
$labels['description'] = 'Description';
|
||||
$labels['all-day'] = 'all-day';
|
||||
$labels['export'] = 'Export';
|
||||
$labels['exporttitle'] = 'Export to iCalendar';
|
||||
$labels['exportrange'] = 'Events from';
|
||||
$labels['exportattachments'] = 'With attachments';
|
||||
$labels['customdate'] = 'Custom date';
|
||||
$labels['location'] = 'Location';
|
||||
$labels['url'] = 'URL';
|
||||
$labels['date'] = 'Date';
|
||||
$labels['start'] = 'Start';
|
||||
$labels['starttime'] = 'Start time';
|
||||
$labels['end'] = 'End';
|
||||
$labels['endtime'] = 'End time';
|
||||
$labels['repeat'] = 'Repeat';
|
||||
$labels['selectdate'] = 'Choose date';
|
||||
$labels['freebusy'] = 'Show me as';
|
||||
$labels['free'] = 'Free';
|
||||
$labels['busy'] = 'Busy';
|
||||
$labels['outofoffice'] = 'Out of Office';
|
||||
$labels['tentative'] = 'Tentative';
|
||||
$labels['mystatus'] = 'My status';
|
||||
$labels['status'] = 'Status';
|
||||
$labels['status-confirmed'] = 'Confirmed';
|
||||
$labels['status-cancelled'] = 'Cancelled';
|
||||
$labels['priority'] = 'Priority';
|
||||
$labels['sensitivity'] = 'Privacy';
|
||||
$labels['public'] = 'public';
|
||||
$labels['private'] = 'private';
|
||||
$labels['confidential'] = 'confidential';
|
||||
$labels['alarms'] = 'Reminder';
|
||||
$labels['comment'] = 'Comment';
|
||||
$labels['created'] = 'Created';
|
||||
$labels['changed'] = 'Last Modified';
|
||||
$labels['unknown'] = 'Unknown';
|
||||
$labels['eventoptions'] = 'Options';
|
||||
$labels['generated'] = 'generated at';
|
||||
$labels['eventhistory'] = 'History';
|
||||
$labels['printdescriptions'] = 'Print descriptions';
|
||||
$labels['parentcalendar'] = 'Insert inside';
|
||||
$labels['searchearlierdates'] = '« Search for earlier events';
|
||||
$labels['searchlaterdates'] = 'Search for later events »';
|
||||
$labels['andnmore'] = '$nr more...';
|
||||
$labels['togglerole'] = 'Click to toggle role';
|
||||
$labels['createfrommail'] = 'Save as event';
|
||||
$labels['importevents'] = 'Import events';
|
||||
$labels['importrange'] = 'Events from';
|
||||
$labels['onemonthback'] = '1 month back';
|
||||
$labels['nmonthsback'] = '$nr months back';
|
||||
$labels['showurl'] = 'Show calendar URL';
|
||||
$labels['showurldescription'] = 'Use the following address to access (read only) your calendar from other applications. You can copy and paste this into any calendar software that supports the iCal format.';
|
||||
$labels['caldavurldescription'] = 'Copy this address to a <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a> client application (e.g. Evolution or Mozilla Thunderbird) to fully synchronize this specific calendar with your computer or mobile device.';
|
||||
$labels['findcalendars'] = 'Find calendars...';
|
||||
$labels['searchterms'] = 'Search terms';
|
||||
$labels['calsearchresults'] = 'Available Calendars';
|
||||
$labels['calendarsubscribe'] = 'List permanently';
|
||||
$labels['nocalendarsfound'] = 'No calendars found';
|
||||
$labels['nrcalendarsfound'] = '$nr calendars found';
|
||||
$labels['quickview'] = 'View only this calendar';
|
||||
$labels['invitationspending'] = 'Pending invitations';
|
||||
$labels['invitationsdeclined'] = 'Declined invitations';
|
||||
$labels['changepartstat'] = 'Change participant status';
|
||||
$labels['rsvpcomment'] = 'Invitation text';
|
||||
$labels['listrange'] = 'Range to display:';
|
||||
$labels['listsections'] = 'Divide into:';
|
||||
$labels['smartsections'] = 'Smart sections';
|
||||
$labels['until'] = 'until';
|
||||
$labels['today'] = 'Today';
|
||||
$labels['tomorrow'] = 'Tomorrow';
|
||||
$labels['thisweek'] = 'This week';
|
||||
$labels['nextweek'] = 'Next week';
|
||||
$labels['prevweek'] = 'Previous week';
|
||||
$labels['thismonth'] = 'This month';
|
||||
$labels['nextmonth'] = 'Next month';
|
||||
$labels['weekofyear'] = 'Week';
|
||||
$labels['pastevents'] = 'Past';
|
||||
$labels['futureevents'] = 'Future';
|
||||
$labels['showalarms'] = 'Show reminders';
|
||||
$labels['defaultalarmtype'] = 'Default reminder setting';
|
||||
$labels['defaultalarmoffset'] = 'Default reminder time';
|
||||
$labels['attendee'] = 'Participant';
|
||||
$labels['role'] = 'Role';
|
||||
$labels['availability'] = 'Avail.';
|
||||
$labels['confirmstate'] = 'Status';
|
||||
$labels['addattendee'] = 'Add participant';
|
||||
$labels['roleorganizer'] = 'Organizer';
|
||||
$labels['rolerequired'] = 'Required';
|
||||
$labels['roleoptional'] = 'Optional';
|
||||
$labels['rolechair'] = 'Chair';
|
||||
$labels['rolenonparticipant'] = 'Absent';
|
||||
$labels['cutypeindividual'] = 'Individual';
|
||||
$labels['cutypegroup'] = 'Group';
|
||||
$labels['cutyperesource'] = 'Resource';
|
||||
$labels['cutyperoom'] = 'Room';
|
||||
$labels['availfree'] = 'Free';
|
||||
$labels['availbusy'] = 'Busy';
|
||||
$labels['availunknown'] = 'Unknown';
|
||||
$labels['availtentative'] = 'Tentative';
|
||||
$labels['availoutofoffice'] = 'Out of Office';
|
||||
$labels['delegatedto'] = 'Delegated to: ';
|
||||
$labels['delegatedfrom'] = 'Delegated from: ';
|
||||
$labels['scheduletime'] = 'Find availability';
|
||||
$labels['sendinvitations'] = 'Send invitations';
|
||||
$labels['sendnotifications'] = 'Notify participants about modifications';
|
||||
$labels['sendcancellation'] = 'Notify participants about event cancellation';
|
||||
$labels['onlyworkinghours'] = 'Find availability within my working hours';
|
||||
$labels['reqallattendees'] = 'Required/all participants';
|
||||
$labels['prevslot'] = 'Previous Slot';
|
||||
$labels['nextslot'] = 'Next Slot';
|
||||
$labels['suggestedslot'] = 'Suggested Slot';
|
||||
$labels['noslotfound'] = 'Unable to find a free time slot';
|
||||
$labels['invitationsubject'] = 'You\'ve been invited to "$title"';
|
||||
$labels['invitationmailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nPlease find attached an iCalendar file with all the event details which you can import to your calendar application.";
|
||||
$labels['invitationattendlinks'] = "In case your email client doesn't support iTip requests you can use the following link to either accept or decline this invitation:\n\$url";
|
||||
$labels['eventupdatesubject'] = '"$title" has been updated';
|
||||
$labels['eventupdatesubjectempty'] = 'An event that concerns you has been updated';
|
||||
$labels['eventupdatemailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nPlease find attached an iCalendar file with the updated event details which you can import to your calendar application.";
|
||||
$labels['eventcancelsubject'] = '"$title" has been canceled';
|
||||
$labels['eventcancelmailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nThe event has been cancelled by \$organizer.\n\nPlease find attached an iCalendar file with the updated event details.";
|
||||
$labels['itipobjectnotfound'] = 'The event referred by this message was not found in your calendar.';
|
||||
$labels['itipmailbodyaccepted'] = "\$sender has accepted the invitation to the following event:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
|
||||
$labels['itipmailbodytentative'] = "\$sender has tentatively accepted the invitation to the following event:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
|
||||
$labels['itipmailbodydeclined'] = "\$sender has declined the invitation to the following event:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
|
||||
$labels['itipmailbodycancel'] = "\$sender has rejected your participation in the following event:\n\n*\$title*\n\nWhen: \$date";
|
||||
$labels['itipmailbodydelegated'] = "\$sender has delegated the participation in the following event:\n\n*\$title*\n\nWhen: \$date";
|
||||
$labels['itipmailbodydelegatedto'] = "\$sender has delegated the participation in the following event to you:\n\n*\$title*\n\nWhen: \$date";
|
||||
$labels['itipdeclineevent'] = 'Do you want to decline your invitation to this event?';
|
||||
$labels['declinedeleteconfirm'] = 'Do you also want to delete this declined event from your calendar?';
|
||||
$labels['itipcomment'] = 'Invitation/notification comment';
|
||||
$labels['itipcommenttitle'] = 'This comment will be attached to the invitation/notification message sent to participants';
|
||||
$labels['notanattendee'] = 'You\'re not listed as an attendee of this event';
|
||||
$labels['eventcancelled'] = 'The event has been cancelled';
|
||||
$labels['saveincalendar'] = 'save in';
|
||||
$labels['updatemycopy'] = 'Update in my calendar';
|
||||
$labels['savetocalendar'] = 'Save to calendar';
|
||||
$labels['openpreview'] = 'Check Calendar';
|
||||
$labels['noearlierevents'] = 'No earlier events';
|
||||
$labels['nolaterevents'] = 'No later events';
|
||||
$labels['resource'] = 'Resource';
|
||||
$labels['addresource'] = 'Book resource';
|
||||
$labels['findresources'] = 'Find resources';
|
||||
$labels['resourcedetails'] = 'Details';
|
||||
$labels['resourceavailability'] = 'Availability';
|
||||
$labels['resourceowner'] = 'Owner';
|
||||
$labels['resourceadded'] = 'The resource was added to your event';
|
||||
$labels['tabsummary'] = 'Summary';
|
||||
$labels['tabrecurrence'] = 'Recurrence';
|
||||
$labels['tabattendees'] = 'Participants';
|
||||
$labels['tabresources'] = 'Resources';
|
||||
$labels['tabattachments'] = 'Attachments';
|
||||
$labels['tabsharing'] = 'Sharing';
|
||||
$labels['deleteobjectconfirm'] = 'Do you really want to delete this event?';
|
||||
$labels['deleteventconfirm'] = 'Do you really want to delete this event?';
|
||||
$labels['deletecalendarconfirm'] = 'Do you really want to delete this calendar with all its events?';
|
||||
$labels['deletecalendarconfirmrecursive'] = 'Do you really want to delete this calendar with all its events and sub-calendars?';
|
||||
$labels['savingdata'] = 'Saving data...';
|
||||
$labels['errorsaving'] = 'Failed to save changes.';
|
||||
$labels['operationfailed'] = 'The requested operation failed.';
|
||||
$labels['invalideventdates'] = 'Invalid dates entered! Please check your input.';
|
||||
$labels['invalidcalendarproperties'] = 'Invalid calendar properties! Please set a valid name.';
|
||||
$labels['searchnoresults'] = 'No events found in the selected calendars.';
|
||||
$labels['successremoval'] = 'The event has been deleted successfully.';
|
||||
$labels['successrestore'] = 'The event has been restored successfully.';
|
||||
$labels['errornotifying'] = 'Failed to send notifications to event participants';
|
||||
$labels['errorimportingevent'] = 'Failed to import the event';
|
||||
$labels['importwarningexists'] = 'A copy of this event already exists in your calendar.';
|
||||
$labels['newerversionexists'] = 'A newer version of this event already exists! Aborted.';
|
||||
$labels['nowritecalendarfound'] = 'No calendar found to save the event';
|
||||
$labels['importedsuccessfully'] = 'The event was successfully added to \'$calendar\'';
|
||||
$labels['updatedsuccessfully'] = 'The event was successfully updated in \'$calendar\'';
|
||||
$labels['attendeupdateesuccess'] = 'Successfully updated the participant\'s status';
|
||||
$labels['itipsendsuccess'] = 'Invitation sent to participants.';
|
||||
$labels['itipresponseerror'] = 'Failed to send the response to this event invitation';
|
||||
$labels['itipinvalidrequest'] = 'This invitation is no longer valid';
|
||||
$labels['sentresponseto'] = 'Successfully sent invitation response to $mailto';
|
||||
$labels['localchangeswarning'] = 'You are about to make changes that will only be reflected on your calendar and not be sent to the organizer of the event.';
|
||||
$labels['importsuccess'] = 'Successfully imported $nr events';
|
||||
$labels['importnone'] = 'No events found to be imported';
|
||||
$labels['importerror'] = 'An error occured while importing';
|
||||
$labels['aclnorights'] = 'You do not have administrator rights on this calendar.';
|
||||
$labels['changeeventconfirm'] = 'Change event';
|
||||
$labels['removeeventconfirm'] = 'Delete event';
|
||||
$labels['changerecurringeventwarning'] = 'This is a recurring event. Would you like to edit the current event only, this and all future occurences, all occurences or save it as a new event?';
|
||||
$labels['removerecurringeventwarning'] = 'This is a recurring event. Would you like to delete the current event only, this and all future occurences or all occurences of this event?';
|
||||
$labels['currentevent'] = 'Current';
|
||||
$labels['futurevents'] = 'Future';
|
||||
$labels['allevents'] = 'All';
|
||||
$labels['saveasnew'] = 'Save as new';
|
||||
$labels['birthdays'] = 'Birthdays';
|
||||
$labels['birthdayscalendar'] = 'Birthdays Calendar';
|
||||
$labels['displaybirthdayscalendar'] = 'Display birthdays calendar';
|
||||
$labels['birthdayscalendarsources'] = 'From these address books';
|
||||
$labels['birthdayeventtitle'] = '$name\'s Birthday';
|
||||
$labels['birthdayage'] = 'Age $age';
|
||||
$labels['eventchangelog'] = 'Change History';
|
||||
$labels['eventdiff'] = 'Changes from revisions $rev';
|
||||
$labels['revision'] = 'Revision';
|
||||
$labels['user'] = 'User';
|
||||
$labels['operation'] = 'Action';
|
||||
$labels['actionappend'] = 'Saved';
|
||||
$labels['actionmove'] = 'Moved';
|
||||
$labels['actiondelete'] = 'Deleted';
|
||||
$labels['compare'] = 'Compare';
|
||||
$labels['showrevision'] = 'Show this version';
|
||||
$labels['restore'] = 'Restore this version';
|
||||
$labels['eventnotfound'] = 'Failed to load event data';
|
||||
$labels['eventchangelognotavailable'] = 'Change history is not available for this event';
|
||||
$labels['eventdiffnotavailable'] = 'No comparison possible for the selected revisions';
|
||||
$labels['eventrestoreconfirm'] = 'Do you really want to restore revision $rev of this event? This will replace the current event with the old version.';
|
||||
$labels['arialabelminical'] = 'Calendar date selection';
|
||||
$labels['arialabelcalendarview'] = 'Calendar view';
|
||||
$labels['arialabelsearchform'] = 'Event search form';
|
||||
$labels['arialabelquicksearchbox'] = 'Event search input';
|
||||
$labels['arialabelcalsearchform'] = 'Calendars search form';
|
||||
$labels['calendaractions'] = 'Calendar actions';
|
||||
$labels['arialabeleventattendees'] = 'Event participants list';
|
||||
$labels['arialabeleventresources'] = 'Event resources list';
|
||||
$labels['arialabelresourcesearchform'] = 'Resources search form';
|
||||
$labels['arialabelresourceselection'] = 'Available resources';
|
||||
?>
|
76
localization/zh_CN.inc
Normal file
|
@ -0,0 +1,76 @@
|
|||
<?php
|
||||
/**
|
||||
* Localizations for Kolab Calendar plugin
|
||||
*
|
||||
* Copyright (C) 2014, Kolab Systems AG
|
||||
*
|
||||
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
|
||||
*/
|
||||
$labels['default_view'] = '默认视图';
|
||||
$labels['time_format'] = '时间格式';
|
||||
$labels['workinghours'] = '工作时间';
|
||||
$labels['add_category'] = '增加分类';
|
||||
$labels['remove_category'] = '移除分类';
|
||||
$labels['aftertrash'] = '移到回收站';
|
||||
$labels['afterdelete'] = '删除此信息';
|
||||
$labels['afterflagdeleted'] = '被删除标签';
|
||||
$labels['aftermoveto'] = '移到...';
|
||||
$labels['category'] = '分类';
|
||||
$labels['categories'] = '类别';
|
||||
$labels['name'] = '名称';
|
||||
$labels['color'] = '颜色';
|
||||
$labels['day'] = '天';
|
||||
$labels['week'] = '周';
|
||||
$labels['month'] = '月';
|
||||
$labels['agenda'] = '议程表';
|
||||
$labels['new'] = '新建';
|
||||
$labels['new_event'] = '新建事件';
|
||||
$labels['edit_event'] = '编辑事件';
|
||||
$labels['edit'] = '编辑';
|
||||
$labels['save'] = '保存';
|
||||
$labels['removelist'] = '从列表中移除';
|
||||
$labels['cancel'] = '取消';
|
||||
$labels['select'] = '选择';
|
||||
$labels['print'] = '打印';
|
||||
$labels['title'] = '汇总';
|
||||
$labels['description'] = '描述';
|
||||
$labels['export'] = '导出';
|
||||
$labels['exporttitle'] = '导出到ICalendar';
|
||||
$labels['date'] = '日期';
|
||||
$labels['start'] = '开始';
|
||||
$labels['starttime'] = '开始时间';
|
||||
$labels['end'] = '结束';
|
||||
$labels['endtime'] = '结束时间';
|
||||
$labels['repeat'] = '循环';
|
||||
$labels['selectdate'] = '选择日期';
|
||||
$labels['free'] = '空闲';
|
||||
$labels['busy'] = '忙碌';
|
||||
$labels['outofoffice'] = '外出';
|
||||
$labels['tentative'] = '临时';
|
||||
$labels['mystatus'] = '我的状态';
|
||||
$labels['status'] = '状态';
|
||||
$labels['status-confirmed'] = '已确认';
|
||||
$labels['status-cancelled'] = '已取消';
|
||||
$labels['priority'] = '优先级';
|
||||
$labels['sensitivity'] = '隐私';
|
||||
$labels['public'] = '公开';
|
||||
$labels['private'] = '私人';
|
||||
$labels['confidential'] = '保密的';
|
||||
$labels['links'] = '参考';
|
||||
$labels['alarms'] = '提醒';
|
||||
$labels['comment'] = '注释';
|
||||
$labels['created'] = '已创建';
|
||||
$labels['changed'] = '最后更改';
|
||||
$labels['unknown'] = '未知';
|
||||
$labels['eventoptions'] = '选项';
|
||||
$labels['weekofyear'] = '周';
|
||||
$labels['confirmstate'] = '状态';
|
||||
$labels['availfree'] = '空闲';
|
||||
$labels['availbusy'] = '忙碌';
|
||||
$labels['availunknown'] = '未知';
|
||||
$labels['availtentative'] = '临时';
|
||||
$labels['availoutofoffice'] = '外出';
|
||||
$labels['tabsummary'] = '汇总';
|
||||
$labels['tabsharing'] = '分享';
|
||||
$labels['savingdata'] = '保存数据...';
|
||||
?>
|
272
localization/zh_TW.inc
Normal file
|
@ -0,0 +1,272 @@
|
|||
<?php
|
||||
/**
|
||||
* Localizations for Kolab Calendar plugin
|
||||
*
|
||||
* Copyright (C) 2014, Kolab Systems AG
|
||||
*
|
||||
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
|
||||
*/
|
||||
$labels['default_view'] = 'Default view';
|
||||
$labels['time_format'] = 'Time format';
|
||||
$labels['timeslots'] = 'Time slots per hour';
|
||||
$labels['first_day'] = 'First weekday';
|
||||
$labels['first_hour'] = 'First hour to show';
|
||||
$labels['workinghours'] = 'Working hours';
|
||||
$labels['add_category'] = 'Add category';
|
||||
$labels['remove_category'] = 'Remove category';
|
||||
$labels['defaultcalendar'] = 'Create new events in';
|
||||
$labels['eventcoloring'] = 'Event coloring';
|
||||
$labels['coloringmode0'] = 'According to calendar';
|
||||
$labels['coloringmode1'] = 'According to category';
|
||||
$labels['coloringmode2'] = 'Calendar for outline, category for content';
|
||||
$labels['coloringmode3'] = 'Category for outline, calendar for content';
|
||||
$labels['afternothing'] = 'Do nothing';
|
||||
$labels['aftertrash'] = 'Move to Trash';
|
||||
$labels['afterdelete'] = 'Delete the message';
|
||||
$labels['afterflagdeleted'] = 'Flag as deleted';
|
||||
$labels['aftermoveto'] = 'Move to...';
|
||||
$labels['itipoptions'] = 'Event Invitations';
|
||||
$labels['afteraction'] = 'After an invitation or update message is processed';
|
||||
$labels['calendar'] = 'Calendar';
|
||||
$labels['calendars'] = 'Calendars';
|
||||
$labels['category'] = 'Category';
|
||||
$labels['categories'] = 'Categories';
|
||||
$labels['createcalendar'] = 'Create new calendar';
|
||||
$labels['editcalendar'] = 'Edit calendar properties';
|
||||
$labels['name'] = 'Name';
|
||||
$labels['color'] = 'Color';
|
||||
$labels['day'] = 'Day';
|
||||
$labels['week'] = 'Week';
|
||||
$labels['month'] = 'Month';
|
||||
$labels['agenda'] = 'Agenda';
|
||||
$labels['new'] = 'New';
|
||||
$labels['new_event'] = 'New event';
|
||||
$labels['edit_event'] = 'Edit event';
|
||||
$labels['edit'] = 'Edit';
|
||||
$labels['save'] = 'Save';
|
||||
$labels['removelist'] = 'Remove from list';
|
||||
$labels['cancel'] = 'Cancel';
|
||||
$labels['select'] = 'Select';
|
||||
$labels['print'] = 'Print';
|
||||
$labels['printtitle'] = 'Print calendars';
|
||||
$labels['title'] = 'Summary';
|
||||
$labels['description'] = 'Description';
|
||||
$labels['all-day'] = 'all-day';
|
||||
$labels['export'] = 'Export';
|
||||
$labels['exporttitle'] = 'Export to iCalendar';
|
||||
$labels['exportrange'] = 'Events from';
|
||||
$labels['exportattachments'] = 'With attachments';
|
||||
$labels['customdate'] = 'Custom date';
|
||||
$labels['location'] = 'Location';
|
||||
$labels['url'] = 'URL';
|
||||
$labels['date'] = 'Date';
|
||||
$labels['start'] = 'Start';
|
||||
$labels['starttime'] = 'Start time';
|
||||
$labels['end'] = 'End';
|
||||
$labels['endtime'] = 'End time';
|
||||
$labels['repeat'] = 'Repeat';
|
||||
$labels['selectdate'] = 'Choose date';
|
||||
$labels['freebusy'] = 'Show me as';
|
||||
$labels['free'] = 'Free';
|
||||
$labels['busy'] = 'Busy';
|
||||
$labels['outofoffice'] = 'Out of Office';
|
||||
$labels['tentative'] = 'Tentative';
|
||||
$labels['mystatus'] = 'My status';
|
||||
$labels['status'] = 'Status';
|
||||
$labels['status-confirmed'] = 'Confirmed';
|
||||
$labels['status-cancelled'] = 'Cancelled';
|
||||
$labels['priority'] = 'Priority';
|
||||
$labels['sensitivity'] = 'Privacy';
|
||||
$labels['public'] = 'public';
|
||||
$labels['private'] = 'private';
|
||||
$labels['confidential'] = 'confidential';
|
||||
$labels['alarms'] = 'Reminder';
|
||||
$labels['comment'] = 'Comment';
|
||||
$labels['created'] = 'Created';
|
||||
$labels['changed'] = 'Last Modified';
|
||||
$labels['unknown'] = 'Unknown';
|
||||
$labels['eventoptions'] = 'Options';
|
||||
$labels['generated'] = 'generated at';
|
||||
$labels['eventhistory'] = 'History';
|
||||
$labels['printdescriptions'] = 'Print descriptions';
|
||||
$labels['parentcalendar'] = 'Insert inside';
|
||||
$labels['searchearlierdates'] = '« Search for earlier events';
|
||||
$labels['searchlaterdates'] = 'Search for later events »';
|
||||
$labels['andnmore'] = '$nr more...';
|
||||
$labels['togglerole'] = 'Click to toggle role';
|
||||
$labels['createfrommail'] = 'Save as event';
|
||||
$labels['importevents'] = 'Import events';
|
||||
$labels['importrange'] = 'Events from';
|
||||
$labels['onemonthback'] = '1 month back';
|
||||
$labels['nmonthsback'] = '$nr months back';
|
||||
$labels['showurl'] = 'Show calendar URL';
|
||||
$labels['showurldescription'] = 'Use the following address to access (read only) your calendar from other applications. You can copy and paste this into any calendar software that supports the iCal format.';
|
||||
$labels['caldavurldescription'] = 'Copy this address to a <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a> client application (e.g. Evolution or Mozilla Thunderbird) to fully synchronize this specific calendar with your computer or mobile device.';
|
||||
$labels['findcalendars'] = 'Find calendars...';
|
||||
$labels['searchterms'] = 'Search terms';
|
||||
$labels['calsearchresults'] = 'Available Calendars';
|
||||
$labels['calendarsubscribe'] = 'List permanently';
|
||||
$labels['nocalendarsfound'] = 'No calendars found';
|
||||
$labels['nrcalendarsfound'] = '$nr calendars found';
|
||||
$labels['quickview'] = 'View only this calendar';
|
||||
$labels['invitationspending'] = 'Pending invitations';
|
||||
$labels['invitationsdeclined'] = 'Declined invitations';
|
||||
$labels['changepartstat'] = 'Change participant status';
|
||||
$labels['rsvpcomment'] = 'Invitation text';
|
||||
$labels['listrange'] = 'Range to display:';
|
||||
$labels['listsections'] = 'Divide into:';
|
||||
$labels['smartsections'] = 'Smart sections';
|
||||
$labels['until'] = 'until';
|
||||
$labels['today'] = 'Today';
|
||||
$labels['tomorrow'] = 'Tomorrow';
|
||||
$labels['thisweek'] = 'This week';
|
||||
$labels['nextweek'] = 'Next week';
|
||||
$labels['prevweek'] = 'Previous week';
|
||||
$labels['thismonth'] = 'This month';
|
||||
$labels['nextmonth'] = 'Next month';
|
||||
$labels['weekofyear'] = 'Week';
|
||||
$labels['pastevents'] = 'Past';
|
||||
$labels['futureevents'] = 'Future';
|
||||
$labels['showalarms'] = 'Show reminders';
|
||||
$labels['defaultalarmtype'] = 'Default reminder setting';
|
||||
$labels['defaultalarmoffset'] = 'Default reminder time';
|
||||
$labels['attendee'] = 'Participant';
|
||||
$labels['role'] = 'Role';
|
||||
$labels['availability'] = 'Avail.';
|
||||
$labels['confirmstate'] = 'Status';
|
||||
$labels['addattendee'] = 'Add participant';
|
||||
$labels['roleorganizer'] = 'Organizer';
|
||||
$labels['rolerequired'] = 'Required';
|
||||
$labels['roleoptional'] = 'Optional';
|
||||
$labels['rolechair'] = 'Chair';
|
||||
$labels['rolenonparticipant'] = 'Absent';
|
||||
$labels['cutypeindividual'] = 'Individual';
|
||||
$labels['cutypegroup'] = 'Group';
|
||||
$labels['cutyperesource'] = 'Resource';
|
||||
$labels['cutyperoom'] = 'Room';
|
||||
$labels['availfree'] = 'Free';
|
||||
$labels['availbusy'] = 'Busy';
|
||||
$labels['availunknown'] = 'Unknown';
|
||||
$labels['availtentative'] = 'Tentative';
|
||||
$labels['availoutofoffice'] = 'Out of Office';
|
||||
$labels['delegatedto'] = 'Delegated to: ';
|
||||
$labels['delegatedfrom'] = 'Delegated from: ';
|
||||
$labels['scheduletime'] = 'Find availability';
|
||||
$labels['sendinvitations'] = 'Send invitations';
|
||||
$labels['sendnotifications'] = 'Notify participants about modifications';
|
||||
$labels['sendcancellation'] = 'Notify participants about event cancellation';
|
||||
$labels['onlyworkinghours'] = 'Find availability within my working hours';
|
||||
$labels['reqallattendees'] = 'Required/all participants';
|
||||
$labels['prevslot'] = 'Previous Slot';
|
||||
$labels['nextslot'] = 'Next Slot';
|
||||
$labels['suggestedslot'] = 'Suggested Slot';
|
||||
$labels['noslotfound'] = 'Unable to find a free time slot';
|
||||
$labels['invitationsubject'] = 'You\'ve been invited to "$title"';
|
||||
$labels['invitationmailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nPlease find attached an iCalendar file with all the event details which you can import to your calendar application.";
|
||||
$labels['invitationattendlinks'] = "In case your email client doesn't support iTip requests you can use the following link to either accept or decline this invitation:\n\$url";
|
||||
$labels['eventupdatesubject'] = '"$title" has been updated';
|
||||
$labels['eventupdatesubjectempty'] = 'An event that concerns you has been updated';
|
||||
$labels['eventupdatemailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nPlease find attached an iCalendar file with the updated event details which you can import to your calendar application.";
|
||||
$labels['eventcancelsubject'] = '"$title" has been canceled';
|
||||
$labels['eventcancelmailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nThe event has been cancelled by \$organizer.\n\nPlease find attached an iCalendar file with the updated event details.";
|
||||
$labels['itipobjectnotfound'] = 'The event referred by this message was not found in your calendar.';
|
||||
$labels['itipmailbodyaccepted'] = "\$sender has accepted the invitation to the following event:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
|
||||
$labels['itipmailbodytentative'] = "\$sender has tentatively accepted the invitation to the following event:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
|
||||
$labels['itipmailbodydeclined'] = "\$sender has declined the invitation to the following event:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
|
||||
$labels['itipmailbodycancel'] = "\$sender has rejected your participation in the following event:\n\n*\$title*\n\nWhen: \$date";
|
||||
$labels['itipmailbodydelegated'] = "\$sender has delegated the participation in the following event:\n\n*\$title*\n\nWhen: \$date";
|
||||
$labels['itipmailbodydelegatedto'] = "\$sender has delegated the participation in the following event to you:\n\n*\$title*\n\nWhen: \$date";
|
||||
$labels['itipdeclineevent'] = 'Do you want to decline your invitation to this event?';
|
||||
$labels['declinedeleteconfirm'] = 'Do you also want to delete this declined event from your calendar?';
|
||||
$labels['itipcomment'] = 'Invitation/notification comment';
|
||||
$labels['itipcommenttitle'] = 'This comment will be attached to the invitation/notification message sent to participants';
|
||||
$labels['notanattendee'] = 'You\'re not listed as an attendee of this event';
|
||||
$labels['eventcancelled'] = 'The event has been cancelled';
|
||||
$labels['saveincalendar'] = 'save in';
|
||||
$labels['updatemycopy'] = 'Update in my calendar';
|
||||
$labels['savetocalendar'] = 'Save to calendar';
|
||||
$labels['openpreview'] = 'Check Calendar';
|
||||
$labels['noearlierevents'] = 'No earlier events';
|
||||
$labels['nolaterevents'] = 'No later events';
|
||||
$labels['resource'] = 'Resource';
|
||||
$labels['addresource'] = 'Book resource';
|
||||
$labels['findresources'] = 'Find resources';
|
||||
$labels['resourcedetails'] = 'Details';
|
||||
$labels['resourceavailability'] = 'Availability';
|
||||
$labels['resourceowner'] = 'Owner';
|
||||
$labels['resourceadded'] = 'The resource was added to your event';
|
||||
$labels['tabsummary'] = 'Summary';
|
||||
$labels['tabrecurrence'] = 'Recurrence';
|
||||
$labels['tabattendees'] = 'Participants';
|
||||
$labels['tabresources'] = 'Resources';
|
||||
$labels['tabattachments'] = 'Attachments';
|
||||
$labels['tabsharing'] = 'Sharing';
|
||||
$labels['deleteobjectconfirm'] = 'Do you really want to delete this event?';
|
||||
$labels['deleteventconfirm'] = 'Do you really want to delete this event?';
|
||||
$labels['deletecalendarconfirm'] = 'Do you really want to delete this calendar with all its events?';
|
||||
$labels['deletecalendarconfirmrecursive'] = 'Do you really want to delete this calendar with all its events and sub-calendars?';
|
||||
$labels['savingdata'] = 'Saving data...';
|
||||
$labels['errorsaving'] = 'Failed to save changes.';
|
||||
$labels['operationfailed'] = 'The requested operation failed.';
|
||||
$labels['invalideventdates'] = 'Invalid dates entered! Please check your input.';
|
||||
$labels['invalidcalendarproperties'] = 'Invalid calendar properties! Please set a valid name.';
|
||||
$labels['searchnoresults'] = 'No events found in the selected calendars.';
|
||||
$labels['successremoval'] = 'The event has been deleted successfully.';
|
||||
$labels['successrestore'] = 'The event has been restored successfully.';
|
||||
$labels['errornotifying'] = 'Failed to send notifications to event participants';
|
||||
$labels['errorimportingevent'] = 'Failed to import the event';
|
||||
$labels['importwarningexists'] = 'A copy of this event already exists in your calendar.';
|
||||
$labels['newerversionexists'] = 'A newer version of this event already exists! Aborted.';
|
||||
$labels['nowritecalendarfound'] = 'No calendar found to save the event';
|
||||
$labels['importedsuccessfully'] = 'The event was successfully added to \'$calendar\'';
|
||||
$labels['updatedsuccessfully'] = 'The event was successfully updated in \'$calendar\'';
|
||||
$labels['attendeupdateesuccess'] = 'Successfully updated the participant\'s status';
|
||||
$labels['itipsendsuccess'] = 'Invitation sent to participants.';
|
||||
$labels['itipresponseerror'] = 'Failed to send the response to this event invitation';
|
||||
$labels['itipinvalidrequest'] = 'This invitation is no longer valid';
|
||||
$labels['sentresponseto'] = 'Successfully sent invitation response to $mailto';
|
||||
$labels['localchangeswarning'] = 'You are about to make changes that will only be reflected on your calendar and not be sent to the organizer of the event.';
|
||||
$labels['importsuccess'] = 'Successfully imported $nr events';
|
||||
$labels['importnone'] = 'No events found to be imported';
|
||||
$labels['importerror'] = 'An error occured while importing';
|
||||
$labels['aclnorights'] = 'You do not have administrator rights on this calendar.';
|
||||
$labels['changeeventconfirm'] = 'Change event';
|
||||
$labels['removeeventconfirm'] = 'Delete event';
|
||||
$labels['changerecurringeventwarning'] = 'This is a recurring event. Would you like to edit the current event only, this and all future occurences, all occurences or save it as a new event?';
|
||||
$labels['removerecurringeventwarning'] = 'This is a recurring event. Would you like to delete the current event only, this and all future occurences or all occurences of this event?';
|
||||
$labels['currentevent'] = 'Current';
|
||||
$labels['futurevents'] = 'Future';
|
||||
$labels['allevents'] = 'All';
|
||||
$labels['saveasnew'] = 'Save as new';
|
||||
$labels['birthdays'] = 'Birthdays';
|
||||
$labels['birthdayscalendar'] = 'Birthdays Calendar';
|
||||
$labels['displaybirthdayscalendar'] = 'Display birthdays calendar';
|
||||
$labels['birthdayscalendarsources'] = 'From these address books';
|
||||
$labels['birthdayeventtitle'] = '$name\'s Birthday';
|
||||
$labels['birthdayage'] = 'Age $age';
|
||||
$labels['eventchangelog'] = 'Change History';
|
||||
$labels['eventdiff'] = 'Changes from revisions $rev';
|
||||
$labels['revision'] = 'Revision';
|
||||
$labels['user'] = 'User';
|
||||
$labels['operation'] = 'Action';
|
||||
$labels['actionappend'] = 'Saved';
|
||||
$labels['actionmove'] = 'Moved';
|
||||
$labels['actiondelete'] = 'Deleted';
|
||||
$labels['compare'] = 'Compare';
|
||||
$labels['showrevision'] = 'Show this version';
|
||||
$labels['restore'] = 'Restore this version';
|
||||
$labels['eventnotfound'] = 'Failed to load event data';
|
||||
$labels['eventchangelognotavailable'] = 'Change history is not available for this event';
|
||||
$labels['eventdiffnotavailable'] = 'No comparison possible for the selected revisions';
|
||||
$labels['eventrestoreconfirm'] = 'Do you really want to restore revision $rev of this event? This will replace the current event with the old version.';
|
||||
$labels['arialabelminical'] = 'Calendar date selection';
|
||||
$labels['arialabelcalendarview'] = 'Calendar view';
|
||||
$labels['arialabelsearchform'] = 'Event search form';
|
||||
$labels['arialabelquicksearchbox'] = 'Event search input';
|
||||
$labels['arialabelcalsearchform'] = 'Calendars search form';
|
||||
$labels['calendaractions'] = 'Calendar actions';
|
||||
$labels['arialabeleventattendees'] = 'Event participants list';
|
||||
$labels['arialabeleventresources'] = 'Event resources list';
|
||||
$labels['arialabelresourcesearchform'] = 'Resources search form';
|
||||
$labels['arialabelresourceselection'] = 'Available resources';
|
||||
?>
|
18
print.js
|
@ -1,9 +1,11 @@
|
|||
/**
|
||||
* Print view for the Calendar plugin
|
||||
*
|
||||
* @version @package_version@
|
||||
* @author Thomas Bruederli <bruederli@kolabsys.com>
|
||||
*
|
||||
* @licstart The following is the entire license notice for the
|
||||
* JavaScript code in this file.
|
||||
*
|
||||
* Copyright (C) 2011, Kolab Systems AG <contact@kolabsys.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
@ -18,6 +20,9 @@
|
|||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* @licend The above is the entire license notice
|
||||
* for the JavaScript code in this file.
|
||||
*/
|
||||
|
||||
|
||||
|
@ -38,6 +43,9 @@ window.rcmail && rcmail.addEventListener('init', function(evt) {
|
|||
var src, event_sources = [];
|
||||
var add_url = (rcmail.env.search ? '&q='+escape(rcmail.env.search) : '');
|
||||
for (var id in rcmail.env.calendars) {
|
||||
if (!rcmail.env.calendars[id].active)
|
||||
continue;
|
||||
|
||||
source = $.extend({
|
||||
url: "./?_task=calendar&_action=load_events&source=" + escape(id) + add_url,
|
||||
className: 'fc-event-cal-'+id,
|
||||
|
@ -120,8 +128,8 @@ window.rcmail && rcmail.addEventListener('init', function(evt) {
|
|||
},
|
||||
// event rendering
|
||||
eventRender: function(event, element, view) {
|
||||
if (view.name != 'month') {
|
||||
var cont = element.find('div.fc-event-title');
|
||||
if (view.name != 'month' && view.name != 'table') {
|
||||
var cont = element.find('.fc-event-title');
|
||||
if (event.location) {
|
||||
cont.after('<div class="fc-event-location">@ ' + Q(event.location) + '</div>');
|
||||
cont = cont.next();
|
||||
|
@ -131,9 +139,9 @@ window.rcmail && rcmail.addEventListener('init', function(evt) {
|
|||
}
|
||||
/* TODO: create icons black on white
|
||||
if (event.recurrence)
|
||||
element.find('div.fc-event-time').append('<i class="fc-icon-recurring"></i>');
|
||||
element.find('.fc-event-time').append('<i class="fc-icon-recurring"></i>');
|
||||
if (event.alarms)
|
||||
element.find('div.fc-event-time').append('<i class="fc-icon-alarms"></i>');
|
||||
element.find('.fc-event-time').append('<i class="fc-icon-alarms"></i>');
|
||||
*/
|
||||
}
|
||||
if (view.name == 'table' && event.description && showdesc) {
|
||||
|
|
|
@ -16,7 +16,7 @@ body.calendarmain {
|
|||
#main {
|
||||
position: absolute;
|
||||
clear: both;
|
||||
top: 90px;
|
||||
top: 72px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 10px;
|
||||
|
@ -24,13 +24,15 @@ body.calendarmain {
|
|||
|
||||
#calendarsidebar {
|
||||
position: absolute;
|
||||
top: 37px;
|
||||
top: 0px;
|
||||
left: 10px;
|
||||
bottom: 0;
|
||||
width: 230px;
|
||||
}
|
||||
|
||||
#datepicker {
|
||||
position: relative;
|
||||
top: 42px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
|
@ -62,7 +64,7 @@ body.calendarmain {
|
|||
position: absolute;
|
||||
left: 244px;
|
||||
width: 8px;
|
||||
top: 37px;
|
||||
top: 4px;
|
||||
bottom: 0;
|
||||
background: url(images/toggle.gif) 0 48% no-repeat transparent;
|
||||
cursor: pointer;
|
||||
|
@ -78,7 +80,7 @@ div.sidebarclosed {
|
|||
|
||||
#calendar {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
top: 4px;
|
||||
left: 256px;
|
||||
right: 10px;
|
||||
bottom: 0;
|
||||
|
@ -94,7 +96,7 @@ pre {
|
|||
|
||||
#calendars {
|
||||
position: absolute;
|
||||
top: 220px;
|
||||
top: 228px;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
|
@ -103,6 +105,14 @@ pre {
|
|||
overflow: hidden;
|
||||
}
|
||||
|
||||
#calendars .boxlistcontent {
|
||||
top: 43px;
|
||||
}
|
||||
|
||||
#calendars .listsearchbox {
|
||||
padding: 2px 4px;
|
||||
}
|
||||
|
||||
#calendarslist {
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
|
@ -120,54 +130,143 @@ pre {
|
|||
cursor: default;
|
||||
}
|
||||
|
||||
#calendarslist li label {
|
||||
#calendars .treelist li {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#calendars .treelist ul li:last-child {
|
||||
border-bottom: 0;
|
||||
}
|
||||
|
||||
#calendars .treelist li div.folder,
|
||||
#calendars .treelist li div.calendar {
|
||||
position: relative;
|
||||
height: 22px;
|
||||
}
|
||||
|
||||
#calendars .treelist li span.calname {
|
||||
display: block;
|
||||
}
|
||||
|
||||
#calendarslist li span.handle {
|
||||
padding: 0px 30px 2px 2px;
|
||||
position: absolute;
|
||||
top: 4px;
|
||||
left: 38px;
|
||||
right: 40px;
|
||||
cursor: default;
|
||||
background: url(images/calendars.png) 0 -2px no-repeat;
|
||||
background: url(images/calendars.png) right 20px no-repeat;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
#calendars .treelist li div.virtual > span.calname {
|
||||
color: #aaa;
|
||||
left: 20px;
|
||||
}
|
||||
|
||||
#calendars .treelist.flat li span.calname {
|
||||
left: 24px;
|
||||
right: 22px;
|
||||
}
|
||||
|
||||
#calendars .treelist li span.handle {
|
||||
display: inline-block;
|
||||
width: 20px;
|
||||
position: absolute;
|
||||
top: 5px;
|
||||
right: 6px;
|
||||
padding: 0;
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
border-radius: 3px;
|
||||
font-size: 0.8em;
|
||||
}
|
||||
|
||||
#calendarslist li input {
|
||||
margin-right: 5px;
|
||||
#calendars .treelist li a.subscribed {
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
top: 2px;
|
||||
right: 22px;
|
||||
height: 16px;
|
||||
width: 16px;
|
||||
padding: 0;
|
||||
background: url(images/calendars.png) -100px 0 no-repeat;
|
||||
overflow: hidden;
|
||||
text-indent: -5000px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#calendarslist li.selected {
|
||||
#calendars .treelist div:hover > a.subscribed {
|
||||
background-position: 0 -126px;
|
||||
}
|
||||
|
||||
#calendars .treelist div.subscribed a.subscribed {
|
||||
background-position: 0 -144px;
|
||||
}
|
||||
|
||||
#calendars .treelist li input {
|
||||
position: absolute;
|
||||
top: 1px;
|
||||
left: 18px;
|
||||
}
|
||||
|
||||
#calendars .treelist li div.treetoggle {
|
||||
top: -1px;
|
||||
left: 1px !important;
|
||||
}
|
||||
|
||||
#calendars .treelist ul li div.treetoggle {
|
||||
left: 17px !important;
|
||||
}
|
||||
|
||||
#calendars .treelist ul ul li div.treetoggle {
|
||||
left: 33px !important;
|
||||
}
|
||||
|
||||
#calendars .treelist.flat li input {
|
||||
left: 4px;
|
||||
}
|
||||
|
||||
#calendars .treelist ul li div.folder,
|
||||
#calendars .treelist ul li div.calendar {
|
||||
margin-left: 16px;
|
||||
}
|
||||
|
||||
#calendars .treelist ul ul li div.folder,
|
||||
#calendars .treelist ul ul li div.calendar {
|
||||
margin-left: 32px;
|
||||
}
|
||||
|
||||
#calendars .treelist ul ul ul li div.folder,
|
||||
#calendars .treelist ul ul ul li div.calendar {
|
||||
margin-left: 48px;
|
||||
}
|
||||
|
||||
#calendars .treelist li.selected {
|
||||
background-color: #ccc;
|
||||
border-bottom: 1px solid #bbb;
|
||||
}
|
||||
|
||||
#calendarslist li.selected span {
|
||||
#calendars .treelist li.selected > span.calname {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#calendarslist li.readonly span.handle {
|
||||
background-position: 0 -20px;
|
||||
#calendars .treelist div.readonly span.calname {
|
||||
background-position: right -20px;
|
||||
}
|
||||
|
||||
#calendarslist li.other span.handle {
|
||||
background-position: 0 -38px;
|
||||
}
|
||||
|
||||
#calendarslist li.other.readonly span.handle {
|
||||
background-position: 0 -56px;
|
||||
}
|
||||
|
||||
#calendarslist li.shared span.handle {
|
||||
background-position: 0 -74px;
|
||||
}
|
||||
|
||||
#calendarslist li.shared.readonly span.handle {
|
||||
background-position: 0 -92px;
|
||||
#calendars .treelist li.user > div > span.calname {
|
||||
background-position: right -38px;
|
||||
}
|
||||
|
||||
#calendarslist li.virtual span.calname {
|
||||
color: #666;
|
||||
}
|
||||
|
||||
#calendars .searchresults .boxtitle {
|
||||
border-top: 1px solid #aaa;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
#calfeedurl,
|
||||
#caldavurl {
|
||||
width: 98%;
|
||||
|
@ -207,8 +306,8 @@ pre {
|
|||
|
||||
#calendartoolbar {
|
||||
position: absolute;
|
||||
top: 45px;
|
||||
left: 256px;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
height: 35px;
|
||||
}
|
||||
|
||||
|
@ -269,11 +368,12 @@ pre {
|
|||
background-position: -128px -32px;
|
||||
}
|
||||
|
||||
#quicksearchbar {
|
||||
.calendarmain #quicksearchbar {
|
||||
top: 80px;
|
||||
right: 4px;
|
||||
}
|
||||
|
||||
div.uidialog {
|
||||
.calendarmain div.uidialog {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
@ -409,6 +509,10 @@ a.miniColors-trigger {
|
|||
background-position: right -60px;
|
||||
}
|
||||
|
||||
.event-attendees span.delegated {
|
||||
background-position: right -180px;
|
||||
}
|
||||
|
||||
.event-attendees span.organizer {
|
||||
background-position: right -80px;
|
||||
}
|
||||
|
@ -422,6 +526,10 @@ a.miniColors-trigger {
|
|||
|
||||
/* jQuery UI overrides */
|
||||
|
||||
.calendarmain .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
|
||||
float: left;
|
||||
}
|
||||
|
||||
#eventshow h1 {
|
||||
font-size: 20px;
|
||||
margin: 0.1em 0 0.4em 0;
|
||||
|
@ -439,6 +547,10 @@ a.miniColors-trigger {
|
|||
margin: 0 -0.2em;
|
||||
}
|
||||
|
||||
#eventshow.status-cancelled {
|
||||
background: url(images/badge_cancelled.png) top right no-repeat;
|
||||
}
|
||||
|
||||
#eventshow.sensitivity-private {
|
||||
background: url(images/badge_private.png) top right no-repeat;
|
||||
}
|
||||
|
@ -466,6 +578,41 @@ a.miniColors-trigger {
|
|||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
#event-rsvp .itip-reply-controls {
|
||||
margin-top: 0.5em;
|
||||
}
|
||||
|
||||
#eventshow .itip-reply-controls label {
|
||||
font-size: 1em;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
#event-partstat .changersvp {
|
||||
cursor: pointer;
|
||||
color: #333;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#event-partstat:hover .changersvp {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
#event-partstat .changersvp.accepted {
|
||||
color: #589b1e;
|
||||
}
|
||||
|
||||
#event-partstat .changersvp.tentative {
|
||||
color: #f0bb1d;
|
||||
}
|
||||
|
||||
#event-partstat .changersvp.declined {
|
||||
color: #ea0000;
|
||||
}
|
||||
|
||||
#event-partstat .changersvp.delegated {
|
||||
color: #018be9;
|
||||
}
|
||||
|
||||
#eventedit {
|
||||
position: relative;
|
||||
padding: 0.5em 0.1em;
|
||||
|
@ -530,6 +677,44 @@ td.topalign {
|
|||
vertical-align: top;
|
||||
}
|
||||
|
||||
#eventedit .edit-alarm-item {
|
||||
position: relative;
|
||||
padding-right: 30px;
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
|
||||
#eventedit .edit-alarm-buttons {
|
||||
position: absolute;
|
||||
top: 2px;
|
||||
right: 0;
|
||||
}
|
||||
|
||||
#eventedit .edit-alarm-buttons a.iconlink {
|
||||
display: none;
|
||||
width: 18px;
|
||||
height: 17px;
|
||||
padding: 1px;
|
||||
text-indent: -5000px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
#eventedit .edit-alarm-buttons a.add-alarm {
|
||||
background: url(images/plus.png) 1px 1px no-repeat;
|
||||
}
|
||||
|
||||
#eventedit .edit-alarm-buttons a.delete-alarm {
|
||||
background: url(images/delete.png) 1px 1px no-repeat;
|
||||
}
|
||||
|
||||
#eventedit .edit-alarm-buttons a.delete-alarm,
|
||||
#eventedit .first .edit-alarm-buttons a.add-alarm {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
#eventedit .first .edit-alarm-buttons a.delete-alarm {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#eventedit label.weekday,
|
||||
#eventedit label.monthday {
|
||||
min-width: 3em;
|
||||
|
@ -623,7 +808,7 @@ td.topalign {
|
|||
border: 1px solid #C2D071;
|
||||
}
|
||||
|
||||
#edit-attendees-table {
|
||||
.edit-attendees-table {
|
||||
width: 100%;
|
||||
display: table;
|
||||
table-layout: fixed;
|
||||
|
@ -631,49 +816,72 @@ td.topalign {
|
|||
border: 1px solid #ccc;
|
||||
}
|
||||
|
||||
#edit-attendees-table td {
|
||||
.edit-attendees-table th,
|
||||
.edit-attendees-table td {
|
||||
padding: 3px;
|
||||
border-bottom: 1px solid #ccc;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#edit-attendees-table td.role {
|
||||
.edit-attendees-table th.role,
|
||||
.edit-attendees-table td.role {
|
||||
width: 8em;
|
||||
}
|
||||
|
||||
#edit-attendees-table td.availability,
|
||||
#edit-attendees-table td.confirmstate {
|
||||
.edit-attendees-table th.availability,
|
||||
.edit-attendees-table th.confirmstate,
|
||||
.edit-attendees-table td.availability,
|
||||
.edit-attendees-table td.confirmstate {
|
||||
width: 4em;
|
||||
}
|
||||
|
||||
#edit-attendees-table td.options {
|
||||
width: 3em;
|
||||
.edit-attendees-table th.options,
|
||||
.edit-attendees-table td.options {
|
||||
width: 2em;
|
||||
text-align: right;
|
||||
padding-right: 4px;
|
||||
}
|
||||
|
||||
#edit-attendees-table td.name {
|
||||
.edit-attendees-table th.invite,
|
||||
.edit-attendees-table td.invite {
|
||||
width: 24px;
|
||||
padding: 2px;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: hidden;
|
||||
}
|
||||
|
||||
#eventedit .edit-attendees-table th.invite label {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.edit-attendees-table th.name,
|
||||
.edit-attendees-table td.name {
|
||||
width: auto;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
#edit-attendees-table thead td {
|
||||
.edit-attendees-table thead th,
|
||||
.edit-attendees-table thead td {
|
||||
background: url(images/listheader.gif) top left repeat-x #CCC;
|
||||
}
|
||||
|
||||
#edit-attendees-form {
|
||||
#edit-attendees-form,
|
||||
#edit-resources-form {
|
||||
position: relative;
|
||||
margin-top: 1em;
|
||||
}
|
||||
|
||||
#edit-attendees-form #edit-attendee-schedule {
|
||||
#edit-attendees-form #edit-attendee-schedule,
|
||||
#edit-resources-form #edit-resource-find {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
}
|
||||
|
||||
#edit-attendees-table select.edit-attendee-role {
|
||||
.edit-attendees-table select.edit-attendee-role {
|
||||
border: 0;
|
||||
padding: 2px;
|
||||
background: white;
|
||||
|
@ -746,33 +954,37 @@ td.topalign {
|
|||
vertical-align: middle;
|
||||
}
|
||||
|
||||
#edit-attendees-table tbody td.confirmstate {
|
||||
.edit-attendees-table tbody td.confirmstate {
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-indent: -2000%;
|
||||
}
|
||||
|
||||
#edit-attendees-table td.confirmstate span {
|
||||
.edit-attendees-table td.confirmstate span {
|
||||
display: block;
|
||||
width: 20px;
|
||||
background: url(images/attendee-status.gif) 5px 0 no-repeat;
|
||||
}
|
||||
|
||||
#edit-attendees-table td.confirmstate span.needs-action {
|
||||
.edit-attendees-table td.confirmstate span.needs-action {
|
||||
}
|
||||
|
||||
#edit-attendees-table td.confirmstate span.accepted {
|
||||
.edit-attendees-table td.confirmstate span.accepted {
|
||||
background-position: 5px -20px;
|
||||
}
|
||||
|
||||
#edit-attendees-table td.confirmstate span.declined {
|
||||
.edit-attendees-table td.confirmstate span.declined {
|
||||
background-position: 5px -40px;
|
||||
}
|
||||
|
||||
#edit-attendees-table td.confirmstate span.tentative {
|
||||
.edit-attendees-table td.confirmstate span.tentative {
|
||||
background-position: 5px -60px;
|
||||
}
|
||||
|
||||
.edit-attendees-table td.confirmstate span.delegated {
|
||||
background-position: 5px -180px;
|
||||
}
|
||||
|
||||
#attendees-freebusy-table {
|
||||
width: 100%;
|
||||
table-layout: fixed;
|
||||
|
@ -834,10 +1046,14 @@ td.topalign {
|
|||
background-position: 2px -117px;
|
||||
}
|
||||
|
||||
.attendees-list .chair {
|
||||
.attendees-list .non-participant {
|
||||
background-position: 2px -137px;
|
||||
}
|
||||
|
||||
.attendees-list .chair {
|
||||
background-position: 2px -157px;
|
||||
}
|
||||
|
||||
.attendees-list .loading {
|
||||
background: url(images/loading_blue.gif) 1px 50% no-repeat;
|
||||
}
|
||||
|
@ -1083,12 +1299,159 @@ span.spacer {
|
|||
padding-right: 10px;
|
||||
}
|
||||
|
||||
#resource-dialog-right {
|
||||
position: absolute;
|
||||
top: 10px;
|
||||
left: 300px;
|
||||
right: 8px;
|
||||
bottom: 10px;
|
||||
}
|
||||
|
||||
#resource-info,
|
||||
#resource-availability {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 48%;
|
||||
border: 1px solid #999;
|
||||
background-color: #F9F9F9;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
#resource-availability {
|
||||
top: auto;
|
||||
bottom: 0;
|
||||
height: 49%;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
#resource-info .boxtitle,
|
||||
#resource-availability .boxtitle {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
#resource-freebusy-calendar {
|
||||
position: absolute;
|
||||
top: 20px;
|
||||
left: -1px;
|
||||
right: -1px;
|
||||
bottom: -1px;
|
||||
}
|
||||
|
||||
#resource-freebusy-calendar .fc-content {
|
||||
top: 0;
|
||||
}
|
||||
|
||||
#resource-freebusy-calendar .fc-content .fc-event-bg {
|
||||
background: 0;
|
||||
}
|
||||
|
||||
#resource-freebusy-calendar .fc-event.status-busy,
|
||||
#resource-freebusy-calendar .status-busy .fc-event-skin {
|
||||
border-color: #e26569;
|
||||
background-color: #e26569;
|
||||
}
|
||||
|
||||
#resource-freebusy-calendar .fc-event.status-tentative,
|
||||
#resource-freebusy-calendar .status-tentative .fc-event-skin {
|
||||
border-color: #8383fc;
|
||||
background: #8383fc;
|
||||
}
|
||||
|
||||
#resource-freebusy-calendar .fc-event.status-outofoffice,
|
||||
#resource-freebusy-calendar .status-outofoffice .fc-event-skin {
|
||||
border-color: #fbaa68;
|
||||
background: #fbaa68;
|
||||
}
|
||||
|
||||
#resources-list div.treetoggle {
|
||||
left: 3px !important;
|
||||
top: -2px;
|
||||
}
|
||||
|
||||
#resources-list li ul div.treetoggle {
|
||||
left: 23px !important;
|
||||
}
|
||||
|
||||
#resource-selection {
|
||||
position: absolute;
|
||||
top: 10px;
|
||||
bottom: 10px;
|
||||
left: 8px;
|
||||
width: 280px;
|
||||
border: 1px solid #999999;
|
||||
background-color: #F9F9F9;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
#resource-selection .boxlistcontent {
|
||||
top: 25px;
|
||||
border-top: 1px solid #eee;
|
||||
}
|
||||
|
||||
#resourcequicksearch {
|
||||
position: absolute;
|
||||
top: 3px;
|
||||
left: 7px;
|
||||
right: 4px;
|
||||
height: 17px;
|
||||
background: #fff;
|
||||
border: 1px solid #888;
|
||||
border-radius: 10px;
|
||||
-webkit-box-shadow: inset 1px 1px 1px 0px rgba(0, 0, 0, 0.3);
|
||||
-moz-box-shadow: inset 1px 1px 1px 0px rgba(0, 0, 0, 0.3);
|
||||
box-shadow: inset 1px 1px 1px 0px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
#resourcesearchbox {
|
||||
position: absolute;
|
||||
top: 1px;
|
||||
left: 24px;
|
||||
width: 140px;
|
||||
height: 15px;
|
||||
font-size: 11px;
|
||||
padding: 0px;
|
||||
border: none;
|
||||
outline: none;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
#resourcesearchreset {
|
||||
position: absolute;
|
||||
top: 2px;
|
||||
right: 2px;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#resource-details,
|
||||
#resource-details-owner {
|
||||
margin: 8px;
|
||||
}
|
||||
|
||||
#resource-details td.title,
|
||||
#resource-details-owner td.title {
|
||||
color: #666;
|
||||
padding-right: 10px;
|
||||
min-width: 10em;
|
||||
}
|
||||
|
||||
#resource-details-owner thead td {
|
||||
color: #333;
|
||||
font-size: 13px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* fullcalendar style overrides */
|
||||
|
||||
#calendar .fc-header-right {
|
||||
padding-right: 200px;
|
||||
padding-top: 0;
|
||||
}
|
||||
|
||||
.rcube-fc-content {
|
||||
position: absolute !important;
|
||||
top: 37px;
|
||||
top: 38px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
|
@ -1099,6 +1462,10 @@ span.spacer {
|
|||
font-weight: bold;
|
||||
}
|
||||
|
||||
.cal-event-status-cancelled .fc-event-title {
|
||||
text-decoration: line-through;
|
||||
}
|
||||
|
||||
.fc-event-hori .fc-event-title {
|
||||
font-weight: normal;
|
||||
white-space: nowrap;
|
||||
|
@ -1111,6 +1478,21 @@ span.spacer {
|
|||
padding-right: 0.6em;
|
||||
}
|
||||
|
||||
.fc-event-vert.fc-invitation-needs-action,
|
||||
.fc-event-hori.fc-invitation-needs-action {
|
||||
border: 1px dashed #5757c7 !important;
|
||||
}
|
||||
|
||||
.fc-event-vert.fc-invitation-tentative,
|
||||
.fc-event-hori.fc-invitation-tentative {
|
||||
border: 1px dashed #eb8900 !important;
|
||||
}
|
||||
|
||||
.fc-event-vert.fc-invitation-declined,
|
||||
.fc-event-hori.fc-invitation-declined {
|
||||
border: 1px dashed #c00 !important;
|
||||
}
|
||||
|
||||
.fc-grid .fc-event-time {
|
||||
font-weight: normal !important;
|
||||
padding-right: 0.3em;
|
||||
|
@ -1120,7 +1502,7 @@ span.spacer {
|
|||
font-style:italic;
|
||||
}
|
||||
|
||||
div.fc-event-location {
|
||||
.fc-event-location {
|
||||
font-size: 90%;
|
||||
}
|
||||
|
||||
|
@ -1165,9 +1547,17 @@ div.fc-event-location {
|
|||
cursor: pointer;
|
||||
}
|
||||
|
||||
#calendar .fc-event-vert .fc-event-head,
|
||||
#calendar .fc-event-vert .fc-event-content {
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.fc-view-list div.fc-list-header,
|
||||
.fc-view-table td.fc-list-header,
|
||||
#edit-attendees-table thead td {
|
||||
.edit-attendees-table thead td {
|
||||
padding: 3px;
|
||||
background: #dddddd;
|
||||
background-image: -moz-linear-gradient(center top, #f4f4f4, #d2d2d2);
|
||||
|
@ -1221,7 +1611,17 @@ fieldset #calendarcategories div {
|
|||
|
||||
/* Invitation UI in mail */
|
||||
|
||||
#messagemenu li a.calendarlink {
|
||||
.messagelist tbody .attachment span.ical {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
height: 18px;
|
||||
width: 20px;
|
||||
padding: 0;
|
||||
background: url(images/calendar-small.png) 1px 1px no-repeat;
|
||||
}
|
||||
|
||||
#messagemenu li a.calendarlink,
|
||||
#attachmentmenu li a.calendarlink {
|
||||
background-image: url(images/calendars.png);
|
||||
background-position: 7px -109px;
|
||||
background-repeat: no-repeat;
|
||||
|
@ -1246,8 +1646,7 @@ div.calendar-invitebox td.label {
|
|||
}
|
||||
|
||||
#event-rsvp .rsvp-buttons,
|
||||
div.calendar-invitebox .rsvp-status,
|
||||
div.calendar-invitebox .rsvp-buttons {
|
||||
div.calendar-invitebox .itip-buttons div {
|
||||
margin-top: 0.5em;
|
||||
}
|
||||
|
||||
|
@ -1258,7 +1657,7 @@ div.calendar-invitebox select {
|
|||
margin-right: 0.5em;
|
||||
}
|
||||
|
||||
div.calendar-invitebox .calendar-select {
|
||||
div.calendar-invitebox .folder-select {
|
||||
font-size: 11px;
|
||||
margin-left: 1em;
|
||||
}
|
||||
|
@ -1271,6 +1670,7 @@ div.calendar-invitebox .rsvp-status.loading {
|
|||
|
||||
div.calendar-invitebox .rsvp-status.declined,
|
||||
div.calendar-invitebox .rsvp-status.tentative,
|
||||
div.calendar-invitebox .rsvp-status.delegated,
|
||||
div.calendar-invitebox .rsvp-status.accepted {
|
||||
padding: 0 0 1px 22px;
|
||||
background: url(images/attendee-status.gif) 2px -20px no-repeat;
|
||||
|
@ -1284,6 +1684,46 @@ div.calendar-invitebox .rsvp-status.tentative {
|
|||
background-position: 2px -60px;
|
||||
}
|
||||
|
||||
div.calendar-invitebox .rsvp-status.delegated {
|
||||
background-position: 2px -180px;
|
||||
}
|
||||
|
||||
div.calendar-invitebox .calendar-agenda-preview {
|
||||
display: none;
|
||||
border-top: 1px solid #dfdfdf;
|
||||
margin-top: 1em;
|
||||
padding-top: 0.6em;
|
||||
}
|
||||
|
||||
div.calendar-invitebox .calendar-agenda-preview h3.preview-title {
|
||||
margin: 0 0 0.5em 0;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
div.calendar-invitebox .calendar-agenda-preview .event-row {
|
||||
color: #777;
|
||||
padding: 2px 0;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
div.calendar-invitebox .calendar-agenda-preview .event-row.current {
|
||||
color: #000;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
div.calendar-invitebox .calendar-agenda-preview .event-row.no-event {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
div.calendar-invitebox .calendar-agenda-preview .event-date {
|
||||
display: inline-block;
|
||||
min-width: 8em;
|
||||
margin-right: 1em;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
/* iTIP attend reply page */
|
||||
|
||||
.calendaritipattend .centerbox {
|
||||
|
|
|
@ -1,724 +0,0 @@
|
|||
/*
|
||||
* FullCalendar v1.5.4-rcube-0.9.0 Stylesheet
|
||||
*
|
||||
* Copyright (c) 2011 Adam Shaw
|
||||
* Copyright (c) 2011, Kolab Systems AG
|
||||
* Dual licensed under the MIT and GPL licenses, located in
|
||||
* MIT-LICENSE.txt and GPL-LICENSE.txt respectively.
|
||||
*
|
||||
* Date: Wed Nov 7 16:28:11 2012 +0100
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
.fc {
|
||||
direction: ltr;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.fc table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
}
|
||||
|
||||
html .fc,
|
||||
.fc table {
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
.fc td,
|
||||
.fc th {
|
||||
padding: 0;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Header
|
||||
------------------------------------------------------------------------*/
|
||||
|
||||
.fc-header td {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.fc-header-left {
|
||||
width: 25%;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.fc-header-center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.fc-header-right {
|
||||
width: 25%;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.fc-header-title {
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.fc-header-title h2 {
|
||||
margin-top: 0;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.fc .fc-header-space {
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
||||
.fc-header .fc-button {
|
||||
margin-bottom: 1em;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
/* buttons edges butting together */
|
||||
|
||||
.fc-header .fc-button {
|
||||
margin-right: -1px;
|
||||
}
|
||||
|
||||
.fc-header .fc-corner-right {
|
||||
margin-right: 1px; /* back to normal */
|
||||
}
|
||||
|
||||
.fc-header .ui-corner-right {
|
||||
margin-right: 0; /* back to normal */
|
||||
}
|
||||
|
||||
/* button layering (for border precedence) */
|
||||
|
||||
.fc-header .fc-state-hover,
|
||||
.fc-header .ui-state-hover {
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.fc-header .fc-state-down {
|
||||
z-index: 3;
|
||||
}
|
||||
|
||||
.fc-header .fc-state-active,
|
||||
.fc-header .ui-state-active {
|
||||
z-index: 4;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Content
|
||||
------------------------------------------------------------------------*/
|
||||
|
||||
.fc-content {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.fc-view {
|
||||
width: 100%; /* needed for view switching (when view is absolute) */
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Cell Styles
|
||||
------------------------------------------------------------------------*/
|
||||
|
||||
.fc-widget-header, /* <th>, usually */
|
||||
.fc-widget-content { /* <td>, usually */
|
||||
border: 1px solid #ccc;
|
||||
}
|
||||
|
||||
.fc-state-highlight { /* <td> today cell */ /* TODO: add .fc-today to <th> */
|
||||
background: #ffc;
|
||||
}
|
||||
|
||||
.fc-cell-overlay { /* semi-transparent rectangle while dragging */
|
||||
background: #9cf;
|
||||
opacity: .2;
|
||||
filter: alpha(opacity=20); /* for IE */
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Buttons
|
||||
------------------------------------------------------------------------*/
|
||||
|
||||
.fc-button {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.fc-state-default { /* non-theme */
|
||||
border-style: solid;
|
||||
border-width: 1px 0;
|
||||
}
|
||||
|
||||
.fc-button-inner {
|
||||
position: relative;
|
||||
float: left;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.fc-state-default .fc-button-inner { /* non-theme */
|
||||
border-style: solid;
|
||||
border-width: 0 1px;
|
||||
}
|
||||
|
||||
.fc-button-content {
|
||||
position: relative;
|
||||
float: left;
|
||||
height: 1.9em;
|
||||
line-height: 1.9em;
|
||||
padding: 0 .6em;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
/* icon (for jquery ui) */
|
||||
|
||||
.fc-button-content .fc-icon-wrap {
|
||||
position: relative;
|
||||
float: left;
|
||||
top: 50%;
|
||||
}
|
||||
|
||||
.fc-button-content .ui-icon {
|
||||
position: relative;
|
||||
float: left;
|
||||
margin-top: -50%;
|
||||
*margin-top: 0;
|
||||
*top: -50%;
|
||||
}
|
||||
|
||||
/* gloss effect */
|
||||
|
||||
.fc-state-default .fc-button-effect {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.fc-state-default .fc-button-effect span {
|
||||
position: absolute;
|
||||
top: -100px;
|
||||
left: 0;
|
||||
width: 500px;
|
||||
height: 100px;
|
||||
border-width: 100px 0 0 1px;
|
||||
border-style: solid;
|
||||
border-color: #fff;
|
||||
background: #444;
|
||||
opacity: .09;
|
||||
filter: alpha(opacity=9);
|
||||
}
|
||||
|
||||
/* button states (determines colors) */
|
||||
|
||||
.fc-state-default,
|
||||
.fc-state-default .fc-button-inner {
|
||||
border-style: solid;
|
||||
border-color: #ccc #bbb #aaa;
|
||||
background: #F3F3F3;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.fc-state-hover,
|
||||
.fc-state-hover .fc-button-inner {
|
||||
border-color: #999;
|
||||
}
|
||||
|
||||
.fc-state-down,
|
||||
.fc-state-down .fc-button-inner {
|
||||
border-color: #555;
|
||||
background: #777;
|
||||
}
|
||||
|
||||
.fc-state-active,
|
||||
.fc-state-active .fc-button-inner {
|
||||
border-color: #555;
|
||||
background: #777;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.fc-state-disabled,
|
||||
.fc-state-disabled .fc-button-inner {
|
||||
color: #999;
|
||||
border-color: #ddd;
|
||||
}
|
||||
|
||||
.fc-state-disabled {
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.fc-state-disabled .fc-button-effect {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Global Event Styles
|
||||
------------------------------------------------------------------------*/
|
||||
|
||||
.fc-event {
|
||||
border-style: solid;
|
||||
border-width: 0;
|
||||
font-size: .85em;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
a.fc-event,
|
||||
.fc-event-draggable {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
a.fc-event {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.fc-rtl .fc-event {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.fc-event-skin {
|
||||
border-color: #36c; /* default BORDER color */
|
||||
background-color: #36c; /* default BACKGROUND color */
|
||||
color: #fff; /* default TEXT color */
|
||||
}
|
||||
|
||||
.fc-event-inner {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-style: solid;
|
||||
border-width: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.fc-event-time,
|
||||
.fc-event-title {
|
||||
padding: 0 1px;
|
||||
}
|
||||
|
||||
.fc .ui-resizable-handle { /*** TODO: don't use ui-resizable anymore, change class ***/
|
||||
display: block;
|
||||
position: absolute;
|
||||
z-index: 99999;
|
||||
overflow: hidden; /* hacky spaces (IE6/7) */
|
||||
font-size: 300%; /* */
|
||||
line-height: 50%; /* */
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Horizontal Events
|
||||
------------------------------------------------------------------------*/
|
||||
|
||||
.fc-event-hori {
|
||||
border-width: 1px 0;
|
||||
margin-bottom: 1px;
|
||||
}
|
||||
|
||||
/* resizable */
|
||||
|
||||
.fc-event-hori .ui-resizable-e {
|
||||
top: 0 !important; /* importants override pre jquery ui 1.7 styles */
|
||||
right: -3px !important;
|
||||
width: 7px !important;
|
||||
height: 100% !important;
|
||||
cursor: e-resize;
|
||||
}
|
||||
|
||||
.fc-event-hori .ui-resizable-w {
|
||||
top: 0 !important;
|
||||
left: -3px !important;
|
||||
width: 7px !important;
|
||||
height: 100% !important;
|
||||
cursor: w-resize;
|
||||
}
|
||||
|
||||
.fc-event-hori .ui-resizable-handle {
|
||||
_padding-bottom: 14px; /* IE6 had 0 height */
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Fake Rounded Corners (for buttons and events)
|
||||
------------------------------------------------------------*/
|
||||
|
||||
.fc-corner-left {
|
||||
margin-left: 1px;
|
||||
}
|
||||
|
||||
.fc-corner-left .fc-button-inner,
|
||||
.fc-corner-left .fc-event-inner {
|
||||
margin-left: -1px;
|
||||
}
|
||||
|
||||
.fc-corner-right {
|
||||
margin-right: 1px;
|
||||
}
|
||||
|
||||
.fc-corner-right .fc-button-inner,
|
||||
.fc-corner-right .fc-event-inner {
|
||||
margin-right: -1px;
|
||||
}
|
||||
|
||||
.fc-corner-top {
|
||||
margin-top: 1px;
|
||||
}
|
||||
|
||||
.fc-corner-top .fc-event-inner {
|
||||
margin-top: -1px;
|
||||
}
|
||||
|
||||
.fc-corner-bottom {
|
||||
margin-bottom: 1px;
|
||||
}
|
||||
|
||||
.fc-corner-bottom .fc-event-inner {
|
||||
margin-bottom: -1px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Fake Rounded Corners SPECIFICALLY FOR EVENTS
|
||||
-----------------------------------------------------------------*/
|
||||
|
||||
.fc-corner-left .fc-event-inner {
|
||||
border-left-width: 1px;
|
||||
}
|
||||
|
||||
.fc-corner-right .fc-event-inner {
|
||||
border-right-width: 1px;
|
||||
}
|
||||
|
||||
.fc-corner-top .fc-event-inner {
|
||||
border-top-width: 1px;
|
||||
}
|
||||
|
||||
.fc-corner-bottom .fc-event-inner {
|
||||
border-bottom-width: 1px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Reusable Separate-border Table
|
||||
------------------------------------------------------------*/
|
||||
|
||||
table.fc-border-separate {
|
||||
border-collapse: separate;
|
||||
}
|
||||
|
||||
.fc-border-separate th,
|
||||
.fc-border-separate td {
|
||||
border-width: 1px 0 0 1px;
|
||||
}
|
||||
|
||||
.fc-border-separate th.fc-last,
|
||||
.fc-border-separate td.fc-last {
|
||||
border-right-width: 1px;
|
||||
}
|
||||
|
||||
.fc-border-separate tr.fc-last th,
|
||||
.fc-border-separate tr.fc-last td {
|
||||
border-bottom-width: 1px;
|
||||
}
|
||||
|
||||
.fc-border-separate tbody tr.fc-first td,
|
||||
.fc-border-separate tbody tr.fc-first th {
|
||||
border-top-width: 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Month View, Basic Week View, Basic Day View
|
||||
------------------------------------------------------------------------*/
|
||||
|
||||
.fc-grid th {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.fc-grid .fc-day-number {
|
||||
float: right;
|
||||
padding: 0 2px;
|
||||
}
|
||||
|
||||
.fc-grid .fc-other-month .fc-day-number {
|
||||
opacity: 0.3;
|
||||
filter: alpha(opacity=30); /* for IE */
|
||||
/* opacity with small font can sometimes look too faded
|
||||
might want to set the 'color' property instead
|
||||
making day-numbers bold also fixes the problem */
|
||||
}
|
||||
|
||||
.fc-grid .fc-day-content {
|
||||
clear: both;
|
||||
padding: 2px 2px 1px; /* distance between events and day edges */
|
||||
}
|
||||
|
||||
/* event styles */
|
||||
|
||||
.fc-grid .fc-event-time {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* right-to-left */
|
||||
|
||||
.fc-rtl .fc-grid .fc-day-number {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.fc-rtl .fc-grid .fc-event-time {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.fc-more-link {
|
||||
font-size: 0.85em;
|
||||
white-space: nowrap;
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
padding: 1px;
|
||||
}
|
||||
|
||||
/* Agenda Week View, Agenda Day View
|
||||
------------------------------------------------------------------------*/
|
||||
|
||||
.fc-agenda table {
|
||||
border-collapse: separate;
|
||||
}
|
||||
|
||||
.fc-agenda-days th {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.fc-agenda .fc-agenda-axis {
|
||||
width: 50px;
|
||||
padding: 0 4px;
|
||||
vertical-align: middle;
|
||||
text-align: right;
|
||||
white-space: nowrap;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.fc-agenda .fc-day-content {
|
||||
padding: 2px 2px 1px;
|
||||
}
|
||||
|
||||
/* make axis border take precedence */
|
||||
|
||||
.fc-agenda-days .fc-agenda-axis {
|
||||
border-right-width: 1px;
|
||||
}
|
||||
|
||||
.fc-agenda-days .fc-col0 {
|
||||
border-left-width: 0;
|
||||
}
|
||||
|
||||
/* all-day area */
|
||||
|
||||
.fc-agenda-allday th {
|
||||
border-width: 0 1px;
|
||||
}
|
||||
|
||||
.fc-agenda-allday .fc-day-content {
|
||||
min-height: 34px; /* TODO: doesnt work well in quirksmode */
|
||||
_height: 34px;
|
||||
}
|
||||
|
||||
/* divider (between all-day and slots) */
|
||||
|
||||
.fc-agenda-divider-inner {
|
||||
height: 2px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.fc-widget-header .fc-agenda-divider-inner {
|
||||
background: #eee;
|
||||
}
|
||||
|
||||
/* slot rows */
|
||||
|
||||
.fc-agenda-slots th {
|
||||
border-width: 1px 1px 0;
|
||||
}
|
||||
|
||||
.fc-agenda-slots td {
|
||||
border-width: 1px 0 0;
|
||||
background: none;
|
||||
}
|
||||
|
||||
.fc-agenda-slots td div {
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
.fc-agenda-slots tr.fc-slot0 th,
|
||||
.fc-agenda-slots tr.fc-slot0 td {
|
||||
border-top-width: 0;
|
||||
}
|
||||
|
||||
.fc-agenda-slots tr.fc-minor th,
|
||||
.fc-agenda-slots tr.fc-minor td {
|
||||
border-top-style: dotted;
|
||||
}
|
||||
|
||||
.fc-agenda-slots tr.fc-minor th.ui-widget-header {
|
||||
*border-top-style: solid; /* doesn't work with background in IE6/7 */
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Vertical Events
|
||||
------------------------------------------------------------------------*/
|
||||
|
||||
.fc-event-vert {
|
||||
border-width: 0 1px;
|
||||
}
|
||||
|
||||
.fc-event-vert .fc-event-head,
|
||||
.fc-event-vert .fc-event-content {
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.fc-event-vert .fc-event-time {
|
||||
white-space: nowrap;
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
.fc-event-vert .fc-event-bg { /* makes the event lighter w/ a semi-transparent overlay */
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: #fff;
|
||||
opacity: .3;
|
||||
filter: alpha(opacity=30);
|
||||
}
|
||||
|
||||
.fc .ui-draggable-dragging .fc-event-bg, /* TODO: something nicer like .fc-opacity */
|
||||
.fc-select-helper .fc-event-bg {
|
||||
display: none\9; /* for IE6/7/8. nested opacity filters while dragging don't work */
|
||||
}
|
||||
|
||||
/* resizable */
|
||||
|
||||
.fc-event-vert .ui-resizable-s {
|
||||
bottom: 0 !important; /* importants override pre jquery ui 1.7 styles */
|
||||
width: 100% !important;
|
||||
height: 8px !important;
|
||||
overflow: hidden !important;
|
||||
line-height: 8px !important;
|
||||
font-size: 11px !important;
|
||||
font-family: monospace;
|
||||
text-align: center;
|
||||
cursor: s-resize;
|
||||
}
|
||||
|
||||
.fc-agenda .ui-resizable-resizing { /* TODO: better selector */
|
||||
_overflow: hidden;
|
||||
}
|
||||
|
||||
.fc-timeline {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
left: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: none;
|
||||
border-top: 2px solid #3ec400;
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
/* List view (by bruederli@kolabsys.com)
|
||||
------------------------------------------------------------------------*/
|
||||
|
||||
.fc-view-list,
|
||||
.fc-view-table {
|
||||
border: 1px solid #ccc;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.fc-view-list .fc-list-header,
|
||||
.fc-view-table td.fc-list-header {
|
||||
border-width: 0;
|
||||
border-bottom-width: 1px;
|
||||
padding: 3px 5px;
|
||||
}
|
||||
|
||||
.fc-view-table .fc-first td.fc-list-header {
|
||||
border-top-width: 0;
|
||||
}
|
||||
|
||||
.fc-list-section {
|
||||
padding: 4px 2px;
|
||||
border-width: 0;
|
||||
border-bottom-width: 1px;
|
||||
}
|
||||
|
||||
.fc-view-list .fc-last {
|
||||
border-bottom-width: 0;
|
||||
}
|
||||
|
||||
.fc-list-section .fc-event {
|
||||
position: relative;
|
||||
margin: 1px 2px 3px 2px;
|
||||
}
|
||||
|
||||
.fc-view-table tr.fc-event td {
|
||||
padding: 2px;
|
||||
border-bottom: 1px solid #ccc;
|
||||
}
|
||||
|
||||
.fc-view-table tr.fc-event td.fc-event-handle {
|
||||
padding: 3px 8px 3px 3px;
|
||||
}
|
||||
|
||||
.fc-view-table .fc-event-handle .fc-event-skin {
|
||||
border-radius: 2px;
|
||||
-moz-border-radius: 2px;
|
||||
}
|
||||
|
||||
.fc-view-table .fc-event-handle .fc-event-inner {
|
||||
display: block;
|
||||
width: 8px;
|
||||
height: 10px;
|
||||
border-radius: 2px;
|
||||
-moz-border-radius: 2px;
|
||||
}
|
||||
|
||||
.fc-view-table table {
|
||||
table-layout: fixed;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.fc-view-table col.fc-event-handle {
|
||||
width: 18px;
|
||||
}
|
||||
|
||||
.fc-event-handle .fc-event-inner {
|
||||
border-color: inherit;
|
||||
background-color: inherit;
|
||||
}
|
||||
|
||||
.fc-view-table col.fc-event-date {
|
||||
width: 7em;
|
||||
}
|
||||
|
||||
.fc-view-table .fc-list-day col.fc-event-date {
|
||||
width: 1px;
|
||||
}
|
||||
|
||||
.fc-view-table col.fc-event-time {
|
||||
width: 8em;
|
||||
}
|
||||
|
||||
.fc-view-table td.fc-event-date,
|
||||
.fc-view-table td.fc-event-time {
|
||||
white-space: nowrap;
|
||||
padding-right: 1em;
|
||||
}
|
||||
|
1
skins/classic/fullcalendar.css
Symbolic link
|
@ -0,0 +1 @@
|
|||
../larry/fullcalendar.css
|
Before Width: | Height: | Size: 2 KiB After Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 1.8 KiB |
|
@ -130,7 +130,7 @@ body, td, th, div, p, h3, select, input, textarea {
|
|||
font-style: italic;
|
||||
}
|
||||
|
||||
div.fc-event-location {
|
||||
.fc-event-location {
|
||||
font-size: 90%;
|
||||
}
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
<roundcube:include file="/includes/header.html" />
|
||||
|
||||
<div id="partheader">
|
||||
<roundcube:object name="plugin.attachmentcontrols" cellpadding="2" cellspacing="0" />
|
||||
<roundcube:object name="plugin.attachmentcontrols" cellpadding="2" cellspacing="0" downloadlink="true" />
|
||||
|
||||
<div style="position:absolute; top:2px; right:0; width:12em; text-align:right">
|
||||
[<a href="#close" class="closelink" onclick="self.close()"><roundcube:label name="close" /></a>]
|
||||
|
|
|
@ -4,20 +4,35 @@
|
|||
<title><roundcube:object name="pagetitle" /></title>
|
||||
<roundcube:include file="/includes/links.html" />
|
||||
<script type="text/javascript" src="/functions.js"></script>
|
||||
<!--[if lte IE 7]><link rel="stylesheet" type="text/css" href="./plugins/calendar/skins/classic/iehacks.css" /><![endif]-->
|
||||
<!--[if lte IE 7]><link rel="stylesheet" type="text/css" href="plugins/calendar/skins/classic/iehacks.css" /><![endif]-->
|
||||
</head>
|
||||
<body class="calendarmain">
|
||||
<roundcube:if condition="env:extwin" /><body class="calendarmain extwin"><roundcube:else /><body class="calendarmain"><roundcube:endif />
|
||||
|
||||
<roundcube:include file="/includes/taskbar.html" />
|
||||
<roundcube:include file="/includes/header.html" />
|
||||
|
||||
<div id="main">
|
||||
<div id="calendarsidebar">
|
||||
<div id="calendartoolbar">
|
||||
<roundcube:button command="addevent" type="link" class="buttonPas addevent" classAct="button addevent" classSel="button addeventSel" title="calendar.new_event" content=" " />
|
||||
<roundcube:button command="print" type="link" class="buttonPas print" classAct="button print" classSel="button printSel" title="calendar.print" content=" " />
|
||||
<roundcube:button command="events-import" type="link" class="buttonPas import" classAct="button import" classSel="button importSel" title="calendar.importevents" content=" " />
|
||||
<roundcube:button command="export" type="link" class="buttonPas export" classAct="button export" classSel="button exportSel" title="calendar.export" content=" " />
|
||||
<roundcube:container name="toolbar" id="calendartoolbar" />
|
||||
</div>
|
||||
|
||||
<div id="datepicker"></div>
|
||||
<div id="calendars" style="visibility:hidden">
|
||||
<div class="boxtitle"><roundcube:label name="calendar.calendars" /></div>
|
||||
<div class="listsearchbox">
|
||||
<div class="searchbox">
|
||||
<input type="text" name="q" id="calendarlistsearch" placeholder="<roundcube:label name='calendar.findcalendars' />" />
|
||||
<a class="iconbutton searchicon"></a>
|
||||
<roundcube:button command="reset-listsearch" id="calendarlistsearch-reset" class="reset searchreset" title="resetsearch" content="x" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="boxlistcontent">
|
||||
<roundcube:object name="plugin.calendar_list" id="calendarslist" />
|
||||
<roundcube:object name="plugin.calendar_list" id="calendarslist" class="treelist" />
|
||||
</div>
|
||||
<div class="boxfooter">
|
||||
<roundcube:button command="calendar-create" type="link" title="calendar.createcalendar" class="buttonPas addgroup" classAct="button addgroup" content=" " />
|
||||
|
@ -34,7 +49,10 @@
|
|||
<div id="calendaroptionsmenu" class="popupmenu">
|
||||
<ul>
|
||||
<li><roundcube:button command="calendar-edit" label="calendar.edit" classAct="active" /></li>
|
||||
<li><roundcube:button command="calendar-delete" label="delete" classAct="active" /></li>
|
||||
<roundcube:if condition="env:calendar_driver == 'kolab'" />
|
||||
<li><roundcube:button command="calendar-remove" label="calendar.remove" classAct="active" /></li>
|
||||
<roundcube:endif />
|
||||
<li><roundcube:button command="calendar-showurl" label="calendar.showurl" classAct="active" /></li>
|
||||
<roundcube:if condition="env:calendar_driver == 'kolab'" />
|
||||
<li class="separator_above"><roundcube:button command="folders" task="settings" type="link" label="managefolders" classAct="active" /></li>
|
||||
|
@ -66,6 +84,12 @@
|
|||
<h5 class="label"><roundcube:label name="calendar.tabattendees" /></h5>
|
||||
<div class="event-text"></div>
|
||||
</div>
|
||||
<div class="event-line" id="event-partstat">
|
||||
<label><roundcube:label name="calendar.mystatus" /></label>
|
||||
<a href="#change" class="changersvp" title="<roundcube:label name='calendar.changepartstat' />">
|
||||
<span class="event-text"></span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="event-line" id="event-calendar">
|
||||
<label><roundcube:label name="calendar.calendar" /></label>
|
||||
<span class="event-text">Default</span>
|
||||
|
@ -94,8 +118,41 @@
|
|||
<roundcube:object name="plugin.event_rsvp_buttons" id="event-rsvp" style="display:none" />
|
||||
</div>
|
||||
|
||||
<div id="eventoptionsmenu" class="popupmenu">
|
||||
<ul>
|
||||
<li><roundcube:button command="event-download" label="download" classAct="active" /></li>
|
||||
<li><roundcube:button command="event-sendbymail" label="send" classAct="active" /></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<roundcube:include file="/templates/eventedit.html" />
|
||||
|
||||
<div id="eventresourcesdialog" class="uidialog">
|
||||
<div id="resource-dialog-left">
|
||||
<div id="resource-selection" class="">
|
||||
<div id="resourcequicksearch">
|
||||
<roundcube:object name="plugin.resources_searchform" id="resourcesearchbox" />
|
||||
<roundcube:button command="reset-resource-search" id="resourcesearchreset" image="/images/icons/reset.gif" title="resetsearch" width="13" height="13" />
|
||||
</div>
|
||||
<div class="boxlistcontent">
|
||||
<roundcube:object name="plugin.resources_list" id="resources-list" class="treelist" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="resource-dialog-right">
|
||||
<div id="resource-info">
|
||||
<h2 class="boxtitle"><roundcube:label name="calendar.resourcedetails" /></h2>
|
||||
<roundcube:object name="plugin.resource_info" id="resource-details" />
|
||||
</div>
|
||||
|
||||
<div id="resource-availability">
|
||||
<h2 class="boxtitle"><roundcube:label name="calendar.resourceavailability" /></h2>
|
||||
<roundcube:object name="plugin.resource_calendar" id="resource-freebusy-calendar" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="eventfreebusy" class="uidialog">
|
||||
<roundcube:object name="plugin.attendees_freebusy_table" id="attendees-freebusy-table" cellspacing="0" cellpadding="0" border="0" />
|
||||
|
||||
|
@ -134,6 +191,7 @@
|
|||
<span class="attendee organizer"><roundcube:label name="calendar.roleorganizer" /></span>
|
||||
<span class="attendee req-participant"><roundcube:label name="calendar.rolerequired" /></span>
|
||||
<span class="attendee opt-participant"><roundcube:label name="calendar.roleoptional" /></span>
|
||||
<span class="attendee non-participant"><roundcube:label name="calendar.rolenonparticipant" /></span>
|
||||
<span class="attendee chair"><roundcube:label name="calendar.rolechair" /></span>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -159,14 +217,6 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div id="calendartoolbar">
|
||||
<roundcube:button command="addevent" type="link" class="buttonPas addevent" classAct="button addevent" classSel="button addeventSel" title="calendar.new_event" content=" " />
|
||||
<roundcube:button command="print" type="link" class="buttonPas print" classAct="button print" classSel="button printSel" title="calendar.print" content=" " />
|
||||
<roundcube:button command="events-import" type="link" class="buttonPas import" classAct="button import" classSel="button importSel" title="calendar.importevents" content=" " />
|
||||
<roundcube:button command="export" type="link" class="buttonPas export" classAct="button export" classSel="button exportSel" title="calendar.export" content=" " />
|
||||
<roundcube:container name="toolbar" id="calendartoolbar" />
|
||||
</div>
|
||||
|
||||
<div id="quicksearchbar">
|
||||
<roundcube:button name="searchmenulink" id="searchmenulink" image="/images/icons/glass.png" />
|
||||
<roundcube:object name="plugin.searchform" id="quicksearchbox" />
|
||||
|
|
|
@ -1,13 +1,14 @@
|
|||
<div id="eventedit" class="uidialog">
|
||||
<form id="eventtabs" action="#" method="post" enctype="multipart/form-data">
|
||||
<ul>
|
||||
<li><a href="#event-tab-1"><roundcube:label name="calendar.tabsummary" /></a></li>
|
||||
<li id="edit-tab-recurrence"><a href="#event-tab-2"><roundcube:label name="calendar.tabrecurrence" /></a></li>
|
||||
<li id="edit-tab-attendees"><a href="#event-tab-3"><roundcube:label name="calendar.tabattendees" /></a></li>
|
||||
<li id="edit-tab-attachments"><a href="#event-tab-4"><roundcube:label name="calendar.tabattachments" /></a></li>
|
||||
<li><a href="#event-panel-1"><roundcube:label name="calendar.tabsummary" /></a></li>
|
||||
<li id="edit-tab-recurrence"><a href="#event-panel-recurrence"><roundcube:label name="calendar.tabrecurrence" /></a></li>
|
||||
<li id="edit-tab-attendees"><a href="#event-panel-attendees"><roundcube:label name="calendar.tabattendees" /></a></li>
|
||||
<li id="edit-tab-resources"><a href="#event-panel-resources"><roundcube:label name="calendar.tabresources" /></a></li>
|
||||
<li id="edit-tab-attachments"><a href="#event-panel-attachments"><roundcube:label name="calendar.tabattachments" /></a></li>
|
||||
</ul>
|
||||
<!-- basic info -->
|
||||
<div id="event-tab-1">
|
||||
<div id="event-panel-1">
|
||||
<div class="event-section">
|
||||
<label for="edit-title"><roundcube:label name="calendar.title" /></label>
|
||||
<br />
|
||||
|
@ -40,8 +41,14 @@
|
|||
<input type="text" name="endtime" size="6" id="edit-endtime" />
|
||||
</div>
|
||||
<div class="event-section" id="edit-alarms">
|
||||
<label for="edit-alarm"><roundcube:label name="calendar.alarms" /></label>
|
||||
<roundcube:object name="plugin.alarm_select" />
|
||||
<div class="edit-alarm-item first">
|
||||
<label for="edit-alarm"><roundcube:label name="calendar.alarms" /></label>
|
||||
<roundcube:object name="plugin.alarm_select" />
|
||||
<span class="edit-alarm-buttons">
|
||||
<a href="#add" class="iconlink add add-alarm">+</a>
|
||||
<a href="#delete" class="iconlink delete delete-alarm">-</a>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="event-section" id="calendar-select">
|
||||
<label for="edit-calendar"><roundcube:label name="calendar.calendar" /></label>
|
||||
|
@ -51,6 +58,10 @@
|
|||
<label for="edit-categories"><roundcube:label name="calendar.category" /></label>
|
||||
<roundcube:object name="plugin.category_select" id="edit-categories" />
|
||||
</div>
|
||||
<div class="event-section">
|
||||
<label for="edit-event-status"><roundcube:label name="calendar.status" /></label>
|
||||
<roundcube:object name="plugin.status_select" id="edit-event-status" />
|
||||
</div>
|
||||
<div class="event-section">
|
||||
<label for="edit-free-busy"><roundcube:label name="calendar.freebusy" /></label>
|
||||
<roundcube:object name="plugin.freebusy_select" id="edit-free-busy" />
|
||||
|
@ -65,7 +76,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<!-- recurrence settings -->
|
||||
<div id="event-tab-2">
|
||||
<div id="event-panel-recurrence">
|
||||
<div class="event-section border-after">
|
||||
<roundcube:object name="plugin.recurrence_form" part="frequency" />
|
||||
</div>
|
||||
|
@ -89,13 +100,19 @@
|
|||
</div>
|
||||
</div>
|
||||
<!-- attendees list -->
|
||||
<div id="event-tab-3">
|
||||
<roundcube:object name="plugin.attendees_list" id="edit-attendees-table" cellspacing="0" cellpadding="0" border="0" />
|
||||
<div id="event-panel-attendees">
|
||||
<roundcube:object name="plugin.attendees_list" id="edit-attendees-table" class="edit-attendees-table" cellspacing="0" cellpadding="0" border="0" />
|
||||
<roundcube:object name="plugin.attendees_form" id="edit-attendees-form" />
|
||||
<roundcube:include file="/templates/freebusylegend.html" />
|
||||
</div>
|
||||
<!-- resources list -->
|
||||
<div id="event-panel-resources">
|
||||
<roundcube:object name="plugin.attendees_list" id="edit-resources-table" class="edit-attendees-table" cellspacing="0" cellpadding="0" border="0" coltitle="resource" />
|
||||
<roundcube:object name="plugin.resources_form" id="edit-resources-form" />
|
||||
<roundcube:include file="/templates/freebusylegend.html" />
|
||||
</div>
|
||||
<!-- attachments list (with upload form) -->
|
||||
<div id="event-tab-4">
|
||||
<div id="event-panel-attachments">
|
||||
<div id="edit-attachments" class="attachments-list">
|
||||
<roundcube:object name="plugin.attachments_list" id="attachmentlist" deleteIcon="/images/icons/delete.png" cancelIcon="/images/icons/delete.png" loadingIcon="/images/display/loading_blue.gif" />
|
||||
</div>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<div id="edit-attendees-legend" class="availability">
|
||||
<span class="legend"><img class="availabilityicon free" src="./program/resources/blank.gif" /> <roundcube:label name="calendar.availfree" /></span>
|
||||
<span class="legend"><img class="availabilityicon busy" src="./program/resources/blank.gif" /> <roundcube:label name="calendar.availbusy" /></span>
|
||||
<span class="legend"><img class="availabilityicon tentative" src="./program/resources/blank.gif" /> <roundcube:label name="calendar.availtentative" /></span>
|
||||
<span class="legend"><img class="availabilityicon out-of-office" src="./program/resources/blank.gif" /> <roundcube:label name="calendar.availoutofoffice" /></span>
|
||||
<span class="legend"><img class="availabilityicon unknown" src="./program/resources/blank.gif" /> <roundcube:label name="calendar.availunknown" /></span>
|
||||
<span class="legend"><img class="availabilityicon free" src="program/resources/blank.gif" /> <roundcube:label name="calendar.availfree" /></span>
|
||||
<span class="legend"><img class="availabilityicon busy" src="program/resources/blank.gif" /> <roundcube:label name="calendar.availbusy" /></span>
|
||||
<span class="legend"><img class="availabilityicon tentative" src="program/resources/blank.gif" /> <roundcube:label name="calendar.availtentative" /></span>
|
||||
<!--<span class="legend"><img class="availabilityicon out-of-office" src="program/resources/blank.gif" /> <roundcube:label name="calendar.availoutofoffice" /></span>-->
|
||||
<span class="legend"><img class="availabilityicon unknown" src="program/resources/blank.gif" /> <roundcube:label name="calendar.availunknown" /></span>
|
||||
</div>
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
<div class="centerbox">
|
||||
<roundcube:object name="plugin.event_inviteform" />
|
||||
<roundcube:object name="plugin.event_invitebox" class="calendar-invitebox" />
|
||||
<roundcube:object name="plugin.event_rsvp_buttons" type="submit" iname="rsvp" id="event-rsvp" />
|
||||
<roundcube:object name="plugin.event_rsvp_buttons" type="submit" iname="rsvp" id="event-rsvp" delegate="false" />
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -23,6 +23,6 @@
|
|||
|
||||
<roundcube:object name="plugin.calendar_css" printmode="true" />
|
||||
|
||||
<!--[if lte IE 7]><link rel="stylesheet" type="text/css" href="./plugins/calendar/skins/classic/print.iehacks.css" /><![endif]-->
|
||||
<!--[if lte IE 7]><link rel="stylesheet" type="text/css" href="plugins/calendar/skins/classic/print.iehacks.css" /><![endif]-->
|
||||
</body>
|
||||
</html>
|
|
@ -1,13 +1,7 @@
|
|||
/*
|
||||
* FullCalendar v1.5.4-rcube-0.9.0 Stylesheet
|
||||
*
|
||||
* Copyright (c) 2011 Adam Shaw
|
||||
* Copyright (c) 2011, Kolab Systems AG
|
||||
* Dual licensed under the MIT and GPL licenses, located in
|
||||
* MIT-LICENSE.txt and GPL-LICENSE.txt respectively.
|
||||
*
|
||||
* Date: Wed Nov 7 16:28:11 2012 +0100
|
||||
*
|
||||
/*!
|
||||
* FullCalendar v1.6.4-rcube-1.0 Stylesheet
|
||||
* Docs & License: http://arshaw.com/fullcalendar/
|
||||
* (c) 2013 Adam Shaw, 2014 Kolab Systems AG
|
||||
*/
|
||||
|
||||
|
||||
|
@ -80,11 +74,8 @@ html .fc,
|
|||
margin-right: -1px;
|
||||
}
|
||||
|
||||
.fc-header .fc-corner-right {
|
||||
margin-right: 1px; /* back to normal */
|
||||
}
|
||||
|
||||
.fc-header .ui-corner-right {
|
||||
.fc-header .fc-corner-right, /* non-theme */
|
||||
.fc-header .ui-corner-right { /* theme */
|
||||
margin-right: 0; /* back to normal */
|
||||
}
|
||||
|
||||
|
@ -111,10 +102,11 @@ html .fc,
|
|||
|
||||
.fc-content {
|
||||
clear: both;
|
||||
zoom: 1; /* for IE7, gives accurate coordinates for [un]freezeContentHeight */
|
||||
}
|
||||
|
||||
.fc-view {
|
||||
width: 100%; /* needed for view switching (when view is absolute) */
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
|
@ -125,17 +117,17 @@ html .fc,
|
|||
|
||||
.fc-widget-header, /* <th>, usually */
|
||||
.fc-widget-content { /* <td>, usually */
|
||||
border: 1px solid #ccc;
|
||||
border: 1px solid #ddd;
|
||||
}
|
||||
|
||||
.fc-state-highlight { /* <td> today cell */ /* TODO: add .fc-today to <th> */
|
||||
background: #ffc;
|
||||
background: #fcf8e3;
|
||||
}
|
||||
|
||||
.fc-cell-overlay { /* semi-transparent rectangle while dragging */
|
||||
background: #9cf;
|
||||
opacity: .2;
|
||||
filter: alpha(opacity=20); /* for IE */
|
||||
background: #bce8f1;
|
||||
opacity: .3;
|
||||
filter: alpha(opacity=30); /* for IE */
|
||||
}
|
||||
|
||||
|
||||
|
@ -146,43 +138,54 @@ html .fc,
|
|||
.fc-button {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
padding: 0 .6em;
|
||||
overflow: hidden;
|
||||
height: 1.9em;
|
||||
line-height: 1.9em;
|
||||
white-space: nowrap;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.fc-state-default { /* non-theme */
|
||||
border-style: solid;
|
||||
border-width: 1px 0;
|
||||
border: 1px solid;
|
||||
}
|
||||
|
||||
.fc-button-inner {
|
||||
position: relative;
|
||||
float: left;
|
||||
overflow: hidden;
|
||||
|
||||
.fc-state-default.fc-corner-left { /* non-theme */
|
||||
border-top-left-radius: 4px;
|
||||
border-bottom-left-radius: 4px;
|
||||
}
|
||||
|
||||
.fc-state-default .fc-button-inner { /* non-theme */
|
||||
border-style: solid;
|
||||
border-width: 0 1px;
|
||||
|
||||
.fc-state-default.fc-corner-right { /* non-theme */
|
||||
border-top-right-radius: 4px;
|
||||
border-bottom-right-radius: 4px;
|
||||
}
|
||||
|
||||
.fc-button-content {
|
||||
position: relative;
|
||||
float: left;
|
||||
height: 1.9em;
|
||||
line-height: 1.9em;
|
||||
padding: 0 .6em;
|
||||
white-space: nowrap;
|
||||
|
||||
/*
|
||||
Our default prev/next buttons use HTML entities like ‹ › « »
|
||||
and we'll try to make them look good cross-browser.
|
||||
*/
|
||||
|
||||
.fc-text-arrow {
|
||||
margin: 0 .1em;
|
||||
font-size: 2em;
|
||||
font-family: "Courier New", Courier, monospace;
|
||||
vertical-align: baseline; /* for IE7 */
|
||||
}
|
||||
|
||||
.fc-button-prev .fc-text-arrow,
|
||||
.fc-button-next .fc-text-arrow { /* for ‹ › */
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* icon (for jquery ui) */
|
||||
|
||||
.fc-button-content .fc-icon-wrap {
|
||||
.fc-button .fc-icon-wrap {
|
||||
position: relative;
|
||||
float: left;
|
||||
top: 50%;
|
||||
}
|
||||
|
||||
.fc-button-content .ui-icon {
|
||||
.fc-button .ui-icon {
|
||||
position: relative;
|
||||
float: left;
|
||||
margin-top: -50%;
|
||||
|
@ -190,107 +193,102 @@ html .fc,
|
|||
*top: -50%;
|
||||
}
|
||||
|
||||
/* gloss effect */
|
||||
|
||||
.fc-state-default .fc-button-effect {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 0;
|
||||
/*
|
||||
button states
|
||||
borrowed from twitter bootstrap (http://twitter.github.com/bootstrap/)
|
||||
*/
|
||||
|
||||
.fc-state-default {
|
||||
background-color: #f5f5f5;
|
||||
background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));
|
||||
background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);
|
||||
background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);
|
||||
background-image: linear-gradient(to bottom, #ffffff, #e6e6e6);
|
||||
background-repeat: repeat-x;
|
||||
border-color: #e6e6e6 #e6e6e6 #bfbfbf;
|
||||
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
||||
color: #333;
|
||||
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
|
||||
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
.fc-state-default .fc-button-effect span {
|
||||
position: absolute;
|
||||
top: -100px;
|
||||
left: 0;
|
||||
width: 500px;
|
||||
height: 100px;
|
||||
border-width: 100px 0 0 1px;
|
||||
border-style: solid;
|
||||
border-color: #fff;
|
||||
background: #444;
|
||||
opacity: .09;
|
||||
filter: alpha(opacity=9);
|
||||
}
|
||||
|
||||
/* button states (determines colors) */
|
||||
|
||||
.fc-state-default,
|
||||
.fc-state-default .fc-button-inner {
|
||||
border-style: solid;
|
||||
border-color: #ccc #bbb #aaa;
|
||||
background: #F3F3F3;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
|
||||
.fc-state-hover,
|
||||
.fc-state-hover .fc-button-inner {
|
||||
border-color: #999;
|
||||
}
|
||||
|
||||
.fc-state-down,
|
||||
.fc-state-down .fc-button-inner {
|
||||
border-color: #555;
|
||||
background: #777;
|
||||
}
|
||||
|
||||
.fc-state-active,
|
||||
.fc-state-active .fc-button-inner {
|
||||
border-color: #555;
|
||||
background: #777;
|
||||
color: #fff;
|
||||
.fc-state-disabled {
|
||||
color: #333333;
|
||||
background-color: #e6e6e6;
|
||||
}
|
||||
|
||||
.fc-state-disabled,
|
||||
.fc-state-disabled .fc-button-inner {
|
||||
color: #999;
|
||||
border-color: #ddd;
|
||||
|
||||
.fc-state-hover {
|
||||
color: #333333;
|
||||
text-decoration: none;
|
||||
background-position: 0 -15px;
|
||||
-webkit-transition: background-position 0.1s linear;
|
||||
-moz-transition: background-position 0.1s linear;
|
||||
-o-transition: background-position 0.1s linear;
|
||||
transition: background-position 0.1s linear;
|
||||
}
|
||||
|
||||
|
||||
.fc-state-down,
|
||||
.fc-state-active {
|
||||
background-color: #cccccc;
|
||||
background-image: none;
|
||||
outline: 0;
|
||||
box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
.fc-state-disabled {
|
||||
cursor: default;
|
||||
background-image: none;
|
||||
opacity: 0.65;
|
||||
filter: alpha(opacity=65);
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.fc-state-disabled .fc-button-effect {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/* Global Event Styles
|
||||
------------------------------------------------------------------------*/
|
||||
|
||||
.fc-event-container > * {
|
||||
z-index: 8;
|
||||
}
|
||||
|
||||
.fc-event-container > .ui-draggable-dragging,
|
||||
.fc-event-container > .ui-resizable-resizing {
|
||||
z-index: 9;
|
||||
}
|
||||
|
||||
.fc-event {
|
||||
border-style: solid;
|
||||
border-width: 0;
|
||||
border: 1px solid #3a87ad; /* default BORDER color */
|
||||
background-color: #3a87ad; /* default BACKGROUND color */
|
||||
color: #fff; /* default TEXT color */
|
||||
font-size: .85em;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.fc-event:focus {
|
||||
outline: 2px solid ActiveBorder;
|
||||
}
|
||||
|
||||
a.fc-event {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a.fc-event,
|
||||
.fc-event-draggable {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
a.fc-event {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.fc-rtl .fc-event {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.fc-event-skin {
|
||||
border-color: #36c; /* default BORDER color */
|
||||
background-color: #36c; /* default BACKGROUND color */
|
||||
color: #fff; /* default TEXT color */
|
||||
}
|
||||
|
||||
|
||||
.fc-event-inner {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-style: solid;
|
||||
border-width: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
|
@ -299,7 +297,7 @@ a.fc-event {
|
|||
padding: 0 1px;
|
||||
}
|
||||
|
||||
.fc .ui-resizable-handle { /*** TODO: don't use ui-resizable anymore, change class ***/
|
||||
.fc .ui-resizable-handle {
|
||||
display: block;
|
||||
position: absolute;
|
||||
z-index: 99999;
|
||||
|
@ -317,6 +315,20 @@ a.fc-event {
|
|||
border-width: 1px 0;
|
||||
margin-bottom: 1px;
|
||||
}
|
||||
|
||||
.fc-ltr .fc-event-hori.fc-event-start,
|
||||
.fc-rtl .fc-event-hori.fc-event-end {
|
||||
border-left-width: 1px;
|
||||
border-top-left-radius: 3px;
|
||||
border-bottom-left-radius: 3px;
|
||||
}
|
||||
|
||||
.fc-ltr .fc-event-hori.fc-event-end,
|
||||
.fc-rtl .fc-event-hori.fc-event-start {
|
||||
border-right-width: 1px;
|
||||
border-top-right-radius: 3px;
|
||||
border-bottom-right-radius: 3px;
|
||||
}
|
||||
|
||||
/* resizable */
|
||||
|
||||
|
@ -342,66 +354,6 @@ a.fc-event {
|
|||
|
||||
|
||||
|
||||
/* Fake Rounded Corners (for buttons and events)
|
||||
------------------------------------------------------------*/
|
||||
|
||||
.fc-corner-left {
|
||||
margin-left: 1px;
|
||||
}
|
||||
|
||||
.fc-corner-left .fc-button-inner,
|
||||
.fc-corner-left .fc-event-inner {
|
||||
margin-left: -1px;
|
||||
}
|
||||
|
||||
.fc-corner-right {
|
||||
margin-right: 1px;
|
||||
}
|
||||
|
||||
.fc-corner-right .fc-button-inner,
|
||||
.fc-corner-right .fc-event-inner {
|
||||
margin-right: -1px;
|
||||
}
|
||||
|
||||
.fc-corner-top {
|
||||
margin-top: 1px;
|
||||
}
|
||||
|
||||
.fc-corner-top .fc-event-inner {
|
||||
margin-top: -1px;
|
||||
}
|
||||
|
||||
.fc-corner-bottom {
|
||||
margin-bottom: 1px;
|
||||
}
|
||||
|
||||
.fc-corner-bottom .fc-event-inner {
|
||||
margin-bottom: -1px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Fake Rounded Corners SPECIFICALLY FOR EVENTS
|
||||
-----------------------------------------------------------------*/
|
||||
|
||||
.fc-corner-left .fc-event-inner {
|
||||
border-left-width: 1px;
|
||||
}
|
||||
|
||||
.fc-corner-right .fc-event-inner {
|
||||
border-right-width: 1px;
|
||||
}
|
||||
|
||||
.fc-corner-top .fc-event-inner {
|
||||
border-top-width: 1px;
|
||||
}
|
||||
|
||||
.fc-corner-bottom .fc-event-inner {
|
||||
border-bottom-width: 1px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Reusable Separate-border Table
|
||||
------------------------------------------------------------*/
|
||||
|
||||
|
@ -437,6 +389,15 @@ table.fc-border-separate {
|
|||
.fc-grid th {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.fc .fc-week-number {
|
||||
width: 22px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.fc .fc-week-number div {
|
||||
padding: 0 2px;
|
||||
}
|
||||
|
||||
.fc-grid .fc-day-number {
|
||||
float: right;
|
||||
|
@ -499,6 +460,10 @@ table.fc-border-separate {
|
|||
white-space: nowrap;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.fc-agenda .fc-week-number {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.fc-agenda .fc-day-content {
|
||||
padding: 2px 2px 1px;
|
||||
|
@ -573,7 +538,7 @@ table.fc-border-separate {
|
|||
.fc-event-vert {
|
||||
border-width: 0 1px;
|
||||
}
|
||||
|
||||
|
||||
.fc-event-vert .fc-event-head,
|
||||
.fc-event-vert .fc-event-content {
|
||||
position: relative;
|
||||
|
@ -581,11 +546,28 @@ table.fc-border-separate {
|
|||
width: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.fc-event-vert.fc-event-start {
|
||||
border-top-width: 1px;
|
||||
border-top-left-radius: 3px;
|
||||
border-top-right-radius: 3px;
|
||||
}
|
||||
|
||||
.fc-event-vert.fc-event-end {
|
||||
border-bottom-width: 1px;
|
||||
border-bottom-left-radius: 3px;
|
||||
border-bottom-right-radius: 3px;
|
||||
}
|
||||
|
||||
.fc-event-vert .fc-event-time {
|
||||
white-space: nowrap;
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
.fc-event-vert .fc-event-inner {
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.fc-event-vert .fc-event-bg { /* makes the event lighter w/ a semi-transparent overlay */
|
||||
position: absolute;
|
||||
|
@ -595,8 +577,8 @@ table.fc-border-separate {
|
|||
width: 100%;
|
||||
height: 100%;
|
||||
background: #fff;
|
||||
opacity: .3;
|
||||
filter: alpha(opacity=30);
|
||||
opacity: .25;
|
||||
filter: alpha(opacity=25);
|
||||
}
|
||||
|
||||
.fc .ui-draggable-dragging .fc-event-bg, /* TODO: something nicer like .fc-opacity */
|
||||
|
@ -668,6 +650,11 @@ table.fc-border-separate {
|
|||
margin: 1px 2px 3px 2px;
|
||||
}
|
||||
|
||||
.fc-view-table tr.fc-event {
|
||||
background: inherit;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.fc-view-table tr.fc-event td {
|
||||
padding: 2px;
|
||||
border-bottom: 1px solid #ccc;
|
||||
|
@ -713,7 +700,7 @@ table.fc-border-separate {
|
|||
}
|
||||
|
||||
.fc-view-table col.fc-event-time {
|
||||
width: 8em;
|
||||
width: 9em;
|
||||
}
|
||||
|
||||
.fc-view-table td.fc-event-date,
|
||||
|
|
BIN
skins/larry/images/attendee-status.png
Normal file
After Width: | Height: | Size: 2.2 KiB |
BIN
skins/larry/images/autocomplete.png
Normal file
After Width: | Height: | Size: 558 B |
BIN
skins/larry/images/badge_cancelled.png
Normal file
After Width: | Height: | Size: 924 B |
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 888 B After Width: | Height: | Size: 613 B |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 217 B |
BIN
skins/larry/images/focusview.png
Normal file
After Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 490 B After Width: | Height: | Size: 302 B |
BIN
skins/larry/images/ical-attachment.png
Normal file
After Width: | Height: | Size: 492 B |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.5 KiB |
BIN
skins/larry/images/sendinvitation.png
Normal file
After Width: | Height: | Size: 337 B |
Before Width: | Height: | Size: 8.6 KiB After Width: | Height: | Size: 3.6 KiB |
|
@ -1,7 +1,7 @@
|
|||
/*** Printing styles for Calendar plugin ***/
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
margin: 0 0 1em 0;
|
||||
color: #000;
|
||||
background: #fff;
|
||||
}
|
||||
|
@ -54,24 +54,41 @@ body, td, th, div, p, h3, select, input, textarea {
|
|||
}
|
||||
|
||||
#calendarlist {
|
||||
list-style-type: square;
|
||||
list-style: none;
|
||||
margin: 2em 0;
|
||||
padding-left: 1em;
|
||||
}
|
||||
|
||||
#calendarlist ul {
|
||||
float: left;
|
||||
list-style: none;
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
#calendarlist li {
|
||||
float: left;
|
||||
padding-left: 0;
|
||||
padding-right: 3em;
|
||||
padding-right: 0;
|
||||
margin-left: 0;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#calendarlist li div {
|
||||
float: left;
|
||||
padding-right: 3em;
|
||||
padding-bottom: 1em;
|
||||
}
|
||||
|
||||
#calendarlist input,
|
||||
#calendarlist .handle {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#calendarlist li.x-invitations div {
|
||||
color: #999;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.calwidth {
|
||||
width: 700px;
|
||||
margin: 0 auto;
|
||||
|
@ -130,7 +147,7 @@ body, td, th, div, p, h3, select, input, textarea {
|
|||
font-style: italic;
|
||||
}
|
||||
|
||||
div.fc-event-location {
|
||||
.fc-event-location {
|
||||
font-size: 90%;
|
||||
}
|
||||
|
||||
|
@ -203,6 +220,9 @@ div.fc-event-location {
|
|||
font-style: italic;
|
||||
}
|
||||
|
||||
.fc-view-month .fc-event-hori .fc-event-inner {
|
||||
background: #fff !important;
|
||||
}
|
||||
|
||||
.fc-view-table col.fc-event-location {
|
||||
width: 20%;
|
||||
|
|
|
@ -4,30 +4,61 @@
|
|||
<title><roundcube:object name="pagetitle" /></title>
|
||||
<roundcube:include file="/includes/links.html" />
|
||||
</head>
|
||||
<body class="extwin attachmentwin">
|
||||
<body class="extwin calendar attachmentwin">
|
||||
|
||||
<div id="header">
|
||||
<div id="topnav">
|
||||
<roundcube:object name="logo" src="/images/roundcube_logo.png" id="toplogo" border="0" alt="Logo" />
|
||||
<div class="topright">
|
||||
<a href="#close" class="closelink" onclick="self.close()"><roundcube:label name="close" /></a>
|
||||
</div>
|
||||
<div id="topline" role="banner" aria-labelledby="aria-label-topnav">
|
||||
<div class="topleft">
|
||||
<roundcube:container name="topline-left" id="topline-left" />
|
||||
</div>
|
||||
|
||||
<br style="clear:both" />
|
||||
<roundcube:container name="topline-center" id="topline-center" />
|
||||
<div class="topright">
|
||||
<roundcube:container name="topline-right" id="topline-right" />
|
||||
<roundcube:button name="close" type="link" label="close" class="closelink" onclick="self.close()" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="mainscreen">
|
||||
<div id="partheader" class="uibox">
|
||||
<roundcube:object name="plugin.attachmentcontrols" class="headers-table" />
|
||||
|
||||
<h1 class="voice"><roundcube:label name="attachment" />: <roundcube:var name="env:filename" /></h1>
|
||||
|
||||
<h2 id="aria-label-toolbar" class="voice"><roundcube:label name="arialabeltoolbar" /></h2>
|
||||
<div id="attachmenttoolbar" class="toolbar fullwidth" role="toolbar" aria-labelledby="aria-label-toolbar">
|
||||
<roundcube:button command="download-attachment" type="link" class="button download disabled" classAct="button download" classSel="button download pressed" label="download" title="download" />
|
||||
<roundcube:button command="print-attachment" type="link" class="button print disabled" classAct="button print" classSel="button print pressed" label="print" title="print" />
|
||||
<roundcube:container name="toolbar" id="messagetoolbar" />
|
||||
</div>
|
||||
|
||||
<div id="mainscreencontent">
|
||||
|
||||
<div id="partheader" class="uibox listbox" role="contentinfo" aria-labelledby="aria-label-contentinfo">
|
||||
<h2 class="boxtitle" id="aria-label-contentinfo"><roundcube:label name="properties" /></h2>
|
||||
<div class="scroller">
|
||||
<roundcube:object name="plugin.attachmentcontrols" class="listing" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="attachmentcontainer" class="uibox">
|
||||
<roundcube:object name="plugin.attachmentframe" id="attachmentframe" class="header-table" style="width:100%" />
|
||||
<div id="attachmentcontainer" class="uibox" role="main" aria-labelledby="aria-label-messagepart">
|
||||
<h2 id="aria-label-messagepart" class="voice"><roundcube:label name="arialabelattachmentpreview" /></h2>
|
||||
<div class="iframebox">
|
||||
<roundcube:object name="plugin.attachmentframe" id="attachmentframe" frameborder="0" title="arialabelattachmentpreview" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
$(document).ready(function() {
|
||||
if (window.rcube_splitter) {
|
||||
new rcube_splitter({ id:'mailpartsplitterv', p1:'#partheader', p2:'#attachmentcontainer',
|
||||
orientation:'v', relative:true, start:226, min:150, size:12}).init();
|
||||
}
|
||||
});
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
|