Compare commits
No commits in common. "master" and "3.2.16" have entirely different histories.
78
README
Normal file
|
@ -0,0 +1,78 @@
|
|||
A calendar module for Roundcube
|
||||
-------------------------------
|
||||
|
||||
This plugin currently supports a local database as well as a Kolab groupware
|
||||
server as backends for calendar and event storage. For both drivers, some
|
||||
initialization of the local database is necessary. To do so, execute the
|
||||
SQL commands in drivers/<yourchoice>/SQL/<yourdatabase>.initial.sql
|
||||
|
||||
The client-side calendar UI relies on the "fullcalendar" project by Adam Arshaw
|
||||
with extensions made for the use in Roundcube. All changes are published in
|
||||
an official fork at https://github.com/roundcube/fullcalendar
|
||||
|
||||
For some general calendar-based operations such as alarms handling or iCal
|
||||
parsing/exporting this plugins requires the `libcalendaring` plugin which
|
||||
is also part of the Kolab Roundcube Plugins repository. Make sure that plugin
|
||||
is installed and configured correctly.
|
||||
|
||||
For recurring event computation, some utility classes from the Horde project
|
||||
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 https://git.kolab.org/diffusion/RPK/roundcubemail-plugins-kolab.git
|
||||
$ cd /<path-to-roundcube>/plugins
|
||||
$ cp -r /tmp/roundcubemail-plugins-kolab/plugins/calendar .
|
||||
$ cp -r /tmp/roundcubemail-plugins-kolab/plugins/libcalendaring .
|
||||
|
||||
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] https://git.kolab.org/diffusion/RPK/
|
68
README.md
|
@ -1,68 +0,0 @@
|
|||
## TLDR
|
||||
Contrary to other CalDAV forks, this one is based on the original calendar kolab-roundcube-plugins-mirror/calendar (which means the calendar itself is most up to date) and adds CalDAV capability on top of it. As far as I am aware, it is the most up to date version with the most bugfixes (April 2022).
|
||||
(installation instructions are at the bottom)
|
||||
|
||||
## Why is this needed?
|
||||
Unfortunately, the current situation about CalDAV support in roundcube is quite confusing. There are several plugins (/Forks) around that have CalDAV support but from what I found, all of them are slightly buggy or do not work anymore.
|
||||
All of them are based on <https://gitlab.awesome-it.de/kolab/roundcube-plugins>, a very old Fork which (as far as I can tell) is based on a version of kolab-roundcube-plugins-mirror/calendar that is over 10 years old.
|
||||
None of these forks incorporate updates from the original calendar, meaning it is only a matter of time until they are not compatible with roundcube anymore. I tried to change as little as possible in the original codebase and only added caldav support as a new driver - which means new updates from the roundcube team should be easy to incorporate.
|
||||
|
||||
## History of other Forks so far
|
||||
|
||||
### kolab-roundcube-plugins-mirror/calendar :
|
||||
This is the original calendar that all other forks are based on. It is working very well and is actively maintained but unfortunately, it does not have caldav support
|
||||
|
||||
### [https://gitlab.awesome-it.de/kolab/roundcube-plugins](awesome-it) :
|
||||
This is the "original fork" of the calendar. A lot of work was put into it and caldav is almost fully implemented. Unfortunately it has a few bugs / problems and most of them were not fixed in any other forks:
|
||||
- The birthday calendar is not supported by the caldav driver.
|
||||
- While the backend (mostly) supports adding all calendars from a dav-url, the front-end does not. That makes calendar handling a bit clunky and confusing.
|
||||
- Calendar colors have to be set manually and can not be loaded from DAV.
|
||||
- Adding and Removing calendars directly in the external source is not supported.
|
||||
- It prepares the codebase so multiple drivers can be used. But as far as I can tell, this feature is not used in the code and also not really supported by the front-end. This means, that it still only uses one driver but as a result adds a lot of unnecessary changes to the original codebase.
|
||||
|
||||
|
||||
### fasterit/roundcube_calendar :
|
||||
A fork of awesome-it to make it work with blind-coder/rcmcardav (a CardDAV plugin) by packing the outdated version of sabre/DAV inside the plugin. But it hasn't been maintained and is still based on a very outdated version of kolab-roundcube-plugins-mirror/calendar.
|
||||
|
||||
### texxasrulez/calendar :
|
||||
This is a fork of awesome-it with a few bugfixes to make it work with roundcube 1.3 but its maintainer does not seem to be active anymore.
|
||||
It is the most current fork of the original CalDAV fork. But unfortunately, it is treated as its own project (which means that it doesn't have any updates from the original calendar) and is focused primarily on nextcloud (which I don't really understand since nextcloud is using CalDAV anyway).
|
||||
Also, on top of still having the original bugs included, it is also still based on an ancient sabre/DAV version.
|
||||
|
||||
### texxasrulez/caldav_calendar :
|
||||
That one confuses me. It is from texxasrulez as well and seems to be the basis of Texxas but was abandoned in favour of texxasrulez/calendar. But it seems to be only a few commits behind texxasrulez/calendar.
|
||||
|
||||
|
||||
### What is this fork doing differently?
|
||||
|
||||
All CalDAV forks are based on faster-it which has a very different codebase to the original calendar because of its unfinished "multiple-driver" support. That makes it very difficult to get updates from the original calendar.
|
||||
|
||||
So I decided to ditch the "multiple driver" support (which isnt used anywway) and keep most changes in the CalDAV driver itself to stay compatible with the original calendar. I also added a ton of updates:
|
||||
- Based on the most recent version of the calendar plugin.
|
||||
- Uses the most recent version of sabre/dav (4.1.5)
|
||||
- Only minor changes in the existing code base, meaning that future updates of the calendar plugin should be able to be merged quite easily.
|
||||
- Added support for the birthday calendar.
|
||||
- Changed the behaviour from "per calendar" to "per CalDAV source".
|
||||
- All calendars from a source will be automatically added.
|
||||
- Calendars can be created and deleted directly at the CalDAV source.
|
||||
- ics support included.
|
||||
|
||||
### Why does this need a fork of libcalendaring?
|
||||
The original libcalendaring still uses sabre/vobject 3.5.3
|
||||
In order to be compatible with other plugins (and because version 3.5.3 is ancient), I updated it to version 4.1.5
|
||||
The problem is, that sabre/vobject makes use of DateTimeImmutable which libcalendaring does not expect.
|
||||
It only needs minor changes to account for that, but unfortunately the roundcube-project does not accept pull requests...
|
||||
|
||||
### Installation
|
||||
I havent published this as a plugin yet, so you have to instruct composer to install directly from github. Run the following commands in the roundcubemail folder
|
||||
(If you get an error that the "API rate limit" has been exceeded and you need an GitHub OAuth token, just follow the instructions in the console - you will need a GitHub account).
|
||||
```
|
||||
cd /pathTo/roundcubemail
|
||||
|
||||
composer config repositories.calendar vcs https://github.com/JodliDev/calendar
|
||||
composer config repositories.libcalendaring vcs https://github.com/JodliDev/libcalendaring
|
||||
composer config minimum-stability dev
|
||||
composer require kolab/calendar
|
||||
|
||||
bin/initdb.sh --dir=plugins/calendar/drivers/caldav/SQL
|
||||
```
|
7106
calendar.php
|
@ -33,54 +33,68 @@ function rcube_calendar(settings)
|
|||
// extend base class
|
||||
rcube_libcalendaring.call(this, settings);
|
||||
|
||||
// member vars
|
||||
this.ui_loaded = false;
|
||||
this.selected_attachment = null;
|
||||
|
||||
// private vars
|
||||
var me = this;
|
||||
|
||||
// create new event from current mail message
|
||||
this.create_from_mail = function(uid)
|
||||
{
|
||||
if (!uid && !(uid = rcmail.get_single_uid())) {
|
||||
return;
|
||||
}
|
||||
if (uid || (uid = rcmail.get_single_uid())) {
|
||||
// load calendar UI (scripts and edit dialog template)
|
||||
if (!this.ui_loaded) {
|
||||
$.when(
|
||||
$.getScript(rcmail.assets_path('plugins/calendar/calendar_ui.js')),
|
||||
$.getScript(rcmail.assets_path('plugins/calendar/lib/js/fullcalendar.js')),
|
||||
$.get(rcmail.url('calendar/inlineui'), function(html) { $(document.body).append(html); }, 'html')
|
||||
).then(function() {
|
||||
// disable attendees feature (autocompletion and stuff is not initialized)
|
||||
for (var c in rcmail.env.calendars)
|
||||
rcmail.env.calendars[c].attendees = rcmail.env.calendars[c].resources = false;
|
||||
|
||||
var url = {_mbox: rcmail.env.mailbox, _uid: uid, _framed: 1},
|
||||
buttons = {},
|
||||
button_classes = ['mainaction save', 'cancel'],
|
||||
title = rcmail.gettext('calendar.createfrommail'),
|
||||
dialog = $('<iframe>').attr({
|
||||
id: 'kolabcalendarinlinegui',
|
||||
name: 'kolabcalendardialog',
|
||||
src: rcmail.url('calendar/dialog-ui', url)
|
||||
me.ui_loaded = true;
|
||||
me.ui = new rcube_calendar_ui(me.settings);
|
||||
me.create_from_mail(uid); // start over
|
||||
});
|
||||
|
||||
// dialog buttons
|
||||
buttons[rcmail.gettext('save')] = function() {
|
||||
var frame = rcmail.get_frame_window('kolabcalendarinlinegui');
|
||||
frame.rcmail.command('event-save');
|
||||
};
|
||||
return;
|
||||
}
|
||||
|
||||
buttons[rcmail.gettext('cancel')] = function() {
|
||||
dialog.dialog('destroy');
|
||||
};
|
||||
// get message contents for event dialog
|
||||
var lock = rcmail.set_busy(true, 'loading');
|
||||
rcmail.http_post('calendar/mailtoevent', {
|
||||
'_mbox': rcmail.env.mailbox,
|
||||
'_uid': uid
|
||||
}, lock);
|
||||
}
|
||||
};
|
||||
|
||||
// open jquery UI dialog
|
||||
window.kolab_event_dialog_element = dialog = rcmail.show_popup_dialog(dialog, title, buttons, {
|
||||
button_classes: button_classes,
|
||||
minWidth: 500,
|
||||
width: 600,
|
||||
height: 600
|
||||
});
|
||||
// callback function triggered from server with contents for the new event
|
||||
this.mail2event_dialog = function(event)
|
||||
{
|
||||
if (event.title) {
|
||||
this.ui.add_event(event);
|
||||
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: p
|
||||
_part: this.selected_attachment
|
||||
// _calendar: $('#calendar-attachment-saveto').val(),
|
||||
}, rcmail.set_busy(true, 'itip.savingdata'));
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -92,10 +106,13 @@ window.rcmail && rcmail.addEventListener('init', function(evt) {
|
|||
// register create-from-mail command to message_commands array
|
||||
if (rcmail.env.task == 'mail') {
|
||||
rcmail.register_command('calendar-create-from-mail', function() { cal.create_from_mail(); });
|
||||
rcmail.register_command('attachment-save-calendar', function(p) { cal.save_to_calendar(p); });
|
||||
rcmail.register_command('attachment-save-calendar', function() { cal.save_to_calendar(); });
|
||||
rcmail.addEventListener('plugin.mail2event_dialog', function(p) { cal.mail2event_dialog(p); });
|
||||
rcmail.addEventListener('plugin.unlock_saving', function(p) { cal.ui && cal.ui.unlock_saving(); });
|
||||
|
||||
if (rcmail.env.action != 'show') {
|
||||
rcmail.env.message_commands.push('calendar-create-from-mail');
|
||||
rcmail.add_element($('<a>'));
|
||||
}
|
||||
else {
|
||||
rcmail.enable_command('calendar-create-from-mail', true);
|
||||
|
|
2303
calendar_ui.js
|
@ -3,8 +3,8 @@
|
|||
"type": "roundcube-plugin",
|
||||
"description": "Calendar plugin",
|
||||
"homepage": "https://git.kolab.org/diffusion/RPK/",
|
||||
"keywords": ["apps","calendar","ical","itip"],
|
||||
"license": "AGPLv3",
|
||||
"version": "3.5.11",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Thomas Bruederli",
|
||||
|
@ -12,7 +12,7 @@
|
|||
"role": "Lead"
|
||||
},
|
||||
{
|
||||
"name": "Aleksander Machniak",
|
||||
"name": "Alensader Machniak",
|
||||
"email": "machniak@kolabsys.com",
|
||||
"role": "Developer"
|
||||
}
|
||||
|
@ -21,22 +21,16 @@
|
|||
{
|
||||
"type": "composer",
|
||||
"url": "https://plugins.roundcube.net"
|
||||
},
|
||||
{
|
||||
"type": "vcs",
|
||||
"url": "https://github.com/JodliDev/libcalendaring"
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
"php": ">=5.5",
|
||||
"php": ">=5.3.0",
|
||||
"roundcube/plugin-installer": ">=0.1.3",
|
||||
"jodlidev/libcalendaring": "dev-master",
|
||||
"kolab/libkolab": ">=3.4.0",
|
||||
"sabre/dav": ">=4.1.5"
|
||||
"kolab/libcalendaring": ">=3.2.16"
|
||||
},
|
||||
"extra": {
|
||||
"extra": {
|
||||
"roundcube": {
|
||||
"min-version": "1.4.0",
|
||||
"min-version": "1.1.0",
|
||||
"sql-dir": "drivers/database/SQL"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,18 +25,41 @@
|
|||
+-------------------------------------------------------------------------+
|
||||
*/
|
||||
|
||||
// backend type (database, kolab, caldav)
|
||||
$config['calendar_driver'] = "caldav";
|
||||
|
||||
// Enable debugging output for iCAL/CalDAV drivers
|
||||
$config['calendar_caldav_debug'] = false;
|
||||
// backend type (database, google, kolab)
|
||||
$config['calendar_driver'] = "database";
|
||||
|
||||
// default calendar view (agendaDay, agendaWeek, month)
|
||||
$config['calendar_default_view'] = "agendaWeek";
|
||||
|
||||
// show a birthdays calendar from the user's address book(s)
|
||||
$config['calendar_contact_birthdays'] = false;
|
||||
$config['birthday_calendar'] = array('color' => 'fffb00');
|
||||
|
||||
// mapping of Roundcube date formats to calendar formats (long/short/agenda)
|
||||
// should be in sync with 'date_formats' in main config
|
||||
$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'),
|
||||
'MM/dd/yyyy' => array('MMM d yyyy', 'M/d', 'ddd MM/dd'),
|
||||
'dd/MM/yyyy' => array('d MMM yyyy', 'd/M', 'ddd dd/MM'),
|
||||
'dd.MM.yyyy' => array('dd. MMM yyyy', 'd.M', 'ddd dd.MM.'),
|
||||
'd.M.yyyy' => array('d. MMM yyyy', 'd.M', 'ddd d.MM.'),
|
||||
);
|
||||
|
||||
// general date format (only set if different from default date format and not user configurable)
|
||||
// $config['calendar_date_format'] = "yyyy-MM-dd";
|
||||
|
||||
// time format (only set if different from default date format)
|
||||
// $config['calendar_time_format'] = "HH:mm";
|
||||
|
||||
// short date format (used for column titles)
|
||||
// $config['calendar_date_short'] = 'M-d';
|
||||
|
||||
// long date format (used for calendar title)
|
||||
// $config['calendar_date_long'] = 'MMM d yyyy';
|
||||
|
||||
// date format used for agenda view
|
||||
// $config['calendar_date_agenda'] = 'ddd MM-dd';
|
||||
|
||||
// timeslots per hour (1, 2, 3, 4, 6)
|
||||
$config['calendar_timeslots'] = 2;
|
||||
|
@ -59,12 +82,6 @@ $config['calendar_work_end'] = 18;
|
|||
// show line at current time of the day
|
||||
$config['calendar_time_indicator'] = true;
|
||||
|
||||
// Display week numbers:
|
||||
// -1: don't display week numbers
|
||||
// 0: in datepicker only (default)
|
||||
// 1: in both datepicker and calendar
|
||||
$config['calendar_show_weekno'] = 0;
|
||||
|
||||
// default alarm settings for new events.
|
||||
// this is only a preset when a new event dialog opens
|
||||
// possible values are <empty>, DISPLAY, EMAIL
|
||||
|
@ -121,9 +138,8 @@ $config['calendar_freebusy_trigger'] = false;
|
|||
$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'
|
||||
// This will add a link to invitation messages to allow users from outside
|
||||
// to reply when their mail clients do not support iTip format.
|
||||
$config['calendar_itip_smtp_server'] = null;
|
||||
|
||||
// SMTP username used to send (anonymous) itip messages
|
||||
|
@ -143,20 +159,6 @@ $config['kolab_invitation_calendars'] = false;
|
|||
// %i - Calendar UUID
|
||||
// $config['calendar_caldav_url'] = 'http://%h/iRony/calendars/%u/%i';
|
||||
|
||||
// List of CalDAV sources that should be allready installed.
|
||||
// They will be added when the calendar section is accessed for the first time by a user.
|
||||
// For 'caldav_user' and 'caldav_url' the following replacement variables are supported:
|
||||
// %u - Current webmail user name
|
||||
// For 'caldav_pass' %p is replaced by the current user's password.
|
||||
// $config['calendar_caldav_preinstalled_sources'] = array(
|
||||
// 'name' => array(
|
||||
// 'caldav_user' => '%u',
|
||||
// 'caldav_pass' => '%p',
|
||||
// 'caldav_url' => 'https://example.net/dav',
|
||||
// 'showAlarms' => 1
|
||||
// )
|
||||
// );
|
||||
|
||||
// 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';
|
||||
|
@ -164,9 +166,4 @@ $config['kolab_invitation_calendars'] = false;
|
|||
// LDAP directory configuration to find avilable resources for events
|
||||
// $config['calendar_resources_directory'] = array(/* ldap_public-like address book configuration */);
|
||||
|
||||
// Enables displaying of free-busy URL with token-based authentication
|
||||
// Set it to the prefix URL, e.g. 'https://hostname/freebusy' or just '/freebusy'.
|
||||
// See freebusy_session_auth in configuration of kolab_auth plugin.
|
||||
$config['calendar_freebusy_session_auth_url'] = null;
|
||||
|
||||
?>
|
||||
|
|
|
@ -1,75 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Interface for different sync drivers
|
||||
*
|
||||
* @version @package_version@
|
||||
* @author JodliDev <jodlidev@gmail.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 Isync {
|
||||
/**
|
||||
* Getter for current calendar ctag (only for CalDAV).
|
||||
* @return string
|
||||
*/
|
||||
public function get_ctag();
|
||||
|
||||
/**
|
||||
* Determines whether current calendar needs to be synced
|
||||
*
|
||||
* @return boolean True if the current calendar needs to be synced, false otherwise.
|
||||
*/
|
||||
public function is_synced();
|
||||
|
||||
/**
|
||||
* Synchronizes given events with server and returns updates.
|
||||
*
|
||||
* @param array List of hash arrays with event properties, must include "caldav_url" and "tag".
|
||||
* @return array Tuple containing the following lists:
|
||||
*
|
||||
* Caldav properties for events to be created or to be updated with the keys:
|
||||
* url: Event ical URL relative to calendar URL
|
||||
* etag: Remote etag of the event
|
||||
* local_event: The local event in case of an update.
|
||||
* remote_event: The current event retrieved from caldav server.
|
||||
*
|
||||
* A list of event ids that are in sync.
|
||||
*/
|
||||
public function get_updates($events);
|
||||
|
||||
/**
|
||||
* Creates the given event.
|
||||
*
|
||||
* @param array Hash array with event properties.
|
||||
* @return array with updated "caldav_url" and "caldav_tag" attributes, null on error.
|
||||
*/
|
||||
public function create_event($event);
|
||||
|
||||
/**
|
||||
* Updates the given event.
|
||||
*
|
||||
* @param array Hash array with event properties to update, must include "uid", "caldav_url" and "caldav_tag".
|
||||
* @return boolean True on success, false on error, -1 if the given event/etag is not up to date.
|
||||
*/
|
||||
public function update_event($event);
|
||||
|
||||
/**
|
||||
* Removes the given event.
|
||||
*
|
||||
* @param array Hash array with events properties, must include "caldav_url".
|
||||
* @return boolean True on success, false on error.
|
||||
*/
|
||||
public function remove_event($event);
|
||||
}
|
|
@ -1,110 +0,0 @@
|
|||
/**
|
||||
* CalDAV Client
|
||||
*
|
||||
* @version @package_version@
|
||||
* @author Daniel Morlock <daniel.morlock@awesome-it.de>
|
||||
* @author JodliDev <jodlidev@gmail.com>
|
||||
*
|
||||
* Copyright (C) Awesome IT GbR <info@awesome-it.de>
|
||||
*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `caldav_sources` (
|
||||
`source_id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
|
||||
|
||||
`caldav_url` varchar(1024) NOT NULL,
|
||||
`caldav_user` varchar(255) DEFAULT NULL,
|
||||
`caldav_pass` varchar(1024) DEFAULT NULL,
|
||||
|
||||
PRIMARY KEY(`source_id`),
|
||||
CONSTRAINT `fk_caldav_sources_user_id` FOREIGN KEY (`user_id`)
|
||||
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `caldav_calendars` (
|
||||
`calendar_id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
|
||||
`source_id` int(10) UNSIGNED DEFAULT NULL,
|
||||
`name` varchar(255) CHARACTER SET utf8mb4 NOT NULL,
|
||||
`color` varchar(8) NOT NULL,
|
||||
`showalarms` tinyint(1) NOT NULL DEFAULT '1',
|
||||
|
||||
`caldav_tag` varchar(255) DEFAULT NULL,
|
||||
`caldav_url` varchar(1024) NOT NULL,
|
||||
`caldav_last_change` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
`is_ical` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`ical_user` varchar(255) DEFAULT NULL,
|
||||
`ical_pass` varchar(1024) DEFAULT NULL,
|
||||
|
||||
PRIMARY KEY(`calendar_id`),
|
||||
INDEX `caldav_user_name_idx` (`user_id`, `name`),
|
||||
CONSTRAINT `fk_caldav_calendars_user_id` FOREIGN KEY (`user_id`)
|
||||
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
CONSTRAINT `fk_caldav_calendars_sources` FOREIGN KEY (`source_id`)
|
||||
REFERENCES `caldav_sources`(`source_id`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci */;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `caldav_events` (
|
||||
`event_id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`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',
|
||||
`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) CHARACTER SET utf8mb4 NOT NULL,
|
||||
`description` text CHARACTER SET utf8mb4 NOT NULL,
|
||||
`location` varchar(255) CHARACTER SET utf8mb4 NOT NULL DEFAULT '',
|
||||
`categories` varchar(255) CHARACTER SET utf8mb4 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 NULL DEFAULT NULL,
|
||||
`attendees` text DEFAULT NULL,
|
||||
`notifyat` datetime DEFAULT NULL,
|
||||
|
||||
`caldav_url` varchar(255) NOT NULL,
|
||||
`caldav_tag` varchar(255) DEFAULT NULL,
|
||||
`caldav_last_change` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
|
||||
PRIMARY KEY(`event_id`),
|
||||
INDEX `caldav_uid_idx` (`uid`),
|
||||
INDEX `caldav_recurrence_idx` (`recurrence_id`),
|
||||
INDEX `caldav_calendar_notify_idx` (`calendar_id`,`notifyat`),
|
||||
CONSTRAINT `fk_caldav_events_calendar_id` FOREIGN KEY (`calendar_id`)
|
||||
REFERENCES `caldav_calendars`(`calendar_id`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci */;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `caldav_attachments` (
|
||||
`attachment_id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`event_id` int(11) UNSIGNED NOT NULL DEFAULT '0',
|
||||
`filename` varchar(255) NOT NULL DEFAULT '',
|
||||
`mimetype` varchar(255) NOT NULL DEFAULT '',
|
||||
`size` int(11) NOT NULL DEFAULT '0',
|
||||
`data` longtext NOT NULL,
|
||||
PRIMARY KEY(`attachment_id`),
|
||||
CONSTRAINT `fk_caldav_attachments_event_id` FOREIGN KEY (`event_id`)
|
||||
REFERENCES `caldav_events`(`event_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-caldav-version', '2021082400');
|
|
@ -1,125 +0,0 @@
|
|||
/**
|
||||
* CalDAV Client
|
||||
* (not tested & automatically generated from mysql)
|
||||
*
|
||||
* @version @package_version@
|
||||
* @author JodliDev <jodlidev@gmail.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/>.
|
||||
*/
|
||||
|
||||
-- SQLINES LICENSE FOR EVALUATION USE ONLY
|
||||
CREATE SEQUENCE IF NOT EXISTS caldav_sources_seq;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS caldav_sources (
|
||||
source_id int CHECK (source_id > 0) NOT NULL DEFAULT NEXTVAL ('caldav_sources_seq'),
|
||||
user_id int CHECK (user_id > 0) NOT NULL DEFAULT '0',
|
||||
|
||||
caldav_url varchar(1024) NOT NULL,
|
||||
caldav_user varchar(255) DEFAULT NULL,
|
||||
caldav_pass varchar(1024) DEFAULT NULL,
|
||||
|
||||
PRIMARY KEY(source_id),
|
||||
CONSTRAINT fk_caldav_sources_user_id FOREIGN KEY (user_id)
|
||||
REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
) /* SQLINES DEMO *** DB */ /* SQLINES DEMO *** ET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
-- SQLINES LICENSE FOR EVALUATION USE ONLY
|
||||
CREATE SEQUENCE IF NOT EXISTS caldav_calendars_seq;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS caldav_calendars (
|
||||
calendar_id int CHECK (calendar_id > 0) NOT NULL DEFAULT NEXTVAL ('caldav_calendars_seq'),
|
||||
user_id int CHECK (user_id > 0) NOT NULL DEFAULT '0',
|
||||
source_id int CHECK (source_id > 0) DEFAULT NULL,
|
||||
name varchar(255) NOT NULL,
|
||||
color varchar(8) NOT NULL,
|
||||
showalarms smallint NOT NULL DEFAULT '1',
|
||||
|
||||
caldav_tag varchar(255) DEFAULT NULL,
|
||||
caldav_url varchar(1024) NOT NULL,
|
||||
caldav_last_change timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
is_ical smallint NOT NULL DEFAULT '0',
|
||||
ical_user varchar(255) DEFAULT NULL,
|
||||
ical_pass varchar(1024) DEFAULT NULL,
|
||||
|
||||
PRIMARY KEY(calendar_id)
|
||||
,
|
||||
CONSTRAINT fk_caldav_calendars_user_id FOREIGN KEY (user_id)
|
||||
REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
CONSTRAINT fk_caldav_calendars_sources FOREIGN KEY (source_id)
|
||||
REFERENCES caldav_sources(source_id) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
) /* SQLINES DEMO *** DB */ /* SQLINES DEMO *** ET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
CREATE INDEX IF NOT EXISTS caldav_user_name_idx ON caldav_calendars (user_id, name);
|
||||
|
||||
-- SQLINES LICENSE FOR EVALUATION USE ONLY
|
||||
CREATE SEQUENCE IF NOT EXISTS caldav_events_seq;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS caldav_events (
|
||||
event_id int CHECK (event_id > 0) NOT NULL DEFAULT NEXTVAL ('caldav_events_seq'),
|
||||
calendar_id int CHECK (calendar_id > 0) NOT NULL DEFAULT '0',
|
||||
recurrence_id int NOT NULL DEFAULT '0',
|
||||
uid varchar(255) NOT NULL DEFAULT '',
|
||||
instance varchar(16) NOT NULL DEFAULT '',
|
||||
isexception smallint NOT NULL DEFAULT '0',
|
||||
created timestamp(0) NOT NULL DEFAULT '1000-01-01 00:00:00',
|
||||
changed timestamp(0) NOT NULL DEFAULT '1000-01-01 00:00:00',
|
||||
sequence int NOT NULL DEFAULT '0',
|
||||
start timestamp(0) NOT NULL DEFAULT '1000-01-01 00:00:00',
|
||||
"end" timestamp(0) 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 smallint NOT NULL DEFAULT '0',
|
||||
free_busy smallint NOT NULL DEFAULT '0',
|
||||
priority smallint NOT NULL DEFAULT '0',
|
||||
sensitivity smallint NOT NULL DEFAULT '0',
|
||||
status varchar(32) NOT NULL DEFAULT '',
|
||||
alarms text NULL DEFAULT NULL,
|
||||
attendees text DEFAULT NULL,
|
||||
notifyat timestamp(0) DEFAULT NULL,
|
||||
|
||||
caldav_url varchar(255) NOT NULL,
|
||||
caldav_tag varchar(255) DEFAULT NULL,
|
||||
caldav_last_change timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
|
||||
PRIMARY KEY(event_id)
|
||||
,
|
||||
CONSTRAINT fk_caldav_events_calendar_id FOREIGN KEY (calendar_id)
|
||||
REFERENCES caldav_calendars(calendar_id) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
) /* SQLINES DEMO *** DB */ /* SQLINES DEMO *** ET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
CREATE INDEX IF NOT EXISTS caldav_uid_idx ON caldav_events (uid);
|
||||
CREATE INDEX IF NOT EXISTS caldav_recurrence_idx ON caldav_events (recurrence_id);
|
||||
CREATE INDEX IF NOT EXISTS caldav_calendar_notify_idx ON caldav_events (calendar_id,notifyat);
|
||||
|
||||
-- SQLINES LICENSE FOR EVALUATION USE ONLY
|
||||
CREATE SEQUENCE IF NOT EXISTS caldav_attachments_seq;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS caldav_attachments (
|
||||
attachment_id int CHECK (attachment_id > 0) NOT NULL DEFAULT NEXTVAL ('caldav_attachments_seq'),
|
||||
event_id int CHECK (event_id > 0) NOT NULL DEFAULT '0',
|
||||
filename varchar(255) NOT NULL DEFAULT '',
|
||||
mimetype varchar(255) NOT NULL DEFAULT '',
|
||||
size int NOT NULL DEFAULT '0',
|
||||
data TEXT NOT NULL,
|
||||
PRIMARY KEY(attachment_id),
|
||||
CONSTRAINT fk_caldav_attachments_event_id FOREIGN KEY (event_id)
|
||||
REFERENCES caldav_events(event_id) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
) /* SQLINES DEMO *** DB */ /* SQLINES DEMO *** ET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
INSERT INTO system (name, value) VALUES ('calendar-caldav-version', '2021082400') ON CONFLICT (name) DO UPDATE SET value = excluded.value;
|
|
@ -1,101 +0,0 @@
|
|||
/**
|
||||
* CalDAV Client
|
||||
* (not tested & automatically generated from mysql)
|
||||
*
|
||||
* @version @package_version@
|
||||
* @author JodliDev <jodlidev@gmail.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/>.
|
||||
*/
|
||||
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `caldav_sources` (
|
||||
`source_id` INTEGER NOT NULL PRIMARY KEY,
|
||||
`user_id` INTEGER NOT NULL DEFAULT '0',
|
||||
`caldav_url` TEXT NOT NULL,
|
||||
`caldav_user` TEXT DEFAULT NULL,
|
||||
`caldav_pass` TEXT DEFAULT NULL,
|
||||
CONSTRAINT fk_itipinvitations_user_id FOREIGN KEY (`user_id`)
|
||||
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `caldav_calendars` (
|
||||
`calendar_id` INTEGER NOT NULL PRIMARY KEY,
|
||||
`user_id` INTEGER NOT NULL DEFAULT '0',
|
||||
`source_id` INTEGER DEFAULT NULL,
|
||||
`name` TEXT NOT NULL,
|
||||
`color` TEXT NOT NULL,
|
||||
`showalarms` tinyINTEGER NOT NULL DEFAULT '1',
|
||||
`caldav_tag` TEXT DEFAULT NULL,
|
||||
`caldav_url` TEXT NOT NULL,
|
||||
`caldav_last_change` timestamp NOT NULL ,
|
||||
`is_ical` tinyINTEGER NOT NULL DEFAULT '0',
|
||||
`ical_user` TEXT DEFAULT NULL,
|
||||
`ical_pass` TEXT DEFAULT NULL,
|
||||
|
||||
CONSTRAINT `fk_caldav_calendars_user_id` FOREIGN KEY (`user_id`)
|
||||
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
CONSTRAINT `fk_caldav_calendars_sources` FOREIGN KEY (`source_id`)
|
||||
REFERENCES `caldav_sources`(`source_id`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `caldav_events` (
|
||||
`event_id` INTEGER NOT NULL PRIMARY KEY,
|
||||
`calendar_id` INTEGER NOT NULL DEFAULT '0',
|
||||
`recurrence_id` INTEGER NOT NULL DEFAULT '0',
|
||||
`uid` TEXT NOT NULL DEFAULT '',
|
||||
`instance` TEXT NOT NULL DEFAULT '',
|
||||
`isexception` tinyINTEGER 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` TEXT DEFAULT NULL,
|
||||
`title` TEXT NOT NULL,
|
||||
`description` text NOT NULL,
|
||||
`location` TEXT NOT NULL DEFAULT '',
|
||||
`categories` TEXT NOT NULL DEFAULT '',
|
||||
`url` TEXT NOT NULL DEFAULT '',
|
||||
`all_day` tinyINTEGER NOT NULL DEFAULT '0',
|
||||
`free_busy` tinyINTEGER NOT NULL DEFAULT '0',
|
||||
`priority` tinyINTEGER NOT NULL DEFAULT '0',
|
||||
`sensitivity` tinyINTEGER NOT NULL DEFAULT '0',
|
||||
`status` TEXT NOT NULL DEFAULT '',
|
||||
`alarms` text NULL DEFAULT NULL,
|
||||
`attendees` text DEFAULT NULL,
|
||||
`notifyat` datetime DEFAULT NULL,
|
||||
`caldav_url` TEXT NOT NULL,
|
||||
`caldav_tag` TEXT DEFAULT NULL,
|
||||
`caldav_last_change` timestamp NOT NULL ,
|
||||
FOREIGN KEY (`calendar_id`)
|
||||
REFERENCES `caldav_calendars`(`calendar_id`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `caldav_attachments` (
|
||||
`attachment_id` INTEGER NOT NULL PRIMARY KEY,
|
||||
`event_id` INTEGER NOT NULL DEFAULT '0',
|
||||
`filename` TEXT NOT NULL DEFAULT '',
|
||||
`mimetype` TEXT NOT NULL DEFAULT '',
|
||||
`size` INTEGER NOT NULL DEFAULT '0',
|
||||
`data` TEXT NOT NULL,
|
||||
FOREIGN KEY (`event_id`)
|
||||
REFERENCES `caldav_events`(`event_id`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
);
|
||||
REPLACE INTO `system` (`name`, `value`) VALUES ('calendar-caldav-version', '2021082400');
|
||||
|
||||
CREATE INDEX caldav_user_name_idx ON caldav_calendars(user_id, name);
|
||||
CREATE INDEX caldav_uid_idx ON caldav_events(uid);
|
||||
CREATE INDEX caldav_recurrence_idx ON caldav_events(recurrence_id);
|
||||
CREATE INDEX caldav_calendar_notify_idx ON caldav_events(calendar_id, notifyat);
|
|
@ -1,404 +0,0 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* CalDAV Client
|
||||
*
|
||||
* @version @package_version@
|
||||
* @author Daniel Morlock <daniel.morlock@awesome-it.de>
|
||||
* @author JodliDev <jodlidev@gmail.com>
|
||||
*
|
||||
* Copyright (C) Awesome IT GbR <info@awesome-it.de>
|
||||
*
|
||||
* 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 caldav_client extends Sabre\DAV\Client
|
||||
{
|
||||
const CLARK_GETCTAG = '{http://calendarserver.org/ns/}getctag';
|
||||
const CLARK_GETETAG = '{DAV:}getetag';
|
||||
const CLARK_CALDATA = '{urn:ietf:params:xml:ns:caldav}calendar-data';
|
||||
|
||||
private $base_uri;
|
||||
private $path;
|
||||
private $libvcal;
|
||||
|
||||
/**
|
||||
* Default constructor for CalDAV client.
|
||||
*
|
||||
* @param string Caldav URI to appropriate calendar.
|
||||
* @param string Username for HTTP basic auth.
|
||||
* @param string Password for HTTP basic auth.
|
||||
*/
|
||||
public function __construct($uri, $user = null, $pass = null)
|
||||
{
|
||||
|
||||
// Include libvcalendar on demand ...
|
||||
if(!class_exists("libvcalendar"))
|
||||
require_once __DIR__ .'/../../../libcalendaring/libvcalendar.php';
|
||||
|
||||
|
||||
$this->libvcal = new libvcalendar();
|
||||
|
||||
$tokens = parse_url($uri);
|
||||
$this->base_uri = $tokens['scheme']."://".$tokens['host'].($tokens['port'] ? ":".$tokens['port'] : null);
|
||||
$this->path = $tokens['path'].($tokens['query'] ? "?".$tokens['query'] : null);
|
||||
|
||||
$settings = array(
|
||||
'baseUri' => $this->base_uri,
|
||||
'authType' => Sabre\DAV\Client::AUTH_BASIC
|
||||
);
|
||||
|
||||
$this->rc = rcmail::get_instance();
|
||||
|
||||
if ($user) $settings['userName'] = $user;
|
||||
if ($pass) $settings['password'] = $pass;
|
||||
|
||||
parent::__construct($settings);
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetches calendar ctag.
|
||||
*
|
||||
* @see http://code.google.com/p/sabredav/wiki/BuildingACalDAVClient#Retrieving_calendar_information
|
||||
* @return Calendar ctag or null on error.
|
||||
*/
|
||||
public function get_ctag()
|
||||
{
|
||||
try
|
||||
{
|
||||
$arr = $this->propFind($this->path, array(self::CLARK_GETCTAG));
|
||||
|
||||
if (isset($arr[self::CLARK_GETCTAG]))
|
||||
return $arr[self::CLARK_GETCTAG];
|
||||
}
|
||||
catch(Sabre\DAV\Exception $err)
|
||||
{
|
||||
rcube::raise_error(array(
|
||||
'code' => $err->getHTTPCode(),
|
||||
'type' => 'DAV',
|
||||
'file' => $err->getFile(),
|
||||
'line' => $err->getLine(),
|
||||
'message' => $err->getMessage()
|
||||
), true, false);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetches event etags and urls.
|
||||
*
|
||||
* @see http://code.google.com/p/sabredav/wiki/BuildingACalDAVClient#Finding_out_if_anything_changed
|
||||
*
|
||||
* @param array Optional list of relative event URL's to retrieve specific etags. If not specified, all etags of the current calendar are returned.
|
||||
* @return array List of etag properties with keys:
|
||||
* url: Event ical path relative to the calendar URL.
|
||||
* etag: Current event etag.
|
||||
*/
|
||||
public function get_etags(array $event_urls = array())
|
||||
{
|
||||
$etags = array();
|
||||
|
||||
try
|
||||
{
|
||||
$arr = $this->prop_report($this->path, array(self::CLARK_GETETAG), $event_urls);
|
||||
foreach ($arr as $path => $data)
|
||||
{
|
||||
// Some caldav server return an empty calendar as event where etag is missing. Skip this!
|
||||
if($data[self::CLARK_GETETAG])
|
||||
{
|
||||
array_push($etags, array(
|
||||
"url" => $path,
|
||||
"etag" => str_replace('"', null, $data[self::CLARK_GETETAG])
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
catch(Sabre\DAV\Exception $err)
|
||||
{
|
||||
rcube::raise_error(array(
|
||||
'code' => $err->getHTTPCode(),
|
||||
'type' => 'DAV',
|
||||
'file' => $err->getFile(),
|
||||
'line' => $err->getLine(),
|
||||
'message' => $err->getMessage()
|
||||
), true, false);
|
||||
}
|
||||
|
||||
return $etags;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetches calendar events.
|
||||
*
|
||||
* @see http://code.google.com/p/sabredav/wiki/BuildingACalDAVClient#Downloading_objects
|
||||
* @param array $urls = array() Optional list of event URL's to fetch. If non is specified, all
|
||||
* events from the appropriate calendar will be fetched.
|
||||
* @return Array hash list that maps the events URL to the appropriate event properties.
|
||||
*/
|
||||
public function get_events($urls = array())
|
||||
{
|
||||
$events = array();
|
||||
|
||||
try
|
||||
{
|
||||
$vcals = $this->prop_report($this->path, array(
|
||||
self::CLARK_GETETAG,
|
||||
self::CLARK_CALDATA
|
||||
), $urls);
|
||||
|
||||
foreach ($vcals as $path => $response)
|
||||
{
|
||||
$vcal = $response[self::CLARK_CALDATA];
|
||||
if(!$vcal)
|
||||
continue;
|
||||
foreach ($this->libvcal->import($vcal) as $event) {
|
||||
$events[$path] = $event;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch(Sabre\DAV\Exception $err)
|
||||
{
|
||||
rcube::raise_error(array(
|
||||
'code' => $err->getHTTPCode(),
|
||||
'type' => 'DAV',
|
||||
'file' => $err->getFile(),
|
||||
'line' => $err->getLine(),
|
||||
'message' => $err->getMessage()
|
||||
), true, false);
|
||||
}
|
||||
return $events;
|
||||
}
|
||||
|
||||
/**
|
||||
* Does a REPORT request
|
||||
*
|
||||
* @param string $url
|
||||
* @param array $properties List of requested properties must be specified as an array, in clark
|
||||
* notation.
|
||||
* @param array $event_urls If specified, a multiget report request will be initiated with the
|
||||
* specified event urls.
|
||||
* @param int $depth = 1 Depth should be either 0 or 1. A depth of 1 will cause a request to be
|
||||
* made to the server to also return all child resources.
|
||||
* @return array Hash with ics event path as key and a hash array with properties and appropriate values.
|
||||
*/
|
||||
public function prop_report($url, array $properties, array $event_urls = array(), $depth = 1)
|
||||
{
|
||||
$parent_tag = sizeof($event_urls) > 0 ? "c:calendar-multiget" : "d:propfind";
|
||||
$method = sizeof($event_urls) > 0 ? 'REPORT' : 'PROPFIND';
|
||||
|
||||
$body = '<?xml version="1.0"?>'."\n".'<'.$parent_tag.' xmlns:d="DAV:" xmlns:c="urn:ietf:params:xml:ns:caldav">'."\n";
|
||||
|
||||
$body .= ' <d:prop>'."\n";
|
||||
foreach ($properties as $property)
|
||||
{
|
||||
|
||||
list($namespace, $elementName) = Sabre\Xml\Service::parseClarkNotation($property);
|
||||
|
||||
if ($namespace === 'DAV:')
|
||||
{
|
||||
$body .= ' <d:'.$elementName.' />'."\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
$body .= ' <x:'.$elementName.' xmlns:x="'.$namespace.'"/>'."\n";
|
||||
}
|
||||
}
|
||||
$body .= ' </d:prop>'."\n";
|
||||
|
||||
// http://tools.ietf.org/html/rfc4791#page-90
|
||||
// http://www.bedework.org/trac/bedework/wiki/Bedework/DevDocs/Filters
|
||||
/*
|
||||
if($start && $end)
|
||||
{
|
||||
$body.= ' <c:filter>'."\n".
|
||||
' <c:comp-filter name="VCALENDAR">'."\n".
|
||||
' <c:comp-filter name="VEVENT">'."\n".
|
||||
' <c:time-range start="'.$start.'" end="'.$end.'" />'."\n".
|
||||
' </c:comp-filter>'."\n".
|
||||
' </c:comp-filter>'."\n".
|
||||
' </c:filter>' . "\n";
|
||||
}
|
||||
*/
|
||||
|
||||
foreach ($event_urls as $event_url)
|
||||
{
|
||||
$body .= '<d:href>'.$event_url.'</d:href>'."\n";
|
||||
}
|
||||
|
||||
$body .= '</'.$parent_tag.'>';
|
||||
|
||||
$response = $this->request($method, $url, $body, array(
|
||||
'Depth' => $depth,
|
||||
'Content-Type' => 'application/xml'
|
||||
));
|
||||
|
||||
$result = $this->parseMultiStatus($response['body']);
|
||||
|
||||
// If depth was 0, we only return the top item
|
||||
if ($depth === 0)
|
||||
{
|
||||
reset($result);
|
||||
$result = current($result);
|
||||
return isset($result[200]) ? $result[200] : array();
|
||||
}
|
||||
|
||||
$new_result = array();
|
||||
foreach ($result as $href => $status_list)
|
||||
{
|
||||
$new_result[$href] = isset($status_list[200]) ? $status_list[200] : array();
|
||||
}
|
||||
|
||||
return $new_result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates or creates a calendar event.
|
||||
*
|
||||
* @see http://code.google.com/p/sabredav/wiki/BuildingACalDAVClient#Updating_a_calendar_object
|
||||
* @param string Event ics path for the event.
|
||||
* @param array Hash array with event properties.
|
||||
* @param string Current event etag to match against server data. Pass null for new events.
|
||||
* @return True on success, -1 if precondition failed i.e. local etag is not up to date, false on error.
|
||||
*/
|
||||
public function put_event($path, $event, $etag = null)
|
||||
{
|
||||
try
|
||||
{
|
||||
$headers = array("Content-Type" => "text/calendar; charset=utf-8");
|
||||
if ($etag) $headers["If-Match"] = '"'.$etag.'"';
|
||||
|
||||
// Temporarily disable error reporting since libvcal seems not checking array key properly.
|
||||
// TODO: Remove this todo if we could ensure that those errors come not from incomplete event properties.
|
||||
$err_rep = error_reporting(E_ERROR);
|
||||
$vcal = $this->libvcal->export(array($event));
|
||||
if (is_array($vcal))
|
||||
$vcal = array_shift($vcal);
|
||||
error_reporting($err_rep);
|
||||
|
||||
$response = $this->request('PUT', $path, $vcal, $headers);
|
||||
|
||||
// Following http://code.google.com/p/sabredav/wiki/BuildingACalDAVClient#Creating_a_calendar_object, the
|
||||
// caldav server must not always return the new etag.
|
||||
|
||||
return $response["statusCode"] == 201 || // 201 (created, successfully created)
|
||||
$response["statusCode"] == 204; // 204 (no content, successfully updated)
|
||||
}
|
||||
catch(Sabre\DAV\Exception\PreconditionFailed $err)
|
||||
{
|
||||
// Event tag not up to date, must be updated first ...
|
||||
return -1;
|
||||
}
|
||||
catch(Sabre\DAV\Exception $err)
|
||||
{
|
||||
rcube::raise_error(array(
|
||||
'code' => $err->getHTTPCode(),
|
||||
'type' => 'DAV',
|
||||
'file' => $err->getFile(),
|
||||
'line' => $err->getLine(),
|
||||
'message' => $err->getMessage()
|
||||
), true, false);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes event of given URL.
|
||||
*
|
||||
* @see http://code.google.com/p/sabredav/wiki/BuildingACalDAVClient#Deleting_a_calendar_object
|
||||
* @param string Event ics path for the event.
|
||||
* @param string Current event etag to match against server data. Pass null to force removing the event.
|
||||
* @return True on success, -1 if precondition failed i.e. local etag is not up to date, false on error.
|
||||
**/
|
||||
public function remove_event($path, $etag = null)
|
||||
{
|
||||
try
|
||||
{
|
||||
$headers = array("Content-Type" => "text/calendar; charset=utf-8");
|
||||
if ($etag) $headers["If-Match"] = '"'.$etag.'"';
|
||||
|
||||
$response = $this->request('DELETE', $path, null, $headers);
|
||||
return $response["statusCode"] == 204 || // 204 (no content, successfully deleted)
|
||||
$response["statusCode"] == 200; // 200 (OK, successfully deleted)
|
||||
}
|
||||
catch(Sabre\DAV\Exception\PreconditionFailed $err)
|
||||
{
|
||||
// Event tag not up to date, must be updated first ...
|
||||
return -1;
|
||||
}
|
||||
catch(Sabre\DAV\Exception $err)
|
||||
{
|
||||
rcube::raise_error(array(
|
||||
'code' => $err->getHTTPCode(),
|
||||
'type' => 'DAV',
|
||||
'file' => $err->getFile(),
|
||||
'line' => $err->getLine(),
|
||||
'message' => $err->getMessage()
|
||||
), true, false);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Make a propFind query to caldav server
|
||||
* @param string $path absolute or relative URL to Resource
|
||||
* @param array $props list of properties to use for the query. Properties must have clark-notation.
|
||||
* @param int $depth 0 means no recurse while 1 means recurse
|
||||
* @return array
|
||||
*/
|
||||
public function prop_find($path, $props, $depth)
|
||||
{
|
||||
try {
|
||||
$response = $this->propFind($path, $props, $depth);
|
||||
}
|
||||
catch(Sabre\DAV\Exception $err)
|
||||
{
|
||||
rcube::raise_error(array(
|
||||
'code' => $err->getHTTPCode(),
|
||||
'type' => 'DAV',
|
||||
'file' => $err->getFile(),
|
||||
'line' => $err->getLine(),
|
||||
'message' => $err->getMessage()
|
||||
), true, false);
|
||||
}
|
||||
return $response;
|
||||
}
|
||||
|
||||
public function create_calendar($path, $name, $color) {
|
||||
$headers = array("Content-Type" => "application/xml; charset=utf-8");
|
||||
$body = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>
|
||||
<C:mkcalendar xmlns:D=\"DAV:\" xmlns:C=\"urn:ietf:params:xml:ns:caldav\" xmlns:ical=\"http://apple.com/ns/ical/\">
|
||||
<D:set>
|
||||
<D:prop>
|
||||
<D:displayname>$name</D:displayname>
|
||||
<ical:calendar-color>#$color</ical:calendar-color>
|
||||
</D:prop>
|
||||
</D:set>
|
||||
</C:mkcalendar>";
|
||||
|
||||
$response = $this->request('MKCALENDAR', $path, $body, $headers);
|
||||
if($response['statusCode'] !== 201) {
|
||||
rcmail::console('Could not create calendar. Response:' .print_r($response, true));
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public function delete_calendar() {
|
||||
$response = $this->request('DELETE', $this->base_uri .$this->path);
|
||||
return $response["statusCode"] === 204 || // 204 (no content, successfully deleted)
|
||||
$response["statusCode"] === 200; // 200 (OK, successfully deleted)
|
||||
}
|
||||
};
|
||||
?>
|
|
@ -1,254 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* CalDAV sync for the Calendar plugin
|
||||
*
|
||||
* @version @package_version@
|
||||
* @author Daniel Morlock <daniel.morlock@awesome-it.de>
|
||||
* @author JodliDev <jodlidev@gmail.com>
|
||||
*
|
||||
* Copyright (C) Awesome IT GbR <info@awesome-it.de>
|
||||
*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
require_once 'caldav_client.php';
|
||||
require_once 'Isync.php';
|
||||
|
||||
class caldav_sync implements Isync
|
||||
{
|
||||
private $cal_id = null;
|
||||
private $ctag = null;
|
||||
private $username = null;
|
||||
private $pass = null;
|
||||
private $url = null;
|
||||
|
||||
public $caldav = null;
|
||||
|
||||
/**
|
||||
* Default constructor for calendar synchronization adapter.
|
||||
*
|
||||
* @param array Hash array with caldav properties at least the following:
|
||||
* id: Calendar ID
|
||||
* caldav_url: Caldav calendar URL.
|
||||
* caldav_user: Caldav http basic auth user.
|
||||
* caldav_pass: Password für caldav user.
|
||||
* caldav_tag: Caldav ctag for calendar.
|
||||
*/
|
||||
public function __construct($cal)
|
||||
{
|
||||
$this->cal_id = $cal["id"];
|
||||
$this->url = $cal["caldav_url"];
|
||||
$this->ctag = isset($cal["caldav_tag"]) ? $cal["caldav_tag"] : null;
|
||||
$this->username = isset($cal["caldav_user"]) ? $cal["caldav_user"] : null;
|
||||
$this->pass = isset($cal["caldav_pass"]) ? $cal["caldav_pass"] : null;
|
||||
|
||||
$this->caldav = new caldav_client($this->url, $this->username, $this->pass);
|
||||
}
|
||||
|
||||
/**
|
||||
* Getter for current calendar ctag.
|
||||
* @return string
|
||||
*/
|
||||
public function get_ctag()
|
||||
{
|
||||
return $this->ctag;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines whether current calendar needs to be synced
|
||||
* regarding the CalDAV ctag.
|
||||
*
|
||||
* @return boolean True if the current calendar ctag differs from the CalDAV tag which
|
||||
* indicates that there are changes that must be synched. Returns false
|
||||
* if the calendar is up to date, no sync necesarry.
|
||||
*/
|
||||
public function is_synced()
|
||||
{
|
||||
$is_synced = $this->ctag == $this->caldav->get_ctag() && $this->ctag;
|
||||
caldav_driver::debug_log("Ctag indicates that calendar \"$this->cal_id\" ".($is_synced ? "is synced." : "needs update!"));
|
||||
|
||||
return $is_synced;
|
||||
}
|
||||
|
||||
/**
|
||||
* Synchronizes given events with caldav server and returns updates.
|
||||
*
|
||||
* @param array List of hash arrays with event properties, must include "caldav_url" and "tag".
|
||||
* @return array Tuple containing the following lists:
|
||||
*
|
||||
* Caldav properties for events to be created or to be updated with the keys:
|
||||
* url: Event ical URL relative to calendar URL
|
||||
* etag: Remote etag of the event
|
||||
* local_event: The local event in case of an update.
|
||||
* remote_event: The current event retrieved from caldav server.
|
||||
*
|
||||
* A list of event ids that are in sync.
|
||||
*/
|
||||
public function get_updates($events)
|
||||
{
|
||||
$ctag = $this->caldav->get_ctag();
|
||||
|
||||
if($ctag)
|
||||
{
|
||||
$this->ctag = $ctag;
|
||||
$etags = $this->caldav->get_etags();
|
||||
|
||||
list($updates, $synced_event_ids) = $this->_get_event_updates($events, $etags);
|
||||
return array($this->_get_event_data($updates), $synced_event_ids);
|
||||
}
|
||||
else
|
||||
{
|
||||
caldav_driver::debug_log("Unkown error while fetching calendar ctag for calendar \"$this->cal_id\"!");
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines sync status and requried updates for the given events using given list of etags.
|
||||
*
|
||||
* @param array List of hash arrays with event properties, must include "caldav_url" and "caldav_tag".
|
||||
* @param array List of current remote etags.
|
||||
* @return array Tuple containing the following lists:
|
||||
*
|
||||
* Caldav properties for events to be created or to be updated with the keys:
|
||||
* url: Event ical URL relative to calendar URL
|
||||
* etag: Remote etag of the event
|
||||
* local_event: The local event in case of an update.
|
||||
*
|
||||
* A list of event ids that are in sync.
|
||||
*/
|
||||
private function _get_event_updates($events, $etags)
|
||||
{
|
||||
$updates = array();
|
||||
$in_sync = array();
|
||||
|
||||
foreach ($etags as $etag)
|
||||
{
|
||||
$url = $etag["url"];
|
||||
$etag = $etag["etag"];
|
||||
$event_found = false;
|
||||
foreach($events as $event)
|
||||
{
|
||||
if ($event["caldav_url"] == $url)
|
||||
{
|
||||
$event_found = true;
|
||||
|
||||
if ($event["caldav_tag"] != $etag)
|
||||
{
|
||||
caldav_driver::debug_log("Event ".$event["uid"]." needs update.");
|
||||
|
||||
array_push($updates, array(
|
||||
"local_event" => $event,
|
||||
"etag" => $etag,
|
||||
"url" => $url
|
||||
));
|
||||
}
|
||||
else
|
||||
{
|
||||
array_push($in_sync, $event["id"]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!$event_found)
|
||||
{
|
||||
caldav_driver::debug_log("Found new event ".$url);
|
||||
|
||||
array_push($updates, array(
|
||||
"url" => $url,
|
||||
"etag" => $etag
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
return array($updates, $in_sync);
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetches event data and attaches it to the given update properties.
|
||||
*
|
||||
* @param $updates array of update properties.
|
||||
* @return array List of update properties with additional key "remote_event" containing the current caldav event.
|
||||
*/
|
||||
private function _get_event_data($updates)
|
||||
{
|
||||
$urls = array();
|
||||
|
||||
foreach ($updates as $update)
|
||||
{
|
||||
array_push($urls, $update["url"]);
|
||||
}
|
||||
|
||||
$events = $this->caldav->get_events($urls);
|
||||
foreach($updates as &$update)
|
||||
{
|
||||
// Attach remote events to the appropriate updates.
|
||||
// Note that this assumes unique event URL's!
|
||||
$url = $update["url"];
|
||||
if($events[$url]) {
|
||||
$update["remote_event"] = $events[$url];
|
||||
$update["remote_event"]["calendar"] = $this->cal_id;
|
||||
}
|
||||
}
|
||||
|
||||
return $updates;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates the given event on the CalDAV server.
|
||||
*
|
||||
* @param array Hash array with event properties.
|
||||
* @return array with updated "caldav_url" and "caldav_tag" attributes, null on error.
|
||||
*/
|
||||
public function create_event($event)
|
||||
{
|
||||
$props = array(
|
||||
"caldav_url" => parse_url($this->url, PHP_URL_PATH)."/".$event["uid"].".ics",
|
||||
"caldav_tag" => null
|
||||
);
|
||||
|
||||
caldav_driver::debug_log("Push new event to url ".$props["caldav_url"]);
|
||||
$result = $this->caldav->put_event($props["caldav_url"], $event);
|
||||
|
||||
if($result == false || $result < 0)
|
||||
return null;
|
||||
return array_merge($event, $props);
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the given event on the CalDAV server.
|
||||
*
|
||||
* @param array Hash array with event properties to update, must include "uid", "caldav_url" and "caldav_tag".
|
||||
* @return boolean True on success, false on error, -1 if the given event/etag is not up to date.
|
||||
*/
|
||||
public function update_event($event)
|
||||
{
|
||||
caldav_driver::debug_log("Updating event uid \"".$event["uid"]."\".");
|
||||
return $this->caldav->put_event($event["caldav_url"], $event, $event["caldav_tag"]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes the given event from the caldav server.
|
||||
*
|
||||
* @param array Hash array with events properties, must include "caldav_url".
|
||||
* @return boolean True on success, false on error.
|
||||
*/
|
||||
public function remove_event($event)
|
||||
{
|
||||
caldav_driver::debug_log("Removing event uid \"".$event["uid"]."\".");
|
||||
return $this->caldav->remove_event($event["caldav_url"]);
|
||||
}
|
||||
};
|
||||
?>
|
|
@ -1,73 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Encryption class
|
||||
* (Copied by JodliDev from https://github.com/mstilkerich/rcmcarddav/blob/master/carddav.php)
|
||||
*
|
||||
* @author Jorge López Pérez <jorge@adobo.org> (original author)
|
||||
* @author JodliDev <jodlidev@gmail.com>
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
class Encryption {
|
||||
private function getDesKey()
|
||||
{
|
||||
$rcube = rcube::get_instance();
|
||||
$imap_password = $rcube->decrypt((string) $_SESSION['password']);
|
||||
|
||||
if ($imap_password === false || strlen($imap_password) == 0) {
|
||||
throw new \Exception('No password available to use for encryption');
|
||||
}
|
||||
|
||||
while (strlen($imap_password) < 24) {
|
||||
$imap_password .= $imap_password;
|
||||
}
|
||||
return substr($imap_password, 0, 24);
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts a password to storage format according to the password storage scheme setting.
|
||||
*
|
||||
* @param string $clear The password in clear text.
|
||||
* @return string The password in storage format (e.g. encrypted with user password as key)
|
||||
* @throws Exception
|
||||
*/
|
||||
public function encrypt($clear) {
|
||||
// encrypted with IMAP password
|
||||
$rcube = rcube::get_instance();
|
||||
|
||||
$imap_password = $this->getDesKey();
|
||||
$rcube->config->set('carddav_des_key', $imap_password);
|
||||
|
||||
$crypted = $rcube->encrypt($clear, 'carddav_des_key');
|
||||
|
||||
// there seems to be no way to unset a preference
|
||||
$rcube->config->set('carddav_des_key', '');
|
||||
|
||||
if ($crypted === false) {
|
||||
throw new \Exception('Password encryption with user password failed');
|
||||
}
|
||||
|
||||
return $crypted;
|
||||
}
|
||||
|
||||
public function decrypt($crypt) {
|
||||
try {
|
||||
$rcube = rcube::get_instance();
|
||||
|
||||
$imap_password = $this->getDesKey();
|
||||
$rcube->config->set('carddav_des_key', $imap_password);
|
||||
$clear = $rcube->decrypt($crypt, 'carddav_des_key');
|
||||
// there seems to be no way to unset a preference
|
||||
$rcube->config->set('carddav_des_key', '');
|
||||
if ($clear === false) {
|
||||
$clear = '';
|
||||
}
|
||||
|
||||
return $clear;
|
||||
} catch (\Exception $e) {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
|
@ -1,163 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* iCalendar sync for the Calendar plugin
|
||||
*
|
||||
* @version @package_version@
|
||||
* @author Daniel Morlock <daniel.morlock@awesome-it.de>
|
||||
* @author JodliDev <jodlidev@gmail.com>
|
||||
*
|
||||
* Copyright (C) Awesome IT GbR <info@awesome-it.de>
|
||||
*
|
||||
* 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 ical_sync implements Isync
|
||||
{
|
||||
const ACTION_NONE = 1;
|
||||
const ACTION_UPDATE = 2;
|
||||
const ACTION_CREATE = 4;
|
||||
|
||||
private $cal_id = null;
|
||||
private $url = null;
|
||||
private $user = null;
|
||||
private $pass = null;
|
||||
private $ical = null;
|
||||
|
||||
/**
|
||||
* Default constructor for calendar synchronization adapter.
|
||||
*
|
||||
* @param int Calendar id.
|
||||
* @param array Hash array with ical properties:
|
||||
* url: Absolute URL to iCAL resource.
|
||||
*/
|
||||
public function __construct($props)
|
||||
{
|
||||
$this->ical = libcalendaring::get_ical();
|
||||
$this->cal_id = $props["id"];
|
||||
|
||||
$this->url = $props["caldav_url"];
|
||||
$this->user = isset($props["ical_user"]) ? $props["ical_user"] : null;
|
||||
$this->pass = isset($props["ical_pass"]) ? $props["ical_pass"] : null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines whether current calendar needs to be synced.
|
||||
*
|
||||
* @return boolean True if the current calendar needs to be synced, false otherwise.
|
||||
*/
|
||||
public function is_synced()
|
||||
{
|
||||
// No change to check that so far.
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetches events from iCAL resource and returns updates.
|
||||
*
|
||||
* @param array List of local events.
|
||||
* @return array Tuple containing the following lists:
|
||||
*
|
||||
* Hash list for iCAL events to be created or to be updated with the keys:
|
||||
* local_event: The local event in case of an update.
|
||||
* remote_event: The current event retrieved from caldav server.
|
||||
*
|
||||
* A list of event ids that are in sync.
|
||||
*/
|
||||
public function get_updates($events)
|
||||
{
|
||||
$context = null;
|
||||
if($this->user != null && $this->pass != null)
|
||||
{
|
||||
$context = stream_context_create(array(
|
||||
'http' => array(
|
||||
'header' => "Authorization: Basic " . base64_encode("$this->user:$this->pass")
|
||||
)
|
||||
));
|
||||
}
|
||||
|
||||
$vcal = file_get_contents($this->url, false, $context);
|
||||
$updates = array();
|
||||
$synced = array();
|
||||
if($vcal !== false) {
|
||||
|
||||
// Hash existing events by uid.
|
||||
$events_hash = array();
|
||||
foreach($events as $event) {
|
||||
$events_hash[$event['uid']] = $event;
|
||||
}
|
||||
|
||||
foreach ($this->ical->import($vcal) as $remote_event) {
|
||||
|
||||
// Attach remote event to current calendar
|
||||
$remote_event['calendar'] = $this->cal_id;
|
||||
|
||||
$local_event = null;
|
||||
if($events_hash[$remote_event['uid']])
|
||||
$local_event = $events_hash[$remote_event['uid']];
|
||||
|
||||
// Determine whether event don't need an update.
|
||||
if($local_event && $local_event['changed'] >= $remote_event['changed']) {
|
||||
array_push($synced, $local_event["id"]);
|
||||
}
|
||||
else if($local_event) {
|
||||
array_push($updates, array('local_event' => $local_event, 'remote_event' => $remote_event, 'url' => $this->url));
|
||||
}
|
||||
else {
|
||||
array_push($updates, array('remote_event' => $remote_event, 'url' => $this->url));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return array($updates, $synced);
|
||||
}
|
||||
|
||||
/**
|
||||
* Getter for current calendar ctag (only for CalDAV).
|
||||
* @return string
|
||||
*/
|
||||
public function get_ctag() {
|
||||
return 'none';
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates the given event.
|
||||
*
|
||||
* @param array Hash array with event properties.
|
||||
* @return array with updated "caldav_url" and "caldav_tag" attributes, null on error.
|
||||
*/
|
||||
public function create_event($event) {
|
||||
return $event;
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the given event.
|
||||
*
|
||||
* @param array Hash array with event properties to update, must include "uid", "caldav_url" and "caldav_tag".
|
||||
* @return boolean True on success, false on error, -1 if the given event/etag is not up to date.
|
||||
*/
|
||||
public function update_event($event) {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes the given event.
|
||||
*
|
||||
* @param array Hash array with events properties, must include "caldav_url".
|
||||
* @return boolean True on success, false on error.
|
||||
*/
|
||||
public function remove_event($event) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
?>
|
3
drivers/database/SQL/mysql/2013071800.sql
Normal file
|
@ -0,0 +1,3 @@
|
|||
-- MySQL database updates since version 0.9.1
|
||||
|
||||
ALTER TABLE `events` ADD `custom` TEXT NULL AFTER `attendees`;
|
3
drivers/database/SQL/postgres/2013071800.sql
Normal file
|
@ -0,0 +1,3 @@
|
|||
-- Postgres database updates since version 0.9.1
|
||||
|
||||
ALTER TABLE events ADD custom text DEFAULT NULL;
|
|
@ -61,4 +61,3 @@ CREATE TABLE events (
|
|||
INSERT INTO events (event_id, calendar_id, recurrence_id, uid, created, changed, sequence, start, end, recurrence, title, description, location, categories, 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, all_day, free_busy, priority, sensitivity, alarms, attendees, notifyat FROM temp_events;
|
||||
|
||||
DROP TABLE temp_events;
|
||||
|
|
64
drivers/database/SQL/sqlite/2013071800.sql
Normal file
|
@ -0,0 +1,64 @@
|
|||
-- SQLite database updates since version 0.9.1
|
||||
|
||||
-- ALTER TABLE events ADD custom text DEFAULT NULL AFTER attendees;
|
||||
|
||||
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 '',
|
||||
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, 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, 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',
|
||||
alarms varchar(255) default NULL,
|
||||
attendees text default NULL,
|
||||
custom 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, 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, all_day, free_busy, priority, sensitivity, alarms, attendees, notifyat FROM temp_events;
|
||||
|
|
@ -65,4 +65,3 @@ INSERT INTO events (event_id, calendar_id, recurrence_id, uid, created, changed,
|
|||
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;
|
||||
|
|
|
@ -14,7 +14,7 @@ CREATE TABLE IF NOT EXISTS `kolab_alarms` (
|
|||
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 */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
) /*!40000 ENGINE=INNODB */;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `itipinvitations` (
|
||||
`token` VARCHAR(64) NOT NULL,
|
||||
|
|
|
@ -8,4 +8,4 @@ CREATE TABLE `kolab_alarms` (
|
|||
PRIMARY KEY(`event_id`),
|
||||
CONSTRAINT `fk_kolab_alarms_user_id` FOREIGN KEY (`user_id`)
|
||||
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
) /*!40000 ENGINE=INNODB */;
|
||||
|
|
|
@ -1,30 +0,0 @@
|
|||
/**
|
||||
* Roundcube Calendar Kolab backend
|
||||
*
|
||||
* @version @package_version@
|
||||
* @author Thomas Bruederli
|
||||
* @licence GNU AGPL
|
||||
**/
|
||||
|
||||
CREATE TABLE kolab_alarms (
|
||||
alarm_id VARCHAR(255) NOT NULL,
|
||||
user_id INTEGER NOT NULL,
|
||||
notifyat DATETIME DEFAULT NULL,
|
||||
dismissed TINYINT(3) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY(alarm_id,user_id)
|
||||
);
|
||||
|
||||
CREATE INDEX ix_kolab_alarms_user_id 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 DEFAULT '0',
|
||||
event TEXT NOT NULL,
|
||||
expires DATETIME DEFAULT NULL,
|
||||
cancelled TINYINT(3) NOT NULL DEFAULT '0'
|
||||
);
|
||||
|
||||
CREATE INDEX ix_itipinvitations_uid ON itipinvitations(event_uid,user_id);
|
||||
|
||||
INSERT INTO system (name, value) VALUES ('calendar-kolab-version', '2014041700');
|
|
@ -23,402 +23,354 @@
|
|||
|
||||
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 = ['unknown'];
|
||||
public $categories = [];
|
||||
public $name = 'Invitations';
|
||||
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;
|
||||
/**
|
||||
* Default constructor
|
||||
*/
|
||||
public function __construct($id, $calendar)
|
||||
{
|
||||
$this->cal = $calendar;
|
||||
$this->id = $id;
|
||||
|
||||
switch ($this->id) {
|
||||
case kolab_driver::INVITATIONS_CALENDAR_PENDING:
|
||||
$this->partstats = ['NEEDS-ACTION'];
|
||||
$this->name = $this->cal->gettext('invitationspending');
|
||||
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;
|
||||
|
||||
if (!empty($_REQUEST['_quickview'])) {
|
||||
$this->partstats[] = 'TENTATIVE';
|
||||
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->driver->get_calendar($event['_folder_id']);
|
||||
}
|
||||
else {
|
||||
$cal = null;
|
||||
foreach (kolab_storage::list_folders('', '*', 'event', null) as $foldername) {
|
||||
$cal = $this->_get_calendar($foldername);
|
||||
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 = $this->_get_calendar($foldername);
|
||||
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;
|
||||
}
|
||||
break;
|
||||
|
||||
case kolab_driver::INVITATIONS_CALENDAR_DECLINED:
|
||||
$this->partstats = ['DECLINED'];
|
||||
$this->name = $this->cal->gettext('invitationsdeclined');
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// user-specific alarms settings win
|
||||
$prefs = $this->cal->rc->config->get('kolab_calendars', []);
|
||||
if (isset($prefs[$this->id]['showalarms'])) {
|
||||
$this->alarms = $prefs[$this->id]['showalarms'];
|
||||
if ($match) {
|
||||
$events[$event['id'] ?: $event['uid']] = $this->_mod_event($event);
|
||||
}
|
||||
}
|
||||
|
||||
// merge list of event categories (really?)
|
||||
$this->categories += $cal->categories;
|
||||
}
|
||||
|
||||
/**
|
||||
* Getter for a nice and human readable name for this calendar
|
||||
*
|
||||
* @return string Name of this calendar
|
||||
*/
|
||||
public function get_name()
|
||||
{
|
||||
return $this->name;
|
||||
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));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Getter for the IMAP folder owner
|
||||
*
|
||||
* @return string Name of the folder owner
|
||||
*/
|
||||
public function get_owner()
|
||||
{
|
||||
return $this->cal->rc->get_user_name();
|
||||
$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 = $this->_get_calendar($foldername);
|
||||
if ($cal->get_namespace() == 'other')
|
||||
continue;
|
||||
|
||||
$count += $cal->count_events($start, $end, $filter);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function get_title()
|
||||
{
|
||||
return $this->get_name();
|
||||
return $count;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get calendar object instance (that maybe already initialized)
|
||||
*/
|
||||
private function _get_calendar($folder_name)
|
||||
{
|
||||
$id = kolab_storage::folder_id($folder_name, true);
|
||||
return $this->cal->driver->get_calendar($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper method to modify some event properties
|
||||
*/
|
||||
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;
|
||||
}
|
||||
|
||||
/**
|
||||
* 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';
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 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 false;
|
||||
}
|
||||
|
||||
/**
|
||||
* 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;
|
||||
}
|
||||
/**
|
||||
* 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;
|
||||
}
|
||||
|
||||
/**
|
||||
* 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', []);
|
||||
|
||||
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 bool True if enabled, false if not
|
||||
*/
|
||||
public function is_active()
|
||||
{
|
||||
$prefs = $this->cal->rc->config->get('kolab_calendars', []); // read local prefs
|
||||
return !empty($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)) {
|
||||
$event = $this->_mod_event($event, $event['calendar']);
|
||||
}
|
||||
|
||||
return $event;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create instances of a recurring event
|
||||
*
|
||||
* @see kolab_calendar::get_recurring_events()
|
||||
*/
|
||||
public function get_recurring_events($event, $start, $end = null, $event_id = null, $limit = null)
|
||||
{
|
||||
// forward call to the actual storage folder
|
||||
if (!empty($event['_folder_id'])) {
|
||||
$cal = $this->cal->driver->get_calendar($event['_folder_id']);
|
||||
if ($cal && $cal->ready) {
|
||||
return $cal->get_recurring_events($event, $start, $end, $event_id, $limit);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 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->driver->get_calendar($event['_folder_id']);
|
||||
}
|
||||
else {
|
||||
$cal = null;
|
||||
foreach (kolab_storage::list_folders('', '*', 'event', null) as $foldername) {
|
||||
$cal = $this->_get_calendar($foldername);
|
||||
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 int Event's new start (unix timestamp)
|
||||
* @param int Event's new end (unix timestamp)
|
||||
* @param string Search query (optional)
|
||||
* @param bool 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 = [])
|
||||
{
|
||||
// get email addresses of the current user
|
||||
$user_emails = $this->cal->get_user_emails();
|
||||
$subquery = [];
|
||||
|
||||
foreach ($user_emails as $email) {
|
||||
foreach ($this->partstats as $partstat) {
|
||||
$subquery[] = ['tags', '=', 'x-partstat:' . $email . ':' . strtolower($partstat)];
|
||||
}
|
||||
}
|
||||
|
||||
$events = [];
|
||||
|
||||
// aggregate events from all calendar folders
|
||||
foreach (kolab_storage::list_folders('', '*', 'event', null) as $foldername) {
|
||||
$cal = $this->_get_calendar($foldername);
|
||||
if (!$cal || $cal->get_namespace() == 'other') {
|
||||
continue;
|
||||
}
|
||||
|
||||
foreach ($cal->list_events($start, $end, $search, 1, $query, [[$subquery, 'OR']]) as $event) {
|
||||
$match = false;
|
||||
|
||||
// post-filter events to match out partstats
|
||||
if (!empty($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) {
|
||||
$uid = !empty($event['id']) ? $event['id'] : $event['uid'];
|
||||
$events[$uid] = $this->_mod_event($event, $cal->id);
|
||||
}
|
||||
}
|
||||
|
||||
// merge list of event categories (really?)
|
||||
$this->categories += $cal->categories;
|
||||
}
|
||||
|
||||
return $events;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get number of events in the given calendar
|
||||
*
|
||||
* @param int Date range start (unix timestamp)
|
||||
* @param int Date range end (unix timestamp)
|
||||
* @param array Additional query to filter events
|
||||
*
|
||||
* @return int Count
|
||||
*/
|
||||
public function count_events($start, $end = null, $filter = null)
|
||||
{
|
||||
// get email addresses of the current user
|
||||
$user_emails = $this->cal->get_user_emails();
|
||||
$subquery = [];
|
||||
|
||||
foreach ($user_emails as $email) {
|
||||
foreach ($this->partstats as $partstat) {
|
||||
$subquery[] = ['tags', '=', 'x-partstat:' . $email . ':' . strtolower($partstat)];
|
||||
}
|
||||
}
|
||||
|
||||
$filter = [
|
||||
['tags', '!=', 'x-status:cancelled'],
|
||||
[$subquery, 'OR']
|
||||
];
|
||||
|
||||
// aggregate counts from all calendar folders
|
||||
$count = 0;
|
||||
foreach (kolab_storage::list_folders('', '*', 'event', null) as $foldername) {
|
||||
$cal = $this->_get_calendar($foldername);
|
||||
if (!$cal || $cal->get_namespace() == 'other') {
|
||||
continue;
|
||||
}
|
||||
|
||||
$count += $cal->count_events($start, $end, $filter);
|
||||
}
|
||||
|
||||
return $count;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get calendar object instance (that maybe already initialized)
|
||||
*/
|
||||
private function _get_calendar($folder_name)
|
||||
{
|
||||
$id = kolab_storage::folder_id($folder_name, true);
|
||||
return $this->cal->driver->get_calendar($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper method to modify some event properties
|
||||
*/
|
||||
private function _mod_event($event, $calendar_id = null)
|
||||
{
|
||||
// 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;
|
||||
}
|
||||
|
||||
// add pointer to original calendar folder
|
||||
if ($calendar_id) {
|
||||
$event['_folder_id'] = $calendar_id;
|
||||
}
|
||||
|
||||
return $event;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new event record
|
||||
*
|
||||
* @see kolab_calendar::insert_event()
|
||||
*/
|
||||
public function insert_event($event)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Update a specific event record
|
||||
*
|
||||
* @see kolab_calendar::update_event()
|
||||
*/
|
||||
public function update_event($event, $exception_id = null)
|
||||
{
|
||||
// forward call to the actual storage folder
|
||||
if (!empty($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 kolab_calendar::delete_event()
|
||||
*/
|
||||
public function delete_event($event, $force = true)
|
||||
{
|
||||
// forward call to the actual storage folder
|
||||
if (!empty($event['_folder_id'])) {
|
||||
$cal = $this->cal->driver->get_calendar($event['_folder_id']);
|
||||
if ($cal && $cal->ready) {
|
||||
return $cal->delete_event($event, $force);
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Restore deleted event record
|
||||
*
|
||||
* @see kolab_calendar::restore_event()
|
||||
*/
|
||||
public function restore_event($event)
|
||||
{
|
||||
// forward call to the actual storage folder
|
||||
if (!empty($event['_folder_id'])) {
|
||||
$cal = $this->cal->driver->get_calendar($event['_folder_id']);
|
||||
if ($cal && $cal->ready) {
|
||||
return $cal->restore_event($event);
|
||||
}
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -23,423 +23,394 @@
|
|||
|
||||
class kolab_user_calendar extends kolab_calendar
|
||||
{
|
||||
public $id = 'unknown';
|
||||
public $ready = false;
|
||||
public $editable = false;
|
||||
public $attachments = false;
|
||||
public $subscriptions = false;
|
||||
public $id = 'unknown';
|
||||
public $ready = false;
|
||||
public $editable = false;
|
||||
public $attachments = false;
|
||||
public $subscriptions = false;
|
||||
|
||||
protected $userdata = [];
|
||||
protected $timeindex = [];
|
||||
protected $userdata = array();
|
||||
protected $timeindex = array();
|
||||
|
||||
|
||||
/**
|
||||
* Default constructor
|
||||
*/
|
||||
public function __construct($user_or_folder, $calendar)
|
||||
{
|
||||
$this->cal = $calendar;
|
||||
$this->imap = $calendar->rc->get_storage();
|
||||
/**
|
||||
* 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 if ($user_or_folder instanceof kolab_storage_folder_user) {
|
||||
$this->storage = $user_or_folder;
|
||||
$this->userdata = $this->storage->ldaprec;
|
||||
}
|
||||
else {
|
||||
// get user record from LDAP
|
||||
$this->storage = new kolab_storage_folder_user($user_or_folder);
|
||||
$this->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->name;
|
||||
$this->parent = ''; // user calendars are top level
|
||||
|
||||
// user-specific alarms settings win
|
||||
$prefs = $this->cal->rc->config->get('kolab_calendars', []);
|
||||
if (isset($prefs[$this->id]['showalarms'])) {
|
||||
$this->alarms = $prefs[$this->id]['showalarms'];
|
||||
}
|
||||
}
|
||||
// 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 if ($user_or_folder instanceof kolab_storage_folder_user) {
|
||||
$this->storage = $user_or_folder;
|
||||
$this->userdata = $this->storage->ldaprec;
|
||||
}
|
||||
else { // get user record from LDAP
|
||||
$this->storage = new kolab_storage_folder_user($user_or_folder);
|
||||
$this->userdata = $this->storage->ldaprec;
|
||||
}
|
||||
|
||||
/**
|
||||
* Getter for a nice and human readable name for this calendar
|
||||
*
|
||||
* @return string Name of this calendar
|
||||
*/
|
||||
public function get_name()
|
||||
{
|
||||
if (!empty($this->userdata['displayname'])) {
|
||||
return $this->userdata['displayname'];
|
||||
$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->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 activated)
|
||||
foreach (kolab_storage::list_user_folders($this->userdata, 'event', 2) as $foldername) {
|
||||
$cal = new kolab_calendar($foldername, $this->cal);
|
||||
foreach ($cal->list_events($start, $end, $search, 1) as $event) {
|
||||
$uid = $event['id'] ?: $event['uid'];
|
||||
$this->events[$uid] = $event;
|
||||
$this->timeindex[$this->time_key($event)] = $uid;
|
||||
}
|
||||
}
|
||||
|
||||
// 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'),
|
||||
);
|
||||
|
||||
// rcube::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;
|
||||
}
|
||||
|
||||
return !empty($this->userdata['name']) ? $this->userdata['name'] : $this->userdata['mail'];
|
||||
}
|
||||
foreach ($fb['periods'] as $tuple) {
|
||||
list($from, $to, $type) = $tuple;
|
||||
$event = array(
|
||||
'uid' => 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'],
|
||||
),
|
||||
);
|
||||
|
||||
/**
|
||||
* Getter for the IMAP folder owner
|
||||
*
|
||||
* @param bool Return a fully qualified owner name (unused)
|
||||
*
|
||||
* @return string Name of the folder owner
|
||||
*/
|
||||
public function get_owner($fully_qualified = false)
|
||||
{
|
||||
return $this->userdata['mail'];
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function get_title()
|
||||
{
|
||||
$title = [];
|
||||
|
||||
if (!empty($this->userdata['displayname'])) {
|
||||
$title[] = $this->userdata['displayname'];
|
||||
// avoid duplicate entries
|
||||
$key = $this->time_key($event);
|
||||
if (!$this->timeindex[$key]) {
|
||||
$this->events[$event['uid']] = $event;
|
||||
$this->timeindex[$key] = $event['uid'];
|
||||
$count++;
|
||||
}
|
||||
}
|
||||
|
||||
$title[] = $this->userdata['mail'];
|
||||
|
||||
return implode('; ', $title);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 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';
|
||||
}
|
||||
return $count;
|
||||
}
|
||||
|
||||
/**
|
||||
* 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();
|
||||
}
|
||||
/**
|
||||
* 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']) ? $event['end']->format('U') : '0');
|
||||
}
|
||||
|
||||
/**
|
||||
* Return color to display this calendar
|
||||
*/
|
||||
public function get_color($default = null)
|
||||
{
|
||||
// calendar color is stored in local user prefs
|
||||
$prefs = $this->cal->rc->config->get('kolab_calendars', []);
|
||||
/**
|
||||
* 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;
|
||||
}
|
||||
|
||||
if (!empty($prefs[$this->id]) && !empty($prefs[$this->id]['color'])) {
|
||||
return $prefs[$this->id]['color'];
|
||||
}
|
||||
/**
|
||||
* 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;
|
||||
}
|
||||
|
||||
return $default ?: 'cc0000';
|
||||
}
|
||||
/**
|
||||
* 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;
|
||||
}
|
||||
|
||||
/**
|
||||
* 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 isset($this->events[$id]) ? $this->events[$id] : null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get attachment body
|
||||
* @see calendar_driver::get_attachment_body()
|
||||
*/
|
||||
public function get_attachment_body($id, $event)
|
||||
{
|
||||
if (empty($event['calendar']) && ($ev = $this->get_event($event['id']))) {
|
||||
$event['calendar'] = $ev['calendar'];
|
||||
}
|
||||
|
||||
if (!empty($event['calendar']) && ($cal = $this->cal->get_calendar($event['calendar']))) {
|
||||
return $cal->get_attachment_body($id, $event);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int Event's new start (unix timestamp)
|
||||
* @param int Event's new end (unix timestamp)
|
||||
* @param string Search query (optional)
|
||||
* @param bool 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 = [], $filter_query = null)
|
||||
{
|
||||
// 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 activated)
|
||||
foreach (kolab_storage::list_user_folders($this->userdata, 'event', 2) as $foldername) {
|
||||
$cal = new kolab_calendar($foldername, $this->cal);
|
||||
foreach ($cal->list_events($start, $end, $search, 1) as $event) {
|
||||
$uid = !empty($event['id']) ? $event['id'] : $event['uid'];
|
||||
$this->events[$uid] = $event;
|
||||
$this->timeindex[$this->time_key($event)] = $uid;
|
||||
}
|
||||
}
|
||||
|
||||
// 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 = [];
|
||||
foreach ($this->events as $event) {
|
||||
// list events in requested time window
|
||||
if (
|
||||
$event['start'] <= $end_dt
|
||||
&& $event['end'] >= $start_dt
|
||||
&& (!$limit_changed || empty($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;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get number of events in the given calendar
|
||||
*
|
||||
* @param int Date range start (unix timestamp)
|
||||
* @param int 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)
|
||||
{
|
||||
// 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 = [
|
||||
'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([
|
||||
'code' => 900, 'file' => __FILE__, 'line' => __LINE__,
|
||||
'message' => "Error fetching free/busy information: " . $e->getMessage()
|
||||
],
|
||||
true, false
|
||||
);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
$statusmap = [
|
||||
'FREE' => 'free',
|
||||
'BUSY' => 'busy',
|
||||
'BUSY-TENTATIVE' => 'tentative',
|
||||
'X-OUT-OF-OFFICE' => 'outofoffice',
|
||||
'OOF' => 'outofoffice',
|
||||
];
|
||||
|
||||
$titlemap = [
|
||||
'FREE' => $this->cal->gettext('availfree'),
|
||||
'BUSY' => $this->cal->gettext('availbusy'),
|
||||
'BUSY-TENTATIVE' => $this->cal->gettext('availtentative'),
|
||||
'X-OUT-OF-OFFICE' => $this->cal->gettext('availoutofoffice'),
|
||||
];
|
||||
|
||||
// rcube::console('_fetch_freebusy', kolab_storage::get_freebusy_url($this->userdata['mail']), $fbdata);
|
||||
|
||||
$count = 0;
|
||||
|
||||
// parse free-busy information
|
||||
if (!empty($fbdata)) {
|
||||
$ical = $this->cal->get_ical();
|
||||
$ical->import($fbdata);
|
||||
if ($fb = $ical->freebusy) {
|
||||
// consider 'changed >= X' queries
|
||||
if ($limit_changed && !empty($fb['created']) && $fb['created'] < $limit_changed) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
foreach ($fb['periods'] as $tuple) {
|
||||
list($from, $to, $type) = $tuple;
|
||||
$event = [
|
||||
'uid' => md5($this->id . $from->format('U') . '/' . $to->format('U')),
|
||||
'calendar' => $this->id,
|
||||
'changed' => !empty($fb['created']) ? $fb['created'] : new DateTime(),
|
||||
'title' => $this->get_name() . ' ' . (!empty($titlemap[$type]) ? $titlemap[$type] : $type),
|
||||
'start' => $from,
|
||||
'end' => $to,
|
||||
'free_busy' => !empty($statusmap[$type]) ? $statusmap[$type] : 'busy',
|
||||
'className' => 'fc-type-freebusy',
|
||||
'organizer' => [
|
||||
'email' => $this->userdata['mail'],
|
||||
'name' => isset($this->userdata['displayname']) ? $this->userdata['displayname'] : null,
|
||||
],
|
||||
];
|
||||
|
||||
// avoid duplicate entries
|
||||
$key = $this->time_key($event);
|
||||
if (empty($this->timeindex[$key])) {
|
||||
$this->events[$event['uid']] = $event;
|
||||
$this->timeindex[$key] = $event['uid'];
|
||||
$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']) ? $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 bool 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 bool 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 bool True on success, False on error
|
||||
*/
|
||||
public function restore_event($event)
|
||||
{
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -41,77 +41,72 @@ class resources_driver_ldap extends resources_driver
|
|||
/**
|
||||
* Fetch resource objects to be displayed for booking
|
||||
*
|
||||
* @param string $query Search query (optional)
|
||||
* @param int $num Max size of the result
|
||||
* @param string $searchField Field to search with query
|
||||
*
|
||||
* @return array List of resource records available for booking
|
||||
* @param string Search query (optional)
|
||||
* @return array List of resource records available for booking
|
||||
*/
|
||||
public function load_resources($query = null, $num = 5000, $searchField = '*')
|
||||
public function load_resources($query = null, $num = 5000)
|
||||
{
|
||||
if (!($ldap = $this->connect())) {
|
||||
return [];
|
||||
}
|
||||
if (!($ldap = $this->connect())) {
|
||||
return array();
|
||||
}
|
||||
|
||||
// TODO: apply paging
|
||||
$ldap->set_pagesize($num);
|
||||
// TODO: apply paging
|
||||
$ldap->set_pagesize($num);
|
||||
|
||||
if (isset($query)) {
|
||||
$results = $ldap->search($searchField, $query, 0, true, true);
|
||||
}
|
||||
else {
|
||||
$results = $ldap->list_records();
|
||||
}
|
||||
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);
|
||||
}
|
||||
if ($results instanceof ArrayAccess) {
|
||||
foreach ($results as $i => $rec) {
|
||||
$results[$i] = $this->decode_resource($rec);
|
||||
}
|
||||
}
|
||||
|
||||
return $results;
|
||||
return $results;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return properties of a single resource
|
||||
*
|
||||
* @param string $id Unique resource identifier
|
||||
*
|
||||
* @param string Unique resource identifier
|
||||
* @return array Resource object as hash array
|
||||
*/
|
||||
public function get_resource($dn)
|
||||
{
|
||||
$rec = null;
|
||||
$rec = null;
|
||||
|
||||
if ($ldap = $this->connect()) {
|
||||
$rec = $ldap->get_record(rcube_ldap::dn_encode($dn), true);
|
||||
if ($ldap = $this->connect()) {
|
||||
$rec = $ldap->get_record(rcube_ldap::dn_encode($dn), true);
|
||||
|
||||
if (!empty($rec)) {
|
||||
$rec = $this->decode_resource($rec);
|
||||
}
|
||||
if (!empty($rec)) {
|
||||
$rec = $this->decode_resource($rec);
|
||||
}
|
||||
}
|
||||
|
||||
return $rec;
|
||||
return $rec;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return properties of a resource owner
|
||||
*
|
||||
* @param string $dn Owner identifier
|
||||
*
|
||||
* @return array Resource object as hash array
|
||||
* @param string Owner identifier
|
||||
* @return array Resource object as hash array
|
||||
*/
|
||||
public function get_resource_owner($dn)
|
||||
{
|
||||
$owner = null;
|
||||
$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']);
|
||||
}
|
||||
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;
|
||||
return $owner;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -119,40 +114,37 @@ class resources_driver_ldap extends resources_driver
|
|||
*/
|
||||
private function decode_resource($rec)
|
||||
{
|
||||
$rec['ID'] = rcube_ldap::dn_decode($rec['ID']);
|
||||
$rec['ID'] = rcube_ldap::dn_decode($rec['ID']);
|
||||
|
||||
$attributes = [];
|
||||
if (is_array($rec['attributes']) && $rec['attributes'][0]) {
|
||||
$attributes = array();
|
||||
|
||||
foreach ((array) $rec['attributes'] as $sattr) {
|
||||
$sattr = trim($sattr);
|
||||
if (!empty($sattr) && $sattr[0] === '{') {
|
||||
$attr = @json_decode($sattr, true);
|
||||
$attributes += $attr;
|
||||
}
|
||||
else if (!empty($sattr) && empty($rec['description'])) {
|
||||
$rec['description'] = $sattr;
|
||||
}
|
||||
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'] = [$rec['members']];
|
||||
}
|
||||
// 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']);
|
||||
// remove unused cruft
|
||||
unset($rec['_raw_attrib']);
|
||||
|
||||
return $rec;
|
||||
return $rec;
|
||||
}
|
||||
|
||||
private function connect()
|
||||
{
|
||||
if (!isset($this->ldap)) {
|
||||
$this->ldap = new rcube_ldap($this->rc->config->get('calendar_resources_directory'), true);
|
||||
}
|
||||
if (!isset($this->ldap)) {
|
||||
$this->ldap = new rcube_ldap($this->rc->config->get('calendar_resources_directory'), true);
|
||||
}
|
||||
|
||||
return $this->ldap->ready ? $this->ldap : null;
|
||||
return $this->ldap->ready ? $this->ldap : null;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -21,98 +21,94 @@
|
|||
* 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;
|
||||
protected$cal;
|
||||
|
||||
/**
|
||||
* Default constructor
|
||||
*/
|
||||
function __construct($cal)
|
||||
{
|
||||
$this->cal = $cal;
|
||||
}
|
||||
/**
|
||||
* Default constructor
|
||||
*/
|
||||
function __construct($cal)
|
||||
{
|
||||
$this->cal = $cal;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetch resource objects to be displayed for booking
|
||||
*
|
||||
* @param string $query Search query (optional)
|
||||
*
|
||||
* @return array List of resource records available for booking
|
||||
*/
|
||||
abstract public function load_resources($query = null);
|
||||
/**
|
||||
* 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 $id Unique resource identifier
|
||||
*
|
||||
* @return array Resource object as hash array
|
||||
*/
|
||||
abstract public function get_resource($id);
|
||||
/**
|
||||
* 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 $id Owner identifier
|
||||
*
|
||||
* @return array Resource object as hash array
|
||||
*/
|
||||
public function get_resource_owner($id)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
/**
|
||||
* 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 string $id Calendar identifier
|
||||
* @param int $start Event's new start (unix timestamp)
|
||||
* @param int $end 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 = [];
|
||||
$rec = $this->get_resource($id);
|
||||
/**
|
||||
* 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 ($rec && !empty($rec['email']) && !empty($this->cal->driver)) {
|
||||
$fbtypemap = [
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 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;
|
||||
}
|
||||
return $events;
|
||||
}
|
||||
|
||||
if ($from < $end && $to > $start) {
|
||||
$events[] = [
|
||||
'id' => sha1($id . $from . $to),
|
||||
'title' => $rec['name'],
|
||||
'start' => new DateTime('@' . $from),
|
||||
'end' => new DateTime('@' . $to),
|
||||
'status' => $fbtypemap[$type],
|
||||
'calendar' => '_resource',
|
||||
];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $events;
|
||||
}
|
||||
}
|
||||
|
|
1304
lib/Horde_Date.php
Normal file
1705
lib/Horde_Date_Recurrence.php
Normal file
|
@ -28,231 +28,213 @@ require_once realpath(__DIR__ . '/../../libcalendaring/lib/libcalendaring_itip.p
|
|||
*/
|
||||
class calendar_itip extends libcalendaring_itip
|
||||
{
|
||||
/**
|
||||
* Constructor to set text domain to calendar
|
||||
*/
|
||||
function __construct($plugin, $domain = 'calendar')
|
||||
{
|
||||
parent::__construct($plugin, $domain);
|
||||
/**
|
||||
* Constructor to set text domain to calendar
|
||||
*/
|
||||
function __construct($plugin, $domain = 'calendar')
|
||||
{
|
||||
parent::__construct($plugin, $domain);
|
||||
|
||||
$this->db_itipinvitations = $this->rc->db->table_name('itipinvitations', true);
|
||||
$this->db_itipinvitations = $this->rc->db->table_name('itipinvitations', true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Handler for calendar/itip-status requests
|
||||
*/
|
||||
public function get_itip_status($event, $existing = null)
|
||||
{
|
||||
$status = parent::get_itip_status($event, $existing);
|
||||
|
||||
// don't ask for deleting events when declining
|
||||
if ($this->rc->config->get('kolab_invitation_calendars'))
|
||||
$status['saved'] = false;
|
||||
|
||||
return $status;
|
||||
}
|
||||
|
||||
/**
|
||||
* Find invitation record by token
|
||||
*
|
||||
* @param string Invitation token
|
||||
* @return mixed Invitation record as hash array or False if not found
|
||||
*/
|
||||
public function get_invitation($token)
|
||||
{
|
||||
if ($parts = $this->decode_token($token)) {
|
||||
$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'];
|
||||
return $rec;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Handler for calendar/itip-status requests
|
||||
*/
|
||||
public function get_itip_status($event, $existing = null)
|
||||
{
|
||||
$status = parent::get_itip_status($event, $existing);
|
||||
|
||||
// don't ask for deleting events when declining
|
||||
if ($this->rc->config->get('kolab_invitation_calendars')) {
|
||||
$status['saved'] = false;
|
||||
/**
|
||||
* Update the attendee status of the given invitation record
|
||||
*
|
||||
* @param array Invitation record as fetched with calendar_itip::get_invitation()
|
||||
* @param string Attendee email address
|
||||
* @param string New attendee status
|
||||
*/
|
||||
public function update_invitation($invitation, $email, $newstatus)
|
||||
{
|
||||
if (is_string($invitation))
|
||||
$invitation = $this->get_invitation($invitation);
|
||||
|
||||
if ($invitation['token'] && $invitation['event']) {
|
||||
// update attendee record in event data
|
||||
foreach ($invitation['event']['attendees'] as $i => $attendee) {
|
||||
if ($attendee['role'] == 'ORGANIZER') {
|
||||
$organizer = $attendee;
|
||||
}
|
||||
else if ($attendee['email'] == $email) {
|
||||
// nothing to be done here
|
||||
if ($attendee['status'] == $newstatus)
|
||||
return true;
|
||||
|
||||
$invitation['event']['attendees'][$i]['status'] = $newstatus;
|
||||
$this->sender = $attendee;
|
||||
}
|
||||
}
|
||||
$invitation['event']['changed'] = new DateTime();
|
||||
|
||||
// send iTIP REPLY message to organizer
|
||||
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->plugin->gettext(array('name' => 'sentresponseto', 'vars' => array('mailto' => $organizer['name'] ? $organizer['name'] : $organizer['email']))), 'confirmation');
|
||||
else
|
||||
$this->rc->output->command('display_message', $this->plugin->gettext('itipresponseerror'), 'error');
|
||||
}
|
||||
|
||||
// update record in DB
|
||||
$query = $this->rc->db->query(
|
||||
"UPDATE $this->db_itipinvitations
|
||||
SET `event` = ?
|
||||
WHERE `token` = ?",
|
||||
self::serialize_event($invitation['event']),
|
||||
$invitation['token']
|
||||
);
|
||||
|
||||
return $status;
|
||||
if ($this->rc->db->affected_rows($query))
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Find invitation record by token
|
||||
*
|
||||
* @param string $token Invitation token
|
||||
*
|
||||
* @return mixed Invitation record as hash array or False if not found
|
||||
*/
|
||||
public function get_invitation($token)
|
||||
{
|
||||
if ($parts = $this->decode_token($token)) {
|
||||
$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'];
|
||||
|
||||
return $rec;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Create iTIP invitation token for later replies via URL
|
||||
*
|
||||
* @param array Hash array with event properties
|
||||
* @param string Attendee email address
|
||||
* @return string Invitation token
|
||||
*/
|
||||
public function store_invitation($event, $attendee)
|
||||
{
|
||||
static $stored = array();
|
||||
|
||||
if (!$event['uid'] || !$attendee)
|
||||
return false;
|
||||
|
||||
// generate token for this invitation
|
||||
$token = $this->generate_token($event, $attendee);
|
||||
$base = substr($token, 0, 40);
|
||||
|
||||
// already stored this
|
||||
if ($stored[$base])
|
||||
return $token;
|
||||
|
||||
return false;
|
||||
// delete old entry
|
||||
$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 $this->db_itipinvitations
|
||||
(`token`, `event_uid`, `user_id`, `event`, `expires`)
|
||||
VALUES(?, ?, ?, ?, ?)",
|
||||
$base,
|
||||
$event_uid,
|
||||
$this->rc->user->ID,
|
||||
self::serialize_event($event),
|
||||
date('Y-m-d H:i:s', $event['end']->format('U') + 86400 * 2)
|
||||
);
|
||||
|
||||
if ($this->rc->db->affected_rows($query)) {
|
||||
$stored[$base] = 1;
|
||||
return $token;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the attendee status of the given invitation record
|
||||
*
|
||||
* @param array $invitation Invitation record as fetched with calendar_itip::get_invitation()
|
||||
* @param string $email Attendee email address
|
||||
* @param string $newstatus New attendee status
|
||||
*/
|
||||
public function update_invitation($invitation, $email, $newstatus)
|
||||
{
|
||||
if (is_string($invitation)) {
|
||||
$invitation = $this->get_invitation($invitation);
|
||||
}
|
||||
/**
|
||||
* Mark invitations for the given event as cancelled
|
||||
*
|
||||
* @param array Hash array with event properties
|
||||
*/
|
||||
public function cancel_itip_invitation($event)
|
||||
{
|
||||
$event_uid = $event['uid'] . ($event['_instance'] ? '-' . $event['_instance'] : '');
|
||||
|
||||
if (!empty($invitation['token']) && !empty($invitation['event'])) {
|
||||
// update attendee record in event data
|
||||
foreach ($invitation['event']['attendees'] as $i => $attendee) {
|
||||
if ($attendee['role'] == 'ORGANIZER') {
|
||||
$organizer = $attendee;
|
||||
}
|
||||
else if ($attendee['email'] == $email) {
|
||||
// nothing to be done here
|
||||
if ($attendee['status'] == $newstatus) {
|
||||
return true;
|
||||
}
|
||||
// flag invitation record as cancelled
|
||||
$this->rc->db->query(
|
||||
"UPDATE $this->db_itipinvitations
|
||||
SET `cancelled` = 1
|
||||
WHERE `event_uid` = ? AND `user_id` = ?",
|
||||
$event_uid,
|
||||
$this->rc->user->ID
|
||||
);
|
||||
}
|
||||
|
||||
$invitation['event']['attendees'][$i]['status'] = $newstatus;
|
||||
$this->sender = $attendee;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Generate an invitation request token for the given event and attendee
|
||||
*
|
||||
* @param array Event hash array
|
||||
* @param string Attendee email address
|
||||
*/
|
||||
public function generate_token($event, $attendee)
|
||||
{
|
||||
$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);
|
||||
|
||||
return "$base.$mail.$hash";
|
||||
}
|
||||
|
||||
$invitation['event']['changed'] = new DateTime();
|
||||
|
||||
// send iTIP REPLY message to organizer
|
||||
if (!empty($organizer)) {
|
||||
$status = strtolower($newstatus);
|
||||
if ($this->send_itip_message($invitation['event'], 'REPLY', $organizer, 'itipsubject' . $status, 'itipmailbody' . $status)) {
|
||||
$mailto = !empty($organizer['name']) ? $organizer['name'] : $organizer['email'];
|
||||
$message = $this->plugin->gettext([
|
||||
'name' => 'sentresponseto',
|
||||
'vars' => ['mailto' => $mailto]
|
||||
]);
|
||||
$this->rc->output->command('display_message', $message, 'confirmation');
|
||||
}
|
||||
else {
|
||||
$this->rc->output->command('display_message', $this->plugin->gettext('itipresponseerror'), 'error');
|
||||
}
|
||||
}
|
||||
|
||||
// update record in DB
|
||||
$query = $this->rc->db->query(
|
||||
"UPDATE $this->db_itipinvitations SET `event` = ? WHERE `token` = ?",
|
||||
self::serialize_event($invitation['event']),
|
||||
$invitation['token']
|
||||
);
|
||||
|
||||
if ($this->rc->db->affected_rows($query)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
/**
|
||||
* Decode the given iTIP request token and return its parts
|
||||
*
|
||||
* @param string Request token to decode
|
||||
* @return mixed Hash array with parts or False if invalid
|
||||
*/
|
||||
public function decode_token($token)
|
||||
{
|
||||
list($base, $mail, $hash) = explode('.', $token);
|
||||
|
||||
// validate and return parts
|
||||
if ($mail && $hash && $hash == substr(md5($base . $mail . $this->rc->config->get('des_key')), 0, 6)) {
|
||||
return array('base' => $base, 'attendee' => base64_decode($mail));
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create iTIP invitation token for later replies via URL
|
||||
*
|
||||
* @param array $event Hash array with event properties
|
||||
* @param string $attendee Attendee email address
|
||||
*
|
||||
* @return string Invitation token
|
||||
*/
|
||||
public function store_invitation($event, $attendee)
|
||||
{
|
||||
static $stored = [];
|
||||
/**
|
||||
* Helper method to serialize the given event for storing in invitations table
|
||||
*/
|
||||
private static function serialize_event($event)
|
||||
{
|
||||
$ev = $event;
|
||||
$ev['description'] = abbreviate_string($ev['description'], 100);
|
||||
unset($ev['attachments']);
|
||||
return serialize($ev);
|
||||
}
|
||||
|
||||
if (empty($event['uid']) || !$attendee) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// generate token for this invitation
|
||||
$token = $this->generate_token($event, $attendee);
|
||||
$base = substr($token, 0, 40);
|
||||
|
||||
// already stored this
|
||||
if (!empty($stored[$base])) {
|
||||
return $token;
|
||||
}
|
||||
|
||||
// delete old entry
|
||||
$this->rc->db->query("DELETE FROM $this->db_itipinvitations WHERE `token` = ?", $base);
|
||||
|
||||
$event_uid = $event['uid'] . (!empty($event['_instance']) ? '-' . $event['_instance'] : '');
|
||||
|
||||
$query = $this->rc->db->query(
|
||||
"INSERT INTO $this->db_itipinvitations"
|
||||
. " (`token`, `event_uid`, `user_id`, `event`, `expires`)"
|
||||
. " VALUES(?, ?, ?, ?, ?)",
|
||||
$base,
|
||||
$event_uid,
|
||||
$this->rc->user->ID,
|
||||
self::serialize_event($event),
|
||||
date('Y-m-d H:i:s', $event['end']->format('U') + 86400 * 2)
|
||||
);
|
||||
|
||||
if ($this->rc->db->affected_rows($query)) {
|
||||
$stored[$base] = 1;
|
||||
return $token;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Mark invitations for the given event as cancelled
|
||||
*
|
||||
* @param array $event Hash array with event properties
|
||||
*/
|
||||
public function cancel_itip_invitation($event)
|
||||
{
|
||||
$event_uid = $event['uid'] . (!empty($event['_instance']) ? '-' . $event['_instance'] : '');
|
||||
|
||||
// flag invitation record as cancelled
|
||||
$this->rc->db->query(
|
||||
"UPDATE $this->db_itipinvitations SET `cancelled` = 1"
|
||||
. " WHERE `event_uid` = ? AND `user_id` = ?",
|
||||
$event_uid,
|
||||
$this->rc->user->ID
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate an invitation request token for the given event and attendee
|
||||
*
|
||||
* @param array $event Event hash array
|
||||
* @param string $attendee Attendee email address
|
||||
*/
|
||||
public function generate_token($event, $attendee)
|
||||
{
|
||||
$event_uid = $event['uid'] . (!empty($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);
|
||||
|
||||
return "$base.$mail.$hash";
|
||||
}
|
||||
|
||||
/**
|
||||
* Decode the given iTIP request token and return its parts
|
||||
*
|
||||
* @param string $token Request token to decode
|
||||
*
|
||||
* @return mixed Hash array with parts or False if invalid
|
||||
*/
|
||||
public function decode_token($token)
|
||||
{
|
||||
list($base, $mail, $hash) = explode('.', $token);
|
||||
|
||||
// validate and return parts
|
||||
if ($mail && $hash && $hash == substr(md5($base . $mail . $this->rc->config->get('des_key')), 0, 6)) {
|
||||
return ['base' => $base, 'attendee' => base64_decode($mail)];
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper method to serialize the given event for storing in invitations table
|
||||
*/
|
||||
private static function serialize_event($event)
|
||||
{
|
||||
$ev = $event;
|
||||
|
||||
if (!empty($ev['description'])) {
|
||||
$ev['description'] = abbreviate_string($ev['description'], 100);
|
||||
}
|
||||
|
||||
unset($ev['attachments']);
|
||||
|
||||
return serialize($ev);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,64 +26,63 @@ require_once realpath(__DIR__ . '/../../libcalendaring/lib/libcalendaring_recurr
|
|||
*/
|
||||
class calendar_recurrence extends libcalendaring_recurrence
|
||||
{
|
||||
private $event;
|
||||
private $duration;
|
||||
private $event;
|
||||
private $duration;
|
||||
|
||||
/**
|
||||
* Default constructor
|
||||
*
|
||||
* @param calendar $cal The calendar plugin instance
|
||||
* @param array $event The event object to operate on
|
||||
*/
|
||||
function __construct($cal, $event)
|
||||
{
|
||||
parent::__construct($cal->lib);
|
||||
/**
|
||||
* Default constructor
|
||||
*
|
||||
* @param object calendar The calendar plugin instance
|
||||
* @param array The event object to operate on
|
||||
*/
|
||||
function __construct($cal, $event)
|
||||
{
|
||||
parent::__construct($cal->lib);
|
||||
|
||||
$this->event = $event;
|
||||
$this->event = $event;
|
||||
|
||||
if (is_object($event['start']) && is_object($event['end'])) {
|
||||
$this->duration = $event['start']->diff($event['end']);
|
||||
}
|
||||
if (is_object($event['start']) && is_object($event['end']))
|
||||
$this->duration = $event['start']->diff($event['end']);
|
||||
|
||||
$event['start']->_dateonly = !empty($event['allday']);
|
||||
$event['start']->_dateonly |= $event['allday'];
|
||||
$this->init($event['recurrence'], $event['start']);
|
||||
}
|
||||
|
||||
$this->init($event['recurrence'], $event['start']);
|
||||
/**
|
||||
* Alias of libcalendaring_recurrence::next()
|
||||
*
|
||||
* @return mixed DateTime object or False if recurrence ended
|
||||
*/
|
||||
public function next_start()
|
||||
{
|
||||
return $this->next();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the next recurring instance of this event
|
||||
*
|
||||
* @return mixed Array with event properties or False if recurrence ended
|
||||
*/
|
||||
public function next_instance()
|
||||
{
|
||||
if ($next_start = $this->next()) {
|
||||
$next = $this->event;
|
||||
$next['start'] = $next_start;
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
/**
|
||||
* Alias of libcalendaring_recurrence::next()
|
||||
*
|
||||
* @return mixed DateTime object or False if recurrence ended
|
||||
*/
|
||||
public function next_start()
|
||||
{
|
||||
return $this->next();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the next recurring instance of this event
|
||||
*
|
||||
* @return mixed Array with event properties or False if recurrence ended
|
||||
*/
|
||||
public function next_instance()
|
||||
{
|
||||
if ($next_start = $this->next()) {
|
||||
$next = $this->event;
|
||||
$next['start'] = $next_start;
|
||||
|
||||
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, $this->event['allday']);
|
||||
|
||||
unset($next['_formatobj']);
|
||||
|
||||
return $next;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
1724
lib/calendar_ui.php
21989
lib/js/fullcalendar.js
16
lib/js/jquery.miniColors.min.js
vendored
Normal file
|
@ -0,0 +1,16 @@
|
|||
// http://plugins.jquery.com/project/jQueryMiniColors
|
||||
jQuery&&function(d){d.extend(d.fn,{miniColors:function(j,k){var x=function(a,b){var e=l(a.val());e||(e="FFFFFF");var c=p(e),e=d('<a class="miniColors-trigger" style="background-color: #'+e+'" href="#"></a>');e.insertAfter(a);a.addClass("miniColors").attr("maxlength",7).attr("autocomplete","off");a.data("trigger",e);a.data("hsb",c);b.change&&a.data("change",b.change);b.readonly&&a.attr("readonly",true);b.disabled&&q(a);b.colorValues&&a.data("colorValues",b.colorValues);e.bind("click.miniColors",function(b){b.preventDefault();
|
||||
a.trigger("focus")});a.bind("focus.miniColors",function(){w(a)});a.bind("blur.miniColors",function(){var b=l(a.val());a.val(b?"#"+b:"")});a.bind("keydown.miniColors",function(b){b.keyCode===9&&i(a)});a.bind("keyup.miniColors",function(){var b=a.val().replace(/[^A-F0-9#]/ig,"");a.val(b);r(a)||a.data("trigger").css("backgroundColor","#FFF")});a.bind("paste.miniColors",function(){setTimeout(function(){a.trigger("keyup")},5)})},q=function(a){i(a);a.attr("disabled",true);a.data("trigger").css("opacity",
|
||||
0.5)},w=function(a){if(a.attr("disabled"))return false;i();var b=d('<div class="miniColors-selector"></div>');b.append('<div class="miniColors-colors" style="background-color: #FFF;"><div class="miniColors-colorPicker"></div></div>');b.append('<div class="miniColors-hues"><div class="miniColors-huePicker"></div></div>');b.css({top:a.is(":visible")?a.offset().top+a.outerHeight():a.data("trigger").offset().top+a.data("trigger").outerHeight(),left:a.is(":visible")?a.offset().left:a.data("trigger").offset().left,
|
||||
display:"none"}).addClass(a.attr("class"));var e=a.data("colorValues");if(e&&e.length){var c,f='<div class="miniColors-presets">',g;for(g in e)c=l(e[g]),f+='<div class="miniColors-colorPreset" style="background-color:#'+c+'" rel="'+c+'"></div>';f+="</div>";b.append(f);c=Math.ceil(e.length/7)*24;b.css("width",b.width()+c+5+"px");b.find(".miniColors-presets").css("width",c+"px")}c=a.data("hsb");b.find(".miniColors-colors").css("backgroundColor","#"+n(m({h:c.h,s:100,b:100})));(f=a.data("colorPosition"))||
|
||||
(f=s(c));b.find(".miniColors-colorPicker").css("top",f.y+"px").css("left",f.x+"px");(f=a.data("huePosition"))||(f=t(c));b.find(".miniColors-huePicker").css("top",f.y+"px");a.data("selector",b);a.data("huePicker",b.find(".miniColors-huePicker"));a.data("colorPicker",b.find(".miniColors-colorPicker"));a.data("mousebutton",0);d("BODY").append(b);b.fadeIn(100);b.bind("selectstart",function(){return false});d(document).bind("mousedown.miniColors",function(b){a.data("mousebutton",1);d(b.target).parents().andSelf().hasClass("miniColors-colors")&&
|
||||
(b.preventDefault(),a.data("moving","colors"),u(a,b));d(b.target).parents().andSelf().hasClass("miniColors-hues")&&(b.preventDefault(),a.data("moving","hues"),v(a,b));d(b.target).parents().andSelf().hasClass("miniColors-selector")?b.preventDefault():d(b.target).parents().andSelf().hasClass("miniColors")||i(a)});d(document).bind("mouseup.miniColors",function(){a.data("mousebutton",0);a.removeData("moving")});d(document).bind("mousemove.miniColors",function(b){a.data("mousebutton")===1&&(a.data("moving")===
|
||||
"colors"&&u(a,b),a.data("moving")==="hues"&&v(a,b))});e&&(b.find(".miniColors-colorPreset").click(function(){a.val(d(this).attr("rel"));r(a)}),b.find('.miniColors-presets div[rel="'+a.val().replace(/#/,"")+'"]').addClass("miniColors-colorPreset-active"))},i=function(a){a||(a=".miniColors");d(a).each(function(){var a=d(this).data("selector");d(this).removeData("selector");d(a).fadeOut(100,function(){d(this).remove()})});d(document).unbind("mousedown.miniColors");d(document).unbind("mousemove.miniColors")},
|
||||
u=function(a,b){var e=a.data("colorPicker");e.hide();var c={x:b.clientX-a.data("selector").find(".miniColors-colors").offset().left+d(document).scrollLeft()-5,y:b.clientY-a.data("selector").find(".miniColors-colors").offset().top+d(document).scrollTop()-5};if(c.x<=-5)c.x=-5;if(c.x>=144)c.x=144;if(c.y<=-5)c.y=-5;if(c.y>=144)c.y=144;a.data("colorPosition",c);e.css("left",c.x).css("top",c.y).show();e=Math.round((c.x+5)*0.67);e<0&&(e=0);e>100&&(e=100);c=100-Math.round((c.y+5)*0.67);c<0&&(c=0);c>100&&
|
||||
(c=100);var f=a.data("hsb");f.s=e;f.b=c;o(a,f,true)},v=function(a,b){var e=a.data("huePicker");e.hide();var c={y:b.clientY-a.data("selector").find(".miniColors-colors").offset().top+d(document).scrollTop()-1};if(c.y<=-1)c.y=-1;if(c.y>=149)c.y=149;a.data("huePosition",c);e.css("top",c.y).show();e=Math.round((150-c.y-1)*2.4);e<0&&(e=0);e>360&&(e=360);c=a.data("hsb");c.h=e;o(a,c,true)},o=function(a,b,e){a.data("hsb",b);var c=n(m(b));e&&a.val("#"+c);a.data("trigger").css("backgroundColor","#"+c);a.data("selector")&&
|
||||
a.data("selector").find(".miniColors-colors").css("backgroundColor","#"+n(m({h:b.h,s:100,b:100})));a.data("change")&&a.data("change").call(a,"#"+c,m(b));a.data("colorValues")&&(a.data("selector").find(".miniColors-colorPreset-active").removeClass("miniColors-colorPreset-active"),a.data("selector").find('.miniColors-presets div[rel="'+c+'"]').addClass("miniColors-colorPreset-active"))},r=function(a){var b=l(a.val());if(!b)return false;var b=p(b),e=a.data("hsb");if(b.h===e.h&&b.s===e.s&&b.b===e.b)return true;
|
||||
e=s(b);d(a.data("colorPicker")).css("top",e.y+"px").css("left",e.x+"px");e=t(b);d(a.data("huePicker")).css("top",e.y+"px");o(a,b,false);return true},s=function(a){var b=Math.ceil(a.s/0.67);b<0&&(b=0);b>150&&(b=150);a=150-Math.ceil(a.b/0.67);a<0&&(a=0);a>150&&(a=150);return{x:b-5,y:a-5}},t=function(a){a=150-a.h/2.4;a<0&&(h=0);a>150&&(h=150);return{y:a-1}},l=function(a){a=a.replace(/[^A-Fa-f0-9]/,"");a.length==3&&(a=a[0]+a[0]+a[1]+a[1]+a[2]+a[2]);return a.length===6?a:null},m=function(a){var b,e,c;
|
||||
b=Math.round(a.h);var d=Math.round(a.s*255/100),a=Math.round(a.b*255/100);if(d==0)b=e=c=a;else{var d=(255-d)*a/255,g=(a-d)*(b%60)/60;b==360&&(b=0);b<60?(b=a,c=d,e=d+g):b<120?(e=a,c=d,b=a-g):b<180?(e=a,b=d,c=d+g):b<240?(c=a,b=d,e=a-g):b<300?(c=a,e=d,b=d+g):b<360?(b=a,e=d,c=a-g):c=e=b=0}return{r:Math.round(b),g:Math.round(e),b:Math.round(c)}},n=function(a){var b=[a.r.toString(16),a.g.toString(16),a.b.toString(16)];d.each(b,function(a,c){c.length==1&&(b[a]="0"+c)});return b.join("")},p=function(a){var b=
|
||||
a,b=parseInt(b.indexOf("#")>-1?b.substring(1):b,16),a=b>>16,d=(b&65280)>>8;b&=255;var c={h:0,s:0,b:0},f=Math.min(a,d,b),g=Math.max(a,d,b),f=g-f;c.b=g;c.s=g!=0?255*f/g:0;c.h=c.s!=0?a==g?(d-b)/f:d==g?2+(b-a)/f:4+(a-d)/f:-1;c.h*=60;c.h<0&&(c.h+=360);c.s*=100/255;c.b*=100/255;if(c.s===0)c.h=360;return c};switch(j){case "readonly":return d(this).each(function(){d(this).attr("readonly",k)}),d(this);case "disabled":return d(this).each(function(){if(k)q(d(this));else{var a=d(this);a.attr("disabled",false);
|
||||
a.data("trigger").css("opacity",1)}}),d(this);case "value":return d(this).each(function(){d(this).val(k).trigger("keyup")}),d(this);case "destroy":return d(this).each(function(){var a=d(this);i();a=d(a);a.data("trigger").remove();a.removeAttr("autocomplete");a.removeData("trigger");a.removeData("selector");a.removeData("hsb");a.removeData("huePicker");a.removeData("colorPicker");a.removeData("mousebutton");a.removeData("moving");a.unbind("click.miniColors");a.unbind("focus.miniColors");a.unbind("blur.miniColors");
|
||||
a.unbind("keyup.miniColors");a.unbind("keydown.miniColors");a.unbind("paste.miniColors");d(document).unbind("mousedown.miniColors");d(document).unbind("mousemove.miniColors")}),d(this);default:return j||(j={}),d(this).each(function(){d(this)[0].tagName.toLowerCase()==="input"&&(d(this).data("trigger")||x(d(this),j,k))}),d(this)}}})}(jQuery);
|
4511
lib/js/moment.js
|
@ -26,12 +26,12 @@ $labels['afterdelete'] = 'Изтрий съобщението';
|
|||
$labels['afterflagdeleted'] = 'Маркирай като изтрито';
|
||||
$labels['aftermoveto'] = 'Премести в...';
|
||||
$labels['itipoptions'] = 'Покани за събитие';
|
||||
$labels['weeknonone'] = 'never';
|
||||
$labels['calendar'] = 'Календар';
|
||||
$labels['calendars'] = 'Календари';
|
||||
$labels['category'] = 'Категория';
|
||||
$labels['categories'] = 'Категории';
|
||||
$labels['createcalendar'] = 'Създаване на нов календар';
|
||||
$labels['editcalendar'] = 'Промяна на свойствата на календара';
|
||||
$labels['name'] = 'Име';
|
||||
$labels['color'] = 'Цвят';
|
||||
$labels['day'] = 'Ден';
|
||||
|
@ -74,7 +74,6 @@ $labels['mystatus'] = 'Моят статус';
|
|||
$labels['status'] = 'Статус';
|
||||
$labels['status-confirmed'] = 'Потвърдено';
|
||||
$labels['status-cancelled'] = 'Отхвърлено';
|
||||
$labels['status-tentative'] = 'Предварително';
|
||||
$labels['priority'] = 'Приоритет';
|
||||
$labels['sensitivity'] = 'Поверителност';
|
||||
$labels['public'] = 'публично';
|
||||
|
@ -94,7 +93,6 @@ $labels['printdescriptions'] = 'Печат на описанията';
|
|||
$labels['parentcalendar'] = 'Внасяне вътре';
|
||||
$labels['searchearlierdates'] = '« Търсене за по- стари събития';
|
||||
$labels['searchlaterdates'] = 'Търсене за по- нови събития »';
|
||||
$labels['laterevents'] = 'Късно';
|
||||
$labels['andnmore'] = '$nr повече...';
|
||||
$labels['togglerole'] = 'Натиснете за превключване на роля';
|
||||
$labels['createfrommail'] = 'Запазване като събитие';
|
||||
|
@ -149,6 +147,8 @@ $labels['availbusy'] = 'Зает';
|
|||
$labels['availunknown'] = 'Няма информация';
|
||||
$labels['availtentative'] = 'Предварително';
|
||||
$labels['availoutofoffice'] = 'Извън офиса';
|
||||
$labels['delegatedto'] = 'Делегирано към:';
|
||||
$labels['delegatedfrom'] = 'Делегирано от:';
|
||||
$labels['sendinvitations'] = 'Изпращане на покани';
|
||||
$labels['sendnotifications'] = 'Известяване на участниците относно промените';
|
||||
$labels['sendcancellation'] = 'Известяване на участниците относно отмяна на събития';
|
||||
|
|
|
@ -32,6 +32,7 @@ $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';
|
||||
|
@ -74,7 +75,6 @@ $labels['mystatus'] = 'El meu estat';
|
|||
$labels['status'] = 'Estat';
|
||||
$labels['status-confirmed'] = 'Confirmat';
|
||||
$labels['status-cancelled'] = 'Cancel·lat';
|
||||
$labels['status-tentative'] = 'Provisional';
|
||||
$labels['priority'] = 'Prioritat';
|
||||
$labels['sensitivity'] = 'Privadesa';
|
||||
$labels['public'] = 'públic';
|
||||
|
@ -94,7 +94,6 @@ $labels['printdescriptions'] = 'Imprimeix descripcions';
|
|||
$labels['parentcalendar'] = 'Insereix dins';
|
||||
$labels['searchearlierdates'] = '« Cerca els esdeveniments d\'abans';
|
||||
$labels['searchlaterdates'] = 'Cerca els esdeveniments de després »';
|
||||
$labels['laterevents'] = 'Després';
|
||||
$labels['andnmore'] = '$nr més...';
|
||||
$labels['togglerole'] = 'Feu clic per commutar el rol';
|
||||
$labels['createfrommail'] = 'Desa com a esdeveniment';
|
||||
|
@ -152,6 +151,8 @@ $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';
|
||||
|
@ -163,6 +164,7 @@ $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';
|
||||
|
|
|
@ -27,16 +27,12 @@ $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['showweekno'] = 'Zobrazit čísla týdnů';
|
||||
$labels['weeknonone'] = 'nikdy';
|
||||
$labels['weeknodatepicker'] = 'pouze ve sběrači dat';
|
||||
$labels['weeknoall'] = 'v pohledu na sběrač dat a na kalendář';
|
||||
$labels['calendar'] = 'Kalendář';
|
||||
$labels['calendars'] = 'Kalendáře';
|
||||
$labels['category'] = 'Kategorie';
|
||||
$labels['categories'] = 'Kategorie';
|
||||
$labels['addcalendar'] = 'Přidat kalendář';
|
||||
$labels['createcalendar'] = 'Vytvořit nový kalendář';
|
||||
$labels['editcalendar'] = 'Upravit vlastnosti kalendáře';
|
||||
$labels['name'] = 'Název';
|
||||
$labels['color'] = 'Barva';
|
||||
$labels['day'] = 'Den';
|
||||
|
@ -79,7 +75,6 @@ $labels['mystatus'] = 'Můj stav';
|
|||
$labels['status'] = 'Stav';
|
||||
$labels['status-confirmed'] = 'Potvrzeno';
|
||||
$labels['status-cancelled'] = 'Zrušeno';
|
||||
$labels['status-tentative'] = 'Nezávazně';
|
||||
$labels['priority'] = 'Přednost';
|
||||
$labels['sensitivity'] = 'Soukromí';
|
||||
$labels['public'] = 'veřejné';
|
||||
|
@ -99,8 +94,6 @@ $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['earlierevents'] = 'Dříve';
|
||||
$labels['laterevents'] = 'Později';
|
||||
$labels['andnmore'] = 'dalších $nr...';
|
||||
$labels['togglerole'] = 'Klepněte k přepnutí role';
|
||||
$labels['createfrommail'] = 'Uložit jako událost';
|
||||
|
@ -111,10 +104,8 @@ $labels['nmonthsback'] = '$nr měsíců nazpátek';
|
|||
$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.';
|
||||
$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['showfburl'] = 'Ukázat volnou/obsazenou adresu';
|
||||
$labels['findcalendars'] = 'Najít kalendáře...';
|
||||
$labels['searchterms'] = 'Hledané výrazy';
|
||||
$labels['findevents'] = 'Najít události';
|
||||
$labels['calsearchresults'] = 'Dostupné kalendáře';
|
||||
$labels['calendarsubscribe'] = 'Ukazovat seznam trvale';
|
||||
$labels['nocalendarsfound'] = 'Nenalezeny žádné kalendáře';
|
||||
|
@ -124,8 +115,6 @@ $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['eventstartsync'] = 'Posunout začátek události k prvnímu výskytu';
|
||||
$labels['weekshort'] = 'Týd';
|
||||
$labels['listrange'] = 'Rozsah k zobrazení:';
|
||||
$labels['listsections'] = 'Rozdělit na:';
|
||||
$labels['smartsections'] = 'Chytré sekce';
|
||||
|
@ -162,6 +151,8 @@ $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';
|
||||
|
@ -173,6 +164,7 @@ $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 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';
|
||||
|
@ -198,13 +190,11 @@ $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['legend'] = 'Vysvětlivka';
|
||||
$labels['resource'] = 'Zdroj';
|
||||
$labels['addresource'] = 'Zapsat zdroj';
|
||||
$labels['findresources'] = 'Najít zdroje';
|
||||
$labels['resourcedetails'] = 'Podrobnosti';
|
||||
$labels['resourceavailability'] = 'Dostupnost';
|
||||
$labels['resourceprops'] = 'Vlastnosti zdroje';
|
||||
$labels['resourceowner'] = 'Vlastník';
|
||||
$labels['resourceadded'] = 'Zdroj byl přidán do vaší události';
|
||||
$labels['tabsummary'] = 'Souhrn';
|
||||
|
@ -233,7 +223,6 @@ $labels['nowritecalendarfound'] = 'Nebyl nalezen žádný kalendář, do kteréh
|
|||
$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['errorunknownattendee'] = 'Nepodařilo se najít údaje o účastníkovi.';
|
||||
$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á';
|
||||
|
@ -243,7 +232,6 @@ $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.';
|
||||
$labels['importtext'] = 'Můžete nahrávat události ve formátu <a href="https://wikipedia.org/wiki/ICalendar">iCalendar</a> (.ics).';
|
||||
$labels['changeeventconfirm'] = 'Změnit 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?';
|
||||
|
@ -273,10 +261,8 @@ $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['calendarprops'] = 'Vlastnosti kalendáře';
|
||||
$labels['arialabeleventattendees'] = 'Seznam účastníků události';
|
||||
$labels['arialabeleventresources'] = 'Seznam zdrojů události';
|
||||
$labels['arialabelresourcesearchform'] = 'Hledání zdrojů';
|
||||
$labels['arialabelresourceselection'] = 'Dostupné zdroje';
|
||||
$labels['arialabeleventform'] = 'Úprava události';
|
||||
?>
|
||||
|
|
|
@ -27,12 +27,12 @@ $labels['afterflagdeleted'] = 'Markér som slettet';
|
|||
$labels['aftermoveto'] = 'Flyt til ...';
|
||||
$labels['itipoptions'] = 'Begivenhedsinvitationer';
|
||||
$labels['afteraction'] = 'Efter en invitation eller opdateringsbesked er behandlet';
|
||||
$labels['weeknonone'] = 'aldrig';
|
||||
$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';
|
||||
|
@ -44,7 +44,7 @@ $labels['new_event'] = 'Nyt arrangement';
|
|||
$labels['edit_event'] = 'Redigér arrangement';
|
||||
$labels['edit'] = 'Redigér';
|
||||
$labels['save'] = 'Gem';
|
||||
$labels['removelist'] = 'Fjern fra liste';
|
||||
$labels['removelist'] = 'Remove from list';
|
||||
$labels['cancel'] = 'Annullér';
|
||||
$labels['select'] = 'Vælg';
|
||||
$labels['print'] = 'Udskriv';
|
||||
|
@ -61,7 +61,7 @@ $labels['location'] = 'Placering';
|
|||
$labels['url'] = 'URL';
|
||||
$labels['date'] = 'Dato';
|
||||
$labels['start'] = 'Start';
|
||||
$labels['starttime'] = 'Starttidspunkt';
|
||||
$labels['starttime'] = 'Start time';
|
||||
$labels['end'] = 'Slut';
|
||||
$labels['endtime'] = 'Sluttidspunkt';
|
||||
$labels['repeat'] = 'Gentag';
|
||||
|
@ -75,7 +75,6 @@ $labels['mystatus'] = 'Min status';
|
|||
$labels['status'] = 'Status';
|
||||
$labels['status-confirmed'] = 'Bekræftet';
|
||||
$labels['status-cancelled'] = 'Annulleret';
|
||||
$labels['status-tentative'] = 'Forsøgsvis';
|
||||
$labels['priority'] = 'Prioritet';
|
||||
$labels['sensitivity'] = 'Privatliv';
|
||||
$labels['public'] = 'offentlig';
|
||||
|
@ -83,19 +82,18 @@ $labels['private'] = 'privat';
|
|||
$labels['confidential'] = 'fortrolig';
|
||||
$labels['links'] = 'Reference';
|
||||
$labels['alarms'] = 'Påmindelse';
|
||||
$labels['comment'] = 'Kommentar';
|
||||
$labels['created'] = 'Oprettet';
|
||||
$labels['changed'] = 'Sidst ændret';
|
||||
$labels['comment'] = 'Comment';
|
||||
$labels['created'] = 'Created';
|
||||
$labels['changed'] = 'Last Modified';
|
||||
$labels['unknown'] = 'Ukendt';
|
||||
$labels['eventoptions'] = 'Tilvalg';
|
||||
$labels['generated'] = 'oprettet per';
|
||||
$labels['eventhistory'] = 'Historik';
|
||||
$labels['removelink'] = 'Fjern email reference';
|
||||
$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['laterevents'] = 'Senere';
|
||||
$labels['andnmore'] = '$nr flere...';
|
||||
$labels['togglerole'] = 'Klik for at vise eller skjule rolle';
|
||||
$labels['createfrommail'] = 'Gem som arrangement';
|
||||
|
@ -107,9 +105,9 @@ $labels['showurl'] = 'Vis kalenderens URL';
|
|||
$labels['showurldescription'] = 'Brug følgende adresse for at tilgå din kalender (skrivebeskyttet) fra andre programmer. Du kan kopiere og indsætet denne i ethvert kalenderprogram, der understøtter iCal-formatet.';
|
||||
$labels['caldavurldescription'] = 'Kopiér denne adresse til en <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a>-klientprogram (eks. Evolution eller Mozilla Thunderbird) for at synkronisere denne kalender komplet med din computer eller mobilenhed.';
|
||||
$labels['findcalendars'] = 'Find kalendere ...';
|
||||
$labels['searchterms'] = 'Søgetermer';
|
||||
$labels['searchterms'] = 'Search terms';
|
||||
$labels['calsearchresults'] = 'Tilgængelige kalendere';
|
||||
$labels['calendarsubscribe'] = 'List permanent';
|
||||
$labels['calendarsubscribe'] = 'List permanently';
|
||||
$labels['nocalendarsfound'] = 'Der blev ikke fundet nogen kalender';
|
||||
$labels['nrcalendarsfound'] = '$nr kalendere blev fundet';
|
||||
$labels['quickview'] = 'Vis kun denne kalender';
|
||||
|
@ -131,7 +129,7 @@ $labels['nextmonth'] = 'Næste måned';
|
|||
$labels['weekofyear'] = 'Uge';
|
||||
$labels['pastevents'] = 'Tidligere';
|
||||
$labels['futureevents'] = 'Fremtid';
|
||||
$labels['showalarms'] = 'Vis påmindelser';
|
||||
$labels['showalarms'] = 'Show reminders';
|
||||
$labels['defaultalarmtype'] = 'Standardindstilling for påmindelse';
|
||||
$labels['defaultalarmoffset'] = 'Standardtidspunkt for påmindelse';
|
||||
$labels['attendee'] = 'Deltager';
|
||||
|
@ -153,6 +151,8 @@ $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';
|
||||
|
@ -164,11 +164,11 @@ $labels['nextslot'] = 'Næste blok';
|
|||
$labels['suggestedslot'] = 'Foreslået blok';
|
||||
$labels['noslotfound'] = 'Kunne ikke finde en ledig tidsblok';
|
||||
$labels['invitationsubject'] = 'Du er blevet inviteret til "$title"';
|
||||
$labels['invitationmailbody'] = "*\$title*\n\nTidspunkt: \$date\n\nInviterede: \$attendees\n\nBemærk venligst vedhæftede iCalendar-fil med alle detaljer om arrangementet, som du kan importere til dit kalenderprogram.";
|
||||
$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 annulleret';
|
||||
$labels['eventcancelmailbody'] = "*\$title*\n\nTidspunkt: \$date\n\nInviterede: \$attendees\n\nDette arrangement er blevet aflyst af \$organizer.\n\nBemærk venligst vedhæftede iCalendard-fil med de opdaterede detaljer om arrangementet.";
|
||||
$labels['itipobjectnotfound'] = 'Begivenheden som denne besked henviser til, blev ikke fundet i din kalender.';
|
||||
$labels['itipmailbodyaccepted'] = "\$sender har accepteret invitationen til det følgende arrangement:\n\n*\$title*\n\nTidspunkt: \$date\n\nInviterede: \$attendees";
|
||||
|
|
|
@ -1,273 +0,0 @@
|
|||
<?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['addsources'] = 'CalDAV Quellen hinzufügen';
|
||||
$labels['deletesources'] = 'CalDAV Quellen löschen';
|
||||
$labels['source_notadded_error'] = 'CalDAV Quelle konnte nicht hinzugefügt werden.';
|
||||
$labels['calendar_ical_file'] = 'ics-Datei';
|
||||
|
||||
$labels['default_view'] = 'Standardansicht';
|
||||
$labels['time_format'] = 'Zeitformatierung';
|
||||
$labels['timeslots'] = 'Zeitfenster pro Stunde';
|
||||
$labels['first_day'] = 'Erster Wochentag';
|
||||
$labels['first_hour'] = 'Erste angezeigte Stunde';
|
||||
$labels['workinghours'] = 'Arbeitszeiten';
|
||||
$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';
|
||||
$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 Aktualisierungsnachricht verarbeitet wurde';
|
||||
$labels['weeknonone'] = 'nie';
|
||||
$labels['calendar'] = 'Kalender';
|
||||
$labels['calendars'] = 'Kalender';
|
||||
$labels['category'] = 'Kategorie';
|
||||
$labels['categories'] = 'Kategorien';
|
||||
$labels['createcalendar'] = 'Neuen Kalender erstellen';
|
||||
$labels['name'] = 'Name';
|
||||
$labels['color'] = 'Farbe';
|
||||
$labels['day'] = 'Tag';
|
||||
$labels['week'] = 'Woche';
|
||||
$labels['month'] = 'Monat';
|
||||
$labels['agenda'] = 'Agenda';
|
||||
$labels['new'] = 'Neu';
|
||||
$labels['new_event'] = 'Neuer Termin';
|
||||
$labels['edit_event'] = 'Termin bearbeiten';
|
||||
$labels['edit'] = 'Bearbeiten';
|
||||
$labels['save'] = 'Speichern';
|
||||
$labels['removelist'] = 'Von der Liste entfernen';
|
||||
$labels['cancel'] = 'Abbrechen';
|
||||
$labels['select'] = 'Auswählen';
|
||||
$labels['print'] = 'Drucken';
|
||||
$labels['printtitle'] = 'Kalender drucken';
|
||||
$labels['title'] = 'Titel';
|
||||
$labels['description'] = 'Beschreibung';
|
||||
$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'] = 'Benutzerdefiniertes Datum';
|
||||
$labels['location'] = 'Ort';
|
||||
$labels['url'] = 'Internetadresse';
|
||||
$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'] = 'Mich anzeigen 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['status-tentative'] = 'Mit Vorbehalt';
|
||||
$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';
|
||||
$labels['searchlaterdates'] = 'Spätere Termine suchen »';
|
||||
$labels['laterevents'] = 'Später';
|
||||
$labels['andnmore'] = '$nr weitere …';
|
||||
$labels['togglerole'] = 'Zum Ändern der Rolle klicken';
|
||||
$labels['createfrommail'] = 'Als Termin speichern';
|
||||
$labels['importevents'] = 'Termine importieren';
|
||||
$labels['importrange'] = 'Termine ab';
|
||||
$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'] = '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';
|
||||
$labels['until'] = 'bis';
|
||||
$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';
|
||||
$labels['showalarms'] = 'Erinnerungen anzeigen';
|
||||
$labels['defaultalarmtype'] = 'Standard-Erinnerungseinstellung';
|
||||
$labels['defaultalarmoffset'] = 'Standard-Erinnerungszeit';
|
||||
$labels['attendee'] = 'Teilnehmer';
|
||||
$labels['role'] = 'Rolle';
|
||||
$labels['availability'] = 'Verfüg.';
|
||||
$labels['confirmstate'] = 'Status';
|
||||
$labels['addattendee'] = 'Hinzufügen';
|
||||
$labels['roleorganizer'] = 'Organisator';
|
||||
$labels['rolerequired'] = 'Erforderlich';
|
||||
$labels['roleoptional'] = 'Optional';
|
||||
$labels['rolechair'] = 'Vorsitz';
|
||||
$labels['rolenonparticipant'] = 'Abwesend';
|
||||
$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['scheduletime'] = 'Verfügbarkeit anzeigen';
|
||||
$labels['sendinvitations'] = 'Einladungen versenden';
|
||||
$labels['sendnotifications'] = 'Teilnehmer über die Änderungen informieren';
|
||||
$labels['sendcancellation'] = 'Teilnehmer über die Terminabsage informieren';
|
||||
$labels['onlyworkinghours'] = 'Verfügbarkeit innerhalb meiner Arbeitszeiten suchen';
|
||||
$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\n\$description\n\nIm Anhang finden Sie eine iCalendar-Datei mit allen Details des Termins. Diese können Sie in Ihre Kalenderanwendung importieren.";
|
||||
$labels['invitationattendlinks'] = "Falls Ihr E-Mail-Programm keine iTip-Anfragen unterstützt, können Sie den folgenden Link verwenden, um den Termin zu bestätigen oder abzulehnen:\n\$url";
|
||||
$labels['eventupdatesubject'] = '»$title« wurde aktualisiert';
|
||||
$labels['eventupdatesubjectempty'] = 'Termin wurde aktualisiert';
|
||||
$labels['eventupdatemailbody'] = "*\$title*\n\nWann: \$date\n\nTeilnehmer: \$attendees\n\nIm Anhang finden Sie eine iCalendar-Datei mit den aktualisiereten Termindaten. Diese können Sie in Ihre Kalenderanwendung importieren.";
|
||||
$labels['eventcancelsubject'] = '»$title« wurde abgesagt';
|
||||
$labels['eventcancelmailbody'] = "*\$title*\n\nWann: \$date\n\nTeilnehmer: \$attendees\n\nDer Termin wurde von \$organizer abgesagt.\n\nIm Anhang finden Sie eine iCalendar-Datei mit den Termindaten.";
|
||||
$labels['itipobjectnotfound'] = 'Der Termin auf den sich diese Nachricht bezieht, wurde in Ihrem Kalender nicht gefunden.';
|
||||
$labels['itipmailbodyaccepted'] = "\$sender hat die Einladung zum folgenden Termin angenommen:\n\n*\$title*\n\nWann: \$date\n\nTeilnehmer: \$attendees";
|
||||
$labels['itipmailbodytentative'] = "\$sender hat die Einladung mit Vorbehalt zum folgenden Termin angenommen:\n\n*\$title*\n\nWann: \$date\n\nTeilnehmer: \$attendees";
|
||||
$labels['itipmailbodydeclined'] = "\$sender hat die Einladung zum folgenden Termin abgelehnt:\n\n*\$title*\n\nWann: \$date\n\nTeilnehmer: \$attendees";
|
||||
$labels['itipmailbodycancel'] = "\$sender hat Ihre Teilnahme bei der folgenden Veranstaltung zurückgewiesen:\n\n*\$title*\n\nWann: \$date";
|
||||
$labels['itipmailbodydelegated'] = "\$sender hat die Teilnahme an folgendem Event delegiert:\n\n*\$title*\n\nWhen: \$date";
|
||||
$labels['itipmailbodydelegatedto'] = "\$sender hat die Teilnahme an folgendem Event an Sie delegiert:\n\n*\$title*\n\nWann: \$date";
|
||||
$labels['itipdeclineevent'] = 'Möchten Sie die Einladung zu diesem Termin ablehnen?';
|
||||
$labels['declinedeleteconfirm'] = 'Soll der abgelehnte Termin zusätzlich aus dem Kalender gelöscht werden?';
|
||||
$labels['itipcomment'] = 'Kommentar zur Einladungs-/Benachrichtigungsnachricht';
|
||||
$labels['itipcommenttitle'] = 'Dieser Kommentar wird an die Einladungs-/Benachrichtigungsnachricht angehängt, die an die Teilnehmer verschickt wird';
|
||||
$labels['notanattendee'] = 'Sie sind nicht in der Liste der Teilnehmer aufgeführt';
|
||||
$labels['eventcancelled'] = 'Der Termin wurde vom Organisator abgesagt';
|
||||
$labels['saveincalendar'] = 'speichern in';
|
||||
$labels['updatemycopy'] = 'In meinem Kalender aktualisieren';
|
||||
$labels['savetocalendar'] = 'In Kalender übernehmen';
|
||||
$labels['openpreview'] = 'Kalender überprüfen';
|
||||
$labels['noearlierevents'] = 'Keine früheren Ereignisse';
|
||||
$labels['nolaterevents'] = 'Keine späteren Ereignisse';
|
||||
$labels['resource'] = 'Ressource';
|
||||
$labels['addresource'] = 'Ressource buchen';
|
||||
$labels['findresources'] = 'Ressourcen finden';
|
||||
$labels['resourcedetails'] = 'Details';
|
||||
$labels['resourceavailability'] = 'Verfügbarkeit';
|
||||
$labels['resourceowner'] = 'Eigentümer';
|
||||
$labels['resourceadded'] = 'Diese Ressource wurde Ihrem Termin hinzugefügt';
|
||||
$labels['tabsummary'] = 'Übersicht';
|
||||
$labels['tabrecurrence'] = 'Wiederholung';
|
||||
$labels['tabattendees'] = 'Teilnehmer';
|
||||
$labels['tabresources'] = 'Ressourcen';
|
||||
$labels['tabattachments'] = 'Anhänge';
|
||||
$labels['tabsharing'] = 'Freigabe';
|
||||
$labels['deleteobjectconfirm'] = 'Möchten Sie diesen Termin wirklich löschen?';
|
||||
$labels['deleteventconfirm'] = 'Möchten Sie diesen Termin wirklich löschen?';
|
||||
$labels['deletecalendarconfirm'] = 'Möchten Sie diesen Kalender mit allen Terminen wirklich löschen?';
|
||||
$labels['deletecalendarconfirmrecursive'] = 'Soll dieser Kalender wirklich mit allen Terminen und Unterkalendern gelöscht werden?';
|
||||
$labels['savingdata'] = 'Daten werden gespeichert …';
|
||||
$labels['errorsaving'] = 'Fehler beim Speichern.';
|
||||
$labels['operationfailed'] = 'Die Aktion ist fehlgeschlagen.';
|
||||
$labels['invalideventdates'] = 'Ungültige Daten eingegeben! Bitte überprüfen Sie die Eingaben.';
|
||||
$labels['invalidcalendarproperties'] = 'Ungültige Kalenderinformationen! Bitte geben Sie einen Namen ein.';
|
||||
$labels['searchnoresults'] = 'Keine Termine in den gewählten Kalendern gefunden.';
|
||||
$labels['successremoval'] = 'Der Termin wurde erfolgreich gelöscht.';
|
||||
$labels['successrestore'] = 'Der Termin wurde erfolgreich wieder hergestellt.';
|
||||
$labels['errornotifying'] = 'Benachrichtigung an die Teilnehmer konnten nicht gesendet werden';
|
||||
$labels['errorimportingevent'] = 'Fehler beim Importieren';
|
||||
$labels['importwarningexists'] = 'Eine Kopie dieses Termins existiert bereits in Ihrem Kalender.';
|
||||
$labels['newerversionexists'] = 'Eine neuere Version dieses Termins exisitert bereits! Import abgebrochen.';
|
||||
$labels['nowritecalendarfound'] = 'Kein Kalender zum Speichern gefunden';
|
||||
$labels['importedsuccessfully'] = 'Der Termin wurde erfolgreich in »$calendar« gespeichert';
|
||||
$labels['updatedsuccessfully'] = 'Der Termin wurde erfolgreich in »$calendar« geändert';
|
||||
$labels['attendeupdateesuccess'] = 'Teilnehmerstatus erfolgreich aktualisiert';
|
||||
$labels['itipsendsuccess'] = 'Einladung an Teilnehmer versendet.';
|
||||
$labels['itipresponseerror'] = 'Die Antwort auf diese Einladung konnte nicht versendet werden';
|
||||
$labels['itipinvalidrequest'] = 'Diese Einladung ist nicht mehr gültig.';
|
||||
$labels['sentresponseto'] = 'Antwort auf diese Einladung erfolgreich an $mailto gesendet';
|
||||
$labels['localchangeswarning'] = 'Die auszuführenden Änderungen werden sich nur auf den persönlichen Kalender auswirken und nicht an den Organisator des Termins weitergeleitet.';
|
||||
$labels['importsuccess'] = 'Es wurden $nr Termine erfolgreich importiert';
|
||||
$labels['importnone'] = 'Keine Termine zum Importieren gefunden';
|
||||
$labels['importerror'] = 'Fehler beim Importieren';
|
||||
$labels['aclnorights'] = 'Der Zugriff auf diesen Kalender erfordert Administrator-Rechte.';
|
||||
$labels['changeeventconfirm'] = 'Termin ändern';
|
||||
$labels['removeeventconfirm'] = 'Termin löschen';
|
||||
$labels['changerecurringeventwarning'] = 'Dies ist eine Terminreihe. Möchten Sie nur den aktuellen, diesen und alle zukünftigen oder alle Termine bearbeiten oder die Änderungen als neuen Termin speichern?';
|
||||
$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'] = 'Geburtstagskalender';
|
||||
$labels['displaybirthdayscalendar'] = 'Geburtstagskalender anzeigen';
|
||||
$labels['birthdayscalendarsources'] = 'Für diese Adressbücher';
|
||||
$labels['birthdayeventtitle'] = '$names Geburtstag';
|
||||
$labels['birthdayage'] = 'Alter $age';
|
||||
$labels['objectchangelog'] = 'Änderungsverlauf';
|
||||
$labels['objectdiff'] = 'Änderungen aus $rev1 nach $rev2';
|
||||
$labels['objectnotfound'] = 'Termindaten sind leider nicht vergübar';
|
||||
$labels['objectchangelognotavailable'] = 'Änderungshistorie ist nicht verfügbar für diesen Termin';
|
||||
$labels['objectdiffnotavailable'] = 'Vergleich für die gewählten Versionen nicht möglich';
|
||||
$labels['revisionrestoreconfirm'] = 'Wollen Sie wirklich die Version $rev dieses Termins wiederherstellen? Diese Aktion wird die aktuelle Kopie mit der älteren Version ersetzen.';
|
||||
$labels['objectrestoresuccess'] = 'Revision $rev erfolgreich wiederhergestellt';
|
||||
$labels['objectrestoreerror'] = 'Fehler beim Wiederherstellen der alten Revision';
|
||||
$labels['arialabelminical'] = 'Kalender Datumswahl';
|
||||
$labels['arialabelcalendarview'] = 'Kalender Ansicht';
|
||||
$labels['arialabelsearchform'] = 'Suchformular für Termine';
|
||||
$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';
|
||||
?>
|
|
@ -6,11 +6,6 @@
|
|||
*
|
||||
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
|
||||
*/
|
||||
$labels['addsources'] = 'CalDAV Quellen hinzufügen';
|
||||
$labels['deletesources'] = 'CalDAV Quellen löschen';
|
||||
$labels['source_notadded_error'] = 'CalDAV Quelle konnte nicht hinzugefügt werden.';
|
||||
$labels['calendar_ical_file'] = 'ics-Datei';
|
||||
|
||||
$labels['default_view'] = 'Standardansicht';
|
||||
$labels['time_format'] = 'Zeitformatierung';
|
||||
$labels['timeslots'] = 'Abschnitte pro Stunde';
|
||||
|
@ -32,12 +27,12 @@ $labels['afterflagdeleted'] = 'Als gelöscht markieren';
|
|||
$labels['aftermoveto'] = 'Verschiebe nach...';
|
||||
$labels['itipoptions'] = 'Termineinladungen';
|
||||
$labels['afteraction'] = 'Nachdem eine Einladungs- oder Update-Nachricht verarbetet wurde';
|
||||
$labels['weeknonone'] = 'nie';
|
||||
$labels['calendar'] = 'Kalender';
|
||||
$labels['calendars'] = 'Kalender';
|
||||
$labels['category'] = 'Kategorie';
|
||||
$labels['categories'] = 'Kategorien';
|
||||
$labels['createcalendar'] = 'Neuen Kalender erstellen';
|
||||
$labels['editcalendar'] = 'Kalendereigenschaften bearbeiten';
|
||||
$labels['name'] = 'Name';
|
||||
$labels['color'] = 'Farbe';
|
||||
$labels['day'] = 'Tag';
|
||||
|
@ -80,7 +75,6 @@ $labels['mystatus'] = 'Mein Status';
|
|||
$labels['status'] = 'Status';
|
||||
$labels['status-confirmed'] = 'Bestätigt';
|
||||
$labels['status-cancelled'] = 'Gekündigt';
|
||||
$labels['status-tentative'] = 'Mit Vorbehalt';
|
||||
$labels['priority'] = 'Priorität';
|
||||
$labels['sensitivity'] = 'Sichtbarkeit';
|
||||
$labels['public'] = 'öffentlich';
|
||||
|
@ -100,7 +94,6 @@ $labels['printdescriptions'] = 'Beschrieb drucken';
|
|||
$labels['parentcalendar'] = 'Erstellen in';
|
||||
$labels['searchearlierdates'] = '« Frühere Termine suchen';
|
||||
$labels['searchlaterdates'] = 'Spätere Termine suchen »';
|
||||
$labels['laterevents'] = 'Später';
|
||||
$labels['andnmore'] = '$nr weitere...';
|
||||
$labels['togglerole'] = 'Zum Ändern der Rolle klicken';
|
||||
$labels['createfrommail'] = 'Als Termin speichern';
|
||||
|
@ -158,6 +151,8 @@ $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';
|
||||
|
@ -169,7 +164,7 @@ $labels['nextslot'] = 'Nächster Vorschlag';
|
|||
$labels['suggestedslot'] = 'Empfohlener Terminplatz';
|
||||
$labels['noslotfound'] = 'Es konnten keine freien Zeiten gefunden werden';
|
||||
$labels['invitationsubject'] = 'Sie wurden zu "$title" eingeladen';
|
||||
$labels['invitationmailbody'] = "*\$title*\n\nWann: \$date\n\nTeilnehmer: \$attendees\n\n\$description\n\nIm Anhang finden Sie eine iCalendar-Datei mit allen Details des Termins. Diese können Sie in Ihre Kalenderanwendung importieren.";
|
||||
$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.";
|
||||
$labels['invitationattendlinks'] = "Falls Ihr E-Mail-Programm keine iTip-Anfragen unterstützt, können Sie den folgenden Link verwenden, um den Termin zu bestätigen oder abzulehnen:\n\$url";
|
||||
$labels['eventupdatesubject'] = '"$title" wurde aktualisiert';
|
||||
$labels['eventupdatesubjectempty'] = 'Termin wurde aktualisiert';
|
||||
|
@ -184,7 +179,6 @@ $labels['itipmailbodycancel'] = "\$sender hat ihre Teilnahme bei der folgenden V
|
|||
$labels['itipmailbodydelegated'] = "\$sender hat die Teilnahme an folgendem Event delegiert:\n\n*\$title*\n\nWann: \$date";
|
||||
$labels['itipmailbodydelegatedto'] = "\$sender hat die Teilnahme an folgendem Event an Sie delegiert:\n\n*\$title*\n\nWann: \$date";
|
||||
$labels['itipdeclineevent'] = 'Möchten Sie die Einladung zu diesem Termin ablehnen?';
|
||||
$labels['declinedeleteconfirm'] = 'Do you also want to delete this declined event from your calendar?';
|
||||
$labels['itipcomment'] = 'Kommentar zur Einladungs/Benachrichtigung';
|
||||
$labels['itipcommenttitle'] = 'Dieser Kommentar wird an die Einladungs/Benachrichtigung angehängt, die an die Teilnehmer verschickt wird';
|
||||
$labels['notanattendee'] = 'Sie sind nicht in der Liste der Teilnehmer aufgeführt';
|
||||
|
|
|
@ -6,11 +6,6 @@
|
|||
*
|
||||
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
|
||||
*/
|
||||
$labels['addsources'] = 'CalDAV Quellen hinzufügen';
|
||||
$labels['deletesources'] = 'CalDAV Quellen löschen';
|
||||
$labels['source_notadded_error'] = 'CalDAV Quelle konnte nicht hinzugefügt werden.';
|
||||
$labels['calendar_ical_file'] = 'ics-Datei';
|
||||
|
||||
$labels['default_view'] = 'Standardansicht';
|
||||
$labels['time_format'] = 'Zeitformatierung';
|
||||
$labels['timeslots'] = 'Zeitfenster pro Stunde';
|
||||
|
@ -31,13 +26,13 @@ $labels['afterdelete'] = 'Nachricht löschen';
|
|||
$labels['afterflagdeleted'] = 'Als gelöscht markieren';
|
||||
$labels['aftermoveto'] = 'Verschiebe nach...';
|
||||
$labels['itipoptions'] = 'Veranstaltungseinladungen';
|
||||
$labels['afteraction'] = 'Nachdem eine Einladungs- oder Aktualisierungsnachricht verarbeitet wurde';
|
||||
$labels['weeknonone'] = 'nie';
|
||||
$labels['afteraction'] = 'Nachdem eine Einladungs- oder Update-Nachricht verarbetet wurde';
|
||||
$labels['calendar'] = 'Kalender';
|
||||
$labels['calendars'] = 'Kalender';
|
||||
$labels['category'] = 'Kategorie';
|
||||
$labels['categories'] = 'Kategorien';
|
||||
$labels['createcalendar'] = 'Neuen Kalender erstellen';
|
||||
$labels['editcalendar'] = 'Kalendereigenschaften bearbeiten';
|
||||
$labels['name'] = 'Name';
|
||||
$labels['color'] = 'Farbe';
|
||||
$labels['day'] = 'Tag';
|
||||
|
@ -63,7 +58,7 @@ $labels['exportrange'] = 'Termine ab';
|
|||
$labels['exportattachments'] = 'Mit Anhängen';
|
||||
$labels['customdate'] = 'Benutzerdefiniertes Datum';
|
||||
$labels['location'] = 'Ort';
|
||||
$labels['url'] = 'Internetadresse';
|
||||
$labels['url'] = 'URL';
|
||||
$labels['date'] = 'Datum';
|
||||
$labels['start'] = 'Beginn';
|
||||
$labels['starttime'] = 'Startzeit';
|
||||
|
@ -71,7 +66,7 @@ $labels['end'] = 'Ende';
|
|||
$labels['endtime'] = 'Endzeit';
|
||||
$labels['repeat'] = 'Wiederholung';
|
||||
$labels['selectdate'] = 'Datum auswählen';
|
||||
$labels['freebusy'] = 'Mich anzeigen als';
|
||||
$labels['freebusy'] = 'Zeige mich als';
|
||||
$labels['free'] = 'Frei';
|
||||
$labels['busy'] = 'Gebucht';
|
||||
$labels['outofoffice'] = 'Abwesend';
|
||||
|
@ -80,7 +75,6 @@ $labels['mystatus'] = 'Mein Status';
|
|||
$labels['status'] = 'Status';
|
||||
$labels['status-confirmed'] = 'Bestätigt';
|
||||
$labels['status-cancelled'] = 'Abgesagt';
|
||||
$labels['status-tentative'] = 'Mit Vorbehalt';
|
||||
$labels['priority'] = 'Priorität';
|
||||
$labels['sensitivity'] = 'Sichtbarkeit';
|
||||
$labels['public'] = 'öffentlich';
|
||||
|
@ -100,8 +94,7 @@ $labels['printdescriptions'] = 'Beschreibung drucken';
|
|||
$labels['parentcalendar'] = 'Erstellen in';
|
||||
$labels['searchearlierdates'] = '« Frühere Termine suchen';
|
||||
$labels['searchlaterdates'] = 'Spätere Termine suchen »';
|
||||
$labels['laterevents'] = 'Später';
|
||||
$labels['andnmore'] = '$nr weitere …';
|
||||
$labels['andnmore'] = '$nr weitere...';
|
||||
$labels['togglerole'] = 'Zum Ändern der Rolle klicken';
|
||||
$labels['createfrommail'] = 'Als Termin speichern';
|
||||
$labels['importevents'] = 'Termine importieren';
|
||||
|
@ -111,7 +104,7 @@ $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'] = '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['findcalendars'] = 'Kalender finden...';
|
||||
$labels['searchterms'] = 'Suchbegriffe';
|
||||
$labels['calsearchresults'] = 'Verfügbare Kalender';
|
||||
$labels['calendarsubscribe'] = 'Permanent anzeigen';
|
||||
|
@ -158,6 +151,8 @@ $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';
|
||||
|
@ -168,48 +163,21 @@ $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*
|
||||
Wann: $date
|
||||
Teilnehmer: $attendees
|
||||
$description
|
||||
Im Anhang finden Sie eine iCalendar-Datei mit allen Details des Termins. Diese können Sie in Ihre Kalenderanwendung importieren.";
|
||||
$labels['invitationattendlinks'] = "Falls Ihr E-Mail-Programm keine iTip-Anfragen unterstützt, können Sie den folgenden Link verwenden, um den Termin zu bestätigen oder abzulehnen:
|
||||
$url";
|
||||
$labels['eventupdatesubject'] = '»$title« wurde aktualisiert';
|
||||
$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.";
|
||||
$labels['invitationattendlinks'] = "Falls Ihr E-Mail-Programm keine iTip-Anfragen unterstützt, können Sie den folgenden Link verwenden, um den Termin zu bestätigen oder abzulehnen:\n\$url";
|
||||
$labels['eventupdatesubject'] = '"$title" wurde aktualisiert';
|
||||
$labels['eventupdatesubjectempty'] = 'Termin wurde aktualisiert';
|
||||
$labels['eventupdatemailbody'] = "*$title*
|
||||
Wann: $date
|
||||
Teilnehmer: $attendees
|
||||
Im 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*
|
||||
Wann: $date
|
||||
Teilnehmer: $attendees
|
||||
Der Termin wurde von $organizer abgesagt.
|
||||
Im Anhang finden Sie eine iCalendar-Datei mit den Termindaten.";
|
||||
$labels['eventupdatemailbody'] = "*\$title*\n\nWann: \$date\n\nTeilnehmer: \$attendees\n\nIm Anhang finden Sie eine iCalendar-Datei mit den aktualisiereten Termindaten. Diese können Sie in Ihre Kalenderanwendung importieren.";
|
||||
$labels['eventcancelsubject'] = '"$title" wurde abgesagt';
|
||||
$labels['eventcancelmailbody'] = "*\$title*\n\nWann: \$date\n\nTeilnehmer: \$attendees\n\nDer Termin wurde von \$organizer abgesagt.\n\nIm Anhang finden Sie eine iCalendar-Datei mit den Termindaten.";
|
||||
$labels['itipobjectnotfound'] = 'Der Termin auf den sich diese Nachricht bezieht, wurde in Ihrem Kalender nicht gefunden.';
|
||||
$labels['itipmailbodyaccepted'] = "$sender hat die Einladung zum folgenden Termin angenommen:
|
||||
*$title*
|
||||
Wann: $date
|
||||
Teilnehmer: $attendees";
|
||||
$labels['itipmailbodytentative'] = "$sender hat die Einladung mit Vorbehalt zum folgenden Termin angenommen:
|
||||
*$title*
|
||||
Wann: $date
|
||||
Teilnehmer: $attendees";
|
||||
$labels['itipmailbodydeclined'] = "$sender hat die Einladung zum folgenden Termin abgelehnt:
|
||||
*$title*
|
||||
Wann: $date
|
||||
Teilnehmer: $attendees";
|
||||
$labels['itipmailbodycancel'] = "$sender hat Ihre Teilnahme bei der folgenden Veranstaltung zurückgewiesen:
|
||||
*$title*
|
||||
Wann: $date";
|
||||
$labels['itipmailbodydelegated'] = "$sender hat die Teilnahme an folgendem Event delegiert:
|
||||
*$title*
|
||||
When: $date";
|
||||
$labels['itipmailbodydelegatedto'] = "$sender hat die Teilnahme an folgendem Event an Sie delegiert:
|
||||
*$title*
|
||||
Wann: $date";
|
||||
$labels['itipmailbodyaccepted'] = "\$sender hat die Einladung zum folgenden Termin angenommen:\n\n*\$title*\n\nWann: \$date\n\nTeilnehmer: \$attendees";
|
||||
$labels['itipmailbodytentative'] = "\$sender hat die Einladung mit Vorbehalt zum folgenden Termin angenommen:\n\n*\$title*\n\nWann: \$date\n\nTeilnehmer: \$attendees";
|
||||
$labels['itipmailbodydeclined'] = "\$sender hat die Einladung zum folgenden Termin abgelehnt:\n\n*\$title*\n\nWann: \$date\n\nTeilnehmer: \$attendees";
|
||||
$labels['itipmailbodycancel'] = "\$sender hat Ihre Teilnahme bei der folgenden Veranstaltung zurückgewiesen:\n\n*\$title*\n\nWann: \$date";
|
||||
$labels['itipmailbodydelegated'] = "\$sender hat die Teilnahme an folgendem Event delegiert:\n\n*\$title*\n\nWhen: \$date";
|
||||
$labels['itipmailbodydelegatedto'] = "\$sender hat die Teilnahme an folgendem Event an Sie delegiert:\n\n*\$title*\n\nWann: \$date";
|
||||
$labels['itipdeclineevent'] = 'Möchten Sie die Einladung zu diesem Termin ablehnen?';
|
||||
$labels['declinedeleteconfirm'] = 'Soll der abgelehnte Termin zusätzlich aus dem Kalender gelöscht werden?';
|
||||
$labels['itipcomment'] = 'Kommentar zur Einladungs-/Benachrichtigungsnachricht';
|
||||
|
@ -239,7 +207,7 @@ $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'] = 'Soll dieser Kalender wirklich mit allen Terminen und Unterkalendern gelöscht werden?';
|
||||
$labels['savingdata'] = 'Daten werden gespeichert …';
|
||||
$labels['savingdata'] = 'Speichere Daten...';
|
||||
$labels['errorsaving'] = 'Fehler beim Speichern.';
|
||||
$labels['operationfailed'] = 'Die Aktion ist fehlgeschlagen.';
|
||||
$labels['invalideventdates'] = 'Ungültige Daten eingegeben! Bitte überprüfen Sie die Eingaben.';
|
||||
|
@ -252,8 +220,8 @@ $labels['errorimportingevent'] = 'Fehler beim Importieren';
|
|||
$labels['importwarningexists'] = 'Eine Kopie dieses Termins existiert bereits in Ihrem Kalender.';
|
||||
$labels['newerversionexists'] = 'Eine neuere Version dieses Termins exisitert bereits! Import abgebrochen.';
|
||||
$labels['nowritecalendarfound'] = 'Kein Kalender zum Speichern gefunden';
|
||||
$labels['importedsuccessfully'] = 'Der Termin wurde erfolgreich in »$calendar« gespeichert';
|
||||
$labels['updatedsuccessfully'] = 'Der Termin wurde erfolgreich in »$calendar« geändert';
|
||||
$labels['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';
|
||||
|
@ -274,12 +242,12 @@ $labels['futurevents'] = 'Zukünftige';
|
|||
$labels['allevents'] = 'Alle';
|
||||
$labels['saveasnew'] = 'Als neu speichern';
|
||||
$labels['birthdays'] = 'Geburtstage';
|
||||
$labels['birthdayscalendar'] = 'Geburtstagskalender';
|
||||
$labels['displaybirthdayscalendar'] = 'Geburtstagskalender anzeigen';
|
||||
$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['objectchangelog'] = 'Änderungsverlauf';
|
||||
$labels['objectchangelog'] = 'Änderungshistorie';
|
||||
$labels['objectdiff'] = 'Änderungen aus $rev1 nach $rev2';
|
||||
$labels['objectnotfound'] = 'Termindaten sind leider nicht vergübar';
|
||||
$labels['objectchangelognotavailable'] = 'Änderungshistorie ist nicht verfügbar für diesen Termin';
|
||||
|
|
|
@ -1,95 +0,0 @@
|
|||
<?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['first_day'] = 'Πρώτη ημέρα της εβδομάδας';
|
||||
$labels['workinghours'] = 'Ώρες εργασίας';
|
||||
$labels['add_category'] = 'Προσθήκη κατηγορίας';
|
||||
$labels['remove_category'] = 'Αφαίρεση κατηγορίας';
|
||||
$labels['defaultcalendar'] = 'Δημιουργία νέων συμβάντων στο';
|
||||
$labels['eventcoloring'] = 'Χρωματισμός συμβάντος';
|
||||
$labels['coloringmode0'] = 'Σύμφωνα με το ημερολόγιο';
|
||||
$labels['coloringmode1'] = 'Σύμφωνα με την κατηγορία';
|
||||
$labels['aftertrash'] = 'Μετακίνηση στα απορρίματα';
|
||||
$labels['afterdelete'] = 'Διαγραφή μηνύματος';
|
||||
$labels['afterflagdeleted'] = 'Σημείωση ως διεγραμμένου';
|
||||
$labels['aftermoveto'] = 'Μεταφορά σε...';
|
||||
$labels['itipoptions'] = 'Προσκλήσεις συμβάντος';
|
||||
$labels['calendar'] = 'Ημερολόγιο';
|
||||
$labels['calendars'] = 'Ημερολόγια';
|
||||
$labels['category'] = 'Κατηγορία';
|
||||
$labels['categories'] = 'Κατηγορίες';
|
||||
$labels['createcalendar'] = 'Δημιουργία νέου ημερολογίου';
|
||||
$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['location'] = 'Τοποθεσία';
|
||||
$labels['url'] = 'URL';
|
||||
$labels['date'] = 'Ημερομηνία';
|
||||
$labels['start'] = 'Έναρξη';
|
||||
$labels['starttime'] = 'Ώρα έναρξης';
|
||||
$labels['end'] = 'Λήξη';
|
||||
$labels['endtime'] = 'Ώρα λήξης';
|
||||
$labels['repeat'] = 'Επανάληψη';
|
||||
$labels['selectdate'] = 'Επιλογή ημερομηνίας';
|
||||
$labels['busy'] = 'Απασχολημένος';
|
||||
$labels['outofoffice'] = 'Εκτός γραφείου';
|
||||
$labels['status'] = 'Κατάσταση';
|
||||
$labels['sensitivity'] = 'Ιδιωτικότητα';
|
||||
$labels['comment'] = 'Σχόλιο';
|
||||
$labels['created'] = 'Δημιουργήθηκε';
|
||||
$labels['changed'] = 'Τελευταία τροποποίηση';
|
||||
$labels['eventhistory'] = 'Ιστορικό';
|
||||
$labels['createfrommail'] = 'Αποθήκευση συμβάντος ως';
|
||||
$labels['importevents'] = 'Εισαγωγή συμβάντων';
|
||||
$labels['importrange'] = 'Συμβάντα από';
|
||||
$labels['onemonthback'] = '1 μήνα πριν';
|
||||
$labels['nmonthsback'] = '$nr μήνες πριν';
|
||||
$labels['findcalendars'] = 'Εύρεση ημερολογίων...';
|
||||
$labels['searchterms'] = 'Όροι αναζήτησης';
|
||||
$labels['calsearchresults'] = 'Διαθέσιμα ημερολόγια';
|
||||
$labels['until'] = 'μέχρι';
|
||||
$labels['today'] = 'Σήμερα';
|
||||
$labels['tomorrow'] = 'Αύριο';
|
||||
$labels['thisweek'] = 'Αυτή την εβδομάδα';
|
||||
$labels['nextweek'] = 'Την επόμενη εβδομάδα';
|
||||
$labels['prevweek'] = 'Την προηγούμενη εβδομάδα';
|
||||
$labels['thismonth'] = 'Αυτό τον μήνα';
|
||||
$labels['nextmonth'] = 'Τον επόμενο μήνα';
|
||||
$labels['weekofyear'] = 'Εβδομάδα';
|
||||
$labels['role'] = 'Ρόλος';
|
||||
$labels['availability'] = 'Διαθ.';
|
||||
$labels['confirmstate'] = 'Κατάσταση';
|
||||
$labels['addattendee'] = 'Προσθήκη συμμετεχόντων';
|
||||
$labels['roleorganizer'] = 'Οργανωτής';
|
||||
$labels['cutypegroup'] = 'Ομάδα';
|
||||
$labels['availbusy'] = 'Απασχολημένος';
|
||||
$labels['availoutofoffice'] = 'Εκτός γραφείου';
|
||||
$labels['tabsummary'] = 'Περίληψη';
|
||||
$labels['savingdata'] = 'Αποθήκευση δεδομένων...';
|
||||
$labels['objectchangelog'] = 'Αλλαγή ιστορικού';
|
||||
?>
|
|
@ -10,12 +10,6 @@
|
|||
|
||||
$labels = array();
|
||||
|
||||
//caldav driver
|
||||
$labels['addsources'] = 'Add CalDAV sources';
|
||||
$labels['deletesources'] = 'Delete CalDAV sources';
|
||||
$labels['source_notadded_error'] = 'CalDAV source could not be added.';
|
||||
$labels['calendar_ical_file'] = 'ics file';
|
||||
|
||||
// preferences
|
||||
$labels['default_view'] = 'Default view';
|
||||
$labels['time_format'] = 'Time format';
|
||||
|
@ -38,20 +32,14 @@ $labels['afterflagdeleted'] = 'Flag as deleted';
|
|||
$labels['aftermoveto'] = 'Move to...';
|
||||
$labels['itipoptions'] = 'Event Invitations';
|
||||
$labels['afteraction'] = 'After an invitation or update message is processed';
|
||||
$labels['showweekno'] = 'Display week numbers';
|
||||
$labels['weeknonone'] = 'never';
|
||||
$labels['weeknodatepicker'] = 'in datepicker only';
|
||||
$labels['weeknoall'] = 'in datepicker and calendar view';
|
||||
|
||||
// calendar
|
||||
$labels['calendar'] = 'Calendar';
|
||||
$labels['calendars'] = 'Calendars';
|
||||
$labels['category'] = 'Category';
|
||||
$labels['categories'] = 'Categories';
|
||||
$labels['addcalendar'] = 'Add calendar';
|
||||
$labels['createcalendar'] = 'Create new calendar';
|
||||
$labels['editcalendar'] = 'Edit/Share calendar';
|
||||
$labels['deletecalendar'] = 'Delete calendar';
|
||||
$labels['editcalendar'] = 'Edit calendar properties';
|
||||
$labels['name'] = 'Name';
|
||||
$labels['color'] = 'Color';
|
||||
$labels['day'] = 'Day';
|
||||
|
@ -94,7 +82,6 @@ $labels['mystatus'] = 'My status';
|
|||
$labels['status'] = 'Status';
|
||||
$labels['status-confirmed'] = 'Confirmed';
|
||||
$labels['status-cancelled'] = 'Cancelled';
|
||||
$labels['status-tentative'] = 'Tentative';
|
||||
$labels['priority'] = 'Priority';
|
||||
$labels['sensitivity'] = 'Privacy';
|
||||
$labels['public'] = 'public';
|
||||
|
@ -114,8 +101,6 @@ $labels['printdescriptions'] = 'Print descriptions';
|
|||
$labels['parentcalendar'] = 'Insert inside';
|
||||
$labels['searchearlierdates'] = '« Search for earlier events';
|
||||
$labels['searchlaterdates'] = 'Search for later events »';
|
||||
$labels['earlierevents'] = 'Earlier';
|
||||
$labels['laterevents'] = 'Later';
|
||||
$labels['andnmore'] = '$nr more...';
|
||||
$labels['togglerole'] = 'Click to toggle role';
|
||||
$labels['createfrommail'] = 'Save as event';
|
||||
|
@ -126,11 +111,8 @@ $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['showfburl'] = 'Show free-busy URL';
|
||||
$labels['fburldescription'] = 'Use the following address to access Free-Busy information from other applications. You can copy and paste this into any calendar software that supports free-busy information in iCal format. No authentication is required for this URL.';
|
||||
$labels['findcalendars'] = 'Find calendars...';
|
||||
$labels['searchterms'] = 'Search terms';
|
||||
$labels['findevents'] = 'Find events';
|
||||
$labels['calsearchresults'] = 'Available Calendars';
|
||||
$labels['calendarsubscribe'] = 'List permanently';
|
||||
$labels['nocalendarsfound'] = 'No calendars found';
|
||||
|
@ -140,8 +122,6 @@ $labels['invitationspending'] = 'Pending invitations';
|
|||
$labels['invitationsdeclined'] = 'Declined invitations';
|
||||
$labels['changepartstat'] = 'Change participant status';
|
||||
$labels['rsvpcomment'] = 'Invitation text';
|
||||
$labels['eventstartsync'] = 'Move the event start date to the first occurrence';
|
||||
$labels['weekshort'] = 'Wk';
|
||||
|
||||
// agenda view
|
||||
$labels['listrange'] = 'Range to display:';
|
||||
|
@ -184,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';
|
||||
|
@ -195,7 +177,7 @@ $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\n\$description\n\nPlease find attached an iCalendar file with all the event details which you can import to your calendar application.";
|
||||
$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';
|
||||
|
@ -213,10 +195,6 @@ $labels['itipmailbodycancel'] = "\$sender has rejected your participation in the
|
|||
$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['itipmailbodyresourceaccepted'] = "\$sender has accepted the following resource booking:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
|
||||
$labels['itipmailbodyresourcetentative'] = "\$sender has tentatively accepted the following resource booking:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
|
||||
$labels['itipmailbodyresourcedeclined'] = "\$sender has declined the the following resource booking:\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';
|
||||
|
@ -230,7 +208,6 @@ $labels['savetocalendar'] = 'Save to calendar';
|
|||
$labels['openpreview'] = 'Check Calendar';
|
||||
$labels['noearlierevents'] = 'No earlier events';
|
||||
$labels['nolaterevents'] = 'No later events';
|
||||
$labels['legend'] = 'Legend';
|
||||
|
||||
// resources
|
||||
$labels['resource'] = 'Resource';
|
||||
|
@ -238,7 +215,6 @@ $labels['addresource'] = 'Book resource';
|
|||
$labels['findresources'] = 'Find resources';
|
||||
$labels['resourcedetails'] = 'Details';
|
||||
$labels['resourceavailability'] = 'Availability';
|
||||
$labels['resourceprops'] = 'Resource properties';
|
||||
$labels['resourceowner'] = 'Owner';
|
||||
$labels['resourceadded'] = 'The resource was added to your event';
|
||||
|
||||
|
@ -259,7 +235,6 @@ $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['emptyeventtitle'] = 'Event summary cannot be empty.';
|
||||
$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.';
|
||||
|
@ -272,7 +247,6 @@ $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['errorunknownattendee'] = 'Failed to find the participant information.';
|
||||
$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';
|
||||
|
@ -282,7 +256,6 @@ $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['importtext'] = 'You can upload events in <a href="https://wikipedia.org/wiki/ICalendar">iCalendar</a> format (.ics).';
|
||||
|
||||
$labels['changeeventconfirm'] = 'Change event';
|
||||
$labels['removeeventconfirm'] = 'Delete event';
|
||||
|
@ -293,7 +266,6 @@ $labels['currentevent'] = 'Current';
|
|||
$labels['futurevents'] = 'Future';
|
||||
$labels['allevents'] = 'All';
|
||||
$labels['saveasnew'] = 'Save as new';
|
||||
$labels['recurrenceerror'] = 'Unable to resolve recurrence rule for specified start date.';
|
||||
|
||||
// birthdays calendar
|
||||
$labels['birthdays'] = 'Birthdays';
|
||||
|
@ -313,6 +285,7 @@ $labels['revisionrestoreconfirm'] = 'Do you really want to restore revision $rev
|
|||
$labels['objectrestoresuccess'] = 'Revision $rev successfully restored';
|
||||
$labels['objectrestoreerror'] = 'Failed to restore the old revision';
|
||||
|
||||
|
||||
// (hidden) titles and labels for accessibility annotations
|
||||
$labels['arialabelminical'] = 'Calendar date selection';
|
||||
$labels['arialabelcalendarview'] = 'Calendar view';
|
||||
|
@ -320,11 +293,9 @@ $labels['arialabelsearchform'] = 'Event search form';
|
|||
$labels['arialabelquicksearchbox'] = 'Event search input';
|
||||
$labels['arialabelcalsearchform'] = 'Calendars search form';
|
||||
$labels['calendaractions'] = 'Calendar actions';
|
||||
$labels['calendarprops'] = 'Calendar properties';
|
||||
$labels['arialabeleventattendees'] = 'Event participants list';
|
||||
$labels['arialabeleventresources'] = 'Event resources list';
|
||||
$labels['arialabelresourcesearchform'] = 'Resources search form';
|
||||
$labels['arialabelresourceselection'] = 'Available resources';
|
||||
$labels['arialabeleventform'] = 'Event editing form';
|
||||
|
||||
?>
|
||||
|
|
|
@ -27,13 +27,12 @@ $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['weeknonone'] = 'nunca';
|
||||
$labels['calendar'] = 'Calendario';
|
||||
$labels['calendars'] = 'Calendarios';
|
||||
$labels['category'] = 'Categoría';
|
||||
$labels['categories'] = 'Categorías';
|
||||
$labels['addcalendar'] = 'Agregar calendario';
|
||||
$labels['createcalendar'] = 'Crear nuevo calendario';
|
||||
$labels['editcalendar'] = 'Editar propiedades del calendario';
|
||||
$labels['name'] = 'Nombre';
|
||||
$labels['color'] = 'Color';
|
||||
$labels['day'] = 'Día';
|
||||
|
@ -76,7 +75,6 @@ $labels['mystatus'] = 'Mi estado';
|
|||
$labels['status'] = 'Estado';
|
||||
$labels['status-confirmed'] = 'Confirmado';
|
||||
$labels['status-cancelled'] = 'Cancelado';
|
||||
$labels['status-tentative'] = 'Tentativo';
|
||||
$labels['priority'] = 'Prioridad';
|
||||
$labels['sensitivity'] = 'Privacidad';
|
||||
$labels['public'] = 'público';
|
||||
|
@ -96,8 +94,6 @@ $labels['printdescriptions'] = 'Imprimir descripciones';
|
|||
$labels['parentcalendar'] = 'Insertar dentro';
|
||||
$labels['searchearlierdates'] = '« Buscar eventos anteriores';
|
||||
$labels['searchlaterdates'] = 'Buscar eventos posteriores »';
|
||||
$labels['earlierevents'] = 'Anteriormente';
|
||||
$labels['laterevents'] = 'Luego';
|
||||
$labels['andnmore'] = '$nr más...';
|
||||
$labels['togglerole'] = 'Click para cambiar rol';
|
||||
$labels['createfrommail'] = 'Guardar como evento';
|
||||
|
@ -108,11 +104,8 @@ $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['showfburl'] = 'Mostrar URL libre-ocupado';
|
||||
$labels['fburldescription'] = 'Use la siguiente dirección para acceder a la información Libre-Ocupado desde otras aplicaciones. Puede copiar y pegar esto dentro de cualquier software que soporte información libre-ocupado en el formato iCal. No se requiere autenticación para esta URL.';
|
||||
$labels['findcalendars'] = 'Encontrar calendarios...';
|
||||
$labels['searchterms'] = 'Buscar términos';
|
||||
$labels['findevents'] = 'Encontrar eventos';
|
||||
$labels['calsearchresults'] = 'Calendarios disponibles';
|
||||
$labels['calendarsubscribe'] = 'Listar permanentemente';
|
||||
$labels['nocalendarsfound'] = 'No se encontraron calendarios';
|
||||
|
@ -122,7 +115,6 @@ $labels['invitationspending'] = 'Invitaciones pendientes';
|
|||
$labels['invitationsdeclined'] = 'Invitaciones rechazadas';
|
||||
$labels['changepartstat'] = 'Cambiar el estado del participante';
|
||||
$labels['rsvpcomment'] = 'Texto de invitación';
|
||||
$labels['eventstartsync'] = 'Mover la fecha de inicio del evento a la primera ocurrencia';
|
||||
$labels['listrange'] = 'Rango a mostrar:';
|
||||
$labels['listsections'] = 'Dividir en:';
|
||||
$labels['smartsections'] = 'Secciones inteligentes';
|
||||
|
@ -159,6 +151,8 @@ $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';
|
||||
|
@ -170,7 +164,7 @@ $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\n\$description\n\nEncontrará adjunto un archivo iCalendar con todos los detalles del evento, el cual puede importar a su aplicación de calendario.";
|
||||
$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';
|
||||
|
@ -196,13 +190,11 @@ $labels['savetocalendar'] = 'Guardar en el calendario';
|
|||
$labels['openpreview'] = 'Comprobar Calendario';
|
||||
$labels['noearlierevents'] = 'No hay eventos anteriores';
|
||||
$labels['nolaterevents'] = 'No hay eventos posteriores';
|
||||
$labels['legend'] = 'Leyenda';
|
||||
$labels['resource'] = 'Recurso';
|
||||
$labels['addresource'] = 'Agendar recurso';
|
||||
$labels['findresources'] = 'Encontrar recursos';
|
||||
$labels['resourcedetails'] = 'Detalles';
|
||||
$labels['resourceavailability'] = 'Disponibilidad';
|
||||
$labels['resourceprops'] = 'Propiedades del recurso';
|
||||
$labels['resourceowner'] = 'Propietario';
|
||||
$labels['resourceadded'] = 'El recurso fue agregado a su evento';
|
||||
$labels['tabsummary'] = 'Sumario';
|
||||
|
@ -231,7 +223,6 @@ $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['errorunknownattendee'] = 'Fallo al encontrar la información de los participantes.';
|
||||
$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';
|
||||
|
@ -241,7 +232,6 @@ $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['importtext'] = 'Puede subir eventos en formato <a href="https://wikipedia.org/wiki/ICalendar">iCalendar</a> (.ics)';
|
||||
$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?';
|
||||
|
@ -251,7 +241,6 @@ $labels['currentevent'] = 'Actual';
|
|||
$labels['futurevents'] = 'Futuro';
|
||||
$labels['allevents'] = 'Todos';
|
||||
$labels['saveasnew'] = 'Guardar como nuevo';
|
||||
$labels['recurrenceerror'] = 'Imposible de resolver la regla de recurrencia para la fecha de inicio especificada.';
|
||||
$labels['birthdays'] = 'Cumpleaños';
|
||||
$labels['birthdayscalendar'] = 'Calendario de cumpleaños';
|
||||
$labels['displaybirthdayscalendar'] = 'Mostrar calendario de cumpleaños';
|
||||
|
@ -272,10 +261,8 @@ $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['calendarprops'] = 'Propiedades 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';
|
||||
$labels['arialabeleventform'] = 'Formulario de edición de evento';
|
||||
?>
|
||||
|
|
|
@ -27,12 +27,12 @@ $labels['afterflagdeleted'] = 'Marcar como eliminado';
|
|||
$labels['aftermoveto'] = 'Mover a...';
|
||||
$labels['itipoptions'] = 'Invitaciones para el evento';
|
||||
$labels['afteraction'] = 'Se procesa después de un mensaje de invitación o actualización';
|
||||
$labels['weeknonone'] = 'never';
|
||||
$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';
|
||||
|
@ -75,7 +75,6 @@ $labels['mystatus'] = 'Mi estado';
|
|||
$labels['status'] = 'Estado';
|
||||
$labels['status-confirmed'] = 'Confirmado';
|
||||
$labels['status-cancelled'] = 'Cancelado';
|
||||
$labels['status-tentative'] = 'Provisional';
|
||||
$labels['priority'] = 'Prioridad';
|
||||
$labels['sensitivity'] = 'Privacidad';
|
||||
$labels['public'] = 'Pública';
|
||||
|
@ -95,7 +94,6 @@ $labels['printdescriptions'] = 'Imprimir descripción ';
|
|||
$labels['parentcalendar'] = 'Inserte en el interior';
|
||||
$labels['searchearlierdates'] = '« Búsqueda de eventos anteriores';
|
||||
$labels['searchlaterdates'] = 'Búsqueda de eventos posteriores »';
|
||||
$labels['laterevents'] = 'Luego';
|
||||
$labels['andnmore'] = '$nr más...';
|
||||
$labels['togglerole'] = 'Haga clic para cambiar el rol';
|
||||
$labels['createfrommail'] = 'Guardar como evento';
|
||||
|
@ -153,6 +151,8 @@ $labels['availbusy'] = 'Ocupado';
|
|||
$labels['availunknown'] = 'Desconocido';
|
||||
$labels['availtentative'] = 'Provisional';
|
||||
$labels['availoutofoffice'] = 'Fuera de la oficina';
|
||||
$labels['delegatedto'] = 'Delegar a: ';
|
||||
$labels['delegatedfrom'] = 'Delegado de:';
|
||||
$labels['scheduletime'] = 'Buscar disponibilidad';
|
||||
$labels['sendinvitations'] = 'Enviar invitaciones';
|
||||
$labels['sendnotifications'] = 'Notificar a los participantes acerca de las modificaciones';
|
||||
|
@ -164,11 +164,11 @@ $labels['nextslot'] = 'Siguiente ranura';
|
|||
$labels['suggestedslot'] = 'Ranura sugerida';
|
||||
$labels['noslotfound'] = 'Incapaz de encontrar un intervalo de tiempo libre';
|
||||
$labels['invitationsubject'] = 'Usted sido invitado a "$title"';
|
||||
$labels['invitationmailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nSe adjunta un archivo iCalendar con todos los detalles del evento que se puede importar a la aplicación de calendario.";
|
||||
$labels['invitationattendlinks'] = "En caso de que su cliente de correo electrónico no admite solicitudes iTIP que puede utilizar el siguiente enlace para aceptar o rechazar esta invitación:\n\$url";
|
||||
$labels['eventupdatesubject'] = '"$title" Ha sido actualizado';
|
||||
$labels['eventupdatesubjectempty'] = 'Un evento que le concierne ha sido actualizado';
|
||||
$labels['eventupdatemailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nSe adjunta un archivo iCalendar con los detalles del evento actualizados que se puede importar a la aplicación de calendario.";
|
||||
$labels['eventcancelsubject'] = 'Se ha cancelado "$título"';
|
||||
$labels['eventcancelmailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nEl evento ha sido cancelado por\$organizer.\n\nSe adjunta un archivo iCalendar con los detalles del evento actualizados.";
|
||||
$labels['itipobjectnotfound'] = 'El evento referido por este mensaje no se encontró en su calendario.';
|
||||
$labels['itipmailbodyaccepted'] = "\$sender ha aceptado la invitación al evento siguiente:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
|
||||
|
@ -183,85 +183,21 @@ $labels['itipcomment'] = 'Añadir comentarios a la Invitación/notificación';
|
|||
$labels['itipcommenttitle'] = 'Este comentario se adjunta al mensaje de invitación/notificación enviada a los participantes';
|
||||
$labels['notanattendee'] = 'Usted no está en la lista como un asistente de este evento';
|
||||
$labels['eventcancelled'] = 'El evento ha sido cancelado';
|
||||
$labels['saveincalendar'] = 'guardar en';
|
||||
$labels['updatemycopy'] = 'actualizar en mi calendario';
|
||||
$labels['savetocalendar'] = 'guardar en calendario';
|
||||
$labels['openpreview'] = 'Revisar en calendario';
|
||||
$labels['noearlierevents'] = 'No hay eventos anteriores';
|
||||
$labels['nolaterevents'] = 'No hay eventos posteriores';
|
||||
$labels['resource'] = 'Recurso';
|
||||
$labels['addresource'] = 'Reservar recursos';
|
||||
$labels['findresources'] = 'Encontrar recursos';
|
||||
$labels['resourcedetails'] = 'Detalles';
|
||||
$labels['resourceavailability'] = 'Disponibilidad';
|
||||
$labels['resourceowner'] = 'Propietario';
|
||||
$labels['resourceadded'] = 'Se ha añadido un recurso a su evento';
|
||||
$labels['tabsummary'] = 'Sumario';
|
||||
$labels['tabrecurrence'] = 'Recurrencia ';
|
||||
$labels['tabattendees'] = 'Participantes';
|
||||
$labels['tabresources'] = 'Recursos';
|
||||
$labels['tabattachments'] = 'Adjuntos';
|
||||
$labels['tabsharing'] = 'Compartir';
|
||||
$labels['deleteobjectconfirm'] = '¿Esta seguro de eliminar este evento?';
|
||||
$labels['deleteventconfirm'] = '¿Esta seguro de eliminar este evento?';
|
||||
$labels['deletecalendarconfirm'] = '¿Esta seguro de eliminar este calendario con todos sus eventos?';
|
||||
$labels['deletecalendarconfirmrecursive'] = '¿Esta seguro de eliminar este calendario con todos sus eventos y subcalendarios?';
|
||||
$labels['savingdata'] = 'Guardando datos...';
|
||||
$labels['errorsaving'] = 'Error al guardar cambios';
|
||||
$labels['operationfailed'] = 'Error en la operación solicitada';
|
||||
$labels['invalideventdates'] = 'Se han introducido fechas erróneas; por favor, revise su entrada';
|
||||
$labels['invalidcalendarproperties'] = 'Propiedades de portátiles erróneas; establezca un nombre válido.';
|
||||
$labels['searchnoresults'] = 'No se han encontrado eventos en los calendarios seleccionados.';
|
||||
$labels['successremoval'] = 'El evento se ha eliminado correctamente.';
|
||||
$labels['successrestore'] = 'El evento se ha restaurado correctamente.';
|
||||
$labels['errornotifying'] = 'Error al enviar notificaciones a los participantes del evento';
|
||||
$labels['errorimportingevent'] = 'Error al importar el evento';
|
||||
$labels['importwarningexists'] = 'Ya existe una copia de este evento en su calendario.';
|
||||
$labels['newerversionexists'] = 'Ya existe una versión más nueva de este evento. Abortado.';
|
||||
$labels['nowritecalendarfound'] = 'No se ha encontrado ningún calendario para guardar el evento.';
|
||||
$labels['importedsuccessfully'] = 'El evento se agregó correctamente a \'$calendar\'';
|
||||
$labels['updatedsuccessfully'] = 'El evento se actualizó correctamente en \'$calendar\'';
|
||||
$labels['attendeupdateesuccess'] = 'Se ha actualizado correctamente el estado del participante';
|
||||
$labels['itipsendsuccess'] = 'Invitación enviada a los participantes.';
|
||||
$labels['itipresponseerror'] = 'Error al enviar la respuesta a esta invitación de evento';
|
||||
$labels['itipinvalidrequest'] = 'Esta invitación ya no es válida';
|
||||
$labels['sentresponseto'] = 'Respuesta de invitación con éxito enviada a $mailto';
|
||||
$labels['localchangeswarning'] = 'Está a punto de realizar cambios que sólo se reflejarán en su calendario y no se enviarán al organizador del evento.';
|
||||
$labels['importsuccess'] = 'Se han importado $nr eventos correctamente';
|
||||
$labels['importnone'] = 'No se han encontrado eventos para importar';
|
||||
$labels['importerror'] = 'Se ha producido un error durante la importación';
|
||||
$labels['aclnorights'] = 'No tiene derechos de administrador en este calendario.';
|
||||
$labels['changeeventconfirm'] = 'Cambiar evento';
|
||||
$labels['removeeventconfirm'] = 'Eliminar evento';
|
||||
$labels['changerecurringeventwarning'] = 'Este es un evento recurrente. ¿Desea editar solo el evento actual, este y todos los futuros casos, todos los casos o guardarlo como un nuevo evento?';
|
||||
$labels['removerecurringeventwarning'] = 'Este es un evento recurrente. ¿Desea eliminar solo el evento actual, este y todos los futuros casos o todos los casos de este evento?';
|
||||
$labels['removerecurringallonly'] = 'Este es un evento recurrente. Como participante, sólo puede eliminar el evento al completo con todos los casos..';
|
||||
$labels['currentevent'] = 'Actual';
|
||||
$labels['futurevents'] = 'Futuro';
|
||||
$labels['allevents'] = 'Todo';
|
||||
$labels['saveasnew'] = 'Guardar como nuevo';
|
||||
$labels['birthdays'] = 'Cumpleaños';
|
||||
$labels['birthdayscalendar'] = 'Calendario de cumpleaños';
|
||||
$labels['displaybirthdayscalendar'] = 'Mostrar calendarios de cumpleaños';
|
||||
$labels['birthdayscalendarsources'] = 'Desde esta libreta de direcciones';
|
||||
$labels['birthdayeventtitle'] = 'Cumpleaños de $nombre';
|
||||
$labels['birthdayage'] = 'Edad $edad';
|
||||
$labels['objectchangelog'] = 'Cambiar historial';
|
||||
$labels['objectdiff'] = 'Cambiar de $rev1 a $rev2';
|
||||
$labels['objectnotfound'] = 'Error al cargar los datos del evento';
|
||||
$labels['objectchangelognotavailable'] = 'El historial de cambios no está disponible para este evento';
|
||||
$labels['objectdiffnotavailable'] = 'No hay comparación posible que las revisiones seleccionadas';
|
||||
$labels['revisionrestoreconfirm'] = '¿Realmente desea restaurar la revisión $rev de este evento? Esto reemplazará el evento actual con la antigua versión.';
|
||||
$labels['objectrestoresuccess'] = 'Revisión $rev restaurado correctamente';
|
||||
$labels['objectrestoreerror'] = 'No se pudo restaurar la revisión anterior';
|
||||
$labels['arialabelminical'] = 'Seleccionar una fecha en el calendario';
|
||||
$labels['arialabelcalendarview'] = 'Vista del calendario';
|
||||
$labels['arialabelsearchform'] = 'Formulario de búsqueda de eventos';
|
||||
$labels['arialabelquicksearchbox'] = 'Entrada en búsqueda de eventos';
|
||||
$labels['arialabelcalsearchform'] = 'Formulario de búsqueda de calendarios';
|
||||
$labels['calendaractions'] = 'acciones del calendario';
|
||||
$labels['arialabeleventattendees'] = 'Lista de participantes del evento';
|
||||
$labels['arialabeleventresources'] = 'Lista de recursos del evento';
|
||||
$labels['arialabelresourcesearchform'] = 'Formulario de búsqueda de recursos';
|
||||
$labels['arialabelresourceselection'] = 'Recursos disponibles';
|
||||
$labels['objectrestoreerror'] = 'No se pudo restaurar la revisión antigua';
|
||||
?>
|
||||
|
|
|
@ -6,158 +6,202 @@
|
|||
*
|
||||
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
|
||||
*/
|
||||
$labels['default_view'] = 'Vaikimisi vaade';
|
||||
$labels['time_format'] = 'Kellaaja vorming';
|
||||
$labels['first_day'] = 'Esimene nädala päev';
|
||||
$labels['first_hour'] = 'Esimene tund, mida näidata';
|
||||
$labels['workinghours'] = 'Töötunnid';
|
||||
$labels['add_category'] = 'Lisa kategooria';
|
||||
$labels['remove_category'] = 'Eemalda kategooria';
|
||||
$labels['eventcoloring'] = 'Ürituste värv';
|
||||
$labels['coloringmode0'] = 'Vastavalt kalendrile';
|
||||
$labels['coloringmode1'] = 'Vastavalt kategooriale';
|
||||
$labels['afternothing'] = 'Ära tee midagi';
|
||||
$labels['aftertrash'] = 'Liiguta prügikasti';
|
||||
$labels['aftermoveto'] = 'Liiguta...';
|
||||
$labels['weeknonone'] = 'mitte kunagi';
|
||||
$labels['calendar'] = 'Kalender';
|
||||
$labels['calendars'] = 'Kalendrid';
|
||||
$labels['category'] = 'Kategooria';
|
||||
$labels['categories'] = 'Kategooriad';
|
||||
$labels['addcalendar'] = 'Lisa kalender';
|
||||
$labels['createcalendar'] = 'Loo uus kalender';
|
||||
$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['agenda'] = 'Ajakava';
|
||||
$labels['new'] = 'Uus';
|
||||
$labels['new_event'] = 'Uus sündmus';
|
||||
$labels['edit_event'] = 'Muuda sündmust';
|
||||
$labels['edit'] = 'Muuda';
|
||||
$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'] = 'Salvesta';
|
||||
$labels['removelist'] = 'Eemalda nimekirjast';
|
||||
$labels['cancel'] = 'Loobu';
|
||||
$labels['select'] = 'Vali';
|
||||
$labels['print'] = 'Prindi';
|
||||
$labels['printtitle'] = 'Prindi kalendrid';
|
||||
$labels['title'] = 'Kokkuvõte';
|
||||
$labels['description'] = 'Kirjeldus';
|
||||
$labels['all-day'] = 'kogu-päev';
|
||||
$labels['export'] = 'Ekspordi';
|
||||
$labels['exporttitle'] = 'Ekspordi iCalendar-isse';
|
||||
$labels['exportattachments'] = 'Manusega';
|
||||
$labels['location'] = 'Asukoht';
|
||||
$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'] = 'Kuupäev';
|
||||
$labels['start'] = 'Algus';
|
||||
$labels['starttime'] = 'Alustamise aeg';
|
||||
$labels['end'] = 'Lõpp';
|
||||
$labels['endtime'] = 'Lõpu aeg';
|
||||
$labels['repeat'] = 'Kordamine';
|
||||
$labels['selectdate'] = 'Vali kuupäev';
|
||||
$labels['freebusy'] = 'Näita mulle kui';
|
||||
$labels['free'] = 'Vaba';
|
||||
$labels['busy'] = 'Hõivatud';
|
||||
$labels['outofoffice'] = 'Pole kontoris';
|
||||
$labels['mystatus'] = 'Minu staatus';
|
||||
$labels['status'] = 'Staatus';
|
||||
$labels['status-confirmed'] = 'Kinnitatud';
|
||||
$labels['status-cancelled'] = 'Tühistatud';
|
||||
$labels['priority'] = 'Tähtsus';
|
||||
$labels['sensitivity'] = 'Privaatsus';
|
||||
$labels['public'] = 'avalik';
|
||||
$labels['private'] = 'privaatne';
|
||||
$labels['confidential'] = 'konfidentsiaalne';
|
||||
$labels['links'] = 'Viide';
|
||||
$labels['alarms'] = 'Meeldetuletus';
|
||||
$labels['comment'] = 'Kommenteeri';
|
||||
$labels['created'] = 'Loodud';
|
||||
$labels['changed'] = 'Viimati muudetud';
|
||||
$labels['unknown'] = 'Teadmata';
|
||||
$labels['eventoptions'] = 'Valikud';
|
||||
$labels['eventhistory'] = 'Ajalugu';
|
||||
$labels['printdescriptions'] = 'Prindi kirjeldused';
|
||||
$labels['parentcalendar'] = 'Sisesta';
|
||||
$labels['earlierevents'] = 'Varem';
|
||||
$labels['laterevents'] = 'Hiljem';
|
||||
$labels['andnmore'] = 'veel $nr ...';
|
||||
$labels['createfrommail'] = 'Salvesta sündmusena';
|
||||
$labels['importevents'] = 'Impordi sündmuseid';
|
||||
$labels['onemonthback'] = '1 kuu tagasi';
|
||||
$labels['nmonthsback'] = '$nr kuud tagasi';
|
||||
$labels['showurl'] = 'Näita kalendri URL-i';
|
||||
$labels['calsearchresults'] = 'Saadaolevad kalendrid';
|
||||
$labels['nocalendarsfound'] = 'Ühtegi kalendrit ei leitud';
|
||||
$labels['nrcalendarsfound'] = 'Leiti $nr kalendrit';
|
||||
$labels['quickview'] = 'Vaata ainult seda kalendrit';
|
||||
$labels['rsvpcomment'] = 'Kutse tekst';
|
||||
$labels['until'] = 'kuni';
|
||||
$labels['today'] = 'Täna';
|
||||
$labels['tomorrow'] = 'Homme';
|
||||
$labels['thisweek'] = 'See nädal';
|
||||
$labels['nextweek'] = 'Järgmine nädal';
|
||||
$labels['prevweek'] = 'Eelmine nädal';
|
||||
$labels['thismonth'] = 'Sellel kuul';
|
||||
$labels['nextmonth'] = 'Järgmisel kuul';
|
||||
$labels['weekofyear'] = 'NädalNädal';
|
||||
$labels['pastevents'] = 'Minevikus';
|
||||
$labels['futureevents'] = 'Tulevikus';
|
||||
$labels['showalarms'] = 'Näita meeldetuletusi';
|
||||
$labels['attendee'] = 'Osaleja';
|
||||
$labels['role'] = 'Roll';
|
||||
$labels['availability'] = 'Saadaval';
|
||||
$labels['confirmstate'] = 'Steatus';
|
||||
$labels['addattendee'] = 'Lisa osaleja';
|
||||
$labels['roleorganizer'] = 'Organiseerija';
|
||||
$labels['rolerequired'] = 'Nõutud';
|
||||
$labels['roleoptional'] = 'Valikuline';
|
||||
$labels['cutypegroup'] = 'Grupp';
|
||||
$labels['cutyperesource'] = 'Ressurss';
|
||||
$labels['cutyperoom'] = 'Ruum';
|
||||
$labels['availfree'] = 'Vaba';
|
||||
$labels['availbusy'] = 'Hõivatud';
|
||||
$labels['availunknown'] = 'Teadmata';
|
||||
$labels['availoutofoffice'] = 'Pole kontoris';
|
||||
$labels['sendinvitations'] = 'Saada kutsed';
|
||||
$labels['prevslot'] = 'Eelmine koht';
|
||||
$labels['nextslot'] = 'Järgmine koht';
|
||||
$labels['suggestedslot'] = 'Soovitatud koht';
|
||||
$labels['updatemycopy'] = 'Uuenda minu kalendrid';
|
||||
$labels['savetocalendar'] = 'Salvesta kalendrisse';
|
||||
$labels['openpreview'] = 'Kontrolli kalendrit';
|
||||
$labels['legend'] = 'Märgistus';
|
||||
$labels['resource'] = 'Ressurss';
|
||||
$labels['resourcedetails'] = 'Üksikasjad';
|
||||
$labels['resourceavailability'] = 'Saadavus';
|
||||
$labels['resourceowner'] = 'Omanik';
|
||||
$labels['tabsummary'] = 'Kokkuvõte';
|
||||
$labels['tabrecurrence'] = 'Kordumine';
|
||||
$labels['tabattendees'] = 'Osalejad';
|
||||
$labels['tabresources'] = 'Ressursid';
|
||||
$labels['tabattachments'] = 'Manused';
|
||||
$labels['tabsharing'] = 'Jagamine';
|
||||
$labels['deleteobjectconfirm'] = 'Kas sa tõesti soovid seda sündmust kustutada?';
|
||||
$labels['deleteventconfirm'] = 'Kas sa tõesti soovid seda sündmust kustutada?';
|
||||
$labels['savingdata'] = 'Andmete salvestamine...';
|
||||
$labels['errorsaving'] = 'Muudatuste salvestamine ebaõnnestus.';
|
||||
$labels['errorimportingevent'] = 'Sündmuse importimine ebaõnnestus';
|
||||
$labels['nowritecalendarfound'] = 'Ei leitud ühtegi kalendrit kuhu sündmusi salvestada';
|
||||
$labels['itipinvalidrequest'] = 'See kutse ei kehti enam';
|
||||
$labels['importerror'] = 'Importimisel tekkis tõrge';
|
||||
$labels['changeeventconfirm'] = 'Muuda sündmust';
|
||||
$labels['removeeventconfirm'] = 'Kustuta sündmus';
|
||||
$labels['currentevent'] = 'Praegune';
|
||||
$labels['futurevents'] = 'TulevikusTulevane';
|
||||
$labels['allevents'] = 'Kõik';
|
||||
$labels['saveasnew'] = 'Salvesta uuena';
|
||||
$labels['birthdays'] = 'Sünnipäevad';
|
||||
$labels['birthdayscalendar'] = 'Sünnipäevade kalender';
|
||||
$labels['objectchangelog'] = 'Muuda ajalugu';
|
||||
$labels['objectdiff'] = 'Muudatused versioonide $rev1 ja $rev2 vahel';
|
||||
$labels['arialabelcalendarview'] = 'Kalendri vaade';
|
||||
$labels['calendaractions'] = 'Kalendri toimingud';
|
||||
$labels['calendarprops'] = 'Kalendri omadused';
|
||||
$labels['arialabelresourceselection'] = 'Saadaolevad ressursid';
|
||||
$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';
|
||||
$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'] = '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';
|
||||
?>
|
||||
|
|
|
@ -25,18 +25,12 @@ $labels['afterflagdeleted'] = 'Merkitse poistettavaksi';
|
|||
$labels['aftermoveto'] = 'Siirrä...';
|
||||
$labels['itipoptions'] = 'Tapahtuman kutsut';
|
||||
$labels['afteraction'] = 'Kun kutsu tai päivitysviesti on käsitelty';
|
||||
$labels['showweekno'] = 'Näytä viikkonumerot';
|
||||
$labels['weeknonone'] = 'ei koskaan';
|
||||
$labels['weeknodatepicker'] = 'vain päivävalitsimessa';
|
||||
$labels['weeknoall'] = 'päivävalitsimessa ja kalenterinäkymässä';
|
||||
$labels['calendar'] = 'Kalenteri';
|
||||
$labels['calendars'] = 'Kalenterit';
|
||||
$labels['category'] = 'Luokka';
|
||||
$labels['categories'] = 'Luokat';
|
||||
$labels['addcalendar'] = 'Lisää kalenteri';
|
||||
$labels['createcalendar'] = 'Luo uusi kalenteri';
|
||||
$labels['editcalendar'] = 'Muokkaa tai jaa kalenteri';
|
||||
$labels['deletecalendar'] = 'Poista kalenteri';
|
||||
$labels['editcalendar'] = 'Muokkaa kalenterin ominaisuuksia';
|
||||
$labels['name'] = 'Nimi';
|
||||
$labels['color'] = 'Väri';
|
||||
$labels['day'] = 'Päivä';
|
||||
|
@ -79,7 +73,6 @@ $labels['mystatus'] = 'Tilani';
|
|||
$labels['status'] = 'Tila';
|
||||
$labels['status-confirmed'] = 'Vahvistettu';
|
||||
$labels['status-cancelled'] = 'Peruttu';
|
||||
$labels['status-tentative'] = 'Alustava';
|
||||
$labels['priority'] = 'Tärkeys';
|
||||
$labels['sensitivity'] = 'Yksityisyys';
|
||||
$labels['public'] = 'julkinen';
|
||||
|
@ -99,8 +92,6 @@ $labels['printdescriptions'] = 'Tulosta kuvaukset';
|
|||
$labels['parentcalendar'] = 'Aseta sisään';
|
||||
$labels['searchearlierdates'] = '« Etsi aiempia tapahtumia';
|
||||
$labels['searchlaterdates'] = 'Etsi myöhempiä tapahtumia »';
|
||||
$labels['earlierevents'] = 'Aiemmin';
|
||||
$labels['laterevents'] = 'Myöhemmin';
|
||||
$labels['andnmore'] = '$nr lisää...';
|
||||
$labels['togglerole'] = 'Klikkaa vaihtaaksesi rooli';
|
||||
$labels['createfrommail'] = 'Tallenna tapahtumana';
|
||||
|
@ -113,7 +104,6 @@ $labels['showurldescription'] = 'Käytä seuraavia osoitteita avataksesi kalente
|
|||
$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['findevents'] = 'Etsi tapahtumia';
|
||||
$labels['calsearchresults'] = 'Saatavilla olevat kalenterit';
|
||||
$labels['calendarsubscribe'] = 'Luetteloi pysyvästi';
|
||||
$labels['nocalendarsfound'] = 'Kalentereita ei löytynyt';
|
||||
|
@ -123,7 +113,6 @@ $labels['invitationspending'] = 'Odottavat kutsut';
|
|||
$labels['invitationsdeclined'] = 'Torjutut kutsut';
|
||||
$labels['changepartstat'] = 'Muuta osallistujan tilaa';
|
||||
$labels['rsvpcomment'] = 'Kutsuteksti';
|
||||
$labels['weekshort'] = 'Vko';
|
||||
$labels['listrange'] = 'Näytettävä aikaväli';
|
||||
$labels['listsections'] = 'Jaa osiin:';
|
||||
$labels['smartsections'] = 'Älykkäät osiot';
|
||||
|
@ -160,6 +149,8 @@ $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';
|
||||
|
@ -171,6 +162,7 @@ $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';
|
||||
|
@ -201,7 +193,6 @@ $labels['addresource'] = 'Varaa resurssi';
|
|||
$labels['findresources'] = 'Etsi resursseja';
|
||||
$labels['resourcedetails'] = 'Tiedot';
|
||||
$labels['resourceavailability'] = 'Saatavuus';
|
||||
$labels['resourceprops'] = 'Resurssin ominaisuudet';
|
||||
$labels['resourceowner'] = 'Omistaja';
|
||||
$labels['resourceadded'] = 'Resurssi on liitetty tapahtumaasi';
|
||||
$labels['tabsummary'] = 'Yhteenveto';
|
||||
|
@ -218,7 +209,6 @@ $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['emptyeventtitle'] = 'Tapahtuman yhteenveto ei voi olla tyhjä.';
|
||||
$labels['invalidcalendarproperties'] = 'Kalenterin ominaisuudet ovat virheelliset. Aseta kelvollinen nimi.';
|
||||
$labels['searchnoresults'] = 'Valituista kalentereista ei löytynyt tapahtumia.';
|
||||
$labels['successremoval'] = 'Tapahtuma on poistettu onnistuneesti.';
|
||||
|
@ -231,7 +221,6 @@ $labels['nowritecalendarfound'] = 'Tapahtuman tallentamiseksi ei löytynyt kalen
|
|||
$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['errorunknownattendee'] = 'Osallistujatietojen löytäminen epäonnistui.';
|
||||
$labels['itipsendsuccess'] = 'Kutsu lähetetty osallistujille.';
|
||||
$labels['itipresponseerror'] = 'Vastauksen lähettäminen tapahtumakutsuun epäonnistui';
|
||||
$labels['itipinvalidrequest'] = 'Kutsu ei ole enää kelvollinen';
|
||||
|
@ -241,7 +230,6 @@ $labels['importsuccess'] = '$nr tapahtumaa tuotiin onnistuneesti';
|
|||
$labels['importnone'] = 'Tuotavaksi tarkoitettuja tapahtumia ei löytynyt';
|
||||
$labels['importerror'] = 'Tuotaessa tapahtui virhe';
|
||||
$labels['aclnorights'] = 'Sinulla ei ole ylläpitäjän oikeuksia tähän kalenteriin.';
|
||||
$labels['importtext'] = 'Voit lähettää tapahtumia <a href="https://wikipedia.org/wiki/ICalendar">iCalendar</a>-muodossa (.ics).';
|
||||
$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? ';
|
||||
|
@ -271,10 +259,8 @@ $labels['arialabelsearchform'] = 'Tapahtumahaun lomake';
|
|||
$labels['arialabelquicksearchbox'] = 'Tapatumahaun syöte';
|
||||
$labels['arialabelcalsearchform'] = 'Kalenterihakujen lomake';
|
||||
$labels['calendaractions'] = 'Kalenterin toiminnot';
|
||||
$labels['calendarprops'] = 'Kalenterin ominaisuudet';
|
||||
$labels['arialabeleventattendees'] = 'Tapahtuman osallistujalista';
|
||||
$labels['arialabeleventresources'] = 'Tapahtuman resurssilista';
|
||||
$labels['arialabelresourcesearchform'] = 'Resurssien hakulomake';
|
||||
$labels['arialabelresourceselection'] = 'Saatavilla olevat resurssit';
|
||||
$labels['arialabeleventform'] = 'Tapahtuman muokkauslomake';
|
||||
?>
|
||||
|
|
|
@ -14,9 +14,9 @@ $labels['first_hour'] = 'Première heure à afficher';
|
|||
$labels['workinghours'] = 'Heures de travail';
|
||||
$labels['add_category'] = 'Ajouter une catégorie';
|
||||
$labels['remove_category'] = 'Supprimer une catégorie';
|
||||
$labels['defaultcalendar'] = 'Ajouter un nouvel événement';
|
||||
$labels['eventcoloring'] = 'Couleurs des événements';
|
||||
$labels['coloringmode0'] = 'Selon le calendrier';
|
||||
$labels['defaultcalendar'] = 'Ajouter un nouvel évènement';
|
||||
$labels['eventcoloring'] = 'Couleurs des évènements';
|
||||
$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';
|
||||
|
@ -25,14 +25,14 @@ $labels['aftertrash'] = 'Déplacer dans la corbeille';
|
|||
$labels['afterdelete'] = 'Supprimer ce message';
|
||||
$labels['afterflagdeleted'] = 'Marquer comme supprimer';
|
||||
$labels['aftermoveto'] = 'Déplacer vers...';
|
||||
$labels['itipoptions'] = 'Invitations à l\'événement';
|
||||
$labels['itipoptions'] = 'Invitations à l\'évenement';
|
||||
$labels['afteraction'] = 'Après une invitation ou une modification, le message est traité';
|
||||
$labels['weeknonone'] = 'jamais';
|
||||
$labels['calendar'] = 'Calendrier';
|
||||
$labels['calendars'] = 'Calendriers';
|
||||
$labels['calendar'] = 'Agenda';
|
||||
$labels['calendars'] = 'Agendas';
|
||||
$labels['category'] = 'Catégorie';
|
||||
$labels['categories'] = 'Catégories';
|
||||
$labels['createcalendar'] = 'Créer un nouveau calendrier';
|
||||
$labels['createcalendar'] = 'Créer un nouvel agenda';
|
||||
$labels['editcalendar'] = 'Modifier les propriétés de l\'agenda';
|
||||
$labels['name'] = 'Nom';
|
||||
$labels['color'] = 'Couleur';
|
||||
$labels['day'] = 'Jour';
|
||||
|
@ -40,42 +40,41 @@ $labels['week'] = 'Semaine';
|
|||
$labels['month'] = 'Mois';
|
||||
$labels['agenda'] = 'Ordre du jour';
|
||||
$labels['new'] = 'Nouveau';
|
||||
$labels['new_event'] = 'Nouvel événement';
|
||||
$labels['edit_event'] = 'Modifier l\'événement';
|
||||
$labels['new_event'] = 'Nouvel évènement';
|
||||
$labels['edit_event'] = 'Modifier l\'évènement';
|
||||
$labels['edit'] = 'Modifier';
|
||||
$labels['save'] = 'Enregistrer';
|
||||
$labels['removelist'] = 'Supprimer de la liste';
|
||||
$labels['removelist'] = 'supprimer de la liste';
|
||||
$labels['cancel'] = 'Annuler';
|
||||
$labels['select'] = 'Sélectionner';
|
||||
$labels['print'] = 'Imprimer';
|
||||
$labels['printtitle'] = 'Imprimer les calendriers';
|
||||
$labels['printtitle'] = 'Imprimer les agendas';
|
||||
$labels['title'] = 'Résumé';
|
||||
$labels['description'] = 'Description';
|
||||
$labels['all-day'] = 'toute la journée';
|
||||
$labels['all-day'] = 'Toute la journée';
|
||||
$labels['export'] = 'Exporter';
|
||||
$labels['exporttitle'] = 'Exporter vers iCalendar';
|
||||
$labels['exportrange'] = 'Événements depuis';
|
||||
$labels['exportattachments'] = 'Avec pièces jointes';
|
||||
$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'] = 'Heure de début';
|
||||
$labels['starttime'] = 'Début';
|
||||
$labels['end'] = 'Fin';
|
||||
$labels['endtime'] = 'Heure de fin';
|
||||
$labels['endtime'] = 'Fin';
|
||||
$labels['repeat'] = 'Répéter';
|
||||
$labels['selectdate'] = 'Sélectionner une date';
|
||||
$labels['freebusy'] = 'Montrez-moi en tant que';
|
||||
$labels['freebusy'] = 'Montrez moi comme';
|
||||
$labels['free'] = 'Libre';
|
||||
$labels['busy'] = 'Occupé';
|
||||
$labels['outofoffice'] = 'Absent';
|
||||
$labels['tentative'] = 'Provisoire';
|
||||
$labels['mystatus'] = 'Mon statut';
|
||||
$labels['mystatus'] = 'Mon status';
|
||||
$labels['status'] = 'Statut';
|
||||
$labels['status-confirmed'] = 'Confirmé';
|
||||
$labels['status-cancelled'] = 'Annulé';
|
||||
$labels['status-tentative'] = 'Provisoire';
|
||||
$labels['status-cancelled'] = 'Annulée';
|
||||
$labels['priority'] = 'Priorité';
|
||||
$labels['sensitivity'] = 'Diffusion';
|
||||
$labels['public'] = 'publique';
|
||||
|
@ -84,7 +83,7 @@ $labels['confidential'] = 'Confidentiel';
|
|||
$labels['links'] = 'Référence';
|
||||
$labels['alarms'] = 'Rappel';
|
||||
$labels['comment'] = 'Commentaire';
|
||||
$labels['created'] = 'Créé';
|
||||
$labels['created'] = 'Créée';
|
||||
$labels['changed'] = 'Dernière modification';
|
||||
$labels['unknown'] = 'Inconnu';
|
||||
$labels['eventoptions'] = 'Options';
|
||||
|
@ -93,40 +92,39 @@ $labels['eventhistory'] = 'Historique';
|
|||
$labels['removelink'] = 'Enlever référence d\'e-mail';
|
||||
$labels['printdescriptions'] = 'Imprimer les descriptions';
|
||||
$labels['parentcalendar'] = 'Ajouter à l\'intérieur';
|
||||
$labels['searchearlierdates'] = '« Chercher des événements plus anciens';
|
||||
$labels['searchlaterdates'] = 'Chercher des événement plus récents »';
|
||||
$labels['laterevents'] = 'Plus tard';
|
||||
$labels['searchearlierdates'] = '« Chercher des évènements plus ancien';
|
||||
$labels['searchlaterdates'] = 'Chercher des évènement plus récent »';
|
||||
$labels['andnmore'] = '$nr de plus...';
|
||||
$labels['togglerole'] = 'Cliquez pour changer de rôle';
|
||||
$labels['createfrommail'] = 'Enregistrer comme un événement';
|
||||
$labels['importevents'] = 'Importer des événements';
|
||||
$labels['importrange'] = 'Événements depuis';
|
||||
$labels['onemonthback'] = '1 mois auparavant';
|
||||
$labels['createfrommail'] = 'Enregistrer comme un évènement';
|
||||
$labels['importevents'] = 'Importer des évènements';
|
||||
$labels['importrange'] = 'Évènements depuis';
|
||||
$labels['onemonthback'] = '1 mois précédent';
|
||||
$labels['nmonthsback'] = '$nr mois précédents';
|
||||
$labels['showurl'] = 'Afficher l\'URL du calendrier';
|
||||
$labels['showurldescription'] = 'Utilisez l\'adresse suivante pour accéder (lecture seule) à votre calendrier depuis d\'autres applications. Vous pouvez copier/coller celle-ci dans n\'importe quel calendrier électronique gérant le format iCal.';
|
||||
$labels['caldavurldescription'] = 'Copiez cette adresse vers une application client (comme Evolution ou Mozilla Thunderbird) compatible <a href="http://fr.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a> pour synchroniser pleinement ce calendrier avec votre ordinateur ou votre smartphone.';
|
||||
$labels['showurl'] = 'Afficher l\'URL de l\'agenda';
|
||||
$labels['showurldescription'] = 'Utilisez l\'adresse suivante pour accéder(lecture seule) à votre agenda depuis une autre application. Vous pouvez copier/coller celle-ci dans n\'importe quel agenda électronique gérant le format iCal.';
|
||||
$labels['caldavurldescription'] = 'Copiez cette adresse vers une application client (comme Evolution ou Mozilla Thunderbird) compatible <a href="http://fr.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a> pour synchroniser ce calendrier avec votre ordinateur ou votre smartphone.';
|
||||
$labels['findcalendars'] = 'Recherche de calendriers...';
|
||||
$labels['searchterms'] = 'Critères de recherche';
|
||||
$labels['calsearchresults'] = 'Calendriers disponibles';
|
||||
$labels['calendarsubscribe'] = 'Lister définitivement';
|
||||
$labels['nocalendarsfound'] = 'Aucun calendrier trouvé';
|
||||
$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 participant';
|
||||
$labels['changepartstat'] = 'Changer le statut du participent';
|
||||
$labels['rsvpcomment'] = 'Texte d\'invitation';
|
||||
$labels['listrange'] = 'Intervalle à afficher :';
|
||||
$labels['listsections'] = 'Diviser en :';
|
||||
$labels['smartsections'] = 'Sections intelligentes';
|
||||
$labels['smartsections'] = 'Section intelligente';
|
||||
$labels['until'] = 'jusqu\'à';
|
||||
$labels['today'] = 'Aujourd\'hui';
|
||||
$labels['tomorrow'] = 'Demain';
|
||||
$labels['thisweek'] = 'Cette semaine';
|
||||
$labels['nextweek'] = 'Semaine prochaine';
|
||||
$labels['prevweek'] = 'Semaine précédente';
|
||||
$labels['thismonth'] = 'Ce mois-ci';
|
||||
$labels['thismonth'] = 'Ce mois';
|
||||
$labels['nextmonth'] = 'Mois prochain';
|
||||
$labels['weekofyear'] = 'Semaine';
|
||||
$labels['pastevents'] = 'Passé';
|
||||
|
@ -141,10 +139,10 @@ $labels['confirmstate'] = 'Statut';
|
|||
$labels['addattendee'] = 'Ajouter participant';
|
||||
$labels['roleorganizer'] = 'Organisateur';
|
||||
$labels['rolerequired'] = 'Requis';
|
||||
$labels['roleoptional'] = 'Optionnel';
|
||||
$labels['rolechair'] = 'Présidence';
|
||||
$labels['roleoptional'] = 'Optionel';
|
||||
$labels['rolechair'] = 'Chair';
|
||||
$labels['rolenonparticipant'] = 'Absent';
|
||||
$labels['cutypeindividual'] = 'Individuel';
|
||||
$labels['cutypeindividual'] = 'Individual';
|
||||
$labels['cutypegroup'] = 'Groupe';
|
||||
$labels['cutyperesource'] = 'Ressource';
|
||||
$labels['cutyperoom'] = 'Salle';
|
||||
|
@ -153,115 +151,117 @@ $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';
|
||||
$labels['sendcancellation'] = 'Informer les participants de l\'annulation';
|
||||
$labels['onlyworkinghours'] = 'Trouver des disponibilités en fonction de mes heures de travail';
|
||||
$labels['reqallattendees'] = 'Demandé/tous les participants';
|
||||
$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 été invité à "$title"';
|
||||
$labels['invitationattendlinks'] = "Dans le cas où votre application de messagerie ne gère pas les demandes \"iTip\", vous pouvez utiliser ce lien pour accepter ou refuser l'invitation : \n\$url";
|
||||
$labels['invitationmailbody'] = "*\$title*\n\nQuand: \$date\n\nParticipants: \$attendees\n\nVous trouverez ci-joint un fichier iCalendar avec tous les détails de l'évènement que vous pourrez importer dans votre 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\nQuand: \$date\n\nParticipants: \$attendees\n\nVous trouverez ci-joint un fichier iCalendar avec toutes les modifications à l'événement que vous pourrez importer dans votre calendrier électronique.";
|
||||
$labels['eventcancelsubject'] = '"$title" a été annulé';
|
||||
$labels['eventcancelmailbody'] = "*\$title*\n\nQuand: \$date\n\nParticipants: \$attendees\n\nL'événement a été annulé par \$organizer.\n\nVous trouverez en pièce jointe un fichier iCalendar avec les modifications de l'événement que vous pourrez importer dans votre calendrier électronique.";
|
||||
$labels['itipobjectnotfound'] = 'L\'événement lié à ce message n\'a pas été trouvé dans votre calendrier.';
|
||||
$labels['itipmailbodyaccepted'] = "\$sender a accepté l'invitation à l'événement suivant :\n\n*\$title*\n\nQuand: \$date\n\nParticipants: \$attendees";
|
||||
$labels['itipmailbodytentative'] = "\$sender a accepté provisoirement l'invitation à l'événement suivant :\n\n*\$title*\n\nQuand: \$date\n\nParticipants: \$attendees";
|
||||
$labels['itipmailbodydeclined'] = "\$sender a refusé l'invitation à l'événement suivant :\n\n*\$title*\n\nQuand: \$date\n\nParticipants: \$attendees";
|
||||
$labels['itipmailbodycancel'] = "\$sender a rejeté votre participation à l’événement suivant :\n\n*\$title*\n\nLe: \$date";
|
||||
$labels['eventupdatesubjectempty'] = 'Un évènement vous concernant a été modifié';
|
||||
$labels['eventupdatemailbody'] = "*\$title*\n\nQuand: \$date\n\nParticipants: \$attendees\n\nVous trouverez ci-joint un fichier iCalendar avec tous les modifications de l'évènement que vous pourrez importer dans votre agenda électronique.";
|
||||
$labels['eventcancelmailbody'] = "*\$title*\n\nQuand: \$date\n\nParticipants: \$attendees\n\nL'évènement a été annulé par \$organizer.\n\nVous trouverez en pièce jointe un fichier iCalendar avec les modifications de l'évènement que vous pourrez importer dans votre agenda électronique.";
|
||||
$labels['itipobjectnotfound'] = 'L\'évènement lié à ce message n\'a pas été trouvé dans votre calendrier.';
|
||||
$labels['itipmailbodyaccepted'] = "\$sender a accepté l'invitation à l'évènement suivant :\n\n*\$title*\n\nQuand: \$date\n\nParticipants: \$attendees";
|
||||
$labels['itipmailbodytentative'] = "\$sender a accepté provisoirement l'invitation à l'évènement suivant :\n\n*\$title*\n\nQuand: \$date\n\nParticipants: \$attendees";
|
||||
$labels['itipmailbodydeclined'] = "\$sender a refusé l'invitation à l'évènement suivant :\n\n*\$title*\n\nQuand: \$date\n\nParticipants: \$attendees";
|
||||
$labels['itipmailbodycancel'] = "\$sender a rejeté votre participation à l’évènement suivant :\n\n*\$title*\n\nLe: \$date";
|
||||
$labels['itipmailbodydelegated'] = "\$sender a délégué la participation à l'événement suivant : \n\n*\$title*\n\nQuand: \$date";
|
||||
$labels['itipmailbodydelegatedto'] = "\$sender vous a délégué la participation à l'événement suivant : \n\n*\$title*\n\nQuand : \$date";
|
||||
$labels['itipdeclineevent'] = 'Voulez-vous refuser l\'invitation à cet événement?';
|
||||
$labels['declinedeleteconfirm'] = 'Voulez-vous aussi supprimer cet événement annulé de votre calendrier ?';
|
||||
$labels['itipdeclineevent'] = 'Voulez-vous refuser l\'invitation à cet évènement?';
|
||||
$labels['declinedeleteconfirm'] = 'Voulez-vous aussi supprimer cet évènement annulé, de votre calendrier ?';
|
||||
$labels['itipcomment'] = 'Commentaire 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';
|
||||
$labels['notanattendee'] = 'Vous n\'êtes pas dans la liste des participants à cet évènement';
|
||||
$labels['eventcancelled'] = 'L\'évènement a été annulé';
|
||||
$labels['saveincalendar'] = 'Enregistrer sous';
|
||||
$labels['updatemycopy'] = 'Mise à jour dans mon calendrier';
|
||||
$labels['savetocalendar'] = 'Sauvegarde dans le calendrier';
|
||||
$labels['openpreview'] = 'Consulter le calendrier';
|
||||
$labels['noearlierevents'] = 'Aucun événement passé';
|
||||
$labels['nolaterevents'] = 'Aucun événement futur';
|
||||
$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ée à l\'événement';
|
||||
$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';
|
||||
$labels['deleteobjectconfirm'] = 'Voulez-vous vraiment supprimer cet événement?';
|
||||
$labels['deleteventconfirm'] = 'Voulez-vous vraiment supprimer cet événement?';
|
||||
$labels['deletecalendarconfirm'] = 'Voulez-vous vraiment supprimer ce calendrier et tous ses événements?';
|
||||
$labels['deletecalendarconfirmrecursive'] = 'Voulez-vous vraiment supprimer ce calendrier avec tous ses événements et ses sous-calendriers ?';
|
||||
$labels['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é';
|
||||
$labels['invalideventdates'] = 'Dates invalides ! Veuillez vérifier votre saisie.';
|
||||
$labels['invalidcalendarproperties'] = 'Propriétés du calendrier invalides ! Veuillez saisir un nom valide.';
|
||||
$labels['searchnoresults'] = 'Pas d\'événement trouvé dans les calendriers sélectionnés.';
|
||||
$labels['successremoval'] = 'L\'événement a été supprimé.';
|
||||
$labels['successrestore'] = 'L\'événement a été restauré.';
|
||||
$labels['errornotifying'] = 'Échec de l\'envoi de notifications aux participants ';
|
||||
$labels['errorimportingevent'] = 'Échec de l\'import de l\'événement';
|
||||
$labels['importwarningexists'] = 'Une copie de cet événement existe déjà dans votre calendrier.';
|
||||
$labels['newerversionexists'] = 'Une nouvelle version de cet événement existe ! Abandon.';
|
||||
$labels['nowritecalendarfound'] = 'Pas de calendrier trouvé pour enregistrer l\'événement';
|
||||
$labels['importedsuccessfully'] = 'L\'événement a été ajouté à l\'agenda \'$calendar\'';
|
||||
$labels['updatedsuccessfully'] = 'Cet événement a été modifié avec succès dans \'$calendar\'';
|
||||
$labels['invalideventdates'] = 'Dates invalides! Veuillez vérifier votre saisie.';
|
||||
$labels['invalidcalendarproperties'] = 'Propriétés d\'agenda invalides! Veuillez saisir un nom valide.';
|
||||
$labels['searchnoresults'] = 'Pas d\'évènement trouvé dans les agendas sélectionnés.';
|
||||
$labels['successremoval'] = 'L\'évènement a été supprimé.';
|
||||
$labels['successrestore'] = 'L\'évènement a été restauré.';
|
||||
$labels['errornotifying'] = 'Échec de l\'envoi de notification aux participants ';
|
||||
$labels['errorimportingevent'] = 'Échec de l\'import de l\'évènement';
|
||||
$labels['importwarningexists'] = 'Une copie de cet évènement existe déjà dans votre calendrier.';
|
||||
$labels['newerversionexists'] = 'Une nouvelle version de cet évènement existe! Abandon.';
|
||||
$labels['nowritecalendarfound'] = 'Pas d\'agenda trouvé pour enregistrer l\'évènement';
|
||||
$labels['importedsuccessfully'] = 'L\'évènement a été ajouté à l\'agenda \'$calendar\'';
|
||||
$labels['updatedsuccessfully'] = 'Cet évènement a été modifié avec succès dans \'$calendar\'';
|
||||
$labels['attendeupdateesuccess'] = 'Le statut des participants a été modifié';
|
||||
$labels['itipsendsuccess'] = 'Invitation envoyée aux participants.';
|
||||
$labels['itipresponseerror'] = 'Échec de l\'envoi d\'une réponse à cette invitation';
|
||||
$labels['itipinvalidrequest'] = 'C\'est invitation n\'est plus valide';
|
||||
$labels['sentresponseto'] = 'La réponse à l\'invitation a été envoyée à $mailto';
|
||||
$labels['localchangeswarning'] = 'Vous êtes sur le point d\'effectuer des modifications qui seront effectives dans votre calendrier mais qui ne seront pas envoyées à l\'organisateur de l’événement.';
|
||||
$labels['importsuccess'] = '$nr événements importés.';
|
||||
$labels['importnone'] = 'Pas d\'événement à importer';
|
||||
$labels['importerror'] = 'Une erreur s\'est produite lors de l\'importation';
|
||||
$labels['aclnorights'] = 'Vous ne disposez pas des droits d\'administrateur sur ce calendrier.';
|
||||
$labels['changeeventconfirm'] = 'Modifier l\'événement';
|
||||
$labels['removeeventconfirm'] = 'Supprimer l\'événement';
|
||||
$labels['changerecurringeventwarning'] = 'Ceci est un événement récurrent. Voulez-vous éditer seulement cette occurrence, celle-ci et toutes les suivantes, toutes les occurrences ou l\'enregistrer comme un nouvel événement ? ';
|
||||
$labels['removerecurringeventwarning'] = 'Ceci est un événement récurrent. Voulez-vous supprimer l\'événement courant uniquement, l’événement courant et toutes les occurrences futures, ou toutes les occurrences ?';
|
||||
$labels['removerecurringallonly'] = 'Ceci est un événement récurrent. En tant que participant, vous pouvez seulement supprimer l\'événement entier avec toutes les occurrences.';
|
||||
$labels['itipsendsuccess'] = 'Invitation envoyé aux participants.';
|
||||
$labels['itipresponseerror'] = 'Échec de l\'envoi d\'une réponse à cette invitation.';
|
||||
$labels['itipinvalidrequest'] = 'C\'est invitation n\'est plus valide.';
|
||||
$labels['sentresponseto'] = 'La réponse à l\'invitation a été envoyé à $mailto';
|
||||
$labels['localchangeswarning'] = 'Vous êtes sur le point d\'effectuer des modifications qui seront effectifs sur votre calendrier mais qui ne seront pas envoyés à l\'organisateur de l’évènement.';
|
||||
$labels['importsuccess'] = '$nr évènements importés.';
|
||||
$labels['importnone'] = 'Pas d\'évènements à importer';
|
||||
$labels['importerror'] = 'Une erreur est arrivée lors de l\'import';
|
||||
$labels['aclnorights'] = 'Vous n\'avez pas les droits d\'administration sur cet agenda.';
|
||||
$labels['changeeventconfirm'] = 'Modifier l\'évènement';
|
||||
$labels['removeeventconfirm'] = 'Supprimer l\'évènement';
|
||||
$labels['changerecurringeventwarning'] = 'Ceci est un évènement récurant. Voulez vous éditer seulement cette occurrence, celle-ci et toutes les suivantes, toutes les occurrences ou l\'enregistrer comme un nouvel évènement? ';
|
||||
$labels['removerecurringeventwarning'] = 'Ceci est un évènement récurent. Voulez-vous supprimer l\'évènement courant uniquement, l’évènement courant et toutes les occurrences futures, ou toutes les occurrences ?';
|
||||
$labels['removerecurringallonly'] = 'Ceci est un évènement récurent. En tant que participant vous pouvez seulement supprimer l\'évènement entier avec toutes les occurrences.';
|
||||
$labels['currentevent'] = 'Cette occurrence';
|
||||
$labels['futurevents'] = 'Cette occurrence et toutes les suivantes';
|
||||
$labels['allevents'] = 'Toutes les occurrences';
|
||||
$labels['saveasnew'] = 'Enregistrer comme un nouvel événement';
|
||||
$labels['saveasnew'] = 'Enregistrer comme un nouvel évènement';
|
||||
$labels['birthdays'] = 'Anniversaires';
|
||||
$labels['birthdayscalendar'] = 'Calendrier des anniversaires';
|
||||
$labels['displaybirthdayscalendar'] = 'Afficher le calendrier des anniversaires';
|
||||
$labels['birthdayscalendarsources'] = 'Depuis ces carnets d\'adresses';
|
||||
$labels['birthdayeventtitle'] = 'Anniversaire de $name';
|
||||
$labels['birthdayage'] = 'Âge $age';
|
||||
$labels['birthdayage'] = 'Age $age';
|
||||
$labels['objectchangelog'] = 'Historique des modifications';
|
||||
$labels['objectdiff'] = 'Modifications de $rev1 à $rev2';
|
||||
$labels['objectnotfound'] = 'Impossible de charger les données de l’événement';
|
||||
$labels['objectchangelognotavailable'] = 'Il n\'y a pas d\'historique des modifications pour cet événement';
|
||||
$labels['objectdiff'] = 'Modifications depuis $rev1 jusqu\'à $rev2';
|
||||
$labels['objectnotfound'] = 'Impossible de charger les données de l’évènement';
|
||||
$labels['objectchangelognotavailable'] = 'Il n\'y a pas d\'historique des modifications pour cet évènement';
|
||||
$labels['objectdiffnotavailable'] = 'La comparaison des versions sélectionnées est impossible';
|
||||
$labels['revisionrestoreconfirm'] = 'Voulez-vous vraiment restaurer le version $rev de cet événement ? Cette action va remplacer l\'événement actuel par l\'ancienne version.';
|
||||
$labels['revisionrestoreconfirm'] = 'Voulez-vous vraiment restaurer le version $rev de cet évènement ? Cette action va remplacer l\'évènement courant par l\'ancienne version.';
|
||||
$labels['objectrestoresuccess'] = 'La révision $rev a été restaurée avec succès';
|
||||
$labels['objectrestoreerror'] = 'Échec lors de la restauration de la précédente révision';
|
||||
$labels['arialabelminical'] = 'Sélection de la date du calendrier';
|
||||
$labels['arialabelcalendarview'] = 'Vue du calendrier';
|
||||
$labels['arialabelsearchform'] = 'Recherche d\'événements depuis';
|
||||
$labels['arialabelquicksearchbox'] = 'Saisie de le recherche d\'événements';
|
||||
$labels['arialabelsearchform'] = 'Recherche d\'évènements depuis';
|
||||
$labels['arialabelquicksearchbox'] = 'Saisie de le recherche d\'évènements';
|
||||
$labels['arialabelcalsearchform'] = 'Recherche de calendriers';
|
||||
$labels['calendaractions'] = 'Actions calendrier';
|
||||
$labels['arialabeleventattendees'] = 'Liste des participants à l\'événement';
|
||||
$labels['arialabeleventresources'] = 'Liste des ressources de l\'événement';
|
||||
$labels['arialabelresourcesearchform'] = 'Formulaire de recherche des ressources';
|
||||
$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,24 +0,0 @@
|
|||
<?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['time_format'] = 'Format datuma';
|
||||
$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['calendar'] = 'Kalendar';
|
||||
$labels['calendars'] = 'Kalendari';
|
||||
$labels['category'] = 'Kategorija';
|
||||
$labels['categories'] = 'Kategorije';
|
||||
$labels['status-tentative'] = 'Tentative';
|
||||
?>
|
|
@ -20,12 +20,12 @@ $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['weeknonone'] = 'soha';
|
||||
$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';
|
||||
|
@ -66,7 +66,6 @@ $labels['tentative'] = 'Feltételes';
|
|||
$labels['status'] = 'Stát.';
|
||||
$labels['status-confirmed'] = 'Confirmed';
|
||||
$labels['status-cancelled'] = 'Cancelled';
|
||||
$labels['status-tentative'] = 'Feltételes';
|
||||
$labels['priority'] = 'Prioritás';
|
||||
$labels['sensitivity'] = 'Manánszféra';
|
||||
$labels['public'] = 'publikus';
|
||||
|
@ -84,7 +83,6 @@ $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['laterevents'] = 'Későbbi';
|
||||
$labels['andnmore'] = 'még $nr ...';
|
||||
$labels['togglerole'] = 'Kattintson a szerepváltáshoz';
|
||||
$labels['createfrommail'] = 'Mentés naptári eseményként';
|
||||
|
@ -132,6 +130,8 @@ $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';
|
||||
|
@ -142,6 +142,7 @@ $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';
|
||||
|
|
|
@ -27,12 +27,12 @@ $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['weeknonone'] = 'una volta';
|
||||
$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';
|
||||
|
@ -75,7 +75,6 @@ $labels['mystatus'] = 'Il mio stato';
|
|||
$labels['status'] = 'Stato';
|
||||
$labels['status-confirmed'] = 'Confermato';
|
||||
$labels['status-cancelled'] = 'Cancellato';
|
||||
$labels['status-tentative'] = 'Provvisorio';
|
||||
$labels['priority'] = 'Priorità';
|
||||
$labels['sensitivity'] = 'Privacy';
|
||||
$labels['public'] = 'pubblico';
|
||||
|
@ -95,7 +94,6 @@ $labels['printdescriptions'] = 'Stampa descrizioni';
|
|||
$labels['parentcalendar'] = 'Inserisci dentro';
|
||||
$labels['searchearlierdates'] = '« Cerca eventi precedenti';
|
||||
$labels['searchlaterdates'] = 'Cerca eventi successivi »';
|
||||
$labels['laterevents'] = 'Dopo';
|
||||
$labels['andnmore'] = 'Altri $nr...';
|
||||
$labels['togglerole'] = 'Fare clic per cambiare il ruolo';
|
||||
$labels['createfrommail'] = 'Salva come evento';
|
||||
|
@ -153,6 +151,8 @@ $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';
|
||||
|
@ -164,6 +164,7 @@ $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';
|
||||
|
|
|
@ -27,12 +27,12 @@ $labels['afterflagdeleted'] = '削除フラグ';
|
|||
$labels['aftermoveto'] = '移動...';
|
||||
$labels['itipoptions'] = 'イベント招待';
|
||||
$labels['afteraction'] = '招待もしくは更新の後にメッセージは送達されます';
|
||||
$labels['weeknonone'] = '繰返さない';
|
||||
$labels['calendar'] = 'カレンダー';
|
||||
$labels['calendars'] = 'カレンダー';
|
||||
$labels['category'] = 'カテゴリ';
|
||||
$labels['categories'] = 'カテゴリ';
|
||||
$labels['createcalendar'] = '新しいカレンダーの作成';
|
||||
$labels['editcalendar'] = 'カレンダーのプロパティ編集';
|
||||
$labels['name'] = '名前';
|
||||
$labels['color'] = '色';
|
||||
$labels['day'] = '日';
|
||||
|
@ -75,7 +75,6 @@ $labels['mystatus'] = 'マイ ステータス';
|
|||
$labels['status'] = '状態';
|
||||
$labels['status-confirmed'] = '確認済';
|
||||
$labels['status-cancelled'] = 'キャンセル済';
|
||||
$labels['status-tentative'] = '仮';
|
||||
$labels['priority'] = '優先度';
|
||||
$labels['sensitivity'] = 'プライバシー';
|
||||
$labels['public'] = 'パブリック';
|
||||
|
@ -95,7 +94,6 @@ $labels['printdescriptions'] = '説明印刷';
|
|||
$labels['parentcalendar'] = '内に挿入';
|
||||
$labels['searchearlierdates'] = '<< 以前のイベントを検索';
|
||||
$labels['searchlaterdates'] = '今後のイベントの検索 >>';
|
||||
$labels['laterevents'] = '後で';
|
||||
$labels['andnmore'] = '$nr さらに…';
|
||||
$labels['togglerole'] = 'クリックでロールをトグル';
|
||||
$labels['createfrommail'] = 'イベントとして保存';
|
||||
|
@ -153,6 +151,8 @@ $labels['availbusy'] = 'ビジー';
|
|||
$labels['availunknown'] = '不明';
|
||||
$labels['availtentative'] = '仮';
|
||||
$labels['availoutofoffice'] = '外出';
|
||||
$labels['delegatedto'] = '委任先:';
|
||||
$labels['delegatedfrom'] = '委任元:';
|
||||
$labels['scheduletime'] = '利用可検索';
|
||||
$labels['sendinvitations'] = '招待を送る';
|
||||
$labels['sendnotifications'] = '変更を参加者へ通知する';
|
||||
|
@ -164,6 +164,7 @@ $labels['nextslot'] = '次のスロット';
|
|||
$labels['suggestedslot'] = '指示されたスロット';
|
||||
$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'] = 'あなたに関連するイベントが更新されました';
|
||||
|
|
|
@ -1,201 +0,0 @@
|
|||
<?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['calendar'] = '캘린더';
|
||||
$labels['calendars'] = '캘린더';
|
||||
$labels['category'] = '카테고리';
|
||||
$labels['categories'] = '카테고리';
|
||||
$labels['createcalendar'] = '새 캘린더 추가';
|
||||
$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['exportattachments'] = '첨부됨';
|
||||
$labels['location'] = '위치';
|
||||
$labels['url'] = 'URL';
|
||||
$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['status-tentative'] = '임시';
|
||||
$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['generated'] = '생성된';
|
||||
$labels['eventhistory'] = '이력';
|
||||
$labels['printdescriptions'] = '내용 출력';
|
||||
$labels['searchearlierdates'] = '이전 일정 검색';
|
||||
$labels['searchlaterdates'] = '이후 일정 검색';
|
||||
$labels['andnmore'] = '$nr 더...';
|
||||
$labels['createfrommail'] = '일정으로 저장';
|
||||
$labels['importevents'] = '일정 가져오기';
|
||||
$labels['onemonthback'] = '한달 전';
|
||||
$labels['nmonthsback'] = '$nr개월 전';
|
||||
$labels['showurl'] = '캘린더 URL 보이기';
|
||||
$labels['findcalendars'] = '캘린더 검색';
|
||||
$labels['calsearchresults'] = '가능한 캘린더';
|
||||
$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['availability'] = '가능';
|
||||
$labels['confirmstate'] = '상태';
|
||||
$labels['addattendee'] = '참가자 추가';
|
||||
$labels['roleorganizer'] = '주최자';
|
||||
$labels['rolerequired'] = '필수';
|
||||
$labels['roleoptional'] = '선택';
|
||||
$labels['rolechair'] = '좌석';
|
||||
$labels['rolenonparticipant'] = '불참';
|
||||
$labels['cutypeindividual'] = '개인';
|
||||
$labels['cutypegroup'] = '그룹';
|
||||
$labels['cutyperesource'] = '자원';
|
||||
$labels['availfree'] = '한가함';
|
||||
$labels['availbusy'] = '바쁨';
|
||||
$labels['availunknown'] = '알 수 없는';
|
||||
$labels['availtentative'] = '임시';
|
||||
$labels['availoutofoffice'] = '부재중';
|
||||
$labels['scheduletime'] = '가능여부 확인';
|
||||
$labels['sendinvitations'] = '초대장 보내기';
|
||||
$labels['sendnotifications'] = '변경 사항을 참가자에게 알림';
|
||||
$labels['sendcancellation'] = '일정 취소에 대해 참가자에게 알림';
|
||||
$labels['onlyworkinghours'] = '근무시간내 가능여부 확인';
|
||||
$labels['prevslot'] = '이전 슬롯';
|
||||
$labels['nextslot'] = '다음 슬롯';
|
||||
$labels['noslotfound'] = '여유 시간 슬롯을 찾을 수 없습니다.';
|
||||
$labels['invitationsubject'] = '"$title"에 초대되었습니다';
|
||||
$labels['invitationattendlinks'] = "당신과 관련된 이벤트가 업데이트되었습니다";
|
||||
$labels['itipobjectnotfound'] = '이 메시지와 관련된 일정을 캘린더에서 찾을 수 없습니다.';
|
||||
$labels['itipdeclineevent'] = '이 일정에 초대를 거절할까요?';
|
||||
$labels['declinedeleteconfirm'] = '당신이 당신의 달력에서 이벤트를 사퇴 삭제 하시겠습니까?';
|
||||
$labels['itipcommenttitle'] = '이 댓글은 참가자들에게 보낸 초대장 / 알림 메시지에 첨부됩니다';
|
||||
$labels['notanattendee'] = '당신은 이 일정의 참여자 목록에 없습니다';
|
||||
$labels['eventcancelled'] = '일정이 취소되었습니다';
|
||||
$labels['savetocalendar'] = '캘린더에 저장';
|
||||
$labels['openpreview'] = '캘린더 검토';
|
||||
$labels['noearlierevents'] = '이전 일정이 없습니다';
|
||||
$labels['nolaterevents'] = '이후 일정이 없습니다';
|
||||
$labels['resource'] = '자원';
|
||||
$labels['tabsummary'] = '요약';
|
||||
$labels['tabrecurrence'] = '반복';
|
||||
$labels['tabattendees'] = '참가자';
|
||||
$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['itipinvalidrequest'] = '이 초대장은 더이상 유효하지 않습니다';
|
||||
$labels['importnone'] = '가져올 일정이 없습니다';
|
||||
$labels['importerror'] = '가져오는 도중 오류가 발생했습니다';
|
||||
$labels['aclnorights'] = '이 캘린더에 대한 관리권한이 없습니다.';
|
||||
$labels['changeeventconfirm'] = '일정 변경';
|
||||
$labels['removeeventconfirm'] = '일정 삭제';
|
||||
$labels['currentevent'] = '현재';
|
||||
$labels['futurevents'] = '미래';
|
||||
$labels['allevents'] = '전체';
|
||||
$labels['saveasnew'] = '새로 저장';
|
||||
$labels['birthdays'] = '생일';
|
||||
$labels['birthdayscalendar'] = '생일 캘린더';
|
||||
$labels['displaybirthdayscalendar'] = '생일 캘린더 표시';
|
||||
$labels['birthdayscalendarsources'] = '주소록에서';
|
||||
$labels['birthdayeventtitle'] = '$name의 생일';
|
||||
$labels['birthdayage'] = '$age세';
|
||||
$labels['objectnotfound'] = '일정 데이터를 읽지 못하였습니다';
|
||||
$labels['objectrestoreerror'] = '이전 버전으로 복구하지 못하였습니다';
|
||||
$labels['arialabelcalendarview'] = '캘린더 보기';
|
||||
$labels['arialabelsearchform'] = '일정 검색 폼';
|
||||
$labels['arialabelquicksearchbox'] = '일정 검색 항목';
|
||||
$labels['arialabelcalsearchform'] = '캘린더 검색 폼';
|
||||
?>
|
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,266 +0,0 @@
|
|||
<?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'] = 'Noklusētais skats';
|
||||
$labels['time_format'] = 'Laika formāts';
|
||||
$labels['timeslots'] = 'Iedaļu skaits stundā';
|
||||
$labels['first_day'] = 'Nedēļas sākuma diena';
|
||||
$labels['first_hour'] = 'Pirmā attēlojamā stunda';
|
||||
$labels['workinghours'] = 'Darba laiks';
|
||||
$labels['add_category'] = 'Pievienot kategoriju';
|
||||
$labels['remove_category'] = 'Dzēst kategoriju';
|
||||
$labels['defaultcalendar'] = 'Veidot jaunus notikumus kalendārā';
|
||||
$labels['eventcoloring'] = 'Iekrāsot notikumus';
|
||||
$labels['coloringmode0'] = 'Kalendāra krāsā';
|
||||
$labels['coloringmode1'] = 'Kategorijas krāsā';
|
||||
$labels['coloringmode2'] = 'Kalendāra krāsa līnijai, kategorijas krāsa pildījumam';
|
||||
$labels['coloringmode3'] = 'Kategorijas krāsa līnijai, kalendāra krāsa pildījumam';
|
||||
$labels['afternothing'] = 'Nedarīt neko';
|
||||
$labels['aftertrash'] = 'Pārvietot uz Papīrgrozu';
|
||||
$labels['afterdelete'] = 'Dzēst ziņojumu';
|
||||
$labels['afterflagdeleted'] = 'Atzīmēt kā dzēstu';
|
||||
$labels['aftermoveto'] = 'Pārvietot uz ...';
|
||||
$labels['itipoptions'] = 'Notikuma uzaicinājumi';
|
||||
$labels['afteraction'] = 'Pēc tam, kad uzaicinājums vai izmaiņu ziņojums ir apstrādāts';
|
||||
$labels['weeknonone'] = 'nekad';
|
||||
$labels['calendar'] = 'Kalendārs';
|
||||
$labels['calendars'] = 'Kalendāri';
|
||||
$labels['category'] = 'Kategorija';
|
||||
$labels['categories'] = 'Kategorijas';
|
||||
$labels['createcalendar'] = 'Jauns kalendārs';
|
||||
$labels['name'] = 'Nosaukums';
|
||||
$labels['color'] = 'Krāsa';
|
||||
$labels['day'] = 'Diena';
|
||||
$labels['week'] = 'Nedēļa';
|
||||
$labels['month'] = 'Mēnesis';
|
||||
$labels['agenda'] = 'Dienaskārtība';
|
||||
$labels['new'] = 'Jauns';
|
||||
$labels['new_event'] = 'Jauns notikums';
|
||||
$labels['edit_event'] = 'Mainīt notikumu';
|
||||
$labels['edit'] = 'Labot';
|
||||
$labels['save'] = 'Saglabāt';
|
||||
$labels['removelist'] = 'Dzēst no saraksta';
|
||||
$labels['cancel'] = 'Atcelt';
|
||||
$labels['select'] = 'Izvēlēties';
|
||||
$labels['print'] = 'Drukāt';
|
||||
$labels['printtitle'] = 'Drukāt kalendārus';
|
||||
$labels['title'] = 'Kopsavilkums';
|
||||
$labels['description'] = 'Apraksts';
|
||||
$labels['all-day'] = 'visa diena';
|
||||
$labels['export'] = 'Eksportēt';
|
||||
$labels['exporttitle'] = 'Eksportēt uz iCalendar';
|
||||
$labels['exportrange'] = 'Notikumi no';
|
||||
$labels['exportattachments'] = 'Ar pielikumiem';
|
||||
$labels['customdate'] = 'Lietotāja izvēlēts datums';
|
||||
$labels['location'] = 'Vieta';
|
||||
$labels['url'] = 'URL';
|
||||
$labels['date'] = 'Datums';
|
||||
$labels['start'] = 'Sākums';
|
||||
$labels['starttime'] = 'Sākums';
|
||||
$labels['end'] = 'Beigas';
|
||||
$labels['endtime'] = 'Beigas';
|
||||
$labels['repeat'] = 'Atkārtot';
|
||||
$labels['selectdate'] = 'Izvēlieties datumu';
|
||||
$labels['freebusy'] = 'Rādīt mani kā';
|
||||
$labels['free'] = 'Brīvs';
|
||||
$labels['busy'] = 'Aizņemts';
|
||||
$labels['outofoffice'] = 'Ārpus biroja';
|
||||
$labels['tentative'] = 'Varbūt';
|
||||
$labels['mystatus'] = 'Mans statuss';
|
||||
$labels['status'] = 'Statuss';
|
||||
$labels['status-confirmed'] = 'Apstiprināts';
|
||||
$labels['status-cancelled'] = 'Atcelts';
|
||||
$labels['status-tentative'] = 'Varbūt';
|
||||
$labels['priority'] = 'Prioritāte';
|
||||
$labels['sensitivity'] = 'Privātums';
|
||||
$labels['public'] = 'publisks';
|
||||
$labels['private'] = 'privāts';
|
||||
$labels['confidential'] = 'slepens';
|
||||
$labels['links'] = 'Atsauce';
|
||||
$labels['alarms'] = 'Atgādinājums';
|
||||
$labels['comment'] = 'Komentārs';
|
||||
$labels['created'] = 'Izveidots';
|
||||
$labels['changed'] = 'Mainīts';
|
||||
$labels['unknown'] = 'Nezināms';
|
||||
$labels['eventoptions'] = 'iespējas';
|
||||
$labels['generated'] = 'izveidots';
|
||||
$labels['eventhistory'] = 'Vēsture';
|
||||
$labels['removelink'] = 'Noņemt atsauci uz e-pastu';
|
||||
$labels['printdescriptions'] = 'Drukāt aprakstus';
|
||||
$labels['parentcalendar'] = 'Ievietot';
|
||||
$labels['searchearlierdates'] = '« Meklēt agrākus notikumus';
|
||||
$labels['searchlaterdates'] = 'Meklēt vēlākus notikumus »';
|
||||
$labels['andnmore'] = 'vēl $nr ...';
|
||||
$labels['togglerole'] = 'Uzklikšķiniet, lai pārslēgtu lomu';
|
||||
$labels['createfrommail'] = 'Saglabāt kā notikumu';
|
||||
$labels['importevents'] = 'Importēt notikumus';
|
||||
$labels['importrange'] = 'Notikumi no';
|
||||
$labels['onemonthback'] = 'Pirms mēneša';
|
||||
$labels['nmonthsback'] = 'Pirms $nr mēnešiem';
|
||||
$labels['showurl'] = 'Parādīt kalendāra URL';
|
||||
$labels['showurldescription'] = 'Izmantojiet sekojošo adresi, lai piekļūtu (tikai lasīšanas režīmā) jūsu kalendāram no citas aplikācijas. Jūs varat to nokopēt un ielīmēt jebkurā aplikācijā, kas atbalsta iCal formātu.';
|
||||
$labels['caldavurldescription'] = 'Nokopējiet šo adresi <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a> uz klienta aplikāciju (piem. Evolution vai Mozilla Thunderbird) lai pilnībā sinhronizētu izvēlēto kalendāru ar jūsu datoru vai mobilo ierīci.';
|
||||
$labels['findcalendars'] = 'Meklēt kalendārus...';
|
||||
$labels['searchterms'] = 'Meklēšanas nosacījumi';
|
||||
$labels['calsearchresults'] = 'Pieejamie kalendāri';
|
||||
$labels['calendarsubscribe'] = 'Rādīt sarakstā vienmēr';
|
||||
$labels['nocalendarsfound'] = 'Neviens kalendārs nav atrasts';
|
||||
$labels['nrcalendarsfound'] = 'Atrasti $nr kalendāri';
|
||||
$labels['quickview'] = 'Skatīt tikai šo kalendāru';
|
||||
$labels['invitationspending'] = 'Neapstrādātie uzaicinājumi';
|
||||
$labels['invitationsdeclined'] = 'Noraidītie uzaicinājumi';
|
||||
$labels['changepartstat'] = 'Mainīt dalībnieka statusu';
|
||||
$labels['rsvpcomment'] = 'Uzaicinājuma teksts';
|
||||
$labels['listrange'] = 'Attēlot diapazonu:';
|
||||
$labels['listsections'] = 'Sadalīt:';
|
||||
$labels['smartsections'] = 'Viedās sekcijas';
|
||||
$labels['until'] = 'līdz';
|
||||
$labels['today'] = 'Šodien';
|
||||
$labels['tomorrow'] = 'Rīt';
|
||||
$labels['thisweek'] = 'Šonedēļ';
|
||||
$labels['nextweek'] = 'Jaunnedēļ';
|
||||
$labels['prevweek'] = 'Pagājušā nedēļā';
|
||||
$labels['thismonth'] = 'Šomēnes';
|
||||
$labels['nextmonth'] = 'Nākošmēnes';
|
||||
$labels['weekofyear'] = 'Nedēļa';
|
||||
$labels['pastevents'] = 'Pagātne';
|
||||
$labels['futureevents'] = 'Nākotne';
|
||||
$labels['showalarms'] = 'Rādīt atgādinājumus';
|
||||
$labels['defaultalarmtype'] = 'Noklusētais atgādinājumu uzstādījums';
|
||||
$labels['defaultalarmoffset'] = 'Noklusētais atgādinājuma laiks';
|
||||
$labels['attendee'] = 'Dalībnieks';
|
||||
$labels['role'] = 'Loma';
|
||||
$labels['availability'] = 'Pieej.';
|
||||
$labels['confirmstate'] = 'Statuss';
|
||||
$labels['addattendee'] = 'Pievienot dalībnieku';
|
||||
$labels['roleorganizer'] = 'Organizētājs';
|
||||
$labels['rolerequired'] = 'Obligāti';
|
||||
$labels['roleoptional'] = 'Pēc izvēles';
|
||||
$labels['rolechair'] = 'Vadītājs';
|
||||
$labels['rolenonparticipant'] = 'Nepiedalās';
|
||||
$labels['cutypeindividual'] = 'Persona';
|
||||
$labels['cutypegroup'] = 'Grupa';
|
||||
$labels['cutyperesource'] = 'Resurss';
|
||||
$labels['cutyperoom'] = 'Telpa';
|
||||
$labels['availfree'] = 'Brīvs';
|
||||
$labels['availbusy'] = 'Aizņemts';
|
||||
$labels['availunknown'] = 'Nezināms';
|
||||
$labels['availtentative'] = 'Varbūt';
|
||||
$labels['availoutofoffice'] = 'Ārpus biroja';
|
||||
$labels['scheduletime'] = 'Atrast brīvu laiku';
|
||||
$labels['sendinvitations'] = 'Nosūtīt uzaicinājumus';
|
||||
$labels['sendnotifications'] = 'Apziņot dalībniekus par izmaiņām';
|
||||
$labels['sendcancellation'] = 'Apziņot dalībniekus par pasākuma atcelšanu';
|
||||
$labels['onlyworkinghours'] = 'Atrast brīvu laiku manā darba laikā';
|
||||
$labels['reqallattendees'] = 'Obligātie/visi dalībnieki';
|
||||
$labels['prevslot'] = 'Iepriekšējā iedaļa';
|
||||
$labels['nextslot'] = 'Nākamā iedaļa';
|
||||
$labels['suggestedslot'] = 'Ieteicamā iedaļa';
|
||||
$labels['noslotfound'] = 'Nav brīvas laika iedaļas';
|
||||
$labels['invitationsubject'] = 'Jūs esat uzaicināts uz "$title"';
|
||||
$labels['invitationattendlinks'] = "Gadījumā ja jūsu e-pasta praogramma neatbalsta iTip pieprasījumus, tad jūs varat izmantot šo saiti, lai pieņemtu vai noraidītu šo uzaicinājumu:\n\$url";
|
||||
$labels['eventupdatesubject'] = '"$title" ir mainīts';
|
||||
$labels['eventupdatesubjectempty'] = 'Pasākums, kas attiecas uz jums ir mainīts';
|
||||
$labels['eventupdatemailbody'] = "*\$title*\n\nKad: \$date\n\nUzaicinātie: \$attendees\n\nPielikumā pievienots iCalendar fails ar atjaunotu notikuma informāciju, kuru jūs varat importēt savā kalendāra aplikācijā.";
|
||||
$labels['eventcancelsubject'] = '"$title" ir atcelts';
|
||||
$labels['eventcancelmailbody'] = "*\$title*\n\nKad: \$date\n\nUzaicinātie: \$attendees\n\nPasākumu ir atcēlis tā organizators \$organizer.\n\nLūdzu skatiet pievienoto iCalendar failu ar atjaunotu notikuma informāciju.";
|
||||
$labels['itipobjectnotfound'] = 'Notikums uz ko attiecas šis ziņojums nav atrodams jūsu kalendāra.';
|
||||
$labels['itipmailbodyaccepted'] = "\$sender ir pieņēmis uzaicinājumu uz:\n\n*\$title*\n\nKad: \$date\n\nUzaicinātie: \$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 ir noraidījis uzaicinājumu dalībai:\n\n*\$title*\n\nKad: \$date\n\nUzaicinātie: \$attendees";
|
||||
$labels['itipmailbodycancel'] = "\$sender ir noraidījis jūsu dalību sekojošā pasākumā:\n\n*\$title*\n\nKad: \$date";
|
||||
$labels['itipmailbodydelegated'] = "\$sender ir deleģējis dalību sekojošā pasākumā:\n\n*\$title*\n\nKad: \$date";
|
||||
$labels['itipmailbodydelegatedto'] = "\$sender ir deleģējis jums dalību sekojošā pasākumā:\n\n*\$title*\n\nKad: \$date";
|
||||
$labels['itipdeclineevent'] = 'Vai vēlaties noraidīt šo uzaicinājumu?';
|
||||
$labels['declinedeleteconfirm'] = 'Vai jūs vēlaties arī dzēst šo noraidīto notikumu no jūsu kalendāra?';
|
||||
$labels['itipcomment'] = 'Uzaicinājumam/paziņojuma komentārs';
|
||||
$labels['itipcommenttitle'] = 'Šis komentārs tiks pievienots uzaicinājumam/paziņojuma ziņojumam dalībniekiem';
|
||||
$labels['notanattendee'] = 'Jūs neesat šī notikuma dalībnieku sarakstā';
|
||||
$labels['eventcancelled'] = 'Notikums atcelts';
|
||||
$labels['saveincalendar'] = 'saglabāt';
|
||||
$labels['updatemycopy'] = 'Atjaunot manā kalendārā';
|
||||
$labels['savetocalendar'] = 'Saglabāt kalendārā';
|
||||
$labels['openpreview'] = 'Pārbaudīt kalendāru';
|
||||
$labels['noearlierevents'] = 'Nav notikumu pirms';
|
||||
$labels['nolaterevents'] = 'Nav notikumu pēc';
|
||||
$labels['resource'] = 'Resurss';
|
||||
$labels['addresource'] = 'Pieteikt resursus';
|
||||
$labels['findresources'] = 'Meklēt resursus';
|
||||
$labels['resourcedetails'] = 'Detaļas';
|
||||
$labels['resourceavailability'] = 'Pieejamība';
|
||||
$labels['resourceowner'] = 'Īpašnieks';
|
||||
$labels['resourceadded'] = 'Resursi pievienoti jūsu notikumam';
|
||||
$labels['tabsummary'] = 'Kopsavilkums';
|
||||
$labels['tabrecurrence'] = 'Atkārtojums';
|
||||
$labels['tabattendees'] = 'Dalībnieki';
|
||||
$labels['tabresources'] = 'Resursi';
|
||||
$labels['tabattachments'] = 'Pielikumi';
|
||||
$labels['tabsharing'] = 'Dalīšanās';
|
||||
$labels['deleteobjectconfirm'] = 'Vai tiešām jūs vēlaties dzēst šo notikumu?';
|
||||
$labels['deleteventconfirm'] = 'Vai tiešām jūs vēlaties dzēst šo notikumu?';
|
||||
$labels['deletecalendarconfirm'] = 'Vai tiešām jūs vēlaties dzēst šo kalendāru ar visiem notikumiem?';
|
||||
$labels['deletecalendarconfirmrecursive'] = 'Vai tiešām jūs vēlaties dzēst šo kalendāru ar visiem notikumiem un pakārtotajiem kalendāriem?';
|
||||
$labels['savingdata'] = 'Saglabājam...';
|
||||
$labels['errorsaving'] = 'Kļūda saglabājot izmaiņas.';
|
||||
$labels['operationfailed'] = 'Kļūda pieprasītās darbības laikā.';
|
||||
$labels['invalideventdates'] = 'Ievadīti nederīgi datumi! Lūdzu pārbaudiet ievadīto.';
|
||||
$labels['invalidcalendarproperties'] = 'Nederīgas kalendāra īpašības! Lūdzu norādiet derīgu nosaukumu.';
|
||||
$labels['searchnoresults'] = 'Nav atrasts neviens notikums izvēlētajos kalendāros';
|
||||
$labels['successremoval'] = 'Notikums veiksmīgi dzēsts';
|
||||
$labels['successrestore'] = 'Notikums veiksmīgi atjaunots';
|
||||
$labels['errornotifying'] = 'Kļūda izsūtot paziņojumus dalībniekiem';
|
||||
$labels['errorimportingevent'] = 'Kļūda importējot notikumu';
|
||||
$labels['importwarningexists'] = 'Šī notikuma kopija jau eksistē jūsu kalendārā';
|
||||
$labels['newerversionexists'] = 'Jaunāka notikuma versija jau eksistē jūsu kalendārā! Darbība atcelta.';
|
||||
$labels['nowritecalendarfound'] = 'Nav atrasts kalendārs, kur pievienot notikumu';
|
||||
$labels['importedsuccessfully'] = 'Šis notikums veiksmīgi pievienots kalendāram \'$calendar\'';
|
||||
$labels['updatedsuccessfully'] = 'Šis notikums veiksmīgi atjaunots kalendārā \'$calendar\'';
|
||||
$labels['attendeupdateesuccess'] = 'Dalībnieku statusi veiksmīgi atjaunoti';
|
||||
$labels['itipsendsuccess'] = 'Uzaicinājumi dalībniekiem izsūtīti';
|
||||
$labels['itipresponseerror'] = 'Kļūda nosūtot atbildi uz šo uzaicinājumu';
|
||||
$labels['itipinvalidrequest'] = 'Šis uzaicinājums vairs nav spēkā';
|
||||
$labels['sentresponseto'] = 'Atbilde uz uzaicinājumu veiksmīgi nosūtīta $mailto';
|
||||
$labels['localchangeswarning'] = 'Jūsu veiktās izmaiņas attēlosies tikai jūsu kalendārā un netiks nosūtītas pasākuma organizatoram.';
|
||||
$labels['importsuccess'] = 'Veiksmīgi importēti $nr notikumi';
|
||||
$labels['importnone'] = 'Nav atrasti notikumi ko importēt';
|
||||
$labels['importerror'] = 'Kļūda importa laikā';
|
||||
$labels['aclnorights'] = 'Jums nav šī kalendāra administratora tiesību';
|
||||
$labels['changeeventconfirm'] = 'Mainīt notikumu';
|
||||
$labels['removeeventconfirm'] = 'Dzēst notikumu';
|
||||
$labels['changerecurringeventwarning'] = 'Šis ir periodisks notikums. Vai vēlaties labot tikai šo notikumu, šo un visus šos nākotnes notikumus, visus šos notikumus, vai arī saglabāt šo kā jaunu notikumu?';
|
||||
$labels['removerecurringeventwarning'] = 'Šis ir periodisks notikums. Vai vēlaties dzēst tikai šo notikumu, šo un visus šos nākotnes notikumus vai arī visus šos notikumus?';
|
||||
$labels['removerecurringallonly'] = 'Šis ir periodisks notikums. Kā dalībnieks jūs varat tikai dzēst šo notikumu pilnībā.';
|
||||
$labels['currentevent'] = 'Pašreizējais';
|
||||
$labels['futurevents'] = 'Nākotne';
|
||||
$labels['allevents'] = 'Visi';
|
||||
$labels['saveasnew'] = 'Saglabāt kā jaunu';
|
||||
$labels['birthdays'] = 'Dzimšanas dienas';
|
||||
$labels['birthdayscalendar'] = 'Dzimšanas dienu kalendārs';
|
||||
$labels['displaybirthdayscalendar'] = 'Rādīt dzimšanas dienu kalendāru';
|
||||
$labels['birthdayscalendarsources'] = 'No šīm adrešu grāmatām';
|
||||
$labels['birthdayeventtitle'] = '$name dzimšanas diena';
|
||||
$labels['birthdayage'] = 'Vecums $age';
|
||||
$labels['objectchangelog'] = 'Mainīt vēsturi';
|
||||
$labels['objectdiff'] = 'Izmaiņas no $rev1 uz $rev2';
|
||||
$labels['objectnotfound'] = 'Kļūda ielādējot notikuma datus';
|
||||
$labels['objectchangelognotavailable'] = 'Šī notikuma vēsturi mainīt nevar';
|
||||
$labels['objectdiffnotavailable'] = 'Izvēlētās versijas nav salīdzināmas';
|
||||
$labels['revisionrestoreconfirm'] = 'Vai tiešām vēlaties atjaunot šī notikuma $rev. versiju? Šī darbība aizstās pašreizējo notikumu ar veco versiju.';
|
||||
$labels['objectrestoresuccess'] = 'Versija $rev veiksmīgi atjaunota';
|
||||
$labels['objectrestoreerror'] = 'Kļūda atjaunojot veco versiju';
|
||||
$labels['arialabelminical'] = 'Kalendāra datuma izvēle';
|
||||
$labels['arialabelcalendarview'] = 'Kalendāra skats';
|
||||
$labels['arialabelsearchform'] = 'Notikumu meklēšanas forma';
|
||||
$labels['arialabelquicksearchbox'] = 'Notikumu meklēšanas ievadlauks';
|
||||
$labels['arialabelcalsearchform'] = 'Kalendāru meklēšanas forma';
|
||||
$labels['calendaractions'] = 'Darbības ar kalendāru';
|
||||
$labels['arialabeleventattendees'] = 'Dalībnieku saraksts';
|
||||
$labels['arialabeleventresources'] = 'Resursu saraksts';
|
||||
$labels['arialabelresourcesearchform'] = 'Resursu meklēšanas forma';
|
||||
$labels['arialabelresourceselection'] = 'Pieejamie resursi';
|
||||
?>
|
|
@ -6,33 +6,30 @@
|
|||
*
|
||||
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
|
||||
*/
|
||||
$labels['default_view'] = 'Standaardweergave';
|
||||
$labels['time_format'] = 'Tijdnotatie';
|
||||
$labels['timeslots'] = 'Tijdvakken per uur';
|
||||
$labels['default_view'] = 'Standaard agenda';
|
||||
$labels['time_format'] = 'Tijdsformaat';
|
||||
$labels['timeslots'] = 'Tijdsdelen per uur';
|
||||
$labels['first_day'] = 'Eerste weekdag';
|
||||
$labels['first_hour'] = 'Eerste uur om weer te geven';
|
||||
$labels['workinghours'] = 'Werkuren';
|
||||
$labels['add_category'] = 'Categorie toevoegen';
|
||||
$labels['remove_category'] = 'Categorie verwijderen';
|
||||
$labels['defaultcalendar'] = 'Nieuwe activiteiten maken in';
|
||||
$labels['eventcoloring'] = 'Kleuren voor activiteiten';
|
||||
$labels['coloringmode0'] = 'Volgens agenda';
|
||||
$labels['defaultcalendar'] = 'Maak nieuwe afspraken in';
|
||||
$labels['eventcoloring'] = 'Kleuren van afspraken';
|
||||
$labels['coloringmode0'] = 'Volgens kalender';
|
||||
$labels['coloringmode1'] = 'Volgens categorie';
|
||||
$labels['coloringmode2'] = 'Agenda voor overzicht, categorie voor inhoud';
|
||||
$labels['coloringmode3'] = 'Categorie voor overzicht, agenda voor inhoud';
|
||||
$labels['afternothing'] = 'Niets doen';
|
||||
$labels['aftertrash'] = 'Verplaatsen naar Prullenbak';
|
||||
$labels['afterdelete'] = 'Bericht verwijderen';
|
||||
$labels['afterflagdeleted'] = 'Markeren als verwijderd';
|
||||
$labels['aftermoveto'] = 'Verplaatsen naar...';
|
||||
$labels['itipoptions'] = 'Uitnodigingen voor activiteiten';
|
||||
$labels['afteraction'] = 'Nadat een uitnodiging of updatebericht is verwerkt';
|
||||
$labels['weeknonone'] = 'nooit';
|
||||
$labels['calendar'] = 'Agenda';
|
||||
$labels['calendars'] = 'Agenda\'s';
|
||||
$labels['coloringmode2'] = 'Kalender voor omtrek, categorie voor inhoud';
|
||||
$labels['coloringmode3'] = 'Categorie voor omtrek, kalender voor inhoud';
|
||||
$labels['aftertrash'] = 'Verplaats naar prullenbak';
|
||||
$labels['afterdelete'] = 'Verwijder bericht';
|
||||
$labels['afterflagdeleted'] = 'Markeer als verwijderd';
|
||||
$labels['aftermoveto'] = 'Verplaats naar...';
|
||||
$labels['calendar'] = 'Kalender';
|
||||
$labels['calendars'] = 'Kalenders';
|
||||
$labels['category'] = 'Categorie';
|
||||
$labels['categories'] = 'Categorieën';
|
||||
$labels['createcalendar'] = 'Nieuwe agenda maken';
|
||||
$labels['createcalendar'] = 'Maak een nieuwe kalender';
|
||||
$labels['editcalendar'] = 'Wijzig kalender eigenschappen';
|
||||
$labels['name'] = 'Naam';
|
||||
$labels['color'] = 'Kleur';
|
||||
$labels['day'] = 'Dag';
|
||||
|
@ -40,228 +37,187 @@ $labels['week'] = 'Week';
|
|||
$labels['month'] = 'Maand';
|
||||
$labels['agenda'] = 'Agenda';
|
||||
$labels['new'] = 'Nieuw';
|
||||
$labels['new_event'] = 'Nieuwe activiteit';
|
||||
$labels['edit_event'] = 'Activiteit bewerken';
|
||||
$labels['edit'] = 'Bewerken';
|
||||
$labels['save'] = 'Opslaan';
|
||||
$labels['removelist'] = 'Verwijderen uit lijst';
|
||||
$labels['cancel'] = 'Annuleren';
|
||||
$labels['select'] = 'Selecteren';
|
||||
$labels['new_event'] = 'Nieuwe afspraak';
|
||||
$labels['edit_event'] = 'Wijzig afspraak';
|
||||
$labels['edit'] = 'Wijzig';
|
||||
$labels['save'] = 'Bewaar';
|
||||
$labels['cancel'] = 'Terug';
|
||||
$labels['select'] = 'Selecteer';
|
||||
$labels['print'] = 'Afdrukken';
|
||||
$labels['printtitle'] = 'Agenda\'s afdrukken';
|
||||
$labels['printtitle'] = 'Kalenders afdrukken';
|
||||
$labels['title'] = 'Samenvatting';
|
||||
$labels['description'] = 'Beschrijving';
|
||||
$labels['description'] = 'Omschrijving';
|
||||
$labels['all-day'] = 'hele dag';
|
||||
$labels['export'] = 'Exporteren';
|
||||
$labels['exporttitle'] = 'Exporteren naar iCalendar';
|
||||
$labels['exportrange'] = 'Activiteiten uit';
|
||||
$labels['exportattachments'] = 'Met bijlagen';
|
||||
$labels['customdate'] = 'Aangepaste datum';
|
||||
$labels['export'] = 'Exporteer naar ICS';
|
||||
$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'] = 'Begintijd';
|
||||
$labels['end'] = 'Einde';
|
||||
$labels['starttime'] = 'Start time';
|
||||
$labels['end'] = 'Eind';
|
||||
$labels['endtime'] = 'Eindtijd';
|
||||
$labels['repeat'] = 'Herhalen';
|
||||
$labels['selectdate'] = 'Datum kiezen';
|
||||
$labels['repeat'] = 'Herhaal';
|
||||
$labels['selectdate'] = 'Kies datum';
|
||||
$labels['freebusy'] = 'Toon mij als';
|
||||
$labels['free'] = 'Beschikbaar';
|
||||
$labels['free'] = 'Vrij';
|
||||
$labels['busy'] = 'Bezet';
|
||||
$labels['outofoffice'] = 'Niet aanwezig';
|
||||
$labels['outofoffice'] = 'Niet Aanwezig';
|
||||
$labels['tentative'] = 'Misschien';
|
||||
$labels['mystatus'] = 'Mijn status';
|
||||
$labels['status'] = 'Status';
|
||||
$labels['status-confirmed'] = 'Bevestigd';
|
||||
$labels['status-cancelled'] = 'Geannuleerd';
|
||||
$labels['status-tentative'] = 'Misschien';
|
||||
$labels['status-cancelled'] = 'Afgelast';
|
||||
$labels['priority'] = 'Prioriteit';
|
||||
$labels['sensitivity'] = 'Privacy';
|
||||
$labels['public'] = 'openbaar';
|
||||
$labels['private'] = 'privé';
|
||||
$labels['sensitivity'] = 'Zichtbaarheid';
|
||||
$labels['public'] = 'publiek';
|
||||
$labels['private'] = 'prive';
|
||||
$labels['confidential'] = 'vertrouwelijk';
|
||||
$labels['links'] = 'Referentie';
|
||||
$labels['alarms'] = 'Herinnering';
|
||||
$labels['comment'] = 'Opmerking';
|
||||
$labels['created'] = 'Gemaakt op';
|
||||
$labels['changed'] = 'Laatst gewijzigd op';
|
||||
$labels['unknown'] = 'Onbekend';
|
||||
$labels['eventoptions'] = 'Opties';
|
||||
$labels['generated'] = 'gegenereerd op';
|
||||
$labels['eventhistory'] = 'Geschiedenis';
|
||||
$labels['removelink'] = 'E-mailreferentie verwijderen';
|
||||
$labels['printdescriptions'] = 'Beschrijvingen afdrukken';
|
||||
$labels['parentcalendar'] = 'Invoegen in';
|
||||
$labels['searchearlierdates'] = '« Zoek eerdere activiteiten';
|
||||
$labels['searchlaterdates'] = 'Zoek latere activiteiten »';
|
||||
$labels['laterevents'] = 'Later';
|
||||
$labels['andnmore'] = 'Nog $nr...';
|
||||
$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'] = 'Opslaan als activiteit';
|
||||
$labels['importevents'] = 'Activiteiten importeren';
|
||||
$labels['importrange'] = 'Activiteiten van';
|
||||
$labels['onemonthback'] = 'afgelopen maand';
|
||||
$labels['nmonthsback'] = 'afgelopen $nr maanden';
|
||||
$labels['showurl'] = 'URL van agenda tonen';
|
||||
$labels['showurldescription'] = 'Gebruik het volgende adres om uw agenda in andere programma\'s te gebruiken (alleen-lezen). U kunt dit knippen en plakken in elk agendaprogramma dat de iCal-indeling ondersteunt.';
|
||||
$labels['caldavurldescription'] = 'Kopieer dit adres naar een <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a>-client (bijv. Evolution of Mozilla Thunderbird) om deze specifieke agenda volledig te synchroniseren met uw computer of mobiele apparaat.';
|
||||
$labels['findcalendars'] = 'Agenda\'s zoeken...';
|
||||
$labels['searchterms'] = 'Zoektermen';
|
||||
$labels['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'] = 'Definitief weergeven';
|
||||
$labels['nocalendarsfound'] = 'Geen agenda\'s gevonden';
|
||||
$labels['nrcalendarsfound'] = '$nr agenda\'s gevonden';
|
||||
$labels['quickview'] = 'Alleen deze agenda bekijken';
|
||||
$labels['invitationspending'] = 'Uitnodigingen in behandeling';
|
||||
$labels['invitationsdeclined'] = 'Afgeslagen uitnodigingen';
|
||||
$labels['changepartstat'] = 'Status van deelnemer wijzigen';
|
||||
$labels['rsvpcomment'] = 'Tekst van uitnodiging';
|
||||
$labels['listrange'] = 'Weer te geven bereik:';
|
||||
$labels['listsections'] = 'Verdelen in:';
|
||||
$labels['calendarsubscribe'] = 'Permanent weergeven';
|
||||
$labels['invitationsdeclined'] = 'Afgewezen uitnodigingen';
|
||||
$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['prevweek'] = 'Vorige week';
|
||||
$labels['thismonth'] = 'Deze maand';
|
||||
$labels['nextmonth'] = 'Volgende maand';
|
||||
$labels['weekofyear'] = 'Week';
|
||||
$labels['pastevents'] = 'Verleden';
|
||||
$labels['futureevents'] = 'Toekomst';
|
||||
$labels['showalarms'] = 'Herinneringen tonen';
|
||||
$labels['defaultalarmtype'] = 'Standaardinstelling herinnering';
|
||||
$labels['defaultalarmoffset'] = 'Standaardtijd herinnering';
|
||||
$labels['showalarms'] = 'Toon herinneringen';
|
||||
$labels['defaultalarmtype'] = 'Instelling standaard herinnering';
|
||||
$labels['defaultalarmoffset'] = 'Standaard herinneringstijd';
|
||||
$labels['attendee'] = 'Deelnemer';
|
||||
$labels['role'] = 'Rol';
|
||||
$labels['availability'] = 'Beschikbaar';
|
||||
$labels['availability'] = 'Beschikb.';
|
||||
$labels['confirmstate'] = 'Status';
|
||||
$labels['addattendee'] = 'Deelnemer toevoegen';
|
||||
$labels['roleorganizer'] = 'Organisator';
|
||||
$labels['roleorganizer'] = 'Organisatie';
|
||||
$labels['rolerequired'] = 'Verplicht';
|
||||
$labels['roleoptional'] = 'Optioneel';
|
||||
$labels['rolechair'] = 'Voorzitter';
|
||||
$labels['rolenonparticipant'] = 'Afwezig';
|
||||
$labels['cutypeindividual'] = 'Persoon';
|
||||
$labels['cutypeindividual'] = 'Individueel';
|
||||
$labels['cutypegroup'] = 'Groep';
|
||||
$labels['cutyperesource'] = 'Resource';
|
||||
$labels['cutyperoom'] = 'Ruimte';
|
||||
$labels['availfree'] = 'Beschikbaar';
|
||||
$labels['cutyperesource'] = 'Middel';
|
||||
$labels['cutyperoom'] = 'Kamer';
|
||||
$labels['availfree'] = 'Vrij';
|
||||
$labels['availbusy'] = 'Bezet';
|
||||
$labels['availunknown'] = 'Onbekend';
|
||||
$labels['availtentative'] = 'Misschien';
|
||||
$labels['availoutofoffice'] = 'Niet aanwezig';
|
||||
$labels['scheduletime'] = 'Beschikbaarheid zoeken';
|
||||
$labels['sendinvitations'] = 'Uitnodigingen versturen';
|
||||
$labels['sendnotifications'] = 'Wijzigingen melden aan deelnemers';
|
||||
$labels['sendcancellation'] = 'Annulering van activiteiten melden aan deelnemers';
|
||||
$labels['onlyworkinghours'] = 'Beschikbaarheid binnen mijn werkuren zoeken';
|
||||
$labels['reqallattendees'] = 'Verplichte/alle deelnemers';
|
||||
$labels['prevslot'] = 'Vorig tijdstip';
|
||||
$labels['nextslot'] = 'Volgend tijdstip';
|
||||
$labels['suggestedslot'] = 'Voorgesteld tijdstip';
|
||||
$labels['noslotfound'] = 'Geen beschikbaar tijdstip gevonden';
|
||||
$labels['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['invitationattendlinks'] = "In het geval dat uw e-mailprogramma geen iTip-verzoeken ondersteunt, kunt u de volgende koppeling gebruiken om deze uitnodiging te accepteren or af te slaan:\n\$url";
|
||||
$labels['eventupdatesubject'] = '"$title" is bijgewerkt';
|
||||
$labels['eventupdatesubjectempty'] = 'Een activiteit die u aangaat is bijgewerkt';
|
||||
$labels['eventupdatemailbody'] = "*\$title*\n\nWanneer: \$date\n\nGenodigden: \$attendees\n\nAls bijlage vindt u een iCalendar-bestand met de bijgewerkte gegevens van de activiteit die u in uw agendaprogramma kunt importeren.";
|
||||
$labels['eventcancelsubject'] = '"$title" is geannuleerd';
|
||||
$labels['eventcancelmailbody'] = "*\$title*\n\nWanneer: \$date\n\nGenodigden: \$attendees\n\nDe activiteit is geannuleerd door \$organizer.\n\nAls bijlage vindt u een iCalendar-bestand met de bijgewerkte gegevens van de activiteit.";
|
||||
$labels['itipobjectnotfound'] = 'De activiteit die in dit bericht wordt vermeld staat niet in uw agenda.';
|
||||
$labels['itipmailbodyaccepted'] = "\$sender heeft de uitnodiging voor de volgende activiteit geaccepteerd:\n\n*\$title*\n\nWanneer: \$date\n\nGenodigden: \$attendees";
|
||||
$labels['itipmailbodytentative'] = "\$sender heeft de uitnodiging voor de volgende activiteit onder voorbehoud geaccepteerd:\n\n*\$title*\n\nWanneer: \$date\n\nGenodigden: \$attendees";
|
||||
$labels['itipmailbodydeclined'] = "\$sender heeft de uitnodiging voor de volgende activiteit afgeslagen:\n\n*\$title*\n\nWanneer: \$date\n\nGenodigden: \$attendees";
|
||||
$labels['itipmailbodycancel'] = "\$sender heeft uw deelname aan de volgende activiteit afgewezen:\n\n*\$title*\n\nWanneer: \$date";
|
||||
$labels['itipmailbodydelegated'] = "\$sender heeft de deelname aan de volgende activiteit gedelegeerd:\n\n*\$title*\n\nWanneer: \$date";
|
||||
$labels['itipmailbodydelegatedto'] = "\$sender heeft de deelname aan de volgende activiteit gedelegeerd aan u:\n\n*\$title*\n\nWanneer: \$date";
|
||||
$labels['itipdeclineevent'] = 'Wil u de uitnodiging voor deze activiteit afslaan?';
|
||||
$labels['declinedeleteconfirm'] = 'Wilt u deze afgewezen activiteit ook verwijderen uit uw agenda?';
|
||||
$labels['itipcomment'] = 'Opmerking bij uitnodiging/melding';
|
||||
$labels['itipcommenttitle'] = 'Deze opmerking wordt toegevoegd aan de uitnodiging/melding die naar de deelnemers wordt verstuurd';
|
||||
$labels['notanattendee'] = 'U staat niet op de lijst met deelnemers aan deze activiteit';
|
||||
$labels['eventcancelled'] = 'De activiteit is geannuleerd';
|
||||
$labels['saveincalendar'] = 'opslaan in';
|
||||
$labels['updatemycopy'] = 'Bijwerken in mijn agenda';
|
||||
$labels['savetocalendar'] = 'Opslaan in agenda';
|
||||
$labels['openpreview'] = 'Agenda controleren';
|
||||
$labels['noearlierevents'] = 'Geen eerdere activiteiten';
|
||||
$labels['nolaterevents'] = 'Geen latere activiteiten';
|
||||
$labels['resource'] = 'Resource';
|
||||
$labels['addresource'] = 'Resource boeken';
|
||||
$labels['findresources'] = 'Resources zoeken';
|
||||
$labels['invitationmailbody'] = "*\$title*\n\nWanneer: \$date\n\nGenodigden: \$attendees\n\nBijgevoegd vindt u een iCalendar bestand met alle details omtrent de afspraak die u kunt importeren in uw kalender programma.";
|
||||
$labels['invitationattendlinks'] = "In het geval dat uw email programma geen iTip verzoeken aankan, kunt u de volgende link gebruiken om deze uitnodiging te accepteren or af te wijzen :\n\$url";
|
||||
$labels['eventupdatesubject'] = '"$title" is gewijzigd';
|
||||
$labels['eventupdatesubjectempty'] = 'Een afspraak is gewijzigd';
|
||||
$labels['eventupdatemailbody'] = "*\$title*\n\nWanneer: \$date\n\nGenodigden: \$attendees\n\nBijgevoegd vindt u een iCalendar bestand met de gewijzigde details omtrent de afspraak die u kunt importeren in uw kalender programma.";
|
||||
$labels['eventcancelmailbody'] = "*\$title*\n\nWanneer: \$date\n\nGenodigden: \$attendees\n\nDeze afspraak is geannuleerd door \$organizer.\n\nBijgevoegd vindt u een iCalendar bestand met de gewijzigde details omtrent de afspraak";
|
||||
$labels['itipobjectnotfound'] = 'De afspraak waaraan door dit bericht wordt gereferreerd is niet gevonden in uw kalender.';
|
||||
$labels['itipmailbodyaccepted'] = "\$sender heeft de uitnodiging geaccepteerd voor de volgende afspraak:\n\n*\$title*\n\nWanneer: \$date\n\nGenodigden: \$attendees";
|
||||
$labels['itipmailbodytentative'] = "\$sender heeft onder voorbehoud de uitnodiging geaccepteerd voor de volgende afspraak:\n\n*\$title*\n\nWanneer: \$date\n\nGenodigden: \$attendees";
|
||||
$labels['itipmailbodydeclined'] = "\$sender heeft de uitnodiging afgewezen voor de volgende afspraak:\n\n*\$title*\n\nWanneer: \$date\n\nGenodigden: \$attendees";
|
||||
$labels['itipmailbodycancel'] = "\$sender heeft je deelname afgewezen voor de volgende afspraak:\n\n*\$title*\n\nWanneer: \$date";
|
||||
$labels['itipdeclineevent'] = 'Wil u de uitnodiging voor deze afspraak afwijzen?';
|
||||
$labels['declinedeleteconfirm'] = 'Wilt u tevens deze afgewezen uitnodiging verwijderen uit je kalender?';
|
||||
$labels['itipcomment'] = 'Invitation/notification comment';
|
||||
$labels['notanattendee'] = 'U staat niet op de lijst van genodigden voor deze afspraak';
|
||||
$labels['eventcancelled'] = 'Dit evenement is afgelast';
|
||||
$labels['saveincalendar'] = 'bewaar in';
|
||||
$labels['updatemycopy'] = 'Wijzig in mijn kalender';
|
||||
$labels['savetocalendar'] = 'Opslaan in kalender';
|
||||
$labels['resource'] = 'Hulpmiddel';
|
||||
$labels['addresource'] = 'Voeg hulpmiddel toe';
|
||||
$labels['findresources'] = 'Vind hulpmiddelen';
|
||||
$labels['resourcedetails'] = 'Details';
|
||||
$labels['resourceavailability'] = 'Beschikbaarheid';
|
||||
$labels['resourceowner'] = 'Eigenaar';
|
||||
$labels['resourceadded'] = 'De resource is toegevoegd aan uw activiteit';
|
||||
$labels['resourceadded'] = 'Hulpmiddel is toegevoegd aan uw afspraak';
|
||||
$labels['tabsummary'] = 'Samenvatting';
|
||||
$labels['tabrecurrence'] = 'Herhaling';
|
||||
$labels['tabattendees'] = 'Deelnemers';
|
||||
$labels['tabresources'] = 'Resources';
|
||||
$labels['tabattachments'] = 'Bijlagen';
|
||||
$labels['tabresources'] = 'Middelen';
|
||||
$labels['tabattachments'] = 'Toebehoren';
|
||||
$labels['tabsharing'] = 'Delen';
|
||||
$labels['deleteobjectconfirm'] = 'Weet u zeker dat u deze activiteit wilt verwijderen?';
|
||||
$labels['deleteventconfirm'] = 'Weet u zeker dat u deze activiteit wilt verwijderen?';
|
||||
$labels['deletecalendarconfirm'] = 'Weet u zeker dat u deze agenda en alle activiteiten erin wilt verwijderen?';
|
||||
$labels['deletecalendarconfirmrecursive'] = 'Weet u zeker dat u deze agenda en alle activiteiten erin alsook de subagenda\'s wilt verwijderen?';
|
||||
$labels['savingdata'] = 'Gegevens opslaan...';
|
||||
$labels['errorsaving'] = 'Opslaan van wijzigingen is mislukt.';
|
||||
$labels['operationfailed'] = 'De gevraagde bewerking is mislukt.';
|
||||
$labels['invalideventdates'] = 'Ongeldige datums ingevoerd! Controleer de invoer.';
|
||||
$labels['invalidcalendarproperties'] = 'Ongeldige agenda-eigenschappen! Stel een geldige naam in.';
|
||||
$labels['searchnoresults'] = 'Geen activiteiten gevonden in de geselecteerde agenda\'s.';
|
||||
$labels['successremoval'] = 'De activiteit is met succes verwijderd.';
|
||||
$labels['successrestore'] = 'De activiteit is met succes hersteld.';
|
||||
$labels['errornotifying'] = 'Versturen van meldingen naar deelnemers van activiteit is mislukt';
|
||||
$labels['errorimportingevent'] = 'Importeren van activiteit is mislukt';
|
||||
$labels['importwarningexists'] = 'Een exemplaar van deze activiteit staat al in uw agenda.';
|
||||
$labels['newerversionexists'] = 'Er bestaat al een nieuwere versie van deze activiteit! Bewerking afgebroken.';
|
||||
$labels['nowritecalendarfound'] = 'Geen agenda gevonden om de activiteit op te slaan';
|
||||
$labels['importedsuccessfully'] = 'De activiteit is met succes toegevoegd aan \'$calendar\'';
|
||||
$labels['updatedsuccessfully'] = 'De activiteit is met succes bijgewerkt in \'$calendar\'';
|
||||
$labels['attendeupdateesuccess'] = 'Status van deelnemer is met succes bijgewerkt';
|
||||
$labels['itipsendsuccess'] = 'Uitnodiging is naar deelnemers verstuurd.';
|
||||
$labels['itipresponseerror'] = 'Versturen van antwoord op uitnodiging voor activiteit is mislukt';
|
||||
$labels['itipinvalidrequest'] = 'Deze uitnodiging is niet meer geldig';
|
||||
$labels['sentresponseto'] = 'Antwoord op uitnodiging is met succes verstuurd naar $mailto';
|
||||
$labels['localchangeswarning'] = 'U gaat wijzigingen maken die alleen zichtbaar zullen zijn in uw eigen agenda en die niet naar de organisator van de activiteit zullen worden verstuurd.';
|
||||
$labels['importsuccess'] = '$nr activiteiten met succes geïmporteerd';
|
||||
$labels['importnone'] = 'Geen activiteiten gevonden om te importeren';
|
||||
$labels['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 hebt geen administratorrechten voor deze agenda.';
|
||||
$labels['changeeventconfirm'] = 'Activiteit wijzigen';
|
||||
$labels['removeeventconfirm'] = 'Activiteit verwijderen';
|
||||
$labels['changerecurringeventwarning'] = 'Dit is een herhaalde activiteit. Wilt u alleen de huidige activiteit, deze en alle toekomstige herhalingen of alle herhalingen bewerken of wilt u deze opslaan als een nieuwe activiteit?';
|
||||
$labels['removerecurringeventwarning'] = 'Dit is een herhaalde activiteit. Wilt u alleen de huidige activiteit, deze en alle toekomstige herhalingen of alle herhalingen van deze activiteit verwijderen?';
|
||||
$labels['removerecurringallonly'] = 'Dit is een herhaalde activiteit. Als deelnemer kunt u alleen de volledige activiteit met alle herhalingen verwijderen.';
|
||||
$labels['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'] = 'Opslaan als nieuw';
|
||||
$labels['saveasnew'] = 'Bewaar als nieuw';
|
||||
$labels['birthdays'] = 'Verjaardagen';
|
||||
$labels['birthdayscalendar'] = 'Verjaardagskalender';
|
||||
$labels['displaybirthdayscalendar'] = 'Verjaardagskalender weergeven';
|
||||
$labels['displaybirthdayscalendar'] = 'Toon verjaardagskalender';
|
||||
$labels['birthdayscalendarsources'] = 'Uit deze adresboeken';
|
||||
$labels['birthdayeventtitle'] = 'verjaardag van $name';
|
||||
$labels['birthdayage'] = '$age jaar';
|
||||
$labels['objectchangelog'] = 'Geschiedenis wijzigen';
|
||||
$labels['objectdiff'] = 'Wijzigingen van $rev1 tot $rev2';
|
||||
$labels['objectnotfound'] = 'Laden van activiteitsgegevens is mislukt';
|
||||
$labels['objectchangelognotavailable'] = 'Voor deze activiteit kunt u de geschiedenis niet wijzigen';
|
||||
$labels['objectdiffnotavailable'] = 'Geen vergelijking mogelijk voor de geselecteerde revisies';
|
||||
$labels['revisionrestoreconfirm'] = 'Weet u zeker dat u revisie $rev van deze activiteit wilt herstellen? Met deze actie vervangt u de huidige activiteit door de oude versie.';
|
||||
$labels['objectrestoresuccess'] = 'Revisie $rev met succes hersteld';
|
||||
$labels['objectrestoreerror'] = 'Herstellen van oude revisie is mislukt';
|
||||
$labels['arialabelminical'] = 'Datum in agenda selecteren';
|
||||
$labels['arialabelcalendarview'] = 'Agendaweergave';
|
||||
$labels['arialabelsearchform'] = 'Zoekformulier voor activiteiten';
|
||||
$labels['arialabelquicksearchbox'] = 'Zoekopdracht voor activiteiten';
|
||||
$labels['arialabelcalsearchform'] = 'Zoekformulier voor agenda\'s';
|
||||
$labels['calendaractions'] = 'Acties voor agenda';
|
||||
$labels['arialabeleventattendees'] = 'Lijst met deelnemers van activiteit';
|
||||
$labels['arialabeleventresources'] = 'Lijst met resources voor activiteit';
|
||||
$labels['arialabelresourcesearchform'] = 'Zoekformulier voor resources';
|
||||
$labels['arialabelresourceselection'] = 'Beschikbare resources';
|
||||
$labels['birthdayage'] = 'Leeftijd $age';
|
||||
?>
|
||||
|
|
|
@ -8,36 +8,27 @@
|
|||
*/
|
||||
$labels['default_view'] = 'Domyślny widok';
|
||||
$labels['time_format'] = 'Format czasu';
|
||||
$labels['timeslots'] = 'Przedziały czasowe w ciągu godziny';
|
||||
$labels['first_day'] = 'Pierwszy dzień tygodnia';
|
||||
$labels['first_hour'] = 'Pierwsza godzina';
|
||||
$labels['workinghours'] = 'Godziny robocze';
|
||||
$labels['first_hour'] = 'Pierwsza godzina do wyświetlenia';
|
||||
$labels['workinghours'] = 'Godziny pracy';
|
||||
$labels['add_category'] = 'Dodaj kategorię';
|
||||
$labels['remove_category'] = 'Usuń kategorię';
|
||||
$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['aftertrash'] = 'Przenieś do kosza';
|
||||
$labels['afterdelete'] = 'Usuń wiadomość';
|
||||
$labels['afterflagdeleted'] = 'Oznacz jako usunięta';
|
||||
$labels['afterflagdeleted'] = 'Oznacz jako usunięte';
|
||||
$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';
|
||||
$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['agenda'] = 'Agenda';
|
||||
$labels['new'] = 'Nowy';
|
||||
$labels['new_event'] = 'Nowe zdarzenie';
|
||||
$labels['edit_event'] = 'Edytuj zdarzenie';
|
||||
|
@ -45,223 +36,68 @@ $labels['edit'] = 'Edytuj';
|
|||
$labels['save'] = 'Zapisz';
|
||||
$labels['removelist'] = 'Usuń z listy';
|
||||
$labels['cancel'] = 'Anuluj';
|
||||
$labels['select'] = 'Wybierz';
|
||||
$labels['print'] = 'Drukuj';
|
||||
$labels['printtitle'] = 'Drukuj kalendarze';
|
||||
$labels['title'] = 'Podsumowanie';
|
||||
$labels['description'] = 'Opis';
|
||||
$labels['all-day'] = 'cały dzień';
|
||||
$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['exporttitle'] = 'Eksport do iCalendar';
|
||||
$labels['url'] = 'URL';
|
||||
$labels['date'] = 'Data';
|
||||
$labels['start'] = 'Początek';
|
||||
$labels['starttime'] = 'Początek';
|
||||
$labels['start'] = 'Start';
|
||||
$labels['end'] = 'Koniec';
|
||||
$labels['endtime'] = 'Koniec';
|
||||
$labels['repeat'] = 'Powtórz';
|
||||
$labels['selectdate'] = 'Wybierz datę';
|
||||
$labels['freebusy'] = 'Pokaż mnie jako';
|
||||
$labels['free'] = 'Wolny';
|
||||
$labels['busy'] = 'Zajęty';
|
||||
$labels['outofoffice'] = 'Poza biurem';
|
||||
$labels['tentative'] = 'Niepewny';
|
||||
$labels['mystatus'] = 'Mój status';
|
||||
$labels['status'] = 'Status';
|
||||
$labels['status-confirmed'] = 'Potwierdzony';
|
||||
$labels['status-cancelled'] = 'Anulowany';
|
||||
$labels['status-tentative'] = 'Niepewny';
|
||||
$labels['status-cancelled'] = 'Anulowane';
|
||||
$labels['priority'] = 'Priorytet';
|
||||
$labels['sensitivity'] = 'Poufność';
|
||||
$labels['public'] = 'publiczny';
|
||||
$labels['private'] = 'prywatny';
|
||||
$labels['confidential'] = 'poufny';
|
||||
$labels['links'] = 'Reference';
|
||||
$labels['alarms'] = 'Przypomnienie';
|
||||
$labels['comment'] = 'Komentarz';
|
||||
$labels['created'] = 'Utworzono';
|
||||
$labels['sensitivity'] = 'Prywatność';
|
||||
$labels['created'] = 'Utworzone';
|
||||
$labels['changed'] = 'Ostatnia modyfikacja';
|
||||
$labels['unknown'] = 'Nieznany';
|
||||
$labels['unknown'] = 'Nieznane';
|
||||
$labels['eventoptions'] = 'Opcje';
|
||||
$labels['generated'] = 'wygenerowano';
|
||||
$labels['eventhistory'] = 'Historia';
|
||||
$labels['removelink'] = 'Usuń odnośnik e-mail';
|
||||
$labels['printdescriptions'] = 'Drukuj opisy';
|
||||
$labels['parentcalendar'] = 'Wstaw wewnątrz';
|
||||
$labels['searchearlierdates'] = '« Szukaj wcześniejszych zdarzeń';
|
||||
$labels['searchlaterdates'] = 'Szukaj późniejszych zdarzeń »';
|
||||
$labels['laterevents'] = 'Później';
|
||||
$labels['andnmore'] = '$nr więcej...';
|
||||
$labels['togglerole'] = 'Kliknuj aby przestawić rolę';
|
||||
$labels['createfrommail'] = 'Zapisz jako zdarzenie';
|
||||
$labels['importevents'] = 'Importuj zdarzenia';
|
||||
$labels['importrange'] = 'Zdarzenia z';
|
||||
$labels['onemonthback'] = '1 miesiąc wstecz';
|
||||
$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['showurl'] = 'Pokaż URL kalendarza';
|
||||
$labels['calsearchresults'] = 'Dostępne Kalendarze';
|
||||
$labels['nocalendarsfound'] = 'Nie znaleziono 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'] = 'dopóki';
|
||||
$labels['today'] = 'Dzisiaj';
|
||||
$labels['tomorrow'] = 'Jutro';
|
||||
$labels['thisweek'] = 'Bieżący tydzień';
|
||||
$labels['thisweek'] = 'Ten tydzień';
|
||||
$labels['nextweek'] = 'Następny tydzień';
|
||||
$labels['prevweek'] = 'Poprzedni tydzień';
|
||||
$labels['thismonth'] = 'Bieżący miesiąc';
|
||||
$labels['thismonth'] = 'Ten miesiąc';
|
||||
$labels['nextmonth'] = 'Następny miesiąc';
|
||||
$labels['weekofyear'] = 'Tydzień';
|
||||
$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ępny';
|
||||
$labels['confirmstate'] = 'Status';
|
||||
$labels['addattendee'] = 'Dodaj uczestnika';
|
||||
$labels['roleorganizer'] = 'Organizator';
|
||||
$labels['rolerequired'] = 'Wymagany';
|
||||
$labels['roleoptional'] = 'Opcjonalny';
|
||||
$labels['rolechair'] = 'Przewodniczący';
|
||||
$labels['rolenonparticipant'] = 'Nieobecny';
|
||||
$labels['cutypeindividual'] = 'Osoba';
|
||||
$labels['cutypegroup'] = 'Grupa';
|
||||
$labels['cutyperesource'] = 'Zasób';
|
||||
$labels['cutyperoom'] = 'Pokój';
|
||||
$labels['rolerequired'] = 'Wymagane';
|
||||
$labels['availfree'] = 'Wolny';
|
||||
$labels['availbusy'] = 'Zajęty';
|
||||
$labels['availunknown'] = 'Nieznany';
|
||||
$labels['availtentative'] = 'Niepewny';
|
||||
$labels['availunknown'] = 'Nieznane';
|
||||
$labels['availoutofoffice'] = 'Poza biurem';
|
||||
$labels['scheduletime'] = 'Sprawdź dostępność';
|
||||
$labels['sendinvitations'] = 'Wyślij zaproszenia';
|
||||
$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\n\$description\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 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\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['itipmailbodydelegated'] = "\$sender oddelegował udział w następującym wydarzeniu:\n\n*\$title*\n\nKiedy: \$date";
|
||||
$labels['itipmailbodydelegatedto'] = "\$sender oddelegował do ciebie udział w następującym wydarzeniu:\n\n*\$title*\n\nKiedy: \$date";
|
||||
$labels['itipdeclineevent'] = 'Czy chcesz odrzucić zaproszenie na to zdarzenie?';
|
||||
$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';
|
||||
$labels['updatemycopy'] = 'Uaktualnij w moim kalendarzu';
|
||||
$labels['savetocalendar'] = 'Zapisz do kalendarza';
|
||||
$labels['savetocalendar'] = 'Zapisz w kalendarzu';
|
||||
$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['nolaterevents'] = 'Brak późniejszych zdarzeń';
|
||||
$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';
|
||||
$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 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'] = '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.';
|
||||
$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['deletecalendarconfirm'] = 'Czy na pewno chcesz usunąć ten kalendarz i wszystkie jego zdarzenia?';
|
||||
$labels['changeeventconfirm'] = 'Zmodyfikuj zdarzenie';
|
||||
$labels['removeeventconfirm'] = 'Usuń 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 nowe';
|
||||
$labels['birthdays'] = 'Uruodziny';
|
||||
$labels['birthdayscalendar'] = 'Kalendarz Urodzin';
|
||||
$labels['allevents'] = 'Wszystko';
|
||||
$labels['saveasnew'] = 'Zapisz jako nowy';
|
||||
$labels['birthdays'] = 'Urodziny';
|
||||
$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['objectchangelog'] = 'Historia zmian';
|
||||
$labels['objectdiff'] = 'Zmiany od $rev1 do $rev2';
|
||||
$labels['objectnotfound'] = 'Nie udało się wczytać zdarzenia';
|
||||
$labels['objectchangelognotavailable'] = 'Historia zmian jest niedostępna dla tego zdarzenia';
|
||||
$labels['objectdiffnotavailable'] = 'Nie można porównać wybranych wersji';
|
||||
$labels['revisionrestoreconfirm'] = 'Czy na pewno chcesz przywrócić wersję $rev tego zdarzenia? Bierzące zdarzenie zostanie zastąpione starszą wersją.';
|
||||
$labels['objectrestoresuccess'] = 'Wersja $rev została pomyślnie przywrócona';
|
||||
$labels['objectrestoreerror'] = 'Nie udało się przywrócić starej wersji';
|
||||
$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';
|
||||
$labels['user'] = 'Użytkownik';
|
||||
?>
|
||||
|
|
|
@ -27,18 +27,12 @@ $labels['afterflagdeleted'] = 'Oznacz jako usunięta';
|
|||
$labels['aftermoveto'] = 'Przenieś do...';
|
||||
$labels['itipoptions'] = 'Zaproszenia';
|
||||
$labels['afteraction'] = 'Wiadomość jest przetwarzana po zaproszeniu lub aktualizacji';
|
||||
$labels['showweekno'] = 'Wyświetlaj numery tygodni';
|
||||
$labels['weeknonone'] = 'nigdy';
|
||||
$labels['weeknodatepicker'] = 'tylko przy wyborze daty';
|
||||
$labels['weeknoall'] = 'w widoku kalendarza i przy wyborze daty';
|
||||
$labels['calendar'] = 'Kalendarz';
|
||||
$labels['calendars'] = 'Kalendarze';
|
||||
$labels['category'] = 'Kategoria';
|
||||
$labels['categories'] = 'Kategorie';
|
||||
$labels['addcalendar'] = 'Dodaj kalendarz';
|
||||
$labels['createcalendar'] = 'Utwórz nowy kalendarz';
|
||||
$labels['editcalendar'] = 'Edytuj/Udostępnij kalendarz';
|
||||
$labels['deletecalendar'] = 'Usuń kalendarz';
|
||||
$labels['editcalendar'] = 'Edytuj właściwości kalendarza';
|
||||
$labels['name'] = 'Nazwa';
|
||||
$labels['color'] = 'Kolor';
|
||||
$labels['day'] = 'Dzień';
|
||||
|
@ -81,7 +75,6 @@ $labels['mystatus'] = 'Mój status';
|
|||
$labels['status'] = 'Status';
|
||||
$labels['status-confirmed'] = 'Potwierdzony';
|
||||
$labels['status-cancelled'] = 'Anulowany';
|
||||
$labels['status-tentative'] = 'Niepewny';
|
||||
$labels['priority'] = 'Priorytet';
|
||||
$labels['sensitivity'] = 'Poufność';
|
||||
$labels['public'] = 'publiczny';
|
||||
|
@ -101,8 +94,6 @@ $labels['printdescriptions'] = 'Drukuj opisy';
|
|||
$labels['parentcalendar'] = 'Wstaw wewnątrz';
|
||||
$labels['searchearlierdates'] = '« Szukaj wcześniejszych zdarzeń';
|
||||
$labels['searchlaterdates'] = 'Szukaj późniejszych zdarzeń »';
|
||||
$labels['earlierevents'] = 'Wcześniej';
|
||||
$labels['laterevents'] = 'Późniejsze';
|
||||
$labels['andnmore'] = '$nr więcej...';
|
||||
$labels['togglerole'] = 'Kliknuj aby przestawić rolę';
|
||||
$labels['createfrommail'] = 'Zapisz jako zdarzenie';
|
||||
|
@ -113,11 +104,8 @@ $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['showfburl'] = 'Pokaż adres free-busy.';
|
||||
$labels['fburldescription'] = 'Używaj ten adres w aplikacjach obsługujących informacje Free-Busy. Możesz go skopiować i wkleić w dowolnej aplikacji kalendarza, która obsługuje informacje wolny-zajęty w formacie iCal. Dla tego adresu uwierzytelnianie nie jest wymagane.';
|
||||
$labels['findcalendars'] = 'Wyszukaj kalendarze...';
|
||||
$labels['searchterms'] = 'Szukana fraza';
|
||||
$labels['findevents'] = 'Znajdź wydarzenia';
|
||||
$labels['calsearchresults'] = 'Dostępne kalendarze';
|
||||
$labels['calendarsubscribe'] = 'Dodaj do listy na stałe';
|
||||
$labels['nocalendarsfound'] = 'Nie znaleziono żadych kalendarzy';
|
||||
|
@ -127,8 +115,6 @@ $labels['invitationspending'] = 'Oczekujące zaproszenia';
|
|||
$labels['invitationsdeclined'] = 'Odrzucone zaproszenia';
|
||||
$labels['changepartstat'] = 'Zmień status uczestnika';
|
||||
$labels['rsvpcomment'] = 'Treść zaproszenia';
|
||||
$labels['eventstartsync'] = 'Przenieś datę początku zdarzenia do pierwszego wystąpienia';
|
||||
$labels['weekshort'] = 'tydz.';
|
||||
$labels['listrange'] = 'Zakres do pokazania:';
|
||||
$labels['listsections'] = 'Podziel na:';
|
||||
$labels['smartsections'] = 'Inteligentne sekcje';
|
||||
|
@ -165,6 +151,8 @@ $labels['availbusy'] = 'Zajęty';
|
|||
$labels['availunknown'] = 'Nieznany';
|
||||
$labels['availtentative'] = 'Niepewny';
|
||||
$labels['availoutofoffice'] = 'Poza biurem';
|
||||
$labels['delegatedto'] = 'Oddelegowany do:';
|
||||
$labels['delegatedfrom'] = 'Oddelegowany z:';
|
||||
$labels['scheduletime'] = 'Sprawdź dostępność';
|
||||
$labels['sendinvitations'] = 'Wyślij zaproszenia';
|
||||
$labels['sendnotifications'] = 'Powiadom uczestników o zmianach';
|
||||
|
@ -176,7 +164,7 @@ $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\n\$description\n\nW załączeniu plik w formacie iCalendar ze szczegółami zdarzenia, który możesz zaimportować do twojego kalendarza.";
|
||||
$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 cię dotyczy zostało zaktualizowane';
|
||||
|
@ -188,8 +176,8 @@ $labels['itipmailbodyaccepted'] = "\$sender zaakceptował zaproszenie do następ
|
|||
$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['itipmailbodydelegated'] = "\$sender delegował udział w następującym wydarzeniu:\n\n*\$title*\n\nKiedy: \$date";
|
||||
$labels['itipmailbodydelegatedto'] = "\$sender delegował udział w następującym wydarzeniu na ciebie\n\n*\$title*\n\nKiedy: \$date";
|
||||
$labels['itipmailbodydelegated'] = "\$sender oddelegował udział w następującym wydarzeniu:\n\n*\$title*\n\nKiedy: \$date";
|
||||
$labels['itipmailbodydelegatedto'] = "\$sender oddelegował do ciebie udział w następującym wydarzeniu:\n\n*\$title*\n\nKiedy: \$date";
|
||||
$labels['itipdeclineevent'] = 'Czy chcesz odrzucić zaproszenie na to zdarzenie?';
|
||||
$labels['declinedeleteconfirm'] = 'Czy chcesz także usunąć to odrzucone zdarzenie ze swojego kalendarza?';
|
||||
$labels['itipcomment'] = 'Komentarz zaproszenia/powiadomienia';
|
||||
|
@ -201,14 +189,12 @@ $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['legend'] = 'Legenda';
|
||||
$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['resourceprops'] = 'Właściwości zasobów';
|
||||
$labels['resourceowner'] = 'Właściciel';
|
||||
$labels['resourceadded'] = 'Zasób został dodany do twojego zdarzenia';
|
||||
$labels['tabsummary'] = 'Podsumowanie';
|
||||
|
@ -225,7 +211,6 @@ $labels['savingdata'] = 'Zapisuję dane...';
|
|||
$labels['errorsaving'] = 'Błąd podczas zapisu danych.';
|
||||
$labels['operationfailed'] = 'Żądana operacja nie powiodła się.';
|
||||
$labels['invalideventdates'] = 'Błędna data! Proszę sprawdzić wprowadzone dane.';
|
||||
$labels['emptyeventtitle'] = 'Podsumowanie zdarzenia nie może być puste.';
|
||||
$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.';
|
||||
|
@ -238,7 +223,6 @@ $labels['nowritecalendarfound'] = 'Nie znaleziono kalendarza aby zapisać zdarze
|
|||
$labels['importedsuccessfully'] = 'Zdarzenie dodano do \'$calendar\'';
|
||||
$labels['updatedsuccessfully'] = 'Zdarzenie zostało pomyślnie zaktualizowane w \'$calendar\'';
|
||||
$labels['attendeupdateesuccess'] = 'Zaktualizowano status uczestnika.';
|
||||
$labels['errorunknownattendee'] = 'Nie udało się znaleźć informacji o uczestniku.';
|
||||
$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.';
|
||||
|
@ -248,7 +232,6 @@ $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['importtext'] = 'Możesz przesyłać wydarzenia <a href="https://wikipedia.org/wiki/ICalendar">iCalendar</a>w formacie (.ics).';
|
||||
$labels['changeeventconfirm'] = 'Zmień zdarzenie';
|
||||
$labels['removeeventconfirm'] = 'Usuń 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?';
|
||||
|
@ -258,12 +241,11 @@ $labels['currentevent'] = 'Bieżące';
|
|||
$labels['futurevents'] = 'Przyszłe';
|
||||
$labels['allevents'] = 'Wszystkie';
|
||||
$labels['saveasnew'] = 'Zapisz jako nowe';
|
||||
$labels['recurrenceerror'] = 'Nie można ustalić reguły powtarzalności dla podanej daty początkowej.';
|
||||
$labels['birthdays'] = 'Urodziny';
|
||||
$labels['birthdays'] = 'Uruodziny';
|
||||
$labels['birthdayscalendar'] = 'Kalendarz Urodzin';
|
||||
$labels['displaybirthdayscalendar'] = 'Wyświetl kalendarz urodzin';
|
||||
$labels['birthdayscalendarsources'] = 'Z tych książek adresowych';
|
||||
$labels['birthdayeventtitle'] = 'Urodziny $name';
|
||||
$labels['birthdayeventtitle'] = 'Urodziny $name\'s';
|
||||
$labels['birthdayage'] = 'Wiek $age';
|
||||
$labels['objectchangelog'] = 'Historia zmian';
|
||||
$labels['objectdiff'] = 'Zmiany od $rev1 do $rev2';
|
||||
|
@ -271,18 +253,16 @@ $labels['objectnotfound'] = 'Nie udało się wczytać zdarzenia';
|
|||
$labels['objectchangelognotavailable'] = 'Historia zmian jest niedostępna dla tego zdarzenia';
|
||||
$labels['objectdiffnotavailable'] = 'Nie można porównać wybranych wersji';
|
||||
$labels['revisionrestoreconfirm'] = 'Czy na pewno chcesz przywrócić wersję $rev tego zdarzenia? Bierzące zdarzenie zostanie zastąpione starszą wersją.';
|
||||
$labels['objectrestoresuccess'] = 'Wersja $rev poprawnie przywrócona';
|
||||
$labels['objectrestoreerror'] = 'Błąd przywracania starej wersji';
|
||||
$labels['objectrestoresuccess'] = 'Wersja $rev została pomyślnie przywrócona';
|
||||
$labels['objectrestoreerror'] = 'Nie udało się przywrócić starej wersji';
|
||||
$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['calendarprops'] = 'Właściwości kalendarza';
|
||||
$labels['arialabeleventattendees'] = 'Lista uczestników zdarzenia';
|
||||
$labels['arialabeleventresources'] = 'Lista zasobów zdarzenia';
|
||||
$labels['arialabelresourcesearchform'] = 'Formularz wyszukiwania zasobów';
|
||||
$labels['arialabelresourceselection'] = 'Dostępne zasoby';
|
||||
$labels['arialabeleventform'] = 'Formularz edycji wydarzenia';
|
||||
?>
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
*/
|
||||
$labels['default_view'] = 'Visualização padrão';
|
||||
$labels['time_format'] = 'Formato da hora';
|
||||
$labels['timeslots'] = 'Faixa de tempo por hora';
|
||||
$labels['timeslots'] = 'Time slots per hour';
|
||||
$labels['first_day'] = 'Primeiro dia da semana';
|
||||
$labels['first_hour'] = 'Primeira hora a mostrar';
|
||||
$labels['workinghours'] = 'Horário de trabalho';
|
||||
|
@ -20,20 +20,12 @@ $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'] = 'Não fazer nada';
|
||||
$labels['aftertrash'] = 'Enviar para a lixeira';
|
||||
$labels['afterdelete'] = 'Deletar a mensagem';
|
||||
$labels['afterflagdeleted'] = 'Marcar como deletado';
|
||||
$labels['aftermoveto'] = 'Enviar para...';
|
||||
$labels['itipoptions'] = 'Convites de Eventos';
|
||||
$labels['afteraction'] = 'O que fazer após um convite ou atualização em mensagem for processada';
|
||||
$labels['showweekno'] = 'Exibir número de semanas';
|
||||
$labels['weeknonone'] = 'nunca';
|
||||
$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';
|
||||
|
@ -45,7 +37,6 @@ $labels['new_event'] = 'Novo evento';
|
|||
$labels['edit_event'] = 'Editar evento';
|
||||
$labels['edit'] = 'Editar';
|
||||
$labels['save'] = 'Gravar';
|
||||
$labels['removelist'] = 'Remover da lista';
|
||||
$labels['cancel'] = 'Cancelar';
|
||||
$labels['select'] = 'Selecionar';
|
||||
$labels['print'] = 'Imprimir';
|
||||
|
@ -56,15 +47,13 @@ $labels['all-day'] = 'dia todo';
|
|||
$labels['export'] = 'Exportar';
|
||||
$labels['exporttitle'] = 'Exportar para iCalendar';
|
||||
$labels['exportrange'] = 'Eventos de';
|
||||
$labels['exportattachments'] = 'Com anexos';
|
||||
$labels['customdate'] = 'Data personalizada';
|
||||
$labels['exportattachments'] = 'With attachments';
|
||||
$labels['customdate'] = 'Custom date';
|
||||
$labels['location'] = 'Local';
|
||||
$labels['url'] = 'URL';
|
||||
$labels['date'] = 'Data';
|
||||
$labels['start'] = 'Início';
|
||||
$labels['starttime'] = 'Hora de início';
|
||||
$labels['end'] = 'Término';
|
||||
$labels['endtime'] = 'Hora de término';
|
||||
$labels['repeat'] = 'Repetir';
|
||||
$labels['selectdate'] = 'Escolha a data';
|
||||
$labels['freebusy'] = 'Mostrar me como';
|
||||
|
@ -72,11 +61,9 @@ $labels['free'] = 'Disponível';
|
|||
$labels['busy'] = 'Ocupado';
|
||||
$labels['outofoffice'] = 'Fora de escritório';
|
||||
$labels['tentative'] = 'Tentativa';
|
||||
$labels['mystatus'] = 'Minha situação';
|
||||
$labels['status'] = 'Situação';
|
||||
$labels['status-confirmed'] = 'Confirmado';
|
||||
$labels['status-cancelled'] = 'Cancalado';
|
||||
$labels['status-tentative'] = 'Tentative';
|
||||
$labels['priority'] = 'Prioridade';
|
||||
$labels['sensitivity'] = 'Privacidade';
|
||||
$labels['public'] = 'público';
|
||||
|
@ -85,18 +72,14 @@ $labels['confidential'] = 'confidencial';
|
|||
$labels['links'] = 'Reference';
|
||||
$labels['alarms'] = 'Lembrete';
|
||||
$labels['comment'] = 'Comentário';
|
||||
$labels['created'] = 'Criado';
|
||||
$labels['changed'] = 'Última modificação';
|
||||
$labels['created'] = 'Created';
|
||||
$labels['unknown'] = 'Desconhecido';
|
||||
$labels['eventoptions'] = 'Opções';
|
||||
$labels['generated'] = 'gerado em';
|
||||
$labels['eventhistory'] = 'História';
|
||||
$labels['removelink'] = 'Remover referência do email';
|
||||
$labels['printdescriptions'] = 'Descrições de impressão';
|
||||
$labels['parentcalendar'] = 'Inserir dentro';
|
||||
$labels['searchearlierdates'] = '« Procurar por eventos anteriores';
|
||||
$labels['searchlaterdates'] = 'Procurar por eventos posteriores »';
|
||||
$labels['laterevents'] = 'Mais tarde';
|
||||
$labels['andnmore'] = '$nr mais...';
|
||||
$labels['togglerole'] = 'Clique para alternar o papel';
|
||||
$labels['createfrommail'] = 'Salvar como evento';
|
||||
|
@ -106,18 +89,11 @@ $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'] = 'Copie esse endereço para um aplicativo cliente do <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a> (ex. Evolution ou Mozilla Thunderbird) para sincronização completa desse calendário específico com seu computador ou celular.';
|
||||
$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'] = 'Buscar termos';
|
||||
$labels['searchterms'] = 'Search terms';
|
||||
$labels['calsearchresults'] = 'Calendários disponíveis';
|
||||
$labels['calendarsubscribe'] = 'Listar permanentemente';
|
||||
$labels['nocalendarsfound'] = 'Nenhum calendário encontrado';
|
||||
$labels['nrcalendarsfound'] = '$nr calendários encontrados';
|
||||
$labels['quickview'] = 'Ver apenas esse calendário';
|
||||
$labels['invitationspending'] = 'Convites pendentes';
|
||||
$labels['invitationsdeclined'] = 'Convites recusados';
|
||||
$labels['changepartstat'] = 'Alterar situação de participantes';
|
||||
$labels['rsvpcomment'] = 'Texto do convite';
|
||||
$labels['listrange'] = 'Intervalo para exibir:';
|
||||
$labels['listsections'] = 'Dividir em:';
|
||||
$labels['smartsections'] = 'Seções inteligentes';
|
||||
|
@ -126,13 +102,11 @@ $labels['today'] = 'Hoje';
|
|||
$labels['tomorrow'] = 'Amanhã';
|
||||
$labels['thisweek'] = 'Esta semana';
|
||||
$labels['nextweek'] = 'Próxima semana';
|
||||
$labels['prevweek'] = 'Semana passada';
|
||||
$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 de lembrete padrão';
|
||||
$labels['defaultalarmoffset'] = 'Horário padrão de lembrete';
|
||||
$labels['attendee'] = 'Participante';
|
||||
|
@ -143,17 +117,15 @@ $labels['addattendee'] = 'Adicionar participante';
|
|||
$labels['roleorganizer'] = 'Organizador';
|
||||
$labels['rolerequired'] = 'Obrigatório';
|
||||
$labels['roleoptional'] = 'Opcional';
|
||||
$labels['rolechair'] = 'Cadeira';
|
||||
$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'] = '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';
|
||||
|
@ -162,7 +134,6 @@ $labels['onlyworkinghours'] = 'Procurar disponibilidade dentro do meu horário d
|
|||
$labels['reqallattendees'] = 'Obrigató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'] = '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.";
|
||||
|
@ -170,27 +141,20 @@ $labels['invitationattendlinks'] = "No caso do seu cliente de e-mail não suport
|
|||
$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['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'] = 'Você deseja recusar o convite para este evento?';
|
||||
$labels['declinedeleteconfirm'] = 'Deseja também deletar esse evento recusado do seu calendário?';
|
||||
$labels['itipcomment'] = 'Comentário do Convite/Notificação';
|
||||
$labels['itipcommenttitle'] = 'Estas observações serão enviadas com o convite/notificação aos participantes.';
|
||||
$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['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';
|
||||
|
@ -207,7 +171,7 @@ $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'] = 'Tem a certeza que quer eliminar este calendário com todos os seus eventos e sub-calendários?';
|
||||
$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.';
|
||||
|
@ -228,42 +192,21 @@ $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'] = 'Você está prestes a fazer modificações que serão apenas alteradas no seu calendário e não será enviado ao organizador do evento.';
|
||||
$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['removeeventconfirm'] = 'Deletar 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['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 você só pode apagar o evento com todas as ocorrências.';
|
||||
$labels['currentevent'] = 'Atual';
|
||||
$labels['futurevents'] = 'Futuro';
|
||||
$labels['allevents'] = 'Todos';
|
||||
$labels['saveasnew'] = 'Salvar como novo';
|
||||
$labels['birthdays'] = 'Aniversários';
|
||||
$labels['birthdayscalendar'] = 'Calendário de Aniversários';
|
||||
$labels['displaybirthdayscalendar'] = 'Mostrar calendário de aniversários';
|
||||
$labels['birthdayscalendarsources'] = 'Desses catálogos de endereços';
|
||||
$labels['birthdayeventtitle'] = '$name\' - Aniversário';
|
||||
$labels['birthdayage'] = '$age anos';
|
||||
$labels['objectchangelog'] = 'Mudar Histórico';
|
||||
$labels['objectdiff'] = 'Alterações da $rev1 para $rev2';
|
||||
$labels['objectnotfound'] = 'Falha ao ler os dados do evento';
|
||||
$labels['objectchangelognotavailable'] = 'Não é possível alterar o histórico deste evento';
|
||||
$labels['objectdiffnotavailable'] = 'Não é possível comparar as revisões selecionadas';
|
||||
$labels['revisionrestoreconfirm'] = 'Confirmar a restauração da revisão $rev deste evento? Os dados atuais serão substituídos pelos da versão anterior.';
|
||||
$labels['objectrestoresuccess'] = 'Revisão $rev restaurada com sucesso';
|
||||
$labels['objectrestoreerror'] = 'Falha ao restaurar a revisão antiga';
|
||||
$labels['arialabelminical'] = 'Seleção da data do calendário';
|
||||
$labels['arialabelcalendarview'] = 'Vista do calendário';
|
||||
$labels['arialabelsearchform'] = 'Formulário de pesquisa de eventos';
|
||||
$labels['arialabelquicksearchbox'] = 'Pesquisa de eventos';
|
||||
$labels['arialabelcalsearchform'] = 'Formulário 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'] = 'Formulário de pesquisa de recursos';
|
||||
$labels['arialabelresourceselection'] = 'Recursos disponíveis';
|
||||
$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';
|
||||
?>
|
||||
|
|
|
@ -32,6 +32,7 @@ $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';
|
||||
|
@ -74,7 +75,6 @@ $labels['mystatus'] = 'O meu estado';
|
|||
$labels['status'] = 'Estado';
|
||||
$labels['status-confirmed'] = 'Confirmado';
|
||||
$labels['status-cancelled'] = 'Cancelado';
|
||||
$labels['status-tentative'] = 'Tentativa';
|
||||
$labels['priority'] = 'Prioridade';
|
||||
$labels['sensitivity'] = 'Privacidade';
|
||||
$labels['public'] = 'público';
|
||||
|
@ -151,6 +151,8 @@ $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';
|
||||
|
@ -162,6 +164,7 @@ $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';
|
||||
|
|
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/
|
||||
*/
|
||||
?>
|
|
@ -27,18 +27,12 @@ $labels['afterflagdeleted'] = 'Пометить как удалённое';
|
|||
$labels['aftermoveto'] = 'Переместить в...';
|
||||
$labels['itipoptions'] = 'Приглашения на события';
|
||||
$labels['afteraction'] = 'После того, как приглашение или сообщение о его изменении обработано';
|
||||
$labels['showweekno'] = 'Показать номера недели';
|
||||
$labels['weeknonone'] = 'никогда';
|
||||
$labels['weeknodatepicker'] = 'только в режиме выбора даты';
|
||||
$labels['weeknoall'] = 'посмотреть в режиме выбора даты и календаря';
|
||||
$labels['calendar'] = 'Календарь';
|
||||
$labels['calendars'] = 'Календари';
|
||||
$labels['category'] = 'Категория';
|
||||
$labels['categories'] = 'Категории';
|
||||
$labels['addcalendar'] = 'Добавить календарь';
|
||||
$labels['createcalendar'] = 'Создать новый календарь';
|
||||
$labels['editcalendar'] = 'Редактировать/Поделиться календарь';
|
||||
$labels['deletecalendar'] = 'Удалить календарь';
|
||||
$labels['editcalendar'] = 'Редактировать свойства календаря';
|
||||
$labels['name'] = 'Имя';
|
||||
$labels['color'] = 'Цвет';
|
||||
$labels['day'] = 'День';
|
||||
|
@ -81,7 +75,6 @@ $labels['mystatus'] = 'Мой статус';
|
|||
$labels['status'] = 'Статус';
|
||||
$labels['status-confirmed'] = 'Подтвеждённый';
|
||||
$labels['status-cancelled'] = 'Отмененные';
|
||||
$labels['status-tentative'] = 'Неопределённо';
|
||||
$labels['priority'] = 'Приоритет';
|
||||
$labels['sensitivity'] = 'Секретность';
|
||||
$labels['public'] = 'общедоступная';
|
||||
|
@ -101,8 +94,6 @@ $labels['printdescriptions'] = 'Печатать описания';
|
|||
$labels['parentcalendar'] = 'Вставить внутри';
|
||||
$labels['searchearlierdates'] = '« Искать события раньше';
|
||||
$labels['searchlaterdates'] = 'Искать события позже »';
|
||||
$labels['earlierevents'] = 'Ранее';
|
||||
$labels['laterevents'] = 'Позднее';
|
||||
$labels['andnmore'] = '$nr больше...';
|
||||
$labels['togglerole'] = 'Кликните для переключения роли';
|
||||
$labels['createfrommail'] = 'Сохранить как событие';
|
||||
|
@ -113,11 +104,8 @@ $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['showfburl'] = 'Показать свободный-занятый URL';
|
||||
$labels['fburldescription'] = 'Используйте следующий адрес для доступа к информации свободе-занятости из других приложений. Вы можете скопировать и вставить это в любое программное обеспечение календаря, которое поддерживает информацию о свободе-занятости в формате iCal. Для этого URL аутентификация не требуется.';
|
||||
$labels['findcalendars'] = 'Найти календари...';
|
||||
$labels['searchterms'] = 'Условия поиска';
|
||||
$labels['findevents'] = 'Найти события';
|
||||
$labels['calsearchresults'] = 'Доступные календари';
|
||||
$labels['calendarsubscribe'] = 'Всегда показывать';
|
||||
$labels['nocalendarsfound'] = 'Календарей не найдено';
|
||||
|
@ -127,8 +115,6 @@ $labels['invitationspending'] = 'Ожидающие приглашения';
|
|||
$labels['invitationsdeclined'] = 'Отклонённые приглашения';
|
||||
$labels['changepartstat'] = 'Изменить статус участника';
|
||||
$labels['rsvpcomment'] = 'Текст приглашения';
|
||||
$labels['eventstartsync'] = 'Переместить дату начала события к первому случаю';
|
||||
$labels['weekshort'] = 'Нд';
|
||||
$labels['listrange'] = 'Диапазон:';
|
||||
$labels['listsections'] = 'Разделить на:';
|
||||
$labels['smartsections'] = 'Умные секции';
|
||||
|
@ -165,6 +151,8 @@ $labels['availbusy'] = 'Занят';
|
|||
$labels['availunknown'] = 'Неизвестно';
|
||||
$labels['availtentative'] = 'Предварительно';
|
||||
$labels['availoutofoffice'] = 'Вне офиса';
|
||||
$labels['delegatedto'] = 'Поручено:';
|
||||
$labels['delegatedfrom'] = 'Поручено от:';
|
||||
$labels['scheduletime'] = 'Найти доступность';
|
||||
$labels['sendinvitations'] = 'Отправить приглашения';
|
||||
$labels['sendnotifications'] = 'Уведомить участников об изменениях';
|
||||
|
@ -176,7 +164,7 @@ $labels['nextslot'] = 'Следующее время';
|
|||
$labels['suggestedslot'] = 'Предлагаемое время';
|
||||
$labels['noslotfound'] = 'Невозможно найти свободное время';
|
||||
$labels['invitationsubject'] = 'Вы приглашены на "$title"';
|
||||
$labels['invitationmailbody'] = "*\$title*\n\nКогда: \$date\n\nПриглашенные: \$attendees\n\nВо вложении вы найдёте файл iCalendar со всеми деталями события, который вы можете импортировать в приложение календаря.";
|
||||
$labels['invitationmailbody'] = "*\$title*\n\nКогда: \$date\n\nПриглашенные: \$attendees\n\nВо вложении вы найдёте файл iCalendar со всеми деталями события, который Вы можете импортировать в Вашу программу-ежедневник.";
|
||||
$labels['invitationattendlinks'] = "В случае, если Ваш почтовый клиент не поддерживает запросы iTip, Вы можете использовать ссылку данную ниже, чтобы принять или отклонить это приглашение:\n\$url";
|
||||
$labels['eventupdatesubject'] = '"$title" было обновлено';
|
||||
$labels['eventupdatesubjectempty'] = 'Событие, которое касается Вас, было обновлено';
|
||||
|
@ -202,13 +190,11 @@ $labels['savetocalendar'] = 'Сохранить в календарь';
|
|||
$labels['openpreview'] = 'Проверить календарь';
|
||||
$labels['noearlierevents'] = 'Нет предыдущих событий';
|
||||
$labels['nolaterevents'] = 'Нет последующих событий';
|
||||
$labels['legend'] = 'Легенда';
|
||||
$labels['resource'] = 'Ресурс';
|
||||
$labels['addresource'] = 'Зарезервировать ресурс';
|
||||
$labels['findresources'] = 'Найти ресурсы';
|
||||
$labels['resourcedetails'] = 'Подробнее';
|
||||
$labels['resourceavailability'] = 'Доступность';
|
||||
$labels['resourceprops'] = 'Свойства ресурса';
|
||||
$labels['resourceowner'] = 'Владелец';
|
||||
$labels['resourceadded'] = 'Ресурс добавлен в ваше событие';
|
||||
$labels['tabsummary'] = 'Сводка';
|
||||
|
@ -225,7 +211,6 @@ $labels['savingdata'] = 'Сохранение данных...';
|
|||
$labels['errorsaving'] = 'Ошибка сохранения изменений.';
|
||||
$labels['operationfailed'] = 'Не удалось выполнить запрошенную операцию.';
|
||||
$labels['invalideventdates'] = 'Неверная дата! Пожалуйста проверьте данные.';
|
||||
$labels['emptyeventtitle'] = 'Сводка событий не может быть пустой.';
|
||||
$labels['invalidcalendarproperties'] = 'Неверные свойства календаря! Пожалуйста введите допустимые данные.';
|
||||
$labels['searchnoresults'] = 'Событие не найдено в выбранных календарях.';
|
||||
$labels['successremoval'] = 'Событие успешно удалено.';
|
||||
|
@ -238,7 +223,6 @@ $labels['nowritecalendarfound'] = 'Не найден календарь для
|
|||
$labels['importedsuccessfully'] = 'Событие успешно добавлено в \'$calendar\'';
|
||||
$labels['updatedsuccessfully'] = 'Событие успешно обновлено в \'$calendar\'';
|
||||
$labels['attendeupdateesuccess'] = 'Успешно обновлен статус участника';
|
||||
$labels['errorunknownattendee'] = 'Не удалось найти информацию об участнике.';
|
||||
$labels['itipsendsuccess'] = 'Приглашания отправлены участникам.';
|
||||
$labels['itipresponseerror'] = 'Не удалось послать ответ на это приглашение';
|
||||
$labels['itipinvalidrequest'] = 'Это приглашение больше не действительно';
|
||||
|
@ -248,7 +232,6 @@ $labels['importsuccess'] = 'Успешно импортировано $nr соб
|
|||
$labels['importnone'] = 'Не найдено событий для импорта';
|
||||
$labels['importerror'] = 'Ошибка при импорте';
|
||||
$labels['aclnorights'] = 'Вы не имеете прав администратора для этого календаря.';
|
||||
$labels['importtext'] = 'Вы можете загружать события в формате <a href="https://wikipedia.org/wiki/ICalendar">iCalendar</a> (.ics).';
|
||||
$labels['changeeventconfirm'] = 'Изменить событие';
|
||||
$labels['removeeventconfirm'] = 'Удалить событие';
|
||||
$labels['changerecurringeventwarning'] = 'Это - повторяющееся событие. Хотели бы Вы редактировать только текущее событие, это и все будущие повторения, все события или сохранять его как новое событие?';
|
||||
|
@ -258,7 +241,6 @@ $labels['currentevent'] = 'Текущее';
|
|||
$labels['futurevents'] = 'Будущие';
|
||||
$labels['allevents'] = 'Все';
|
||||
$labels['saveasnew'] = 'Сохранить как новое';
|
||||
$labels['recurrenceerror'] = 'Не удалось разрешить правило повторения для указанной даты начала.';
|
||||
$labels['birthdays'] = 'Дни рождения';
|
||||
$labels['birthdayscalendar'] = 'Календарь Дней Рождения';
|
||||
$labels['displaybirthdayscalendar'] = 'Показывать календарь Дней Рождения';
|
||||
|
@ -279,10 +261,8 @@ $labels['arialabelsearchform'] = 'Форма поиска событий';
|
|||
$labels['arialabelquicksearchbox'] = 'Поиск событий';
|
||||
$labels['arialabelcalsearchform'] = 'Форма поиска календарей';
|
||||
$labels['calendaractions'] = 'Действия с календарями';
|
||||
$labels['calendarprops'] = 'Свойства календаря';
|
||||
$labels['arialabeleventattendees'] = 'Участники события';
|
||||
$labels['arialabeleventresources'] = 'Ресурсы события';
|
||||
$labels['arialabelresourcesearchform'] = 'Форма поиска ресурсов';
|
||||
$labels['arialabelresourceselection'] = 'Доступные ресурсы';
|
||||
$labels['arialabeleventform'] = 'Форма редактирования события';
|
||||
?>
|
||||
|
|
|
@ -27,6 +27,7 @@ $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ň';
|
||||
|
@ -69,7 +70,6 @@ $labels['mystatus'] = 'Môj stav';
|
|||
$labels['status'] = 'Stav';
|
||||
$labels['status-confirmed'] = 'Potvrdené';
|
||||
$labels['status-cancelled'] = 'Zrušené';
|
||||
$labels['status-tentative'] = 'Nezáväzne';
|
||||
$labels['priority'] = 'Priorita';
|
||||
$labels['importrange'] = 'Udalosti z';
|
||||
$labels['weekofyear'] = 'Týždeň';
|
||||
|
|
|
@ -32,6 +32,7 @@ $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';
|
||||
|
@ -74,7 +75,6 @@ $labels['mystatus'] = 'Moj status';
|
|||
$labels['status'] = 'Status';
|
||||
$labels['status-confirmed'] = 'Potrjeno';
|
||||
$labels['status-cancelled'] = 'Preklicano';
|
||||
$labels['status-tentative'] = 'Pogojno';
|
||||
$labels['priority'] = 'Prednost';
|
||||
$labels['sensitivity'] = 'Zasebnost';
|
||||
$labels['public'] = 'javno';
|
||||
|
@ -94,7 +94,6 @@ $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['laterevents'] = 'Kasneje';
|
||||
$labels['andnmore'] = '$nr več...';
|
||||
$labels['togglerole'] = 'Klikni za prikaz vloge';
|
||||
$labels['createfrommail'] = 'Shrani kot dogodek';
|
||||
|
@ -152,6 +151,8 @@ $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';
|
||||
|
@ -163,6 +164,7 @@ $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';
|
||||
|
|
|
@ -6,255 +6,4 @@
|
|||
*
|
||||
* 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['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['status-tentative'] = 'Preliminärt';
|
||||
$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['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['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['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['objectchangelog'] = 'Ändringshistorik';
|
||||
$labels['objectnotfound'] = 'Det gick inte att läsa in data för händelsen';
|
||||
$labels['objectchangelognotavailable'] = 'Ändringshistorik är inte tillgänglig för denna händelse';
|
||||
$labels['objectdiffnotavailable'] = 'Ingen jämförelse möjlig för valda revisioner';
|
||||
$labels['revisionrestoreconfirm'] = 'Vill du verkligen återställa revision $rev för denna händelse? Det kommer att ersätta den aktuella händelsen med den gamla versionen.';
|
||||
$labels['arialabelminical'] = 'Kalender datumurval';
|
||||
$labels['arialabelcalendarview'] = 'Kalender vy';
|
||||
$labels['arialabelsearchform'] = 'Händelse sökformulär';
|
||||
$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';
|
||||
?>
|
||||
|
|
|
@ -27,12 +27,12 @@ $labels['afterflagdeleted'] = 'Märk som borttaget';
|
|||
$labels['aftermoveto'] = 'Flytta till ...';
|
||||
$labels['itipoptions'] = 'Händelseinbjudningar';
|
||||
$labels['afteraction'] = 'Efter en inbjudan eller uppdatering bearbetats meddelande';
|
||||
$labels['weeknonone'] = 'aldrig';
|
||||
$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';
|
||||
|
@ -75,7 +75,6 @@ $labels['mystatus'] = 'Min status';
|
|||
$labels['status'] = 'Status';
|
||||
$labels['status-confirmed'] = 'Bekräftad';
|
||||
$labels['status-cancelled'] = 'Inställd';
|
||||
$labels['status-tentative'] = 'Preliminärt';
|
||||
$labels['priority'] = 'Prioritet';
|
||||
$labels['sensitivity'] = 'Integritet';
|
||||
$labels['public'] = 'publik';
|
||||
|
@ -95,7 +94,6 @@ $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['laterevents'] = 'Senare';
|
||||
$labels['andnmore'] = '$nr fler ...';
|
||||
$labels['togglerole'] = 'Klicka för att växla roll';
|
||||
$labels['createfrommail'] = 'Spara som händelse';
|
||||
|
@ -153,6 +151,8 @@ $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';
|
||||
|
@ -164,11 +164,11 @@ $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";
|
||||
|
@ -246,13 +246,10 @@ $labels['birthdayscalendarsources'] = 'Från dessa adressböcker';
|
|||
$labels['birthdayeventtitle'] = '$name\s födelsedag';
|
||||
$labels['birthdayage'] = '$age år';
|
||||
$labels['objectchangelog'] = 'Ändringshistorik';
|
||||
$labels['objectdiff'] = 'Ändringar från $rev1 till $rev2';
|
||||
$labels['objectnotfound'] = 'Det gick inte att läsa in data för händelsen';
|
||||
$labels['objectchangelognotavailable'] = 'Ändringshistorik är inte tillgänglig för denna händelse';
|
||||
$labels['objectdiffnotavailable'] = 'Ingen jämförelse möjlig för valda revisioner';
|
||||
$labels['revisionrestoreconfirm'] = 'Vill du verkligen återställa revision $rev för denna händelse? Det kommer att ersätta den aktuella händelsen med den gamla versionen.';
|
||||
$labels['objectrestoresuccess'] = 'Version $rev har återställts ';
|
||||
$labels['objectrestoreerror'] = 'Det gick inte att återställa den gamla versionen';
|
||||
$labels['arialabelminical'] = 'Kalender datumurval';
|
||||
$labels['arialabelcalendarview'] = 'Kalender vy';
|
||||
$labels['arialabelsearchform'] = 'Händelse sökformulär';
|
||||
|
|
|
@ -25,12 +25,12 @@ $labels['afterflagdeleted'] = 'ติดธงว่าลบแล้ว';
|
|||
$labels['aftermoveto'] = 'ย้ายไปยัง...';
|
||||
$labels['itipoptions'] = 'เชิญเข้าร่วมนัดหมาย';
|
||||
$labels['afteraction'] = 'ภายหลังการประมวลผลข้อความ คำเชิญ หรือ ปรับปรุงสถานภาพ';
|
||||
$labels['weeknonone'] = 'ไม่มีทาง';
|
||||
$labels['calendar'] = 'ปฎิทิน';
|
||||
$labels['calendars'] = 'ปฎิทิน';
|
||||
$labels['category'] = 'หมวดหมู่';
|
||||
$labels['categories'] = 'หมวดหมู่';
|
||||
$labels['createcalendar'] = 'สร้างปฎิทินฉบับใหม่';
|
||||
$labels['editcalendar'] = 'แก้ไขคุณสมบัติของปฎิทิน';
|
||||
$labels['name'] = 'ชื่อ';
|
||||
$labels['color'] = 'สี';
|
||||
$labels['day'] = 'วัน';
|
||||
|
@ -69,7 +69,6 @@ $labels['mystatus'] = 'สถานะของฉัน';
|
|||
$labels['status'] = 'สถานะ';
|
||||
$labels['status-confirmed'] = 'ยืนยัน';
|
||||
$labels['status-cancelled'] = 'ยกเลิก';
|
||||
$labels['status-tentative'] = 'แนวโน้ม';
|
||||
$labels['priority'] = 'ความสำคัญ';
|
||||
$labels['sensitivity'] = 'ความเป็นส่วนตัว';
|
||||
$labels['public'] = 'สาธารณะ';
|
||||
|
@ -87,7 +86,6 @@ $labels['printdescriptions'] = 'พิมพ์คำอธิบาย';
|
|||
$labels['parentcalendar'] = 'เพิ่มเข้าภายใต้';
|
||||
$labels['searchearlierdates'] = '« ค้นหากำหนดการณ์ที่เกิดชึ้นก่อนหน้า';
|
||||
$labels['searchlaterdates'] = 'ค้นหากำหนดการณ์ที่เกิดขึ้นหลังจาก »';
|
||||
$labels['laterevents'] = 'ภายหลัง';
|
||||
$labels['andnmore'] = 'มีอีก $nr';
|
||||
$labels['togglerole'] = 'กดเพื่อเปลี่ยนสลับบทบาท';
|
||||
$labels['createfrommail'] = 'บันทึกเป็นเหตุการณ์';
|
||||
|
@ -141,6 +139,8 @@ $labels['availbusy'] = 'ติดธุระ';
|
|||
$labels['availunknown'] = 'ไม่ทราบ';
|
||||
$labels['availtentative'] = 'แนวโน้ม';
|
||||
$labels['availoutofoffice'] = 'ไม่อยู่ออฟฟิศ';
|
||||
$labels['delegatedto'] = 'มอบหมายให้';
|
||||
$labels['delegatedfrom'] = 'รับมอบจาก';
|
||||
$labels['scheduletime'] = 'ค้นหาส่วนที่ว่าง';
|
||||
$labels['sendinvitations'] = 'ส่งคำเชิญ';
|
||||
$labels['sendnotifications'] = 'แจ้งเตือนผู้เข้าร่วมสำหรับการแก้ไข';
|
||||
|
|
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/
|
||||
*/
|
||||
?>
|
|
@ -32,6 +32,7 @@ $labels['calendars'] = 'Календарі';
|
|||
$labels['category'] = 'Категорія';
|
||||
$labels['categories'] = 'Категорії';
|
||||
$labels['createcalendar'] = 'Створити новий календар';
|
||||
$labels['editcalendar'] = 'Змінити властивості календаря';
|
||||
$labels['name'] = 'Назва';
|
||||
$labels['color'] = 'Колір';
|
||||
$labels['day'] = 'День';
|
||||
|
@ -74,7 +75,6 @@ $labels['mystatus'] = 'Мій статус';
|
|||
$labels['status'] = 'Статус';
|
||||
$labels['status-confirmed'] = 'Підтверджений';
|
||||
$labels['status-cancelled'] = 'Відмінений';
|
||||
$labels['status-tentative'] = 'Невизначений';
|
||||
$labels['priority'] = 'Пріоритет';
|
||||
$labels['sensitivity'] = 'Конфіденційність';
|
||||
$labels['public'] = 'публічна';
|
||||
|
@ -147,6 +147,8 @@ $labels['availbusy'] = 'Зайнятий';
|
|||
$labels['availunknown'] = 'Невідомо';
|
||||
$labels['availtentative'] = 'Невизначений';
|
||||
$labels['availoutofoffice'] = 'Поза офісом';
|
||||
$labels['delegatedto'] = 'Доручено:';
|
||||
$labels['delegatedfrom'] = 'Доручено від:';
|
||||
$labels['scheduletime'] = 'Знайти доступних';
|
||||
$labels['sendinvitations'] = 'Запросити';
|
||||
$labels['sendnotifications'] = 'Повідомити учасників про зміни';
|
||||
|
@ -157,6 +159,7 @@ $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'] = 'Подія, яка стосується Вас, була оновленна ';
|
||||
|
|
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';
|
||||
?>
|
|
@ -59,7 +59,6 @@ $labels['mystatus'] = '我的状态';
|
|||
$labels['status'] = '状态';
|
||||
$labels['status-confirmed'] = '已确认';
|
||||
$labels['status-cancelled'] = '已取消';
|
||||
$labels['status-tentative'] = '临时';
|
||||
$labels['priority'] = '优先级';
|
||||
$labels['sensitivity'] = '隐私';
|
||||
$labels['public'] = '公开';
|
||||
|
@ -113,11 +112,8 @@ $labels['scheduletime'] = '查找是否有空';
|
|||
$labels['sendinvitations'] = '发送邀请';
|
||||
$labels['sendnotifications'] = '通知参加者修改事项';
|
||||
$labels['resource'] = '资源';
|
||||
$labels['resourceowner'] = '所有者';
|
||||
$labels['tabsummary'] = '汇总';
|
||||
$labels['tabresources'] = '资源';
|
||||
$labels['tabsharing'] = '分享';
|
||||
$labels['savingdata'] = '保存数据...';
|
||||
$labels['futurevents'] = '未来';
|
||||
$labels['allevents'] = '全部';
|
||||
?>
|
||||
|
|
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';
|
||||
?>
|
210
print.js
|
@ -6,7 +6,7 @@
|
|||
* @licstart The following is the entire license notice for the
|
||||
* JavaScript code in this file.
|
||||
*
|
||||
* Copyright (C) 2011-2018, Kolab Systems AG <contact@kolabsys.com>
|
||||
* Copyright (C) 2011, 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
|
||||
|
@ -34,16 +34,15 @@ window.rcmail && rcmail.addEventListener('init', function(evt) {
|
|||
{
|
||||
return String(str).replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"');
|
||||
};
|
||||
|
||||
|
||||
var rc_loading;
|
||||
var showdesc = true;
|
||||
var desc_elements = [];
|
||||
var settings = $.extend(rcmail.env.calendar_settings, rcmail.env.libcal_settings);
|
||||
|
||||
|
||||
// create list of event sources AKA calendars
|
||||
var id, src, event_sources = [];
|
||||
var add_url = '&mode=print' + (rcmail.env.search ? '&q='+escape(rcmail.env.search) : '');
|
||||
for (id in rcmail.env.calendars) {
|
||||
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;
|
||||
|
||||
|
@ -53,14 +52,9 @@ window.rcmail && rcmail.addEventListener('init', function(evt) {
|
|||
id: id
|
||||
}, rcmail.env.calendars[id]);
|
||||
|
||||
source.color = '#' + source.color.replace(/^#/, '');
|
||||
|
||||
if (source.color.match(/^#f+$/i))
|
||||
source.color = '#ccc';
|
||||
|
||||
event_sources.push(source);
|
||||
}
|
||||
|
||||
|
||||
var viewdate = new Date();
|
||||
if (rcmail.env.date)
|
||||
viewdate.setTime(rcmail.env.date * 1000);
|
||||
|
@ -70,89 +64,72 @@ window.rcmail && rcmail.addEventListener('init', function(evt) {
|
|||
header: {
|
||||
left: '',
|
||||
center: 'title',
|
||||
right: 'agendaDay,agendaWeek,month,list'
|
||||
right: 'agendaDay,agendaWeek,month,table'
|
||||
},
|
||||
theme: false,
|
||||
aspectRatio: 0.85,
|
||||
selectable: false,
|
||||
editable: false,
|
||||
timezone: false, // will treat the given date strings as in local (browser's) timezone
|
||||
monthNames: settings.months,
|
||||
monthNamesShort: settings.months_short,
|
||||
dayNames: settings.days,
|
||||
dayNamesShort: settings.days_short,
|
||||
weekNumbers: settings.show_weekno > 0,
|
||||
weekNumberTitle: rcmail.gettext('weekshort', 'calendar') + ' ',
|
||||
firstDay: settings.first_day,
|
||||
firstHour: settings.first_hour,
|
||||
slotDuration: {minutes: 60/settings.timeslots},
|
||||
businessHours: {
|
||||
start: settings.work_start + ':00',
|
||||
end: settings.work_end + ':00'
|
||||
},
|
||||
views: {
|
||||
list: {
|
||||
titleFormat: settings.dates_long,
|
||||
listDayFormat: settings.date_long,
|
||||
visibleRange: function(currentDate) {
|
||||
return {
|
||||
start: currentDate.clone(),
|
||||
end: currentDate.clone().add(settings.agenda_range, 'days')
|
||||
}
|
||||
}
|
||||
},
|
||||
month: {
|
||||
columnFormat: 'ddd', // Mon
|
||||
titleFormat: 'MMMM YYYY',
|
||||
eventLimit: 10
|
||||
},
|
||||
week: {
|
||||
columnFormat: 'ddd ' + settings.date_short, // Mon 9/7
|
||||
titleFormat: settings.dates_long
|
||||
},
|
||||
day: {
|
||||
columnFormat: 'dddd ' + settings.date_short, // Monday 9/7
|
||||
titleFormat: 'dddd ' + settings.date_long
|
||||
}
|
||||
},
|
||||
timeFormat: settings.time_format,
|
||||
slotLabelFormat: settings.time_format,
|
||||
allDayText: rcmail.gettext('all-day', 'calendar'),
|
||||
defaultDate: viewdate,
|
||||
ignoreTimezone: true, // will treat the given date strings as in local (browser's) timezone
|
||||
date: viewdate.getDate(),
|
||||
month: viewdate.getMonth(),
|
||||
year: viewdate.getFullYear(),
|
||||
defaultView: rcmail.env.view,
|
||||
eventSources: event_sources,
|
||||
monthNames : settings['months'],
|
||||
monthNamesShort : settings['months_short'],
|
||||
dayNames : settings['days'],
|
||||
dayNamesShort : settings['days_short'],
|
||||
firstDay : settings['first_day'],
|
||||
firstHour : settings['first_hour'],
|
||||
slotMinutes : 60/settings['timeslots'],
|
||||
timeFormat: {
|
||||
'': settings['time_format'],
|
||||
agenda: settings['time_format'] + '{ - ' + settings['time_format'] + '}',
|
||||
list: settings['time_format'] + '{ - ' + settings['time_format'] + '}',
|
||||
table: settings['time_format'] + '{ - ' + settings['time_format'] + '}'
|
||||
},
|
||||
axisFormat : settings['time_format'],
|
||||
columnFormat: {
|
||||
month: 'ddd', // Mon
|
||||
week: 'ddd ' + settings['date_short'], // Mon 9/7
|
||||
day: 'dddd ' + settings['date_short'], // Monday 9/7
|
||||
list: settings['date_agenda'],
|
||||
table: settings['date_agenda']
|
||||
},
|
||||
titleFormat: {
|
||||
month: 'MMMM yyyy',
|
||||
week: settings['dates_long'],
|
||||
day: 'dddd ' + settings['date_long'],
|
||||
list: settings['dates_long'],
|
||||
table: settings['dates_long']
|
||||
},
|
||||
listSections: rcmail.env.listSections !== undefined ? rcmail.env.listSections : settings['agenda_sections'],
|
||||
listRange: rcmail.env.listRange || settings['agenda_range'],
|
||||
tableCols: ['handle', 'date', 'time', 'title', 'location'],
|
||||
allDayText: rcmail.gettext('all-day', 'calendar'),
|
||||
buttonText: {
|
||||
today: settings['today'],
|
||||
day: rcmail.gettext('day', 'calendar'),
|
||||
week: rcmail.gettext('week', 'calendar'),
|
||||
month: rcmail.gettext('month', 'calendar'),
|
||||
list: rcmail.gettext('agenda', 'calendar')
|
||||
table: rcmail.gettext('agenda', 'calendar')
|
||||
},
|
||||
buttonIcons: {
|
||||
prev: 'left-single-arrow',
|
||||
next: 'right-single-arrow'
|
||||
},
|
||||
eventLimitText: function(num) {
|
||||
return rcmail.gettext('andnmore', 'calendar').replace('$nr', num);
|
||||
listTexts: {
|
||||
until: rcmail.gettext('until', 'calendar'),
|
||||
past: rcmail.gettext('pastevents', 'calendar'),
|
||||
today: rcmail.gettext('today', 'calendar'),
|
||||
tomorrow: rcmail.gettext('tomorrow', 'calendar'),
|
||||
thisWeek: rcmail.gettext('thisweek', 'calendar'),
|
||||
nextWeek: rcmail.gettext('nextweek', 'calendar'),
|
||||
thisMonth: rcmail.gettext('thismonth', 'calendar'),
|
||||
nextMonth: rcmail.gettext('nextmonth', 'calendar'),
|
||||
future: rcmail.gettext('futureevents', 'calendar'),
|
||||
week: rcmail.gettext('weekofyear', 'calendar')
|
||||
},
|
||||
loading: function(isLoading) {
|
||||
rc_loading = rcmail.set_busy(isLoading, 'loading', rc_loading);
|
||||
},
|
||||
// event rendering
|
||||
eventRender: function(event, element, view) {
|
||||
if (view.name == 'list') {
|
||||
var loc = $('<td>').attr('class', 'fc-event-location');
|
||||
if (event.location)
|
||||
loc.text(event.location);
|
||||
element.find('.fc-list-item-title').after(loc);
|
||||
|
||||
// we can't add HTML elements after the curent element,
|
||||
// so we store it for later.
|
||||
if (event.description && showdesc)
|
||||
desc_elements.push({element: element[0], description: event.description});
|
||||
}
|
||||
else if (view.name != 'month') {
|
||||
var cont = element.find('div.fc-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();
|
||||
|
@ -160,55 +137,40 @@ window.rcmail && rcmail.addEventListener('init', function(evt) {
|
|||
if (event.description && showdesc) {
|
||||
cont.after('<div class="fc-event-description">' + Q(event.description) + '</div>');
|
||||
}
|
||||
/* TODO: create icons black on white
|
||||
if (event.recurrence)
|
||||
element.find('.fc-event-time').append('<i class="fc-icon-recurring"></i>');
|
||||
if (event.alarms)
|
||||
element.find('.fc-event-time').append('<i class="fc-icon-alarms"></i>');
|
||||
*/
|
||||
}
|
||||
if (view.name == 'table' && event.description && showdesc) {
|
||||
var cols = element.children().css('border', 0).length;
|
||||
element.after('<tr class="fc-event-row-secondary fc-event"><td colspan="'+cols+'" class="fc-event-description">' + Q(event.description) + '</td></tr>');
|
||||
}
|
||||
},
|
||||
eventAfterAllRender: function(view) {
|
||||
if (view.name == 'list') {
|
||||
// Fix colspan of headers after we added Location column
|
||||
fc.find('tr.fc-list-heading > td').attr('colspan', 4);
|
||||
|
||||
$.each(desc_elements, function() {
|
||||
$(this.element).after('<tr class="fc-event-row-secondary fc-list-item"><td colspan="2"></td><td colspan="2" class="fc-event-description">' + Q(this.description) + '</td></tr>');
|
||||
});
|
||||
}
|
||||
},
|
||||
viewRender: function(view) {
|
||||
desc_elements = [];
|
||||
viewDisplay: function(view) {
|
||||
// remove hard-coded hight and make contents visible
|
||||
window.setTimeout(function(){
|
||||
if (view.name == 'table') {
|
||||
$('div.fc-list-content').css('overflow', 'visible').height('auto');
|
||||
}
|
||||
else {
|
||||
$('div.fc-agenda-divider')
|
||||
.next().css('overflow', 'visible').height('auto')
|
||||
.children('div').css('overflow', 'visible').height('auto');
|
||||
}
|
||||
// adjust fixed height if vertical day slots
|
||||
var h = $('table.fc-agenda-slots:visible').height() + $('table.fc-agenda-allday:visible').height() + 4;
|
||||
if (h) $('table.fc-agenda-days td.fc-widget-content').children('div').height(h);
|
||||
}, 20);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// activate settings form
|
||||
$('#propdescription').change(function() {
|
||||
$('#propdescription').change(function(){
|
||||
showdesc = this.checked;
|
||||
desc_elements = [];
|
||||
fc.fullCalendar('rerenderEvents');
|
||||
fc.fullCalendar('render');
|
||||
});
|
||||
|
||||
var selector = $('#calendar').data('view-selector');
|
||||
if (selector) {
|
||||
selector = $('#' + selector);
|
||||
|
||||
$('.fc-right button').each(function() {
|
||||
var cl = 'btn btn-secondary', btn = $(this);
|
||||
|
||||
if (btn.is('.fc-state-active')) {
|
||||
cl += ' active';
|
||||
}
|
||||
|
||||
$('<button>').attr({'class': cl, type: 'button'})
|
||||
.text(btn.text())
|
||||
.appendTo(selector)
|
||||
.on('click', function() {
|
||||
selector.children('.active').removeClass('active');
|
||||
$(this).addClass('active');
|
||||
btn.click();
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
// Update layout after initialization
|
||||
// In devel mode we have to wait until all styles are applied by less
|
||||
if (rcmail.env.devel_mode && window.less) {
|
||||
less.pageLoadFinished.then(function() { $(window).resize(); });
|
||||
}
|
||||
});
|
||||
|
|
5
skins/classic/README
Normal file
|
@ -0,0 +1,5 @@
|
|||
Icons by Fugue Icons <http://p.yusukekamiyamane.com/>
|
||||
|
||||
Copyright (C) 2010 Yusuke Kamiyamane. All rights reserved.
|
||||
The icons are licensed under a Creative Commons Attribution
|
||||
3.0 license. <http://creativecommons.org/licenses/by/3.0/>
|
1790
skins/classic/calendar.css
Normal file
1
skins/classic/fullcalendar.css
Symbolic link
|
@ -0,0 +1 @@
|
|||
../larry/fullcalendar.css
|
80
skins/classic/iehacks.css
Normal file
|
@ -0,0 +1,80 @@
|
|||
/* CSS hacks for IE 6/7 */
|
||||
|
||||
#main {
|
||||
width: expression(Math.max(300, parseInt(document.documentElement.clientWidth)-10)+'px');
|
||||
height: expression(Math.max(300, parseInt(document.documentElement.clientHeight)-100)+'px');
|
||||
}
|
||||
|
||||
#calendarsidebar,
|
||||
#calendarsidebartoggle {
|
||||
height: expression((parseInt(this.parentNode.offsetHeight)-37)+'px');
|
||||
}
|
||||
|
||||
#calendar {
|
||||
width: expression((parseInt(this.parentNode.offsetWidth)-parseInt(document.getElementById('calendarsidebartoggle').offsetWidth)-parseInt(document.getElementById('calendarsidebartoggle').offsetLeft)-4)+'px');
|
||||
height: expression(parseInt(this.parentNode.offsetHeight)+'px');
|
||||
}
|
||||
|
||||
#calendars {
|
||||
height: expression((parseInt(this.parentNode.offsetHeight)-220)+'px');
|
||||
}
|
||||
|
||||
#agendaoptions {
|
||||
width: expression((parseInt(this.parentNode.offsetWidth)-12)+'px');
|
||||
}
|
||||
|
||||
#calendartoolbar a.buttonPas {
|
||||
filter: alpha(opacity=35);
|
||||
}
|
||||
|
||||
html #calendartoolbar a.button,
|
||||
html #calendartoolbar a.buttonPas {
|
||||
background-image: url(images/toolbar.gif);
|
||||
}
|
||||
|
||||
#datepicker a.ui-priority-secondary {
|
||||
filter: alpha(opacity=40);
|
||||
}
|
||||
|
||||
#calendarslist li span.handle {
|
||||
background-image: url(images/calendars.gif);
|
||||
}
|
||||
|
||||
#datepicker .ui-widget-header {
|
||||
width: 102%;
|
||||
}
|
||||
|
||||
.fc-day-content {
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.fc-header-title h2 {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.fc-event-temp .fc-event-bg {
|
||||
display: none; /* nested opacity filters while dragging don't work */
|
||||
}
|
||||
|
||||
#schedule-event-time {
|
||||
filter: alpha(opacity=40);
|
||||
}
|
||||
|
||||
#eventfreebusy .schedule-buttons,
|
||||
#edit-attendees-form #edit-attendee-schedule {
|
||||
right: 0.6em;
|
||||
}
|
||||
|
||||
#schedule-freebusy-times td.all-busy,
|
||||
#schedule-freebusy-times td.all-tentative,
|
||||
#schedule-freebusy-times td.all-out-of-office {
|
||||
background-image: url('images/freebusy-colors.gif');
|
||||
}
|
||||
|
||||
#schedule-freebusy-times tr.times td.allday {
|
||||
width: expression(Math.max(60, parseInt(this.offsetWidth))+'px');
|
||||
}
|
||||
|
||||
.ui-dialog .ui-dialog-titlebar {
|
||||
width: expression((parseInt(this.parentNode.offsetWidth)-26)+'px');
|
||||
}
|
BIN
skins/classic/images/attendee-status.gif
Normal file
After Width: | Height: | Size: 3.4 KiB |
BIN
skins/classic/images/badge_confidential.gif
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
skins/classic/images/badge_confidential.png
Normal file
After Width: | Height: | Size: 3.4 KiB |
BIN
skins/classic/images/badge_private.gif
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
skins/classic/images/badge_private.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
BIN
skins/classic/images/calendar-blue.png
Normal file
After Width: | Height: | Size: 896 B |
BIN
skins/classic/images/calendar.gif
Normal file
After Width: | Height: | Size: 546 B |
BIN
skins/classic/images/calendar.png
Normal file
After Width: | Height: | Size: 888 B |
BIN
skins/classic/images/calendars.gif
Normal file
After Width: | Height: | Size: 2.7 KiB |
BIN
skins/classic/images/calendars.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
skins/classic/images/eventicons.gif
Normal file
After Width: | Height: | Size: 107 B |
BIN
skins/classic/images/export.png
Normal file
After Width: | Height: | Size: 746 B |
BIN
skins/classic/images/freebusy-colors.gif
Normal file
After Width: | Height: | Size: 408 B |